骨骼运动数据绘制.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
骨骼运动数据绘制

运动骨骼数据的读取,存储和显示 nustViewer工程的源文件中有15个.cpp文件,头文件中有14个.h文件。除主函数所在的nustViewer.cpp文件之外,每个.cpp文件对应于一个同名的.h文件。 头文件主要是相关类的声明,cpp文件是类中相关函数的定义。下面是对这几个文件的概要及重要的成员函数的说明。 stdafx 这个文件是创建工程的时候,vc++自动创建的,用于建立一个预编译的头文件.PCH和一个预定义的类型文件STDAFX.OBJ,可以加速编译过程。可暂时不去理会。 Posture 2.1 成员变量 Posture类用来将骨骼段的长度,方向,开始坐标,结束坐标各保存在一个数组中去,并提供对其进行访问和设置的函数。其成员变量为: private: osg::Vec3 rootPos; //根骨段的位置 vectorfloat lengthArray; //骨段的长度数组 vectorosg::Vec3 directionArray; //骨段的方向数组 vectorosg::Vec3 startPtArray; //骨段的起点坐标数组(参照世界坐标系) vectorosg::Vec3 endPtArray;//骨段的终点坐标数组(参照世界坐标系) 2.2 int computeEndPt(unsigned int npos) 这个函数根据在npos位置的骨骼段(线段)的开始点和方向计算该骨骼段在全局坐标的中结束点,作为子骨骼的开始点。 2.3 其他的函数是根据骨骼在数组中的存储位置对该骨骼段进行的读取和设置的get和set函数。 Bone 3.1 成员变量 Bone类主要用来存储一个骨骼段的数据,其成员变量为: private: static int nextIdx; //下一个骨段号 int idx; //骨段的序号 string name; //骨段的名称 float length; //骨段的长度 Bone* parentBone; //父骨段,Root的父骨段为NULL vectorBone* childBones;//子骨段数组,若无子骨段,则该数组大小为0 osg::Vec3 direction; //骨段方向的单位向量(世界坐标系下) string axisOrder; //文件中给出的骨段坐标轴的顺序 public: osg::Vec3 rAxis[3]; //坐标轴所对应的方向向量 float rAxisIncludedAngle[3]; //局部坐标轴与世界坐标轴的夹角,对应关系按照axisOrder来确定 int dof[3]; //三方向自由度的标识,若有自由度则值为,若无则为 float rotationLimit[3][2]; //自由度的旋转的角度限制范围 3.2 int Bone::computeChildrenPostures(Posture posture) 这个函数通过递归调用,用深度优先搜索的办法,调用Posture类的方法设置骨骼段在全局坐标系下的开始和结束点的坐标。 3.3 Bone(void);Bone(Bone bone) Bone类的两个构造函数,用来对Bone对象的初始化。 3.4 其他是一些对Bone类成员变量的get和set函数。 Skeleton 4.1 成员变量 Skeleton类主要将骨骼段存储到骨骼数组中去,根据根节点在全局坐标系中的位置,计算骨骼段的开始与结束点的全局坐标,从asf文件中读入的骨骼数据即是存入此类中。其成员变量为: private: osg::Vec3 rootPos; //root在世界坐标系中的位置信息 string rootOrder; //asf文件中root部分所给出的位置、旋转数据出现的顺序 vectorBone* bones; //骨骼段数组,骨骼段数据按次序存入 4.2 其他是一些对骨骼段的get和set函数 SkeletonPat 5.1 成员变量 SkeletonPat类主要存放了位置变换节点(osg::PositionAttitudeTransform)的数组,该数组主要存放了从amc文件中读入的绕各个轴旋转的欧拉角。成员变量的定义为: public: vectorosg::ref_ptrosg::PositionAttitudeTransform bonePat; 5.2 int UpdatePosture(osg

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档