Revision: 21429
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21429
Author:   ton
Date:     2009-07-08 17:01:28 +0200 (Wed, 08 Jul 2009)

Log Message:
-----------
2.5

Brought back the basics for transform manipulators. Martin will
hook it all up to new transform system.

Some notes:
- Still uses G.moving
- BIF_do_manipulator() is called as a View3D Operator
  I've tested selecting handles, added a print to confirm
- BIF_GetTransInfo() returns a dummy struct now, just to get
  it running.
- Marked some other issues with XXX

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/include/BIF_transform.h
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.c
    branches/blender2.5/blender/source/blender/editors/transform/transform.h
    
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_view3d_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_space.c

Modified: 
branches/blender2.5/blender/source/blender/editors/include/BIF_transform.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/BIF_transform.h  
2009-07-08 14:32:03 UTC (rev 21428)
+++ branches/blender2.5/blender/source/blender/editors/include/BIF_transform.h  
2009-07-08 15:01:28 UTC (rev 21429)
@@ -128,8 +128,8 @@
 void initManipulator(int mode);
 void ManipulatorTransform();
 
-//int BIF_do_manipulator(struct ScrArea *sa);
-//void BIF_draw_manipulator(struct ScrArea *sa);
+int BIF_do_manipulator(struct bContext *C, short mval[2]);
+void BIF_draw_manipulator(const struct bContext *C);
 
 /* Snapping */
 

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c    
    2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c    
    2009-07-08 15:01:28 UTC (rev 21429)
@@ -565,58 +565,6 @@
                BLI_freelistN(&strings);
 }
 
-void drawsolidcube(float size)
-{
-       float n[3];
-
-       glPushMatrix();
-       glScalef(size, size, size);
-       
-       n[0]=0; n[1]=0; n[2]=0;
-       glBegin(GL_QUADS);
-               n[0]= -1.0;
-               glNormal3fv(n); 
-               glVertex3fv(cube[0]); glVertex3fv(cube[1]); 
glVertex3fv(cube[2]); glVertex3fv(cube[3]);
-               n[0]=0;
-       glEnd();
-
-       glBegin(GL_QUADS);
-               n[1]= -1.0;
-               glNormal3fv(n); 
-               glVertex3fv(cube[0]); glVertex3fv(cube[4]); 
glVertex3fv(cube[5]); glVertex3fv(cube[1]);
-               n[1]=0;
-       glEnd();
-
-       glBegin(GL_QUADS);
-               n[0]= 1.0;
-               glNormal3fv(n); 
-               glVertex3fv(cube[4]); glVertex3fv(cube[7]); 
glVertex3fv(cube[6]); glVertex3fv(cube[5]);
-               n[0]=0;
-       glEnd();
-
-       glBegin(GL_QUADS);
-               n[1]= 1.0;
-               glNormal3fv(n); 
-               glVertex3fv(cube[7]); glVertex3fv(cube[3]); 
glVertex3fv(cube[2]); glVertex3fv(cube[6]);
-               n[1]=0;
-       glEnd();
-
-       glBegin(GL_QUADS);
-               n[2]= 1.0;
-               glNormal3fv(n); 
-               glVertex3fv(cube[1]); glVertex3fv(cube[5]); 
glVertex3fv(cube[6]); glVertex3fv(cube[2]);
-               n[2]=0;
-       glEnd();
-
-       glBegin(GL_QUADS);
-               n[2]= -1.0;
-               glNormal3fv(n); 
-               glVertex3fv(cube[7]); glVertex3fv(cube[4]); 
glVertex3fv(cube[0]); glVertex3fv(cube[3]);
-       glEnd();
-       
-       glPopMatrix();
-}
-
 static void drawcube(void)
 {
 

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c   
    2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c   
    2009-07-08 15:01:28 UTC (rev 21429)
@@ -70,6 +70,7 @@
 
 #include "BIF_gl.h"
 #include "BIF_glutil.h"
+#include "BIF_transform.h"
 
 #include "WM_api.h"
 #include "BLF_api.h"
@@ -2019,7 +2020,7 @@
        if(rv3d->rflag & RV3D_CLIPPING)
                view3d_clr_clipping();
        
-//     BIF_draw_manipulator(ar);
+       BIF_draw_manipulator(C);
        
        if(v3d->zbuf) {
                v3d->zbuf= FALSE;

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c   
    2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c   
    2009-07-08 15:01:28 UTC (rev 21429)
@@ -63,6 +63,7 @@
 
 #include "BIF_gl.h"
 #include "BIF_retopo.h"
+#include "BIF_transform.h"
 
 #include "WM_api.h"
 #include "WM_types.h"
@@ -1858,7 +1859,44 @@
 
 }
 
+/* ***************** manipulator op ******************* */
 
+
+static int manipulator_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+       View3D *v3d = CTX_wm_view3d(C);
+
+       if(!(v3d->twflag & V3D_USE_MANIPULATOR)) return OPERATOR_PASS_THROUGH;
+       if(!(v3d->twflag & V3D_DRAW_MANIPULATOR)) return OPERATOR_PASS_THROUGH;
+
+       /* note; otherwise opengl won't work */
+       view3d_operator_needs_opengl(C);
+       
+       if(0==BIF_do_manipulator(C, event->mval))
+               return OPERATOR_PASS_THROUGH;
+       
+       return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_manipulator(wmOperatorType *ot)
+{
+       
+       /* identifiers */
+       ot->name= "3D Manipulator";
+       ot->description = "";
+       ot->idname= "VIEW3D_OT_manipulator";
+       
+       /* api callbacks */
+       ot->invoke= manipulator_invoke;
+       
+       ot->poll= ED_operator_view3d_active;
+       
+       /* rna later */
+       
+}
+
+
+
 /* ************************* below the line! *********************** */
 
 

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c 
    2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c 
    2009-07-08 15:01:28 UTC (rev 21429)
@@ -4978,16 +4978,22 @@
                break;  
        
        case B_MAN_TRANS:
-               if( shift==0 || v3d->twtype==0)
+               if( shift==0 || v3d->twtype==0) {
                        v3d->twtype= V3D_MANIP_TRANSLATE;
+                       ED_area_tag_redraw(sa);
+               }
                break;
        case B_MAN_ROT:
-               if( shift==0 || v3d->twtype==0)
+               if( shift==0 || v3d->twtype==0) {
                        v3d->twtype= V3D_MANIP_ROTATE;
+                       ED_area_tag_redraw(sa);
+               }
                break;
        case B_MAN_SCALE:
-               if( shift==0 || v3d->twtype==0)
+               if( shift==0 || v3d->twtype==0) {
                        v3d->twtype= V3D_MANIP_SCALE;
+                       ED_area_tag_redraw(sa);
+               }
                break;
        case B_NDOF:
                break;

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h 
    2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h 
    2009-07-08 15:01:28 UTC (rev 21429)
@@ -76,6 +76,7 @@
 void VIEW3D_OT_view_orbit(struct wmOperatorType *ot);
 void VIEW3D_OT_clipping(struct wmOperatorType *ot);
 void VIEW3D_OT_cursor3d(struct wmOperatorType *ot);
+void VIEW3D_OT_manipulator(struct wmOperatorType *ot);
 void VIEW3D_OT_render_border(struct wmOperatorType *ot);
 void VIEW3D_OT_zoom_border(struct wmOperatorType *ot);
 void VIEW3D_OT_drawtype(struct wmOperatorType *ot);

Modified: 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c    
    2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c    
    2009-07-08 15:01:28 UTC (rev 21429)
@@ -79,6 +79,7 @@
        WM_operatortype_append(VIEW3D_OT_smoothview);
        WM_operatortype_append(VIEW3D_OT_render_border);
        WM_operatortype_append(VIEW3D_OT_zoom_border);
+       WM_operatortype_append(VIEW3D_OT_manipulator);
        WM_operatortype_append(VIEW3D_OT_cursor3d);
        WM_operatortype_append(VIEW3D_OT_select_lasso);
        WM_operatortype_append(VIEW3D_OT_setcameratoview);
@@ -136,6 +137,7 @@
        km = WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, 
KM_ANY, KM_CTRL, 0);
        RNA_boolean_set(km->ptr, "snap", 1);
 
+       WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", ACTIONMOUSE, 
KM_PRESS, 0, 0);
        WM_keymap_verify_item(keymap, "VIEW3D_OT_cursor3d", ACTIONMOUSE, 
KM_PRESS, 0, 0);
        
        WM_keymap_verify_item(keymap, "VIEW3D_OT_viewrotate", MIDDLEMOUSE, 
KM_PRESS, 0, 0);

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.c    
2009-07-08 14:32:03 UTC (rev 21428)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.c    
2009-07-08 15:01:28 UTC (rev 21429)
@@ -454,6 +454,7 @@
 #endif
 }
 
+#if 0
 static char *transform_to_undostr(TransInfo *t)
 {
        switch (t->mode) {
@@ -500,6 +501,7 @@
        }
        return "Transform";
 }
+#endif
 
 /* ************************************************* */
 
@@ -1460,6 +1462,8 @@
 
 void initManipulator(int mode)
 {
+       printf("init manipulator mode %d\n", mode);
+       
 #if 0 // TRANSFORM_FIX_ME
        Trans.state = TRANS_RUNNING;
 

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/transform/transform.h    
2009-07-08 14:32:03 UTC (rev 21428)
+++ branches/blender2.5/blender/source/blender/editors/transform/transform.h    
2009-07-08 15:01:28 UTC (rev 21429)
@@ -481,8 +481,7 @@
 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);
+int calc_manipulator_stats(const struct bContext *C);
 float get_drawsize(struct ARegion *ar, float *co);
 
 /*********************** TransData Creation and General Handling *********** */
@@ -631,7 +630,7 @@
 
 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);
+void applyTransformOrientation(const struct bContext *C, TransInfo *t);
 
 
 #define ORIENTATION_NONE       0
@@ -640,7 +639,7 @@
 #define ORIENTATION_EDGE       3
 #define ORIENTATION_FACE       4
 
-int getTransformOrientation(struct bContext *C, float normal[3], float 
plane[3], int activeOnly);
+int getTransformOrientation(const struct bContext *C, float normal[3], float 
plane[3], int activeOnly);
 int createSpaceNormal(float mat[3][3], float normal[3]);
 int createSpaceNormalTangent(float mat[3][3], float normal[3], float 
tangent[3]);
 

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
        2009-07-08 14:32:03 UTC (rev 21428)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
        2009-07-08 15:01:28 UTC (rev 21429)
@@ -2566,6 +2566,7 @@
  * It also makes sure gp-frames are still stored in chronological order after
  * transform.
  */
+#if 0
 static void posttrans_gpd_clean (bGPdata *gpd)
 {
        bGPDlayer *gpl;
@@ -2650,6 +2651,7 @@
                }
        }
 }
+#endif
 

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to