diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-11-25 16:11:44 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-11-25 16:11:44 +0300 |
commit | a1bf207be31f4bb578e920bc472cc3471a6554ca (patch) | |
tree | 4c8eafd32e190c9d3292c0edf3ce27bb5bd5e31b /source/blender/editors | |
parent | 90cc7c8abd7b4c36002031edba8b75207fb98086 (diff) |
Sculpt: Subsurf
* Now uses the CCG DerivedMesh also in object mode, used to be edit mode only.
* Create CD_ORIGINDEX layer on demand, to save memory.
* Removed ss_to_cdderivedmesh function, and instead create ccgdm and then
convert that to cddm, to avoid code duplication.
* Added and implement DerivedMesh interface functions to obtain face grids.
* Store edge/face flags more memory efficient.
* Export CCGDerivedMesh struct in BKE_subsurf.h
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/mesh/editface.c | 10 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index 5d94fb32438..cda15c606ed 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -99,15 +99,17 @@ void object_facesel_flush_dm(Object *ob) int totface; int i; - - if(me==NULL || dm==NULL || !CustomData_has_layer( &dm->faceData, CD_ORIGINDEX)) + if(me==NULL || dm==NULL) + return; + + index_array = dm->getFaceDataArray(dm, CD_ORIGINDEX); + + if(!index_array) return; faces = dm->getFaceArray(dm); totface = dm->getNumFaces(dm); - index_array = dm->getFaceDataArray(dm, CD_ORIGINDEX); - mf= faces; for (i= 0; i<totface; i++, mf++) { /* loop over derived mesh faces */ diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 1f230b5cd65..873bbc2baa6 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -1368,7 +1368,7 @@ void sculpt_update_mesh_elements(bContext *C, int need_fmap) } ss->ob = ob; - ss->tree = dm->getPBVH(dm); + ss->tree = dm->getPBVH(ob, dm); ss->fmap = (need_fmap)? dm->getFaceMap(dm): NULL; } |