Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2005-03-28 01:25:15 +0400
committerMartin Poirier <theeth@yahoo.com>2005-03-28 01:25:15 +0400
commit05685e6ca7da4c74c93c84f343bc99dcf7bbb8c2 (patch)
tree27f192f34f78b40f8600b143fb2fcab461180747 /source
parent35aa81cd2cb3cc91a06295834ecc928f49dca490 (diff)
Context parameter for Transform.
For tex space edit, crease (soon) and future use. Manipulator assumes no context.
Diffstat (limited to 'source')
-rwxr-xr-xsource/blender/include/BIF_transform.h13
-rw-r--r--source/blender/src/editmesh_tools.c4
-rw-r--r--source/blender/src/editobject.c10
-rw-r--r--source/blender/src/space.c26
-rw-r--r--source/blender/src/toolbox.c8
-rwxr-xr-xsource/blender/src/transform.c10
-rwxr-xr-xsource/blender/src/transform.h1
7 files changed, 37 insertions, 35 deletions
diff --git a/source/blender/include/BIF_transform.h b/source/blender/include/BIF_transform.h
index 6f1c0506e8e..431202e2882 100755
--- a/source/blender/include/BIF_transform.h
+++ b/source/blender/include/BIF_transform.h
@@ -49,20 +49,19 @@
#define TFM_LAMP_ENERGY 10
#define TFM_TRACKBALL 11
- // not sure if adding modes is the right way... context detecting could be done different (ton)
-#define TFM_TEX 32
-#define TFM_TEX_TRANSLATION 33
-#define TFM_TEX_ROTATION 34
-#define TFM_TEX_RESIZE 35
-
+/* TRANSFORM CONTEXTS */
+#define CTX_NONE 0
+#define CTX_TEXTURE 1
+#define CTX_EDGE 2
+/* TRANSFORM PROPORTIONAL FALLOFF MODES */
#define PROP_SHARP 0
#define PROP_SMOOTH 1
#define PROP_ROOT 2
#define PROP_LIN 3
#define PROP_CONST 4
-void Transform(int mode);
+void Transform(int mode, int context);
struct TransInfo;
diff --git a/source/blender/src/editmesh_tools.c b/source/blender/src/editmesh_tools.c
index 422480b4de6..b0f96f30ef6 100644
--- a/source/blender/src/editmesh_tools.c
+++ b/source/blender/src/editmesh_tools.c
@@ -561,7 +561,7 @@ void extrude_mesh(void)
/* individual faces? */
if(nr==2) {
- Transform(TFM_SHRINKFATTEN);
+ Transform(TFM_SHRINKFATTEN, CTX_NONE);
}
else {
if(transmode=='n') {
@@ -569,7 +569,7 @@ void extrude_mesh(void)
VecSubf(nor, nor, G.obedit->obmat[3]);
BIF_setSingleAxisConstraint(nor, NULL);
}
- Transform(TFM_TRANSLATION);
+ Transform(TFM_TRANSLATION, CTX_NONE);
}
}
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index 999173e288f..78d50143575 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -6749,7 +6749,7 @@ void std_rmouse_transform(void (*xf_func)(int))
getmouseco_areawin(mval);
if(abs(mval[0]-xo)+abs(mval[1]-yo) > 10) {
if(curarea->spacetype==SPACE_VIEW3D)
- Transform(TFM_TRANSLATION);
+ Transform(TFM_TRANSLATION, CTX_NONE);
else
xf_func('g');
@@ -7615,7 +7615,7 @@ void adduplicate(float *dtrans)
clear_id_newpoins();
countall();
- if(dtrans==0) Transform(TFM_TRANSLATION);
+ if(dtrans==0) Transform(TFM_TRANSLATION, CTX_NONE);
set_active_base(BASACT);
@@ -7963,9 +7963,9 @@ void texspace_edit(void)
//transmode= TRANS_TEX;
- if(nr==1) Transform(TFM_TEX_TRANSLATION);
- else if(nr==2) Transform(TFM_TEX_RESIZE);
- else if(nr==3) Transform(TFM_TEX_ROTATION);
+ if(nr==1) Transform(TFM_TRANSLATION, CTX_TEXTURE);
+ else if(nr==2) Transform(TFM_RESIZE, CTX_TEXTURE);
+ else if(nr==3) Transform(TFM_ROTATION, CTX_TEXTURE);
//transmode= 0;
}
diff --git a/source/blender/src/space.c b/source/blender/src/space.c
index 0515e0124c9..97e82321b16 100644
--- a/source/blender/src/space.c
+++ b/source/blender/src/space.c
@@ -1225,7 +1225,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
clear_object('g');
}
} else if((G.qual==0)) {
- Transform(TFM_TRANSLATION);
+ Transform(TFM_TRANSLATION, CTX_NONE);
}
break;
case HKEY:
@@ -1483,28 +1483,28 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
loopoperations(LOOP_CUT);
}
else if((G.qual==0)) {
- Transform(TFM_ROTATION);
+ Transform(TFM_ROTATION, CTX_NONE);
}
}
else if((G.qual==0)) {
- Transform(TFM_ROTATION);
+ Transform(TFM_ROTATION, CTX_NONE);
}
break;
case SKEY:
if(G.obedit) {
if(G.qual==LR_ALTKEY)
- Transform(TFM_SHRINKFATTEN);
+ Transform(TFM_SHRINKFATTEN, CTX_NONE);
else if(G.qual==LR_CTRLKEY)
- Transform(TFM_SHEAR);
+ Transform(TFM_SHEAR, CTX_NONE);
else if(G.qual==(LR_CTRLKEY|LR_ALTKEY))
- Transform(TFM_SHEAR);
+ Transform(TFM_SHEAR, CTX_NONE);
else if(G.qual==LR_SHIFTKEY)
snapmenu();
else if(G.qual==0) {
- Transform(TFM_RESIZE);
+ Transform(TFM_RESIZE, CTX_NONE);
}
else if(G.qual==(LR_SHIFTKEY|LR_CTRLKEY)){
- Transform(TFM_TOSPHERE);
+ Transform(TFM_TOSPHERE, CTX_NONE);
}
}
@@ -1517,12 +1517,12 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
snapmenu();
}
else if((G.qual==0)) {
- Transform(TFM_RESIZE);
+ Transform(TFM_RESIZE, CTX_NONE);
}
else if(G.qual==(LR_SHIFTKEY|LR_CTRLKEY))
- Transform(TFM_TOSPHERE);
+ Transform(TFM_TOSPHERE, CTX_NONE);
else if(G.qual==(LR_CTRLKEY|LR_ALTKEY))
- Transform(TFM_SHEAR);
+ Transform(TFM_SHEAR, CTX_NONE);
break;
case TKEY:
if(G.obedit){
@@ -1537,7 +1537,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
clear_tilt();
}
else if (G.qual==0) {
- Transform(TFM_TILT);
+ Transform(TFM_TILT, CTX_NONE);
}
}
}
@@ -1603,7 +1603,7 @@ static void winqreadview3dspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
break;
case WKEY:
if((G.qual==LR_SHIFTKEY)) {
- Transform(TFM_WARP);
+ Transform(TFM_WARP, CTX_NONE);
}
else if(G.qual==LR_ALTKEY) {
/* if(G.obedit && G.obedit->type==OB_MESH) write_videoscape(); */
diff --git a/source/blender/src/toolbox.c b/source/blender/src/toolbox.c
index fe0f1fbcba5..79bfeebbf67 100644
--- a/source/blender/src/toolbox.c
+++ b/source/blender/src/toolbox.c
@@ -1991,13 +1991,13 @@ static void tb_do_transform(void *arg, int event)
switch(event)
{
case 0: /* Grab/move */
- Transform(TFM_TRANSLATION);
+ Transform(TFM_TRANSLATION, CTX_NONE);
break;
case 1: /* Rotate */
- Transform(TFM_ROTATION);
+ Transform(TFM_ROTATION, CTX_NONE);
break;
case 2: /* Scale */
- Transform(TFM_RESIZE);
+ Transform(TFM_RESIZE,CTX_NONE);
break;
case 3: /* transform properties */
add_blockhandler(curarea, VIEW3D_HANDLER_OBJECT, UI_PNL_UNSTOW);
@@ -2009,7 +2009,7 @@ static void tb_do_transform(void *arg, int event)
transform('N');
break;
case 6: /* Shear */
- Transform(TFM_SHEAR);
+ Transform(TFM_SHEAR, CTX_NONE);
break;
case 7: /* Warp */
transform('w');
diff --git a/source/blender/src/transform.c b/source/blender/src/transform.c
index 889c2c682ee..338460ef420 100755
--- a/source/blender/src/transform.c
+++ b/source/blender/src/transform.c
@@ -1226,10 +1226,9 @@ static void createTransObject(void)
static void createTransData(TransInfo *t)
{
- if( t->mode & TFM_TEX) {
+ if (t->context == CTX_TEXTURE) {
t->flag |= T_TEXTURE;
createTransTexspace();
- t->mode &= ~TFM_TEX; // now becoming normal grab/rot/scale
}
else if (G.obpose) {
t->flag |= T_POSE;
@@ -1278,7 +1277,7 @@ static void createTransData(TransInfo *t)
/* ************************** TRANSFORMATIONS **************************** */
-void Transform(int mode)
+void Transform(int mode, int context)
{
int ret_val = 0;
short pmval[2] = {0, 0}, mval[2], val;
@@ -1305,6 +1304,8 @@ void Transform(int mode)
else {
LastMode = mode;
}
+
+ Trans.context = context;
initTransModeFlags(&Trans, mode); // modal settings in struct Trans
@@ -1616,6 +1617,8 @@ void ManipulatorTransform(int mode)
}
/* END */
+ Trans.context = CTX_NONE;
+
initTransModeFlags(&Trans, mode); // modal settings in struct Trans
initTrans(&Trans); // internal data, mouse, vectors
@@ -2457,7 +2460,6 @@ int Rotation(TransInfo *t, short mval[2])
sprintf(str, "Rot: %.2f %s", 180.0*final/M_PI, t->proptext);
}
- //printf("Axis %f %f %f\n", axis[0], axis[1], axis[2]);
VecRotToMat3(axis, final * td->factor, mat);
t->val = final; // used in manipulator
diff --git a/source/blender/src/transform.h b/source/blender/src/transform.h
index bf99f3ccfe7..bb5317a8618 100755
--- a/source/blender/src/transform.h
+++ b/source/blender/src/transform.h
@@ -107,6 +107,7 @@ typedef struct TransData {
typedef struct TransInfo {
int mode; /* current mode */
+ int context; /* current context */
int (*transform)(struct TransInfo *, short *);
/* transform function pointer */
char redraw; /* redraw flag */