# osg::Billboard Class Reference

Billboard is a derived form of Geode that orients its osg::Drawable children to face the eye point. More...

Inheritance diagram for osg::Billboard:

[legend]
List of all members.

## Public Types

typedef std::vector< Vec3 > | PositionList
| Type definition for pivot point position list.
enum | Mode { POINT_ROT_EYE, POINT_ROT_WORLD, AXIAL_ROT }

## Public Member Functions

| Billboard ()
| Billboard (const Billboard &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
| Copy constructor using CopyOp to manage deep vs shallow copy.
| META_Node (osg, Billboard)
void | setMode (Mode mode)
| Set the billboard rotation mode.
Mode | getMode () const
| Get the billboard rotation mode.
void | setAxis (const Vec3 &axis)
| Set the rotation axis for the billboard's child Drawables.
const Vec3 & | getAxis () const
| Get the rotation axis.
void | setNormal (const Vec3 &normal)
| This normal defines child Drawables' front face direction when unrotated.
const Vec3 & | getNormal () const
| Get the front face direction normal.
void | setPosition (unsigned int i, const Vec3 &pos)
| Set the specified child Drawable's position.
const Vec3 & | getPosition (unsigned int i) const
| Get the specified child Drawable's position.
PositionList & | getPositionList ()
| Get the list of pivot point positions.
const PositionList & | getPositionList () const
| Get a const list of pivot point positions.
virtual bool | addDrawable (Drawable *gset)
| Add a Drawable with a default position of Vec3(0,0,0).
virtual bool | addDrawable (Drawable *gset, const Vec3 &pos)
| Add a Drawable with a specified position.
virtual bool | removeDrawable (Drawable *gset)
| Remove a Drawable and its associated position.
bool | computeMatrix (Matrix &modelview, const Vec3 &eye_local, const Vec3 &pos_local) const

## Protected Types

enum | AxisAligned { AXIAL_ROT_X_AXIS = AXIAL_ROT+1, AXIAL_ROT_Y_AXIS, AXIAL_ROT_Z_AXIS, POINT_ROT_WORLD_Z_AXIS, CACHE_DIRTY }

## Protected Member Functions

virtual | ~Billboard ()
virtual bool | computeBound () const
| Compute the bounding sphere around Node's geometry or children.
void | updateCache ()

## Protected Attributes

Mode | _mode
Vec3 | _axis
Vec3 | _normal
PositionList | _positionList
int | _cachedMode
Vec3 | _side

## Detailed Description

Billboard is a derived form of Geode that orients its osg::Drawable children to face the eye point.

Typical uses incllude trees and particle explosions,

## Member Typedef Documentation

typedef std::vector<Vec3> osg::Billboard::PositionList

| Type definition for pivot point position list.

## Member Enumeration Documentation

enum osg::Billboard::AxisAligned `[protected]`

Enumeration values:

  AXIAL_ROT_X_AXIS |
  AXIAL_ROT_Y_AXIS |
  AXIAL_ROT_Z_AXIS |
  POINT_ROT_WORLD_Z_AXIS |
  CACHE_DIRTY |

enum osg::Billboard::Mode

Enumeration values:

  POINT_ROT_EYE |
  POINT_ROT_WORLD |
  AXIAL_ROT |

## Constructor & Destructor Documentation

Billboard::Billboard | ( |  | ) |

Billboard::Billboard | ( | const Billboard & | ,
|  | const CopyOp & | copyop = `CopyOp::SHALLOW_COPY`
| ) |

| Copy constructor using CopyOp to manage deep vs shallow copy.

Billboard::~Billboard | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

bool Billboard::addDrawable | ( | Drawable * | gset,
|  | const Vec3 & | pos
| ) | `[virtual]`

| Add a Drawable with a specified position. Call the base-class Geode::addDrawble() to add the given Drawable gset as a child. If Geode::addDrawable() returns true, add the given position pos to the pivot point position list and return true. Otherwise, return false.

bool Billboard::addDrawable | ( | Drawable * | gset | ) | `[virtual]`

| Add a Drawable with a default position of Vec3(0,0,0). Call the base-class Geode::addDrawble() to add the given Drawable gset as a child. If Geode::addDrawable() returns true, add the default position to the pivot point position list and return true. Otherwise, return false. Reimplemented from osg::Geode.

bool Billboard::computeBound | ( |  | ) | const`[protected, virtual]`

| Compute the bounding sphere around Node's geometry or children. This method is automatically called by getBound() when the bounding sphere has been marked dirty via dirtyBound(). Reimplemented from osg::Geode.

bool Billboard::computeMatrix | ( | Matrix & | modelview,
|  | const Vec3 & | eye_local,
|  | const Vec3 & | pos_local
| ) | const

const Vec3& osg::Billboard::getAxis | ( |  | ) | const`[inline]`

| Get the rotation axis.

Mode osg::Billboard::getMode | ( |  | ) | const`[inline]`

| Get the billboard rotation mode.

const Vec3& osg::Billboard::getNormal | ( |  | ) | const`[inline]`

| Get the front face direction normal.

const Vec3& osg::Billboard::getPosition | ( | unsigned int | i | ) | const`[inline]`

| Get the specified child Drawable's position.

const PositionList& osg::Billboard::getPositionList | ( |  | ) | const`[inline]`

| Get a const list of pivot point positions.

PositionList& osg::Billboard::getPositionList | ( |  | ) | `[inline]`

| Get the list of pivot point positions.

osg::Billboard::META_Node | ( | osg | ,
|  | Billboard |
| ) |

bool Billboard::removeDrawable | ( | Drawable * | gset | ) | `[virtual]`

| Remove a Drawable and its associated position. If gset is a child, remove it, decrement its reference count, remove its pivot point position. and return true. Otherwise, return false. Reimplemented from osg::Geode.

void Billboard::setAxis | ( | const Vec3 & | axis | ) |

| Set the rotation axis for the billboard's child Drawables. Only utlized when mode==AXIAL_ROT.

void Billboard::setMode | ( | Mode | mode | ) |

| Set the billboard rotation mode.

void Billboard::setNormal | ( | const Vec3 & | normal | ) |

| This normal defines child Drawables' front face direction when unrotated.

void osg::Billboard::setPosition | ( | unsigned int | i,
|  | const Vec3 & | pos
| ) | `[inline]`

| Set the specified child Drawable's position.

void Billboard::updateCache | ( |  | ) | `[protected]`

## Member Data Documentation

Vec3 osg::Billboard::_axis `[protected]`

int osg::Billboard::_cachedMode `[protected]`

Mode osg::Billboard::_mode `[protected]`

Vec3 osg::Billboard::_normal `[protected]`

PositionList osg::Billboard::_positionList `[protected]`

Vec3 osg::Billboard::_side `[protected]`

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

- Billboard
- Billboard.cpp