Revision: 14528
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14528
Author:   jaguarandi
Date:     2008-04-23 14:44:10 +0200 (Wed, 23 Apr 2008)

Log Message:
-----------
Added simple UI to configure some shrinkwrap modifier properties (simple commit 
to try svn)

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

Modified: 
branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c    
2008-04-23 11:38:10 UTC (rev 14527)
+++ branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c    
2008-04-23 12:44:10 UTC (rev 14528)
@@ -6970,6 +6970,17 @@
                dm->release(dm);
 }
 
+
+/* Shrinkwrap */
+
+static DerivedMesh *shrinkwrapModifier_applyModifier(
+               ModifierData *md, Object *ob, DerivedMesh *derivedData,
+  int useRenderParams, int isFinalCalc)
+{
+       return derivedData;
+}
+
+
 /***/
 
 static ModifierTypeInfo typeArr[NUM_MODIFIER_TYPES];
@@ -7290,6 +7301,12 @@
                mti->requiredDataMask = explodeModifier_requiredDataMask;
                mti->applyModifier = explodeModifier_applyModifier;
 
+               mti = INIT_TYPE(Shrinkwrap);
+               mti->type = eModifierTypeType_Constructive;
+               mti->flags = eModifierTypeFlag_AcceptsMesh
+                               | eModifierTypeFlag_SupportsMapping;
+               mti->applyModifier = shrinkwrapModifier_applyModifier;
+
                typeArrInit = 0;
 #undef INIT_TYPE
        }

Modified: 
branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h   
2008-04-23 11:38:10 UTC (rev 14527)
+++ branches/soc-2008-jaguarandi/source/blender/makesdna/DNA_modifier_types.h   
2008-04-23 12:44:10 UTC (rev 14528)
@@ -35,6 +35,7 @@
        eModifierType_Cloth,
        eModifierType_Collision,
        eModifierType_Bevel,
+       eModifierType_Shrinkwrap,
        NUM_MODIFIER_TYPES
 } ModifierType;
 
@@ -488,4 +489,17 @@
        float protect;
 } ExplodeModifierData;
 
+typedef struct ShrinkwrapModifierData {
+       ModifierData modifier;
+
+       char name[32];                  /* optional vertexgroup name */
+       short shrinkType;               /* shrink type projection */
+       short pad[3];
+} ShrinkwrapModifierData;
+
+/* Shrinkwrap->shrinkType */
+#define MOD_SHRINKWRAP_NEAREST 0
+#define MOD_SHRINKWRAP_NORMAL  1
+
+
 #endif

Modified: branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c   
2008-04-23 11:38:10 UTC (rev 14527)
+++ branches/soc-2008-jaguarandi/source/blender/src/buttons_editing.c   
2008-04-23 12:44:10 UTC (rev 14528)
@@ -1820,6 +1820,8 @@
                        height = 94;
                } else if (md->type==eModifierType_Explode) {
                        height = 94;
+               } else if (md->type==eModifierType_Shrinkwrap) {
+                       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, ""); 
@@ -2432,6 +2434,14 @@
                        uiDefButBitS(block, TOG, eExplodeFlag_Unborn, 
B_MODIFIER_RECALC, "Unborn",      lx, (cy-=19), buttonWidth/3,19, &emd->flag, 
0, 0, 0, 0, "Show mesh when particles are unborn");
                        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");
+               } else if (md->type==eModifierType_Shrinkwrap) {
+                       ShrinkwrapModifierData *smd = (ShrinkwrapModifierData*) 
md;
+
+                       char shrinktypemenu[]="Shrinkwrap type%t|nearest point 
%x0|normal projection %x1";
+                       uiDefButS(block, MENU, B_MODIFIER_RECALC, 
shrinktypemenu, lx,(cy-=19),buttonWidth,19, &smd->shrinkType, 0, 0, 0, 0, 
"Selects type of shrinkwrap algorithm for target position.");
+
+                       but=uiDefBut(block, TEX, B_MODIFIER_RECALC, "VGroup: ", 
        lx, (cy-=19), buttonWidth,19, &smd->name, 0.0, 31.0, 0, 0, "Vertex 
Group name");
+                       uiButSetCompleteFunc(but, autocomplete_vgroup, (void 
*)ob);
                }
 
                uiBlockEndAlign(block);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to