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 ©op=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. | |
void | setPositionList (PositionList &pl) |
Set the list of pivot point positions. | |
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 |
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 |
Typical uses incllude trees and particle explosions,
typedef std::vector<Vec3> osg::Billboard::PositionList |
Type definition for pivot point position list.
enum osg::Billboard::Mode |
enum osg::Billboard::AxisAligned [protected] |
osg::Billboard::Billboard | ( | ) |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Billboard::~Billboard | ( | ) | [protected, virtual] |
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.
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] |
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] |