diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-08-05 15:20:40 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-08-05 15:20:40 +0300 |
commit | 8d179e3c1f61731f025818c1c25b8997be77f2a9 (patch) | |
tree | 4e5203e1b0de7491d7fe4cd1e4776e4ac5b5c713 /source/blender | |
parent | 0ea45676d026b2d8c43809f2dc5394c73298ee3f (diff) |
OpenSubdiv: Resolve regression with unity AABB for CCGDM calculated on CPU
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index fd98fcac2f3..b52bd087fb4 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -78,6 +78,8 @@ static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm); #ifdef WITH_OPENSUBDIV # include "DNA_userdef_types.h" +# include "BKE_subsurf.h" +# include "CCGSubSurf.h" #endif /* very slow! enable for testing only! */ @@ -3524,8 +3526,15 @@ void DM_set_object_boundbox(Object *ob, DerivedMesh *dm) #ifdef WITH_OPENSUBDIV /* TODO(sergey): Currently no way to access bounding box from hi-res mesh. */ if (dm->type == DM_TYPE_CCGDM) { - copy_v3_fl3(min, -1.0f, -1.0f, -1.0f); - copy_v3_fl3(max, 1.0f, 1.0f, 1.0f); + CCGDerivedMesh *ccgdm = (CCGDerivedMesh *)dm; + if (!ccgSubSurf_needGrids(ccgdm->ss)) { + copy_v3_fl3(min, -1.0f, -1.0f, -1.0f); + copy_v3_fl3(max, 1.0f, 1.0f, 1.0f); + } + else { + INIT_MINMAX(min, max); + dm->getMinMax(dm, min, max); + } } else #endif |