code cleanup: use BMEdit_FromObject() rather then me->edit_btmesh in more places.

This commit is contained in:
Campbell Barton 2012-09-10 03:34:43 +00:00
parent 7e2259bff3
commit 2812dd92cf
9 changed files with 27 additions and 44 deletions

@ -924,7 +924,7 @@ static void vertex_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, fl
/* simple preventing of too deep nested groups */
if (level > MAX_DUPLI_RECUR) return;
em = me->edit_btmesh;
em = BMEdit_FromObject(par);
if (em) {
dm = editbmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);
@ -1050,7 +1050,7 @@ static void face_duplilist(ListBase *lb, ID *id, Scene *scene, Object *par, floa
if (level > MAX_DUPLI_RECUR) return;
copy_m4_m4(pmat, par->obmat);
em = me->edit_btmesh;
em = BMEdit_FromObject(par);
if (em) {
dm = editbmesh_get_derived_cage(scene, par, em, CD_MASK_BAREMESH);

@ -416,8 +416,7 @@ void constraint_mat_convertspace(Object *ob, bPoseChannel *pchan, float mat[][4]
static void contarget_get_mesh_mat(Object *ob, const char *substring, float mat[][4])
{
DerivedMesh *dm = NULL;
Mesh *me = ob->data;
BMEditMesh *em = me->edit_btmesh;
BMEditMesh *em = BMEdit_FromObject(ob);
float vec[3] = {0.0f, 0.0f, 0.0f};
float normal[3] = {0.0f, 0.0f, 0.0f}, plane[3];
float imat[3][3], tmat[3][3];

@ -1747,5 +1747,10 @@ DerivedMesh *getEditDerivedBMesh(BMEditMesh *em,
BMEditMesh *BMEdit_FromObject(Object *ob)
{
BLI_assert(ob->type == OB_MESH);
#ifndef NDEBUG
// if (((Mesh *)ob->data)->edit_btmesh) {
// BLI_assert(((Mesh *)ob->data)->edit_btmesh->me == ob->data);
// }
#endif
return ((Mesh *)ob->data)->edit_btmesh;
}

@ -97,7 +97,6 @@ static void make_prim_finish(bContext *C, int *state, int enter_editmode)
static int add_primitive_plane_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -108,8 +107,7 @@ static int add_primitive_plane_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Plane", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_grid xsegments=%i ysegments=%i size=%f mat=%m4", 1, 1, dia, mat))
@ -143,7 +141,6 @@ void MESH_OT_primitive_plane_add(wmOperatorType *ot)
static int add_primitive_cube_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -154,8 +151,7 @@ static int add_primitive_cube_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Cube", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout", "create_cube mat=%m4 size=%f", mat, dia * 2.0f)) {
return OPERATOR_CANCELLED;
@ -194,7 +190,6 @@ static const EnumPropertyItem fill_type_items[] = {
static int add_primitive_circle_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -208,8 +203,7 @@ static int add_primitive_circle_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Circle", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_circle segments=%i diameter=%f cap_ends=%b cap_tris=%b mat=%m4",
@ -253,7 +247,6 @@ void MESH_OT_primitive_circle_add(wmOperatorType *ot)
static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -267,8 +260,7 @@ static int add_primitive_cylinder_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Cylinder", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(
em, op, "vertout",
@ -318,7 +310,6 @@ void MESH_OT_primitive_cylinder_add(wmOperatorType *ot)
static int add_primitive_cone_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -332,8 +323,7 @@ static int add_primitive_cone_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Cone", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(
em, op, "vertout",
@ -382,7 +372,6 @@ void MESH_OT_primitive_cone_add(wmOperatorType *ot)
static int add_primitive_grid_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -393,8 +382,7 @@ static int add_primitive_grid_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Grid", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_grid xsegments=%i ysegments=%i size=%f mat=%m4",
@ -438,7 +426,6 @@ void MESH_OT_primitive_grid_add(wmOperatorType *ot)
static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -452,8 +439,7 @@ static int add_primitive_monkey_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Monkey", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout", "create_monkey mat=%m4", mat)) {
return OPERATOR_CANCELLED;
@ -484,7 +470,6 @@ void MESH_OT_primitive_monkey_add(wmOperatorType *ot)
static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -495,8 +480,7 @@ static int add_primitive_uvsphere_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Sphere", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(em, op, "vertout",
"create_uvsphere segments=%i revolutions=%i diameter=%f mat=%m4",
@ -540,7 +524,6 @@ void MESH_OT_primitive_uv_sphere_add(wmOperatorType *ot)
static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
{
Object *obedit;
Mesh *me;
BMEditMesh *em;
float loc[3], rot[3], mat[4][4], dia;
int enter_editmode;
@ -551,8 +534,7 @@ static int add_primitive_icosphere_exec(bContext *C, wmOperator *op)
make_prim_init(C, "Icosphere", &dia, mat, &state, loc, rot, layer);
obedit = CTX_data_edit_object(C);
me = obedit->data;
em = me->edit_btmesh;
em = BMEdit_FromObject(obedit);
if (!EDBM_op_call_and_selectf(
em, op, "vertout",

@ -2296,8 +2296,7 @@ void em_setup_viewcontext(bContext *C, ViewContext *vc)
view3d_set_viewcontext(C, vc);
if (vc->obedit) {
Mesh *me = vc->obedit->data;
vc->em = me->edit_btmesh;
vc->em = BMEdit_FromObject(vc->obedit);
}
}

@ -101,8 +101,8 @@ static void special_transvert_update(Object *obedit)
DAG_id_tag_update(obedit->data, 0);
if (obedit->type == OB_MESH) {
Mesh *me = obedit->data;
BM_mesh_normals_update(me->edit_btmesh->bm, TRUE); /* does face centers too */
BMEditMesh *em = BMEdit_FromObject(obedit);
BM_mesh_normals_update(em->bm, TRUE); /* does face centers too */
}
else if (ELEM(obedit->type, OB_CURVE, OB_SURF)) {
Curve *cu = obedit->data;
@ -229,8 +229,7 @@ static void make_trans_verts(Object *obedit, float min[3], float max[3], int mod
zero_v3(centroid);
if (obedit->type == OB_MESH) {
Mesh *me = obedit->data;
BMEditMesh *em = me->edit_btmesh;
BMEditMesh *em = BMEdit_FromObject(obedit);
BMesh *bm = em->bm;
BMIter iter;
void *userdata[2] = {em, NULL};
@ -992,11 +991,11 @@ static int snap_curs_to_active(bContext *C, wmOperator *UNUSED(op))
if (obedit) {
if (obedit->type == OB_MESH) {
BMEditMesh *em = BMEdit_FromObject(obedit);
/* check active */
Mesh *me = obedit->data;
BMEditSelection ese;
if (BM_select_history_active_get(me->edit_btmesh->bm, &ese)) {
if (BM_select_history_active_get(em->bm, &ese)) {
BM_editselection_center(&ese, curs);
}

@ -4753,8 +4753,7 @@ static void calcNonProportionalEdgeSlide(TransInfo *t, SlideData *sld, const flo
static int createSlideVerts(TransInfo *t)
{
Mesh *me = t->obedit->data;
BMEditMesh *em = me->edit_btmesh;
BMEditMesh *em = BMEdit_FromObject(t->obedit);
BMesh *bm = em->bm;
BMIter iter, iter2;
BMEdge *e, *e1;

@ -565,8 +565,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
ob = obedit;
if (ob->type == OB_MESH) {
Mesh *me = ob->data;
BMEditMesh *em = me->edit_btmesh;
BMEditMesh *em = BMEdit_FromObject(ob);
BMVert *eve;
BMEditSelection ese;
float vec[3] = {0, 0, 0};

@ -92,7 +92,8 @@ typedef struct Mesh {
struct MCol *mcol;
struct MSticky *msticky;
struct Mesh *texcomesh;
/* When the object is available, the preferred access method is: BMEdit_FromObject(ob) */
struct BMEditMesh *edit_btmesh; /* not saved in file! */
struct CustomData vdata, edata, fdata;