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-24 20:18:20 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-01-24 20:18:20 +0400
commit4af4863baf64e14959454a10443e0ae06b518e7e (patch)
tree06696b03fd54211a971e60f01fd176fcfe963fb9 /source/blender/modifiers/intern/MOD_boolean_util.c
parent644e44e7b6f5d10915f44282fcd728153d71e4fe (diff)
parent1f9e25ac1a7851ab2503b88564c0d480b9e125cf (diff)
svn merge ^/trunk/blender -r43639:43664
Diffstat (limited to 'source/blender/modifiers/intern/MOD_boolean_util.c')
-rw-r--r--source/blender/modifiers/intern/MOD_boolean_util.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/modifiers/intern/MOD_boolean_util.c b/source/blender/modifiers/intern/MOD_boolean_util.c
index 4c17ee54fd2..345cba5d3d1 100644
--- a/source/blender/modifiers/intern/MOD_boolean_util.c
+++ b/source/blender/modifiers/intern/MOD_boolean_util.c
@@ -350,7 +350,7 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
GHash *material_hash = NULL;
Mesh *me1= (Mesh*)ob1->data;
Mesh *me2= (Mesh*)ob2->data;
- int i;
+ int i, *origindex_layer;
// create a new DerivedMesh
result = CDDM_new(vertex_it->num_elements, 0, face_it->num_elements, 0, 0);
@@ -379,6 +379,8 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
*totmat = 0;
}
+ origindex_layer = result->getFaceDataArray(result, CD_ORIGINDEX);
+
// step through the face iterators
for(i = 0; !face_it->Done(face_it->it); i++) {
Mesh *orig_me;
@@ -427,6 +429,9 @@ static DerivedMesh *ConvertCSGDescriptorsToDerivedMesh(
(orig_me == me2)? mapmat: NULL);
test_index_face(mface, &result->faceData, i, csgface.vertex_number);
+
+ if(origindex_layer && orig_ob == ob2)
+ origindex_layer[i] = ORIGINDEX_NONE;
}
if (material_hash)
@@ -523,7 +528,7 @@ static DerivedMesh *NewBooleanDerivedMesh_intern(
CSG_FreeFaceDescriptor(&fd_o);
}
else
- printf("Unknown internal error in boolean");
+ printf("Unknown internal error in boolean\n");
CSG_FreeBooleanOperation(bool_op);