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:
authorJoseph Eagar <joeedh@gmail.com>2011-02-27 09:19:40 +0300
committerJoseph Eagar <joeedh@gmail.com>2011-02-27 09:19:40 +0300
commitf01261d040be27337db9f9996d648a279c89b7c4 (patch)
treec448230939b3c90d53ce8852dd00925d6052e3a4 /source/blender/blenkernel/BKE_modifier.h
parentdcaeda5c4e3a0687251b8511de4f2e8b85ef75c0 (diff)
parent2198cfdb2deec8b2e85e242c74a032f43d0b26ca (diff)
merge with/from trunk at r35190
Diffstat (limited to 'source/blender/blenkernel/BKE_modifier.h')
-rw-r--r--source/blender/blenkernel/BKE_modifier.h35
1 files changed, 31 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 48ce0d4b57b..5f6120509f0 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -1,5 +1,4 @@
-/**
- *
+/*
* $Id$
*
* ***** BEGIN GPL LICENSE BLOCK *****
@@ -30,6 +29,10 @@
#ifndef BKE_MODIFIER_H
#define BKE_MODIFIER_H
+/** \file BKE_modifier.h
+ * \ingroup bke
+ */
+
#include "DNA_modifier_types.h" /* needed for all enum typdefs */
#include "BKE_customdata.h"
@@ -135,6 +138,12 @@ typedef struct ModifierTypeInfo {
float (*vertexCos)[3], int numVerts,
int useRenderParams, int isFinalCalc);
+ /* Like deformMatricesEM but called from object mode (for supporting modifiers in sculpt mode) */
+ void (*deformMatrices)(
+ struct ModifierData *md, struct Object *ob,
+ struct DerivedMesh *derivedData,
+ float (*vertexCos)[3], float (*defMats)[3][3], int numVerts);
+
/* Like deformVerts but called during editmode (for supporting modifiers)
*/
void (*deformVertsEM)(
@@ -246,6 +255,17 @@ typedef struct ModifierTypeInfo {
*/
int (*dependsOnTime)(struct ModifierData *md);
+
+ /* True when a deform modifier uses normals, the requiredDataMask
+ * cant be used here because that refers to a normal layer where as
+ * in this case we need to know if the deform modifier uses normals.
+ *
+ * this is needed because applying 2 deform modifiers will give the
+ * second modifier bogus normals.
+ * */
+ int (*dependsOnNormals)(struct ModifierData *md);
+
+
/* Should call the given walk function on with a pointer to each Object
* pointer that the modifier data stores. This is used for linking on file
* load and for unlinking objects or forwarding object references.
@@ -284,7 +304,11 @@ int modifier_couldBeCage(struct Scene *scene, struct ModifierData *md)
int modifier_isCorrectableDeformed(struct ModifierData *md);
int modifier_sameTopology(ModifierData *md);
int modifier_isEnabled(struct Scene *scene, struct ModifierData *md, int required_mode);
-void modifier_setError(struct ModifierData *md, char *format, ...);
+void modifier_setError(struct ModifierData *md, const char *format, ...)
+#ifdef __GNUC__
+__attribute__ ((format (printf, 2, 3)));
+#endif
+;
void modifiers_foreachObjectLink(struct Object *ob,
ObjectWalkFunc walk,
@@ -305,7 +329,7 @@ int modifiers_isParticleEnabled(struct Object *ob);
struct Object *modifiers_isDeformedByArmature(struct Object *ob);
struct Object *modifiers_isDeformedByLattice(struct Object *ob);
int modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
-int modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
+int modifiers_isCorrectableDeformed(struct Object *ob);
void modifier_freeTemporaryData(struct ModifierData *md);
int modifiers_indexInObject(struct Object *ob, struct ModifierData *md);
@@ -322,6 +346,9 @@ struct LinkNode *modifiers_calcDataMasks(struct Scene *scene,
int required_mode);
struct ModifierData *modifiers_getVirtualModifierList(struct Object *ob);
+/* ensure modifier correctness when changing ob->data */
+void test_object_modifiers(struct Object *ob);
+
/* here for do_versions */
void modifier_mdef_compact_influences(struct ModifierData *md);