Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(349)

Side by Side Diff: tools/lua/classify_rrect_clips.lua

Issue 181843004: Add point count to lua SkPath and two lua scripts for clipping (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: comment fix Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/utils/SkLua.cpp ('k') | tools/lua/count_reduced_clipstacks.lua » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1
2 function sk_scrape_startcanvas(c, fileName) end
3
4 function sk_scrape_endcanvas(c, fileName) end
5
6 function classify_rrect(rrect)
7 if (rrect:type() == "simple") then
8 local x, y = rrect:radii(0)
9 if (x == y) then
10 return "simple_circle"
11 else
12 return "simple_oval"
13 end
14 elseif (rrect:type() == "complex") then
15 local numNotSquare = 0
16 local rx, ry
17 local same = true;
18 local first_not_square_corner
19 local last_not_square_corner
20 for i = 1, 4 do
21 local x, y = rrect:radii(i-1)
22 if (x ~= 0 and y ~= 0) then
23 if (numNotSquare == 0) then
24 rx = x
25 ry = y
26 first_not_square_corner = i
27 else
28 last_not_square_corner = i
29 if (rx ~= x or ry ~=y) then
30 same = false
31 end
32 end
33 numNotSquare = numNotSquare + 1
34 end
35 end
36 local numSquare = 4 - numNotSquare
37 if (numSquare > 0 and same) then
38 local corners = "corners"
39 if (numSquare == 2) then
40 if ((last_not_square_corner - 1 == first_not_square_corner) or
41 (1 == first_not_square_corner and 4 == last_not_square_corne r )) then
42 corners = "adjacent_" .. corners
43 else
44 corners = "opposite_" .. corners
45 end
46 elseif (1 == numSquare) then
47 corners = "corner"
48 end
49 if (rx == ry) then
50 return "circles_with_" .. numSquare .. "_square_" .. corners
51 else
52 return "ovals_with_" .. numSquare .. "_square_" .. corners
53 end
54 end
55 return "complex_unclassified"
56 elseif (rrect:type() == "rect") then
57 return "rect"
58 elseif (rrect:type() == "oval") then
59 local x, y = rrect:radii(0)
60 if (x == y) then
61 return "circle"
62 else
63 return "oval"
64 end
65 elseif (rrect:type() == "empty") then
66 return "empty"
67 else
68 return "unknown"
69 end
70 end
71
72 function print_classes(class_table)
73 function sort_classes(a, b)
74 return a.count > b.count
75 end
76 array = {}
77 for k, v in pairs(class_table) do
78 if (type(v) == "number") then
79 array[#array + 1] = {class = k, count = v};
80 end
81 end
82 table.sort(array, sort_classes)
83 local i
84 for i = 1, #array do
85 io.write(array[i].class, ": ", array[i].count, " (", array[i].count/class_ table["total"] * 100, "%)\n");
86 end
87 end
88
89 function sk_scrape_accumulate(t)
90 if (t.verb == "clipRRect") then
91 local rrect = t.rrect
92 table["total"] = (table["total"] or 0) + 1
93 local class = classify_rrect(rrect)
94 table[class] = (table[class] or 0) + 1
95 end
96 end
97
98 function sk_scrape_summarize()
99 print_classes(table)
100 --[[ To use the web scraper comment out the above call to print_classes, run t he code below,
101 and in the aggregator pass agg_table to print_classes.
102 for k, v in pairs(table) do
103 if (type(v) == "number") then
104 local t = "agg_table[\"" .. k .. "\"]"
105 io.write(t, " = (", t, " or 0) + ", table[k], "\n" );
106 end
107 end
108 --]]
109 end
OLDNEW
« no previous file with comments | « src/utils/SkLua.cpp ('k') | tools/lua/count_reduced_clipstacks.lua » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698