Open CASCADE Technology: NCollection_Vec4< Element_t > Class Template Reference

Open CASCADE Technology 6.9.1

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Member Functions | Static Public Member Functions | Friends
NCollection_Vec4< Element_t > Class Template Reference

Generic 4-components vector. To be used as RGBA color vector or XYZW 3D-point with special W-component for operations with projection / model view matrices. Use this class for 3D-points carefully because declared W-component may results in incorrect results if used without matrices. More...

`#include <NCollection_Vec4.hxx>`

## Public Member Functions
| NCollection_Vec4 ()
| Empty constructor. Construct the zero vector. More...
| NCollection_Vec4 (const Element_t theValue)
| Initialize ALL components of vector within specified value. More...
| NCollection_Vec4 (const Element_t theX, const Element_t theY, const Element_t theZ, const Element_t theW)
| Per-component constructor. More...
| NCollection_Vec4 (const NCollection_Vec2< Element_t > &theVec2)
| Constructor from 2-components vector. More...
| NCollection_Vec4 (const NCollection_Vec3< Element_t > &theVec3)
| Constructor from 3-components vector. More...
| NCollection_Vec4 (const NCollection_Vec3< Element_t > &theVec3, const Element_t theAlpha)
| Constructor from 3-components vector + alpha value. More...
| NCollection_Vec4 (const NCollection_Vec4 &theVec4)
| Copy constructor. More...
const NCollection_Vec4 & | operator= (const NCollection_Vec4 &theVec4)
| Assignment operator. More...
Element_t | x () const
| Alias to 1st component as X coordinate in XYZW. More...
Element_t | r () const
| Alias to 1st component as RED channel in RGBA. More...
Element_t | y () const
| Alias to 2nd component as Y coordinate in XYZW. More...
Element_t | g () const
| Alias to 2nd component as GREEN channel in RGBA. More...
Element_t | z () const
| Alias to 3rd component as Z coordinate in XYZW. More...
Element_t | b () const
| Alias to 3rd component as BLUE channel in RGBA. More...
Element_t | w () const
| Alias to 4th component as W coordinate in XYZW. More...
Element_t | a () const
| Alias to 4th component as ALPHA channel in RGBA. More...
Element_t & | x ()
| Alias to 1st component as X coordinate in XYZW. More...
Element_t & | r ()
| Alias to 1st component as RED channel in RGBA. More...
Element_t & | y ()
| Alias to 2nd component as Y coordinate in XYZW. More...
Element_t & | g ()
| Alias to 2nd component as GREEN channel in RGBA. More...
Element_t & | z ()
| Alias to 3rd component as Z coordinate in XYZW. More...
Element_t & | b ()
| Alias to 3rd component as BLUE channel in RGBA. More...
Element_t & | w ()
| Alias to 4th component as W coordinate in XYZW. More...
Element_t & | a ()
| Alias to 4th component as ALPHA channel in RGBA. More...
NCollection_Vec2< Element_t > & | xy ()
NCollection_Vec2< Element_t > & | yz ()
NCollection_Vec2< Element_t > & | zw ()
NCollection_Vec3< Element_t > & | xyz ()
NCollection_Vec3< Element_t > & | yzw ()
const Element_t * | GetData () const
| Raw access to the data (for OpenGL exchange). More...
Element_t * | ChangeData ()
| operator const Element_t * () const
| operator Element_t * ()
NCollection_Vec4 & | operator+= (const NCollection_Vec4 &theAdd)
| Compute per-component summary. More...
NCollection_Vec4 | operator- () const
| Unary -. More...
NCollection_Vec4 & | operator-= (const NCollection_Vec4 &theDec)
| Compute per-component subtraction. More...
NCollection_Vec4 & | operator*= (const NCollection_Vec4 &theRight)
| Compute per-component multiplication. More...
void | Multiply (const Element_t theFactor)
| Compute per-component multiplication. More...
NCollection_Vec4 & | operator*= (const Element_t theFactor)
| Compute per-component multiplication. More...
NCollection_Vec4 | operator* (const Element_t theFactor) const
| Compute per-component multiplication. More...
NCollection_Vec4 | Multiplied (const Element_t theFactor) const
| Compute per-component multiplication. More...
NCollection_Vec4 | cwiseMin (const NCollection_Vec4 &theVec) const
| Compute component-wise minimum of two vectors. More...
NCollection_Vec4 | cwiseMax (const NCollection_Vec4 &theVec) const
| Compute component-wise maximum of two vectors. More...
NCollection_Vec4 | cwiseAbs () const
| Compute component-wise modulus of the vector. More...
Element_t | maxComp () const
| Compute maximum component of the vector. More...
Element_t | minComp () const
| Compute minimum component of the vector. More...
NCollection_Vec4 & | operator/= (const Element_t theInvFactor)
| Compute per-component division by scale factor. More...
NCollection_Vec4 | operator/ (const Element_t theInvFactor)
| Compute per-component division by scale factor. More...
template<>
NCollection_Vec4< float > & | operator/= (const float theInvFactor)
| Optimized concretization for float type. More...
template<>
NCollection_Vec4< double > & | operator/= (const double theInvFactor)
| Optimized concretization for double type. More...

## Static Public Member Functions
static int | Length ()
| Returns the number of components. More...

## Friends
NCollection_Vec4 | operator+ (const NCollection_Vec4 &theLeft, const NCollection_Vec4 &theRight)
| Compute per-component summary. More...
NCollection_Vec4 | operator- (const NCollection_Vec4 &theLeft, const NCollection_Vec4 &theRight)
| Compute per-component subtraction. More...
NCollection_Vec4 | operator* (const NCollection_Vec4 &theLeft, const NCollection_Vec4 &theRight)
| Compute per-component multiplication. More...

## Detailed Description

### template<typename Element_t>
class NCollection_Vec4< Element_t >

Generic 4-components vector. To be used as RGBA color vector or XYZW 3D-point with special W-component for operations with projection / model view matrices. Use this class for 3D-points carefully because declared W-component may results in incorrect results if used without matrices.

## Constructor & Destructor Documentation

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( |  | ) |
| inline

Empty constructor. Construct the zero vector.

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( | const Element_t | theValue | ) |
| inlineexplicit

Initialize ALL components of vector within specified value.

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( | const Element_t | theX,
|  | const Element_t | theY,
|  | const Element_t | theZ,
|  | const Element_t | theW
| ) |  |
| inlineexplicit

Per-component constructor.

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( | const NCollection_Vec2< Element_t > & | theVec2 | ) |
| inlineexplicit

Constructor from 2-components vector.

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( | const NCollection_Vec3< Element_t > & | theVec3 | ) |
| inlineexplicit

Constructor from 3-components vector.

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( | const NCollection_Vec3< Element_t > & | theVec3,
|  | const Element_t | theAlpha
| ) |  |
| inlineexplicit

Constructor from 3-components vector + alpha value.

template<typename Element_t>

NCollection_Vec4< Element_t >::NCollection_Vec4 | ( | const NCollection_Vec4< Element_t > & | theVec4 | ) |
| inline

Copy constructor.

## Member Function Documentation

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::a | ( |  | ) | const
| inline

Alias to 4th component as ALPHA channel in RGBA.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::a | ( |  | ) |
| inline

Alias to 4th component as ALPHA channel in RGBA.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::b | ( |  | ) | const
| inline

Alias to 3rd component as BLUE channel in RGBA.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::b | ( |  | ) |
| inline

Alias to 3rd component as BLUE channel in RGBA.

template<typename Element_t>

Element_t* NCollection_Vec4< Element_t >::ChangeData | ( |  | ) |
| inline

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::cwiseAbs | ( |  | ) | const
| inline

Compute component-wise modulus of the vector.

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::cwiseMax | ( | const NCollection_Vec4< Element_t > & | theVec | ) | const
| inline

Compute component-wise maximum of two vectors.

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::cwiseMin | ( | const NCollection_Vec4< Element_t > & | theVec | ) | const
| inline

Compute component-wise minimum of two vectors.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::g | ( |  | ) | const
| inline

Alias to 2nd component as GREEN channel in RGBA.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::g | ( |  | ) |
| inline

Alias to 2nd component as GREEN channel in RGBA.

template<typename Element_t>

const Element_t* NCollection_Vec4< Element_t >::GetData | ( |  | ) | const
| inline

Raw access to the data (for OpenGL exchange).

template<typename Element_t>

static int NCollection_Vec4< Element_t >::Length | ( | void |  | ) |
| inlinestatic

Returns the number of components.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::maxComp | ( |  | ) | const
| inline

Compute maximum component of the vector.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::minComp | ( |  | ) | const
| inline

Compute minimum component of the vector.

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::Multiplied | ( | const Element_t | theFactor | ) | const
| inline

Compute per-component multiplication.

template<typename Element_t>

void NCollection_Vec4< Element_t >::Multiply | ( | const Element_t | theFactor | ) |
| inline

Compute per-component multiplication.

template<typename Element_t>

NCollection_Vec4< Element_t >::operator const Element_t * | ( |  | ) | const
| inline

template<typename Element_t>

NCollection_Vec4< Element_t >::operator Element_t * | ( |  | ) |
| inline

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::operator* | ( | const Element_t | theFactor | ) | const
| inline

Compute per-component multiplication.

template<typename Element_t>

NCollection_Vec4& NCollection_Vec4< Element_t >::operator*= | ( | const NCollection_Vec4< Element_t > & | theRight | ) |
| inline

Compute per-component multiplication.

template<typename Element_t>

NCollection_Vec4& NCollection_Vec4< Element_t >::operator*= | ( | const Element_t | theFactor | ) |
| inline

Compute per-component multiplication.

template<typename Element_t>

NCollection_Vec4& NCollection_Vec4< Element_t >::operator+= | ( | const NCollection_Vec4< Element_t > & | theAdd | ) |
| inline

Compute per-component summary.

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::operator- | ( |  | ) | const
| inline

Unary -.

template<typename Element_t>

NCollection_Vec4& NCollection_Vec4< Element_t >::operator-= | ( | const NCollection_Vec4< Element_t > & | theDec | ) |
| inline

Compute per-component subtraction.

template<typename Element_t>

NCollection_Vec4 NCollection_Vec4< Element_t >::operator/ | ( | const Element_t | theInvFactor | ) |
| inline

Compute per-component division by scale factor.

template<typename Element_t>

NCollection_Vec4& NCollection_Vec4< Element_t >::operator/= | ( | const Element_t | theInvFactor | ) |
| inline

Compute per-component division by scale factor.

template<>

NCollection_Vec4< float > & NCollection_Vec4< float >::operator/= | ( | const float | theInvFactor | ) |
| inline

Optimized concretization for float type.

template<>

NCollection_Vec4< double > & NCollection_Vec4< double >::operator/= | ( | const double | theInvFactor | ) |
| inline

Optimized concretization for double type.

template<typename Element_t>

const NCollection_Vec4& NCollection_Vec4< Element_t >::operator= | ( | const NCollection_Vec4< Element_t > & | theVec4 | ) |
| inline

Assignment operator.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::r | ( |  | ) | const
| inline

Alias to 1st component as RED channel in RGBA.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::r | ( |  | ) |
| inline

Alias to 1st component as RED channel in RGBA.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::w | ( |  | ) | const
| inline

Alias to 4th component as W coordinate in XYZW.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::w | ( |  | ) |
| inline

Alias to 4th component as W coordinate in XYZW.

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::x | ( |  | ) | const
| inline

Alias to 1st component as X coordinate in XYZW.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::x | ( |  | ) |
| inline

Alias to 1st component as X coordinate in XYZW.

Returns
  2 of XYZW components in specified order as vector in GLSL-style
  3 of XYZW components in specified order as vector in GLSL-style
  RGB components as vector

template<typename Element_t>

NCollection_Vec2<Element_t>& NCollection_Vec4< Element_t >::xy | ( |  | ) |
| inline

Returns
  XY-components modifiable vector

template<typename Element_t>

NCollection_Vec3<Element_t>& NCollection_Vec4< Element_t >::xyz | ( |  | ) |
| inline

Returns
  XYZ-components modifiable vector

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::y | ( |  | ) | const
| inline

Alias to 2nd component as Y coordinate in XYZW.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::y | ( |  | ) |
| inline

Alias to 2nd component as Y coordinate in XYZW.

template<typename Element_t>

NCollection_Vec2<Element_t>& NCollection_Vec4< Element_t >::yz | ( |  | ) |
| inline

Returns
  YZ-components modifiable vector

template<typename Element_t>

NCollection_Vec3<Element_t>& NCollection_Vec4< Element_t >::yzw | ( |  | ) |
| inline

Returns
  YZW-components modifiable vector

template<typename Element_t>

Element_t NCollection_Vec4< Element_t >::z | ( |  | ) | const
| inline

Alias to 3rd component as Z coordinate in XYZW.

template<typename Element_t>

Element_t& NCollection_Vec4< Element_t >::z | ( |  | ) |
| inline

Alias to 3rd component as Z coordinate in XYZW.

template<typename Element_t>

NCollection_Vec2<Element_t>& NCollection_Vec4< Element_t >::zw | ( |  | ) |
| inline

Returns
  YZ-components modifiable vector

## Friends And Related Function Documentation

template<typename Element_t>

NCollection_Vec4 operator* | ( | const NCollection_Vec4< Element_t > & | theLeft,
|  | const NCollection_Vec4< Element_t > & | theRight
| ) |  |
| friend

Compute per-component multiplication.

template<typename Element_t>

NCollection_Vec4 operator+ | ( | const NCollection_Vec4< Element_t > & | theLeft,
|  | const NCollection_Vec4< Element_t > & | theRight
| ) |  |
| friend

Compute per-component summary.

template<typename Element_t>

NCollection_Vec4 operator- | ( | const NCollection_Vec4< Element_t > & | theLeft,
|  | const NCollection_Vec4< Element_t > & | theRight
| ) |  |
| friend

Compute per-component subtraction.

The documentation for this class was generated from the following file:

- NCollection_Vec4.hxx