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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-01-06 15:05:46 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-01-06 15:05:46 +0300
commit83f677d9cfce4fe30d63d4b04ac07e2dea3accbe (patch)
tree3126e7358da5724a3602697b2ddcf27d53163c25 /source/blender/blenkernel/BKE_DerivedMesh.h
parent90fe04965b1d8f1ff8362a854763fe0f65beb70e (diff)
Fix #20519: shrinkwrap modifier doesnt work with subsurface modifier.
Fix #20516: subsurf modiefier+pressing add for smoke sims results in crash. Fix retopo not working correct on subsurf mesh. Various deforming modifiers were not correctly taking into account that a derivedmesh is not necessarily a CDDerivedMesh, made utility functions for this now.
Diffstat (limited to 'source/blender/blenkernel/BKE_DerivedMesh.h')
-rw-r--r--source/blender/blenkernel/BKE_DerivedMesh.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 821c963de1c..01f863a4c2e 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -78,6 +78,12 @@ typedef struct DMGridAdjacency {
int rotation[4];
} DMGridAdjacency;
+typedef enum DerivedMeshType {
+ DM_TYPE_CDDM,
+ DM_TYPE_EDITMESH,
+ DM_TYPE_CCGDM
+} DerivedMeshType;
+
typedef struct DerivedMesh DerivedMesh;
struct DerivedMesh {
/* Private DerivedMesh data, only for internal DerivedMesh use */
@@ -87,6 +93,7 @@ struct DerivedMesh {
int deformedOnly; /* set by modifier stack if only deformed from original */
BVHCache bvhCache;
struct GPUDrawObject *drawObject;
+ DerivedMeshType type;
/* Misc. Queries */
@@ -329,12 +336,14 @@ void DM_init_funcs(DerivedMesh *dm);
* of vertices, edges and faces (doesn't allocate memory for them, just
* sets up the custom data layers)
*/
-void DM_init(DerivedMesh *dm, int numVerts, int numEdges, int numFaces);
+void DM_init(DerivedMesh *dm, DerivedMeshType type,
+ int numVerts, int numEdges, int numFaces);
/* utility function to initialise a DerivedMesh for the desired number
* of vertices, edges and faces, with a layer setup copied from source
*/
void DM_from_template(DerivedMesh *dm, DerivedMesh *source,
+ DerivedMeshType type,
int numVerts, int numEdges, int numFaces);
/* utility function to release a DerivedMesh's layers