OpenSceneGraph  3.0.1
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
osg::Sequence Class Reference

Sequence is a Group node which allows automatic, time based switching between children. More...

Inheritance diagram for osg::Sequence:
Inheritance graph
[legend]

List of all members.

Public Types

enum  LoopMode { LOOP, SWING }
 Interval modes. More...
enum  SequenceMode { START, STOP, PAUSE, RESUME }
 Sequence modes. More...

Public Member Functions

 Sequence ()
 Sequence (const Sequence &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.
 META_Node (osg, Sequence)
virtual void traverse (NodeVisitor &nv)
 Traverse downwards : calls children's accept method with NodeVisitor.
virtual bool addChild (Node *child)
 Add Node to Group.
virtual bool addChild (Node *child, double t)
virtual bool insertChild (unsigned int index, Node *child)
 Insert Node to Group at specific location.
virtual bool insertChild (unsigned int index, Node *child, double t)
virtual bool removeChild (Node *child)
 Remove Node from Group.
virtual bool removeChildren (unsigned int pos, unsigned int numChildrenToRemove)
 Remove children from Group.
void setValue (int value)
 value is which child node is to be displayed
int getValue () const
void setTime (unsigned int frame, double t)
 Set time in seconds for child.
double getTime (unsigned int frame) const
 Get time for child.
void setTimeList (const std::vector< double > &timeList)
 Set the time list for children.
const std::vector< double > & getTimeList () const
 Get the time list for children.
void setDefaultTime (double t)
 Set default time in seconds for new child.
double getDefaultTime (void) const
 Get default time in seconds for new child.
void setLastFrameTime (double t)
 Set time of last frame of last loop, in seconds.
double getLastFrameTime (void) const
 Get last frame time in seconds.
unsigned int getNumFrames () const
 Get number of frames.
void setLoopMode (LoopMode mode)
 Set sequence mode.
LoopMode getLoopMode () const
 Get sequence mode.
void setBegin (int begin)
 Set interval beginning.
int getBegin () const
 Get interval beginning.
void setEnd (int end)
 Set interval ending.
int getEnd () const
 Get interval ending.
void setInterval (LoopMode mode, int begin, int end)
 Set sequence mode & interval (range of children to be displayed).
void getInterval (LoopMode &mode, int &begin, int &end) const
 Get sequence mode & interval.
void setSpeed (float speed)
 Set speed.
float getSpeed () const
 Get speed.
void setNumRepeats (int nreps)
 Set number of repeats.
int getNumRepeats () const
 Get number of repeats.
void setDuration (float speed, int nreps=-1)
 Set duration: speed-up & number of repeats.
void getDuration (float &speed, int &nreps) const
 Get duration & number of repeats.
void setMode (SequenceMode mode)
 Set sequence mode.
SequenceMode getMode () const
 Get sequence mode.
void setSync (bool sync)
 If false (default), frames will not be sync'd to frameTime.
bool getSync () const
 Get sync value.
void setClearOnStop (bool clearOnStop)
 If true, show no child nodes after stopping.
bool getClearOnStop () const
 Get whether to show no child nodes after stopping.

Protected Member Functions

virtual ~Sequence ()
int _getNextValue (void)
void _update (void)

Protected Attributes

int _value
double _now
double _start
std::vector< double > _frameTime
double _totalTime
bool _resetTotalTime
LoopMode _loopMode
int _begin
int _end
float _speed
int _nreps
int _nrepsRemain
int _step
double _defaultTime
double _lastFrameTime
double _saveRealLastFrameTime
unsigned int _saveRealLastFrameValue
SequenceMode _mode
bool _sync
bool _clearOnStop

Detailed Description

Sequence is a Group node which allows automatic, time based switching between children.


Member Enumeration Documentation

Interval modes.

'Loop' repeats frames 1-N; 'swing' repeats 1->N, (N-1)->1.

Enumerator:
LOOP 
SWING 

Sequence modes.

Enumerator:
START 
STOP 
PAUSE 
RESUME 

Constructor & Destructor Documentation

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

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Sequence::~Sequence ( ) [inline, protected, virtual]

Member Function Documentation

int osg::Sequence::_getNextValue ( void  ) [protected]
void osg::Sequence::_update ( void  ) [protected]
virtual bool osg::Sequence::addChild ( Node child) [virtual]

Add Node to Group.

If node is not NULL and is not contained in Group then increment its reference count, add it to the child list and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. Otherwise return false. Scene nodes can't be added as child nodes.

Reimplemented from osg::Group.

virtual bool osg::Sequence::addChild ( Node child,
double  t 
) [virtual]
int osg::Sequence::getBegin ( ) const [inline]

Get interval beginning.

bool osg::Sequence::getClearOnStop ( ) const [inline]

Get whether to show no child nodes after stopping.

double osg::Sequence::getDefaultTime ( void  ) const [inline]

Get default time in seconds for new child.

void osg::Sequence::getDuration ( float &  speed,
int &  nreps 
) const [inline]

Get duration & number of repeats.

int osg::Sequence::getEnd ( ) const [inline]

Get interval ending.

void osg::Sequence::getInterval ( LoopMode mode,
int &  begin,
int &  end 
) const [inline]

Get sequence mode & interval.

double osg::Sequence::getLastFrameTime ( void  ) const [inline]

Get last frame time in seconds.

LoopMode osg::Sequence::getLoopMode ( ) const [inline]

Get sequence mode.

SequenceMode osg::Sequence::getMode ( ) const [inline]

Get sequence mode.

unsigned int osg::Sequence::getNumFrames ( ) const [inline]

Get number of frames.

int osg::Sequence::getNumRepeats ( ) const [inline]

Get number of repeats.

float osg::Sequence::getSpeed ( ) const [inline]

Get speed.

bool osg::Sequence::getSync ( ) const [inline]

Get sync value.

double osg::Sequence::getTime ( unsigned int  frame) const

Get time for child.

const std::vector<double>& osg::Sequence::getTimeList ( ) const [inline]

Get the time list for children.

int osg::Sequence::getValue ( ) const [inline]
virtual bool osg::Sequence::insertChild ( unsigned int  index,
Node child 
) [virtual]

Insert Node to Group at specific location.

The new child node is inserted into the child list before the node at the specified index. No nodes are removed from the group with this operation.

Reimplemented from osg::Group.

virtual bool osg::Sequence::insertChild ( unsigned int  index,
Node child,
double  t 
) [virtual]
osg::Sequence::META_Node ( osg  ,
Sequence   
)
virtual bool osg::Sequence::removeChild ( Node child) [virtual]

Remove Node from Group.

If Node is contained in Group then remove it from the child list, decrement its reference count, and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. If Node is not found then return false and do not change the reference count of the Node. Note, do not override, only override removeChildren(,) is required.

Reimplemented from osg::Group.

virtual bool osg::Sequence::removeChildren ( unsigned int  pos,
unsigned int  numChildrenToRemove 
) [virtual]

Remove children from Group.

Note, must be override by subclasses of Group which add per child attributes.

Reimplemented from osg::Group.

void osg::Sequence::setBegin ( int  begin) [inline]

Set interval beginning.

void osg::Sequence::setClearOnStop ( bool  clearOnStop) [inline]

If true, show no child nodes after stopping.

void osg::Sequence::setDefaultTime ( double  t) [inline]

Set default time in seconds for new child.

if t<0, t=0

void osg::Sequence::setDuration ( float  speed,
int  nreps = -1 
)

Set duration: speed-up & number of repeats.

void osg::Sequence::setEnd ( int  end) [inline]

Set interval ending.

void osg::Sequence::setInterval ( LoopMode  mode,
int  begin,
int  end 
)

Set sequence mode & interval (range of children to be displayed).

void osg::Sequence::setLastFrameTime ( double  t) [inline]

Set time of last frame of last loop, in seconds.

if t<= 0, then ignored

void osg::Sequence::setLoopMode ( LoopMode  mode) [inline]

Set sequence mode.

void osg::Sequence::setMode ( SequenceMode  mode)

Set sequence mode.

Start/stop & pause/resume.

void osg::Sequence::setNumRepeats ( int  nreps) [inline]

Set number of repeats.

void osg::Sequence::setSpeed ( float  speed) [inline]

Set speed.

void osg::Sequence::setSync ( bool  sync) [inline]

If false (default), frames will not be sync'd to frameTime.

If true, frames will be sync'd to frameTime.

void osg::Sequence::setTime ( unsigned int  frame,
double  t 
)

Set time in seconds for child.

void osg::Sequence::setTimeList ( const std::vector< double > &  timeList) [inline]

Set the time list for children.

void osg::Sequence::setValue ( int  value) [inline]

value is which child node is to be displayed

virtual void osg::Sequence::traverse ( NodeVisitor ) [virtual]

Traverse downwards : calls children's accept method with NodeVisitor.

Reimplemented from osg::Group.


Member Data Documentation

int osg::Sequence::_begin [protected]
bool osg::Sequence::_clearOnStop [protected]
double osg::Sequence::_defaultTime [protected]
int osg::Sequence::_end [protected]
std::vector<double> osg::Sequence::_frameTime [protected]
double osg::Sequence::_lastFrameTime [protected]
double osg::Sequence::_now [protected]
int osg::Sequence::_nreps [protected]
int osg::Sequence::_nrepsRemain [protected]
unsigned int osg::Sequence::_saveRealLastFrameValue [protected]
float osg::Sequence::_speed [protected]
double osg::Sequence::_start [protected]
int osg::Sequence::_step [protected]
bool osg::Sequence::_sync [protected]
double osg::Sequence::_totalTime [protected]
int osg::Sequence::_value [protected]

The documentation for this class was generated from the following file:

osg logo
Generated at Mon Oct 3 2011 12:39:43 for the OpenSceneGraph by doxygen 1.7.5.