Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-12-15 02:54:38 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-15 02:54:38 +0400
commit40a2c1a2921b50edd8b798e79b6bd2a6d94d7bba (patch)
treef28bc2e08718bbf7e8fee729330c5c1e675c180e /source/gameengine/Converter/BL_SkinDeformer.cpp
parent3d5330f789c287666b875706c84228520473add5 (diff)
more vertex weight edits,
* replace inline loops with api calls. * change constraints so verts with 0.0 weight are ignored like they are everywhere else.
Diffstat (limited to 'source/gameengine/Converter/BL_SkinDeformer.cpp')
-rw-r--r--source/gameengine/Converter/BL_SkinDeformer.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/source/gameengine/Converter/BL_SkinDeformer.cpp b/source/gameengine/Converter/BL_SkinDeformer.cpp
index 0c4806f4bd8..f320df12078 100644
--- a/source/gameengine/Converter/BL_SkinDeformer.cpp
+++ b/source/gameengine/Converter/BL_SkinDeformer.cpp
@@ -237,12 +237,12 @@ void BL_SkinDeformer::BGEDeformVerts()
}
}
+ MDeformVert *dv= dverts;
- for (int i=0; i<m_bmesh->totvert; ++i)
+ for (int i=0; i<m_bmesh->totvert; ++i, dv++)
{
float contrib = 0.f, weight, max_weight=0.f;
bPoseChannel *pchan=NULL;
- MDeformVert *dvert;
Eigen::Map<Eigen::Vector3f> norm(m_transnors[i]);
Eigen::Vector4f vec(0, 0, 0, 1);
Eigen::Matrix4f norm_chan_mat;
@@ -251,18 +251,18 @@ void BL_SkinDeformer::BGEDeformVerts()
m_transverts[i][2],
1.f);
- dvert = dverts+i;
-
- if (!dvert->totweight)
+ if (!dv->totweight)
continue;
- for (int j=0; j<dvert->totweight; ++j)
+ MDeformWeight *dw= dv->dw;
+
+ for (unsigned int j= dv->totweight; j != 0; j--, dw++)
{
- int index = dvert->dw[j].def_nr;
+ const int index = dw->def_nr;
if (index < defbase_tot && (pchan=m_dfnrToPC[index]))
{
- weight = dvert->dw[j].weight;
+ weight = dw->weight;
if (weight)
{