Commit: 27624320526540094b6f635215e36de8092ec94f
Author: Campbell Barton
Date:   Sun Jun 22 15:01:54 2014 +1000
https://developer.blender.org/rB27624320526540094b6f635215e36de8092ec94f

Code cleanup: de-duplicate widget_num_tria, widget_scroll_circle

===================================================================

M       source/blender/editors/interface/interface_widgets.c

===================================================================

diff --git a/source/blender/editors/interface/interface_widgets.c 
b/source/blender/editors/interface/interface_widgets.c
index 2bd4738..6ea0a55 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -477,13 +477,17 @@ static void round_box_edges(uiWidgetBase *wt, int 
roundboxalign, const rcti *rec
 
 
 /* based on button rect, return scaled array of triangles */
-static void widget_num_tria(uiWidgetTrias *tria, const rcti *rect, float 
triasize, char where)
+static void widget_draw_tria_ex(
+        uiWidgetTrias *tria, const rcti *rect, float triasize, char where,
+        /* input data */
+        const float verts[][2], const int verts_tot,
+        const unsigned int tris[][3], const int tris_tot)
 {
        float centx, centy, sizex, sizey, minsize;
        int a, i1 = 0, i2 = 1;
-       
+
        minsize = min_ii(BLI_rcti_size_x(rect), BLI_rcti_size_y(rect));
-       
+
        /* center position and size */
        centx = (float)rect->xmin + 0.5f * minsize;
        centy = (float)rect->ymin + 0.5f * minsize;
@@ -502,49 +506,30 @@ static void widget_num_tria(uiWidgetTrias *tria, const 
rcti *rect, float triasiz
                sizex = -sizex;
                i2 = 0; i1 = 1;
        }
-       
-       for (a = 0; a < 3; a++) {
-               tria->vec[a][0] = sizex * num_tria_vert[a][i1] + centx;
-               tria->vec[a][1] = sizey * num_tria_vert[a][i2] + centy;
+
+       for (a = 0; a < verts_tot; a++) {
+               tria->vec[a][0] = sizex * verts[a][i1] + centx;
+               tria->vec[a][1] = sizey * verts[a][i2] + centy;
        }
-       
-       tria->tot = 1;
-       tria->index = num_tria_face;
+
+       tria->tot = tris_tot;
+       tria->index = tris;
 }
 
-static void widget_scroll_circle(uiWidgetTrias *tria, const rcti *rect, float 
triasize, char where)
+static void widget_num_tria(uiWidgetTrias *tria, const rcti *rect, float 
triasize, char where)
 {
-       float centx, centy, sizex, sizey, minsize;
-       int a, i1 = 0, i2 = 1;
-       
-       minsize = min_ii(BLI_rcti_size_x(rect), BLI_rcti_size_y(rect));
-       
-       /* center position and size */
-       centx = (float)rect->xmin + 0.5f * minsize;
-       centy = (float)rect->ymin + 0.5f * minsize;
-       sizex = sizey = -0.5f * triasize * minsize;
+       widget_draw_tria_ex(
+               tria, rect, triasize, where,
+               num_tria_vert, ARRAY_SIZE(num_tria_vert),
+               num_tria_face, ARRAY_SIZE(num_tria_face));
+}
 
-       if (where == 'r') {
-               centx = (float)rect->xmax - 0.5f * minsize;
-               sizex = -sizex;
-       }
-       else if (where == 't') {
-               centy = (float)rect->ymax - 0.5f * minsize;
-               sizey = -sizey;
-               i2 = 0; i1 = 1;
-       }
-       else if (where == 'b') {
-               sizex = -sizex;
-               i2 = 0; i1 = 1;
-       }
-       
-       for (a = 0; a < 16; a++) {
-               tria->vec[a][0] = sizex * scroll_circle_vert[a][i1] + centx;
-               tria->vec[a][1] = sizey * scroll_circle_vert[a][i2] + centy;
-       }
-       
-       tria->tot = 14;
-       tria->index = scroll_circle_face;
+static void widget_scroll_circle(uiWidgetTrias *tria, const rcti *rect, float 
triasize, char where)
+{
+       widget_draw_tria_ex(
+               tria, rect, triasize, where,
+               scroll_circle_vert, ARRAY_SIZE(scroll_circle_vert),
+               scroll_circle_face, ARRAY_SIZE(scroll_circle_face));
 }
 
 static void widget_trias_draw(uiWidgetTrias *tria)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to