osg::Node osg::Group osg::Switch osg::MatrixTransform类接口说明

本文深入解析OSG(OpenSceneGraph)场景图中关键节点类,包括Node、Group、Switch及MatrixTransform的详细功能与用法。涵盖构造、遍历、变换、状态设置等核心操作,适用于游戏开发、3D可视化等领域的程序员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、osg::Node类

类描述:osg::Node为结点类,下有派生类无数,是OSG中最重要的类之一,也是最常用的类之一。

1、Node ()

      Node (const Node &node, const CopyOp &copyop=CopyOp::SHALLOW_COPY)

说明:构造函数,其中第二个重载函数是从已知的Node当中构建出新的Node,里面含有两个参数,第二个参数表示拷贝类型,默认是浅拷贝,可以设置为深拷贝。对于Node有枚举深拷贝值:DEEP_COPY_NODES表示深拷贝

2、virtual Object * cloneType () const

说明:返回该对象的一个拷贝,这是当在使用一个已有Node初始化时使用此函数方有用。

3、virtual Object * clone (const CopyOp &copyop) const

说明:拷贝,参数代表拷贝类型。返回该Node的一个拷贝,拷贝类型。对于Node有枚举值:DEEP_COPY_NODES,SHALLOW_COPY

4、virtual bool isSameKindAs (const Object *obj) const

说明:判断两类是否为一个类型,父类与子类应该算做同一类型。若为同一类型则返回真,否则返回假,obj需要判断与Node是否为同一类型的类。

5、virtual const char * libraryName () const

说明:返回Node的库文件名。

6、virtual const char * className () const

说明:返回Node的类类型名。

7、virtual Group * asGroup () 

      virtual const Group * asGroup () const

说明:把该Node当作一个Group来用,返回指向Group指针,从而具有Group的方法,也可以强制转换。

8、virtual Transform * asTransform ()

      virtual const Transform * asTransform () const

说明:把该Node当作一个Transform来用,返回指向Transform的指针,从而具有Transform的方法。

9、virtual void accept (NodeVisitor &nv)

      virtual void ascend (NodeVisitor &nv) 

      virtual void traverse (NodeVisitor &)

说明:表示接受NodeVisitor的遍历。第一个表示接受遍历,一般表示全遍历。第二个表示向上遍历。第三个表示向下遍历,参数nv表示访问器。是个很重要的工具。

10、const ParentList & getParents () const

       ParentList getParents ()

说明:返回Node的父母结点列表,因为可能有多个父母结点。ParentList 是一个std::vector<Group*>.

11、Group * getParent (unsigned int i)

        const Group * getParent (unsigned int i) const

说明:根据索引值,找到第i个父结点。

12、unsigned int getNumParents () const

说明:得到父结点的个数。

13、NodePathList getParentalNodePaths (osg::Node *haltTraversalAtNode=0) const

说明:允许得到该结点在某个结点之上的父结点路径。返回一个结点列表,设置一个结点,遍历该结点之上的父结点路径。默认值为0,表示从当前结点自己开始遍历。该参数一般肯定为当前结点的某个父结点才有意义。

14、MatrixList getWorldMatrices (osg::Node *haltTraversalAtNode=0) const

说明:得到让该结点在某个结点之上的父结点发生Matrix操作的矩阵结点列表。设置一个结点,遍历使该结点之上的父结点发生Matrix操作的路径。默认值为0,表示从当前结点自己开始遍历。该参数一般肯定为当前结点的某个父结点才有意义。

15、void setUpdateCallback (NodeCallback *nc)

说明:设置一个更新回调,nc为回调函数名。

16、NodeCallback * get

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值