[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27312] trunk/blender/source/blender/ blenkernel/intern: Enable "Build" modifier for curves/surfaces.

Sergey Sharybin g.ulairi at gmail.com
Sun Mar 7 11:40:52 CET 2010


Revision: 27312
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27312
Author:   nazgul
Date:     2010-03-07 11:40:52 +0100 (Sun, 07 Mar 2010)

Log Message:
-----------
Enable "Build" modifier for curves/surfaces.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/displist.c
    trunk/blender/source/blender/blenkernel/intern/modifier.c

Modified: trunk/blender/source/blender/blenkernel/intern/displist.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/displist.c	2010-03-07 09:53:59 UTC (rev 27311)
+++ trunk/blender/source/blender/blenkernel/intern/displist.c	2010-03-07 10:40:52 UTC (rev 27312)
@@ -1329,23 +1329,23 @@
 
 	for (; md; md=md->next) {
 		ModifierTypeInfo *mti = modifierType_getInfo(md->type);
-		
+
+		/* modifier depends on derived mesh and has got valid applyModifier call */
+		int dmApplyMod = mti->type==eModifierTypeType_Constructive ||
+			mti->type==eModifierTypeType_Nonconstructive;
+
 		md->scene= scene;
-		
+
 		if ((md->mode & required_mode) != required_mode) continue;
 		if (mti->isDisabled && mti->isDisabled(md, forRender)) continue;
-		if (mti->type!=eModifierTypeType_OnlyDeform &&
-			mti->type!=eModifierTypeType_DeformOrConstruct &&
-			mti->type!=eModifierTypeType_Constructive) continue;
 
 		/* need to put all verts in 1 block for curve deform */
-		/* we also need all verts in 1 block for derived mesh creation when handling constructive modifiers */
-		if(md->type==eModifierType_Curve || mti->type==eModifierTypeType_Constructive) {
+		/* we also need all verts in 1 block for derived mesh creation */
+		if(md->type==eModifierType_Curve || dmApplyMod) {
 			float *allverts = NULL, *fp;
 			int totvert= 0;
 
-			if (md->type==eModifierType_Curve ||
-				(mti->type==eModifierTypeType_Constructive && !dm)) {
+			if (md->type==eModifierType_Curve || (dmApplyMod && !dm)) {
 				for (dl=dispbase->first; dl; dl=dl->next)
 					totvert+= (dl->type==DL_INDEX3)?dl->nr:dl->parts*dl->nr;
 
@@ -1357,7 +1357,7 @@
 				}
 			}
 
-			if (mti->type==eModifierTypeType_Constructive) {
+			if (dmApplyMod) {
 				if (!dm) {
 					dm= CDDM_from_curve(ob);
 					/*

Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c	2010-03-07 09:53:59 UTC (rev 27311)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c	2010-03-07 10:40:52 UTC (rev 27312)
@@ -8599,7 +8599,8 @@
 
 		mti = INIT_TYPE(Build);
 		mti->type = eModifierTypeType_Nonconstructive;
-		mti->flags = eModifierTypeFlag_AcceptsMesh;
+		mti->flags = eModifierTypeFlag_AcceptsMesh |
+				eModifierTypeFlag_AcceptsCVs;
 		mti->initData = buildModifier_initData;
 		mti->copyData = buildModifier_copyData;
 		mti->dependsOnTime = buildModifier_dependsOnTime;





More information about the Bf-blender-cvs mailing list