#include <Inventor/SbLinear.h>
Public Methods | |
SbVec4f (void) | |
SbVec4f (const float v[4]) | |
SbVec4f (const float x, const float y, const float z, const float w) | |
float | dot (const SbVec4f &v) const |
SbBool | equals (const SbVec4f &v, const float tolerance) const |
void | getReal (SbVec3f &v) const |
const float * | getValue (void) const |
void | getValue (float &x, float &y, float &z, float &w) const |
float | length (void) const |
void | negate (void) |
float | normalize (void) |
SbVec4f & | setValue (const float v[4]) |
SbVec4f & | setValue (const float x, const float y, const float z, const float w) |
float & | operator[] (const int i) |
const float & | operator[] (const int i) const |
SbVec4f & | operator *= (const float d) |
SbVec4f & | operator/= (const float d) |
SbVec4f & | operator+= (const SbVec4f &u) |
SbVec4f & | operator-= (const SbVec4f &u) |
SbVec4f | operator- (void) const |
void | print (FILE *fp) const |
Friends | |
COIN_DLL_API SbVec4f | operator * (const SbVec4f &v, const float d) |
COIN_DLL_API SbVec4f | operator * (const float d, const SbVec4f &v) |
COIN_DLL_API SbVec4f | operator/ (const SbVec4f &v, const float d) |
COIN_DLL_API SbVec4f | operator+ (const SbVec4f &v1, const SbVec4f &v2) |
COIN_DLL_API SbVec4f | operator- (const SbVec4f &v1, const SbVec4f &v2) |
COIN_DLL_API int | operator== (const SbVec4f &v1, const SbVec4f &v2) |
COIN_DLL_API int | operator!= (const SbVec4f &v1, const SbVec4f &v2) |
This vector class is used by many other classes in Coin. It provides storage for a 3 dimensional homogeneoues vector (with the 4 components usually referred to as <x, y, z, w>) aswell as simple floating point arithmetic operations.
|
The default constructor does nothing. The vector coordinates will be uninitialized until a call the setValue(). |
|
Constructs an SbVec4f instance with initial values from v. |
|
Constructs an SbVec4f instance with the initial homogeneous vector set to <x,y,z,w>. |
|
Calculates and returns the result of taking the dot product of this vector and v. |
|
Compares the vector with v and returns TRUE if the largest distance between the vectors are larger than the square root of the given tolerance value. The comparison is done in 4D-space, i.e. the w component of the vector is not used to make x, y and z into Cartesian coordinates first. |
|
Returns the vector as a Cartesian 3D vector in v. This means that the 3 first components x, y and z will be divided by the fourth, w. |
|
Returns a pointer to an array of four floats containing the x, y, z and w coordinates of the vector.
|
|
Returns the x, y, z and w coordinates of the vector.
|
|
Return the length of the vector in 4D space. |
|
Negate the vector. |
|
Normalize the vector to unit length. Return value is the original length of the vector before normalization. |
|
Set new coordinates for the vector from v. Returns reference to self.
|
|
Set new coordinates for the vector. Returns reference to self.
|
|
Index operator. Returns modifiable x, y, z or w component of vector.
|
|
Index operator. Returns x, y, z or w component of vector.
|
|
Multiply components of vector with value d. Returns reference to self. |
|
Divides components of vector with value d. Returns reference to self. |
|
Adds this vector and vector u. Returns reference to self. |
|
Subtracts vector u from this vector. Returns reference to self. |
|
Non-destructive negation operator. Returns a new SbVec4f instance which has all components negated.
|
|
Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile. |
|
Returns an SbVec4f instance which is the components of vector v multiplied with d. |
|
Returns an SbVec4f instance which is the components of vector v multiplied with d. |
|
Returns an SbVec4f instance which is the components of vector v divided on the scalar factor d. |
|
Returns an SbVec4f instance which is the sum of vectors v1 and v2. |
|
Returns an SbVec4f instance which is vector v2 subtracted from vector v1. |
|
Returns 1 if v1 and v2 are equal, 0 otherwise.
|
|
Returns 1 if v1 and v2 are not equal, 0 if they are equal.
|