reroot to rigtransform::prepareData old path to rig::buildvertexinfluence

This commit is contained in:
Julien Valentin 2017-08-28 15:59:13 +02:00
parent 7659b23f38
commit 2aab28149f
4 changed files with 9 additions and 9 deletions

View File

@ -17,7 +17,7 @@
#include <osgAnimation/Export>
#include <osgAnimation/Skeleton>
#include <osgAnimation/RigTransform>
#include <osgAnimation/RigTransformSoftware>
#include <osgAnimation/VertexInfluence>
#include <osg/Geometry>
@ -151,8 +151,13 @@ namespace osgAnimation
osg::notify(osg::WARN) << "A RigGeometry did not find a parent skeleton for RigGeometry ( " << geom->getName() << " )" << std::endl;
return;
}
geom->buildVertexInfluenceSet();
geom->setSkeleton(finder._root.get());
if(!geom->getRigTransformImplementation())
{
geom->setRigTransformImplementation(new RigTransformSoftware);
}
geom->getRigTransformImplementation()->prepareData(*geom);
}
if(!geom->getSkeleton())

View File

@ -118,11 +118,6 @@ void RigGeometry::computeMatrixFromRootSkeleton()
void RigGeometry::update()
{
if (!getRigTransformImplementation())
{
_rigTransformImplementation = new RigTransformSoftware;
}
RigTransform& implementation = *getRigTransformImplementation();
(implementation)(*this);
}

View File

@ -600,7 +600,7 @@ bool RigTransformHardware::init(RigGeometry& geom)
void RigTransformHardware::operator()(RigGeometry& geom)
{
if (_needInit)
if (!init(geom))
if (!prepareData(geom))
return;
computeMatrixPaletteUniform(geom.getMatrixFromSkeletonToGeometry(), geom.getInvMatrixFromSkeletonToGeometry());
}

View File

@ -256,7 +256,7 @@ bool RigTransformSoftware::prepareData(RigGeometry&rig) {
void RigTransformSoftware::operator()(RigGeometry& geom)
{
if (_needInit)
if (!init(geom))
if (!prepareData(geom))
return;
if (!geom.getSourceGeometry()) {