osgSim.SequenceGroup类是OpenSceneGraph中的一个节点组合器,它可以将多个节点按照顺序播放,实现动画效果。
osg::Referenced
|
+--osg::Object
|
+--osg::Node
|
+--osg::Group
|
+--osgSim::Sequence
|
+--osgSim::SequencePlayer
|
+--osgSim::SequenceManipulator
|
+--osgSim::SequenceGenerator
|
+--osgSim::SequenceStabilizer
|
+--osgSim::SequenceRecorder
|
+--osgSim::SequenceDumper
|
+--osgSim::SequenceFrameManager
osgSim.SequenceGroup是osgSim.Sequence的子类,也是osg::Group的子类。
SequenceGroup()创建一个空的osgSim.SequenceGroup对象。
SequenceGroup(const SequenceGroup& sg, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY)从现有的osgSim.SequenceGroup对象sg克隆一个新对象,并应用CopyOp指定的操作类型。
osgSim.SequenceGroup是一个组合节点,它可以包含其他节点。使用以下方法添加、删除和查询子节点。
unsigned int addChild(osg::Node* child)将指定的节点添加为子节点,并返回子节点在组合节点中的位置索引。
unsigned int insertChild(unsigned int index, osg::Node* child)将指定的节点插入到指定位置,并返回子节点在组合节点中的位置索引。
bool removeChildren(unsigned int pos, unsigned int numChildrenToRemove=1)从指定位置开始,删除指定数量的子节点。
bool replaceChild(osg::Node* origChild, osg::Node* newChild)替换指定的子节点。
bool replaceChild(unsigned int pos, osg::Node* newChild)替换指定位置的子节点。
osg::Node* getChild(unsigned int i)返回指定位置的子节点。
const osg::Node* getChild(unsigned int i) const返回指定位置的子节点。
unsigned int getNumChildren() const返回子节点数量。
unsigned int indexChildren(osg::Node* child)返回指定节点在组合节点中的位置索引。
osgSim.SequenceGroup可以将多个节点沿着指定的时间轴播放,实现动画效果。以下为相关方法。
void setStartTime(double start_time)设置起始时间,以秒为单位。
double getStartTime() const返回起始时间。
void setEndTime(double end_time)设置结束时间,以秒为单位。
double getEndTime() const返回结束时间。
osg::BoundingBox computeBoundingBox() const计算所有子节点的边界框并返回。
void traverse(osg::NodeVisitor& nv)遍历节点和子节点,并将它们沿时间轴按顺序播放。
void traverseSequence(osg::NodeVisitor& nv)仅遍历节点序列本身,不影响子节点。
virtual void setNodeMask(unsigned int mask)设置节点蒙版。
以下是osgSim.SequenceGroup的一些参数和默认值:
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| _startTime | double | 0.0 | 起始时间 |
| _endTime | double | 0.0 | 结束时间 |
| _sequenceMode | SequenceMode | ONCE | 播放模式 |
| _playMode | PlayMode | REALTIME | 播放模式 |
| _currentDataList | DataListContainer | - | 当前数据列表 |
| _ignoreList | IgnoreListContainer | - | 忽略列表 |
| _cacheDataLists | CacheDataLists | false | 是否缓存数据列表 |
| _frameNumber | unsigned int | 0 | 帧数 |
[1] osgSim.SequenceGroup Documentation. https://openscenegraph.github.io/documentation/OpenSceneGraphReferenceDocs/a00264.html. Accessed 22 Apr. 2021.
[2] OpenSceneGraph Documentation. https://www.openscenegraph.org/index.php/documentation/. Accessed 22 Apr. 2021.