openscenegraph
Public Types | Public Member Functions | Public Attributes
osg::Vec3f Class Reference

List of all members.

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

typedef float osg::Vec3f::value_type

Data type of vector components.


Member Enumeration Documentation

anonymous enum

Number of vector components.

Enumerator:
num_components 

Constructor & Destructor Documentation

osg::Vec3f::Vec3f ( ) [inline]

Constructor that sets all components of the vector to zero

References _v.

Referenced by operator*(), operator+(), operator-(), operator/(), and operator^().

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

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

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

References _v.


Member Function Documentation

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

Returns true if at least one component has value NaN.

References _v.

Referenced by valid().

value_type osg::Vec3f::length ( ) const [inline]
value_type osg::Vec3f::length2 ( void  ) const [inline]

Length squared of the vector = vec . vec

References _v.

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

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

References _v, and length().

Referenced by osgShadow::OccluderGeometry::isLightPointSilhouetteEdge().

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

References _v.

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

Dot product.

References _v.

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

Multiply by scalar.

References _v, and Vec3f().

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

Unary multiply by scalar.

References _v.

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

Binary vector add.

References _v, and Vec3f().

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

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

References _v.

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

Binary vector subtract.

References _v, and Vec3f().

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

Negation operator. Returns the negative of the Vec3f.

References _v, and Vec3f().

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

Unary vector subtract.

References _v.

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

Divide by scalar.

References _v, and Vec3f().

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

Unary divide by scalar.

References _v.

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

References _v.

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

References _v.

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

References _v.

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

References _v.

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

Cross product.

References _v, and Vec3f().

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

References _v.

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

References _v.

void osg::Vec3f::set ( value_type  x,
value_type  y,
value_type  z 
) [inline]
void osg::Vec3f::set ( const Vec3f rhs) [inline]

References _v.

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

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

References isNaN().

Referenced by osgUtil::LineSegmentIntersector::Intersection::getWorldIntersectNormal().

value_type& osg::Vec3f::x ( ) [inline]
value_type osg::Vec3f::x ( ) const [inline]

References _v.

value_type& osg::Vec3f::y ( ) [inline]
value_type osg::Vec3f::y ( ) const [inline]

References _v.

value_type& osg::Vec3f::z ( ) [inline]
value_type osg::Vec3f::z ( ) const [inline]

References _v.


Member Data Documentation


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