[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43859] branches/bmesh/blender/source/ blender/modifiers/intern/MOD_fluidsim_util.c: fix [#29980] Fluid only displays wireframe

Campbell Barton ideasman42 at gmail.com
Thu Feb 2 21:59:05 CET 2012


Revision: 43859
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43859
Author:   campbellbarton
Date:     2012-02-02 20:58:56 +0000 (Thu, 02 Feb 2012)
Log Message:
-----------
fix [#29980] Fluid only displays wireframe

fluid sim was creating tessfaces only - when the modifier stack expects MPoly's

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c

Modified: branches/bmesh/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c
===================================================================
--- branches/bmesh/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c	2012-02-02 20:36:34 UTC (rev 43858)
+++ branches/bmesh/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c	2012-02-02 20:58:56 UTC (rev 43859)
@@ -178,7 +178,8 @@
 	gzFile gzf;
 	int numverts = 0, numfaces = 0;
 	DerivedMesh *dm = NULL;
-	MFace *mf;
+	MPoly *mp;
+	MLoop *ml;
 	MVert *mv;
 	short *normals, *no_s;
 	float no[3];
@@ -224,7 +225,7 @@
 		return NULL;
 	}
 
-	dm = CDDM_new(numverts, 0, numfaces, 0, 0);
+	dm = CDDM_new(numverts, 0, 0, numfaces * 3, numfaces);
 
 	if(!dm)
 	{
@@ -280,40 +281,31 @@
 	}
 
 	// read triangles from file
-	mf = CDDM_get_tessfaces(dm);
-	for(i=numfaces; i>0; i--, mf++)
+	mp = CDDM_get_polys(dm);
+	ml = CDDM_get_loops(dm);
+	for(i=0; i < numfaces; i++, mp++, ml += 3)
 	{
 		int face[3];
 
 		gotBytes = gzread(gzf, face, sizeof(int) * 3);
 
-		// check if 3rd vertex has index 0 (not allowed in blender)
-		if(face[2])
-		{
-			mf->v1 = face[0];
-			mf->v2 = face[1];
-			mf->v3 = face[2];
-		}
-		else
-		{
-			mf->v1 = face[1];
-			mf->v2 = face[2];
-			mf->v3 = face[0];
-		}
-		mf->v4 = 0;
+		mp->loopstart = i * 3;
+		mp->totloop = 3;
 
-		test_index_face(mf, NULL, 0, 3);
+		ml[0].v = face[0];
+		ml[1].v = face[1];
+		ml[2].v = face[2];
+
 	}
 
 	gzclose( gzf );
 
-	CDDM_calc_edges_tessface(dm);
+	CDDM_calc_edges(dm);
 
 	CDDM_apply_vert_normals(dm, (short (*)[3])normals);
 	MEM_freeN(normals);
 
 	// CDDM_calc_normals(result);
-
 	return dm;
 }
 
@@ -451,8 +443,8 @@
 	char targetFile[FILE_MAX];
 	FluidsimSettings *fss = fluidmd->fss;
 	DerivedMesh *dm = NULL;
-	MFace *mface;
-	int numfaces;
+	MPoly *mpoly;
+	int numpolys;
 	int mat_nr, flag, i;
 
 	if(!useRenderParams) {
@@ -503,17 +495,17 @@
 	}
 
 	// assign material + flags to new dm
-	mface = orgdm->getTessFaceArray(orgdm);
-	if(mface) {
-		mat_nr = mface[0].mat_nr;
-		flag = mface[0].flag;
+	mpoly = orgdm->getPolyArray(orgdm);
+	if(mpoly) {
+		mat_nr = mpoly[0].mat_nr;
+		flag = mpoly[0].flag;
 
-		mface = dm->getTessFaceArray(dm);
-		numfaces = dm->getNumTessFaces(dm);
-		for(i=0; i<numfaces; i++)
+		mpoly = dm->getPolyArray(dm);
+		numpolys = dm->getNumPolys(dm);
+		for(i=0; i<numpolys; i++)
 		{
-			mface[i].mat_nr = mat_nr;
-			mface[i].flag = flag;
+			mpoly[i].mat_nr = mat_nr;
+			mpoly[i].flag = flag;
 		}
 	}
 




More information about the Bf-blender-cvs mailing list