[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26671] trunk/blender/source/blender/ blenkernel/intern: Fix #20398: smooth brush + multires could still give problems at inner

Brecht Van Lommel brecht at blender.org
Sun Feb 7 14:07:12 CET 2010


Revision: 26671
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26671
Author:   blendix
Date:     2010-02-07 14:07:12 +0100 (Sun, 07 Feb 2010)

Log Message:
-----------
Fix #20398: smooth brush + multires could still give problems at inner
face edges.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
    trunk/blender/source/blender/blenkernel/intern/multires.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c

Modified: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2010-02-07 12:58:40 UTC (rev 26670)
+++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2010-02-07 13:07:12 UTC (rev 26671)
@@ -2297,9 +2297,8 @@
 		VertDataZero(FACE_getCenterData(f));
 
 		for (S=0; S<f->numVerts; S++)
-			if (FACE_getEdges(f)[S]->flags&Edge_eEffected)
-				for (x=0; x<gridSize; x++)
-					VertDataZero(FACE_getIECo(f, lvl, S, x));
+			for (x=0; x<gridSize; x++)
+				VertDataZero(FACE_getIECo(f, lvl, S, x));
 
 		for (S=0; S<f->numVerts; S++) {
 			int prevS = (S+f->numVerts-1)%f->numVerts;
@@ -2311,10 +2310,8 @@
 				VertDataAdd(VERT_getCo(FACE_getVerts(f)[S], lvl), FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx));
 
 			for (x=1; x<gridSize-1; x++) {
-				if (FACE_getEdges(f)[S]->flags&Edge_eEffected)
-					VertDataAdd(FACE_getIECo(f, lvl, S, x), FACE_getIFCo(f, lvl, S, x, 0));
-				if (FACE_getEdges(f)[prevS]->flags&Edge_eEffected)
-					VertDataAdd(FACE_getIECo(f, lvl, prevS, x), FACE_getIFCo(f, lvl, S, 0, x));
+				VertDataAdd(FACE_getIECo(f, lvl, S, x), FACE_getIFCo(f, lvl, S, x, 0));
+				VertDataAdd(FACE_getIECo(f, lvl, prevS, x), FACE_getIFCo(f, lvl, S, 0, x));
 			}
 
 			for (x=0; x<gridSize-1; x++) {
@@ -2351,9 +2348,8 @@
 		VertDataMulN(FACE_getCenterData(f), 1.0f/f->numVerts);
 
 		for (S=0; S<f->numVerts; S++)
-			if (FACE_getEdges(f)[S]->flags&Edge_eEffected)
-				for (x=1; x<gridSize-1; x++)
-					VertDataMulN(FACE_getIECo(f, lvl, S, x), 0.5f);
+			for (x=1; x<gridSize-1; x++)
+				VertDataMulN(FACE_getIECo(f, lvl, S, x), 0.5f);
 
 		for (S=0; S<f->numVerts; S++) {
 			int prevS = (S+f->numVerts-1)%f->numVerts;

Modified: trunk/blender/source/blender/blenkernel/intern/multires.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/multires.c	2010-02-07 12:58:40 UTC (rev 26670)
+++ trunk/blender/source/blender/blenkernel/intern/multires.c	2010-02-07 13:07:12 UTC (rev 26671)
@@ -96,16 +96,11 @@
 {
 	mmd->totlvl = lvl;
 
-	if(ob->mode != OB_MODE_SCULPT) {
-		mmd->lvl = MAX2(mmd->lvl, lvl);
-		CLAMP(mmd->lvl, 0, mmd->totlvl);
-	}
+	if(ob->mode != OB_MODE_SCULPT)
+		mmd->lvl = CLAMPIS(MAX2(mmd->lvl, lvl), 0, mmd->totlvl);
 
-	mmd->sculptlvl = MAX2(mmd->sculptlvl, lvl);
-	CLAMP(mmd->sculptlvl, 0, mmd->totlvl);
-
-	mmd->renderlvl = MAX2(mmd->renderlvl, lvl);
-	CLAMP(mmd->renderlvl, 0, mmd->totlvl);
+	mmd->sculptlvl = CLAMPIS(MAX2(mmd->sculptlvl, lvl), 0, mmd->totlvl);
+	mmd->renderlvl = CLAMPIS(MAX2(mmd->renderlvl, lvl), 0, mmd->totlvl);
 }
 
 static void multires_dm_mark_as_modified(DerivedMesh *dm)

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2010-02-07 12:58:40 UTC (rev 26670)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2010-02-07 13:07:12 UTC (rev 26671)
@@ -1242,7 +1242,7 @@
 
 		if(dm->numFaceData) {
 			/* should be per face */
-			if(!setMaterial(faceFlags[1], NULL))
+			if(!setMaterial(faceFlags[1]+1, NULL))
 				return;
 
 			glShadeModel((faceFlags[0] & ME_SMOOTH)? GL_SMOOTH: GL_FLAT);





More information about the Bf-blender-cvs mailing list