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_type * | ptr ()
const value_type * | ptr () const
void | set (value_type x, value_type y, value_type z)
void | set (const Vec3f &rhs)
value_type & | operator[] (int i)
value_type | operator[] (int i) const
value_type & | x ()
value_type & | y ()
value_type & | z ()
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
Vec3f & | operator*= (value_type rhs)
const Vec3f | operator/ (value_type rhs) const
Vec3f & | operator/= (value_type rhs)
const Vec3f | operator+ (const Vec3f &rhs) const
Vec3f & | operator+= (const Vec3f &rhs)
const Vec3f | operator- (const Vec3f &rhs) const
Vec3f & | operator-= (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

References _v.

Referenced by operator!=(), operator*(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-(), operator-=(), operator/(), operator/=(), operator<(), operator==(), operator^(), and set().

## Vec3f() [2/3]

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

inline

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

## Vec3f() [3/3]

osg::Vec3f::Vec3f | ( | const Vec2f & | v2,
|  | value_type | zz )

inline

References _v.

## Member Function Documentation

## isNaN()

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

inline

Returns true if at least one component has value NaN.

References _v, and osg::isNaN().

Referenced by valid().

## length()

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

inline

Length of the vector = sqrt( vec . vec )

References _v.

Referenced by osgUtil::HalfWayMapGenerator::compute_color(), osgUtil::HighlightMapGenerator::compute_color(), osgUtil::ReflectionMapGenerator::compute_color(), osgSim::ElevationRange::elevationSector(), normalize(), osgParticle::ExplosionOperator::operate(), osgParticle::OrbitOperator::operate(), and osgUtil::CubeMapGenerator::vector_to_color().

## length2()

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

inline

Length squared of the vector = vec . vec

References _v.

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 _v, and length().

## operator!=()

bool osg::Vec3f::operator!= | ( | const Vec3f & | v | ) | const

inline

References _v, and Vec3f().

## operator*() [1/2]

value_type osg::Vec3f::operator* | ( | const Vec3f & | rhs | ) | const

inline

Dot product.

References _v, and Vec3f().

## operator*() [2/2]

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

inline

Multiply by scalar.

References _v, and Vec3f().

## operator*=()

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

inline

Unary multiply by scalar.

References _v, and Vec3f().

## 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, and Vec3f().

## operator-() [1/2]

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

inline

Negation operator. Returns the negative of the Vec3f.

References _v, and Vec3f().

## operator-() [2/2]

const Vec3f osg::Vec3f::operator- | ( | const Vec3f & | rhs | ) | const

inline

Binary vector subtract.

References _v, and Vec3f().

## operator-=()

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

inline

Unary vector subtract.

References _v, and Vec3f().

## operator/()

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

inline

Divide by scalar.

References _v, and Vec3f().

## operator/=()

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

inline

Unary divide by scalar.

References _v, and Vec3f().

## operator<()

bool osg::Vec3f::operator< | ( | const Vec3f & | v | ) | const

inline

References _v, and Vec3f().

## operator==()

bool osg::Vec3f::operator== | ( | const Vec3f & | v | ) | const

inline

References _v, and Vec3f().

## operator[]() [1/2]

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

inline

References _v.

## operator[]() [2/2]

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

inline

References _v.

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

## ptr() [2/2]

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

inline

References _v.

## set() [1/2]

void osg::Vec3f::set | ( | const Vec3f & | rhs | ) |

inline

References _v, and Vec3f().

## set() [2/2]

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

inline

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

Referenced by osgParticle::DomainOperator::computeNewBasis(), osgParticle::CenteredPlacer::setCenter(), osgParticle::AccelOperator::setToGravity(), osgParticle::SegmentPlacer::setVertexA(), and osgParticle::SegmentPlacer::setVertexB().

## 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

References _v.

Referenced by osgSim::AzimRange::azimSector(), osgParticle::DomainOperator::computeNewBasis(), osg::BoundingBoxImpl< Vec3f >::contains(), osg::BoundingBoxImpl< Vec3f >::contains(), osg::Plane::distance(), osg::Plane::dotProductNormal(), osg::BoundingBoxImpl< Vec3f >::expandBy(), osgParticle::Interpolator::interpolate(), osgParticle::AngularDampingOperator::operate(), osgParticle::DampingOperator::operate(), osgTerrain::ValidDataOperator::operator()(), osg::Matrixd::postMult(), osg::Matrixf::postMult(), osg::Matrixd::preMult(), osg::Matrixf::preMult(), osg::Matrixd::scale(), osg::Matrixf::scale(), set(), osg::TexEnvCombine::setConstantColorAsLightDirection(), osg::Matrixd::transform3x3(), osg::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), osgParticle::ParticleSystem::update_bounds(), Vec3f(), and osgUtil::CubeMapGenerator::vector_to_color().

## x() [2/2]

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

inline

References _v.

## y() [1/2]

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

inline

References _v.

Referenced by osgSim::AzimRange::azimSector(), osgParticle::DomainOperator::computeNewBasis(), osg::BoundingBoxImpl< Vec3f >::contains(), osg::BoundingBoxImpl< Vec3f >::contains(), osg::Plane::distance(), osg::Plane::dotProductNormal(), osg::BoundingBoxImpl< Vec3f >::expandBy(), osgParticle::Interpolator::interpolate(), osgParticle::AngularDampingOperator::operate(), osgParticle::DampingOperator::operate(), osgTerrain::ValidDataOperator::operator()(), osg::Matrixd::postMult(), osg::Matrixf::postMult(), osg::Matrixd::preMult(), osg::Matrixf::preMult(), osg::Matrixd::scale(), osg::Matrixf::scale(), set(), osg::TexEnvCombine::setConstantColorAsLightDirection(), osg::Matrixd::transform3x3(), osg::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), osgParticle::ParticleSystem::update_bounds(), Vec3f(), and osgUtil::CubeMapGenerator::vector_to_color().

## y() [2/2]

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

inline

References _v.

## z() [1/2]

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

inline

References _v.

Referenced by osgParticle::DomainOperator::computeNewBasis(), osg::BoundingBoxImpl< Vec3f >::contains(), osg::BoundingBoxImpl< Vec3f >::contains(), osg::Plane::distance(), osg::Plane::dotProductNormal(), osgSim::ElevationRange::elevationSector(), osg::BoundingBoxImpl< Vec3f >::expandBy(), osgParticle::Interpolator::interpolate(), osgParticle::AngularDampingOperator::operate(), osgParticle::DampingOperator::operate(), osgTerrain::ValidDataOperator::operator()(), osg::Matrixd::postMult(), osg::Matrixf::postMult(), osg::Matrixd::preMult(), osg::Matrixf::preMult(), osg::Matrixd::scale(), osg::Matrixf::scale(), set(), osg::TexEnvCombine::setConstantColorAsLightDirection(), osg::Matrixd::transform3x3(), osg::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), osgParticle::ParticleSystem::update_bounds(), Vec3f(), and osgUtil::CubeMapGenerator::vector_to_color().

## z() [2/2]

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

inline

References _v.

## Member Data Documentation

## _v

value_type osg::Vec3f::_v[3]

Referenced by isNaN(), length(), length2(), normalize(), operator!=(), operator*(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-(), operator-=(), operator/(), operator/=(), operator<(), osg::operator<<(), operator==(), osg::operator>>(), operator[](), operator[](), operator^(), ptr(), ptr(), set(), set(), osg::Vec3d::Vec3d(), Vec3f(), Vec3f(), Vec3f(), x(), x(), y(), y(), z(), and z().

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

- Vec3f