我是靠谱客的博主 和谐大侠,最近开发中收集的这篇文章主要介绍osg中的MatrixTransform,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

类说明:这是一个最常用的移动结点的类,可以随动,旋转控制结点。这些操作都是乘矩阵得到。 类继承图:
这里写图片描述
MatrixTransform () MatrixTransform (const MatrixTransform &, const CopyOp &copyop=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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部