code cleanup:
authorCampbell Barton <ideasman42@gmail.com>
Fri, 2 Mar 2012 12:09:49 +0000 (12:09 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 2 Mar 2012 12:09:49 +0000 (12:09 +0000)
replace casts: '((Mesh *)ob->data)->edit_btmesh' with 'BMEdit_FromObject(ob)'

also minor style edits.

29 files changed:
source/blender/blenkernel/BKE_tessmesh.h
source/blender/blenkernel/intern/editderivedmesh.c
source/blender/blenkernel/intern/object.c
source/blender/bmesh/operators/bmo_edgesplit.c
source/blender/editors/mesh/bmesh_select.c
source/blender/editors/mesh/bmesh_tools.c
source/blender/editors/mesh/bmesh_utils.c
source/blender/editors/mesh/knifetool.c
source/blender/editors/mesh/loopcut.c
source/blender/editors/mesh/mesh_navmesh.c
source/blender/editors/mesh/mesh_ops.c
source/blender/editors/object/object_vgroup.c
source/blender/editors/render/render_shading.c
source/blender/editors/screen/screen_ops.c
source/blender/editors/sculpt_paint/paint_image.c
source/blender/editors/sculpt_paint/sculpt_uv.c
source/blender/editors/space_image/space_image.c
source/blender/editors/space_info/info_stats.c
source/blender/editors/space_view3d/view3d_header.c
source/blender/editors/space_view3d/view3d_select.c
source/blender/editors/transform/transform_conversions.c
source/blender/editors/transform/transform_generics.c
source/blender/editors/transform/transform_manipulator.c
source/blender/editors/transform/transform_snap.c
source/blender/editors/uvedit/uvedit_buttons.c
source/blender/editors/uvedit/uvedit_draw.c
source/blender/editors/uvedit/uvedit_ops.c
source/blender/editors/uvedit/uvedit_smart_stitch.c
source/blender/editors/uvedit/uvedit_unwrap_ops.c

index cc3f2870711edc98de3f3021761eb031669e1467..ae2882b171257211229054cf4b0f5c293e7cdd4a 100644 (file)
@@ -88,6 +88,7 @@ typedef struct BMEditMesh {
 void BMEdit_RecalcTesselation(BMEditMesh *tm);
 BMEditMesh *BMEdit_Create(BMesh *bm, int do_tesselate);
 BMEditMesh *BMEdit_Copy(BMEditMesh *tm);
+BMEditMesh *BMEdit_FromObject(struct Object *ob);
 void BMEdit_Free(BMEditMesh *em);
 void BMEdit_UpdateLinkedCustomData(BMEditMesh *em);
 
index f73a2ff6c1af8b0d3424c0eb27d57ba90b328c07..f0fb5cc64b461016a7e8271a485c1243e4b77961 100644 (file)
@@ -47,9 +47,9 @@
 #include "BKE_paint.h"
 
 
+#include "DNA_mesh_types.h"
 #include "DNA_meshdata_types.h"
 #include "DNA_object_types.h"
-#include "DNA_curve_types.h" /* for Curve */
 
 #include "MEM_guardedalloc.h"
 
@@ -1707,3 +1707,15 @@ DerivedMesh *getEditDerivedBMesh(
 
        return (DerivedMesh*) bmdm;
 }
+
+/**
+ * \brief Return the BMEditMesh for a given object
+ *
+ * \note this function assumes this is a mesh object,
+ * don't add NULL data check here. caller must do that
+ */
+BMEditMesh *BMEdit_FromObject(Object *ob)
+{
+       BLI_assert(ob->type == OB_MESH);
+       return ((Mesh *)   ob->data   )->edit_btmesh;
+}
index 37fb8b4a5507918269a27bb5cf98c3120d75b971..52ddfb67bf8e35d47b27c6b2dd0d17c3393b6689 100644 (file)
@@ -2527,7 +2527,7 @@ void object_handle_update(Scene *scene, Object *ob)
                        case OB_MESH:
                                {
 #if 0                          // XXX, comment for 2.56a release, background wont set 'scene->customdata_mask'
-                                       BMEditMesh *em = (ob == scene->obedit)? ((Mesh*)ob->data)->edit_btmesh : NULL;
+                                       BMEditMesh *em = (ob == scene->obedit) ? BMEdit_FromObject(ob) : NULL;
                                        BLI_assert((scene->customdata_mask & CD_MASK_BAREMESH) == CD_MASK_BAREMESH);
                                        if (em) {
                                                makeDerivedMesh(scene, ob, em,  scene->customdata_mask, 0); /* was CD_MASK_BAREMESH */
@@ -2537,7 +2537,7 @@ void object_handle_update(Scene *scene, Object *ob)
                                        }
 
 #else                          /* ensure CD_MASK_BAREMESH for now */
-                                       BMEditMesh *em = (ob == scene->obedit)? ((Mesh*)ob->data)->edit_btmesh : NULL;
+                                       BMEditMesh *em = (ob == scene->obedit) ? BMEdit_FromObject(ob) : NULL;
                                        uint64_t data_mask= scene->customdata_mask | ob->customdata_mask | CD_MASK_BAREMESH;
                                        if (em) {
                                                makeDerivedMesh(scene, ob, em,  data_mask, 0); /* was CD_MASK_BAREMESH */
index 059ee882fb8bafb05358b1d16304b7f572d26383..69555f7b89e1efd5db0b5e20111018e0ab361a87 100644 (file)
@@ -154,25 +154,31 @@ static void tag_out_edges(BMesh *bm, EdgeTag *etags, BMOperator *UNUSED(op))
                                et = &etags[BM_elem_index_get(l->e)];
                                if (et->newe1 == l->e) {
                                        if (et->newe1) {
+                                               printf("ret1a %p\n", et->newe1);
                                                BMO_elem_flag_enable(bm, et->newe1, EDGE_RET1);
                                                BMO_elem_flag_disable(bm, et->newe1, EDGE_SEAM);
                                        }
                                        if (et->newe2) {
+                                               printf("ret2a %p\n", et->newe2);
                                                BMO_elem_flag_enable(bm, et->newe2, EDGE_RET2);
                                                BMO_elem_flag_disable(bm, et->newe2, EDGE_SEAM);
                                        }
                                }
                                else {
                                        if (et->newe1) {
+                                               printf("ret2b %p\n", et->newe1);
                                                BMO_elem_flag_enable(bm, et->newe1, EDGE_RET2);
                                                BMO_elem_flag_disable(bm, et->newe1, EDGE_SEAM);
                                        }
                                        if (et->newe2) {
+                                               printf("ret2b %p\n", et->newe2);
                                                BMO_elem_flag_enable(bm, et->newe2, EDGE_RET1);
                                                BMO_elem_flag_disable(bm, et->newe2, EDGE_SEAM);
                                        }
                                }
 
+                               printf("SEAM %d\n", BMO_elem_flag_test(bm, l->e, EDGE_SEAM));
+
                                /* If the original edge was non-manifold edges, then it is
                                 * possible l->e is not et->newe1 or et->newe2. So always clear
                                 * the flag on l->e as well, to prevent infinite looping. */
index ac658f242af3d3ab03fc1cbf35f87784f199f848..2e21f6d1f282bcc5282912af627da484de815349 100644 (file)
@@ -104,7 +104,7 @@ void EDBM_automerge(Scene *scene, Object *obedit, int update)
        if ((scene->toolsettings->automerge) &&
            (obedit && obedit->type == OB_MESH))
        {
-               em = ((Mesh *)obedit->data)->edit_btmesh;
+               em = BMEdit_FromObject(obedit);
                if (!em)
                        return;
 
@@ -692,7 +692,7 @@ static EnumPropertyItem prop_similar_types[] = {
 static int similar_face_select_exec(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        /* get the type from RNA */
@@ -733,7 +733,7 @@ static int similar_face_select_exec(bContext *C, wmOperator *op)
 static int similar_edge_select_exec(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        /* get the type from RNA */
@@ -780,7 +780,7 @@ VERT GROUP
 static int similar_vert_select_exec(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
        /* get the type from RNA */
        int type = RNA_enum_get(op->ptr, "type");
@@ -833,7 +833,7 @@ static EnumPropertyItem *select_similar_type_itemf(bContext *C, PointerRNA *UNUS
        if (obedit && obedit->type == OB_MESH) {
                EnumPropertyItem *item = NULL;
                int a, totitem = 0;
-               BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(obedit);
 
                if (em->selectmode & SCE_SELECT_VERTEX) {
                        for (a = SIMVERT_NORMAL; a < SIMEDGE_LENGTH; a++) {
@@ -908,7 +908,7 @@ static void walker_select(BMEditMesh *em, int walkercode, void *start, int selec
 static int loop_multiselect(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMEdge *eed;
        BMEdge **edarray;
        int edindex;
@@ -1728,7 +1728,7 @@ static void linked_limit_default(bContext *C, wmOperator *op)
 {
        if (!RNA_struct_property_is_set(op->ptr, "limit")) {
                Object *obedit = CTX_data_edit_object(C);
-               BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(obedit);
                if (em->selectmode == SCE_SELECT_FACE)
                        RNA_boolean_set(op->ptr, "limit", TRUE);
                else
@@ -1850,7 +1850,7 @@ void MESH_OT_select_linked_pick(wmOperatorType *ot)
 static int select_linked_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMIter iter;
        BMVert *v;
@@ -1945,7 +1945,7 @@ void MESH_OT_select_linked(wmOperatorType *ot)
 static int select_more(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        EDBM_select_more(em);
 
@@ -1971,7 +1971,7 @@ void MESH_OT_select_more(wmOperatorType *ot)
 static int select_less(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        EDBM_select_less(em);
 
@@ -2145,7 +2145,7 @@ static int EM_deselect_nth(BMEditMesh *em, int nth, int offset)
 static int mesh_select_nth_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int nth = RNA_int_get(op->ptr, "nth");
        int offset = RNA_int_get(op->ptr, "offset");
 
@@ -2207,7 +2207,7 @@ static int select_sharp_edges_exec(bContext *C, wmOperator *op)
        * small enough, select the edge
        */
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMIter iter;
        BMEdge *e;
        BMLoop *l1, *l2;
@@ -2260,7 +2260,7 @@ void MESH_OT_edges_select_sharp(wmOperatorType *ot)
 static int select_linked_flat_faces_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMIter iter, liter, liter2;
        BMFace *f, **stack = NULL;
        BLI_array_declare(stack);
@@ -2341,7 +2341,7 @@ void MESH_OT_faces_select_linked_flat(wmOperatorType *ot)
 static int select_non_manifold_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMVert *v;
        BMEdge *e;
        BMIter iter;
@@ -2390,7 +2390,7 @@ void MESH_OT_select_non_manifold(wmOperatorType *ot)
 static int mesh_select_random_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMVert *eve;
        BMEdge *eed;
        BMFace *efa;
@@ -2456,7 +2456,7 @@ void MESH_OT_select_random(wmOperatorType *ot)
 static int select_next_loop(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *f;
        BMVert *v;
        BMIter iter;
@@ -2506,7 +2506,7 @@ void MESH_OT_select_next_loop(wmOperatorType *ot)
 static int region_to_loop(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *f;
        BMEdge *e;
        BMIter iter;
@@ -2710,7 +2710,7 @@ static int loop_find_regions(BMEditMesh *em, int selbigger)
 static int loop_to_region(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMIter iter;
        BMFace *f;
        int selbigger = RNA_boolean_get(op->ptr, "select_bigger");
index 0a05d1b61e4e0c84150e65800973d0854066e9d7..daa03d2726f0724815096d74b059aa1fdfa6b36e 100644 (file)
@@ -77,7 +77,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
 {
        ToolSettings *ts = CTX_data_tool_settings(C);
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int cuts = RNA_int_get(op->ptr,"number_cuts");
        float smooth = 0.292f * RNA_float_get(op->ptr, "smoothness");
        float fractal = RNA_float_get(op->ptr, "fractal")/2.5;
@@ -368,7 +368,7 @@ static short EDBM_Extrude_vert(Object *obedit, BMEditMesh *em, const char hflag,
 static int extrude_repeat_mesh(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        RegionView3D *rv3d = CTX_wm_region_view3d(C);
                
        int steps = RNA_int_get(op->ptr,"steps");
@@ -508,7 +508,7 @@ static int mesh_extrude_region_exec(bContext *C, wmOperator *op)
 {
        Scene *scene = CTX_data_scene(C);
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        EDBM_Extrude_Mesh(scene, obedit, em, op, NULL);
 
@@ -543,7 +543,7 @@ void MESH_OT_extrude_region(wmOperatorType *ot)
 static int mesh_extrude_verts_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        float nor[3];
 
        EDBM_Extrude_verts_indiv(em, op, BM_ELEM_SELECT, nor);
@@ -573,7 +573,7 @@ void MESH_OT_extrude_verts_indiv(wmOperatorType *ot)
 static int mesh_extrude_edges_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        float nor[3];
 
        EDBM_Extrude_edges_indiv(em, op, BM_ELEM_SELECT, nor);
@@ -603,7 +603,7 @@ void MESH_OT_extrude_edges_indiv(wmOperatorType *ot)
 static int mesh_extrude_faces_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        float nor[3];
 
        EDBM_Extrude_face_indiv(em, op, BM_ELEM_SELECT, nor);
@@ -642,7 +642,7 @@ void EDBM_toggle_select_all(BMEditMesh *em) /* exported for UV */
 static int mesh_select_all_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int action = RNA_enum_get(op->ptr, "action");
        
        switch (action) {
@@ -685,7 +685,7 @@ void MESH_OT_select_all(wmOperatorType *ot)
 static int mesh_faces_select_interior_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        if (EDBM_select_interior_faces(em)) {
                WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit);
@@ -903,7 +903,7 @@ void MESH_OT_dupli_extrude_cursor(wmOperatorType *ot)
 
 static int delete_mesh(bContext *C, Object *obedit, wmOperator *op, int event, Scene *UNUSED(scene))
 {
-       BMEditMesh *bem = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *bem = BMEdit_FromObject(obedit);
        
        if (event < 1) return OPERATOR_CANCELLED;
 
@@ -978,7 +978,7 @@ static EnumPropertyItem prop_mesh_delete_types[] = {
 static int delete_mesh_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        Scene *scene = CTX_data_scene(C);
        int type = RNA_enum_get(op->ptr, "type");
        
@@ -1027,7 +1027,7 @@ static int addedgeface_mesh_exec(bContext *C, wmOperator *op)
 {
        BMOperator bmop;
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        if (!EDBM_InitOpf(em, &bmop, op, "contextual_create geom=%hfev", BM_ELEM_SELECT))
                return OPERATOR_CANCELLED;
@@ -1066,7 +1066,7 @@ static int editbmesh_mark_seam(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
        Mesh *me = ((Mesh *)obedit->data);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMEdge *eed;
        BMIter iter;
@@ -1120,7 +1120,7 @@ static int editbmesh_mark_sharp(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
        Mesh *me = ((Mesh *)obedit->data);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMEdge *eed;
        BMIter iter;
@@ -1176,7 +1176,7 @@ void MESH_OT_mark_sharp(wmOperatorType *ot)
 static int editbmesh_vert_connect(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMOperator bmop;
        int len = 0;
@@ -1213,7 +1213,7 @@ void MESH_OT_vert_connect(wmOperatorType *ot)
 static int editbmesh_edge_split(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMOperator bmop;
        int len = 0;
@@ -1256,7 +1256,7 @@ void MESH_OT_edge_split(wmOperatorType *ot)
 static int mesh_duplicate_exec(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        EDBM_InitOpf(em, &bmop, op, "dupe geom=%hvef", BM_ELEM_SELECT);
@@ -1305,7 +1305,7 @@ void MESH_OT_duplicate(wmOperatorType *ot)
 static int flip_normals(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        if (!EDBM_CallOpf(em, op, "reversefaces faces=%hf", BM_ELEM_SELECT))
                return OPERATOR_CANCELLED;
@@ -1340,7 +1340,7 @@ static const EnumPropertyItem direction_items[] = {
 static int edge_rotate_selected(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMOperator bmop;
        BMEdge *eed;
        BMIter iter;
@@ -1458,7 +1458,7 @@ void EDBM_hide_mesh(BMEditMesh *em, int swap)
 static int hide_mesh_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        EDBM_hide_mesh(em, RNA_boolean_get(op->ptr, "unselected"));
                
@@ -1532,7 +1532,7 @@ void EDBM_reveal_mesh(BMEditMesh *em)
 static int reveal_mesh_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        EDBM_reveal_mesh(em);
 
@@ -1560,7 +1560,7 @@ void MESH_OT_reveal(wmOperatorType *ot)
 static int normals_make_consistent_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        /* doflip has to do with bmesh_rationalize_normals, it's an internal
         * thing */
@@ -1598,7 +1598,7 @@ void MESH_OT_normals_make_consistent(wmOperatorType *ot)
 static int do_smooth_vertex(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        ModifierData *md;
        int mirrx = FALSE, mirry = FALSE, mirrz = FALSE;
        int i, repeat;
@@ -1677,7 +1677,7 @@ static int bm_test_exec(bContext *C, wmOperator *UNUSED(op))
        Object *obedit = CTX_data_edit_object(C);
        ARegion *ar = CTX_wm_region(C);
        View3D *v3d = CTX_wm_view3d(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMBVHTree *tree = BMBVH_NewBVH(em, 0, NULL, NULL);
        BMIter iter;
        BMEdge *e;
@@ -1765,7 +1765,7 @@ static void mesh_set_smooth_faces(BMEditMesh *em, short smooth)
 static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        mesh_set_smooth_faces(em, 1);
 
@@ -1793,7 +1793,7 @@ void MESH_OT_faces_shade_smooth(wmOperatorType *ot)
 static int mesh_faces_shade_flat_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        mesh_set_smooth_faces(em, 0);
 
@@ -1830,7 +1830,7 @@ static const EnumPropertyItem axis_items[] = {
 static int mesh_rotate_uvs(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        /* get the direction from RNA */
@@ -1858,7 +1858,7 @@ static int mesh_rotate_uvs(bContext *C, wmOperator *op)
 static int mesh_reverse_uvs(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        /* initialize the bmop using EDBM api, which does various ui error reporting and other stuff */
@@ -1883,7 +1883,7 @@ static int mesh_reverse_uvs(bContext *C, wmOperator *op)
 static int mesh_rotate_colors(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        /* get the direction from RNA */
@@ -1914,7 +1914,7 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op)
 static int mesh_reverse_colors(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        /* initialize the bmop using EDBM api, which does various ui error reporting and other stuff */
@@ -2084,7 +2084,7 @@ static int merge_exec(bContext *C, wmOperator *op)
        Scene *scene = CTX_data_scene(C);
        View3D *v3d = CTX_wm_view3d(C);
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int status = 0, uvs = RNA_boolean_get(op->ptr, "uvs");
 
        switch(RNA_enum_get(op->ptr, "type")) {
@@ -2135,7 +2135,7 @@ static EnumPropertyItem *merge_type_itemf(bContext *C, PointerRNA *UNUSED(ptr),
        
        obedit = CTX_data_edit_object(C);
        if (obedit && obedit->type == OB_MESH) {
-               BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(obedit);
 
                if (em->selectmode & SCE_SELECT_VERTEX) {
                        if (em->bm->selected.first && em->bm->selected.last &&
@@ -2190,7 +2190,7 @@ void MESH_OT_merge(wmOperatorType *ot)
 static int removedoublesflag_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMOperator bmop;
        int count;
 
@@ -2254,7 +2254,7 @@ typedef struct PathEdge {
 static int select_vertex_path_exec(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
        BMEditSelection *sv, *ev;
 
@@ -2345,7 +2345,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event)
        ARegion *ar = CTX_wm_region(C);
        View3D *v3d = CTX_wm_view3d(C);
        RegionView3D *rv3d = CTX_wm_region_view3d(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMOperator bmop;
        BMBVHTree *bvhtree;
@@ -2731,7 +2731,7 @@ void MESH_OT_blend_from_shape(wmOperatorType *ot)
 static int select_axis_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMEditSelection *ese = em->bm->selected.last;
        int axis = RNA_enum_get(op->ptr, "axis");
        int mode = RNA_enum_get(op->ptr, "mode"); /* -1 == aligned, 0 == neg, 1 == pos */
@@ -3068,7 +3068,7 @@ static float bm_edge_seg_isect(BMEdge *e, CutCurve *c, int len, char mode,
 static int knife_cut_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        ARegion *ar = CTX_wm_region(C);
        BMVert *bv;
@@ -3392,7 +3392,7 @@ void MESH_OT_separate(wmOperatorType *ot)
 static int fill_mesh_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMOperator bmop;
        
        if (!EDBM_InitOpf(em, &bmop, op, "triangle_fill edges=%he", BM_ELEM_SELECT)) {
@@ -3432,7 +3432,7 @@ void MESH_OT_fill(wmOperatorType *ot)
 static int beautify_fill_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        if (!EDBM_CallOpf(em, op, "beautify_fill faces=%hf", BM_ELEM_SELECT))
                return OPERATOR_CANCELLED;
@@ -3462,7 +3462,7 @@ void MESH_OT_beautify_fill(wmOperatorType *ot)
 static int quads_convert_to_tris_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        if (!EDBM_CallOpf(em, op, "triangulate faces=%hf", BM_ELEM_SELECT))
                return OPERATOR_CANCELLED;
@@ -3490,7 +3490,7 @@ void MESH_OT_quads_convert_to_tris(wmOperatorType *ot)
 static int tris_convert_to_quads_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int dosharp, douvs, dovcols, domaterials;
        float limit = RNA_float_get(op->ptr, "limit");
 
@@ -3540,7 +3540,7 @@ void MESH_OT_tris_convert_to_quads(wmOperatorType *ot)
 static int dissolve_limited_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        float angle_limit = RNA_float_get(op->ptr, "angle_limit");
 
        if (!EDBM_CallOpf(em, op,
@@ -3580,7 +3580,7 @@ void MESH_OT_dissolve_limited(wmOperatorType *ot)
 static int split_mesh_exec(bContext *C, wmOperator *op)
 {
        Object *ob = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        BMOperator bmop;
 
        EDBM_InitOpf(em, &bmop, op, "split geom=%hvef use_only_faces=%b", BM_ELEM_SELECT, FALSE);
@@ -3620,7 +3620,7 @@ static int spin_mesh_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
        ToolSettings *ts = CTX_data_tool_settings(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMOperator spinop;
        float cent[3], axis[3], imat[3][3];
@@ -3700,7 +3700,7 @@ void MESH_OT_spin(wmOperatorType *ot)
 static int screw_mesh_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
        BMEdge *eed;
        BMVert *eve, *v1, *v2;
@@ -3826,7 +3826,7 @@ void MESH_OT_screw(wmOperatorType *ot)
 static int select_by_number_vertices_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMIter iter;
        int numverts = RNA_int_get(op->ptr, "number");
@@ -3885,7 +3885,7 @@ void MESH_OT_select_by_number_vertices(wmOperatorType *ot)
 static int select_loose_verts_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMVert *eve;
        BMEdge *eed;
        BMIter iter;
@@ -3930,7 +3930,7 @@ void MESH_OT_select_loose_verts(wmOperatorType *ot)
 static int select_mirror_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int extend = RNA_boolean_get(op->ptr, "extend");
 
        EDBM_select_mirrored(obedit, em, extend);
@@ -4318,7 +4318,7 @@ static void hashvert_flag(EditMesh *em, int flag)
 static int mesh_vertices_randomize_exec(bContext *C, wmOperator *UNUSED(op))
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 #if 1 /* BMESH TODO */
        (void)em;
 #else
@@ -4349,7 +4349,7 @@ void MESH_OT_vertices_randomize(wmOperatorType *ot)
 static int mesh_noise_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        Material *ma;
        Tex *tex;
        BMVert *eve;
@@ -4421,7 +4421,7 @@ void MESH_OT_noise(wmOperatorType *ot)
 static int mesh_bevel_exec(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = (((Mesh *)obedit->data))->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMIter iter;
        BMEdge *eed;
        BMOperator bmop;
@@ -4515,7 +4515,7 @@ void MESH_OT_bevel(wmOperatorType *ot)
 static int bridge_edge_loops(bContext *C, wmOperator *op)
 {
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        
        if (!EDBM_CallOpf(em, op, "bridge_loops edges=%he", BM_ELEM_SELECT))
                return OPERATOR_CANCELLED;
index 830534e331521aefeae940ee96d266985c8a11df..892184e94ad0b489e9fb1fc35f05c256e075f14e 100644 (file)
@@ -245,7 +245,7 @@ void EDBM_selectmode_to_scene(bContext *C)
 {
        Scene *scene = CTX_data_scene(C);
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        if (!em)
                return;
index 86e02d44de9e7f82ee9aef753fb935efb703d9b9..3b78ceada98791c73ea57fdb37691c7c9ac14b1f 100644 (file)
@@ -2051,7 +2051,7 @@ static int knifetool_init(bContext *C, wmOperator *op, int UNUSED(do_cut))
        kcd->draw_handle = ED_region_draw_cb_activate(kcd->ar->type, knifetool_draw, kcd, REGION_DRAW_POST_VIEW);
        em_setup_viewcontext(C, &kcd->vc);
 
-       kcd->em = ((Mesh *)kcd->ob->data)->edit_btmesh;
+       kcd->em = BMEdit_FromObject(kcd->ob);
 
        BM_mesh_elem_index_ensure(kcd->em->bm, BM_VERT);
 
@@ -2185,7 +2185,7 @@ static int knifetool_modal (bContext *C, wmOperator *op, wmEvent *event)
        }
        
        obedit = CTX_data_edit_object(C);
-       if (!obedit || obedit->type != OB_MESH || ((Mesh *)obedit->data)->edit_btmesh != kcd->em) {
+       if (!obedit || obedit->type != OB_MESH || BMEdit_FromObject(obedit) != kcd->em) {
                knifetool_exit(C, op);
                return OPERATOR_FINISHED;
        }
index 30dedf10618e09792dc333bda454daf6f707ca74..a82310be9260d6fca84c82ce30bbb587387a9021 100644 (file)
@@ -373,7 +373,7 @@ static int ringsel_init (bContext *C, wmOperator *op, int do_cut)
        lcd->ar= CTX_wm_region(C);
        lcd->draw_handle= ED_region_draw_cb_activate(lcd->ar->type, ringsel_draw, lcd, REGION_DRAW_POST_VIEW);
        lcd->ob = CTX_data_edit_object(C);
-       lcd->em= ((Mesh *)lcd->ob->data)->edit_btmesh;
+       lcd->em = BMEdit_FromObject(lcd->ob);
        lcd->extend = do_cut ? 0 : RNA_boolean_get(op->ptr, "extend");
        lcd->do_cut = do_cut;
        
index 374fbca0659591f27de0129ec52a95a3d622e353..38d632ffaee742f111cc1018d5bb3d44165d8786 100644 (file)
@@ -321,7 +321,7 @@ static Object* createRepresentation(bContext *C, struct recast_polyMesh *pmesh,
        }
 
        ED_object_enter_editmode(C, EM_DO_UNDO|EM_IGNORE_LAYER);
-       em= (((Mesh *)obedit->data))->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
 
        if(!createob) {
                /* clear */
@@ -483,8 +483,8 @@ void MESH_OT_navmesh_make(wmOperatorType *ot)
 
 static int navmesh_face_copy_exec(bContext *C, wmOperator *op)
 {
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
 
        /* do work here */
        BMFace *efa_act= BM_active_face_get(em->bm, FALSE);
@@ -571,8 +571,8 @@ static int findFreeNavPolyIndex(BMEditMesh* em)
 
 static int navmesh_face_add_exec(bContext *C, wmOperator *UNUSED(op))
 {
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *ef;
        BMIter iter;
        
index 4b4083751e79f1a839a63a8b7c9d2e4568d6a661..1c38a9d3cd3bfc59f4fdd01556d68fb6a425043d 100644 (file)
@@ -174,7 +174,7 @@ static int ED_operator_editmesh_face_select(bContext *C)
 {
        Object *obedit= CTX_data_edit_object(C);
        if(obedit && obedit->type==OB_MESH) {
-               BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(obedit);
                if (em && em->selectmode & SCE_SELECT_FACE) {
                        return 1;
                }
index c2ecf78de5d79c29fb59ed01a7d87d1fa8a560b9..f610d75824397d61fc7116dda89a9d022f65917c 100644 (file)
@@ -92,7 +92,7 @@ static Lattice *vgroup_edit_lattice(Object *ob)
 int ED_vgroup_object_is_edit_mode(Object *ob)
 {
        if(ob->type == OB_MESH)
-               return (((Mesh*)ob->data)->edit_btmesh != NULL);
+               return (BMEdit_FromObject(ob) != NULL);
        else if(ob->type == OB_LATTICE)
                return (((Lattice*)ob->data)->editlatt != NULL);
 
@@ -1257,11 +1257,12 @@ static void vgroup_blend(Object *ob)
        int i, dvert_tot=0;
        const int def_nr= ob->actdef-1;
 
-       BMEditMesh *em= ((Mesh *)ob->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(ob);
        // ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
 
-       if (em==NULL)
+       if (em == NULL) {
                return;
+       }
 
        if (BLI_findlink(&ob->defbase, def_nr)) {
                BMEdge *eed;
@@ -1880,7 +1881,7 @@ static void vgroup_delete_edit_mode(Object *ob, bDeformGroup *dg)
 static int vgroup_object_in_edit_mode(Object *ob)
 {
        if(ob->type == OB_MESH)
-               return (((Mesh*)ob->data)->edit_btmesh != NULL);
+               return (BMEdit_FromObject(ob) != NULL);
        else if(ob->type == OB_LATTICE)
                return (((Lattice*)ob->data)->editlatt != NULL);
        
@@ -2773,7 +2774,7 @@ static int vgroup_do_remap(Object *ob, char *name_array, wmOperator *op)
 
        if(ob->mode == OB_MODE_EDIT) {
                if(ob->type==OB_MESH) {
-                       BMEditMesh *em = ((Mesh*)ob->data)->edit_btmesh;
+                       BMEditMesh *em = BMEdit_FromObject(ob);
                        BMIter iter;
                        BMVert *eve;
 
index 3a65d701b5814d091230d90dc75dda288e8ca945..b98eb330e42d974f4a398fd43cc3f8a01d788938 100644 (file)
@@ -165,7 +165,7 @@ static int material_slot_assign_exec(bContext *C, wmOperator *UNUSED(op))
 
        if(ob && ob->actcol>0) {
                if(ob->type == OB_MESH) {
-                       BMEditMesh *em= ((Mesh*)ob->data)->edit_btmesh;
+                       BMEditMesh *em = BMEdit_FromObject(ob);
                        BMFace *efa;
                        BMIter iter;
 
@@ -220,13 +220,13 @@ void OBJECT_OT_material_slot_assign(wmOperatorType *ot)
 
 static int material_slot_de_select(bContext *C, int select)
 {
-       Object *ob= ED_object_context(C);
+       Object *ob = ED_object_context(C);
 
        if(!ob)
                return OPERATOR_CANCELLED;
 
        if(ob->type == OB_MESH) {
-               BMEditMesh *em= ((Mesh*)ob->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(ob);
 
                if(em) {
                        EDBM_deselect_by_material(em, ob->actcol-1, select);
index 039b1c2f866cc8ad114c47470d456152dd1e7788..8818bd66b2304d1e02b2dfce5815908654b754e0 100644 (file)
@@ -315,7 +315,7 @@ int ED_operator_editmesh(bContext *C)
 {
        Object *obedit= CTX_data_edit_object(C);
        if(obedit && obedit->type==OB_MESH)
-               return NULL != ((Mesh *)obedit->data)->edit_btmesh;
+               return NULL != BMEdit_FromObject(obedit);
        return 0;
 }
 
@@ -367,17 +367,18 @@ int ED_operator_uvedit(bContext *C)
 
 int ED_operator_uvmap(bContext *C)
 {
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= NULL;
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = NULL;
        
-       if(obedit && obedit->type==OB_MESH)
-               em= ((Mesh *)obedit->data)->edit_btmesh;
+       if(obedit && obedit->type == OB_MESH) {
+               em = BMEdit_FromObject(obedit);
+       }
        
        if(em && (em->bm->totface)) {
-               return 1;
+               return TRUE;
        }
        
-       return 0;
+       return FALSE;
 }
 
 int ED_operator_editsurfcurve(bContext *C)
index 725b2a584ba250a2bb84b1d5bcc1778480f38881..63e976693e3a5d5689aa5738f03edeec241ec4d5 100644 (file)
@@ -4661,7 +4661,7 @@ static int uv_sculpt_brush_poll(bContext *C)
        if(!uv_sculpt_brush(C) || !obedit || obedit->type != OB_MESH)
                return 0;
 
-       em = ((Mesh *)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
        ret = EDBM_texFaceCheck(em);
 
        if(ret && sima) {
index 9bdb151d55d1c4eeeda8fc87680433a6372e1257..f0aedae88aca632afeef2a628eea891e58cbb047 100644 (file)
@@ -299,7 +299,7 @@ static void uv_sculpt_stroke_apply(bContext *C, wmOperator *op, wmEvent *event,
        float co[2], radius, radius_root;
        Scene *scene = CTX_data_scene(C);
        ARegion *ar = CTX_wm_region(C);
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        unsigned int tool;
        UvSculptData *sculptdata = (UvSculptData *)op->customdata;
        SpaceImage *sima;
@@ -471,7 +471,7 @@ static UvSculptData *uv_sculpt_stroke_init(bContext *C, wmOperator *op, wmEvent
        Object *obedit = CTX_data_edit_object(C);
        ToolSettings *ts = scene->toolsettings;
        UvSculptData *data = MEM_callocN(sizeof(*data), "UV Smooth Brush Data");
-       BMEditMesh *em = ((Mesh *)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMesh *bm = em->bm;
 
        op->customdata = data;
index ce7338ced13b89331084389ba13dc1199fcd3d69..7abc0c6ea71529345f8f58ae6e1db145973cf963 100644 (file)
@@ -276,7 +276,7 @@ int ED_space_image_show_uvedit(SpaceImage *sima, Object *obedit)
                return 0;
 
        if(obedit && obedit->type == OB_MESH) {
-               struct BMEditMesh *em = ((Mesh*)obedit->data)->edit_btmesh;
+               struct BMEditMesh *em = BMEdit_FromObject(obedit);
                int ret;
                
                ret = EDBM_texFaceCheck(em);
@@ -294,7 +294,7 @@ int ED_space_image_show_uvshadow(SpaceImage *sima, Object *obedit)
        
        if(ED_space_image_show_paint(sima))
                if(obedit && obedit->type == OB_MESH) {
-                       struct BMEditMesh *em = ((Mesh*)obedit->data)->edit_btmesh;
+                       struct BMEditMesh *em = BMEdit_FromObject(obedit);
                        int ret;
                        
                        ret = EDBM_texFaceCheck(em);
index cf003d8c1eb29d4f8812290f5f44660ca7bac38f..120783db3406006047011b3827bdcab0eedf3512 100644 (file)
@@ -140,7 +140,7 @@ static void stats_object(Object *ob, int sel, int totob, SceneStats *stats)
 static void stats_object_edit(Object *obedit, SceneStats *stats)
 {
        if(obedit->type==OB_MESH) {
-               BMEditMesh *em = ((Mesh*)obedit->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(obedit);
 
                stats->totvert = em->bm->totvert;
                stats->totvertsel = em->bm->totvertsel;
index 29ef1f1b61760b69a98661143e902d7389bd9f94..f80bd6c3807d5ff033e07c1211de769b7b8340ac 100644 (file)
@@ -333,17 +333,17 @@ static char *view3d_modeselect_pup(Scene *scene)
 
 static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event)
 {
-       wmWindow *win= CTX_wm_window(C);
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       ScrArea *sa= CTX_wm_area(C);
-       View3D *v3d= sa->spacedata.first;
+       wmWindow *win = CTX_wm_window(C);
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       ScrArea *sa = CTX_wm_area(C);
+       View3D *v3d = sa->spacedata.first;
        Object *obedit = CTX_data_edit_object(C);
-       BMEditMesh *em= NULL;
-       int ctrl= win->eventstate->ctrl, shift= win->eventstate->shift;
+       BMEditMesh *em = NULL;
+       int ctrl = win->eventstate->ctrl, shift= win->eventstate->shift;
        PointerRNA props_ptr;
        
-       if (obedit && obedit->type==OB_MESH) {
-               em= ((Mesh *)obedit->data)->edit_btmesh;
+       if (obedit && obedit->type == OB_MESH) {
+               em = BMEdit_FromObject(obedit);
        }
        /* watch it: if sa->win does not exist, check that when calling direct drawing routines */
 
@@ -449,7 +449,7 @@ void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C)
        uiBlockSetHandleFunc(block, do_view3d_header_buttons, NULL);
 
        if (obedit && (obedit->type == OB_MESH)) {
-               BMEditMesh *em= ((Mesh *)obedit->data)->edit_btmesh;
+               BMEditMesh *em = BMEdit_FromObject(obedit);
                uiLayout *row;
 
                row= uiLayoutRow(layout, 1);
index dfd8b4a35686d29bf9636ddba6f308878cb8a47d..a5c7e21e3b48425a127f50e629125e3fe11c03a0 100644 (file)
@@ -516,7 +516,7 @@ static void do_lasso_select_mesh(ViewContext *vc, int mcords[][2], short moves,
        lasso_select_boundbox(&rect, mcords, moves);
        
        /* set editmesh */
-       vc->em= ((Mesh *)vc->obedit->data)->edit_btmesh;
+       vc->em = BMEdit_FromObject(vc->obedit);
 
        data.vc= vc;
        data.rect = &rect;
@@ -2073,7 +2073,7 @@ static int view3d_borderselect_exec(bContext *C, wmOperator *op)
        if (vc.obedit) {
                switch(vc.obedit->type) {
                case OB_MESH:
-                       vc.em= ((Mesh *)vc.obedit->data)->edit_btmesh;
+                       vc.em = BMEdit_FromObject(vc.obedit);
                        ret= do_mesh_box_select(&vc, &rect, select, extend);
 //                     if (EM_texFaceCheck())
                        if (ret & OPERATOR_FINISHED) {
@@ -2336,7 +2336,7 @@ static void mesh_circle_select(ViewContext *vc, int select, const int mval[2], f
        bbsel= EDBM_init_backbuf_circle(vc, mval[0], mval[1], (short)(rad+1.0));
        ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
 
-       vc->em= ((Mesh *)vc->obedit->data)->edit_btmesh;
+       vc->em = BMEdit_FromObject(vc->obedit);
 
        data.vc = vc;
        data.select = select;
index eabd3181aa232bcc5a35d1eac3e2fc7b4a387c92..1b4a75f80e8705a037d46238e8ac8b4d16b54ecb 100644 (file)
@@ -303,7 +303,7 @@ static void createTransTexspace(TransInfo *t)
 
 static void createTransEdge(TransInfo *t)
 {
-       BMEditMesh *em = ((Mesh *)t->obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(t->obedit);
        TransData *td = NULL;
        BMEdge *eed;
        BMIter iter;
@@ -2022,7 +2022,7 @@ static void createTransEditVerts(bContext *C, TransInfo *t)
 {
        ToolSettings *ts = CTX_data_tool_settings(C);
        TransData *tob = NULL;
-       BMEditMesh *em = ((Mesh *)t->obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(t->obedit);
        BMesh *bm = em->bm;
        BMVert *eve;
        BMIter iter;
@@ -2442,7 +2442,7 @@ static void createTransUVs(bContext *C, TransInfo *t)
        TransData2D *td2d = NULL;
        MTexPoly *tf;
        MLoopUV *luv;
-       BMEditMesh *em = ((Mesh *)t->obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(t->obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -5145,7 +5145,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
        else if (t->obedit) {
                if (t->obedit->type == OB_MESH)
                {
-                       BMEditMesh *em = ((Mesh *)t->obedit->data)->edit_btmesh;
+                       BMEditMesh *em = BMEdit_FromObject(t->obedit);
                        /* table needs to be created for each edit command, since vertices can move etc */
                        mesh_octree_table(t->obedit, em, NULL, 'e');
                }
index efe4bac3d3f2d012180a8d011047ff5ef85822cf..2f349ae6f2aff43ebd7525e06cc3c1d53e6340df 100644 (file)
@@ -714,7 +714,7 @@ static void recalcData_view3d(TransInfo *t)
                        if(la->editlatt->latt->flag & LT_OUTSIDE) outside_lattice(la->editlatt->latt);
                }
                else if (t->obedit->type == OB_MESH) {
-                       BMEditMesh *em = ((Mesh*)t->obedit->data)->edit_btmesh;
+                       BMEditMesh *em = BMEdit_FromObject(t->obedit);
                        /* mirror modifier clipping? */
                        if(t->state != TRANS_CANCEL) {
                                /* apply clipping after so we never project past the clip plane [#25423] */
@@ -1540,7 +1540,7 @@ void calculateCenter(TransInfo *t)
                if (t->obedit) {
                        if (t->obedit && t->obedit->type == OB_MESH) {
                                BMEditSelection ese;
-                               BMEditMesh *em = ((Mesh*)t->obedit->data)->edit_btmesh;
+                               BMEditMesh *em = BMEdit_FromObject(t->obedit);
 
                                if (EDBM_get_actSelection(em, &ese)) {
                                        EDBM_editselection_center(em, t->center, &ese);
index bd687ddfe4016a71d04497b4da1b7cb387fed0ba..296fea7531752889355806d929c8c50d4bbb6193 100644 (file)
@@ -299,7 +299,7 @@ int calc_manipulator_stats(const bContext *C)
                if((ob->lay & v3d->lay)==0) return 0;
 
                if(obedit->type==OB_MESH) {
-                       BMEditMesh *em = ((Mesh*)obedit->data)->edit_btmesh;
+                       BMEditMesh *em = BMEdit_FromObject(obedit);
                        BMEditSelection ese;
                        float vec[3]= {0,0,0};
 
index b36670bafa5a68a0e567619ef182ed97ab5c0aef..c17667cd6394f01c5e725f8856aba6b26ac66849 100644 (file)
@@ -1650,7 +1650,7 @@ static int snapObject(Scene *scene, ARegion *ar, Object *ob, int editobject, flo
                
                if (editobject)
                {
-                       em = ((Mesh *)ob->data)->edit_btmesh;
+                       em = BMEdit_FromObject(ob);
                        /* dm = editbmesh_get_derived_cage(scene, ob, em, CD_MASK_BAREMESH); */
                        dm = editbmesh_get_derived_base(ob, em); /* limitation, em & dm MUST have the same number of faces */
                }
@@ -1976,7 +1976,7 @@ static int peelObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, L
                                }
                                else
                                {
-                                       em = ((Mesh *)ob->data)->edit_btmesh;
+                                       em = BMEdit_FromObject(ob);
                                        dm = editbmesh_get_derived_cage(scene, obedit, em, CD_MASK_BAREMESH);
                                        
                                        val = peelDerivedMesh(ob, dm, ob->obmat, ray_start, ray_normal, mval, depth_peels);
index 20ff8b07bc6615de2e6ca9917e46d0b6a72034f0..a45a3555b511885332bbb70cdb7cd08877474bfe 100644 (file)
@@ -112,17 +112,17 @@ static float uvedit_old_center[2];
 
 static void uvedit_vertex_buttons(const bContext *C, uiBlock *block)
 {
-       SpaceImage *sima= CTX_wm_space_image(C);
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= sima->image;
+       SpaceImage *sima = CTX_wm_space_image(C);
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = sima->image;
        BMEditMesh *em;
        float center[2];
        int imx, imy, step, digits;
 
        ED_space_image_size(sima, &imx, &imy);
        
-       em= ((Mesh *)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
 
        if(uvedit_center(scene, em, ima, center)) {
                copy_v2_v2(uvedit_old_center, center);
@@ -161,7 +161,7 @@ static void do_uvedit_vertex(bContext *C, void *UNUSED(arg), int event)
        if(event != B_UVEDIT_VERTEX)
                return;
 
-       em= ((Mesh *)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
 
        ED_space_image_size(sima, &imx, &imy);
        uvedit_center(scene, em, ima, center);
index ef09ec3c3e86e16247c0b7453765f17b9449f3d2..db71f74b8e13dfc6a7f627310a72d9e3776f8e78 100644 (file)
@@ -132,7 +132,7 @@ static void draw_uvs_shadow(Object *obedit)
        BMIter iter, liter;
        MLoopUV *luv;
        
-       em= ((Mesh*)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
 
        /* draws the grey mesh when painting */
        glColor3ub(112, 112, 112);
index eb7373c226d4144dc3d2a7cd5bce6389e32326ae..42e6ec39e4624d567ab88a6df733e836002f8099 100644 (file)
@@ -97,7 +97,7 @@ int ED_uvedit_test(Object *obedit)
        if(obedit->type != OB_MESH)
                return 0;
 
-       em = ((Mesh*)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
        ret = EDBM_texFaceCheck(em);
        
        return ret;
@@ -180,7 +180,7 @@ void ED_uvedit_assign_image(Main *bmain, Scene *scene, Object *obedit, Image *im
        if(!obedit || (obedit->type != OB_MESH))
                return;
 
-       em= ((Mesh*)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
        if(!em || !em->bm->totface) {
                return;
        }
@@ -249,7 +249,7 @@ static int uvedit_set_tile(Object *obedit, Image *ima, int curtile)
        if(ima->type==IMA_TYPE_R_RESULT || ima->type==IMA_TYPE_COMPOSITE)
                return 0;
        
-       em= ((Mesh*)obedit->data)->edit_btmesh;
+       em = BMEdit_FromObject(obedit);
 
        BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
                tf = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
@@ -586,7 +586,7 @@ void uv_copy_aspect(float uv_orig[][2], float uv[][2], float aspx, float aspy)
 
 int ED_uvedit_minmax(Scene *scene, Image *ima, Object *obedit, float *min, float *max)
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -616,7 +616,7 @@ int ED_uvedit_minmax(Scene *scene, Image *ima, Object *obedit, float *min, float
 
 static int ED_uvedit_median(Scene *scene, Image *ima, Object *obedit, float co[3])
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -868,7 +868,7 @@ void uv_find_nearest_vert(Scene *scene, Image *ima, BMEditMesh *em,
 
 int ED_uvedit_nearest_uv(Scene *scene, Object *obedit, Image *ima, float co[2], float uv[2])
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -1339,11 +1339,11 @@ static void weld_align_uv(bContext *C, int tool)
        MLoopUV *luv;
        float cent[2], min[2], max[2];
        
-       scene= CTX_data_scene(C);
-       obedit= CTX_data_edit_object(C);
-       em= ((Mesh*)obedit->data)->edit_btmesh;
-       ima= CTX_data_edit_image(C);
-       sima= CTX_wm_space_image(C);
+       scene = CTX_data_scene(C);
+       obedit = CTX_data_edit_object(C);
+       em = BMEdit_FromObject(obedit);
+       ima = CTX_data_edit_image(C);
+       sima = CTX_wm_space_image(C);
 
        INIT_MINMAX2(min, max);
 
@@ -1606,17 +1606,17 @@ static void select_all_perform(bContext *C, int action)
        MTexPoly *tf;
        MLoopUV *luv;
        
-       scene= CTX_data_scene(C);
-       ts= CTX_data_tool_settings(C);
-       obedit= CTX_data_edit_object(C);
-       em= ((Mesh*)obedit->data)->edit_btmesh;
-       ima= CTX_data_edit_image(C);
+       scene = CTX_data_scene(C);
+       ts = CTX_data_tool_settings(C);
+       obedit = CTX_data_edit_object(C);
+       em = BMEdit_FromObject(obedit);
+       ima = CTX_data_edit_image(C);
        
        if(ts->uv_flag & UV_SYNC_SELECTION) {
 
                switch (action) {
                case SEL_TOGGLE:
-                       EDBM_toggle_select_all(((Mesh*)obedit->data)->edit_btmesh);
+                       EDBM_toggle_select_all(BMEdit_FromObject(obedit));
                        break;
                case SEL_SELECT:
                        EDBM_flag_enable_all(em, BM_ELEM_SELECT);
@@ -1729,12 +1729,12 @@ static int sticky_select(float *limit, int hitv[4], int v, float *hituv[4], floa
 
 static int mouse_select(bContext *C, float co[2], int extend, int loop)
 {
-       SpaceImage *sima= CTX_wm_space_image(C);
-       Scene *scene= CTX_data_scene(C);
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= CTX_data_edit_image(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       SpaceImage *sima = CTX_wm_space_image(C);
+       Scene *scene = CTX_data_scene(C);
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = CTX_data_edit_image(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2115,12 +2115,12 @@ static void UV_OT_select_loop(wmOperatorType *ot)
 
 static int select_linked_internal(bContext *C, wmOperator *op, wmEvent *event, int pick)
 {
-       SpaceImage *sima= CTX_wm_space_image(C);
-       Scene *scene= CTX_data_scene(C);
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= CTX_data_edit_image(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       SpaceImage *sima = CTX_wm_space_image(C);
+       Scene *scene = CTX_data_scene(C);
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = CTX_data_edit_image(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        float limit[2];
        int extend;
 
@@ -2218,11 +2218,11 @@ static void UV_OT_select_linked_pick(wmOperatorType *ot)
 
 static int unlink_selection_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= CTX_data_edit_image(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = CTX_data_edit_image(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2294,8 +2294,8 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje
         * This only needs to be done when the Mesh is not used for
         * selection (so for sticky modes, vertex or location based). */
        
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2416,13 +2416,13 @@ static void uv_faces_do_sticky(bContext *C, SpaceImage *sima, Scene *scene, Obje
 
 static int border_select_exec(bContext *C, wmOperator *op)
 {
-       SpaceImage *sima= CTX_wm_space_image(C);
-       Scene *scene= CTX_data_scene(C);
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= CTX_data_edit_image(C);
-       ARegion *ar= CTX_wm_region(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       SpaceImage *sima = CTX_wm_space_image(C);
+       Scene *scene = CTX_data_scene(C);
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = CTX_data_edit_image(C);
+       ARegion *ar = CTX_wm_region(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2573,11 +2573,11 @@ static void select_uv_inside_ellipse(BMEditMesh *em, SpaceImage *UNUSED(sima), S
 
 static int circle_select_exec(bContext *C, wmOperator *op)
 {
-       SpaceImage *sima= CTX_wm_space_image(C);
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
-       ARegion *ar= CTX_wm_region(C);
+       SpaceImage *sima = CTX_wm_space_image(C);
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
+       ARegion *ar = CTX_wm_region(C);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2715,7 +2715,7 @@ static void UV_OT_snap_cursor(wmOperatorType *ot)
 
 static int snap_uvs_to_cursor(Scene *scene, Image *ima, Object *obedit, SpaceImage *sima)
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2742,7 +2742,7 @@ static int snap_uvs_to_cursor(Scene *scene, Image *ima, Object *obedit, SpaceIma
 
 static int snap_uvs_to_adjacent_unselected(Scene *scene, Image *ima, Object *obedit)
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -2839,14 +2839,14 @@ static int snap_uvs_to_adjacent_unselected(Scene *scene, Image *ima, Object *obe
 
 static int snap_uvs_to_pixels(SpaceImage *sima, Scene *scene, Object *obedit)
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
-       Image *ima= sima->image;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
+       Image *ima = sima->image;
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
        MTexPoly *tface;
        MLoopUV *luv;
-       int width= 0, height= 0;
+       int width = 0, height = 0;
        float w, h;
        short change = 0;
 
@@ -2928,16 +2928,16 @@ static void UV_OT_snap_selected(wmOperatorType *ot)
 
 static int pin_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= CTX_data_edit_image(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = CTX_data_edit_image(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
        MTexPoly *tface;
        MLoopUV *luv;
-       int clear= RNA_boolean_get(op->ptr, "clear");
+       int clear = RNA_boolean_get(op->ptr, "clear");
        
        BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
                tface= CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY);
@@ -2982,10 +2982,10 @@ static void UV_OT_pin(wmOperatorType *ot)
 
 static int select_pinned_exec(bContext *C, wmOperator *UNUSED(op))
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Image *ima= CTX_data_edit_image(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Image *ima = CTX_data_edit_image(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -3027,16 +3027,16 @@ static void UV_OT_select_pinned(wmOperatorType *ot)
 
 static int hide_exec(bContext *C, wmOperator *op)
 {
-       SpaceImage *sima= CTX_wm_space_image(C);
-       ToolSettings *ts= CTX_data_tool_settings(C);
-       Object *obedit= CTX_data_edit_object(C);
+       SpaceImage *sima = CTX_wm_space_image(C);
+       ToolSettings *ts = CTX_data_tool_settings(C);
+       Object *obedit = CTX_data_edit_object(C);
        Scene *scene = CTX_data_scene(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
        MLoopUV *luv;
-       int swap= RNA_boolean_get(op->ptr, "unselected");
+       int swap = RNA_boolean_get(op->ptr, "unselected");
        int facemode= sima ? sima->flag & SI_SELACTFACE : 0;
 
        if(ts->uv_flag & UV_SYNC_SELECTION) {
@@ -3127,7 +3127,7 @@ static int reveal_exec(bContext *C, wmOperator *UNUSED(op))
        ToolSettings *ts= CTX_data_tool_settings(C);
        Object *obedit= CTX_data_edit_object(C);
        /*Scene *scene = CTX_data_scene(C);*/ /*UNUSED*/
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
index 42d8beb22cc4662c4c56341c92e0d32618184b4a..6196e684842387ea28281ce643d2671e6f7032cb 100644 (file)
@@ -985,7 +985,7 @@ static int stitch_init(bContext *C, wmOperator *op)
        /* initialize state */
        state->use_limit = RNA_boolean_get(op->ptr, "use_limit");
        state->limit_dist = RNA_float_get(op->ptr, "limit");
-       state->em = em = ((Mesh *)obedit->data)->edit_btmesh;
+       state->em = em = BMEdit_FromObject(obedit);
        state->snap_islands = RNA_boolean_get(op->ptr, "snap_islands");
        state->static_island = RNA_int_get(op->ptr, "static_island");
        state->midpoints = RNA_boolean_get(op->ptr, "midpoint_snap");
index b4f7eda8ccb61a57faedfb4caae05dffbc8d7519..56d088577b6c7d2f64ec44f48c0a28ce8587531d 100644 (file)
@@ -88,8 +88,8 @@
 
 static int ED_uvedit_ensure_uvs(bContext *C, Scene *scene, Object *obedit)
 {
-       Main *bmain= CTX_data_main(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Main *bmain = CTX_data_main(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMIter iter;
        Image *ima;
@@ -509,12 +509,12 @@ typedef struct MinStretch {
 
 static int minimize_stretch_init(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        MinStretch *ms;
-       int fill_holes= RNA_boolean_get(op->ptr, "fill_holes");
-       short implicit= 1;
+       int fill_holes = RNA_boolean_get(op->ptr, "fill_holes");
+       short implicit = 1;
 
        if(!uvedit_have_selection(scene, em, implicit)) {
                return 0;
@@ -706,11 +706,11 @@ void UV_OT_minimize_stretch(wmOperatorType *ot)
 
 static int pack_islands_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        ParamHandle *handle;
-       short implicit= 1;
+       short implicit = 1;
 
        if(!uvedit_have_selection(scene, em, implicit)) {
                return OPERATOR_CANCELLED;
@@ -753,11 +753,11 @@ void UV_OT_pack_islands(wmOperatorType *ot)
 
 static int average_islands_scale_exec(bContext *C, wmOperator *UNUSED(op))
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        ParamHandle *handle;
-       short implicit= 1;
+       short implicit = 1;
 
        if(!uvedit_have_selection(scene, em, implicit)) {
                return OPERATOR_CANCELLED;
@@ -792,7 +792,7 @@ static ParamHandle *liveHandle = NULL;
 
 void ED_uvedit_live_unwrap_begin(Scene *scene, Object *obedit)
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        short abf = scene->toolsettings->unwrapper == 0;
        short fillholes = scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES;
        short use_subsurf = scene->toolsettings->uvcalc_flag & UVCALC_USESUBSURF;
@@ -930,11 +930,11 @@ static void uv_map_rotation_matrix(float result[][4], RegionView3D *rv3d, Object
 static void uv_map_transform(bContext *C, wmOperator *op, float center[3], float rotmat[4][4])
 {
        /* context checks are messy here, making it work in both 3d view and uv editor */
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
-       View3D *v3d= CTX_wm_view3d(C);
-       RegionView3D *rv3d= CTX_wm_region_view3d(C);
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
+       View3D *v3d = CTX_wm_view3d(C);
+       RegionView3D *rv3d = CTX_wm_region_view3d(C);
        /* common operator properties */
        int align= RNA_enum_get(op->ptr, "align");
        int direction= RNA_enum_get(op->ptr, "direction");
@@ -1112,7 +1112,7 @@ static void uv_map_clip_correct(BMEditMesh *em, wmOperator *op)
 /* assumes UV Map is checked, doesn't run update funcs */
 void ED_unwrap_lscm(Scene *scene, Object *obedit, const short sel)
 {
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        ParamHandle *handle;
 
        const short fill_holes= scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES;
@@ -1137,9 +1137,9 @@ void ED_unwrap_lscm(Scene *scene, Object *obedit, const short sel)
 
 static int unwrap_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        int method = RNA_enum_get(op->ptr, "method");
        int fill_holes = RNA_boolean_get(op->ptr, "fill_holes");
        int correct_aspect = RNA_boolean_get(op->ptr, "correct_aspect");
@@ -1217,13 +1217,13 @@ void UV_OT_unwrap(wmOperatorType *ot)
 /**************** Project From View operator **************/
 static int uv_from_view_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       Camera *camera= NULL;
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       Camera *camera = NULL;
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        ARegion *ar = CTX_wm_region(C);
-       View3D *v3d= CTX_wm_view3d(C);
-       RegionView3D *rv3d= CTX_wm_region_view3d(C);
+       View3D *v3d = CTX_wm_view3d(C);
+       RegionView3D *rv3d = CTX_wm_region_view3d(C);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -1403,9 +1403,9 @@ static void uv_map_mirror(BMEditMesh *em, BMFace *efa, MTexPoly *UNUSED(tf))
 
 static int sphere_project_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -1476,9 +1476,9 @@ static void uv_cylinder_project(float target[2], float source[3], float center[3
 
 static int cylinder_project_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;
@@ -1535,9 +1535,9 @@ void UV_OT_cylinder_project(wmOperatorType *ot)
 
 static int cube_project_exec(bContext *C, wmOperator *op)
 {
-       Scene *scene= CTX_data_scene(C);
-       Object *obedit= CTX_data_edit_object(C);
-       BMEditMesh *em= ((Mesh*)obedit->data)->edit_btmesh;
+       Scene *scene = CTX_data_scene(C);
+       Object *obedit = CTX_data_edit_object(C);
+       BMEditMesh *em = BMEdit_FromObject(obedit);
        BMFace *efa;
        BMLoop *l;
        BMIter iter, liter;