OpenSceneGraph 2.8.3
|
This class manage format for software skinning it used the technic on this paper http://www.intel.com/cd/ids/developer/asmo-na/eng/172124.htm The idea is to prepare the data to do only v' = M x v with M a combined matrix as below M = Mbone1 * w1 + Mbone2 * w2 + ... More...
Classes | |
class | BoneWeight |
class | UniqBoneSetVertexSet |
Public Types | |
typedef osg::Matrix | MatrixType |
typedef osgAnimation::Bone | BoneType |
typedef Bone::BoneMap | BoneMap |
typedef std::vector< BoneWeight > | BoneWeightList |
typedef std::vector< int > | VertexList |
Public Member Functions | |
void | init (const BoneMap &map, const osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSetList &influence) |
template<class V > | |
void | compute (const V *src, V *dst) |
template<class V > | |
void | compute (const MatrixType &transform, const MatrixType &invTransform, const V *src, V *dst) |
template<class V > | |
void | computeNormal (const MatrixType &transform, const MatrixType &invTransform, const V *src, V *dst) |
Protected Attributes | |
std::vector< UniqBoneSetVertexSet > | _boneSetVertexSet |
This class manage format for software skinning it used the technic on this paper http://www.intel.com/cd/ids/developer/asmo-na/eng/172124.htm The idea is to prepare the data to do only v' = M x v with M a combined matrix as below M = Mbone1 * w1 + Mbone2 * w2 + ...
a M matrix is uniq for a set of vertex then to fully compute the skinned mesh you have to iterate on each UniqBoneSetVertexSet
typedef Bone::BoneMap osgAnimation::TransformVertexFunctor::BoneMap |
typedef std::vector<BoneWeight> osgAnimation::TransformVertexFunctor::BoneWeightList |
typedef std::vector<int> osgAnimation::TransformVertexFunctor::VertexList |
void osgAnimation::TransformVertexFunctor::compute | ( | const V * | src, |
V * | dst | ||
) | [inline] |
void osgAnimation::TransformVertexFunctor::compute | ( | const MatrixType & | transform, |
const MatrixType & | invTransform, | ||
const V * | src, | ||
V * | dst | ||
) | [inline] |
void osgAnimation::TransformVertexFunctor::computeNormal | ( | const MatrixType & | transform, |
const MatrixType & | invTransform, | ||
const V * | src, | ||
V * | dst | ||
) | [inline] |
References _boneSetVertexSet, osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::computeMatrixForVertexSet(), osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getMatrix(), osgAnimation::TransformVertexFunctor::UniqBoneSetVertexSet::getVertexes(), and osg::Matrixd::transform3x3().
void osgAnimation::TransformVertexFunctor::init | ( | const BoneMap & | map, |
const osgAnimation::VertexInfluenceSet::UniqVertexSetToBoneSetList & | influence | ||
) | [inline] |
std::vector<UniqBoneSetVertexSet> osgAnimation::TransformVertexFunctor::_boneSetVertexSet [protected] |
Referenced by compute(), computeNormal(), and init().
![]() | Generated at Tue Mar 22 2011 13:20:25 for the OpenSceneGraph by doxygen 1.7.3. |