Hi Campbell, ME_DRAWEXTRA_INDICES (1 << 14) in DNA_mesh_types.h will conflict with ME_DRAW_FREESTYLE_EDGE (1 << 14) when the Freestyle merger is done. Also, (1 << 15) is already used for ME_DRAW_FREESTYLE_FACE.
Since the me->drawflag is a short int (16bit), there are no available bits for new draw flags anymore. IRIE Shinsuke 13/03/29, Campbell Barton wrote: > Revision: 55660 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55660 > Author: campbellbarton > Date: 2013-03-29 04:01:52 +0000 (Fri, 29 Mar 2013) > Log Message: > ----------- > add edge-angle drawing in editmode for manifold edges. > > Modified Paths: > -------------- > trunk/blender/release/scripts/startup/bl_ui/space_view3d.py > trunk/blender/source/blender/editors/include/UI_resources.h > trunk/blender/source/blender/editors/interface/resources.c > trunk/blender/source/blender/editors/space_view3d/drawobject.c > trunk/blender/source/blender/makesdna/DNA_mesh_types.h > trunk/blender/source/blender/makesdna/DNA_userdef_types.h > trunk/blender/source/blender/makesrna/intern/rna_mesh.c > trunk/blender/source/blender/makesrna/intern/rna_userdef.c > > Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py > =================================================================== > --- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py > 2013-03-29 01:34:04 UTC (rev 55659) > +++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py > 2013-03-29 04:01:52 UTC (rev 55660) > @@ -2563,6 +2563,7 @@ > col.separator() > col.label(text="Numerics:") > col.prop(mesh, "show_extra_edge_length") > + col.prop(mesh, "show_extra_edge_angle") > col.prop(mesh, "show_extra_face_angle") > col.prop(mesh, "show_extra_face_area") > if bpy.app.debug: > > Modified: trunk/blender/source/blender/editors/include/UI_resources.h > =================================================================== > --- trunk/blender/source/blender/editors/include/UI_resources.h > 2013-03-29 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/editors/include/UI_resources.h > 2013-03-29 04:01:52 UTC (rev 55660) > @@ -185,6 +185,7 @@ > TH_EDGE_CREASE, > > TH_DRAWEXTRA_EDGELEN, > + TH_DRAWEXTRA_EDGEANG, > TH_DRAWEXTRA_FACEAREA, > TH_DRAWEXTRA_FACEANG, > > > Modified: trunk/blender/source/blender/editors/interface/resources.c > =================================================================== > --- trunk/blender/source/blender/editors/interface/resources.c > 2013-03-29 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/editors/interface/resources.c > 2013-03-29 04:01:52 UTC (rev 55660) > @@ -309,6 +309,8 @@ > cp = &ts->facedot_size; break; > case TH_DRAWEXTRA_EDGELEN: > cp = ts->extra_edge_len; break; > + case TH_DRAWEXTRA_EDGEANG: > + cp = ts->extra_edge_angle; break; > case TH_DRAWEXTRA_FACEAREA: > cp = ts->extra_face_area; break; > case TH_DRAWEXTRA_FACEANG: > @@ -766,6 +768,7 @@ > btheme->tv3d.facedot_size = 4; > > rgba_char_args_set(btheme->tv3d.extra_edge_len, 32, 0, 0, 255); > + rgba_char_args_set(btheme->tv3d.extra_edge_angle, 32, 32, 0, 255); > rgba_char_args_set(btheme->tv3d.extra_face_area, 0, 32, 0, 255); > rgba_char_args_set(btheme->tv3d.extra_face_angle, 0, 0, 128, 255); > > > Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c > =================================================================== > --- trunk/blender/source/blender/editors/space_view3d/drawobject.c > 2013-03-29 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/editors/space_view3d/drawobject.c > 2013-03-29 04:01:52 UTC (rev 55660) > @@ -2601,9 +2601,9 @@ > unsigned char col[4] = {0, 0, 0, 255}; /* color of the text to draw */ > float area; /* area of the face */ > float grid = unit->system ? unit->scale_length : v3d->grid; > - const int do_split = unit->flag & USER_UNIT_OPT_SPLIT; > - const int do_global = v3d->flag & V3D_GLOBAL_STATS; > - const int do_moving = G.moving; > + const bool do_split = (unit->flag & USER_UNIT_OPT_SPLIT) != 0; > + const bool do_global = (v3d->flag & V3D_GLOBAL_STATS) != 0; > + const bool do_moving = G.moving; > > BMIter iter; > int i; > @@ -2652,6 +2652,48 @@ > } > } > > + if (me->drawflag & ME_DRAWEXTRA_EDGEANG) { > + const bool is_rad = (unit->system_rotation == > USER_UNIT_ROT_RADIANS); > + BMEdge *eed; > + > + UI_GetThemeColor3ubv(TH_DRAWEXTRA_EDGEANG, col); > + > + eed = BM_iter_new(&iter, em->bm, BM_EDGES_OF_MESH, NULL); > + for (; eed; eed = BM_iter_step(&iter)) { > + /* draw selected edges, or edges next to selected verts > while draging */ > + if (BM_elem_flag_test(eed, BM_ELEM_SELECT) || > + (do_moving && (BM_elem_flag_test(eed->v1, > BM_ELEM_SELECT) || > + BM_elem_flag_test(eed->v2, > BM_ELEM_SELECT)))) > + { > + BMFace *f_a, *f_b; > + if (BM_edge_face_pair(eed, &f_a, &f_b)) { > + float angle; > + copy_v3_v3(v1, eed->v1->co); > + copy_v3_v3(v2, eed->v2->co); > + > + mid_v3_v3v3(vmid, v1, v2); > + > + if (do_global) { > + float no_a[3]; > + float no_b[3]; > + copy_v3_v3(no_a, f_a->no); > + copy_v3_v3(no_b, f_b->no); > + mul_mat3_m4_v3(ob->obmat, no_a); > + mul_mat3_m4_v3(ob->obmat, no_b); > + angle = > angle_normalized_v3v3(no_a, no_b); > + } > + else { > + angle = > angle_normalized_v3v3(f_a->no, f_b->no); > + } > + > + BLI_snprintf(numstr, sizeof(numstr), > "%.3f", is_rad ? angle : RAD2DEGF(angle)); > + > + view3d_cached_text_draw_add(vmid, > numstr, 0, txt_flag, col); > + } > + } > + } > + } > + > if (me->drawflag & ME_DRAWEXTRA_FACEAREA) { > /* would be nice to use BM_face_calc_area, but that is for 2d > faces > * so instead add up tessellation triangle areas */ > @@ -2714,7 +2756,7 @@ > > if (me->drawflag & ME_DRAWEXTRA_FACEANG) { > BMFace *efa; > - int is_rad = unit->system_rotation == USER_UNIT_ROT_RADIANS; > + const bool is_rad = (unit->system_rotation == > USER_UNIT_ROT_RADIANS); > > UI_GetThemeColor3ubv(TH_DRAWEXTRA_FACEANG, col); > > @@ -3002,7 +3044,10 @@ > draw_dm_vert_normals(em, scene, ob, cageDM); > } > > - if ((me->drawflag & (ME_DRAWEXTRA_EDGELEN | > ME_DRAWEXTRA_FACEAREA | ME_DRAWEXTRA_FACEANG)) && > + if ((me->drawflag & (ME_DRAWEXTRA_EDGELEN | > + ME_DRAWEXTRA_FACEAREA | > + ME_DRAWEXTRA_FACEANG | > + ME_DRAWEXTRA_EDGEANG)) && > !(v3d->flag2 & V3D_RENDER_OVERRIDE)) > { > draw_em_measure_stats(v3d, ob, em, &scene->unit); > > Modified: trunk/blender/source/blender/makesdna/DNA_mesh_types.h > =================================================================== > --- trunk/blender/source/blender/makesdna/DNA_mesh_types.h 2013-03-29 > 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/makesdna/DNA_mesh_types.h 2013-03-29 > 04:01:52 UTC (rev 55660) > @@ -197,9 +197,10 @@ > #define ME_DRAWEXTRA_EDGELEN (1 << 10) > #define ME_DRAWEXTRA_FACEAREA (1 << 11) > #define ME_DRAWEXTRA_FACEANG (1 << 12) > +#define ME_DRAWEXTRA_EDGEANG (1 << 13) > > /* debug only option */ > -#define ME_DRAWEXTRA_INDICES (1 << 13) > +#define ME_DRAWEXTRA_INDICES (1 << 14) > > /* Subsurf Type */ > #define ME_CC_SUBSURF 0 > > Modified: trunk/blender/source/blender/makesdna/DNA_userdef_types.h > =================================================================== > --- trunk/blender/source/blender/makesdna/DNA_userdef_types.h 2013-03-29 > 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/makesdna/DNA_userdef_types.h 2013-03-29 > 04:01:52 UTC (rev 55660) > @@ -234,7 +234,7 @@ > char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4]; > char face[4], face_select[4]; /* solid faces */ > char face_dot[4]; /* selected color */ > - char extra_edge_len[4], extra_face_angle[4], extra_face_area[4], > pad3[4]; > + char extra_edge_len[4], extra_edge_angle[4], extra_face_angle[4], > extra_face_area[4]; > char normal[4]; > char vertex_normal[4]; > char bone_solid[4], bone_pose[4], bone_pose_active[4]; > > Modified: trunk/blender/source/blender/makesrna/intern/rna_mesh.c > =================================================================== > --- trunk/blender/source/blender/makesrna/intern/rna_mesh.c 2013-03-29 > 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/makesrna/intern/rna_mesh.c 2013-03-29 > 04:01:52 UTC (rev 55660) > @@ -2945,6 +2945,12 @@ > "Display selected edge lengths, using global > values when set in the transform panel"); > RNA_def_property_update(prop, 0, "rna_Mesh_update_draw"); > > + prop = RNA_def_property(srna, "show_extra_edge_angle", PROP_BOOLEAN, > PROP_NONE); > + RNA_def_property_boolean_sdna(prop, NULL, "drawflag", > ME_DRAWEXTRA_EDGEANG); > + RNA_def_property_ui_text(prop, "Edge Angle", > + "Display selected edge angle, using global > values when set in the transform panel"); > + RNA_def_property_update(prop, 0, "rna_Mesh_update_draw"); > + > prop = RNA_def_property(srna, "show_extra_face_angle", PROP_BOOLEAN, > PROP_NONE); > RNA_def_property_boolean_sdna(prop, NULL, "drawflag", > ME_DRAWEXTRA_FACEANG); > RNA_def_property_ui_text(prop, "Face Angles", > > Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c > =================================================================== > --- trunk/blender/source/blender/makesrna/intern/rna_userdef.c > 2013-03-29 01:34:04 UTC (rev 55659) > +++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c > 2013-03-29 04:01:52 UTC (rev 55660) > @@ -1465,6 +1465,11 @@ > RNA_def_property_ui_text(prop, "Edge Length Text", ""); > RNA_def_property_update(prop, 0, "rna_userdef_update"); > > + prop = RNA_def_property(srna, "extra_edge_angle", PROP_FLOAT, > PROP_COLOR_GAMMA); > + RNA_def_property_array(prop, 3); > + RNA_def_property_ui_text(prop, "Edge Angle Text", ""); > + RNA_def_property_update(prop, 0, "rna_userdef_update"); > + > prop = RNA_def_property(srna, "extra_face_angle", PROP_FLOAT, > PROP_COLOR_GAMMA); > RNA_def_property_array(prop, 3); > RNA_def_property_ui_text(prop, "Face Angle Text", ""); > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
