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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-03-31 14:33:27 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-03-31 14:33:27 +0400
commit1360bb6fb0bf0c5c14235c47bf1399accbcecc6f (patch)
treed7c54ffecd745f9f390e8b4e9283843a8fa704ef /source/blender/modifiers/intern/MOD_mirror.c
parent829a2cc1b0495a70ca8333f29023bc2414a465f8 (diff)
Work-in-progress re-implementation of CustomData-based edge/face marks.
Most changes in revision 55228 were reverted and Freestyle edge/face marks were re-implemented using CD_ORIGINDEX layers of edge/poly custom data. For this implementation to work properly, modifiers were updated so that required CD_ORIGINDEX layers will be set. As pilot cases, the Mirror and Solidify modifiers were updated (see comments in the code). Some Freestyle-specific code is necessary in DerivedMesh.c so that the CD_FREESTYLE_EDGE/FACE layers will be transferred from meshes to derived meshes. This seems unnecessary, so further investigation is foreseen.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_mirror.c')
-rw-r--r--source/blender/modifiers/intern/MOD_mirror.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c
index 2b29f2afb9a..3570b62dbdf 100644
--- a/source/blender/modifiers/intern/MOD_mirror.c
+++ b/source/blender/modifiers/intern/MOD_mirror.c
@@ -161,6 +161,15 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
dm->copyPolyArray(dm, CDDM_get_polys(result));
}
+#if 1 /* WITH_FREESTYLE generic changes */
+ /* if the source DM does not have edge CD_ORIGINDEX layer, then
+ * the corresponding layer of the result DM is filled with zeros
+ * (see CDDM_from_template()) */
+ if (!CustomData_has_layer(&dm->edgeData, CD_ORIGINDEX)) {
+ range_vn_i(DM_get_edge_data_layer(result, CD_ORIGINDEX), maxEdges, 0);
+ }
+#endif
+
/* copy customdata to new geometry,
* copy from its self because this data may have been created in the checks above */
DM_copy_vert_data(result, result, 0, maxVerts, maxVerts);