merge with 2.5 at r18679
[blender.git] / source / blender / editors / transform / transform.h
index fb1a82d232c93b7ad8eedb056930ede5e7f62bd4..a7017df5439f2d5b7ac4b541b9f586e4761dffc6 100644 (file)
@@ -150,6 +150,14 @@ typedef struct TransDataCurveHandleFlags {
        char *h1, *h2;
 } TransDataCurveHandleFlags;
 
+/* for sequencer transform */
+typedef struct TransDataSeq {
+       struct Sequence *seq;
+       int flag;               /* a copy of seq->flag that may be modified for nested strips */
+       short start_offset; /* use this so we can have transform data at the strips start, but apply correctly to the start frame  */
+       short sel_flag; /* one of SELECT, SEQ_LEFTSEL and SEQ_RIGHTSEL */
+       
+} TransDataSeq;
 
 typedef struct TransData {
        float  dist;         /* Distance needed to affect element (for Proportionnal Editing)                  */
@@ -212,6 +220,7 @@ typedef struct TransInfo {
     short       imval[2];       /* initial mouse position               */
        short       idx_max;            /* maximum index on the input vector    */
        float           snap[3];                /* Snapping Gears                                               */
+       char            frame_side;             /* Mouse side of the cfra, 'L', 'R' or 'B' */
        
        float           viewmat[4][4];  /* copy from G.vd, prevents feedback,   */
        float           viewinv[4][4];  /* and to make sure we don't have to    */
@@ -307,8 +316,7 @@ typedef struct TransInfo {
 #define CON_AXIS2              8
 #define CON_SELECT             16
 #define CON_NOFLIP             32      /* does not reorient vector to face viewport when on */
-#define CON_LOCAL              64
-#define CON_USER               128
+#define CON_USER               64
 
 /* transdata->flag */
 #define TD_SELECTED                    1
@@ -353,8 +361,8 @@ void convertViewVec(TransInfo *t, float *vec, short dx, short dy);
 void projectIntView(TransInfo *t, float *vec, int *adr);
 void projectFloatView(TransInfo *t, float *vec, float *adr);
 
-void convertVecToDisplayNum(float *vec, float *num);
-void convertDisplayNumToVec(float *num, float *vec);
+void applyAspectRatio(TransInfo *t, float *vec);
+void removeAspectRatio(TransInfo *t, float *vec);
 
 void initWarp(TransInfo *t);
 int handleEventWarp(TransInfo *t, struct wmEvent *event);
@@ -439,11 +447,12 @@ void flushTransUVs(TransInfo *t);
 void flushTransParticles(TransInfo *t);
 int clipUVTransform(TransInfo *t, float *vec, int resize);
 void flushTransNodes(TransInfo *t);
+void flushTransSeq(TransInfo *t);
 
 /*********************** exported from transform_manipulator.c ********** */
 void draw_manipulator_ext(struct ScrArea *sa, int type, char axis, int col, float vec[3], float mat[][3]);
 int calc_manipulator_stats(struct ScrArea *sa);
-float get_drawsize(struct View3D *v3d, struct ScrArea *sa, float *co);
+float get_drawsize(struct ARegion *ar, float *co);
 
 /*********************** TransData Creation and General Handling *********** */
 void createTransData(struct bContext *C, TransInfo *t);
@@ -577,19 +586,21 @@ int handleNDofInput(NDofInput *n, struct wmEvent *event);
 #define NDOF_CANCEL            4
 
 
-/*********************** TransSpace ******************************/
+/*********************** Transform Orientations ******************************/
+
+void initTransformOrientation(struct bContext *C, TransInfo *t);
 
-int manageObjectSpace(int confirm, int set);
-int manageMeshSpace(int confirm, int set);
-int manageBoneSpace(int confirm, int set);
+int manageObjectSpace(struct bContext *C, int confirm, int set);
+int manageMeshSpace(struct bContext *C, int confirm, int set);
+int manageBoneSpace(struct bContext *C, int confirm, int set);
 
 /* Those two fill in mat and return non-zero on success */
 int createSpaceNormal(float mat[3][3], float normal[3]);
 int createSpaceNormalTangent(float mat[3][3], float normal[3], float tangent[3]);
 
-int addMatrixSpace(float mat[3][3], char name[]);
-int addObjectSpace(struct Object *ob);
-void applyTransformOrientation(void);
+int addMatrixSpace(struct bContext *C, float mat[3][3], char name[]);
+int addObjectSpace(struct bContext *C, struct Object *ob);
+void applyTransformOrientation(struct bContext *C, TransInfo *t);
 
 
 #define ORIENTATION_NONE       0