# osg::Vec3f Class Reference

General purpose float triple for use as vertices, vectors and normals. More...

List of all members.

## Public Types

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
| Dot product.
const Vec3f | operator^ (const Vec3f &rhs) const
| Cross product.
const Vec3f | operator * (value_type rhs) const
| Multiply by scalar.
Vec3f & | operator *= (value_type rhs)
| Unary multiply by scalar.
const Vec3f | operator/ (value_type rhs) const
| Divide by scalar.
Vec3f & | operator/= (value_type rhs)
| Unary divide by scalar.
const Vec3f | operator+ (const Vec3f &rhs) const
| Binary vector add.
Vec3f & | operator+= (const Vec3f &rhs)
| Unary vector add.
const Vec3f | operator- (const Vec3f &rhs) const
| Binary vector subtract.
Vec3f & | operator-= (const Vec3f &rhs)
| Unary vector subtract.
const Vec3f | operator- () const
| Negation operator.
value_type | length () const
| Length of the vector = sqrt( vec .
value_type | length2 () const
| Length squared of the vector = vec .
value_type | normalize ()
| Normalize the vector so that it has length unity.

## Public Attributes

value_type | _v [3]

## Friends

std::ostream & | operator<< (std::ostream &output, const Vec3f &vec)

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

## Constructor & Destructor Documentation

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

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

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

## Member Function Documentation

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

value_type osg::Vec3f::length | ( |  | ) | const`[inline]`

| Length of the vector = sqrt( vec . vec )

value_type osg::Vec3f::length2 | ( |  | ) | const`[inline]`

| Length squared of the vector = vec . vec

value_type osg::Vec3f::normalize | ( |  | ) | `[inline]`

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

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

| Multiply by scalar.

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

| Dot product.

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

| Unary multiply by scalar.

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

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

| Binary vector add.

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

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

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

| Negation operator. Returns the negative of the Vec3f.

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

| Binary vector subtract.

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

| Unary vector subtract.

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

| Divide by scalar.

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

| Unary divide by scalar.

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

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

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

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

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

| Cross product.

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

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

void osg::Vec3f::set | ( | const Vec3f & | rhs | ) | `[inline]`

void osg::Vec3f::set | ( | value_type | x,
|  | value_type | y,
|  | value_type | z
| ) | `[inline]`

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

value_type osg::Vec3f::x | ( |  | ) | const`[inline]`

value_type& osg::Vec3f::x | ( |  | ) | `[inline]`

value_type osg::Vec3f::y | ( |  | ) | const`[inline]`

value_type& osg::Vec3f::y | ( |  | ) | `[inline]`

value_type osg::Vec3f::z | ( |  | ) | const`[inline]`

value_type& osg::Vec3f::z | ( |  | ) | `[inline]`

## Friends And Related Function Documentation

std::ostream& operator<< | ( | std::ostream & | output,
|  | const Vec3f & | vec
| ) | `[friend]`

## Member Data Documentation

value_type osg::Vec3f::_v[3]

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

- Vec3f