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

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

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.
void setPositionList (PositionList &pl)
 Set the list of pivot point positions.
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
virtual BoundingSphere computeBound () const
 Compute the bounding sphere around Node's geometry or children.

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 ()
void updateCache ()

Protected Attributes

Mode _mode
Vec3 _axis
Vec3 _normal
Matrix _rotateNormalToZAxis
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::Mode

Enumerator:
POINT_ROT_EYE 
POINT_ROT_WORLD 
AXIAL_ROT 

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 


Constructor & Destructor Documentation

osg::Billboard::Billboard (  ) 

osg::Billboard::Billboard ( const Billboard ,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Billboard::~Billboard (  )  [protected, virtual]


Member Function Documentation

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

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

Set the billboard rotation mode.

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

Get the billboard rotation mode.

void osg::Billboard::setAxis ( const Vec3 axis  ) 

Set the rotation axis for the billboard's child Drawables.

Only utlized when mode==AXIAL_ROT.

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

Get the rotation axis.

void osg::Billboard::setNormal ( const Vec3 normal  ) 

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

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

Get the front face direction normal.

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

Set the specified child Drawable's position.

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

Get the specified child Drawable's position.

void osg::Billboard::setPositionList ( PositionList pl  )  [inline]

Set the list of pivot point positions.

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

Get the list of pivot point positions.

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

Get a const list of pivot point positions.

virtual bool osg::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.

virtual bool osg::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.

virtual bool osg::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.

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

virtual BoundingSphere osg::Billboard::computeBound (  )  const [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.

void osg::Billboard::updateCache (  )  [protected]


Member Data Documentation

Mode osg::Billboard::_mode [protected]

Vec3 osg::Billboard::_axis [protected]

Vec3 osg::Billboard::_normal [protected]

Matrix osg::Billboard::_rotateNormalToZAxis [protected]

PositionList osg::Billboard::_positionList [protected]

int osg::Billboard::_cachedMode [protected]

Vec3 osg::Billboard::_side [protected]


The documentation for this class was generated from the following file:
Generated at Sun Oct 14 02:12:05 2007 for the OpenSceneGraph by doxygen 1.5.3.