diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-01-06 15:05:46 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-01-06 15:05:46 +0300 |
commit | 83f677d9cfce4fe30d63d4b04ac07e2dea3accbe (patch) | |
tree | 3126e7358da5724a3602697b2ddcf27d53163c25 /source/blender/blenkernel/BKE_DerivedMesh.h | |
parent | 90fe04965b1d8f1ff8362a854763fe0f65beb70e (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.h | 11 |
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 |