[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15052] branches/soc-2008-nicholasbishop/ source/blender: == Multires ==

Nicholas Bishop nicholasbishop at gmail.com
Fri May 30 00:08:33 CEST 2008


Revision: 15052
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15052
Author:   nicholasbishop
Date:     2008-05-30 00:08:33 +0200 (Fri, 30 May 2008)

Log Message:
-----------
== Multires ==

Added a Multires modifier, including a simple interface. (The modifier and interface are entirely nonfunctioning.)

Modified Paths:
--------------
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/modifier.c
    branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_modifier_types.h
    branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c

Modified: branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/modifier.c	2008-05-29 21:12:11 UTC (rev 15051)
+++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/modifier.c	2008-05-29 22:08:33 UTC (rev 15052)
@@ -7002,6 +7002,20 @@
 		dm->release(dm);
 }
 
+/* Multires */
+static void multiresModifier_initData(ModifierData *md)
+{
+	MultiresModifierData *mmd = (MultiresModifierData*)md;
+
+	mmd->lvl = mmd->totlvl = 1;
+}
+
+static DerivedMesh *multiresModifier_applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
+						   int useRenderParams, int isFinalCalc)
+{
+	return dm;
+}
+
 /***/
 
 static ModifierTypeInfo typeArr[NUM_MODIFIER_TYPES];
@@ -7322,6 +7336,12 @@
 		mti->requiredDataMask = explodeModifier_requiredDataMask;
 		mti->applyModifier = explodeModifier_applyModifier;
 
+		mti = INIT_TYPE(Multires);
+		mti->type = eModifierTypeType_Constructive;
+		mti->flags = eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_RequiresOriginalData;
+		mti->initData = multiresModifier_initData;
+		mti->applyModifier = multiresModifier_applyModifier;
+
 		typeArrInit = 0;
 #undef INIT_TYPE
 	}

Modified: branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_modifier_types.h	2008-05-29 21:12:11 UTC (rev 15051)
+++ branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_modifier_types.h	2008-05-29 22:08:33 UTC (rev 15052)
@@ -35,6 +35,7 @@
 	eModifierType_Cloth,
 	eModifierType_Collision,
 	eModifierType_Bevel,
+	eModifierType_Multires,
 	NUM_MODIFIER_TYPES
 } ModifierType;
 
@@ -488,4 +489,10 @@
 	float protect;
 } ExplodeModifierData;
 
+typedef struct MultiresModifierData {
+	ModifierData modifier;
+	char lvl, totlvl;
+	char pad[6];
+} MultiresModifierData;
+
 #endif

Modified: branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c	2008-05-29 21:12:11 UTC (rev 15051)
+++ branches/soc-2008-nicholasbishop/source/blender/src/buttons_editing.c	2008-05-29 22:08:33 UTC (rev 15052)
@@ -1826,6 +1826,8 @@
 			height = 94;
 		} else if (md->type==eModifierType_Explode) {
 			height = 94;
+		} else if (md->type==eModifierType_Multires) {
+			height = 48;
 		}
 							/* roundbox 4 free variables: corner-rounding, nop, roundbox type, shade */
 		uiDefBut(block, ROUNDBOX, 0, "", x-10, y-height-2, width, height-2, NULL, 5.0, 0.0, 12, 40, ""); 
@@ -2443,6 +2445,14 @@
 			uiDefButBitS(block, TOG, eExplodeFlag_Alive, B_MODIFIER_RECALC, "Alive",	lx+buttonWidth/3, cy, buttonWidth/3,19, &emd->flag, 0, 0, 0, 0, "Show mesh when particles are alive");
 			uiDefButBitS(block, TOG, eExplodeFlag_Dead, B_MODIFIER_RECALC, "Dead",	lx+buttonWidth*2/3, cy, buttonWidth/3,19, &emd->flag, 0, 0, 0, 0, "Show mesh when particles are dead");
 			uiBlockEndAlign(block);
+		} else if (md->type==eModifierType_Multires) {
+			MultiresModifierData *mmd = (MultiresModifierData*) md;
+			uiBut *but;
+ 
+			but = uiDefBut(block,BUT,B_MODIFIER_RECALC,"Subdivide", lx,(cy-=19),buttonWidth,19,0,0,0,0,0,"Increase the resolution of displacements");
+			//uiButSetFunc(but, modifiers_multiresSubdivide, ob, mmd);
+		
+			uiDefButC(block,NUM,B_MODIFIER_RECALC,"Level: ",lx,(cy-=19),buttonWidth,19, &mmd->lvl, 1.0, mmd->totlvl, 0,0,"");
 		}
 
 		uiBlockEndAlign(block);





More information about the Bf-blender-cvs mailing list