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>2012-01-03 19:28:53 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-01-03 19:28:53 +0400
commit8d8403c15ec8694d7d71d8a9f4a9e3a1fade666e (patch)
treed938809a9b5c5ec2975d347d70b4bc89cbf59404 /source/blender/modifiers/intern
parent0a1e48fa7878328d143b9a348104853a228cdb26 (diff)
for modifiers that are stull creating MFaces - call CDDM_tessfaces_to_faces rather then making an entire copy with CDDM_copy(result, 1)
Diffstat (limited to 'source/blender/modifiers/intern')
-rw-r--r--source/blender/modifiers/intern/MOD_boolean_util.c9
-rw-r--r--source/blender/modifiers/intern/MOD_decimate.c12
-rw-r--r--source/blender/modifiers/intern/MOD_explode.c6
-rw-r--r--source/blender/modifiers/intern/MOD_ngoninterp.c12
-rw-r--r--source/blender/modifiers/intern/MOD_particleinstance.c6
5 files changed, 15 insertions, 30 deletions
diff --git a/source/blender/modifiers/intern/MOD_boolean_util.c b/source/blender/modifiers/intern/MOD_boolean_util.c
index dfa220ba432..9ae0e515acc 100644
--- a/source/blender/modifiers/intern/MOD_boolean_util.c
+++ b/source/blender/modifiers/intern/MOD_boolean_util.c
@@ -346,7 +346,7 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
DerivedMesh *dm2,
Object *ob2)
{
- DerivedMesh *result, *orig_dm, *dm;
+ DerivedMesh *result, *orig_dm;
GHash *material_hash = NULL;
Mesh *me1= (Mesh*)ob1->data;
Mesh *me2= (Mesh*)ob2->data;
@@ -434,12 +434,9 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
CDDM_calc_edges(result);
- dm = CDDM_copy(result, 1); /*builds ngon faces from tess (mface) faces*/
- CDDM_calc_normals(dm);
- result->needsFree = 1;
- result->release(result);
+ CDDM_tessfaces_to_faces(result); /*builds ngon faces from tess (mface) faces*/
- return dm;
+ return result;
}
static void BuildMeshDescriptors(
diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c
index dca6d6a8a31..d14edd6d428 100644
--- a/source/blender/modifiers/intern/MOD_decimate.c
+++ b/source/blender/modifiers/intern/MOD_decimate.c
@@ -181,12 +181,14 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob),
MEM_freeN(lod.vertex_normal_buffer);
MEM_freeN(lod.triangle_index_buffer);
- dm = CDDM_copy(result, 1); /*builds ngon faces from tess (mface) faces*/
- CDDM_calc_normals(dm);
- result->needsFree = 1;
- result->release(result);
+ if (result) {
+ CDDM_tessfaces_to_faces(result); /*builds ngon faces from tess (mface) faces*/
- return dm;
+ return result;
+ }
+ else {
+ return dm;
+ }
}
#else // WITH_MOD_DECIMATE
static DerivedMesh *applyModifier(ModifierData *UNUSED(md), Object *UNUSED(ob),
diff --git a/source/blender/modifiers/intern/MOD_explode.c b/source/blender/modifiers/intern/MOD_explode.c
index 6b75f678c36..793824c4136 100644
--- a/source/blender/modifiers/intern/MOD_explode.c
+++ b/source/blender/modifiers/intern/MOD_explode.c
@@ -774,11 +774,9 @@ static DerivedMesh * cutEdges(ExplodeModifierData *emd, DerivedMesh *dm)
MEM_freeN(facesplit);
MEM_freeN(vertpa);
- dm = CDDM_copy(splitdm, 1); /*builds ngon faces from tess (mface) faces*/
- splitdm->needsFree = 1;
- splitdm->release(splitdm);
+ CDDM_tessfaces_to_faces(splitdm); /*builds ngon faces from tess (mface) faces*/
- return dm;
+ return splitdm;
}
static DerivedMesh * explodeMesh(ExplodeModifierData *emd,
ParticleSystemModifierData *psmd, Scene *scene, Object *ob,
diff --git a/source/blender/modifiers/intern/MOD_ngoninterp.c b/source/blender/modifiers/intern/MOD_ngoninterp.c
index c363a7cfafd..08d83016e18 100644
--- a/source/blender/modifiers/intern/MOD_ngoninterp.c
+++ b/source/blender/modifiers/intern/MOD_ngoninterp.c
@@ -297,16 +297,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob),
dummy->release(dummy);
/*create polys from mface triangles*/
- dummy = cddm;
- cddm = CDDM_copy(cddm, 1);
- dummy->needsFree = 1;
- dummy->release(dummy);
-
- if (copy) {
- copy->needsFree = 1;
- copy->release(dm);
- copy = copy;
- }
+ CDDM_tessfaces_to_faces(cddm); /*builds ngon faces from tess (mface) faces*/
return cddm;
}
@@ -336,4 +327,3 @@ ModifierTypeInfo modifierType_NgonInterp = {
/* foreachObjectLink */ 0,
/* foreachIDLink */ 0,
};
-
diff --git a/source/blender/modifiers/intern/MOD_particleinstance.c b/source/blender/modifiers/intern/MOD_particleinstance.c
index b61cadc246e..06bc53b77ee 100644
--- a/source/blender/modifiers/intern/MOD_particleinstance.c
+++ b/source/blender/modifiers/intern/MOD_particleinstance.c
@@ -312,11 +312,9 @@ static DerivedMesh * applyModifier(ModifierData *md, Object *ob,
if(size)
MEM_freeN(size);
- dm = CDDM_copy(result, 1); /*builds ngon faces from tess (mface) faces*/
- result->needsFree = 1;
- result->release(result);
+ CDDM_tessfaces_to_faces(result); /*builds ngon faces from tess (mface) faces*/
- return dm;
+ return result;
}
static DerivedMesh *applyModifierEM(ModifierData *md, Object *ob,
struct BMEditMesh *UNUSED(editData),