openscenegraph
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
osg::Sequence Class Reference
Inheritance diagram for osg::Sequence:
osg::Group osg::Node osg::Object osg::Referenced

List of all members.

Public Types

enum  LoopMode { LOOP, SWING }
enum  SequenceMode { START, STOP, PAUSE, RESUME }

Public Member Functions

 Sequence ()
 Sequence (const Sequence &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 META_Node (osg, Sequence)
virtual void traverse (NodeVisitor &nv)
virtual bool addChild (Node *child)
virtual bool addChild (Node *child, double t)
virtual bool insertChild (unsigned int index, Node *child)
virtual bool insertChild (unsigned int index, Node *child, double t)
virtual bool removeChild (Node *child)
virtual bool removeChildren (unsigned int pos, unsigned int numChildrenToRemove)
void setValue (int value)
int getValue () const
void setTime (unsigned int frame, double t)
double getTime (unsigned int frame) const
void setTimeList (const std::vector< double > &timeList)
const std::vector< double > & getTimeList () const
void setDefaultTime (double t)
double getDefaultTime (void) const
void setLastFrameTime (double t)
double getLastFrameTime (void) const
unsigned int getNumFrames () const
void setLoopMode (LoopMode mode)
LoopMode getLoopMode () const
void setBegin (int begin)
int getBegin () const
void setEnd (int end)
int getEnd () const
void setInterval (LoopMode mode, int begin, int end)
void getInterval (LoopMode &mode, int &begin, int &end) const
void setSpeed (float speed)
float getSpeed () const
void setNumRepeats (int nreps)
int getNumRepeats () const
void setDuration (float speed, int nreps=-1)
void getDuration (float &speed, int &nreps) const
void setMode (SequenceMode mode)
SequenceMode getMode () const
void setSync (bool sync)
bool getSync () const
void setClearOnStop (bool clearOnStop)
bool getClearOnStop () const

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: