osg::Vec3d Class Reference

`#include <Vec3d>`

## Public Types

enum | { num_components = 3 }
typedef double | value_type

## Public Member Functions

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

## Public Attributes

value_type | _v [3]

## Detailed Description

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

## Member Typedef Documentation

## value_type

typedef double osg::Vec3d::value_type

Data type of vector components.

## Member Enumeration Documentation

## anonymous enum

anonymous enum

Number of vector components.

Enumerator
num_components |

## Constructor & Destructor Documentation

## Vec3d() [1/4]

osg::Vec3d::Vec3d | ( |  | ) |

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().

## Vec3d() [2/4]

osg::Vec3d::Vec3d | ( | const Vec3f & | vec | ) |

inline

References _v, and osg::Vec3f::_v.

## Vec3d() [3/4]

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

inline

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

## Vec3d() [4/4]

osg::Vec3d::Vec3d | ( | const Vec2d & | v2,
|  | value_type | zz )

inline

References _v.

## Member Function Documentation

## isNaN()

bool osg::Vec3d::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::Vec3d::length | ( |  | ) | const

inline

Length of the vector = sqrt( vec . vec )

References _v.

Referenced by osg::Matrixd::getScale(), osg::Matrixf::getScale(), normalize(), and osg::Plane::set().

## length2()

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

inline

Length squared of the vector = vec . vec

References _v.

## normalize()

value_type osg::Vec3d::normalize | ( |  | ) |

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

## operator Vec3f()

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

inline

References _v.

## operator!=()

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

inline

References _v, and Vec3d().

## operator*() [1/2]

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

inline

Dot product.

References _v, and Vec3d().

## operator*() [2/2]

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

inline

Multiply by scalar.

References _v, and Vec3d().

## operator*=()

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

inline

Unary multiply by scalar.

References _v, and Vec3d().

## operator+()

const Vec3d osg::Vec3d::operator+ | ( | const Vec3d & | rhs | ) | const

inline

Binary vector add.

References _v, and Vec3d().

## operator+=()

Vec3d & osg::Vec3d::operator+= | ( | const Vec3d & | rhs | ) |

inline

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

References _v, and Vec3d().

## operator-() [1/2]

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

inline

Negation operator. Returns the negative of the Vec3d.

References _v, and Vec3d().

## operator-() [2/2]

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

inline

Binary vector subtract.

References _v, and Vec3d().

## operator-=()

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

inline

Unary vector subtract.

References _v, and Vec3d().

## operator/()

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

inline

Divide by scalar.

References _v, and Vec3d().

## operator/=()

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

inline

Unary divide by scalar.

References _v, and Vec3d().

## operator<()

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

inline

References _v, and Vec3d().

## operator==()

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

inline

References _v, and Vec3d().

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

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

inline

References _v.

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

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

inline

References _v.

## operator^()

const Vec3d osg::Vec3d::operator^ | ( | const Vec3d & | rhs | ) | const

inline

Cross product.

References _v, and Vec3d().

## ptr() [1/2]

value_type * osg::Vec3d::ptr | ( |  | ) |

inline

References _v.

## ptr() [2/2]

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

inline

References _v.

## set() [1/2]

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

inline

References _v, and Vec3d().

## set() [2/2]

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

inline

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

Referenced by osg::Plane::set().

## valid()

bool osg::Vec3d::valid | ( |  | ) | const

inline

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

References isNaN().

## x() [1/2]

value_type & osg::Vec3d::x | ( |  | ) |

inline

References _v.

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::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), and Vec3d().

## x() [2/2]

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

inline

References _v.

## y() [1/2]

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

inline

References _v.

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::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), and Vec3d().

## y() [2/2]

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

inline

References _v.

## z() [1/2]

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

inline

References _v.

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::Matrixd::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixf::transform3x3(), osg::Matrixd::translate(), osg::Matrixf::translate(), and Vec3d().

## z() [2/2]

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

inline

References _v.

## Member Data Documentation

## _v

value_type osg::Vec3d::_v[3]

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

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

- Vec3d