diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-03-31 14:33:27 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2013-03-31 14:33:27 +0400 |
commit | 1360bb6fb0bf0c5c14235c47bf1399accbcecc6f (patch) | |
tree | d7c54ffecd745f9f390e8b4e9283843a8fa704ef /source/blender/modifiers/intern/MOD_mirror.c | |
parent | 829a2cc1b0495a70ca8333f29023bc2414a465f8 (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.c | 9 |
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); |