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
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/src/transform_generics.c')
-rw-r--r--source/blender/src/transform_generics.c43
1 files changed, 35 insertions, 8 deletions
diff --git a/source/blender/src/transform_generics.c b/source/blender/src/transform_generics.c
index 47a7bd5299f..6738d437ab6 100644
--- a/source/blender/src/transform_generics.c
+++ b/source/blender/src/transform_generics.c
@@ -550,6 +550,39 @@ void recalcData(TransInfo *t)
}
+void initTransModeFlags(TransInfo *t, int mode)
+{
+ t->mode = mode;
+ t->num.flag = 0;
+
+ /* REMOVING RESTRICTIONS FLAGS */
+ t->flag &= ~T_ALL_RESTRICTIONS;
+
+ switch (mode) {
+ case TFM_RESIZE:
+ t->flag |= T_NULL_ONE;
+ t->num.flag |= NUM_NULL_ONE;
+ t->num.flag |= NUM_AFFECT_ALL;
+ if (!G.obedit) {
+ t->flag |= T_NO_ZERO;
+ t->num.flag |= NUM_NO_ZERO;
+ }
+ break;
+ case TFM_TOSPHERE:
+ t->num.flag |= NUM_NULL_ONE;
+ t->num.flag |= NUM_NO_NEGATIVE;
+ t->flag |= T_NO_CONSTRAINT;
+ break;
+ case TFM_SHEAR:
+ case TFM_CREASE:
+ case TFM_BONE_ENVELOPE:
+ case TFM_CURVE_SHRINKFATTEN:
+ case TFM_BONE_ROLL:
+ t->flag |= T_NO_CONSTRAINT;
+ break;
+ }
+}
+
void drawLine(float *center, float *dir, char axis, short options)
{
extern void make_axis_color(char *col, char *col2, char axis); // drawview.c
@@ -584,6 +617,7 @@ void drawLine(float *center, float *dir, char axis, short options)
void initTrans (TransInfo *t)
{
+
/* moving: is shown in drawobject() (transform color) */
if(G.obedit || (t->flag & T_POSE) ) G.moving= G_TRANSFORM_EDIT;
else if(G.f & G_PARTICLEEDIT) G.moving= G_TRANSFORM_PARTICLE;
@@ -593,8 +627,6 @@ void initTrans (TransInfo *t)
t->ext = NULL;
t->flag = 0;
- t->num.flag = 0;
-
/* setting PET flag */
if ((t->context & CTX_NO_PET) == 0 && (G.scene->proportional)) {
@@ -607,8 +639,6 @@ void initTrans (TransInfo *t)
t->con.imval[1] = t->imval[1];
t->transform = NULL;
- t->handleEvent = NULL;
- t->customData = NULL;
t->total =
t->num.idx =
@@ -644,6 +674,7 @@ void initTrans (TransInfo *t)
t->around = V3D_CENTER;
setTransformViewMatrices(t);
+ initNDofInput(&(t->ndof));
}
/* Here I would suggest only TransInfo related issues, like free data & reset vars. Not redraws */
@@ -689,10 +720,6 @@ void postTrans (TransInfo *t)
MEM_freeN(t->data2d);
t->data2d= NULL;
}
-
- if ((t->flag & T_FREE_CUSTOMDATA) && t->customData != NULL) {
- MEM_freeN(t->customData);
- }
if(t->spacetype==SPACE_IMAGE) {
if (G.sima->flag & SI_LIVE_UNWRAP)