## class SG_EXPORT osg::Billboard

> Billboard - a Geode which orientates its child osg::Drawable's to face the eye point.

## Inheritance:

### Public Methods

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.
inline Mode getMode() const
  Get the billboard rotation mode.
void setAxis(const Vec3& axis)
  Set the axis about which all the billboard's drawable rotate.
inline const Vec3& getAxis() const
  Get the axis about which all the billboard's drawable rotate.
void setNormal(const Vec3& normal)
  Set the normal which defines the billboard's drawable front face, when unrotated.
inline const Vec3& getNormal() const
  Get the normal of billboard's drawable front face.
inline void setPos(unsigned int i, const Vec3& pos)
  Set the position of specified drawable.
inline const Vec3& getPos(unsigned int i) const
  Get the position of specified drawable.
inline PositionList& getPositionList()
  Get the PositionList from the billboard
inline const PositionList& getPositionList() const
  Get a const PositionList from the billboard
virtual bool addDrawable( Drawable* gset )
  Add Drawable to Billboard with default position(0,0,0); If gset not NULL and is not contained in Billboard then increment its reference count, and dirty the bounding box to cause it to recompute on next getBound() and return true for success.
virtual bool addDrawable(Drawable* gset, const Vec3& pos)
  Add Drawable to Geode at position pos.
virtual bool removeDrawable( Drawable* gset )
  Remove Drawable and associated position from Billboard.
inline bool getMatrix(Matrix& modelview, const Vec3& eye_local, const Vec3& pos_local) const
virtual bool computeMatrix(Matrix& modelview, const Vec3& eye_local, const Vec3& pos_local) const

### Public Members

enum Mode
typedef std::vector<Vec3> PositionList
  PositionList represents a list of pivot points for each drawable

### Protected Fields

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

### Protected Methods

virtual ~Billboard()
virtual bool computeBound() const
void updateCache()

### Protected Members

enum AxisAligned

### Inherited from Geode:

### Public Methods

virtual bool replaceDrawable( Drawable* origDraw, Drawable* newDraw )
virtual bool setDrawable( unsigned int i, Drawable* drawable )
inline unsigned int getNumDrawables() const
inline Drawable* getDrawable( unsigned int i )
inline const Drawable* getDrawable( unsigned int i ) const
inline bool containsDrawable(const Drawable* gset) const
inline unsigned int getDrawableIndex( const Drawable* node ) const
void compileDrawables(State& state)

### Public Members

typedef std::vector< ref_ptr<Drawable> > DrawableList

### Protected Fields

DrawableList _drawables

### Inherited from Node:

### Public Methods

virtual Object* cloneType() const
virtual Object* clone(const CopyOp& copyop) const
virtual bool isSameKindAs(const Object* obj) const
virtual const char* libraryName() const
virtual const char* className() const
virtual Group* asGroup()
virtual const Group* asGroup() const
virtual Transform* asTransform()
virtual const Transform* asTransform() const
virtual void accept(NodeVisitor& nv)
virtual void ascend(NodeVisitor& nv)
virtual void traverse(NodeVisitor& )
inline void setName( const std::string& name )
inline void setName( const char* name )
inline const std::string& getName() const
inline const ParentList& getParents() const
inline ParentList getParents()
inline Group* getParent(unsigned int i)
inline const Group* getParent(unsigned int i) const
inline unsigned int getNumParents() const
void setUpdateCallback(NodeCallback* nc)
inline NodeCallback* getUpdateCallback()
inline const NodeCallback* getUpdateCallback() const
inline unsigned int getNumChildrenRequiringUpdateTraversal() const
void setCullCallback(NodeCallback* nc)
inline NodeCallback* getCullCallback()
inline const NodeCallback* getCullCallback() const
void setCullingActive(bool active)
inline bool getCullingActive() const
inline unsigned int getNumChildrenWithCullingDisabled() const
inline bool isCullingActive() const
inline unsigned int getNumChildrenWithOccluderNodes() const
bool containsOccluderNodes() const
inline void setNodeMask(NodeMask nm)
inline NodeMask getNodeMask() const
inline const DescriptionList& getDescriptions() const
inline DescriptionList& getDescriptions()
inline const std::string& getDescription(unsigned int i) const
inline std::string& getDescription(unsigned int i)
inline unsigned int getNumDescriptions() const
void addDescription(const std::string& desc)
inline void setStateSet(osg::StateSet* dstate)
osg::StateSet* getOrCreateStateSet()
inline osg::StateSet* getStateSet()
inline const osg::StateSet* getStateSet() const
inline const BoundingSphere& getBound() const
void dirtyBound()

### Public Members

typedef std::vector<Group*> ParentList
typedef unsigned int NodeMask
typedef std::vector<std::string> DescriptionList

### Protected Fields

mutable BoundingSphere _bsphere
mutable bool _bsphere_computed
std::string _name
ParentList _parents
ref_ptr<NodeCallback> _updateCallback
unsigned int _numChildrenRequiringUpdateTraversal
ref_ptr<NodeCallback> _cullCallback
bool _cullingActive
unsigned int _numChildrenWithCullingDisabled
unsigned int _numChildrenWithOccluderNodes
NodeMask _nodeMask
DescriptionList _descriptions
ref_ptr<StateSet> _stateset

### Protected Methods

void addParent(osg::Group* node)
void removeParent(osg::Group* node)
void setNumChildrenRequiringUpdateTraversal(unsigned int num)
void setNumChildrenWithCullingDisabled(unsigned int num)
void setNumChildrenWithOccluderNodes(unsigned int num)

### Inherited from Object:

### Public Methods

inline void setDataVariance(DataVariance dv)
inline DataVariance getDataVariance() const
inline void setUserData(Referenced* obj)
inline Referenced* getUserData()
inline const Referenced* getUserData() const

### Public Members

enum DataVariance

### Protected Fields

DataVariance _dataVariance
ref_ptr<Referenced> _userData

### Inherited from Referenced:

### Public Methods

inline Referenced& operator = (Referenced&)
static void setDeleteHandler(DeleteHandler* handler)
static DeleteHandler* getDeleteHandler()
inline void ref() const
inline void unref_nodelete() const
inline int referenceCount() const
inline void unref() const

### Protected Fields

mutable int _refCount

## Documentation

> Billboard - a Geode which orientates its child osg::Drawable's to face the eye point. Typical uses are for trees, or particle explosions.

`enum Mode`

`POINT_ROT_EYE`

`POINT_ROT_WORLD`

`AXIAL_ROT`

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

`inline Mode getMode() const`
  Get the billboard rotation mode.

`void setAxis(const Vec3& axis)`
  Set the axis about which all the billboard's drawable rotate. Only utlized when mode==AXIAL_ROT

`inline const Vec3& getAxis() const`
  Get the axis about which all the billboard's drawable rotate.

`void setNormal(const Vec3& normal)`
  Set the normal which defines the billboard's drawable front face, when unrotated.

`inline const Vec3& getNormal() const`
  Get the normal of billboard's drawable front face.

`inline void setPos(unsigned int i, const Vec3& pos)`
  Set the position of specified drawable.

`inline const Vec3& getPos(unsigned int i) const`
  Get the position of specified drawable.

`typedef std::vector<Vec3> PositionList`
  PositionList represents a list of pivot points for each drawable

`inline PositionList& getPositionList()`
  Get the PositionList from the billboard

`inline const PositionList& getPositionList() const`
  Get a const PositionList from the billboard

`virtual bool addDrawable( Drawable* gset )`
  Add Drawable to Billboard with default position(0,0,0); If gset not NULL and is not contained in Billboard then increment its reference count, and dirty the bounding box to cause it to recompute on next getBound() and return true for success. Otherwise return false.

`virtual bool addDrawable(Drawable* gset, const Vec3& pos)`
  Add Drawable to Geode at position pos. If gset not NULL and is not contained in Billboard then increment its reference count, and dirty the bounding box to cause it to recompute on next getBound() and return true for success. Otherwise return false.

`virtual bool removeDrawable( Drawable* gset )`
  Remove Drawable and associated position from Billboard. If gset is contained in Billboard then remove it from the geoset list and decrement its reference count, and dirty the bounding box to cause it to recompute on next getBound() and return true for success. If gset is not found then return false and do not the reference count of gset is left unchanged.

`inline bool getMatrix(Matrix& modelview, const Vec3& eye_local, const Vec3& pos_local) const`

`virtual bool computeMatrix(Matrix& modelview, const Vec3& eye_local, const Vec3& pos_local) const`

`virtual ~Billboard()`

`virtual bool computeBound() const`

`enum AxisAligned`

`AXIAL_ROT_X_AXIS`

`AXIAL_ROT_Y_AXIS`

`AXIAL_ROT_Z_AXIS`

`CACHE_DIRTY`

`Mode _mode`

`Vec3 _axis`

`Vec3 _normal`

`PositionList _positionList`

`int _cachedMode`

`Vec3 _side`

`void updateCache()`

This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java

This page was generated with the help of DOC++.