diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-10-20 13:18:55 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-10-20 13:18:55 +0400 |
commit | a044486d7d8faf3acc32d7c1d6dbf505c03e3631 (patch) | |
tree | b329a5de607c5aff7ae60e202347a0eefb025d5d /source/blender/blenkernel | |
parent | c2aa5d6dc01dbc42ef9815bdbe8917b6164bf840 (diff) |
[#24267] Hook fails after Solidify
Solidify modifier wasn't assigning origindex values.
- BLI_math.h array functions: range_vni(), mul_vn_fl(), mul_vn_vn_fl(), add_vn_vn(), fill_vni().
- define 'AT' as __FILE__ ":" STRINGIFY(__LINE__), useful for quick debug prints.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_utildefines.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 10 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/source/blender/blenkernel/BKE_utildefines.h b/source/blender/blenkernel/BKE_utildefines.h index 8359bfdb01b..83dcde26233 100644 --- a/source/blender/blenkernel/BKE_utildefines.h +++ b/source/blender/blenkernel/BKE_utildefines.h @@ -44,6 +44,8 @@ #define STRINGIFY_ARG(x) #x #define STRINGIFY(x) STRINGIFY_ARG(x) +/* useful for debugging */ +#define AT __FILE__ ":" STRINGIFY(__LINE__) #ifdef __GNUC__ diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index 2e8922dec1b..c213a5a4ce2 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1840,17 +1840,13 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos /* constructive modifiers need to have an origindex * otherwise they wont have anywhere to copy the data from */ if(needMapping) { - int *index, i; DM_add_vert_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); DM_add_edge_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); DM_add_face_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); - index = DM_get_vert_data_layer(dm, CD_ORIGINDEX); - for(i=0; i<dm->numVertData; i++) *index++= i; - index = DM_get_edge_data_layer(dm, CD_ORIGINDEX); - for(i=0; i<dm->numEdgeData; i++) *index++= i; - index = DM_get_face_data_layer(dm, CD_ORIGINDEX); - for(i=0; i<dm->numFaceData; i++) *index++= i; + range_vni(DM_get_vert_data_layer(dm, CD_ORIGINDEX), dm->numVertData, 0); + range_vni(DM_get_edge_data_layer(dm, CD_ORIGINDEX), dm->numEdgeData, 0); + range_vni(DM_get_face_data_layer(dm, CD_ORIGINDEX), dm->numFaceData, 0); } } diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index eb895d62f17..20987e15c4d 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -1686,6 +1686,8 @@ DerivedMesh *CDDM_copy(DerivedMesh *source) return dm; } +/* note, the CD_ORIGINDEX layers are all 0, so if there is a direct + * relationship betwen mesh data this needs to be set by the caller. */ DerivedMesh *CDDM_from_template(DerivedMesh *source, int numVerts, int numEdges, int numFaces) { |