diff options
Diffstat (limited to 'source/gameengine/Rasterizer/RAS_MeshObject.cpp')
-rw-r--r-- | source/gameengine/Rasterizer/RAS_MeshObject.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/source/gameengine/Rasterizer/RAS_MeshObject.cpp b/source/gameengine/Rasterizer/RAS_MeshObject.cpp index 2af71c5efa9..92f134c1702 100644 --- a/source/gameengine/Rasterizer/RAS_MeshObject.cpp +++ b/source/gameengine/Rasterizer/RAS_MeshObject.cpp @@ -125,17 +125,6 @@ RAS_MeshObject::~RAS_MeshObject() { vector<RAS_Polygon*>::iterator it; - if (m_mesh && m_mesh->key) - { - KeyBlock *kb; - // remove the weight cache to avoid memory leak - for (kb = (KeyBlock *)m_mesh->key->block.first; kb; kb = (KeyBlock *)kb->next) { - if (kb->weights) - MEM_freeN(kb->weights); - kb->weights= NULL; - } - } - for (it=m_Polygons.begin(); it!=m_Polygons.end(); it++) delete (*it); @@ -571,49 +560,3 @@ static int get_def_index(Object* ob, const char* vgroup) return -1; } - -void RAS_MeshObject::CheckWeightCache(Object* obj) -{ - KeyBlock *kb; - int kbindex, defindex; - MDeformVert *dv= NULL; - int totvert, i; - float *weights; - - if (!m_mesh->key) - return; - - for (kbindex = 0, kb = (KeyBlock *)m_mesh->key->block.first; kb; kb = kb->next, kbindex++) - { - // first check the cases where the weight must be cleared - if (kb->vgroup[0] == 0 || - m_mesh->dvert == NULL || - (defindex = get_def_index(obj, kb->vgroup)) == -1) { - if (kb->weights) { - MEM_freeN(kb->weights); - kb->weights = NULL; - } - m_cacheWeightIndex[kbindex] = -1; - } else if (m_cacheWeightIndex[kbindex] != defindex) { - // a weight array is required but the cache is not matching - if (kb->weights) { - MEM_freeN(kb->weights); - kb->weights = NULL; - } - - dv= m_mesh->dvert; - totvert= m_mesh->totvert; - - weights= (float*)MEM_mallocN(totvert*sizeof(float), "weights"); - - for (i=0; i < totvert; i++, dv++) { - weights[i] = defvert_find_weight(dv, defindex); - } - - kb->weights = weights; - m_cacheWeightIndex[kbindex] = defindex; - } - } -} - - |