move modifier callback wrappers into modifier.c
authorCampbell Barton <ideasman42@gmail.com>
Wed, 19 Jun 2013 08:00:20 +0000 (08:00 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 19 Jun 2013 08:00:20 +0000 (08:00 +0000)
source/blender/blenkernel/BKE_modifier.h
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenkernel/intern/modifier.c

index 6b9392a416983dac267d60fce175fb835b6b8d05..3f3a5739d556b8816d03116f89ff5bf2dc03d503 100644 (file)
@@ -391,5 +391,30 @@ void modifier_mdef_compact_influences(struct ModifierData *md);
 void        modifier_path_init(char *path, int path_maxlen, const char *name);
 const char *modifier_path_relbase(struct Object *ob);
 
+
+/* wrappers for modifier callbacks */
+
+struct DerivedMesh *modwrap_applyModifier(
+        ModifierData *md, struct Object *ob,
+        struct DerivedMesh *dm,
+        ModifierApplyFlag flag);
+
+struct DerivedMesh *modwrap_applyModifierEM(
+        ModifierData *md, struct Object *ob,
+        struct BMEditMesh *em,
+        struct DerivedMesh *dm,
+        ModifierApplyFlag flag);
+
+void modwrap_deformVerts(
+        ModifierData *md, struct Object *ob,
+        struct DerivedMesh *dm,
+        float (*vertexCos)[3], int numVerts,
+        ModifierApplyFlag flag);
+
+void modwrap_deformVertsEM(
+        ModifierData *md, struct Object *ob,
+        struct BMEditMesh *em, struct DerivedMesh *dm,
+        float (*vertexCos)[3], int numVerts);
+
 #endif
 
index 6a21f33ac15407ae4cca3030c34c6aacf36c4c4a..c9c33014aa59df6c4daf3bee8a1e2088680fe9e7 100644 (file)
@@ -845,69 +845,6 @@ DerivedMesh *mesh_create_derived(Mesh *me, Object *ob, float (*vertCos)[3])
        return dm;
 }
 
-/***/
-
-/* wrapper around ModifierTypeInfo.applyModifier that ensures valid normals */
-
-static DerivedMesh *modwrap_applyModifier(
-        ModifierData *md, Object *ob,
-        DerivedMesh *dm,
-        ModifierApplyFlag flag)
-{
-       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
-       BLI_assert(CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
-
-       if (mti->dependsOnNormals && mti->dependsOnNormals(md)) {
-               DM_ensure_normals(dm);
-       }
-       return mti->applyModifier(md, ob, dm, flag);
-}
-
-static DerivedMesh *modwrap_applyModifierEM(
-        ModifierData *md, Object *ob,
-        BMEditMesh *em,
-        DerivedMesh *dm,
-        ModifierApplyFlag flag)
-{
-       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
-       BLI_assert(CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
-
-       if (mti->dependsOnNormals && mti->dependsOnNormals(md)) {
-               DM_ensure_normals(dm);
-       }
-       return mti->applyModifierEM(md, ob, em, dm, flag);
-}
-
-static void modwrap_deformVerts(
-        ModifierData *md, Object *ob,
-        DerivedMesh *dm,
-        float (*vertexCos)[3], int numVerts,
-        ModifierApplyFlag flag)
-{
-       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
-       BLI_assert(!dm || CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
-
-       if (dm && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
-               DM_ensure_normals(dm);
-       }
-       mti->deformVerts(md, ob, dm, vertexCos, numVerts, flag);
-}
-
-static void modwrap_deformVertsEM(
-        ModifierData *md, Object *ob,
-        BMEditMesh *em, DerivedMesh *dm,
-        float (*vertexCos)[3], int numVerts)
-{
-       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
-       BLI_assert(!dm || CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
-
-       if (dm && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
-               DM_ensure_normals(dm);
-       }
-       mti->deformVertsEM(md, ob, em, dm, vertexCos, numVerts);
-}
-/* end modifier callback wrappers */
-
 DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob, 
                                               ModifierData *md, int build_shapekey_layers)
 {
index c17830639e4cc7ed182bf3adaa49f715f3856e9f..a0fa33172971e07e94a4e0ec14a52da926f3da1f 100644 (file)
@@ -36,7 +36,7 @@
  *  \ingroup bke
  */
 
-
+#include <stdlib.h>
 #include <stddef.h>
 #include <string.h>
 #include <stdarg.h>
@@ -60,6 +60,7 @@
 #include "BKE_cloth.h"
 #include "BKE_key.h"
 #include "BKE_multires.h"
+#include "BKE_DerivedMesh.h"
 
 /* may move these, only for modifier_path_relbase */
 #include "BKE_global.h" /* ugh, G.main->name only */
@@ -693,3 +694,65 @@ void modifier_path_init(char *path, int path_maxlen, const char *name)
                         G.relbase_valid ? "//" : BLI_temporary_dir(),
                         name);
 }
+
+
+/* wrapper around ModifierTypeInfo.applyModifier that ensures valid normals */
+
+struct DerivedMesh *modwrap_applyModifier(
+        ModifierData *md, Object *ob,
+        struct DerivedMesh *dm,
+        ModifierApplyFlag flag)
+{
+       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+       BLI_assert(CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
+
+       if (mti->dependsOnNormals && mti->dependsOnNormals(md)) {
+               DM_ensure_normals(dm);
+       }
+       return mti->applyModifier(md, ob, dm, flag);
+}
+
+struct DerivedMesh *modwrap_applyModifierEM(
+        ModifierData *md, Object *ob,
+        struct BMEditMesh *em,
+        DerivedMesh *dm,
+        ModifierApplyFlag flag)
+{
+       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+       BLI_assert(CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
+
+       if (mti->dependsOnNormals && mti->dependsOnNormals(md)) {
+               DM_ensure_normals(dm);
+       }
+       return mti->applyModifierEM(md, ob, em, dm, flag);
+}
+
+void modwrap_deformVerts(
+        ModifierData *md, Object *ob,
+        DerivedMesh *dm,
+        float (*vertexCos)[3], int numVerts,
+        ModifierApplyFlag flag)
+{
+       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+       BLI_assert(!dm || CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
+
+       if (dm && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
+               DM_ensure_normals(dm);
+       }
+       mti->deformVerts(md, ob, dm, vertexCos, numVerts, flag);
+}
+
+void modwrap_deformVertsEM(
+        ModifierData *md, Object *ob,
+        struct BMEditMesh *em, DerivedMesh *dm,
+        float (*vertexCos)[3], int numVerts)
+{
+       ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+       BLI_assert(!dm || CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
+
+       if (dm && mti->dependsOnNormals && mti->dependsOnNormals(md)) {
+               DM_ensure_normals(dm);
+       }
+       mti->deformVertsEM(md, ob, em, dm, vertexCos, numVerts);
+}
+/* end modifier callback wrappers */