![]() |
http://www.sim.no http://www.coin3d.org |
The SbVec4f class is a 4 dimensional vector with floating point coordinates. More...
#include <Inventor/SbLinear.h>
Public Member Functions | |
SbVec4f (void) | |
SbVec4f (const float v[4]) | |
SbVec4f (const float x, const float y, const float z, const float w) | |
SbVec4f (const SbVec4d &v) | |
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 |
float | sqrLength (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) |
SbVec4f & | setValue (const SbVec4d &v) |
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 | |
SbVec4f | operator* (const SbVec4f &v, const float d) |
SbVec4f | operator* (const float d, const SbVec4f &v) |
SbVec4f | operator/ (const SbVec4f &v, const float d) |
SbVec4f | operator+ (const SbVec4f &v1, const SbVec4f &v2) |
SbVec4f | operator- (const SbVec4f &v1, const SbVec4f &v2) |
int | operator== (const SbVec4f &v1, const SbVec4f &v2) |
int | operator!= (const SbVec4f &v1, const SbVec4f &v2) |
The SbVec4f class is a 4 dimensional vector with floating point coordinates.
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.
SbVec4f::SbVec4f | ( | void | ) |
The default constructor does nothing. The vector coordinates will be uninitialized until a call the setValue().
Referenced by operator-().
SbVec4f::SbVec4f | ( | const float | v[4] | ) |
Constructs an SbVec4f instance with initial values from v.
SbVec4f::SbVec4f | ( | const float | x, | |
const float | y, | |||
const float | z, | |||
const float | w | |||
) |
Constructs an SbVec4f instance with the initial homogeneous vector set to <x,y,z,w>.
SbVec4f::SbVec4f | ( | const SbVec4d & | v | ) | [inline, explicit] |
Constructs an SbVec4f instance with initial values from the vector v.
float SbVec4f::dot | ( | const SbVec4f & | v | ) | const |
Calculates and returns the result of taking the dot product of this vector and v.
Referenced by SbRotation::slerp().
SbBool SbVec4f::equals | ( | const SbVec4f & | v, | |
const float | tolerance | |||
) | const |
Compares the vector with v and returns TRUE
if the distance between the vectors is smaller or equal to the square root of tolerance.
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.
References SoDebugError::postWarning().
Referenced by SbRotation::equals().
void SbVec4f::getReal | ( | SbVec3f & | v | ) | const |
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.
References SoDebugError::postWarning().
Referenced by SoIndexedShape::computeBBox(), SoIndexedNurbsSurface::computeBBox(), and SoNonIndexedShape::computeCoordBBox().
const float * SbVec4f::getValue | ( | void | ) | const |
Returns a pointer to an array of four floats containing the x, y, z and w coordinates of the vector.
Referenced by SoSpotLight::GLRender(), SoPointLight::GLRender(), SoDirectionalLight::GLRender(), SoShape::invokeLineSegmentCallbacks(), SoShape::invokePointCallbacks(), and SoShape::invokeTriangleCallbacks().
void SbVec4f::getValue | ( | float & | x, | |
float & | y, | |||
float & | z, | |||
float & | w | |||
) | const |
Returns the x, y, z and w coordinates of the vector.
float SbVec4f::length | ( | void | ) | const |
Return the length of the vector in 4D space.
Referenced by SbRotation::inverse(), SbRotation::invert(), and normalize().
float SbVec4f::sqrLength | ( | void | ) | const |
Return the square of the length of the vector in 4D space.
void SbVec4f::negate | ( | void | ) |
Negate the vector.
Referenced by SbRotation::slerp().
float SbVec4f::normalize | ( | void | ) |
Normalize the vector to unit length. Return value is the original length of the vector before normalization.
References length(), operator/=(), and SoDebugError::postWarning().
Referenced by SbRotation::setValue().
SbVec4f & SbVec4f::setValue | ( | const float | v[4] | ) |
Set new coordinates for the vector from v. Returns reference to self.
Referenced by SoShape::generateVertex().
SbVec4f & SbVec4f::setValue | ( | const float | x, | |
const float | y, | |||
const float | z, | |||
const float | w | |||
) |
Set new coordinates for the vector. Returns reference to self.
Sets the value from an SbVec4d instance. Returns reference to self.
float & SbVec4f::operator[] | ( | const int | i | ) |
Index operator. Returns modifiable x, y, z or w component of vector.
References SoDebugError::postWarning().
const float & SbVec4f::operator[] | ( | const int | i | ) | const |
Index operator. Returns x, y, z or w component of vector.
References SoDebugError::postWarning().
SbVec4f & SbVec4f::operator*= | ( | const float | d | ) |
Multiply components of vector with value d. Returns reference to self.
SbVec4f & SbVec4f::operator/= | ( | const float | d | ) |
Divides components of vector with value d. Returns reference to self.
References SoDebugError::postWarning().
Referenced by normalize().
Adds this vector and vector u. Returns reference to self.
Subtracts vector u from this vector. Returns reference to self.
SbVec4f SbVec4f::operator- | ( | void | ) | const |
void SbVec4f::print | ( | FILE * | fp | ) | const |
Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile.
Referenced by SbRotation::print().
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on 19 Dec 2016 for Coin by Doxygen. 1.6.1