blob: d0c2116d86603f33dc73980ec7edfa197966db7d [file] [log] [blame]
caryclark@google.com752b60e2012-03-22 21:11:17 +00001<html>
2<head>
3<div style="height:0">
caryclark@google.comfa0588f2012-04-26 21:01:06 +00004
5<div id="testSimplifyQuadratic1">
6 SkPath path, out;
7 path.moveTo(0, 0);
8 path.quadTo(1, 0, 1, 1);
9 path.close();
10 path.moveTo(1, 0);
11 path.quadTo(0, 0, 0, 1);
12 path.close();
13 testSimplify(path, true, out, bitmap);
14}
caryclark@google.com752b60e2012-03-22 21:11:17 +000015</div>
caryclark@google.comfa0588f2012-04-26 21:01:06 +000016
17<div id="testSimplifyQuadratic2">
18 SkPath path, out;
19 path.moveTo(0, 0);
20 path.quadTo(20, 0, 20, 20);
21 path.close();
22 path.moveTo(20, 0);
23 path.quadTo(0, 0, 0, 20);
24 path.close();
25 testSimplify(path, true, out, bitmap);
26}
caryclark@google.comd88e0892012-03-27 13:23:51 +000027</div>
caryclark@google.comfa0588f2012-04-26 21:01:06 +000028
29<div id="testSimplifyQuadratic3">
30 SkPath path, out;
31 path.moveTo(0, 0);
32 path.quadTo(20, 0, 20, 20);
33 path.close();
34 path.moveTo(0, 20);
35 path.quadTo(0, 0, 20, 0);
36 path.close();
37 testSimplify(path, true, out, bitmap);
38}
caryclark@google.comd88e0892012-03-27 13:23:51 +000039</div>
caryclark@google.comfa0588f2012-04-26 21:01:06 +000040
41<div id="testSimplifyQuadratic4">
42 SkPath path, out;
43 path.moveTo(0, 20);
44 path.quadTo(20, 0, 40, 20);
45 path.close();
46 path.moveTo(40, 10);
47 path.quadTo(20, 30, 0, 10);
48 path.close();
49 testSimplify(path, true, out, bitmap);
50 drawAsciiPaths(path, out, true);
51}
caryclark@google.comd88e0892012-03-27 13:23:51 +000052</div>
caryclark@google.comfa0588f2012-04-26 21:01:06 +000053
54<div id="testSimplifyQuadratic5">
55 SkPath path, out;
56 path.moveTo(0, 0);
57 path.quadTo(0, 0, 0, 0);
58 path.lineTo(0, 0);
59 path.close();
60 path.moveTo(0, 0);
61 path.lineTo(0, 0);
62 path.quadTo(0, 0, 0, 1);
63 path.close();
64 testSimplify(path, true, out, bitmap);
65 drawAsciiPaths(path, out, true);
66}
caryclark@google.comfb173422012-04-10 18:28:55 +000067</div>
caryclark@google.comfa0588f2012-04-26 21:01:06 +000068
69<div id="testSimplifyQuadratic6">
70 SkPath path, out;
71 path.moveTo(0, 0);
72 path.quadTo(0, 0, 0, 0);
73 path.lineTo(1, 0);
74 path.close();
75 path.moveTo(0, 0);
76 path.lineTo(0, 0);
77 path.quadTo(1, 0, 0, 1);
78 path.close();
79 testSimplify(path, true, out, bitmap);
80 drawAsciiPaths(path, out, true);
81}
caryclark@google.comfb173422012-04-10 18:28:55 +000082</div>
caryclark@google.comfa0588f2012-04-26 21:01:06 +000083
84<div id="testSimplifyQuadratic7">
85 SkPath path, out;
86 path.moveTo(0, 0);
87 path.quadTo(0, 0, 0, 0);
88 path.lineTo(0, 1);
89 path.close();
90 path.moveTo(0, 0);
91 path.lineTo(0, 0);
92 path.quadTo(1, 0, 0, 2);
93 path.close();
94 testSimplify(path, true, out, bitmap);
95 drawAsciiPaths(path, out, true);
96}
97</div>
98
99<div id="testSimplifyQuadratic8">
100 SkPath path, out;
101 path.moveTo(0, 0);
102 path.quadTo(0, 0, 0, 0);
103 path.lineTo(0, 0);
104 path.close();
105 path.moveTo(0, 0);
106 path.lineTo(0, 0);
107 path.quadTo(1, 0, 0, 2);
108 path.close();
109 testSimplify(path, true, out, bitmap);
110 drawAsciiPaths(path, out, true);
111}
112</div>
113
114<div id="testSimplifyQuadratic9">
115 SkPath path, out;
116 path.moveTo(0, 0);
117 path.quadTo(0, 0, 0, 0);
118 path.lineTo(1, 1);
119 path.close();
120 path.moveTo(0, 0);
121 path.lineTo(0, 0);
122 path.quadTo(1, 0, 2, 2);
123 path.close();
124 testSimplify(path, true, out, bitmap);
125 drawAsciiPaths(path, out, true);
126}
127</div>
128
129<div id="testSimplifyQuadratic10">
130 SkPath path, out;
caryclark@google.com78e17132012-04-17 11:40:34 +0000131 path.moveTo(0, 0);
132 path.quadTo(0, 0, 0, 0);
133 path.lineTo(0, 0);
134 path.close();
135 path.moveTo(0, 0);
136 path.lineTo(0, 1);
137 path.quadTo(1, 1, 1, 2);
caryclark@google.com78e17132012-04-17 11:40:34 +0000138 path.close();
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000139 testSimplify(path, true, out, bitmap);
140 drawAsciiPaths(path, out, true);
141}
caryclark@google.com78e17132012-04-17 11:40:34 +0000142</div>
143
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000144<div id="testSimplifyQuadratic11">
145 SkPath path, out;
caryclark@google.com78e17132012-04-17 11:40:34 +0000146 path.moveTo(0, 0);
147 path.quadTo(0, 0, 0, 0);
148 path.lineTo(0, 2);
caryclark@google.com78e17132012-04-17 11:40:34 +0000149 path.close();
150 path.moveTo(0, 0);
151 path.lineTo(2, 1);
152 path.quadTo(2, 2, 3, 3);
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000153 path.close();
154 testSimplify(path, true, out, bitmap);
155 drawAsciiPaths(path, out, true);
156}
157</div>
158
159<div id="testSimplifyQuadratic12">
160 SkPath path, out;
161 path.moveTo(0, 0);
162 path.lineTo(0, 2);
caryclark@google.com78e17132012-04-17 11:40:34 +0000163 path.lineTo(0, 0);
164 path.close();
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000165 path.moveTo(3, 0);
166 path.quadTo(1, 1, 0, 2);
167 path.lineTo(3, 0);
168 path.close();
169 testSimplify(path, true, out, bitmap);
170 drawAsciiPaths(path, out, true);
171}
caryclark@google.com78e17132012-04-17 11:40:34 +0000172</div>
173
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000174<div id="testSimplifyQuadratic13">
175 SkPath path, out;
caryclark@google.com78e17132012-04-17 11:40:34 +0000176path.moveTo(0, 0);
177path.quadTo(0, 0, 1, 0);
178path.lineTo(1, 1);
179path.lineTo(0, 0);
180path.close();
181path.moveTo(0, 0);
182path.quadTo(3, 0, 1, 1);
183path.lineTo(0, 0);
184path.close();
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000185 testSimplify(path, true, out, bitmap);
186 drawAsciiPaths(path, out, true);
187}
caryclark@google.com78e17132012-04-17 11:40:34 +0000188</div>
189
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000190<div id="testSimplifyQuadratic14">
191 SkPath path, out;
caryclark@google.com78e17132012-04-17 11:40:34 +0000192 path.moveTo(0, 0);
193 path.quadTo(0, 0, 0, 0);
194 path.lineTo(1, 1);
caryclark@google.com78e17132012-04-17 11:40:34 +0000195 path.close();
196 path.moveTo(0, 0);
197 path.lineTo(0, 0);
198 path.quadTo(0, 1, 2, 1);
caryclark@google.com78e17132012-04-17 11:40:34 +0000199 path.close();
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000200 testSimplify(path, true, out, bitmap);
201 drawAsciiPaths(path, out, true);
202}
caryclark@google.com78e17132012-04-17 11:40:34 +0000203</div>
204
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000205<div id="testSimplifyQuadratic15">
206 SkPath path, out;
207 path.moveTo(0, 0);
208 path.quadTo(0, 0, 1, 3);
209 path.lineTo(3, 3);
210 path.close();
211 path.moveTo(0, 1);
212 path.lineTo(1, 1);
213 path.quadTo(0, 3, 3, 3);
214 path.close();
215 testSimplify(path, true, out, bitmap);
216 drawAsciiPaths(path, out, true);
217}
218</div>
219
220<div id="testSimplifyQuadratic16">
221 SkPath path, out;
222 path.moveTo(0, 0);
223 path.quadTo(0, 0, 0, 0);
224 path.lineTo(0, 1);
225 path.close();
226 path.moveTo(0, 0);
227 path.lineTo(0, 0);
228 path.quadTo(1, 0, 0, 1);
229 path.close();
230 testSimplify(path, true, out, bitmap);
231 drawAsciiPaths(path, out, true);
232}
233</div>
234
235<div id="testSimplifyQuadratic17">
236 SkPath path, out;
caryclark@google.comb45a1b42012-05-18 20:50:33 +0000237 path.moveTo(8, 8);
238 path.quadTo(10, 10, 8, -10);
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000239 path.close();
caryclark@google.comb45a1b42012-05-18 20:50:33 +0000240 path.moveTo(8, 8);
241 path.quadTo(12, 12, 14, 4);
242 path.close();
243 path.moveTo(8, 8);
244 path.quadTo(9, 9, 10, 8);
caryclark@google.comfa0588f2012-04-26 21:01:06 +0000245 path.close();
246 testSimplify(path, true, out, bitmap);
247 drawAsciiPaths(path, out, true);
248}
caryclark@google.com78e17132012-04-17 11:40:34 +0000249</div>
caryclark@google.comfb173422012-04-10 18:28:55 +0000250
caryclark@google.comb45a1b42012-05-18 20:50:33 +0000251<div id="testSimplifyQuadratic18">
252 SkPath path, out;
253 path.moveTo(8.0000000000000071, 8.0000000000000071);
254 path.quadTo(8.7289570079366854, 8.7289570079366889, 9.3914917259458743, 9.0593802763083691);
255 path.close();
256 path.moveTo(8.0000000000000142, 8.0000000000000142);
257 path.quadTo(8.1250000000000107, 8.1250000000000071, 8.2500000000000071, 8.2187500000000053);
258 path.close();
259 testSimplify(path, true, out, bitmap);
260 drawAsciiPaths(path, out, true);
261</div>
caryclark@google.com8dcf1142012-07-02 20:27:02 +0000262
263<div id="testSimplifyQuadratic19">
264 SkPath path, simple;
265 path.moveTo(0,4);
266 path.lineTo(6,4);
267 path.lineTo(3,1);
268 path.close();
269 path.moveTo(2,3);
270 path.lineTo(3,2);
271 path.lineTo(4,3);
272 path.close();
273 testSimplifyx(path);
274</div>
275
276<div id="testSimplifyQuadratic20">
277 SkPath path, simple;
278 path.moveTo(0,4);
279 path.lineTo(6,4);
280 path.lineTo(3,1);
281 path.close();
282 path.moveTo(2,3);
283 path.lineTo(4,3);
284 path.lineTo(3,2);
285 path.close();
286 testSimplifyx(path);
287</div>
288
289<div id="testSimplifyQuadratic21">
290 SkPath path, simple;
291 path.moveTo(0,4);
292 path.lineTo(8,4);
293 path.lineTo(4,0);
294 path.close();
295 path.moveTo(2,2);
296 path.lineTo(3,3);
297 path.lineTo(4,2);
298 path.close();
299 testSimplifyx(path);
300</div>
301
302<div id="testLine6">
303 SkPath path, simple;
304 path.moveTo(0,0);
305 path.lineTo(4,0);
306 path.lineTo(2,2);
307 path.close();
308 path.moveTo(2,0);
309 path.lineTo(6,0);
310 path.lineTo(4,2);
311 path.close();
312 testSimplifyx(path);
313</div>
314
caryclark@google.comfa4a6e92012-07-11 17:52:32 +0000315<div id="testLine7">
316 SkPath path, simple;
317 path.moveTo(0,0);
318 path.lineTo(4,0);
319 path.lineTo(2,2);
320 path.close();
321 path.moveTo(6,0);
322 path.lineTo(2,0);
323 path.lineTo(4,2);
324 path.close();
325 testSimplifyx(path);
326</div>
327
caryclark@google.comcc905052012-07-25 20:59:42 +0000328<div id="testLine7b">
329 path.moveTo(0,0);
330 path.lineTo(4,0);
331 path.close();
332 path.moveTo(6,0);
333 path.lineTo(2,0);
334 path.lineTo(4,2);
335 path.close();
336</div>
337
caryclark@google.comfa4a6e92012-07-11 17:52:32 +0000338<div id="testLine9">
339 SkPath path, simple;
340 path.moveTo(0,4);
341 path.lineTo(4,4);
342 path.lineTo(2,2);
343 path.close();
344 path.moveTo(6,4);
345 path.lineTo(2,4);
346 path.lineTo(4,2);
347 path.close();
348 testSimplifyx(path);
349</div>
350
caryclark@google.come21cb182012-07-23 21:26:31 +0000351<div id="testLine12">
352 path.moveTo(0,4);
353 path.lineTo(6,4);
354 path.lineTo(3,1);
355 path.close();
356 path.moveTo(2,3);
357 path.lineTo(3,2);
358 path.lineTo(4,3);
359 path.close();
360</div>
361
362<div id="testLine13">
363 path.moveTo(6,4);
364 path.lineTo(0,4);
365 path.lineTo(3,1);
366 path.close();
367 path.moveTo(3,2);
368 path.lineTo(2,3);
369 path.lineTo(4,3);
370 path.close();
371</div>
372
caryclark@google.com8dcf1142012-07-02 20:27:02 +0000373<div id="testLine17">
374 SkPath path, simple;
375 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
376 path.addRect(4, 12, 13, 13, (SkPath::Direction) 0);
377 testSimplifyx(path);
378</div>
379
caryclark@google.com47580692012-07-23 12:14:49 +0000380<div id="testLine19">
381 SkPath path, simple;
382 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
383 path.addRect(12, 16, 21, 21, (SkPath::Direction) 0);
384 testSimplifyx(path);
385</div>
386
caryclark@google.comcc905052012-07-25 20:59:42 +0000387<div id="testLine22">
388 path.addRect(0, 12, 12, 12, (SkPath::Direction) 0);
389 path.addRect(4, 12, 13, 13, (SkPath::Direction) 0);
390</div>
391
caryclark@google.com47580692012-07-23 12:14:49 +0000392<div id="testLine24">
393 path.addRect(0, 18, 12, 12, (SkPath::Direction) 0);
394 path.addRect(4, 12, 13, 13, (SkPath::Direction) 0);
395</div>
396
caryclark@google.comfa4a6e92012-07-11 17:52:32 +0000397<div id="testLine28">
398 SkPath path, simple;
399 path.addRect(0, 6, 12, 12, (SkPath::Direction) 0);
400 path.addRect(0, 0, 9, 9, (SkPath::Direction) 0);
401 testSimplifyx(path);
402</div>
403
404<div id="testLine29">
405 SkPath path, simple;
406 path.addRect(0, 18, 12, 12, (SkPath::Direction) 0);
407 path.addRect(12, 12, 21, 21, (SkPath::Direction) 0);
408 testSimplifyx(path);
409</div>
410
411<div id="testLine30">
412 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
413 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
414 path.addRect(4, 4, 13, 13, (SkPath::Direction) 0);
415</div>
416
417<div id="testLine31">
418 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
419 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
420 path.addRect(0, 4, 9, 9, (SkPath::Direction) 0);
421</div>
422
423<div id="testLine32">
424 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
425 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
426 path.addRect(4, 12, 13, 13, (SkPath::Direction) 0);
427</div>
428
caryclark@google.com9764cc62012-07-12 19:29:45 +0000429<div id="testLine33">
430 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
431 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
432 path.addRect(4, 16, 13, 13, (SkPath::Direction) 0);
433</div>
434
caryclark@google.com210acaf2012-07-12 21:05:13 +0000435<div id="testLine34">
436 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
437 path.addRect(0, 6, 12, 12, (SkPath::Direction) 0);
438 path.addRect(4, 12, 13, 13, (SkPath::Direction) 0);
439</div>
440
441<div id="testLine35">
442 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
443 path.addRect(6, 0, 18, 18, (SkPath::Direction) 0);
444 path.addRect(4, 16, 13, 13, (SkPath::Direction) 0);
445</div>
446
caryclark@google.com0e08a192012-07-13 21:07:52 +0000447<div id="testLine36">
448 path.addRect(0, 10, 20, 20, (SkPath::Direction) 0);
449 path.addRect(6, 12, 18, 18, (SkPath::Direction) 0);
450 path.addRect(4, 16, 13, 13, (SkPath::Direction) 0);
451</div>
452
caryclark@google.com47580692012-07-23 12:14:49 +0000453<div id="testLine37">
454 path.addRect(0, 20, 20, 20, (SkPath::Direction) 0);
455 path.addRect(18, 24, 30, 30, (SkPath::Direction) 0);
456 path.addRect(0, 0, 9, 9, (SkPath::Direction) 0);
457</div>
458
459<div id="testLine38">
460 path.addRect(10, 0, 30, 30, (SkPath::Direction) 0);
461 path.addRect(6, 12, 18, 18, (SkPath::Direction) 0);
462 path.addRect(12, 12, 21, 21, (SkPath::Direction) 0);
463</div>
464
465<div id="testLine39">
466 path.addRect(10, 0, 30, 30, (SkPath::Direction) 0);
467 path.addRect(12, 6, 24, 24, (SkPath::Direction) 0);
468 path.addRect(12, 4, 21, 21, (SkPath::Direction) 0);
469</div>
470
471<div id="testLine40">
472 path.addRect(10, 0, 30, 30, (SkPath::Direction) 0);
473 path.addRect(12, 18, 24, 24, (SkPath::Direction) 0);
474 path.addRect(4, 16, 13, 13, (SkPath::Direction) 0);
475</div>
476
477<div id="testLine41">
478 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
479 path.addRect(18, 24, 30, 30, (SkPath::Direction) 0);
480 path.addRect(12, 0, 21, 21, (SkPath::Direction) 0);
481</div>
482
483<div id="testLine42">
484 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
485 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
486 path.addRect(8, 16, 17, 17, (SkPath::Direction) 0);
487</div>
488
489<div id="testLine43">
490 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
491 path.addRect(6, 24, 18, 18, (SkPath::Direction) 0);
492 path.addRect(0, 32, 9, 36, (SkPath::Direction) 1);
493</div>
494
495<div id="testLine44">
496 path.addRect(10, 40, 30, 30, (SkPath::Direction) 0);
497 path.addRect(18, 0, 30, 30, (SkPath::Direction) 0);
498 path.addRect(18, 32, 27, 36, (SkPath::Direction) 1);
499</div>
500
501<div id="testLine45">
502 path.addRect(10, 0, 30, 30, (SkPath::Direction) 0);
503 path.addRect(18, 0, 30, 30, (SkPath::Direction) 0);
504 path.addRect(24, 32, 33, 36, (SkPath::Direction) 0);
505</div>
506
507<div id="testLine46">
508 path.addRect(10, 40, 30, 30, (SkPath::Direction) 0);
509 path.addRect(24, 0, 36, 36, (SkPath::Direction) 0);
510 path.addRect(24, 32, 33, 36, (SkPath::Direction) 0);
511</div>
512
513<div id="testLine47">
514 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
515 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
516 path.addRect(0, 0, 9, 9, (SkPath::Direction) 1);
517</div>
518
519<div id="testLine48">
520 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
521 path.addRect(0, 6, 12, 12, (SkPath::Direction) 0);
522 path.addRect(0, 0, 9, 9, (SkPath::Direction) 1);
523</div>
524
525<div id="testLine49">
526 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
527 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
528 path.addRect(0, 0, 9, 9, (SkPath::Direction) 0);
529</div>
530
531<div id="testLine50">
532 path.addRect(10, 30, 30, 30, (SkPath::Direction) 0);
533 path.addRect(24, 20, 36, 30, (SkPath::Direction) 0);
534</div>
535
536<div id="testLine51">
537 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
538 path.addRect(0, 12, 12, 12, (SkPath::Direction) 0);
539 path.addRect(4, 12, 13, 13, (SkPath::Direction) 1);
540</div>
541
caryclark@google.come21cb182012-07-23 21:26:31 +0000542<div id="testLine52">
543 path.addRect(0, 30, 20, 20, (SkPath::Direction) 0);
544 path.addRect(6, 20, 18, 30, (SkPath::Direction) 0);
545 path.addRect(32, 0, 36, 41, (SkPath::Direction) 0);
546</div>
547
548<div id="testLine53">
549 path.addRect(10, 30, 30, 30, (SkPath::Direction) 0);
550 path.addRect(12, 20, 24, 30, (SkPath::Direction) 0);
551 path.addRect(12, 32, 21, 36, (SkPath::Direction) 1);
552</div>
553
554<div id="testLine54">
555 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
556 path.addRect(6, 0, 18, 18, (SkPath::Direction) 0);
557 path.addRect(8, 4, 17, 17, (SkPath::Direction) 1);
558</div>
559
560<div id="testLine55">
561 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
562 path.addRect(6, 6, 18, 18, (SkPath::Direction) 0);
563 path.addRect(4, 4, 13, 13, (SkPath::Direction) 1);
564</div>
565
caryclark@google.com18063442012-07-25 12:05:18 +0000566<div id="testLine56">
567 path.addRect(0, 20, 20, 20, (SkPath::Direction) 0);
568 path.addRect(18, 20, 30, 30, (SkPath::Direction) 0);
569 path.addRect(12, 0, 21, 21, (SkPath::Direction) 1);
570</div>
571
572<div id="testLine57">
573 path.addRect(20, 0, 40, 40, (SkPath::Direction) 0);
574 path.addRect(20, 0, 30, 40, (SkPath::Direction) 0);
575 path.addRect(12, 0, 21, 21, (SkPath::Direction) 1);
576</div>
577
caryclark@google.comcc905052012-07-25 20:59:42 +0000578<div id="testLine58">
579 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
580 path.addRect(0, 0, 12, 12, (SkPath::Direction) 1);
581 path.addRect(0, 12, 9, 9, (SkPath::Direction) 1);
582</div>
583
584<div id="testLine59">
585 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
586 path.addRect(6, 6, 18, 18, (SkPath::Direction) 1);
587 path.addRect(4, 4, 13, 13, (SkPath::Direction) 1);
588</div>
589
caryclark@google.com27c449a2012-07-27 18:26:38 +0000590<div id="testLine60">
591 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
592 path.addRect(6, 12, 18, 18, (SkPath::Direction) 1);
593 path.addRect(4, 12, 13, 13, (SkPath::Direction) 1);
594</div>
595
596<div id="testLine61">
597 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
598 path.addRect(12, 0, 24, 24, (SkPath::Direction) 1);
599 path.addRect(12, 0, 21, 21, (SkPath::Direction) 1);
600</div>
601
602<div id="testLine62">
603 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
604 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
605 path.addRect(0, 12, 12, 12, (SkPath::Direction) 0);
606 path.addRect(4, 12, 13, 13, (SkPath::Direction) 1);
607</div>
608
609<div id="testLine63">
610 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
611 path.addRect(0, 10, 20, 20, (SkPath::Direction) 0);
612 path.addRect(0, 6, 12, 12, (SkPath::Direction) 1);
613 path.addRect(0, 32, 9, 36, (SkPath::Direction) 1);
614</div>
615
616<div id="testLine64">
617 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
618 path.addRect(10, 40, 30, 30, (SkPath::Direction) 0);
619 path.addRect(18, 6, 30, 30, (SkPath::Direction) 0);
620</div>
621
622<div id="testLine65">
623 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
624 path.addRect(10, 0, 30, 30, (SkPath::Direction) 0);
625 path.addRect(24, 0, 36, 36, (SkPath::Direction) 0);
626 path.addRect(32, 6, 36, 41, (SkPath::Direction) 1);
627</div>
628
629<div id="testLine66">
630 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
631 path.addRect(0, 30, 20, 20, (SkPath::Direction) 0);
632 path.addRect(12, 20, 24, 30, (SkPath::Direction) 0);
633</div>
634
caryclark@google.com534aa5b2012-08-02 20:08:21 +0000635<div id="testLine67">
636 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
637 path.addRect(10, 40, 30, 30, (SkPath::Direction) 0);
638 path.addRect(24, 20, 36, 30, (SkPath::Direction) 0);
639 path.addRect(32, 0, 36, 41, (SkPath::Direction) 0);
640</div>
641
642<div id="testLine68a">
643 path.addRect(0, 0, 8, 8, (SkPath::Direction) 0);
644 path.addRect(2, 2, 6, 6, (SkPath::Direction) 0);
645 path.addRect(1, 2, 4, 2, (SkPath::Direction) 0);
646</div>
647
648<div id="testLine68b">
649 path.addRect(0, 0, 8, 8, (SkPath::Direction) 0);
650 path.addRect(2, 2, 6, 6, (SkPath::Direction) 1);
651 path.addRect(1, 2, 4, 2, (SkPath::Direction) 0);
652</div>
653
654<div id="testLine68c">
655 path.addRect(0, 0, 8, 8, (SkPath::Direction) 1);
656 path.addRect(2, 2, 6, 6, (SkPath::Direction) 0);
657 path.addRect(1, 2, 4, 2, (SkPath::Direction) 0);
658</div>
659
660<div id="testLine68d">
661 path.addRect(0, 0, 8, 8, (SkPath::Direction) 1);
662 path.addRect(2, 2, 6, 6, (SkPath::Direction) 1);
663 path.addRect(1, 2, 4, 2, (SkPath::Direction) 0);
664</div>
665
666<div id="testLine68e">
667 path.addRect(0, 0, 8, 8, (SkPath::Direction) 0);
668 path.addRect(0, 0, 8, 8, (SkPath::Direction) 0);
669 path.addRect(2, 2, 6, 6, (SkPath::Direction) 1);
670 path.addRect(1, 2, 2, 2, (SkPath::Direction) 0);
671</div>
672
673<div id="testLine68f">
674 path.addRect(0, 0, 8, 8, (SkPath::Direction) 0);
675 path.addRect(2, 2, 6, 6, (SkPath::Direction) 1);
676 path.addRect(2, 2, 6, 6, (SkPath::Direction) 1);
677 path.addRect(1, 2, 2, 2, (SkPath::Direction) 0);
678</div>
679
680<div id="testLine69">
681 path.addRect(0, 20, 20, 20, (SkPath::Direction) 0);
682 path.addRect(0, 20, 12, 30, (SkPath::Direction) 0);
683 path.addRect(12, 32, 21, 36, (SkPath::Direction) 0);
684</div>
685
686<div id="testLine70">
687 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
688 path.addRect(0, 24, 12, 12, (SkPath::Direction) 0);
689 path.addRect(12, 32, 21, 36, (SkPath::Direction) 1);
690</div>
691
692<div id="testLine71">
693 path.addRect(0, 0, 20, 20, (SkPath::Direction) 0);
694 path.addRect(12, 0, 24, 24, (SkPath::Direction) 0);
695 path.addRect(12, 32, 21, 36, (SkPath::Direction) 0);
696</div>
697
caryclark@google.com200c2112012-08-03 15:05:04 +0000698<div id="testLine72">
699 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
700 path.addRect(10, 40, 30, 30, (SkPath::Direction) 0);
701 path.addRect(6, 20, 18, 30, (SkPath::Direction) 0);
702</div>
703
704<div id="testLine73">
705 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
706 path.addRect(0, 40, 20, 20, (SkPath::Direction) 0);
707 path.addRect(0, 20, 12, 30, (SkPath::Direction) 0);
708 path.addRect(0, 0, 9, 9, (SkPath::Direction) 1);
709</div>
710
caryclark@google.com0c803d02012-08-06 11:15:47 +0000711<div id="testLine74">
712 path.addRect(20, 30, 40, 40, (SkPath::Direction) 0);
713 path.addRect(24, 20, 36, 30, (SkPath::Direction) 1);
714 path.addRect(32, 24, 36, 41, (SkPath::Direction) 1);
715</div>
716
caryclark@google.com2ddff932012-08-07 21:25:27 +0000717<div id="testLine75">
718 path.addRect(0, 0, 60, 60, (SkPath::Direction) 0);
719 path.addRect(10, 0, 30, 30, (SkPath::Direction) 1);
720 path.addRect(18, 0, 30, 30, (SkPath::Direction) 1);
721 path.addRect(12, 0, 21, 21, (SkPath::Direction) 1);
722</div>
723
724<div id="testLine76">
725 path.addRect(36, 0, 66, 60, (SkPath::Direction) 0);
726 path.addRect(10, 20, 40, 30, (SkPath::Direction) 0);
727 path.addRect(24, 20, 36, 30, (SkPath::Direction) 1);
728 path.addRect(32, 6, 36, 41, (SkPath::Direction) 1);
729</div>
730
731<div id="testLine77">
732 path.addRect(20, 0, 40, 40, (SkPath::Direction) 0);
733 path.addRect(24, 6, 36, 36, (SkPath::Direction) 1);
734 path.addRect(24, 32, 33, 36, (SkPath::Direction) 1);
735</div>
736
737<div id="testLine78">
738 path.addRect(0, 0, 30, 60, (SkPath::Direction) 0);
739 path.addRect(10, 20, 30, 30, (SkPath::Direction) 1);
740 path.addRect(18, 20, 30, 30, (SkPath::Direction) 1);
741 path.addRect(32, 0, 36, 41, (SkPath::Direction) 1);
742</div>
743
744<div id="testLine79">
745 path.addRect(0, 36, 60, 30, (SkPath::Direction) 0);
746 path.addRect(10, 30, 40, 30, (SkPath::Direction) 0);
747 path.addRect(0, 20, 12, 30, (SkPath::Direction) 1);
748 path.addRect(0, 32, 9, 36, (SkPath::Direction) 1);
749</div>
750
caryclark@google.com59823f72012-08-09 18:17:47 +0000751<div id="testDegenerate1">
752 path.moveTo(0, 0);
753 path.lineTo(0, 0);
754 path.lineTo(2, 0);
755 path.close();
756 path.moveTo(0, 0);
757 path.lineTo(1, 0);
758 path.lineTo(2, 0);
759 path.close();
760</div>
761
762<div id="testDegenerate2">
763 path.moveTo(0, 0);
764 path.lineTo(0, 0);
765 path.lineTo(0, 0);
766 path.close();
767 path.moveTo(0, 0);
768 path.lineTo(1, 0);
769 path.lineTo(0, 1);
770 path.close();
771</div>
772
773<div id="testDegenerate3">
774 path.moveTo(0, 0);
775 path.lineTo(2, 0);
776 path.lineTo(1, 0);
777 path.close();
778 path.moveTo(0, 0);
779 path.lineTo(0, 0);
780 path.lineTo(3, 0);
781 path.close();
782</div>
783
784<div id="testDegenerate4">
785 path.moveTo(0, 0);
786 path.lineTo(1, 0);
787 path.lineTo(1, 3);
788 path.close();
789 path.moveTo(1, 0);
790 path.lineTo(1, 1);
791 path.lineTo(1, 2);
792 path.close();
793</div>
794
795<div id="testNondegenerate1">
796 path.moveTo(0, 0);
797 path.lineTo(3, 0);
798 path.lineTo(1, 3);
799 path.close();
800 path.moveTo(1, 1);
801 path.lineTo(2, 1);
802 path.lineTo(1, 2);
803 path.close();
804</div>
805
806<div id="testNondegenerate2">
807 path.moveTo(1, 0);
808 path.lineTo(0, 1);
809 path.lineTo(1, 1);
810 path.close();
811 path.moveTo(0, 2);
812 path.lineTo(0, 3);
813 path.lineTo(1, 2);
814 path.close();
815</div>
816
817<div id="testNondegenerate3">
818 path.moveTo(0, 0);
819 path.lineTo(1, 0);
820 path.lineTo(2, 1);
821 path.close();
822 path.moveTo(0, 1);
823 path.lineTo(1, 1);
824 path.lineTo(0, 2);
825 path.close();
826</div>
827
828<div id="testNondegenerate4">
829 path.moveTo(1, 0);
830 path.lineTo(0, 1);
831 path.lineTo(1, 2);
832 path.close();
833 path.moveTo(0, 2);
834 path.lineTo(0, 3);
835 path.lineTo(1, 3);
836 path.close();
837</div>
838
839<div id="testQuadralateral5">
840 path.moveTo(0, 0);
841 path.lineTo(0, 0);
842 path.lineTo(1, 0);
843 path.lineTo(1, 1);
844 path.close();
845 path.moveTo(0, 0);
846 path.lineTo(2, 2);
847 path.lineTo(3, 2);
848 path.lineTo(3, 3);
849 path.close();
850</div>
851
852<div id="testQuadralateral6">
853 path.moveTo(0, 0);
854 path.lineTo(0, 0);
855 path.lineTo(1, 0);
856 path.lineTo(1, 1);
857 path.close();
858 path.moveTo(1, 0);
859 path.lineTo(2, 0);
860 path.lineTo(0, 2);
861 path.lineTo(2, 2);
862 path.close();
863</div>
864
caryclark@google.com24bec792012-08-20 12:43:57 +0000865<div id="testFauxQuadralateral6">
866 path.moveTo(0, 0);
867 path.lineTo(1, 0);
868 path.lineTo(1, 1);
869 path.close();
870 path.moveTo(1, 0);
871 path.lineTo(2, 0);
872 path.lineTo(1.333, 0.667);
873 path.close();
874 path.moveTo(1.333, 0.667);
875 path.lineTo(0, 2);
876 path.lineTo(2, 2);
877 path.close();
878</div>
879
880<div id="testFauxQuadralateral6a">
881 path.moveTo(0, 0);
882 path.lineTo(3, 0);
883 path.lineTo(3, 3);
884 path.close();
885 path.moveTo(3, 0);
886 path.lineTo(6, 0);
887 path.lineTo(4, 2);
888 path.close();
889 path.moveTo(4, 2);
890 path.lineTo(0, 6);
891 path.lineTo(6, 6);
892 path.close();
893</div>
894
895<div id="testFauxQuadralateral6b">
896 path.moveTo(0, 0);
897 path.lineTo(3, 0);
898 path.lineTo(3, 3);
899 path.close();
900 path.moveTo(3, 0);
901 path.lineTo(6, 0);
902 path.lineTo(4, 2);
903 path.close();
904 path.moveTo(4, 2);
905 path.lineTo(6, 6);
906 path.lineTo(0, 6);
907 path.close();
908</div>
909
910<div id="testFauxQuadralateral6c">
911 path.moveTo(0, 0);
912 path.lineTo(3, 3);
913 path.lineTo(3, 0);
914 path.close();
915 path.moveTo(3, 0);
916 path.lineTo(6, 0);
917 path.lineTo(4, 2);
918 path.close();
919 path.moveTo(4, 2);
920 path.lineTo(0, 6);
921 path.lineTo(6, 6);
922 path.close();
923</div>
924
925<div id="testFauxQuadralateral6d">
926 path.moveTo(0, 0);
927 path.lineTo(3, 3);
928 path.lineTo(3, 0);
929 path.close();
930 path.moveTo(3, 0);
931 path.lineTo(6, 0);
932 path.lineTo(4, 2);
933 path.close();
934 path.moveTo(4, 2);
935 path.lineTo(6, 6);
936 path.lineTo(0, 6);
937</div>
938
939<div id="testQuadralateral6a">
940 path.moveTo(0, 0);
941 path.lineTo(0, 0);
942 path.lineTo(3, 0);
943 path.lineTo(3, 3);
944 path.close();
945 path.moveTo(3, 0);
946 path.lineTo(6, 0);
947 path.lineTo(0, 6);
948 path.lineTo(6, 6);
949</div>
950
951<div id="testQuadralateral7">
952 path.moveTo(0, 0);
953 path.lineTo(0, 0);
954 path.lineTo(1, 0);
955 path.lineTo(2, 1);
956 path.close();
957 path.moveTo(1, 0);
958 path.lineTo(1, 1);
959 path.lineTo(2, 2);
960 path.lineTo(1, 3);
961 path.close();
962</div>
963
964<div id="testQuadralateral8">
965 path.moveTo(0, 0);
966 path.lineTo(3, 1);
967 path.lineTo(1, 3);
968 path.lineTo(3, 3);
969 path.close();
970 path.moveTo(2, 1);
971 path.lineTo(0, 2);
972 path.lineTo(3, 2);
973 path.lineTo(2, 3);
974 path.close();
975</div>
976
977<div id="testQuadralateral9">
978 path.moveTo(0, 0);
979 path.lineTo(1, 0);
980 path.lineTo(1, 2);
981 path.lineTo(2, 2);
982 path.close();
983 path.moveTo(1, 1);
984 path.lineTo(2, 1);
985 path.lineTo(1, 3);
986 path.lineTo(2, 3);
987 path.close();
988</div>
989
990<div id="testLine1x">
991 path.setFillType(SkPath::kEvenOdd_FillType);
992 path.addRect(0, 0, 12, 12, (SkPath::Direction) 0);
993 path.addRect(4, 0, 13, 13, (SkPath::Direction) 0);
994</div>
995
996<div id="testLine2x">
997 path.setFillType(SkPath::kEvenOdd_FillType);
998 path.addRect(0, 20, 20, 20, (SkPath::Direction) 0);
999 path.addRect(0, 20, 12, 30, (SkPath::Direction) 0);
1000 path.addRect(12, 0, 21, 21, (SkPath::Direction) 1);
1001</div>
1002
1003<div id="testLine3x">
1004 path.setFillType(SkPath::kEvenOdd_FillType);
1005 path.addRect(10, 30, 30, 30, (SkPath::Direction) 0);
1006 path.addRect(18, 20, 30, 30, (SkPath::Direction) 1);
1007 path.addRect(0, 32, 9, 36, (SkPath::Direction) 1);
1008</div>
1009
1010<div id="testLine4x">
1011 path.setFillType(SkPath::kEvenOdd_FillType);
1012 path.addRect(10, 30, 30, 30, (SkPath::Direction) 0);
1013 path.addRect(24, 20, 36, 30, (SkPath::Direction) 1);
1014 path.addRect(0, 32, 9, 36, (SkPath::Direction) 1);
1015</div>
1016
1017<div id="testQuadratic1">
1018 path.moveTo(0, 0);
1019 path.quadTo(0, 0, 0, 0);
1020 path.lineTo(1, 0);
1021 path.close();
1022 path.moveTo(0, 0);
1023 path.lineTo(0, 0);
1024 path.quadTo(0, 0, 0, 0);
1025 path.close();
1026</div>
1027
1028<div id="testQuadratic2">
1029 path.moveTo(0, 0);
1030 path.quadTo(0, 0, 0, 0);
1031 path.lineTo(3, 0);
1032 path.close();
1033 path.moveTo(0, 0);
1034 path.lineTo(0, 0);
1035 path.quadTo(1, 0, 0, 1);
1036 path.close();
1037</div>
1038
caryclark@google.com03f97062012-08-21 13:13:52 +00001039<div id="testQuadratic3">
1040 path.moveTo(0, 0);
1041 path.quadTo(0, 0, 1, 0);
1042 path.lineTo(0, 2);
1043 path.close();
1044 path.moveTo(0, 0);
1045 path.lineTo(0, 0);
1046 path.quadTo(1, 0, 0, 1);
1047 path.close();
1048</div>
1049
caryclark@google.comc899ad92012-08-23 15:24:42 +00001050<div id="testQuadratic4x">
1051 path.setFillType(SkPath::kEvenOdd_FillType);
1052 path.moveTo(0, 0);
1053 path.quadTo(0, 0, 1, 0);
1054 path.lineTo(0, 2);
1055 path.close();
1056 path.moveTo(0, 0);
1057 path.lineTo(0, 0);
1058 path.quadTo(1, 0, 0, 2);
1059 path.close();
1060</div>
1061
1062<div id="testQuadratic5">
1063 path.moveTo(0, 0);
1064 path.quadTo(0, 0, 0, 0);
1065 path.lineTo(0, 1);
1066 path.close();
1067 path.moveTo(0, 0);
1068 path.lineTo(1, 0);
1069 path.quadTo(0, 1, 0, 2);
1070 path.close();
1071</div>
1072
1073<div id="testQuadratic6">
1074 path.moveTo(0, 0);
1075 path.quadTo(0, 0, 1, 0);
1076 path.lineTo(2, 1);
1077 path.close();
1078 path.moveTo(0, 0);
1079 path.lineTo(0, 0);
1080 path.quadTo(2, 0, 0, 1);
1081 path.close();
1082</div>
1083
1084<div id="testQuadratic7">
1085 path.moveTo(0, 0);
1086 path.quadTo(0, 0, 1, 0);
1087 path.lineTo(3, 1);
1088 path.close();
1089 path.moveTo(0, 0);
1090 path.lineTo(0, 0);
1091 path.quadTo(3, 0, 1, 2);
1092 path.close();
1093</div>
1094
1095<div id="testQuadratic8">
1096 path.moveTo(0, 0);
1097 path.quadTo(0, 0, 1, 0);
1098 path.lineTo(0, 2);
1099 path.close();
1100 path.moveTo(0, 0);
1101 path.lineTo(1, 0);
1102 path.quadTo(0, 1, 1, 2);
1103 path.close();
1104</div>
1105
1106<div id="testQuadratic9">
1107 path.moveTo(0, 0);
1108 path.quadTo(0, 0, 1, 0);
1109 path.lineTo(3, 1);
1110 path.close();
1111 path.moveTo(0, 0);
1112 path.lineTo(1, 0);
1113 path.quadTo(1, 2, 3, 2);
1114 path.close();
1115</div>
1116
1117<div id="testQuadratic9a">
1118 path.moveTo(1.08000004, 0.720000029);
1119 path.lineTo(0, 0);
1120 path.lineTo(1, 0);
1121 path.lineTo(3, 1);
1122 path.lineTo(1.01568651, 0.338562161);
1123 path.quadTo(1.03542483, 0.541699469, 1.08000004, 0.720000029);
1124 path.close();
1125 path.moveTo(1.08000004, 0.720000029);
1126 path.lineTo(3, 2);
1127 path.quadTo(1.39999998, 2, 1.08000004, 0.720000029);
1128 path.close();
1129
1130</div>
1131
1132<div id="testQuadratic10a">
1133path.moveTo(15.5, 15.5);
1134path.lineTo(46.5, 15.5);
1135path.quadTo(0, 31, 0, 46.5);
1136path.lineTo(15.5, 15.5);
1137path.close();
1138</div>
1139
1140<div id="testQuadratic10b">
1141path.moveTo(5.16666698, 36.1666641);
1142path.lineTo(15.5, 15.5);
1143path.lineTo(46.5, 15.5);
1144path.quadTo(15.5, 25.8333321, 5.16666698, 36.1666641);
1145path.close();
1146path.moveTo(5.16666698, 36.1666641);
1147path.lineTo(0, 46.5);
1148path.quadTo(0, 41.3333359, 5.16666698, 36.1666641);
1149path.close();
1150</div>
1151
1152<div id="testQuadratic11a">
1153path.moveTo(0, 0);
1154path.lineTo(15.5, 31);
1155path.lineTo(0, 0);
1156path.close();
1157path.moveTo(0, 15.5);
1158path.lineTo(15.5, 15.5);
1159path.quadTo(15.5, 15.5, 46.5, 31);
1160path.lineTo(0, 15.5);
1161path.close();
1162</div>
1163
1164<div id="testQuadratic11b">
1165path.moveTo(9.30000019, 18.6000004);
1166path.lineTo(0, 15.5);
1167path.lineTo(7.75, 15.5);
1168path.lineTo(15.5, 15.5);
1169path.lineTo(46.5, 31);
1170path.lineTo(9.30000019, 18.6000004);
1171path.close();
1172</div>
1173
1174<div id="testQuadratic12">
1175 path.moveTo(0, 0);
1176 path.quadTo(0, 0, 0, 0);
1177 path.lineTo(1, 3);
1178 path.close();
1179 path.moveTo(1, 0);
1180 path.lineTo(0, 1);
1181 path.quadTo(1, 1, 0, 3);
1182 path.close();
1183</div>
1184
1185<div id="testQuadratic13a">
1186path.moveTo(0, 0);
1187path.quadTo(0, 0, 15.5, 0);
1188path.lineTo(15.5, 31);
1189path.lineTo(0, 0);
1190path.close();
1191path.moveTo(0, 0);
1192path.quadTo(15.5, 46.5, 46.5, 46.5);
1193path.lineTo(0, 0);
1194path.close();
1195</div>
1196
1197<div id="testQuadratic13b">
1198path.moveTo(14.8800001, 29.7600002);
1199path.quadTo(6.20000029, 18.6000004, 0, 0);
1200path.lineTo(14.8800001, 29.7600002);
1201path.close();
1202path.moveTo(15.5, 30.5437222);
1203path.lineTo(15.5, 31);
1204path.lineTo(14.8800001, 29.7600002);
1205path.quadTo(15.1884346, 30.156559, 15.5, 30.5437222);
1206path.close();
1207path.moveTo(15.5, 15.5);
1208path.lineTo(0, 0);
1209path.lineTo(15.5, 0);
1210path.lineTo(15.5, 15.5);
1211path.close();
1212path.moveTo(15.5, 30.5437222);
1213path.lineTo(15.5, 15.5);
1214path.lineTo(46.5, 46.5);
1215path.quadTo(28.34062, 46.5, 15.5, 30.5437222);
1216path.close();
1217</div>
1218
1219<div id="testQuadratic14">
1220 path.moveTo(0, 0);
1221 path.quadTo(0, 0, 1, 0);
1222 path.lineTo(3, 2);
1223 path.close();
1224 path.moveTo(0, 0);
1225 path.lineTo(1, 0);
1226 path.quadTo(3, 2, 3, 3);
1227 path.close();
1228</div>
1229
caryclark@google.com3350c3c2012-08-24 15:24:36 +00001230<div id="testQuadratic15">
1231 path.moveTo(0, 0);
1232 path.quadTo(0, 0, 1, 0);
1233 path.lineTo(1, 3);
1234 path.close();
1235 path.moveTo(1, 0);
1236 path.lineTo(0, 1);
1237 path.quadTo(1, 1, 0, 3);
1238 path.close();
1239</div>
1240
1241<div id="testQuadratic16a">
1242path.moveTo(0, 0);
1243path.quadTo(0, 0, 31, 0);
1244path.lineTo(46.5, 31);
1245path.lineTo(0, 0);
1246path.close();
1247path.moveTo(46.5, 15.5);
1248path.lineTo(0, 31);
1249path.quadTo(0, 31, 15.5, 31);
1250path.lineTo(46.5, 15.5);
1251path.close();
1252</div>
1253
1254<div id="testQuadratic16b">
1255path.moveTo(31, 20.6666679);
1256path.lineTo(0, 0);
1257path.lineTo(31, 0);
1258path.lineTo(39.8571434, 17.7142868);
1259path.lineTo(31, 20.6666679);
1260path.close();
1261path.moveTo(33.214283, 22.1428585);
1262path.lineTo(15.5, 31);
1263path.lineTo(0, 31);
1264path.lineTo(31, 20.6666679);
1265path.lineTo(33.214283, 22.1428585);
1266path.close();
1267path.moveTo(40.2999992, 18.6000004);
1268path.lineTo(46.5, 31);
1269path.lineTo(33.214283, 22.1428585);
1270path.lineTo(40.2999992, 18.6000004);
1271path.close();
1272path.moveTo(39.8571434, 17.7142868);
1273path.lineTo(46.5, 15.5);
1274path.lineTo(40.2999992, 18.6000004);
1275path.lineTo(39.8571434, 17.7142868);
1276path.close();
1277</div>
1278
1279<div id="testQuadratic17x">
1280 path.setFillType(SkPath::kEvenOdd_FillType);
1281 path.moveTo(0, 0);
1282 path.quadTo(0, 0, 3, 1);
1283 path.lineTo(0, 2);
1284 path.close();
1285 path.moveTo(0, 0);
1286 path.lineTo(1, 0);
1287 path.quadTo(3, 1, 0, 2);
1288 path.close();
1289</div>
1290
1291<div id="testQuadratic18">
1292 path.moveTo(0, 0);
1293 path.quadTo(1, 0, 0, 1);
1294 path.lineTo(0, 1);
1295 path.close();
1296 path.moveTo(0, 0);
1297 path.lineTo(0, 0);
1298 path.quadTo(1, 0, 1, 1);
1299 path.close();
1300</div>
1301
caryclark@google.coma7e483d2012-08-28 20:44:43 +00001302<div id="testQuadratic19">
1303 path.moveTo(0, 0);
1304 path.quadTo(1, 0, 0, 1);
1305 path.lineTo(0, 1);
1306 path.close();
1307 path.moveTo(0, 0);
1308 path.lineTo(0, 0);
1309 path.quadTo(2, 0, 0, 1);
1310 path.close();
1311</div>
1312
caryclark@google.com752b60e2012-03-22 21:11:17 +00001313</div>
1314
1315<script type="text/javascript">
1316
1317var testDivs = [
caryclark@google.coma7e483d2012-08-28 20:44:43 +00001318 testQuadratic19,
caryclark@google.com3350c3c2012-08-24 15:24:36 +00001319 testQuadratic18,
1320 testQuadratic17x,
1321 testQuadratic16b,
1322 testQuadratic16a,
1323 testQuadratic15,
caryclark@google.comc899ad92012-08-23 15:24:42 +00001324 testQuadratic14,
1325 testQuadratic13b,
1326 testQuadratic13a,
1327 testQuadratic12,
1328 testQuadratic11b,
1329 testQuadratic11a,
1330 testQuadratic10b,
1331 testQuadratic10a,
1332 testQuadratic9a,
1333 testQuadratic9,
1334 testQuadratic8,
1335 testQuadratic7,
1336 testQuadratic6,
1337 testQuadratic5,
1338 testQuadratic4x,
caryclark@google.com03f97062012-08-21 13:13:52 +00001339 testQuadratic3,
caryclark@google.com24bec792012-08-20 12:43:57 +00001340 testQuadratic2,
1341 testQuadratic1,
1342 testLine4x,
1343 testLine3x,
1344 testLine2x,
1345 testLine1x,
1346 testQuadralateral9,
1347 testQuadralateral8,
1348 testQuadralateral7,
1349 testFauxQuadralateral6d,
1350 testFauxQuadralateral6c,
1351 testFauxQuadralateral6b,
1352 testFauxQuadralateral6a,
1353 testFauxQuadralateral6,
1354 testQuadralateral6a,
caryclark@google.com59823f72012-08-09 18:17:47 +00001355 testQuadralateral6,
1356 testQuadralateral5,
1357 testNondegenerate4,
1358 testNondegenerate3,
1359 testNondegenerate2,
1360 testNondegenerate1,
1361 testDegenerate4,
1362 testDegenerate3,
1363 testDegenerate2,
1364 testDegenerate1,
caryclark@google.com2ddff932012-08-07 21:25:27 +00001365 testLine79,
1366 testLine78,
1367 testLine77,
1368 testLine76,
1369 testLine75,
caryclark@google.com0c803d02012-08-06 11:15:47 +00001370 testLine74,
caryclark@google.com200c2112012-08-03 15:05:04 +00001371 testLine73,
1372 testLine72,
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001373 testLine71,
1374 testLine70,
1375 testLine69,
1376 testLine68f,
1377 testLine68e,
1378 testLine68d,
1379 testLine68c,
1380 testLine68b,
1381 testLine68a,
1382 testLine67,
caryclark@google.com27c449a2012-07-27 18:26:38 +00001383 testLine66,
1384 testLine65,
1385 testLine64,
1386 testLine63,
1387 testLine62,
1388 testLine61,
1389 testLine60,
caryclark@google.comcc905052012-07-25 20:59:42 +00001390 testLine59,
1391 testLine58,
caryclark@google.com18063442012-07-25 12:05:18 +00001392 testLine57,
1393 testLine56,
caryclark@google.come21cb182012-07-23 21:26:31 +00001394 testLine55,
1395 testLine54,
1396 testLine53,
1397 testLine52,
caryclark@google.com47580692012-07-23 12:14:49 +00001398 testLine51,
1399 testLine50,
1400 testLine49,
1401 testLine48,
1402 testLine47,
1403 testLine46,
1404 testLine45,
1405 testLine44,
1406 testLine43,
1407 testLine42,
1408 testLine41,
1409 testLine40,
1410 testLine39,
1411 testLine38,
1412 testLine37,
caryclark@google.com0e08a192012-07-13 21:07:52 +00001413 testLine36,
caryclark@google.com210acaf2012-07-12 21:05:13 +00001414 testLine35,
1415 testLine34,
caryclark@google.com9764cc62012-07-12 19:29:45 +00001416 testLine33,
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001417 testLine32,
1418 testLine31,
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001419 testLine30,
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001420 testLine29,
1421 testLine28,
caryclark@google.com47580692012-07-23 12:14:49 +00001422 testLine24,
caryclark@google.comcc905052012-07-25 20:59:42 +00001423 testLine22,
caryclark@google.com47580692012-07-23 12:14:49 +00001424 testLine19,
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001425 testLine17,
caryclark@google.come21cb182012-07-23 21:26:31 +00001426 testLine13,
1427 testLine12,
caryclark@google.com47580692012-07-23 12:14:49 +00001428 testLine9,
caryclark@google.comcc905052012-07-25 20:59:42 +00001429 testLine7b,
caryclark@google.com47580692012-07-23 12:14:49 +00001430 testLine7,
caryclark@google.com8dcf1142012-07-02 20:27:02 +00001431 testSimplifyQuadratic21,
1432 testSimplifyQuadratic20,
1433 testSimplifyQuadratic19,
caryclark@google.comb45a1b42012-05-18 20:50:33 +00001434 testSimplifyQuadratic18,
caryclark@google.comfa0588f2012-04-26 21:01:06 +00001435 testSimplifyQuadratic17,
1436 testSimplifyQuadratic16,
1437 testSimplifyQuadratic15,
1438 testSimplifyQuadratic14,
1439 testSimplifyQuadratic13,
1440 testSimplifyQuadratic12,
1441 testSimplifyQuadratic11,
1442 testSimplifyQuadratic10,
1443 testSimplifyQuadratic9,
1444 testSimplifyQuadratic8,
1445 testSimplifyQuadratic7,
1446 testSimplifyQuadratic6,
1447 testSimplifyQuadratic5,
1448 testSimplifyQuadratic4,
1449 testSimplifyQuadratic3,
1450 testSimplifyQuadratic2,
1451 testSimplifyQuadratic1,
caryclark@google.com752b60e2012-03-22 21:11:17 +00001452];
1453
1454var scale, columns, rows, xStart, yStart;
1455
1456var ticks = 0.1;
1457var at_x = 13 + 0.5;
1458var at_y = 13 + 0.5;
caryclark@google.com2ddff932012-08-07 21:25:27 +00001459var decimal_places = 0; // make this 3 to show more precision
caryclark@google.com752b60e2012-03-22 21:11:17 +00001460
1461var tests = [];
caryclark@google.com0e08a192012-07-13 21:07:52 +00001462var testTitles = [];
caryclark@google.com752b60e2012-03-22 21:11:17 +00001463var testIndex = 0;
caryclark@google.com24bec792012-08-20 12:43:57 +00001464var hasXor = false;
caryclark@google.com752b60e2012-03-22 21:11:17 +00001465
1466var ctx;
1467
caryclark@google.com0e08a192012-07-13 21:07:52 +00001468function parse(test, title) {
caryclark@google.com752b60e2012-03-22 21:11:17 +00001469 var contours = [];
1470 var contourStrs = test.split("path.close();");
caryclark@google.comd88e0892012-03-27 13:23:51 +00001471 var pattern = /-?\d+\.*\d*/g;
caryclark@google.com24bec792012-08-20 12:43:57 +00001472 hasXor = test.split("kEvenOdd_FillType").length > 1;
caryclark@google.com752b60e2012-03-22 21:11:17 +00001473 for (var c in contourStrs) {
caryclark@google.comfb173422012-04-10 18:28:55 +00001474 var contour = contourStrs[c];
1475 var verbStrs = contour.split("path");
1476 var verbs = [];
1477 for (var v in verbStrs) {
1478 var verbStr = verbStrs[v];
1479 var points = verbStr.match(pattern);
1480 var pts = [];
1481 for (var wd in points) {
1482 var num = parseFloat(points[wd]);
1483 if (isNaN(num)) continue;
1484 pts.push(num);
1485 }
1486 if (pts.length > 0)
1487 verbs.push(pts);
caryclark@google.com752b60e2012-03-22 21:11:17 +00001488 }
caryclark@google.comfa0588f2012-04-26 21:01:06 +00001489 if (verbs.length > 0) {
1490 var lastIndex = verbs.length - 1;
1491 var lastVerb = verbs[lastIndex];
1492 var lastLen = lastVerb.length;
1493 if (verbs[0][0] != lastVerb[lastLen - 2] && verbs[0][1] != lastVerb[lastLen - 1]) {
1494 var lastPts = [];
1495 lastPts.push(verbs[0][0]);
1496 lastPts.push(verbs[0][1]);
1497 verbs.push(lastPts);
1498 }
caryclark@google.comfb173422012-04-10 18:28:55 +00001499 contours.push(verbs);
caryclark@google.comfa0588f2012-04-26 21:01:06 +00001500 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001501 }
caryclark@google.com0e08a192012-07-13 21:07:52 +00001502 if (contours.length > 0) {
caryclark@google.comfb173422012-04-10 18:28:55 +00001503 tests.push(contours);
caryclark@google.com0e08a192012-07-13 21:07:52 +00001504 testTitles.push(title);
1505 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001506}
1507
caryclark@google.com0e08a192012-07-13 21:07:52 +00001508function parseRect(test, title) {
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001509 var contours = [];
1510 var rectStrs = test.split("path.addRect");
1511 var pattern = /-?\d+\.*\d*/g;
caryclark@google.com24bec792012-08-20 12:43:57 +00001512 hasXor = test.split("kEvenOdd_FillType").length > 1;
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001513 for (var r in rectStrs) {
1514 var rect = rectStrs[r];
1515 var sideStrs = rect.match(pattern);
1516 var sides = [];
1517 for (var wd in sideStrs) {
1518 var num = parseFloat(sideStrs[wd]);
1519 if (isNaN(num)) continue;
1520 sides.push(num);
1521 }
1522 if (sides.length == 0)
1523 continue;
1524 var verbs = [];
1525 var topLeft = [];
1526 topLeft.push(sides[0]); topLeft.push(sides[1]);
1527 var topRight = [];
1528 topRight.push(sides[2]); topRight.push(sides[1]);
1529 var botLeft = [];
1530 botLeft.push(sides[0]); botLeft.push(sides[3]);
1531 var botRight = [];
1532 botRight.push(sides[2]); botRight.push(sides[3]);
1533 verbs.push(topLeft);
1534 if (sides[4] == 0) {
1535 verbs.push(topRight);
1536 verbs.push(botRight);
1537 verbs.push(botLeft);
1538 } else {
1539 verbs.push(botLeft);
1540 verbs.push(botRight);
1541 verbs.push(topRight);
1542 }
1543 verbs.push(topLeft);
1544 contours.push(verbs);
1545 }
caryclark@google.com0e08a192012-07-13 21:07:52 +00001546 if (contours.length > 0) {
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001547 tests.push(contours);
caryclark@google.com0e08a192012-07-13 21:07:52 +00001548 testTitles.push(title);
1549 }
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001550}
1551
caryclark@google.com752b60e2012-03-22 21:11:17 +00001552function init(test) {
1553 var canvas = document.getElementById('canvas');
1554 if (!canvas.getContext) return;
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001555 canvas.width = window.innerWidth - at_x;
1556 canvas.height = window.innerHeight - at_y;
caryclark@google.com752b60e2012-03-22 21:11:17 +00001557 ctx = canvas.getContext('2d');
1558 var xmin = Infinity;
1559 var xmax = -Infinity;
1560 var ymin = Infinity;
1561 var ymax = -Infinity;
caryclark@google.comfb173422012-04-10 18:28:55 +00001562 for (var contours in test) {
1563 var contour = test[contours];
1564 for (var verbs in contour) {
1565 var verb = contour[verbs];
1566 var last = verb.length;
caryclark@google.comb45a1b42012-05-18 20:50:33 +00001567 for (var idx = 0; idx < last; idx += 2) {
1568 xmin = Math.min(xmin, verb[idx]);
1569 xmax = Math.max(xmax, verb[idx]);
1570 ymin = Math.min(ymin, verb[idx + 1]);
1571 ymax = Math.max(ymax, verb[idx + 1]);
1572 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001573 }
1574 }
1575 var subscale = 1;
1576 while ((xmax - xmin) * subscale < 0.1 && (ymax - ymin) * subscale < 0.1) {
1577 subscale *= 10;
1578 }
1579 columns = Math.ceil(xmax) - Math.floor(xmin) + 1;
1580 rows = Math.ceil(ymax) - Math.floor(ymin) + 1;
1581 xStart = Math.floor(xmin);
1582 yStart = Math.floor(ymin);
1583 var hscale = ctx.canvas.width / columns / ticks;
1584 var vscale = ctx.canvas.height / rows / ticks;
1585 scale = Math.floor(Math.min(hscale, vscale)) * subscale;
1586}
1587
1588function drawPoint(px, py, xoffset, yoffset, unit) {
caryclark@google.com2ddff932012-08-07 21:25:27 +00001589 var label = px.toFixed(decimal_places) + ", " + py.toFixed(decimal_places);
caryclark@google.com752b60e2012-03-22 21:11:17 +00001590 var _px = px * unit + xoffset;
1591 var _py = py * unit + yoffset;
1592 ctx.beginPath();
1593 ctx.arc(_px, _py, 3, 0, Math.PI*2, true);
1594 ctx.closePath();
1595 ctx.fill();
1596 ctx.fillText(label, _px + 5, _py);
1597}
1598
caryclark@google.com0e08a192012-07-13 21:07:52 +00001599function draw(test, title, _at_x, _at_y, scale) {
1600 ctx.fillStyle = "rgba(0,0,0, 0.1)";
1601 ctx.font = "normal 50px Arial";
1602 ctx.fillText(title, 50, 50);
1603 ctx.font = "normal 10px Arial";
1604
caryclark@google.com752b60e2012-03-22 21:11:17 +00001605 var unit = scale * ticks;
1606 ctx.lineWidth = 1;
1607 var i;
1608 for (i = 0; i <= rows * ticks; ++i) {
1609 ctx.strokeStyle = (i % ticks) != 0 ? "rgb(160,160,160)" : "black";
1610 ctx.beginPath();
1611 ctx.moveTo(_at_x + 0, _at_y + i * scale);
1612 ctx.lineTo(_at_x + unit * columns, _at_y + i * scale);
1613 ctx.stroke();
1614 }
1615 for (i = 0; i <= columns * ticks; ++i) {
1616 ctx.strokeStyle = (i % ticks) != 0 ? "rgb(160,160,160)" : "black";
1617 ctx.beginPath();
1618 ctx.moveTo(_at_x + i * scale, _at_y + 0);
1619 ctx.lineTo(_at_x + i * scale, _at_y + unit * rows);
1620 ctx.stroke();
1621 }
1622
1623 var xoffset = xStart * -unit + _at_x;
1624 var yoffset = yStart * -unit + _at_y;
1625
1626 ctx.fillStyle = "rgb(40,80,60)"
1627 for (i = 0; i <= columns; i += (1 / ticks))
1628 {
1629 num = (xoffset - _at_x) / -unit + i;
1630 ctx.fillText(num.toFixed(0), i * unit + _at_y - 5, 10);
1631 }
1632 for (i = 0; i <= rows; i += (1 / ticks))
1633 {
1634 num = (yoffset - _at_x) / -unit + i;
1635 ctx.fillText(num.toFixed(0), 0, i * unit + _at_y + 0);
1636 }
1637 ctx.strokeStyle = "red";
caryclark@google.comfb173422012-04-10 18:28:55 +00001638 var contours, verbs, pts;
caryclark@google.com8dcf1142012-07-02 20:27:02 +00001639 ctx.beginPath();
caryclark@google.comfb173422012-04-10 18:28:55 +00001640 for (contours in test) {
1641 var contour = test[contours];
1642 if (contours == 2) ctx.strokeStyle = "blue";
caryclark@google.comfb173422012-04-10 18:28:55 +00001643 var first = true;
1644 for (verbs in contour) {
1645 var verb = contour[verbs];
1646 switch (verb.length) {
1647 case 2:
1648 if (first) {
1649 ctx.moveTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit);
1650 first = false;
1651 } else
1652 ctx.lineTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit);
1653 break;
1654 case 4:
1655 ctx.quadraticCurveTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit,
1656 xoffset + verb[2] * unit, yoffset + verb[3] * unit);
1657 break;
1658 case 6:
1659 ctx.bezierCurveTo(xoffset + verb[0] * unit, yoffset + verb[1] * unit,
1660 xoffset + verb[2] * unit, yoffset + verb[3] * unit,
1661 xoffset + verb[4] * unit, yoffset + verb[5] * unit);
1662 break;
1663 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001664 }
caryclark@google.com8dcf1142012-07-02 20:27:02 +00001665 ctx.closePath();
caryclark@google.com752b60e2012-03-22 21:11:17 +00001666 }
caryclark@google.com24bec792012-08-20 12:43:57 +00001667 if (hasXor) {
1668 ctx.fillType=xor; // how is this done?
1669 }
caryclark@google.com8dcf1142012-07-02 20:27:02 +00001670 ctx.stroke();
1671 ctx.fillStyle="rgba(192,192,255, 0.3)";
1672 ctx.fill();
caryclark@google.com752b60e2012-03-22 21:11:17 +00001673
1674 ctx.fillStyle="blue";
caryclark@google.comfb173422012-04-10 18:28:55 +00001675 for (contours in test) {
1676 var contour = test[contours];
1677 for (verbs in contour) {
1678 var verb = contour[verbs];
1679 for (i = 0; i < verb.length; i += 2) {
1680 x = verb[i];
1681 y = verb[i + 1];
1682 drawPoint(x, y, xoffset, yoffset, unit);
1683 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001684 }
1685 }
1686}
1687
1688var mouseX = Infinity, mouseY;
1689
1690function calcXY() {
1691 var e = window.event;
1692 var tgt = e.target || e.srcElement;
1693 var left = tgt.offsetLeft;
1694 var top = tgt.offsetTop;
1695 var unit = scale * ticks;
1696 mouseX = (e.clientX - left - Math.ceil(at_x) + 1) / unit + xStart;
1697 mouseY = (e.clientY - top - Math.ceil(at_y)) / unit + yStart;
1698}
1699
1700function handleMouseOver() {
1701 calcXY();
1702 var num = mouseX.toFixed(3) + ", " + mouseY.toFixed(3);
1703 ctx.beginPath();
1704 ctx.rect(300,100,200,10);
1705 ctx.fillStyle="white";
1706 ctx.fill();
1707 ctx.fillStyle="black";
1708 ctx.fillText(num, 300, 108);
1709}
1710
1711function handleMouseClick() {
1712 calcXY();
1713// drawInset();
1714}
1715
1716function drawTop() {
1717 init(tests[testIndex]);
1718 redraw();
1719}
1720
1721function redraw() {
1722 ctx.beginPath();
1723 ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);
1724 ctx.fillStyle="white";
1725 ctx.fill();
caryclark@google.com0e08a192012-07-13 21:07:52 +00001726 draw(tests[testIndex], testTitles[testIndex], at_x, at_y, scale);
caryclark@google.com752b60e2012-03-22 21:11:17 +00001727// if (insetScale != scale && mouseX != Infinity)
1728// drawInset();
1729}
1730
1731function doKeyPress(evt) {
1732 var char = String.fromCharCode(evt.charCode);
1733 switch (char) {
1734 case 'N':
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001735 testIndex += 9;
caryclark@google.com752b60e2012-03-22 21:11:17 +00001736 case 'n':
1737 if (++testIndex >= tests.length)
1738 testIndex = 0;
caryclark@google.comfa0588f2012-04-26 21:01:06 +00001739 mouseX = Infinity;
1740 drawTop();
1741 break;
1742 case 'P':
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001743 testIndex -= 9;
caryclark@google.comfa0588f2012-04-26 21:01:06 +00001744 case 'p':
1745 if (--testIndex < 0)
1746 testIndex = tests.length - 1;
caryclark@google.com752b60e2012-03-22 21:11:17 +00001747 mouseX = Infinity;
1748 drawTop();
1749 break;
1750 case 'T':
1751 case 't':
caryclark@google.com752b60e2012-03-22 21:11:17 +00001752 break;
1753 case '-':
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001754 drawTop();
caryclark@google.com752b60e2012-03-22 21:11:17 +00001755 break;
1756 case '=':
1757 case '+':
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001758 drawTop();
caryclark@google.com752b60e2012-03-22 21:11:17 +00001759 break;
1760 }
1761}
1762
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001763function doResize(evt) {
1764 drawTop();
1765}
1766
caryclark@google.com752b60e2012-03-22 21:11:17 +00001767function start() {
1768 for (i = 0; i < testDivs.length; ++i) {
caryclark@google.com0e08a192012-07-13 21:07:52 +00001769 var title = testDivs[i].id.toString();
caryclark@google.com752b60e2012-03-22 21:11:17 +00001770 var str = testDivs[i].firstChild.data;
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001771 if (str.split("addRect").length > 1) {
caryclark@google.com0e08a192012-07-13 21:07:52 +00001772 parseRect(str, title);
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001773 } else {
caryclark@google.com0e08a192012-07-13 21:07:52 +00001774 parse(str, title);
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001775 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001776 }
1777 drawTop();
1778 window.addEventListener('keypress', doKeyPress, true);
caryclark@google.com534aa5b2012-08-02 20:08:21 +00001779 window.onresize = function() {
1780 drawTop();
1781 }
caryclark@google.com752b60e2012-03-22 21:11:17 +00001782}
1783
1784</script>
1785</head>
1786
1787<body onLoad="start();">
caryclark@google.comfa4a6e92012-07-11 17:52:32 +00001788<canvas id="canvas" width="750" height="500"
caryclark@google.com752b60e2012-03-22 21:11:17 +00001789 onmousemove="handleMouseOver()"
1790 onclick="handleMouseClick()"
1791 ></canvas >
1792</body>
1793</html>