一、osg::Node类
类描述:osg::Node为结点类,下有派生类无数,是OSG中最重要的类之一,也是最常用的类之一。
1、Node ()
Node (const Node &node, const CopyOp ©op=CopyOp::SHALLOW_COPY)
说明:构造函数,其中第二个重载函数是从已知的Node当中构建出新的Node,里面含有两个参数,第二个参数表示拷贝类型,默认是浅拷贝,可以设置为深拷贝。对于Node有枚举深拷贝值:DEEP_COPY_NODES表示深拷贝
2、virtual Object * cloneType () const
说明:返回该对象的一个拷贝,这是当在使用一个已有Node初始化时使用此函数方有用。
3、virtual Object * clone (const CopyOp ©op) 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