[Bf-blender-cvs] [b278e87] master: Fix T46247: Side-reported, bbox for zero-verts object with OSD subsurf and GPU compute would be -INF.

Bastien Montagne noreply at git.blender.org
Fri Sep 25 08:41:00 CEST 2015


Commit: b278e8742be436f7d0272033bc93def1d47f1752
Author: Bastien Montagne
Date:   Fri Sep 25 08:38:45 2015 +0200
Branches: master
https://developer.blender.org/rBb278e8742be436f7d0272033bc93def1d47f1752

Fix T46247: Side-reported, bbox for zero-verts object with OSD subsurf and GPU compute would be -INF.

Trivial fix, to be backported to final 2.76 if possible.

===================================================================

M	source/blender/blenkernel/intern/subsurf_ccg.c

===================================================================

diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 509ca9c..05f658e 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -848,6 +848,11 @@ static void ccgDM_getMinMax(DerivedMesh *dm, float r_min[3], float r_max[3])
 	int i, edgeSize = ccgSubSurf_getEdgeSize(ss);
 	int gridSize = ccgSubSurf_getGridSize(ss);
 
+	if (!ccgSubSurf_getNumVerts(ss)) {
+		r_min[0] = r_min[1] = r_min[2] = r_max[0] = r_max[1] = r_max[2] = 0.0f;
+		return;
+	}
+
 #ifdef WITH_OPENSUBDIV
 	if (ccgdm->useGpuBackend) {
 		ccgSubSurf_getMinMax(ccgdm->ss, r_min, r_max);
@@ -857,9 +862,6 @@ static void ccgDM_getMinMax(DerivedMesh *dm, float r_min[3], float r_max[3])
 
 	CCG_key_top_level(&key, ss);
 
-	if (!ccgSubSurf_getNumVerts(ss))
-		r_min[0] = r_min[1] = r_min[2] = r_max[0] = r_max[1] = r_max[2] = 0.0;
-
 	for (ccgSubSurf_initVertIterator(ss, &vi); !ccgVertIterator_isStopped(&vi); ccgVertIterator_next(&vi)) {
 		CCGVert *v = ccgVertIterator_getCurrent(&vi);
 		float *co = ccgSubSurf_getVertData(ss, v);




More information about the Bf-blender-cvs mailing list