From 8e7dd6962e22607829f7c3990ff39e5f7312c2ac Mon Sep 17 00:00:00 2001 From: mp3butcher Date: Sat, 18 Mar 2017 02:03:16 +0100 Subject: [PATCH] some cleanup --- cal3d/examples/miniviewer_gl/src/viewer.cpp | 4 +- cal3d/src/cal3d/morphtargetmixer.cpp | 42 +++++++++------------ cal3d/src/cal3d/morphtargetmixer.h | 1 - 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/cal3d/examples/miniviewer_gl/src/viewer.cpp b/cal3d/examples/miniviewer_gl/src/viewer.cpp index 3b26d30..df17d11 100644 --- a/cal3d/examples/miniviewer_gl/src/viewer.cpp +++ b/cal3d/examples/miniviewer_gl/src/viewer.cpp @@ -416,8 +416,8 @@ bool Viewer::onInit() m_calModel->setMaterialSet(0); std::cout << "Disable internal." << std::endl; m_calModel->disableInternalData(); - //m_calModel->getMorphTargetMixer()->m(0 ,1.0f,0,10.00,true) - m_calModel->getMorphTargetMixer()->blend(0, 1.0f, 0, 1.00, true);//ApplyWeightToMorphMesh("MyMiku_1_5_1_20091010_Face_10_mouth_laugh",1.0); + + m_calModel->getMorphTargetMixer()->blend(0, 1.0f, 0, 1.00, true); // set initial animation state if (m_calCoreModel->getCoreAnimationCount() > 0) diff --git a/cal3d/src/cal3d/morphtargetmixer.cpp b/cal3d/src/cal3d/morphtargetmixer.cpp index 641c64f..102e278 100644 --- a/cal3d/src/cal3d/morphtargetmixer.cpp +++ b/cal3d/src/cal3d/morphtargetmixer.cpp @@ -186,7 +186,24 @@ bool CalMorphTargetMixer::clear(int id, float delay) for (itr=tracks.begin(); itr!=tracks.end(); ++itr) { const CalCoreMorphTrack *track = &(*itr); - ApplyWeightToMorphMesh(track->getMorphID(), 0.0f); + CalMesh * targetmesh = m_pModel->getVectorMesh()[track->getTargetMesh()]; + std::vector& submeshes= targetmesh->getVectorSubmesh(); + + if(track->getNumTargetSubMeshes()==0) + { + for(int i=0; igetSubmeshCount(); i++) + { + submeshes[i]->setMorphTargetWeight(track->getMorphID(), 0); + } + } + else + { + for(int i=0; igetNumTargetSubMeshes(); i++) + { + submeshes[track->getTargetSubMesh(i)]->setMorphTargetWeight(track->getMorphID(), 0); + + } + } } mAnimList.erase(mAnimList.begin() + index); @@ -505,7 +522,6 @@ void CalMorphTargetMixer::SetTrackWeights(const CalCoreAnimatedMorph& morph, Mor weight *= alpha; -// ApplyWeightToMorphMesh(track->getMorphName(), weight); CalMesh * targetmesh = m_pModel->getVectorMesh()[track->getTargetMesh()]; std::vector& submeshes= targetmesh->getVectorSubmesh(); @@ -608,25 +624,3 @@ float CalMorphTargetMixer::CalcKeyframeWeight(const std::vector meshVec = m_pModel->getVectorMesh(); - std::vector::iterator meshItr; - for (meshItr=meshVec.begin(); meshItr!=meshVec.end(); ++meshItr) - { - std::vector subMeshVec = (*meshItr)->getVectorSubmesh(); - std::vector::iterator subMeshitr; - for (subMeshitr=subMeshVec.begin(); subMeshitr!=subMeshVec.end(); ++subMeshitr) - { - (*subMeshitr)->setMorphTargetWeight(morphMeshName, trackWeight); - } - } -} -//****************************************************************************// diff --git a/cal3d/src/cal3d/morphtargetmixer.h b/cal3d/src/cal3d/morphtargetmixer.h index f0bc6a8..a02178c 100644 --- a/cal3d/src/cal3d/morphtargetmixer.h +++ b/cal3d/src/cal3d/morphtargetmixer.h @@ -65,7 +65,6 @@ class CAL3D_API CalMorphTargetMixer void SetTrackWeights(const CalCoreAnimatedMorph& morph, MorphAnimData& data); - void ApplyWeightToMorphMesh(const unsigned int &morphMeshName, float trackWeight); }; #endif