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

Reply via email to