Page MenuHome

mmod3.txt

mmod3.txt

Index: source/blender/blenkernel/intern/modifier.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/blenkernel/intern/modifier.c,v
retrieving revision 1.88
diff -u -p -u -r1.88 modifier.c
--- source/blender/blenkernel/intern/modifier.c 23 Dec 2006 11:56:22 -0000 1.88
+++ source/blender/blenkernel/intern/modifier.c 7 Jan 2007 10:37:42 -0000
@@ -1032,11 +1032,13 @@ static void mirrorModifier_copyData(Modi
tmmd->tolerance = mmd->tolerance;
}
-static DerivedMesh *mirrorModifier__doMirror(MirrorModifierData *mmd,
- DerivedMesh *dm,
- int initFlags)
+static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
+ DerivedMesh *dm,
+ int initFlags,
+ int axis)
{
- int i, axis = mmd->axis;
+
+ int i;
float tolerance = mmd->tolerance;
DerivedMesh *result;
int numVerts, numEdges, numFaces;
@@ -1048,9 +1050,9 @@ static DerivedMesh *mirrorModifier__doMi
numVerts = numEdges = numFaces = 0;
indexMap = MEM_mallocN(sizeof(*indexMap) * maxVerts, "indexmap");
-
+
result = CDDM_from_template(dm, maxVerts * 2, maxEdges * 2, maxFaces * 2);
-
+
for(i = 0; i < maxVerts; i++) {
MVert inMV;
MVert *mv = CDDM_get_vert(result, numVerts);
@@ -1156,6 +1158,23 @@ static DerivedMesh *mirrorModifier__doMi
CDDM_lower_num_edges(result, numEdges);
CDDM_lower_num_faces(result, numFaces);
+ return result;
+}
+
+static DerivedMesh *mirrorModifier__doMirror(MirrorModifierData *mmd,
+ DerivedMesh *dm,
+ int initFlags)
+{
+ DerivedMesh *result = dm;
+
+ /* check which axis' have been toggled and mirror accordingly */
+ if(mmd->axis & MIRROR_X)
+ result = doMirrorOnAxis(mmd, result, initFlags, 0);
+ if(mmd->axis & MIRROR_Y)
+ result = doMirrorOnAxis(mmd, result, initFlags, 1);
+ if(mmd->axis & MIRROR_Z)
+ result = doMirrorOnAxis(mmd, result, initFlags, 2);
+
return result;
}
Index: source/blender/makesdna/DNA_effect_types.h
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/makesdna/DNA_effect_types.h,v
retrieving revision 1.14
diff -u -p -u -r1.14 DNA_effect_types.h
--- source/blender/makesdna/DNA_effect_types.h 16 Nov 2006 20:23:00 -0000 1.14
+++ source/blender/makesdna/DNA_effect_types.h 7 Jan 2007 10:37:42 -0000
@@ -82,6 +82,11 @@
#define WAV_Y 4
#define WAV_CYCL 8
+ /* mmd->axis */
+#define MIRROR_X 2
+#define MIRROR_Y 4
+#define MIRROR_Z 8
+
typedef struct Effect {
struct Effect *next, *prev;
short type, flag, buttype, rt;
@@ -146,4 +151,3 @@ typedef struct WaveEff {
} WaveEff;
#endif
-
Index: source/blender/src/buttons_editing.c
===================================================================
RCS file: /cvsroot/bf-blender/blender/source/blender/src/buttons_editing.c,v
retrieving revision 1.336
diff -u -p -u -r1.336 buttons_editing.c
--- source/blender/src/buttons_editing.c 6 Jan 2007 20:47:34 -0000 1.336
+++ source/blender/src/buttons_editing.c 7 Jan 2007 10:37:42 -0000
@@ -1545,9 +1545,9 @@ static void draw_modifier(uiBlock *block
} else if (md->type==eModifierType_Mirror) {
MirrorModifierData *mmd = (MirrorModifierData*) md;
uiDefButF(block, NUM, B_MODIFIER_RECALC, "Merge Limit:", lx, (cy-=19), buttonWidth,19, &mmd->tolerance, 0.0, 1.0, 10, 10, "Distance from axis within which mirrored vertices are merged");
- uiDefButS(block, ROW, B_MODIFIER_RECALC, "X", lx, (cy-=19), 20,19, &mmd->axis, 1, 0, 0, 0, "Specify the axis to mirror about");
- uiDefButS(block, ROW, B_MODIFIER_RECALC, "Y", lx+20, cy, 20,19, &mmd->axis, 1, 1, 0, 0, "Specify the axis to mirror about");
- uiDefButS(block, ROW, B_MODIFIER_RECALC, "Z", lx+40, cy, 20,19, &mmd->axis, 1, 2, 0, 0, "Specify the axis to mirror about");
+ uiDefButBitS(block, TOG, MIRROR_X, B_MODIFIER_RECALC, "X", lx,(cy-=19),20,19, &mmd->axis, 0, 0, 0, 0, "Enable X axis mirror");
+ uiDefButBitS(block, TOG, MIRROR_Y, B_MODIFIER_RECALC, "Y", lx+20,cy,20,19, &mmd->axis, 0, 0, 0, 0, "Enable Y axis mirror");
+ uiDefButBitS(block, TOG, MIRROR_Z, B_MODIFIER_RECALC, "Z", lx+40,cy,20,19, &mmd->axis, 0, 0, 0, 0, "Enable Z axis mirror");
uiDefButBitS(block, TOG, MOD_MIR_CLIPPING, B_MODIFIER_RECALC, "Do Clipping", lx+60, cy, buttonWidth-60,19, &mmd->flag, 1, 2, 0, 0, "Prevents during Transform vertices to go through Mirror");
} else if (md->type==eModifierType_EdgeSplit) {
EdgeSplitModifierData *emd = (EdgeSplitModifierData*) md;

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
81/53/0a3ca386dedabb353de8f5a1c847

Event Timeline