[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