![]() |
OpenSceneGraph
|
General purpose double triple for use as vertices, vectors and normals. More...
Public Types | |
enum | { num_components = 3 } |
Number of vector components. More... | |
typedef double | value_type |
Data type of vector components. More... | |
Public Member Functions | |
Vec3d () | |
Constructor that sets all components of the vector to zero. More... | |
Vec3d (const Vec3f &vec) | |
operator Vec3f () const | |
Vec3d (value_type x, value_type y, value_type z) | |
Vec3d (const Vec2d &v2, value_type zz) | |
bool | operator== (const Vec3d &v) const |
bool | operator!= (const Vec3d &v) const |
bool | operator< (const Vec3d &v) const |
value_type * | ptr () |
const value_type * | ptr () const |
void | set (value_type x, value_type y, value_type z) |
void | set (const Vec3d &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 |
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 Vec3d &rhs) const |
Dot product. More... | |
const Vec3d | operator^ (const Vec3d &rhs) const |
Cross product. More... | |
const Vec3d | operator* (value_type rhs) const |
Multiply by scalar. More... | |
Vec3d & | operator*= (value_type rhs) |
Unary multiply by scalar. More... | |
const Vec3d | operator/ (value_type rhs) const |
Divide by scalar. More... | |
Vec3d & | operator/= (value_type rhs) |
Unary divide by scalar. More... | |
const Vec3d | operator+ (const Vec3d &rhs) const |
Binary vector add. More... | |
Vec3d & | operator+= (const Vec3d &rhs) |
Unary vector add. More... | |
const Vec3d | operator- (const Vec3d &rhs) const |
Binary vector subtract. More... | |
Vec3d & | operator-= (const Vec3d &rhs) |
Unary vector subtract. More... | |
const Vec3d | 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] |
General purpose double triple for use as vertices, vectors and normals.
Provides general math operations from addition through to cross products. No support yet added for double * Vec3d - is it necessary? Need to define a non-member non-friend operator* etc. Vec3d * double is okay
typedef double osg::Vec3d::value_type |
Data type of vector components.
|
inline |
Constructor that sets all components of the vector to zero.
Referenced by osg::componentDivide(), osg::componentMultiply(), operator*(), operator+(), operator-(), operator/(), and operator^().
|
inline |
References osg::Vec3f::_v.
|
inline |
|
inline |
|
inline |
Returns true if at least one component has value NaN.
References osg::isNaN().
Referenced by valid().
|
inline |
Length of the vector = sqrt( vec .
vec )
Referenced by osg::Matrixd::getScale(), osg::Matrixf::getScale(), normalize(), and osg::Plane::set().
|
inline |
Length squared of the vector = vec .
vec
|
inline |
Normalize the vector so that it has length unity.
Returns the previous length of the vector. If the vector is zero length, it is left unchanged and zero is returned.
References length().
|
inline |
|
inline |
Dot product.
References _v.
|
inline |
Multiply by scalar.
References Vec3d().
|
inline |
Unary multiply by scalar.
|
inline |
|
inline |
Divide by scalar.
References Vec3d().
|
inline |
Unary divide by scalar.
|
inline |
|
inline |
|
inline |
References _v.
Referenced by osg::GLExtensions::glUniform().
|
inline |
References _v.
|
inline |
Referenced by osg::Plane::set().
|
inline |
|
inline |
Returns true if all components have values that are not NaN.
References isNaN().
|
inline |
Referenced by osg::Plane::distance(), osg::Plane::dotProductNormal(), osg::Matrixd::postMult(), osg::Matrixf::postMult(), osg::Matrixd::preMult(), osg::Matrixf::preMult(), osg::Matrixd::scale(), osg::Matrixf::scale(), set(), osg::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), and Vec3d().
|
inline |
|
inline |
Referenced by osg::Plane::distance(), osg::Plane::dotProductNormal(), osg::Matrixd::postMult(), osg::Matrixf::postMult(), osg::Matrixd::preMult(), osg::Matrixf::preMult(), osg::Matrixd::scale(), osg::Matrixf::scale(), set(), osg::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), and Vec3d().
|
inline |
|
inline |
Referenced by osg::Plane::distance(), osg::Plane::dotProductNormal(), osg::Matrixd::postMult(), osg::Matrixf::postMult(), osg::Matrixd::preMult(), osg::Matrixf::preMult(), osg::Matrixd::scale(), osg::Matrixf::scale(), set(), osg::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), and Vec3d().
|
inline |
value_type osg::Vec3d::_v[3] |
Referenced by operator!=(), operator*(), operator+(), operator+=(), operator-(), operator-=(), operator<(), osg::operator<<(), operator==(), osg::operator>>(), operator^(), and ptr().