概述
类说明:这是一个最常用的移动结点的类,可以随动,旋转控制结点。这些操作都是乘矩阵得到。 类继承图:
MatrixTransform () MatrixTransform (const MatrixTransform &, const CopyOp ©op=CopyOp::SHALLOW_COPY) MatrixTransform (const Matrix &matix)
说明:构造函数,第二个构造函数为从一个现有MatrixTransform来构造新的MatrixTransform。可以确定拷贝类型。而第三个构造函数为从一个matrix来构造一个MatrixTransform
matrix 已有的源Matrix,它将会被拷贝到新的Matrix
copyop 拷贝类型,默认为浅拷贝,可以为深拷贝:DEEP_COPY_OBJECTS
matix 从已知Matrix中构造MatrixTransform.
META_Node (osg, Switch)
说明:是一个宏,宏中定义了标准Clone,且具有isSameAs,ClassName,accept三个重要方法。目的是让从Node派生的子类方便的定义所需要的纯虚方法
virtual MatrixTransform * asMatrixTransform () virtual const MatrixTransform * asMatrixTransform () const
说明:返回一个MatrixTransform的指针,如果是对象是可以这样使用,或是其父类的其它类型
void setMatrix (const Matrix &mat)
说明:这个方法非常重要,是里面最重要的方法,里面有很多的惯用法。其中格式都是这样的:mat.setMatrix(osg::Matrix::Transform(x,y,z)),其中osg::Matrix::Scale以及osg::Matrix::Rotate也可以被用在其中,并且可以相乖叠加。这样就设置了mat的矩阵。然后把node加入到mat中,再把mat加入到Group中。如示例七。
mat 设置矩阵,示例mat.setMatrix(osg::Matrix::Transform(x,y,z))
const Matrix & getMatrix () const
说明:得到已经设置的矩阵值。返回一个矩阵的引用。
void preMult (const Matrix &mat)
void postMult (const Matrix &mat)
说明:preMult的意思为前乘矩阵,postMult的意思为后乘矩阵
mat 需要乘的矩阵
const Matrix & getInverseMatrix () const
说明:得到逆矩阵
virtual bool computeLocalToWorldMatrix (Matrix &matrix, NodeVisitor *) const
virtual bool computeWorldToLocalMatrix (Matrix &matrix, NodeVisitor *) const
matrix 得到转换后的矩阵值
visitor 结点访问器,指向需要转换的结点
最后
以上就是和谐大侠为你收集整理的osg中的MatrixTransform的全部内容,希望文章能够帮你解决osg中的MatrixTransform所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复