Coin Logo http://www.sim.no
http://www.coin3d.org

Public Member Functions | Friends

SbVec4f Class Reference

The SbVec4f class is a 4 dimensional vector with floating point coordinates. More...

#include <Inventor/SbLinear.h>

List of all members.

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)
SbVec4fsetValue (const float v[4])
SbVec4fsetValue (const float x, const float y, const float z, const float w)
SbVec4fsetValue (const SbVec4d &v)
float & operator[] (const int i)
const float & operator[] (const int i) const
SbVec4foperator*= (const float d)
SbVec4foperator/= (const float d)
SbVec4foperator+= (const SbVec4f &u)
SbVec4foperator-= (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)

Detailed Description

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.

See also:
SbVec2f, SbVec2d, SbVec3f, SbVec3d, SbVec4d

Constructor & Destructor Documentation

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.

Since:
Coin-2.5

Member Function Documentation

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.

See also:
setValue().

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.

See also:
setValue().
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.

Since:
Coin-2.5
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.

See also:
getValue().

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.

See also:
getValue().
SbVec4f & SbVec4f::setValue ( const SbVec4d v)

Sets the value from an SbVec4d instance. Returns reference to self.

Since:
Coin-2.5
float & SbVec4f::operator[] ( const int  i)

Index operator. Returns modifiable x, y, z or w component of vector.

See also:
getValue() and setValue().

References SoDebugError::postWarning().

const float & SbVec4f::operator[] ( const int  i) const

Index operator. Returns x, y, z or w component of vector.

See also:
getValue() and setValue().

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().

SbVec4f & SbVec4f::operator+= ( const SbVec4f u)

Adds this vector and vector u. Returns reference to self.

SbVec4f & SbVec4f::operator-= ( const SbVec4f u)

Subtracts vector u from this vector. Returns reference to self.

SbVec4f SbVec4f::operator- ( void  ) const

Non-destructive negation operator. Returns a new SbVec4f instance which has all components negated.

See also:
negate().

References SbVec4f().

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().


Friends And Related Function Documentation

SbVec4f operator* ( const SbVec4f v,
const float  d 
) [friend]

Returns an SbVec4f instance which is the components of vector v multiplied with d.

SbVec4f operator* ( const float  d,
const SbVec4f v 
) [friend]

Returns an SbVec4f instance which is the components of vector v multiplied with d.

SbVec4f operator/ ( const SbVec4f v,
const float  d 
) [friend]

Returns an SbVec4f instance which is the components of vector v divided on the scalar factor d.

SbVec4f operator+ ( const SbVec4f v1,
const SbVec4f v2 
) [friend]

Returns an SbVec4f instance which is the sum of vectors v1 and v2.

SbVec4f operator- ( const SbVec4f v1,
const SbVec4f v2 
) [friend]

Returns an SbVec4f instance which is vector v2 subtracted from vector v1.

int operator== ( const SbVec4f v1,
const SbVec4f v2 
) [friend]

Returns 1 if v1 and v2 are equal, 0 otherwise.

See also:
equals().
int operator!= ( const SbVec4f v1,
const SbVec4f v2 
) [friend]

Returns 1 if v1 and v2 are not equal, 0 if they are equal.

See also:
equals().

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

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Mon Feb 28 2011 10:12:02 for Coin by Doxygen. 1.7.3