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:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::vector< Vec3PositionList
 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 Vec3getAxis () const
 Get the rotation axis.
void setNormal (const Vec3 &normal)
 This normal defines child Drawables' front face direction when unrotated.
const Vec3getNormal () const
 Get the front face direction normal.
void setPosition (unsigned int i, const Vec3 &pos)
 Set the specified child Drawable's position.
const Vec3getPosition (unsigned int i) const
 Get the specified child Drawable's position.
PositionListgetPositionList ()
 Get the list of pivot point positions.
const PositionListgetPositionList () 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]
 

Enumerator:
AXIAL_ROT_X_AXIS 
AXIAL_ROT_Y_AXIS 
AXIAL_ROT_Z_AXIS 
POINT_ROT_WORLD_Z_AXIS 
CACHE_DIRTY 

enum osg::Billboard::Mode
 

Enumerator:
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 osg::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:
Generated at Wed Mar 8 21:49:42 2006 for the OpenSceneGraph by doxygen 1.4.6.