1cb93a386Sopenharmony_civar circle = {
2cb93a386Sopenharmony_ci    "center":{ "x":200, "y":200 },
3cb93a386Sopenharmony_ci    "radius":100
4cb93a386Sopenharmony_ci}
5cb93a386Sopenharmony_ci
6cb93a386Sopenharmony_civar gradients = {
7cb93a386Sopenharmony_ci    "grad1": { "cx":200, "cy":200, "r":300,
8cb93a386Sopenharmony_ci        "stops": [
9cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,0,0,255) },
10cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,0,0,255) }
11cb93a386Sopenharmony_ci        ]
12cb93a386Sopenharmony_ci    },
13cb93a386Sopenharmony_ci    "grad2": { "cx":200, "cy":200, "r":300,
14cb93a386Sopenharmony_ci        "stops": [
15cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,0,255,0) },
16cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,0,255,0) }
17cb93a386Sopenharmony_ci        ]
18cb93a386Sopenharmony_ci    },
19cb93a386Sopenharmony_ci    "grad3": { "cx":200, "cy":200, "r":300,
20cb93a386Sopenharmony_ci        "stops": [
21cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,255,0,0) },
22cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,255,0,0) }
23cb93a386Sopenharmony_ci        ]
24cb93a386Sopenharmony_ci    },
25cb93a386Sopenharmony_ci    "grad4": { "cx":200, "cy":200, "r":300,
26cb93a386Sopenharmony_ci        "stops": [
27cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,192,63,192) },
28cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,192,63,192) }
29cb93a386Sopenharmony_ci        ]
30cb93a386Sopenharmony_ci    },
31cb93a386Sopenharmony_ci    "grad5": { "cx":200, "cy":200, "r":300,
32cb93a386Sopenharmony_ci        "stops": [
33cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,127,127,0) },
34cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,127,127,0) }
35cb93a386Sopenharmony_ci        ]
36cb93a386Sopenharmony_ci    },
37cb93a386Sopenharmony_ci    "grad6": { "cx":200, "cy":200, "r":300,
38cb93a386Sopenharmony_ci        "stops": [
39cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,127,0,127) },
40cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,127,0,127) }
41cb93a386Sopenharmony_ci        ]
42cb93a386Sopenharmony_ci    },
43cb93a386Sopenharmony_ci    "grad7": { "cx":200, "cy":200, "r":300,
44cb93a386Sopenharmony_ci        "stops": [
45cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,0,127,127) },
46cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,0,127,127) }
47cb93a386Sopenharmony_ci        ]
48cb93a386Sopenharmony_ci    },
49cb93a386Sopenharmony_ci    "grad8": { "cx":200, "cy":200, "r":300,
50cb93a386Sopenharmony_ci        "stops": [
51cb93a386Sopenharmony_ci            { "offset":0, "color": argb(76,63,192,63) },
52cb93a386Sopenharmony_ci            { "offset":1, "color": argb( 0,63,192,63) }
53cb93a386Sopenharmony_ci        ]
54cb93a386Sopenharmony_ci    }
55cb93a386Sopenharmony_ci};
56cb93a386Sopenharmony_ci
57cb93a386Sopenharmony_civar paths = {
58cb93a386Sopenharmony_ci    "cubicSegment1": [
59cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 200,200, 200,200, 200,200 ] }
60cb93a386Sopenharmony_ci    ],
61cb93a386Sopenharmony_ci    "cubicSegment2": [
62cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 250,200, 300,200, 300,100 ] }
63cb93a386Sopenharmony_ci    ],
64cb93a386Sopenharmony_ci    "curveSegment1": [
65cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 250,200, 300,150, 300,100 ] }
66cb93a386Sopenharmony_ci    ],
67cb93a386Sopenharmony_ci    "curveSegment2": [
68cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 250,200, 300,150, 200,100 ] }
69cb93a386Sopenharmony_ci    ],
70cb93a386Sopenharmony_ci    "curveSegment3": [
71cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 350,200, 250,-150, 170,300 ] }
72cb93a386Sopenharmony_ci    ],
73cb93a386Sopenharmony_ci    "diagSegment": [
74cb93a386Sopenharmony_ci        { "line":  [ 200,200, 100,100 ] }
75cb93a386Sopenharmony_ci    ],
76cb93a386Sopenharmony_ci    "horzSegment": [
77cb93a386Sopenharmony_ci        { "line":  [ 200,200, 341.4,200 ] }
78cb93a386Sopenharmony_ci    ],
79cb93a386Sopenharmony_ci    "lineSegment": [
80cb93a386Sopenharmony_ci        { "line":  [ 200,200, 200 + circle.radius * Math.cos(-22.5 * Math.PI / 180),
81cb93a386Sopenharmony_ci                              200 + circle.radius * Math.sin(-22.5 * Math.PI / 180) ] }
82cb93a386Sopenharmony_ci    ],
83cb93a386Sopenharmony_ci    "span1": [
84cb93a386Sopenharmony_ci        { "quad":  [ 200,200, 300,300, 200,300 ] }
85cb93a386Sopenharmony_ci    ],
86cb93a386Sopenharmony_ci    "span2": [
87cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 100,300, 100,400, 200,300 ] }
88cb93a386Sopenharmony_ci    ],
89cb93a386Sopenharmony_ci    "span3": [
90cb93a386Sopenharmony_ci        { "cubic": [ 200,200, 300,100, 100,400, 300,200 ] }
91cb93a386Sopenharmony_ci    ],
92cb93a386Sopenharmony_ci    "span4": [
93cb93a386Sopenharmony_ci        { "quad":  [ 200,200, 300,300, 400,300 ] }
94cb93a386Sopenharmony_ci    ],
95cb93a386Sopenharmony_ci    "span5": [
96cb93a386Sopenharmony_ci        { "quad":  [ 200,200, 280,320, 200,400 ] }
97cb93a386Sopenharmony_ci    ],
98cb93a386Sopenharmony_ci    "span6": [
99cb93a386Sopenharmony_ci        { "quad":  [ 200,200, 60,340, 100,400 ] }
100cb93a386Sopenharmony_ci    ],
101cb93a386Sopenharmony_ci    "vertSegment": [
102cb93a386Sopenharmony_ci        { "line":  [ 200,200, 200,341.4 ] }
103cb93a386Sopenharmony_ci    ],
104cb93a386Sopenharmony_ci    "wedge1": [
105cb93a386Sopenharmony_ci        { "line":  [ 200,200, 500,500 ] },
106cb93a386Sopenharmony_ci        { "arcTo": [ 375.74,624.36, 200,624.26, 424.26 ] },
107cb93a386Sopenharmony_ci        { "close": null }
108cb93a386Sopenharmony_ci    ],
109cb93a386Sopenharmony_ci    "wedge2": [
110cb93a386Sopenharmony_ci        { "line":  [ 200,200, 200,624.26 ] },
111cb93a386Sopenharmony_ci        { "arcTo": [ 24.265,624.26, -100,500, 424.26 ] },
112cb93a386Sopenharmony_ci        { "close": null }
113cb93a386Sopenharmony_ci    ],
114cb93a386Sopenharmony_ci    "wedge3": [
115cb93a386Sopenharmony_ci        { "line":  [ 200,200, 500,-100 ] },
116cb93a386Sopenharmony_ci        { "arcTo": [ 1138.22,537.70, 240,622.5, 424.26 ] },
117cb93a386Sopenharmony_ci        { "close": null }
118cb93a386Sopenharmony_ci    ],
119cb93a386Sopenharmony_ci    "wedge4": [
120cb93a386Sopenharmony_ci        { "line":  [ 200,200, 500,500 ] },
121cb93a386Sopenharmony_ci        { "arcTo": [ 530.79,438.42, 579.47,389.74, 424.26 ] },
122cb93a386Sopenharmony_ci        { "close": null }
123cb93a386Sopenharmony_ci    ],
124cb93a386Sopenharmony_ci    "wedge5": [
125cb93a386Sopenharmony_ci        { "line":  [ 200,200, 389.74,579.47 ] },
126cb93a386Sopenharmony_ci        { "arcTo": [ 284.94,563.441, 200,500, 424.26 ] },
127cb93a386Sopenharmony_ci        { "close": null }
128cb93a386Sopenharmony_ci    ],
129cb93a386Sopenharmony_ci    "wedge6": [
130cb93a386Sopenharmony_ci        { "line":  [ 200,200, 10.26,579.47 ] },
131cb93a386Sopenharmony_ci        { "arcTo": [ -51.318,548.68, -100,500, 424.26 ] },
132cb93a386Sopenharmony_ci        { "close": null }
133cb93a386Sopenharmony_ci    ],
134cb93a386Sopenharmony_ci    "wedgeXY1": [
135cb93a386Sopenharmony_ci        { "line":  [ 200,200, 500,-100 ] },
136cb93a386Sopenharmony_ci        { "arcTo": [ 624.26,24.265, 624.26,200, 424.26 ] },
137cb93a386Sopenharmony_ci        { "close": null }
138cb93a386Sopenharmony_ci    ],
139cb93a386Sopenharmony_ci    "wedgeXY2": [
140cb93a386Sopenharmony_ci        { "line":  [ 200,200, 200,-175.74 ] },
141cb93a386Sopenharmony_ci        { "arcTo": [ 364.83,-196.61, 500,-100, 424.26 ] },
142cb93a386Sopenharmony_ci        { "close": null }
143cb93a386Sopenharmony_ci    ],
144cb93a386Sopenharmony_ci    "wedgeXY3": [
145cb93a386Sopenharmony_ci        { "line":  [ 200,200, -100,-100 ] },
146cb93a386Sopenharmony_ci        { "arcTo": [ 35.170,-196.61, 200,-175.74, 424.26 ] },
147cb93a386Sopenharmony_ci        { "close": null }
148cb93a386Sopenharmony_ci    ],
149cb93a386Sopenharmony_ci    "wedgeXY4": [
150cb93a386Sopenharmony_ci        { "line":  [ 200,200, -175.74,200 ] },
151cb93a386Sopenharmony_ci        { "arcTo": [ -196.61,35.170, -100,-100, 424.26 ] },
152cb93a386Sopenharmony_ci        { "close": null }
153cb93a386Sopenharmony_ci    ],
154cb93a386Sopenharmony_ci    "wedgeXY5": [
155cb93a386Sopenharmony_ci        { "line":  [ 200,200, -100,500 ] },
156cb93a386Sopenharmony_ci        { "arcTo": [ -196.61,364.83, -175.74,200, 424.26 ] },
157cb93a386Sopenharmony_ci        { "close": null }
158cb93a386Sopenharmony_ci    ],
159cb93a386Sopenharmony_ci    "wedgeXY6": [
160cb93a386Sopenharmony_ci        { "line":  [ 200,200, -100,500 ] },
161cb93a386Sopenharmony_ci        { "arcTo": [ 75.735,500, 200,624.26, 424.26 ] },
162cb93a386Sopenharmony_ci        { "close": null }
163cb93a386Sopenharmony_ci    ],
164cb93a386Sopenharmony_ci    "wedgeXY7": [
165cb93a386Sopenharmony_ci        { "line":  [ 200,200, 200,624.26 ] },
166cb93a386Sopenharmony_ci        { "arcTo": [ 324.26,500, 500,500, 424.26 ] },
167cb93a386Sopenharmony_ci        { "close": null }
168cb93a386Sopenharmony_ci    ],
169cb93a386Sopenharmony_ci    "wedgeXY8": [
170cb93a386Sopenharmony_ci        { "line":  [ 200,200, 500,500 ] },
171cb93a386Sopenharmony_ci        { "arcTo": [ 500,324.26, 624.26,200, 424.26 ] },
172cb93a386Sopenharmony_ci        { "close": null }
173cb93a386Sopenharmony_ci    ],
174cb93a386Sopenharmony_ci    "xaxis": [
175cb93a386Sopenharmony_ci        { "line":  [ 100,200, 300,200 ] }
176cb93a386Sopenharmony_ci    ],
177cb93a386Sopenharmony_ci    "yaxis": [
178cb93a386Sopenharmony_ci        { "line":  [ 200,100, 200,300 ] }
179cb93a386Sopenharmony_ci    ]
180cb93a386Sopenharmony_ci};
181cb93a386Sopenharmony_ci
182cb93a386Sopenharmony_civar text = {
183cb93a386Sopenharmony_ci    "curve1d1": {
184cb93a386Sopenharmony_ci        "string":"Some curves initially occupy", "x":400, "y":200
185cb93a386Sopenharmony_ci    },
186cb93a386Sopenharmony_ci    "curve1d2": {
187cb93a386Sopenharmony_ci        "string":"one-dimensional sectors, then diverge.", "x":400, "y":240
188cb93a386Sopenharmony_ci    },
189cb93a386Sopenharmony_ci    "curveMultiple1": {
190cb93a386Sopenharmony_ci        "string":"A curve span may cover more", "x":400, "y":200
191cb93a386Sopenharmony_ci    },
192cb93a386Sopenharmony_ci    "curveMultiple2": {
193cb93a386Sopenharmony_ci        "string":"than one sector.", "x":400, "y":240
194cb93a386Sopenharmony_ci    },
195cb93a386Sopenharmony_ci    "line1DDest1": {
196cb93a386Sopenharmony_ci        "string":"Some lines occupy one-dimensional", "x":400, "y":200
197cb93a386Sopenharmony_ci    },
198cb93a386Sopenharmony_ci    "line1DDest2": {
199cb93a386Sopenharmony_ci        "string":"sectors.", "x":400, "y":240
200cb93a386Sopenharmony_ci    },
201cb93a386Sopenharmony_ci    "lineSingle": {
202cb93a386Sopenharmony_ci        "string":"Line spans are contained by a single sector.", "x":400, "y":200
203cb93a386Sopenharmony_ci    },
204cb93a386Sopenharmony_ci    "sector1": {
205cb93a386Sopenharmony_ci        "string":"A sector is a wedge of a circle", "x":400, "y":200
206cb93a386Sopenharmony_ci    },
207cb93a386Sopenharmony_ci    "sector2": {
208cb93a386Sopenharmony_ci        "string":"containing a range of points.", "x":400, "y":240
209cb93a386Sopenharmony_ci    },
210cb93a386Sopenharmony_ci    "sectorXY1": {
211cb93a386Sopenharmony_ci        "string":"X > 0   Y < 0   -Y < X", "x":500, "y":460
212cb93a386Sopenharmony_ci    },
213cb93a386Sopenharmony_ci    "sectorXY2": {
214cb93a386Sopenharmony_ci        "string":"X > 0   Y < 0   -Y > X", "x":500, "y":460
215cb93a386Sopenharmony_ci    },
216cb93a386Sopenharmony_ci    "sectorXY3": {
217cb93a386Sopenharmony_ci        "string":"X < 0   Y < 0    Y < X", "x":500, "y":460
218cb93a386Sopenharmony_ci    },
219cb93a386Sopenharmony_ci    "sectorXY4": {
220cb93a386Sopenharmony_ci        "string":"X < 0   Y < 0    Y > X", "x":500, "y":460
221cb93a386Sopenharmony_ci    },
222cb93a386Sopenharmony_ci    "sectorXY5": {
223cb93a386Sopenharmony_ci        "string":"X < 0   Y > 0   -Y > X", "x":500, "y":460
224cb93a386Sopenharmony_ci    },
225cb93a386Sopenharmony_ci    "sectorXY6": {
226cb93a386Sopenharmony_ci        "string":"X < 0   Y > 0   -Y < X", "x":500, "y":460
227cb93a386Sopenharmony_ci    },
228cb93a386Sopenharmony_ci    "sectorXY7": {
229cb93a386Sopenharmony_ci        "string":"X > 0   Y > 0    Y > X", "x":500, "y":460
230cb93a386Sopenharmony_ci    },
231cb93a386Sopenharmony_ci    "sectorXY8": {
232cb93a386Sopenharmony_ci        "string":"X > 0   Y > 0    Y < X", "x":500, "y":460
233cb93a386Sopenharmony_ci    },
234cb93a386Sopenharmony_ci    "sectorXY9": {
235cb93a386Sopenharmony_ci        "string":"X > 0   Y == 0", "x":500, "y":460
236cb93a386Sopenharmony_ci    },
237cb93a386Sopenharmony_ci    "sectorXY10": {
238cb93a386Sopenharmony_ci        "string":"Y > 0   0 == X", "x":500, "y":460
239cb93a386Sopenharmony_ci    },
240cb93a386Sopenharmony_ci    "sectorXY11": {
241cb93a386Sopenharmony_ci        "string":"X < 0   Y == X", "x":500, "y":460
242cb93a386Sopenharmony_ci    },
243cb93a386Sopenharmony_ci    "sectorXYA": {
244cb93a386Sopenharmony_ci        "string":"X > 0   Y > 0    Y < X", "x":500, "y":310
245cb93a386Sopenharmony_ci    },
246cb93a386Sopenharmony_ci    "sectorXYB": {
247cb93a386Sopenharmony_ci        "string":"X < 0   Y > 0   -Y < X", "x":500, "y":360
248cb93a386Sopenharmony_ci    },
249cb93a386Sopenharmony_ci    "sectorXYC": {
250cb93a386Sopenharmony_ci        "string":"X < 0   Y < 0    Y < X", "x":500, "y":410
251cb93a386Sopenharmony_ci    },
252cb93a386Sopenharmony_ci    "spanWedge": {
253cb93a386Sopenharmony_ci        "string":"All spans are contained by a wedge", "x":400, "y":200
254cb93a386Sopenharmony_ci    },
255cb93a386Sopenharmony_ci    "trivialWedge1": {
256cb93a386Sopenharmony_ci        "string":"Wedges that don't overlap can be", "x":400, "y":200
257cb93a386Sopenharmony_ci    },
258cb93a386Sopenharmony_ci    "trivialWedge2": {
259cb93a386Sopenharmony_ci        "string":"easily sorted.", "x":400, "y":240
260cb93a386Sopenharmony_ci    },
261cb93a386Sopenharmony_ci    "xaxis1": {
262cb93a386Sopenharmony_ci        "string":"-X", "x":100, "y":220
263cb93a386Sopenharmony_ci    },
264cb93a386Sopenharmony_ci    "xaxis2": {
265cb93a386Sopenharmony_ci        "string":"+X", "x":300, "y":220
266cb93a386Sopenharmony_ci    },
267cb93a386Sopenharmony_ci    "yaxis1": {
268cb93a386Sopenharmony_ci        "string":"-Y", "x":205, "y":100
269cb93a386Sopenharmony_ci    },
270cb93a386Sopenharmony_ci    "yaxis2": {
271cb93a386Sopenharmony_ci        "string":"+Y", "x":205, "y":300
272cb93a386Sopenharmony_ci    }
273cb93a386Sopenharmony_ci};
274cb93a386Sopenharmony_ci
275cb93a386Sopenharmony_civar typefaces = {
276cb93a386Sopenharmony_ci    "description": { "style":"normal", "family":"Helvetica,Arial" }
277cb93a386Sopenharmony_ci};
278cb93a386Sopenharmony_ci
279cb93a386Sopenharmony_civar paints = {
280cb93a386Sopenharmony_ci    "axisStroke":    { "style":"stroke",   "color":rgb(191,191,191) },
281cb93a386Sopenharmony_ci    "axisTextDesc":  { "paint":"textBase", "color":rgb(191,191,191) },
282cb93a386Sopenharmony_ci    "axisTextRight": { "paint":"axisTextDesc", "textAlign":"right" },
283cb93a386Sopenharmony_ci    "axisTextTop":   { "paint":"axisTextDesc", "textBaseline":"hanging" },
284cb93a386Sopenharmony_ci    "diagSegment":   { "style":"stroke",    "color":rgb(127,63,127), "strokeWidth":2 },
285cb93a386Sopenharmony_ci    "gradient1":     { "style":"fill",      "gradient":"gradients.grad1", "color":alpha(255) },
286cb93a386Sopenharmony_ci    "gradient2":     { "paint":"gradient1", "gradient":"gradients.grad2" },
287cb93a386Sopenharmony_ci    "gradient3":     { "paint":"gradient1", "gradient":"gradients.grad3" },
288cb93a386Sopenharmony_ci    "gradient4":     { "paint":"gradient1", "gradient":"gradients.grad4" },
289cb93a386Sopenharmony_ci    "gradient5":     { "paint":"gradient1", "gradient":"gradients.grad5" },
290cb93a386Sopenharmony_ci    "gradient6":     { "paint":"gradient1", "gradient":"gradients.grad6" },
291cb93a386Sopenharmony_ci    "gradient7":     { "paint":"gradient1", "gradient":"gradients.grad7" },
292cb93a386Sopenharmony_ci    "gradient8":     { "paint":"gradient1", "gradient":"gradients.grad8" },
293cb93a386Sopenharmony_ci    "horzSegment":   { "paint":"diagSegment", "color":rgb(192,92,31) },
294cb93a386Sopenharmony_ci    "picture":       { "color":alpha(255) },
295cb93a386Sopenharmony_ci    "sectorADesc":   { "paint":"textBase", "color":rgb(0,0,255) },
296cb93a386Sopenharmony_ci    "sectorBDesc":   { "paint":"textBase", "color":rgb(0,127,0) },
297cb93a386Sopenharmony_ci    "sectorCDesc":   { "paint":"textBase", "color":rgb(255,0,0) },
298cb93a386Sopenharmony_ci    "sectorXY1":     { "paint":"textBase", "color":rgb(192,63,192) },
299cb93a386Sopenharmony_ci    "sectorXY2":     { "paint":"textBase", "color":rgb(127,127,0) },
300cb93a386Sopenharmony_ci    "sectorXY3":     { "paint":"textBase", "color":rgb(255,0,0) },
301cb93a386Sopenharmony_ci    "sectorXY4":     { "paint":"textBase", "color":rgb(127,0,127) },
302cb93a386Sopenharmony_ci    "sectorXY5":     { "paint":"textBase", "color":rgb(0,127,127) },
303cb93a386Sopenharmony_ci    "sectorXY6":     { "paint":"textBase", "color":rgb(0,127,0) },
304cb93a386Sopenharmony_ci    "sectorXY7":     { "paint":"textBase", "color":rgb(63,192,63) },
305cb93a386Sopenharmony_ci    "sectorXY8":     { "paint":"textBase", "color":rgb(0,0,255) },
306cb93a386Sopenharmony_ci    "sectorXY9":     { "paint":"textBase", "color":rgb(192,92,31) },
307cb93a386Sopenharmony_ci    "sectorXY10":    { "paint":"textBase", "color":rgb(31,92,192) },
308cb93a386Sopenharmony_ci    "sectorXY11":    { "paint":"textBase", "color":rgb(127,63,127) },
309cb93a386Sopenharmony_ci
310cb93a386Sopenharmony_ci    "stroke":        { "style":"stroke",   "color":rgb(0,0,0) },
311cb93a386Sopenharmony_ci    "textBase":      { "style":"fill",     "color":rgb(0,0,0), "typeface":"description",
312cb93a386Sopenharmony_ci            "textSize":"1.3rem" },
313cb93a386Sopenharmony_ci    "vertSegment":   { "paint":"diagSegment", "color":rgb(31,92,192) },
314cb93a386Sopenharmony_ci};
315cb93a386Sopenharmony_ci
316cb93a386Sopenharmony_civar pictures = {
317cb93a386Sopenharmony_ci     "curve1DDestText": [
318cb93a386Sopenharmony_ci        { "draw":"text.curve1d1", "paint":"paints.textBase" },
319cb93a386Sopenharmony_ci        { "draw":"text.curve1d2", "paint":"paints.textBase" }
320cb93a386Sopenharmony_ci    ],
321cb93a386Sopenharmony_ci     "curveMultipleText": [
322cb93a386Sopenharmony_ci        { "draw":"text.curveMultiple1", "paint":"paints.textBase" },
323cb93a386Sopenharmony_ci        { "draw":"text.curveMultiple2", "paint":"paints.textBase" }
324cb93a386Sopenharmony_ci    ],
325cb93a386Sopenharmony_ci    "line1DDestText": [
326cb93a386Sopenharmony_ci        { "draw":"text.line1DDest1", "paint":"paints.textBase" },
327cb93a386Sopenharmony_ci        { "draw":"text.line1DDest2", "paint":"paints.textBase" }
328cb93a386Sopenharmony_ci    ],
329cb93a386Sopenharmony_ci    "sectorXYA": [
330cb93a386Sopenharmony_ci        { "draw":"text.sectorXYA", "paint":"paints.sectorADesc" },
331cb93a386Sopenharmony_ci        { "draw":"paths.wedgeXY8", "paint":"paints.gradient1" }
332cb93a386Sopenharmony_ci    ],
333cb93a386Sopenharmony_ci    "sectorXYB": [
334cb93a386Sopenharmony_ci        { "draw":"text.sectorXYB", "paint":"paints.sectorBDesc" },
335cb93a386Sopenharmony_ci        { "draw":"paths.wedgeXY6", "paint":"paints.gradient2" }
336cb93a386Sopenharmony_ci    ],
337cb93a386Sopenharmony_ci    "sectorXYC": [
338cb93a386Sopenharmony_ci        { "draw":"text.sectorXYC", "paint":"paints.sectorCDesc" },
339cb93a386Sopenharmony_ci        { "draw":"paths.wedgeXY3", "paint":"paints.gradient3" }
340cb93a386Sopenharmony_ci    ],
341cb93a386Sopenharmony_ci    "sectorText": [
342cb93a386Sopenharmony_ci        { "draw":"text.sector1", "paint":"paints.textBase" },
343cb93a386Sopenharmony_ci        { "draw":"text.sector2", "paint":"paints.textBase" }
344cb93a386Sopenharmony_ci    ],
345cb93a386Sopenharmony_ci    "trivialWedgeSpans": [
346cb93a386Sopenharmony_ci        { "draw":"paths.span4", "paint":"paints.stroke" },
347cb93a386Sopenharmony_ci        { "draw":"paths.wedge4", "paint":"paints.gradient4" },
348cb93a386Sopenharmony_ci        { "draw":"paths.span5", "paint":"paints.stroke" },
349cb93a386Sopenharmony_ci        { "draw":"paths.wedge5", "paint":"paints.gradient5" },
350cb93a386Sopenharmony_ci        { "draw":"paths.span6", "paint":"paints.stroke" },
351cb93a386Sopenharmony_ci        { "draw":"paths.wedge6", "paint":"paints.gradient6" }
352cb93a386Sopenharmony_ci    ],
353cb93a386Sopenharmony_ci    "trivialWedgeText": [
354cb93a386Sopenharmony_ci        { "draw":"text.trivialWedge1", "paint":"paints.textBase" },
355cb93a386Sopenharmony_ci        { "draw":"text.trivialWedge2", "paint":"paints.textBase" }
356cb93a386Sopenharmony_ci    ],
357cb93a386Sopenharmony_ci    "xaxis": [
358cb93a386Sopenharmony_ci        { "draw":"paths.xaxis", "paint":"paints.axisStroke" },
359cb93a386Sopenharmony_ci        { "draw":"text.xaxis1", "paint":"paints.axisTextDesc" },
360cb93a386Sopenharmony_ci        { "draw":"text.xaxis2", "paint":"paints.axisTextRight" }
361cb93a386Sopenharmony_ci    ],
362cb93a386Sopenharmony_ci    "yaxis": [
363cb93a386Sopenharmony_ci        { "draw":"paths.yaxis", "paint":"paints.axisStroke" },
364cb93a386Sopenharmony_ci        { "draw":"text.yaxis1", "paint":"paints.axisTextTop" },
365cb93a386Sopenharmony_ci        { "draw":"text.yaxis2", "paint":"paints.axisTextDesc" }
366cb93a386Sopenharmony_ci    ],
367cb93a386Sopenharmony_ci    "axes": [
368cb93a386Sopenharmony_ci        { "draw":"pictures.xaxis", "paint":"paints.picture" },
369cb93a386Sopenharmony_ci        { "draw":"pictures.yaxis", "paint":"paints.picture" }
370cb93a386Sopenharmony_ci    ]
371cb93a386Sopenharmony_ci};
372cb93a386Sopenharmony_ci
373cb93a386Sopenharmony_civar gradientLookup = [
374cb93a386Sopenharmony_ci    0, 4, 5, 3, 6, 7, 2, 8, 1
375cb93a386Sopenharmony_ci];
376cb93a386Sopenharmony_ci
377cb93a386Sopenharmony_civar keyframes = {
378cb93a386Sopenharmony_ci    "_default": [
379cb93a386Sopenharmony_ci        { "actions": [
380cb93a386Sopenharmony_ci            { "range":[0,255], "paint":"paints.picture", "target":"paint.color",
381cb93a386Sopenharmony_ci                    "params":"target", "formula":"alpha(value, params)" }
382cb93a386Sopenharmony_ci        ]}
383cb93a386Sopenharmony_ci    ],
384cb93a386Sopenharmony_ci    "keyframe1": [
385cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
386cb93a386Sopenharmony_ci            { "draw":"text.spanWedge", "paint":"paints.textBase" }
387cb93a386Sopenharmony_ci        ]},
388cb93a386Sopenharmony_ci        { "time":1000, "duration":1000, "actions": [
389cb93a386Sopenharmony_ci            { "ref":"span1", "draw":"paths.span1", "paint":"paints.stroke" }
390cb93a386Sopenharmony_ci        ]},
391cb93a386Sopenharmony_ci        { "time":1500, "duration":1500, "actions": [
392cb93a386Sopenharmony_ci            { "ref":"wedge1", "draw":"paths.wedge1", "paint":"paints.gradient1" }
393cb93a386Sopenharmony_ci        ]},
394cb93a386Sopenharmony_ci        { "time":3500, "duration": 500, "actions": [
395cb93a386Sopenharmony_ci            { "ref":"span1", "range":[255,0] },
396cb93a386Sopenharmony_ci            { "ref":"wedge1", "range":[255,0] }
397cb93a386Sopenharmony_ci        ]},
398cb93a386Sopenharmony_ci        { "time":4000, "duration":1000, "actions": [
399cb93a386Sopenharmony_ci            { "ref":"span2", "draw":"paths.span2", "paint":"paints.stroke" }
400cb93a386Sopenharmony_ci        ]},
401cb93a386Sopenharmony_ci        { "time":4500, "duration":1500, "actions": [
402cb93a386Sopenharmony_ci            { "ref":"wedge2", "draw":"paths.wedge2", "paint":"paints.gradient2" }
403cb93a386Sopenharmony_ci        ]},
404cb93a386Sopenharmony_ci        { "time":6500, "duration": 500, "actions": [
405cb93a386Sopenharmony_ci            { "ref":"span2", "range":[255,0] },
406cb93a386Sopenharmony_ci            { "ref":"wedge2", "range":[255,0] }
407cb93a386Sopenharmony_ci        ]},
408cb93a386Sopenharmony_ci        { "time":7000, "duration":1000, "actions": [
409cb93a386Sopenharmony_ci            { "draw":"paths.span3", "paint":"paints.stroke" }
410cb93a386Sopenharmony_ci        ]},
411cb93a386Sopenharmony_ci        { "time":7500, "duration":1500, "actions": [
412cb93a386Sopenharmony_ci            { "draw":"paths.wedge3", "paint":"paints.gradient3" }
413cb93a386Sopenharmony_ci        ]}
414cb93a386Sopenharmony_ci    ],
415cb93a386Sopenharmony_ci    "keyframe2": [
416cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
417cb93a386Sopenharmony_ci            { "draw":"pictures.trivialWedgeText", "paint":"paints.picture" }
418cb93a386Sopenharmony_ci        ]},
419cb93a386Sopenharmony_ci        { "time":2000, "duration":1500, "actions": [
420cb93a386Sopenharmony_ci            { "draw":"pictures.trivialWedgeSpans", "paint":"paints.picture" }
421cb93a386Sopenharmony_ci        ]}
422cb93a386Sopenharmony_ci    ],
423cb93a386Sopenharmony_ci    "keyframe3": [
424cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
425cb93a386Sopenharmony_ci            { "draw":"pictures.sectorText" },
426cb93a386Sopenharmony_ci            { "draw":"pictures.xaxis" }
427cb93a386Sopenharmony_ci        ]},
428cb93a386Sopenharmony_ci        { "time": 500, "duration":1000, "actions": [
429cb93a386Sopenharmony_ci            { "draw":"pictures.yaxis" }
430cb93a386Sopenharmony_ci        ]},
431cb93a386Sopenharmony_ci        { "time":2000, "duration":1500, "actions": [
432cb93a386Sopenharmony_ci            { "draw":"pictures.sectorXYA" }
433cb93a386Sopenharmony_ci        ]},
434cb93a386Sopenharmony_ci        { "time":3000, "duration":1500, "actions": [
435cb93a386Sopenharmony_ci            { "draw":"pictures.sectorXYB" }
436cb93a386Sopenharmony_ci        ]},
437cb93a386Sopenharmony_ci        { "time":4000, "duration":1500, "actions": [
438cb93a386Sopenharmony_ci            { "draw":"pictures.sectorXYC" }
439cb93a386Sopenharmony_ci        ]}
440cb93a386Sopenharmony_ci    ],
441cb93a386Sopenharmony_ci    "keyframe4": [
442cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
443cb93a386Sopenharmony_ci            { "draw":"text.lineSingle", "paint":"paints.textBase" },
444cb93a386Sopenharmony_ci            { "draw":"pictures.axes" }
445cb93a386Sopenharmony_ci        ]},
446cb93a386Sopenharmony_ci        { "time":1000, "duration":1000, "actions": [
447cb93a386Sopenharmony_ci            { "ref":"line", "draw":"paths.lineSegment", "paint":"paints.stroke" }
448cb93a386Sopenharmony_ci        ]},
449cb93a386Sopenharmony_ci        { "time":1850, "duration":1000, "actions": [
450cb93a386Sopenharmony_ci            { "ref":"sectorXY1", "draw":"text.sectorXY1", "paint":"paints.sectorXY1" },
451cb93a386Sopenharmony_ci            { "ref":"sectorXY1", "target":"draw.y", "formula":260 },
452cb93a386Sopenharmony_ci            { "ref":"wedgeXY1", "draw":"paths.wedgeXY1", "paint":"paints.gradient4" }
453cb93a386Sopenharmony_ci        ]},
454cb93a386Sopenharmony_ci        { "time":3000, "duration":4000, "actions": [
455cb93a386Sopenharmony_ci            { "ref":"line", "target":"draw[0].line[2]",
456cb93a386Sopenharmony_ci                "range":[-22.5 * Math.PI / 180, (-22.5 - 360) * Math.PI / 180], "params":"circle",
457cb93a386Sopenharmony_ci                "formula":"params.center.x + params.radius * Math.cos(value)"
458cb93a386Sopenharmony_ci            },
459cb93a386Sopenharmony_ci            { "ref":"line", "target":"draw[0].line[3]",
460cb93a386Sopenharmony_ci                "range":[-22.5 * Math.PI / 180, (-22.5 - 360) * Math.PI / 180], "params":"circle",
461cb93a386Sopenharmony_ci                "formula":"params.center.y + params.radius * Math.sin(value)"
462cb93a386Sopenharmony_ci            }
463cb93a386Sopenharmony_ci        ]},
464cb93a386Sopenharmony_ci        { "for":["i=2", "i<=8", "++i"], "time":"2250 + 500 * i", "duration":100, "actions": [
465cb93a386Sopenharmony_ci            { "ref":"'sectorXY' + i", "draw":"'text.sectorXY' + i",
466cb93a386Sopenharmony_ci                    "paint":"'paints.sectorXY' + i" },
467cb93a386Sopenharmony_ci            { "ref":"'sectorXY' + i", "target":"draw.y", "formula":260 },
468cb93a386Sopenharmony_ci            { "ref":"'wedgeXY' + i", "draw":"'paths.wedgeXY' + i",
469cb93a386Sopenharmony_ci                    "paint":"'paints.gradient' + gradientLookup[i]" },
470cb93a386Sopenharmony_ci            { "ref":"'sectorXY' + (i - 1)", "range":[255,0] },
471cb93a386Sopenharmony_ci            { "ref":"'wedgeXY' + (i - 1)", "range":[255,0] }
472cb93a386Sopenharmony_ci        ]},
473cb93a386Sopenharmony_ci        { "time":2250 + 500 * 9, "duration":100, "actions": [
474cb93a386Sopenharmony_ci            { "ref":"sectorXY1" },
475cb93a386Sopenharmony_ci            { "ref":"wedgeXY1" },
476cb93a386Sopenharmony_ci            { "ref":"sectorXY8", "range":[255,0] },
477cb93a386Sopenharmony_ci            { "ref":"wedgeXY8", "range":[255,0] }
478cb93a386Sopenharmony_ci        ]}
479cb93a386Sopenharmony_ci    ],
480cb93a386Sopenharmony_ci    "keyframe5": [
481cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
482cb93a386Sopenharmony_ci            { "draw":"pictures.curveMultipleText" },
483cb93a386Sopenharmony_ci            { "draw":"pictures.axes" }
484cb93a386Sopenharmony_ci        ]},
485cb93a386Sopenharmony_ci        { "time":1000, "duration":1000, "actions": [
486cb93a386Sopenharmony_ci            { "ref":"curve", "draw":"paths.curveSegment1", "paint":"paints.stroke" }
487cb93a386Sopenharmony_ci        ]},
488cb93a386Sopenharmony_ci        { "time":2000, "duration":1000, "actions": [
489cb93a386Sopenharmony_ci            { "draw":"text.sectorXY1", "paint":"paints.sectorXY1",
490cb93a386Sopenharmony_ci                    "target":"draw.y", "formula":260 + 1 * 25},
491cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY1", "paint":"paints.gradient4" }
492cb93a386Sopenharmony_ci        ]},
493cb93a386Sopenharmony_ci        { "time":3000, "duration":1000, "actions": [
494cb93a386Sopenharmony_ci            { "ref":"curve", "range":[0,1], "target":"draw",
495cb93a386Sopenharmony_ci                "params":["paths.curveSegment1","paths.curveSegment2"],
496cb93a386Sopenharmony_ci                "formula":"interp_paths(value, params)"
497cb93a386Sopenharmony_ci            }
498cb93a386Sopenharmony_ci        ]},
499cb93a386Sopenharmony_ci        { "time":4000, "duration":1000, "actions": [
500cb93a386Sopenharmony_ci            { "draw":"text.sectorXY2", "paint":"paints.sectorXY2",
501cb93a386Sopenharmony_ci                    "target":"draw.y", "formula":260 + 2 * 25},
502cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY2", "paint":"paints.gradient5" }
503cb93a386Sopenharmony_ci        ]},
504cb93a386Sopenharmony_ci        { "time":5000, "duration":1000, "actions": [
505cb93a386Sopenharmony_ci            { "ref":"curve", "range":[0,1], "target":"draw",
506cb93a386Sopenharmony_ci                "params":["paths.curveSegment2","paths.curveSegment3"],
507cb93a386Sopenharmony_ci                "formula":"interp_paths(value, params)"
508cb93a386Sopenharmony_ci            }
509cb93a386Sopenharmony_ci        ]},
510cb93a386Sopenharmony_ci        { "for":["i=3", "i<=6", "++i"], "time":"6000", "actions": [
511cb93a386Sopenharmony_ci            { "ref":"'text' + i", "draw":"'text.sectorXY' + i", "paint":"'paints.sectorXY' + i",
512cb93a386Sopenharmony_ci                    "target":"draw.y", "formula":"260 + i * 25" },
513cb93a386Sopenharmony_ci        ]},
514cb93a386Sopenharmony_ci        { "for":["i=3", "i<=6", "++i"], "time":"6000", "duration":1000, "actions": [
515cb93a386Sopenharmony_ci            { "ref":"'text' + i" },
516cb93a386Sopenharmony_ci        ]},
517cb93a386Sopenharmony_ci        { "time":6000, "duration":1000, "actions": [
518cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY3", "paint":"paints.gradient3" },
519cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY4", "paint":"paints.gradient6" },
520cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY5", "paint":"paints.gradient7" },
521cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY6", "paint":"paints.gradient2" },
522cb93a386Sopenharmony_ci        ]}
523cb93a386Sopenharmony_ci    ],
524cb93a386Sopenharmony_ci    "keyframe6": [
525cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
526cb93a386Sopenharmony_ci            { "draw":"pictures.line1DDestText" },
527cb93a386Sopenharmony_ci            { "draw":"pictures.axes" }
528cb93a386Sopenharmony_ci        ]},
529cb93a386Sopenharmony_ci        { "time":2000, "duration":1000, "actions": [
530cb93a386Sopenharmony_ci            { "ref":"xy9", "draw":"text.sectorXY9", "paint":"paints.sectorXY9" },
531cb93a386Sopenharmony_ci            { "ref":"xy9", "target":"draw.y", "formula":260 + 25},
532cb93a386Sopenharmony_ci            { "draw":"paths.horzSegment", "paint":"paints.horzSegment" }
533cb93a386Sopenharmony_ci        ]},
534cb93a386Sopenharmony_ci        { "time":3000, "duration":1000, "actions": [
535cb93a386Sopenharmony_ci            { "ref":"xy10", "draw":"text.sectorXY10", "paint":"paints.sectorXY10" },
536cb93a386Sopenharmony_ci            { "ref":"xy10", "target":"draw.y", "formula":260 + 50 },
537cb93a386Sopenharmony_ci            { "draw":"paths.vertSegment", "paint":"paints.vertSegment" }
538cb93a386Sopenharmony_ci        ]},
539cb93a386Sopenharmony_ci        { "time":4000, "duration":1000, "actions": [
540cb93a386Sopenharmony_ci            { "ref":"xy11", "draw":"text.sectorXY11", "paint":"paints.sectorXY11" },
541cb93a386Sopenharmony_ci            { "ref":"xy11", "target":"draw.y", "formula":260 + 75 },
542cb93a386Sopenharmony_ci            { "draw":"paths.diagSegment", "paint":"paints.diagSegment" }
543cb93a386Sopenharmony_ci        ]}
544cb93a386Sopenharmony_ci    ],
545cb93a386Sopenharmony_ci    "keyframe7": [
546cb93a386Sopenharmony_ci        { "time":   0, "duration":1000, "canvas":"clear", "actions": [
547cb93a386Sopenharmony_ci            { "draw":"pictures.curve1DDestText" },
548cb93a386Sopenharmony_ci            { "draw":"pictures.axes" }
549cb93a386Sopenharmony_ci        ]},
550cb93a386Sopenharmony_ci        { "time":2000, "duration":1000, "actions": [
551cb93a386Sopenharmony_ci            { "ref":"cubic", "draw":"paths.cubicSegment1", "paint":"paints.stroke" },
552cb93a386Sopenharmony_ci            { "ref":"cubic", "range":[0,1], "target":"draw",
553cb93a386Sopenharmony_ci                "params":"paths.cubicSegment2", "formula":"path_partial(value, params)" },
554cb93a386Sopenharmony_ci            { "ref":"xy9", "draw":"text.sectorXY9", "paint":"paints.sectorXY9" },
555cb93a386Sopenharmony_ci            { "ref":"xy9", "target":"draw.y", "formula":260 + 25},
556cb93a386Sopenharmony_ci            { "draw":"paths.horzSegment", "paint":"paints.horzSegment" }
557cb93a386Sopenharmony_ci        ]},
558cb93a386Sopenharmony_ci        { "time":3000, "duration":1000, "actions": [
559cb93a386Sopenharmony_ci            { "ref":"xy1", "draw":"text.sectorXY1", "paint":"paints.sectorXY1" },
560cb93a386Sopenharmony_ci            { "ref":"xy1", "target":"draw.y", "formula":260 + 60},
561cb93a386Sopenharmony_ci            { "draw":"paths.wedgeXY1", "paint":"paints.gradient4" }
562cb93a386Sopenharmony_ci        ]},
563cb93a386Sopenharmony_ci    ]
564cb93a386Sopenharmony_ci};
565