Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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.

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

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

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::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 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.

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

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.

void osg::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 osg::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 osg::Billboard::setPositionList PositionList pl  )  [inline]
 

Set the list of pivot point positions.

void osg::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 file:
Generated at Thu Nov 24 16:22:45 2005 for the OpenSceneGraph by doxygen 1.3.6.