[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54073] trunk/blender/source/blender: use inline functions for subsurf MVert, MEdge mesh array functions, also some include cleanup for scons/cmake.

Campbell Barton ideasman42 at gmail.com
Thu Jan 24 12:28:30 CET 2013


Revision: 54073
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54073
Author:   campbellbarton
Date:     2013-01-24 11:28:26 +0000 (Thu, 24 Jan 2013)
Log Message:
-----------
use inline functions for subsurf MVert,MEdge mesh array functions, also some include cleanup for scons/cmake.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    trunk/blender/source/blender/modifiers/SConscript
    trunk/blender/source/blender/rigidbody/CMakeLists.txt
    trunk/blender/source/blender/rigidbody/SConscript
    trunk/blender/source/blender/rigidbody/rb_bullet_api.cpp

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2013-01-24 11:21:40 UTC (rev 54072)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2013-01-24 11:28:26 UTC (rev 54073)
@@ -1097,6 +1097,14 @@
 	}
 }
 
+/* utility functon */
+BLI_INLINE void ccgDM_to_MVert(MVert *mv, const CCGKey *key, CCGElem *elem)
+{
+	copy_v3_v3(mv->co, CCG_elem_co(key, elem));
+	normal_float_to_short_v3(mv->no, CCG_elem_no(key, elem));
+	mv->flag = mv->bweight = 0;
+}
+
 static void ccgDM_copyFinalVertArray(DerivedMesh *dm, MVert *mvert)
 {
 	CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
@@ -1107,7 +1115,7 @@
 	int totvert, totedge, totface;
 	int gridSize = ccgSubSurf_getGridSize(ss);
 	int edgeSize = ccgSubSurf_getEdgeSize(ss);
-	int i = 0;
+	unsigned int i = 0;
 
 	CCG_key_top_level(&key, ss);
 
@@ -1117,27 +1125,20 @@
 		int x, y, S, numVerts = ccgSubSurf_getFaceNumVerts(f);
 
 		vd = ccgSubSurf_getFaceCenterData(f);
-		copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
-		normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
-		mvert[i].flag = mvert[i].bweight = 0;
-		i++;
+		ccgDM_to_MVert(&mvert[i++], &key, vd);
 		
 		for (S = 0; S < numVerts; S++) {
-			for (x = 1; x < gridSize - 1; x++, i++) {
+			for (x = 1; x < gridSize - 1; x++) {
 				vd = ccgSubSurf_getFaceGridEdgeData(ss, f, S, x);
-				copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
-				normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
-				mvert[i].flag = mvert[i].bweight = 0;
+				ccgDM_to_MVert(&mvert[i++], &key, vd);
 			}
 		}
 
 		for (S = 0; S < numVerts; S++) {
 			for (y = 1; y < gridSize - 1; y++) {
-				for (x = 1; x < gridSize - 1; x++, i++) {
+				for (x = 1; x < gridSize - 1; x++) {
 					vd = ccgSubSurf_getFaceGridData(ss, f, S, x, y);
-					copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
-					normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
-					mvert[i].flag = mvert[i].bweight = 0;
+					ccgDM_to_MVert(&mvert[i++], &key, vd);
 				}
 			}
 		}
@@ -1148,16 +1149,14 @@
 		CCGEdge *e = ccgdm->edgeMap[index].edge;
 		int x;
 
-		for (x = 1; x < edgeSize - 1; x++, i++) {
-			vd = ccgSubSurf_getEdgeData(ss, e, x);
-			copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
+		for (x = 1; x < edgeSize - 1; x++) {
 			/* This gives errors with -debug-fpe
 			 * the normals don't seem to be unit length.
 			 * this is most likely caused by edges with no
 			 * faces which are now zerod out, see comment in:
 			 * ccgSubSurf__calcVertNormals(), - campbell */
-			normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
-			mvert[i].flag = mvert[i].bweight = 0;
+			vd = ccgSubSurf_getEdgeData(ss, e, x);
+			ccgDM_to_MVert(&mvert[i++], &key, vd);
 		}
 	}
 
@@ -1166,13 +1165,20 @@
 		CCGVert *v = ccgdm->vertMap[index].vert;
 
 		vd = ccgSubSurf_getVertData(ss, v);
-		copy_v3_v3(mvert[i].co, CCG_elem_co(&key, vd));
-		normal_float_to_short_v3(mvert[i].no, CCG_elem_no(&key, vd));
-		mvert[i].flag = mvert[i].bweight = 0;
-		i++;
+		ccgDM_to_MVert(&mvert[i++], &key, vd);
 	}
 }
 
+
+/* utility functon */
+BLI_INLINE void ccgDM_to_MEdge(MEdge *med, const int v1, const int v2, const short flag)
+{
+	med->v1 = v1;
+	med->v2 = v2;
+	med->crease = med->bweight = 0;
+	med->flag = flag;
+}
+
 static void ccgDM_copyFinalEdgeArray(DerivedMesh *dm, MEdge *medge)
 {
 	CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
@@ -1181,7 +1187,7 @@
 	int totedge, totface;
 	int gridSize = ccgSubSurf_getGridSize(ss);
 	int edgeSize = ccgSubSurf_getEdgeSize(ss);
-	int i = 0;
+	unsigned int i = 0;
 	short *edgeFlags = ccgdm->edgeFlags;
 	const short ed_interior_flag = ccgdm->drawInteriorEdges ? (ME_EDGEDRAW | ME_EDGERENDER) : 0;
 
@@ -1192,36 +1198,22 @@
 
 		for (S = 0; S < numVerts; S++) {
 			for (x = 0; x < gridSize - 1; x++) {
-				MEdge *med = &medge[i];
-
-				med->v1 = getFaceIndex(ss, f, S, x, 0, edgeSize, gridSize);
-				med->v2 = getFaceIndex(ss, f, S, x + 1, 0, edgeSize, gridSize);
-				med->crease = med->bweight = 0;
-				med->flag = ed_interior_flag;
-				i++;
+				ccgDM_to_MEdge(&medge[i++],
+				               getFaceIndex(ss, f, S, x,     0, edgeSize, gridSize),
+				               getFaceIndex(ss, f, S, x + 1, 0, edgeSize, gridSize),
+				               ed_interior_flag);
 			}
 
 			for (x = 1; x < gridSize - 1; x++) {
 				for (y = 0; y < gridSize - 1; y++) {
-					MEdge *med;
-
-					med = &medge[i];
-					med->v1 = getFaceIndex(ss, f, S, x, y,
-					                       edgeSize, gridSize);
-					med->v2 = getFaceIndex(ss, f, S, x, y + 1,
-					                       edgeSize, gridSize);
-					med->crease = med->bweight = 0;
-					med->flag = ed_interior_flag;
-					i++;
-
-					med = &medge[i];
-					med->v1 = getFaceIndex(ss, f, S, y, x,
-					                       edgeSize, gridSize);
-					med->v2 = getFaceIndex(ss, f, S, y + 1, x,
-					                       edgeSize, gridSize);
-					med->crease = med->bweight = 0;
-					med->flag = ed_interior_flag;
-					i++;
+					ccgDM_to_MEdge(&medge[i++],
+					               getFaceIndex(ss, f, S, x, y,    edgeSize, gridSize),
+					               getFaceIndex(ss, f, S, x, y + 1, edgeSize, gridSize),
+					               ed_interior_flag);
+					ccgDM_to_MEdge(&medge[i++],
+					               getFaceIndex(ss, f, S, y, x,     edgeSize, gridSize),
+					               getFaceIndex(ss, f, S, y + 1, x, edgeSize, gridSize),
+					               ed_interior_flag);
 				}
 			}
 		}
@@ -1230,28 +1222,28 @@
 	totedge = ccgSubSurf_getNumEdges(ss);
 	for (index = 0; index < totedge; index++) {
 		CCGEdge *e = ccgdm->edgeMap[index].edge;
-		unsigned int flags = 0;
+		short ed_flag = 0;
 		int x;
 		int edgeIdx = GET_INT_FROM_POINTER(ccgSubSurf_getEdgeEdgeHandle(e));
 
-		if (!ccgSubSurf_getEdgeNumFaces(e)) flags |= ME_LOOSEEDGE;
+		if (!ccgSubSurf_getEdgeNumFaces(e)) {
+			ed_flag |= ME_LOOSEEDGE;
+		}
 
 		if (edgeFlags) {
 			if (edgeIdx != -1) {
-				flags |= ((edgeFlags[index] & (ME_SEAM | ME_SHARP)) | ME_EDGEDRAW | ME_EDGERENDER);
+				ed_flag |= ((edgeFlags[index] & (ME_SEAM | ME_SHARP)) | ME_EDGEDRAW | ME_EDGERENDER);
 			}
 		}
 		else {
-			flags |= ME_EDGEDRAW | ME_EDGERENDER;
+			ed_flag |= ME_EDGEDRAW | ME_EDGERENDER;
 		}
 
 		for (x = 0; x < edgeSize - 1; x++) {
-			MEdge *med = &medge[i];
-			med->v1 = getEdgeIndex(ss, e, x, edgeSize);
-			med->v2 = getEdgeIndex(ss, e, x + 1, edgeSize);
-			med->crease = med->bweight = 0;
-			med->flag = flags;
-			i++;
+			ccgDM_to_MEdge(&medge[i++],
+			               getEdgeIndex(ss, e, x, edgeSize),
+			               getEdgeIndex(ss, e, x + 1, edgeSize),
+			               ed_flag);
 		}
 	}
 }

Modified: trunk/blender/source/blender/modifiers/SConscript
===================================================================
--- trunk/blender/source/blender/modifiers/SConscript	2013-01-24 11:21:40 UTC (rev 54072)
+++ trunk/blender/source/blender/modifiers/SConscript	2013-01-24 11:28:26 UTC (rev 54073)
@@ -25,30 +25,30 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
-Import ('env')
+Import('env')
 
 sources = env.Glob('intern/*.c')
 
 incs = [
-	'.',
-	'./intern', 
-	'#/intern/guardedalloc',
-	'#/intern/bsp/extern',
-	'#/intern/elbeem/extern',
-	'#/extern/glew/include',
-	'#/intern/opennl/extern',
-	'../render/extern/include',
-	'../blenloader',
-	'../bmesh',
-	'../include',
-	'../blenlib',
-	'../blenfont',
-	'../makesdna',
-	'../makesrna',
-	'../blenkernel',
-	'../gpu',
-	env['BF_ZLIB_INC'],
-	]
+    '.',
+    './intern', 
+    '#/intern/guardedalloc',
+    '#/intern/bsp/extern',
+    '#/intern/elbeem/extern',
+    '#/extern/glew/include',
+    '#/intern/opennl/extern',
+    '../render/extern/include',
+    '../blenloader',
+    '../bmesh',
+    '../include',
+    '../blenlib',
+    '../blenfont',
+    '../makesdna',
+    '../makesrna',
+    '../blenkernel',
+    '../gpu',
+    env['BF_ZLIB_INC'],
+    ]
 
 defs = []
 

Modified: trunk/blender/source/blender/rigidbody/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/rigidbody/CMakeLists.txt	2013-01-24 11:21:40 UTC (rev 54072)
+++ trunk/blender/source/blender/rigidbody/CMakeLists.txt	2013-01-24 11:28:26 UTC (rev 54073)
@@ -23,7 +23,6 @@
 
 SET(INC
 	.
-	../blenlib
 	../../../extern/bullet2/src
 )
 

Modified: trunk/blender/source/blender/rigidbody/SConscript
===================================================================
--- trunk/blender/source/blender/rigidbody/SConscript	2013-01-24 11:21:40 UTC (rev 54072)
+++ trunk/blender/source/blender/rigidbody/SConscript	2013-01-24 11:28:26 UTC (rev 54073)
@@ -25,14 +25,18 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
-Import ('env')
+Import('env')
 
 # XXX: we need a contingency plan for when not compiling with Bullet,
 # since this module will always get included... 
 # This problem will also apply to other engines at a later date too...
 sources = env.Glob('*.cpp')
 
-incs = '../blenlib ../../../intern/guardedalloc ../../../extern/bullet2/src'
+incs = [
+    '.',
+    '../../../extern/bullet2/src',
+    ]
 
-env.BlenderLib ('bf_rigidbody', sources, Split(incs), [], libtype=['core', 'player'], priority=[180, 30] )
-
+env.BlenderLib('bf_rigidbody', sources=sources,
+               includes=incs, defines=[],
+               libtype=['core', 'player'], priority=[180, 30])

Modified: trunk/blender/source/blender/rigidbody/rb_bullet_api.cpp
===================================================================
--- trunk/blender/source/blender/rigidbody/rb_bullet_api.cpp	2013-01-24 11:21:40 UTC (rev 54072)
+++ trunk/blender/source/blender/rigidbody/rb_bullet_api.cpp	2013-01-24 11:28:26 UTC (rev 54073)
@@ -60,8 +60,6 @@
  
 #include "RBI_api.h"
 
-#include "BLI_math.h"
-
 #include "btBulletDynamicsCommon.h"
 
 #include "LinearMath/btVector3.h"




More information about the Bf-blender-cvs mailing list