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/Rasterizer/RAS_MeshObject.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/Rasterizer/RAS_MeshObject.cpp')
-rw-r--r--source/gameengine/Rasterizer/RAS_MeshObject.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
index 48e9e93b80e..afa62a9a8c6 100644
--- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp
+++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp
@@ -43,6 +43,10 @@
#include <algorithm>
+extern "C" {
+# include "BKE_deform.h"
+}
+
/* polygon sorting */
struct RAS_MeshObject::polygonSlot
@@ -573,8 +577,8 @@ void RAS_MeshObject::CheckWeightCache(Object* obj)
{
KeyBlock *kb;
int kbindex, defindex;
- MDeformVert *dvert= NULL;
- int totvert, i, j;
+ MDeformVert *dv= NULL;
+ int totvert, i;
float *weights;
if (!m_mesh->key)
@@ -598,19 +602,15 @@ void RAS_MeshObject::CheckWeightCache(Object* obj)
kb->weights = NULL;
}
- dvert= m_mesh->dvert;
+ dv= m_mesh->dvert;
totvert= m_mesh->totvert;
- weights= (float*)MEM_callocN(totvert*sizeof(float), "weights");
+ weights= (float*)MEM_mallocN(totvert*sizeof(float), "weights");
- for (i=0; i < totvert; i++, dvert++) {
- for(j=0; j<dvert->totweight; j++) {
- if (dvert->dw[j].def_nr == defindex) {
- weights[i]= dvert->dw[j].weight;
- break;
- }
- }
+ for (i=0; i < totvert; i++, dv++) {
+ weights[i]= defvert_find_weight(dv, defindex);
}
+
kb->weights = weights;
m_cacheWeightIndex[kbindex] = defindex;
}