- fix for error in ndof patch.
authorCampbell Barton <ideasman42@gmail.com>
Sun, 19 Aug 2012 15:56:49 +0000 (15:56 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 19 Aug 2012 15:56:49 +0000 (15:56 +0000)
- ColorBalanceModifierData wasn't aligned on 32bit systems.
- BM_vert_find_first_loop() was missing NULL check.

source/blender/bmesh/intern/bmesh_queries.c
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/transform/transform_manipulator.c
source/blender/makesdna/DNA_sequence_types.h

index a439eff36f604ea9b5a25e85581ccfd18224d2af..a9f146e496266c513d2cadbd68514817b38ca7d5 100644 (file)
@@ -202,6 +202,10 @@ BMLoop *BM_vert_find_first_loop(BMVert *v)
                return NULL;
 
        e = bmesh_disk_faceedge_find_first(v->e, v);
                return NULL;
 
        e = bmesh_disk_faceedge_find_first(v->e, v);
+
+       if (!e)
+               return NULL;
+
        return bmesh_radial_faceloop_find_first(e->l, v);
 }
 
        return bmesh_radial_faceloop_find_first(e->l, v);
 }
 
index b262819474b0e665f84f4c04904627b6b05f8c72..e5730e0f69b8402bb016d6046bc1de25a89fb228 100644 (file)
@@ -1022,9 +1022,10 @@ static int ndof_orbit_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event
 
                        /* tune these until everything feels right */
                        const float rot_sensitivity = 1.f;
 
                        /* tune these until everything feels right */
                        const float rot_sensitivity = 1.f;
+#if 0
                        const float zoom_sensitivity = 1.f;
                        const float zoom_sensitivity = 1.f;
+#endif
                        const float pan_sensitivity = 1.f;
                        const float pan_sensitivity = 1.f;
-
                        const int has_rotation = rv3d->viewlock != RV3D_LOCKED && !is_zero_v3(ndof->rvec);
 
                        float view_inv[4];
                        const int has_rotation = rv3d->viewlock != RV3D_LOCKED && !is_zero_v3(ndof->rvec);
 
                        float view_inv[4];
@@ -1249,12 +1250,11 @@ static int ndof_all_invoke(bContext *C, wmOperator *op, wmEvent *event)
                View3D *v3d = CTX_wm_view3d(C);
                wmNDOFMotionData *ndof = (wmNDOFMotionData *) event->customdata;
 
                View3D *v3d = CTX_wm_view3d(C);
                wmNDOFMotionData *ndof = (wmNDOFMotionData *) event->customdata;
 
-               ED_view3d_camera_lock_init(v3d, rv3d);
-
                viewops_data_create(C, op, event);
                vod = op->customdata;
                rv3d = vod->rv3d;
                viewops_data_create(C, op, event);
                vod = op->customdata;
                rv3d = vod->rv3d;
-               
+
+               ED_view3d_camera_lock_init(v3d, rv3d);
 
                if (ndof->progress != P_FINISHING) {
 
 
                if (ndof->progress != P_FINISHING) {
 
@@ -1271,11 +1271,13 @@ static int ndof_all_invoke(bContext *C, wmOperator *op, wmEvent *event)
 
                        float pan_vec[3];
                        const float rot_sensitivity = 1.f;
 
                        float pan_vec[3];
                        const float rot_sensitivity = 1.f;
+#if 0
                        const float zoom_sensitivity = 1.f;
                        const float pan_sensitivity = 1.f;
                        float rot[4];
                        const float zoom_sensitivity = 1.f;
                        const float pan_sensitivity = 1.f;
                        float rot[4];
-                       float axis[3];
                        float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis);
                        float angle = rot_sensitivity * ndof_to_axis_angle(ndof, axis);
+                       float axis[3];
+#endif
 
                        if (U.ndof_flag & NDOF_PANX_INVERT_AXIS)
                                pan_vec[0] = -lateral_sensitivity * ndof->tvec[0];
 
                        if (U.ndof_flag & NDOF_PANX_INVERT_AXIS)
                                pan_vec[0] = -lateral_sensitivity * ndof->tvec[0];
index a89ba06c1af97cea9e0f46f3329646d0477f7a34..74a2292d74c814603c02fe9672c0f5f3f5b36811 100644 (file)
 
 /* return codes for select, and drawing flags */
 
 
 /* return codes for select, and drawing flags */
 
-#define MAN_TRANS_X     1
-#define MAN_TRANS_Y     2
-#define MAN_TRANS_Z     4
-#define MAN_TRANS_C     7
-
-#define MAN_ROT_X       8
-#define MAN_ROT_Y       16
-#define MAN_ROT_Z       32
-#define MAN_ROT_V       64
-#define MAN_ROT_T       128
-#define MAN_ROT_C       248
-
-#define MAN_SCALE_X     256
-#define MAN_SCALE_Y     512
-#define MAN_SCALE_Z     1024
-#define MAN_SCALE_C     1792
+#define MAN_TRANS_X            (1 << 0)
+#define MAN_TRANS_Y            (1 << 1)
+#define MAN_TRANS_Z            (1 << 2)
+#define MAN_TRANS_C            (MAN_TRANS_X | MAN_TRANS_Y | MAN_TRANS_Z)
+
+#define MAN_ROT_X              (1 << 3)
+#define MAN_ROT_Y              (1 << 4)
+#define MAN_ROT_Z              (1 << 5)
+#define MAN_ROT_V              (1 << 6)
+#define MAN_ROT_T              (1 << 7)
+#define MAN_ROT_C              (MAN_ROT_X | MAN_ROT_Y | MAN_ROT_Z | MAN_ROT_V | MAN_ROT_T)
+
+#define MAN_SCALE_X            (1 << 8)
+#define MAN_SCALE_Y            (1 << 9)
+#define MAN_SCALE_Z            (1 << 10)
+#define MAN_SCALE_C            (MAN_SCALE_X | MAN_SCALE_Y | MAN_SCALE_Z)
 
 /* color codes */
 
 
 /* color codes */
 
index d6c59456bd0fb439c971a485ac3a83bfba504c99..e7ab6f6640893ec0f06aed6040cdc4c280cd9268 100644 (file)
@@ -252,7 +252,6 @@ typedef struct ColorBalanceModifierData {
 
        StripColorBalance color_balance;
        float color_multiply;
 
        StripColorBalance color_balance;
        float color_multiply;
-       int pad;
 } ColorBalanceModifierData;
 
 typedef struct CurvesModifierData {
 } ColorBalanceModifierData;
 
 typedef struct CurvesModifierData {