OpenSceneGraph
Public Types | Public Member Functions | Public Attributes | List of all members
osg::Vec3f Class Reference

General purpose float triple for use as vertices, vectors and normals. More...

Public Types

enum  { num_components = 3 }
 Number of vector components. More...
 
typedef float value_type
 Data type of vector components. More...
 

Public Member Functions

 Vec3f ()
 Constructor that sets all components of the vector to zero. More...
 
 Vec3f (value_type x, value_type y, value_type z)
 
 Vec3f (const Vec2f &v2, value_type zz)
 
bool operator== (const Vec3f &v) const
 
bool operator!= (const Vec3f &v) const
 
bool operator< (const Vec3f &v) const
 
value_typeptr ()
 
const value_typeptr () const
 
void set (value_type x, value_type y, value_type z)
 
void set (const Vec3f &rhs)
 
value_typeoperator[] (int i)
 
value_type operator[] (int i) const
 
value_typex ()
 
value_typey ()
 
value_typez ()
 
value_type x () const
 
value_type y () const
 
value_type z () const
 
bool valid () const
 Returns true if all components have values that are not NaN. More...
 
bool isNaN () const
 Returns true if at least one component has value NaN. More...
 
value_type operator* (const Vec3f &rhs) const
 Dot product. More...
 
const Vec3f operator^ (const Vec3f &rhs) const
 Cross product. More...
 
const Vec3f operator* (value_type rhs) const
 Multiply by scalar. More...
 
Vec3foperator*= (value_type rhs)
 Unary multiply by scalar. More...
 
const Vec3f operator/ (value_type rhs) const
 Divide by scalar. More...
 
Vec3foperator/= (value_type rhs)
 Unary divide by scalar. More...
 
const Vec3f operator+ (const Vec3f &rhs) const
 Binary vector add. More...
 
Vec3foperator+= (const Vec3f &rhs)
 Unary vector add. More...
 
const Vec3f operator- (const Vec3f &rhs) const
 Binary vector subtract. More...
 
Vec3foperator-= (const Vec3f &rhs)
 Unary vector subtract. More...
 
const Vec3f operator- () const
 Negation operator. More...
 
value_type length () const
 Length of the vector = sqrt( vec . More...
 
value_type length2 () const
 Length squared of the vector = vec . More...
 
value_type normalize ()
 Normalize the vector so that it has length unity. More...
 

Public Attributes

value_type _v [3]
 

Detailed Description

General purpose float triple for use as vertices, vectors and normals.

Provides general math operations from addition through to cross products. No support yet added for float * Vec3f - is it necessary? Need to define a non-member non-friend operator* etc. Vec3f * float is okay

Member Typedef Documentation

◆ value_type

typedef float osg::Vec3f::value_type

Data type of vector components.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Number of vector components.

Enumerator
num_components 

Constructor & Destructor Documentation

◆ Vec3f() [1/3]

osg::Vec3f::Vec3f ( )
inline

Constructor that sets all components of the vector to zero.

Referenced by osg::componentDivide(), osg::componentMultiply(), operator*(), operator+(), operator-(), operator/(), and operator^().

◆ Vec3f() [2/3]

osg::Vec3f::Vec3f ( value_type  x,
value_type  y,
value_type  z 
)
inline

References x(), y(), and z().

◆ Vec3f() [3/3]

osg::Vec3f::Vec3f ( const Vec2f v2,
value_type  zz 
)
inline

Member Function Documentation

◆ isNaN()

bool osg::Vec3f::isNaN ( ) const
inline

Returns true if at least one component has value NaN.

References osg::isNaN().

Referenced by valid().

◆ length()

value_type osg::Vec3f::length ( ) const
inline

◆ length2()

value_type osg::Vec3f::length2 ( void  ) const
inline

Length squared of the vector = vec .

vec

Referenced by osgParticle::AngularDampingOperator::operate(), and osgParticle::DampingOperator::operate().

◆ normalize()

value_type osg::Vec3f::normalize ( )
inline

Normalize the vector so that it has length unity.

Returns the previous length of the vector.

References length().

◆ operator!=()

bool osg::Vec3f::operator!= ( const Vec3f v) const
inline

References _v.

◆ operator*() [1/2]

value_type osg::Vec3f::operator* ( const Vec3f rhs) const
inline

Dot product.

References _v.

◆ operator*() [2/2]

const Vec3f osg::Vec3f::operator* ( value_type  rhs) const
inline

Multiply by scalar.

References Vec3f().

◆ operator*=()

Vec3f& osg::Vec3f::operator*= ( value_type  rhs)
inline

Unary multiply by scalar.

◆ operator+()

const Vec3f osg::Vec3f::operator+ ( const Vec3f rhs) const
inline

Binary vector add.

References _v, and Vec3f().

◆ operator+=()

Vec3f& osg::Vec3f::operator+= ( const Vec3f rhs)
inline

Unary vector add.

Slightly more efficient because no temporary intermediate object.

References _v.

◆ operator-() [1/2]

const Vec3f osg::Vec3f::operator- ( const Vec3f rhs) const
inline

Binary vector subtract.

References _v, and Vec3f().

◆ operator-() [2/2]

const Vec3f osg::Vec3f::operator- ( ) const
inline

Negation operator.

Returns the negative of the Vec3f.

References Vec3f().

◆ operator-=()

Vec3f& osg::Vec3f::operator-= ( const Vec3f rhs)
inline

Unary vector subtract.

References _v.

◆ operator/()

const Vec3f osg::Vec3f::operator/ ( value_type  rhs) const
inline

Divide by scalar.

References Vec3f().

◆ operator/=()

Vec3f& osg::Vec3f::operator/= ( value_type  rhs)
inline

Unary divide by scalar.

◆ operator<()

bool osg::Vec3f::operator< ( const Vec3f v) const
inline

References _v.

◆ operator==()

bool osg::Vec3f::operator== ( const Vec3f v) const
inline

References _v.

◆ operator[]() [1/2]

value_type& osg::Vec3f::operator[] ( int  i)
inline

◆ operator[]() [2/2]

value_type osg::Vec3f::operator[] ( int  i) const
inline

◆ operator^()

const Vec3f osg::Vec3f::operator^ ( const Vec3f rhs) const
inline

Cross product.

References _v, and Vec3f().

◆ ptr() [1/2]

value_type* osg::Vec3f::ptr ( )
inline

References _v.

Referenced by osg::GLExtensions::glUniform().

◆ ptr() [2/2]

const value_type* osg::Vec3f::ptr ( ) const
inline

References _v.

◆ set() [1/2]

void osg::Vec3f::set ( value_type  x,
value_type  y,
value_type  z 
)
inline

◆ set() [2/2]

void osg::Vec3f::set ( const Vec3f rhs)
inline

◆ valid()

bool osg::Vec3f::valid ( ) const
inline

Returns true if all components have values that are not NaN.

References isNaN().

◆ x() [1/2]

value_type& osg::Vec3f::x ( )
inline

◆ x() [2/2]

value_type osg::Vec3f::x ( ) const
inline

◆ y() [1/2]

value_type& osg::Vec3f::y ( )
inline

◆ y() [2/2]

value_type osg::Vec3f::y ( ) const
inline

◆ z() [1/2]

value_type& osg::Vec3f::z ( )
inline

◆ z() [2/2]

value_type osg::Vec3f::z ( ) const
inline

Member Data Documentation

◆ _v

value_type osg::Vec3f::_v[3]

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