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

#include <Vec3f>

Public Types

enum  { num_components = 3 }
 
typedef float value_type
 

Public Member Functions

 Vec3f ()
 
 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
 
bool isNaN () const
 
value_type operator* (const Vec3f &rhs) const
 
const Vec3f operator^ (const Vec3f &rhs) const
 
const Vec3f operator* (value_type rhs) const
 
Vec3foperator*= (value_type rhs)
 
const Vec3f operator/ (value_type rhs) const
 
Vec3foperator/= (value_type rhs)
 
const Vec3f operator+ (const Vec3f &rhs) const
 
Vec3foperator+= (const Vec3f &rhs)
 
const Vec3f operator- (const Vec3f &rhs) const
 
Vec3foperator-= (const Vec3f &rhs)
 
const Vec3f operator- () const
 
value_type length () const
 
value_type length2 () const
 
value_type normalize ()
 

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

◆ Vec3f() [2/3]

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

◆ 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.

◆ length()

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

Length of the vector = sqrt( vec . vec )

◆ length2()

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

Length squared of the vector = vec . vec

◆ normalize()

value_type osg::Vec3f::normalize ( )
inline

Normalize the vector so that it has length unity. Returns the previous length of the vector.

◆ operator!=()

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

◆ operator*() [1/2]

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

Dot product.

◆ operator*() [2/2]

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

Multiply by scalar.

◆ 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.

◆ operator+=()

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

Unary vector add. Slightly more efficient because no temporary intermediate object.

◆ operator-() [1/2]

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

Negation operator. Returns the negative of the Vec3f.

◆ operator-() [2/2]

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

Binary vector subtract.

◆ operator-=()

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

Unary vector subtract.

◆ operator/()

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

Divide by scalar.

◆ operator/=()

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

Unary divide by scalar.

◆ operator<()

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

◆ operator==()

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

◆ 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.

◆ ptr() [1/2]

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

◆ ptr() [2/2]

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

◆ set() [1/2]

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

◆ set() [2/2]

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

◆ valid()

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

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

◆ 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: