10、osg::AnimationPath,osg::NodeVisitor类

一、osg::AnimationPath类

1、AnimationPath ()

      AnimationPath (const AnimationPath &ap, const CopyOp &copyop=CopyOp::SHALLOW_COPY)

说明:构造函数,第二个构建函数为从已知值来构造新的AnimationPath.

2、bool getMatrix (double time, Matrixf &matrix) const

      bool getMatrix (double time, Matrixd &matrix) const

      bool getInverse (double time, Matrixf &matrix) const

     bool getInverse (double time, Matrixd &matrix) const

说明:得到某一时刻的矩阵与逆矩阵。time该时刻,该path中的矩阵。matrix为引用类型,传入到path中,获得当前矩阵。

3、virtual bool getInterpolatedControlPoint (double time, ControlPoint &controlPoint) const

说明:得到某一时刻的控制点。time为该时刻的控制点,controlPoint为控制点接收值。接收控制点。

4、void insert (double time, const ControlPoint &controlPoint)

说明:插入一个控制点,time为控掉点所对应发生时间。

5、double getFirstTime () const

      double getLastTime () const

说明:得到最开始时间与最后时间。

6、double getPeriod () const

说明:得到开始与最后的时间间隔。

7、void setLoopMode (LoopMode lm)

说明:设置循环模式。lm为循环模式。

8、LoopMode getLoopMode () const

说明:得到循环模式。

9、void setTimeControlPointMap (TimeControlPointMap &tcpm)

说明:设置时间与对应点映射。tcpm为时间与对应点映射。

10、TimeControlPointMap & getTimeControlPointMap () const

        TimeControlPointMap & getTimeControlPointMap () const

说明:得到时间与对应点映射。

11、bool empty () const

说明:判断是否为空。

12、void clear ()

说明:是否清空所有控制点。

13、void read (std::istream &in)

说明:从流中读入所有点。

14、void write (std::ostream &out) const

二、osg::NodeVisitor类

类说明:遍历器。

1、NodeVisitor (TraversalMode tm=TRAVERSE_NONE)

      NodeVisitor (VisitorType type, TraversalMode tm=TRAVERSE_NONE)

说明:构造函数,第一个构造函数只确定遍历类型。第二个有二个参数,一个是访问类型,第二个是遍历类型。第一个可以决定你这干什么 的visitor,第二个可以确定遍历路线。tm为遍历类型。默认值为TRAVERSE_NONE,可以为以下值:TRAVERSE_NONE, TRAVERSE_PARENTS, TRAVERSE_ALL_CHILDREN, TRAVERSE_ACTIVE_CHILDREN,type为访问器类型,可以为以下值: NODE_VISITOR, UPDATE_VISITOR, EVENT_VISITOR, COLLECT_OCCLUDER_VISITOR, CULL_VISITOR

2、virtual ~NodeVisitor ()

说明:析构函数。

3、virtual void reset ()

说明:重置。

4、void setVisitorType (VisitorType type)

说明:设置访问器的类型。type为访问器类型,可以为以下值: NODE_VISITOR, UPDATE_VISITOR, EVENT_VISITOR, COLLECT_OCCLUDER_VISITOR, CULL_VISITOR

5、VisitorType getVisitorType () const

说明:得到访问器的类型。

6、void setTraversalNumber (int fn)

说明:设置遍历数目。

7、int getTraversalNumber () const

说明:得到遍历数目。

8、void setFrameStamp (FrameStamp *fs)

说明:设置帧快照。

9、const FrameStamp * getFrameStamp () const

说明:得到帧快照。

10、void setTraversalMask (Node::NodeMask mask)

说明:设置遍历的nodemask,如果设置了可以决定是否对该结点以及其子结点实行遍历。mask一般为真或者假。即:1或者0。

11、Node::NodeMask getTraversalMask () const

说明:得到NodeMask.

12、void setNodeMaskOverride (Node::NodeMask mask)

说明:比nodemask更高一级的设置,可以忽视setTraversalMask直接决定是否遍历结点。mask一般为真或者假。即:1或者0。

13、Node::NodeMask getNodeMaskOverride () const

说明:得到NodeMaskOverride的设置。

14、bool validNodeMask (const osg::Node &node) const

说明:应用node的NodeMask,该函数是被accept自动调用的。

15、void setTraversalMode (TraversalMode mode)

说明:设置遍历模式。mode为遍历类型。默认值为TRAVERSE_NONE,可以为以下值:TRAVERSE_NONE, TRAVERSE_PARENTS, TRAVERSE_ALL_CHILDREN, TRAVERSE_ACTIVE_CHILDREN

16、TraversalMode getTraversalMode () const

说明:得到遍历模式。

17、void setUserData (Referenced *obj)

说明:你可以通过此额外的设置一些遍历的结点。只是这个obj必须是OSG的结点类。obj为OSG的结点类,设置的额外遍历的类。

18、Referenced * getUserData ()

        const Referenced * getUserData () const

说明:得到设置额外遍历的结点。

19、void traverse (Node &node)

说明:向下遍历结点,系统一般都调用此函数。否则只遍历一层 。遍历结点的上一层结点,将会走到它的下一层结点。

20、void pushOntoNodePath (Node *node)

说明:把它压入到遍历的路径当中去。把node压入到遍历的路径当中。

21、void popFromNodePath ()

说明:从nodePath中弹出一个结点。

22、NodePath & getNodePath ()

        const NodePath & getNodePath () const

说明:得到当前结点到顶结点的路径。

23、virtual osg::Vec3 getEyePoint () const

         virtual osg::Vec3 getViewPoint () const

说明:得到视点。

24、virtual float getDistanceToEyePoint (const Vec3 &, bool) const

         virtual float getDistanceFromEyePoint (const Vec3 &, bool) const

         virtual float getDistanceToViewPoint (const Vec3 &, bool) const

说明:得到视点到参数中所设置点的距 离,并不是每个nodevisitor都实现了这个方法。所以不经确定,不要使用。vec3表示视点到该点的距离,该值就是这个该点,大概是确定是否实现了这个方法的值。

25、virtual void apply (Node &node)

         virtual void apply (Geode &node)

         virtual void apply (Billboard &node)

         virtual void apply (Group &node)

         virtual void apply (ProxyNode &node)

         virtual void apply (Projection &node)

         virtual void apply (CoordinateSystemNode &node)

         virtual void apply (ClipNode &node)

         virtual void apply (TexGenNode &node)

         virtual void apply (LightSource &node)

         virtual void apply (Transform &node)

         virtual void apply (Camera &node)

         virtual void apply (CameraView &node)

         virtual void apply (MatrixTransform &node)

         virtual void apply (PositionAttitudeTransform &node)

         virtual void apply (Switch &node)

         virtual void apply (Sequence &node)

         virtual void apply (LOD &node)

         virtual void apply (PagedLOD &node)

         virtual void apply (ClearNode &node)

         virtual void apply (OccluderNode &node)

说明:一系列重载的apply函数,用于把访问器用到某结点上。

你可能感兴趣的:(10、osg::AnimationPath,osg::NodeVisitor类)