Some code cleanup for previous commits, and shorten boolean tests a bit.

This commit is contained in:
Jürg Lehni 2016-07-20 16:32:21 +02:00
parent f988445dad
commit a683486ff5
2 changed files with 96 additions and 400 deletions

View file

@ -99,28 +99,12 @@ PathItem.inject(new function() {
// intersection, path2 is null and getIntersections() handles it.
var crossings = divideLocations(
CurveLocation.expand(_path1.getCrossings(_path2))),
segments = [],
// Aggregate of all curves in both operands.
curves = [],
paths1 = _path1._children || [_path1],
paths2 = _path2 && (_path2._children || [_path2]),
segments = [],
curves = [],
paths;
function collect(paths) {
for (var i = 0, l = paths.length; i < l; i++) {
var path = paths[i];
segments.push.apply(segments, path._segments);
curves.push.apply(curves, path.getCurves());
// Keep track if there are valid intersections other than
// overlaps in each path.
path._overlapsOnly = path._validOverlapsOnly = true;
}
}
function contains(paths1, paths2) {
return false;
}
// When there are no crossings, and the two paths are not contained
// within each other, the result can be known ahead of tracePaths(),
// largely simplifying the processing required:
@ -142,6 +126,7 @@ PathItem.inject(new function() {
}
}
if (ok) {
// See #1113 for a description of how to deal with operators:
paths = operator.unite || operator.exclude ? [_path1, _path2]
: operator.subtract ? [_path1]
// No result, but let's return an empty path to keep
@ -150,8 +135,20 @@ PathItem.inject(new function() {
: null;
}
}
function collect(paths) {
for (var i = 0, l = paths.length; i < l; i++) {
var path = paths[i];
segments.push.apply(segments, path._segments);
curves.push.apply(curves, path.getCurves());
// Keep track if there are valid intersections other than
// overlaps in each path.
path._overlapsOnly = path._validOverlapsOnly = true;
}
}
if (!paths) {
// Collect all segments and monotonic curves
// Collect all segments and curves of both involved operands.
collect(paths1);
if (paths2)
collect(paths2);

View file

@ -146,25 +146,25 @@ test('#784', function() {
test('#784#issuecomment-144653463', function() {
var path1 = new Path({
segments: [
[400, 300, 0, 0, 0, 0],
[396.4240965757225, 386.760212367686, 0, 0, 0, 0],
[363.8902430603039, 336.3464406833805, 0, 0, 0, 0]
[400, 300],
[396.4240965757225, 386.760212367686],
[363.8902430603039, 336.3464406833805]
],
closed: true
});
var path2 = new Path({
segments: [
[380.15716053320796, 361.5533174872367, 0, 0, 0, 0],
[368.9579765078272, 389.3845783631412, 0, 0, 0, 0],
[352.11749924000907, 372.22000125020173, 0, 0, 0, 0]
[380.15716053320796, 361.5533174872367],
[368.9579765078272, 389.3845783631412],
[352.11749924000907, 372.22000125020173]
],
closed: true
});
var path3 = new Path({
segments: [
[381.9248139754118, 360.88087710036456, 0, 0, 0, 0],
[352.11749931845384, 372.22000145641056, 0, 0, 0, 0],
[353.8723170322086, 346.9400510828104, 0, 0, 0, 0]
[381.9248139754118, 360.88087710036456],
[352.11749931845384, 372.22000145641056],
[353.8723170322086, 346.9400510828104]
],
closed: true
});
@ -175,10 +175,10 @@ test('#784#issuecomment-144653463', function() {
test('#784#issuecomment-144993215', function() {
var path1 = new Path({
segments: [
[428.65986693122585, 123.24312916360232, 0, 0, 0, 0],
[428.65986693122585, 123.24312916360232],
[448.9732353341095, 290.23336023178985, -1.297313778199964, -0.24666929481787747, -0.06896642337790126, -0.004714867204086204],
[448.9732339473677, 290.2333601369859, 0.22704183013848933, 0.04316939284507271, 0.24127512029406262, 0.016494695478172616],
[375.34013306877415, 150.7568708363977, 0, 0, 0, 0]
[375.34013306877415, 150.7568708363977]
],
closed: true
});
@ -246,7 +246,7 @@ test('#854', function() {
test('#859', function() {
var p1 = new Path({
segments: [
[230, 360, 0, 0, 0, 0],
[230, 360],
[326.04999999999995, 361.95, 0, 0, 7.100000000000023, 5.300000000000011],
[347.74999999999994, 377.3, -7.300000000000011, -5, 0, 0],
[260, 400],
@ -268,12 +268,12 @@ test('#859', function() {
test('#839', function() {
var p1 = new Path({
segments: [
[522, 352, 0, 0, 0, 0],
[500, 400, 0, 0, 0, 0],
[480, 400, 0, 0, 0, 0],
[448, 448, 0, 0, 0, 0],
[100, 448, 0, 0, 0, 0],
[100, 352, 0, 0, 0, 0]
[522, 352],
[500, 400],
[480, 400],
[448, 448],
[100, 448],
[100, 352]
],
closed: true
});
@ -513,7 +513,7 @@ test('#968', function() {
});
var p2 = new paper.Path({
segments: [
[352, 344, 0, 0, 0, 0],
[352, 344],
[352, 356, 0, 0, 0, 2.1999999999999886],
[348, 360, 2.1999999999999886, 0, 0, 0],
[232, 360, 0, 0, -2.1999999999999886, 0]
@ -578,7 +578,7 @@ test('#1059', function() {
segments: [
[369.18465470031083, 213.59844845031083, 0, 0, -32.75201584283798, 32.752015842838006],
[369.18465470031083, 332.1973252129927, -32.752015842838034, -32.75201584283809, 0, 0],
[209.1846547003108, 332.1973252129927, 0, 0, 0, 0],
[209.1846547003108, 332.1973252129927],
[209.1846547003108, 213.59844845031083, -32.75201584283798, 32.752015842838006, 0, 0]
],
closed: true
@ -719,396 +719,95 @@ test('Isolated edge-cases from @iconexperience\'s boolean-test suite', function(
// Test all of @iconexperience's isolated cases in one batch.
// Read more in #784
var paths = [[
[
[240, 270, 0, 0, 0, 0],
[250.53466323186618, 221.0057178821544, 0, 0, 0, 0],
[237.67824477332854, 193.79795691566554, 0, 0, 0, 0],
[320, 240, 0, 0, 0, 0],
true
], [
[263.31216874462405, 248.04647709671602, 0, 0, 0, 0],
[230, 250, 0, 0, 0, 0],
[237.6782447781314, 193.79795691339606, 0, 0, 0, 0],
true
]
[[240, 270], [250.53466323186618, 221.0057178821544], [237.67824477332854, 193.79795691566554], [320, 240], true],
[[263.31216874462405, 248.04647709671602], [230, 250], [237.6782447781314, 193.79795691339606], true]
], [
[
[450, 230, 0, 0, 0, 0],
[362.46932779553646, 264.4394368330295, 0, 0, 0, 0],
[329.00715661950534, 214.6369961279195, 0, 0, 0, 0],
true
], [
[362.46932779553646, 264.4394368330295, 0, 0, 0.5029830904762775, -0.33795344231873514],
[331.7750437531172, 267.3071389516512, 0.33347583635435285, -3.453534396532916, 0, 0],
[329.00715661950534, 214.6369961279195, 0, 0, 0, 0],
true
]
[[450, 230], [362.46932779553646, 264.4394368330295], [329.00715661950534, 214.6369961279195], true],
[[362.46932779553646, 264.4394368330295, 0, 0, 0.5029830904762775, -0.33795344231873514], [331.7750437531172, 267.3071389516512, 0.33347583635435285, -3.453534396532916, 0, 0], [329.00715661950534, 214.6369961279195], true ]
], [
[
[211.76470809030513, 391.5530064242439, 0, 0, -1.1306561612996688, -11.284564044000547],
[206.28516988159765, 416.3206370377553, 9.29930425192211, -12.510751934521268, 0, 0],
[142.17355611649077, 367.3087985311291, 0, 0, 0, 0],
true
], [
[152.06363005021922, 397.5347520600572, 0, 0, 0, 0],
[218.65631922872535, 332.74836297575644, 0, 0, -9.581012775680733, 10.097912103353224],
[211.76470809030513, 391.55300642424385, -1.8914123817368989, -18.8773252964819, 0, 0],
true
]
[[211.76470809030513, 391.5530064242439, 0, 0, -1.1306561612996688, -11.284564044000547], [206.28516988159765, 416.3206370377553, 9.29930425192211, -12.510751934521268, 0, 0], [142.17355611649077, 367.3087985311291], true],
[[152.06363005021922, 397.5347520600572], [218.65631922872535, 332.74836297575644, 0, 0, -9.581012775680733, 10.097912103353224], [211.76470809030513, 391.55300642424385, -1.8914123817368989, -18.8773252964819, 0, 0], true ]
], [
[
[138.3141655808707, 456.06810826237086, 0, 0, 1.6246548956081597, -1.188772469512287],
[103.70383447788026, 471.4426853592628, 15.914191732656704, 1.2415901505934812, 0, 0],
[147.64340975918196, 340.17263448268653, 0, 0, 0, 0],
true
], [
[102.88355437423151, 307.6462971693936, 0, 0, 0, 0],
[311.9175162439421, 379.75248280363354, 0, 0, -68.45789375971557, 0.5465997368099806],
[138.3141655808706, 456.06810826237097, 33.643258081480184, -24.617030422937262, 0, 0],
true
]
[[138.3141655808707, 456.06810826237086, 0, 0, 1.6246548956081597, -1.188772469512287], [103.70383447788026, 471.4426853592628, 15.914191732656704, 1.2415901505934812, 0, 0], [147.64340975918196, 340.17263448268653], true],
[[102.88355437423151, 307.6462971693936], [311.9175162439421, 379.75248280363354, 0, 0, -68.45789375971557, 0.5465997368099806], [138.3141655808706, 456.06810826237097, 33.643258081480184, -24.617030422937262, 0, 0], true ]
], [
[
[260.5630488345416, 240.11728335016855, 0, 0, 0, 0],
[230.82205831331396, 236.1805613638536, 0, 0, 0, 0],
[300.041224753361, 200, 0, 0, 0, 0],
[300, 300, 0, 0, 0, 0],
true
], [
[290.30323645974596, 244.0538990495128, 0, 0, 0, 0],
[320, 280, 0, 0, 0, 0],
[230.82205831199582, 236.18056137381197, 0, 0, 0, 0],
true
]
[[260.5630488345416, 240.11728335016855], [230.82205831331396, 236.1805613638536], [300.041224753361, 200], [300, 300], true],
[[290.30323645974596, 244.0538990495128], [320, 280], [230.82205831199582, 236.18056137381197], true ]
], [
[
[266.2339624919457, 249.28592706878334, 0, 0, 0, 0],
[236.42561910533144, 245.88969337410168, 0, 0, 0, 0],
[320, 240, 0, 0, 0, 0],
[280, 300, 0, 0, 0, 0],
true
], [
[296.03993000559, 252.68189006496056, 0, 0, 0, 0],
[320, 300, 0, 0, 0, 0],
[236.42561910512714, 245.8896933758947, 0, 0, 0, 0],
true
]
[[266.2339624919457, 249.28592706878334], [236.42561910533144, 245.88969337410168], [320, 240], [280, 300], true],
[[296.03993000559, 252.68189006496056], [320, 300], [236.42561910512714, 245.8896933758947], true ]
], [
[
[109.2693308633721, 249.31916869409733, 0, 0, 0, 0],
[157.6368865573791, 284.8238100271277, 0, 0, 0, 0],
[150, 329.3972954455561, 0, 0, 0, 0],
true
], [
[109.26933086337212, 249.3191686940973, 0, 0, 0, 0],
[157.1468245594682, 224.11329044817836, 0, 0, 0, 0],
[161.745373658654, 283.93680878488584, 0, 0, -4.753441100107182, 0.365390282896783],
[157.63688655737909, 284.82381002712776, -0.5599416549340219, 0.7628019369743697, 0, 0],
true
]
[[109.2693308633721, 249.31916869409733], [157.6368865573791, 284.8238100271277], [150, 329.3972954455561], true],
[[109.26933086337212, 249.3191686940973], [157.1468245594682, 224.11329044817836], [161.745373658654, 283.93680878488584, 0, 0, -4.753441100107182, 0.365390282896783], [157.63688655737909, 284.82381002712776, -0.5599416549340219, 0.7628019369743697, 0, 0], true ]
], [
[
[249.53400844979302, 269.5706278725207, 0, 0, -5.202299838213264, 1.3434437726778015],
[243.02912232136828, 272.45353289318496, -0.02459817048722357, 0.029126503110205704, 0, 0],
[197.1892333604494, 233.7404268430289, 0, 0, 0, 0],
true
], [
[243.02912232136822, 272.453532893185, 0, 0, 0.44566136595048533, -0.527704170852985],
[242.66927041668393, 276.2408467361064, -0.16957999946740188, -3.971488536288973, 0, 0],
[197.18923336044946, 233.74042684302884, 0, 0, 0, 0],
true
]
[[249.53400844979302, 269.5706278725207, 0, 0, -5.202299838213264, 1.3434437726778015], [243.02912232136828, 272.45353289318496, -0.02459817048722357, 0.029126503110205704, 0, 0], [197.1892333604494, 233.7404268430289], true],
[[243.02912232136822, 272.453532893185, 0, 0, 0.44566136595048533, -0.527704170852985], [242.66927041668393, 276.2408467361064, -0.16957999946740188, -3.971488536288973, 0, 0], [197.18923336044946, 233.74042684302884], true ]
], [
[
[326.356206851053, 259.5165810014779, 0, 0, 2.309307036608857, -4.052538199979125],
[327.9512902239682, 255.73918757869137, -0.3651148630259513, -1.1113992742978098, 0, 0],
[384.95409529898944, 237.01272999645926, 0, 0, 0, 0],
[350, 300, 0, 0, 0, 0],
true
], [
[327.9512902239682, 255.73918757869126, 0, 0, 0, 0],
[320, 250, 0, 0, 0, 0],
[384.95409529898944, 237.01272999645937, 0, 0, 0, 0],
true
]
[[326.356206851053, 259.5165810014779, 0, 0, 2.309307036608857, -4.052538199979125], [327.9512902239682, 255.73918757869137, -0.3651148630259513, -1.1113992742978098, 0, 0], [384.95409529898944, 237.01272999645926], [350, 300], true],
[[327.9512902239682, 255.73918757869126], [320, 250], [384.95409529898944, 237.01272999645937], true ]
], [
[
[231.45710796909526, 304.56978671182316, 0, 0, 6.965195106563414, -10.698308411775713],
[230.61969090209206, 265.2654116388295, 4.522412663592235, 13.984636258635192, 0, 0],
[287.7087867546365, 246.8036908431129, 0, 0, 0, 0],
true
], [
[267.0542186716473, 253.4830551491999, 0, 0, 0, 0],
[230.61969090209206, 265.26541163882956, 0, 0, 2.0144954400552137, 6.22941515281218],
[229.4516168394906, 239.90168380046367, -4.821444118085253, 13.349082266661071, 0, 0],
true
]
[[231.45710796909526, 304.56978671182316, 0, 0, 6.965195106563414, -10.698308411775713], [230.61969090209206, 265.2654116388295, 4.522412663592235, 13.984636258635192, 0, 0], [287.7087867546365, 246.8036908431129], true],
[[267.0542186716473, 253.4830551491999], [230.61969090209206, 265.26541163882956, 0, 0, 2.0144954400552137, 6.22941515281218], [229.4516168394906, 239.90168380046367, -4.821444118085253, 13.349082266661071, 0, 0], true ]
], [ // 10
[
[534.4141795042503, 349.4135521611639, 0, 0, 0.9952674258736351, -5.064332094235169],
[518.8256109308445, 384.2317022309883, 13.426353275139377, -9.450213278660101, 0, 0],
[487.8821067425946, 340.2688405948006, 0, 0, 0, 0],
[529.4025393039343, 348.4286400051758, 0, 0, -0.93900751246872, -2.1407484665217567],
true
], [
[475.5403232814915, 337.8433726698194, 0, 0, 0, 0],
[538.3223483008236, 152.20174200302918, 0, 0, 0, 0],
[576.6459309452254, 198.36777944721226, 0, 0, -12.4717091442418, 10.353077772467884],
[534.4141795042503, 349.41355216116364, 9.869907229687897, -50.22216808367796, 0, 0],
true
]
[[534.4141795042503, 349.4135521611639, 0, 0, 0.9952674258736351, -5.064332094235169], [518.8256109308445, 384.2317022309883, 13.426353275139377, -9.450213278660101, 0, 0], [487.8821067425946, 340.2688405948006], [529.4025393039343, 348.4286400051758, 0, 0, -0.93900751246872, -2.1407484665217567], true],
[[475.5403232814915, 337.8433726698194], [538.3223483008236, 152.20174200302918], [576.6459309452254, 198.36777944721226, 0, 0, -12.4717091442418, 10.353077772467884], [534.4141795042503, 349.41355216116364, 9.869907229687897, -50.22216808367796, 0, 0], true ]
], [
[
[100.10301277238074, 299.8360064274938, 0, 0, 0, 0],
[192.98476439737567, 381.03840618337944, 0, 0, 0, 0],
[191.58826071683484, 405.5453629318501, 0, 0, 1.76117811362775, 0.1003589202450712],
[158.80881838193744, 396.40041814383164, 11.345470204261431, 9.97219009394314, 0, 0],
true
], [
[195.00176127688619, 345.64254151310115, 0, 0, 0, 0],
[481.252611684097, 441.78388187198607, 0, 0, 0, 0],
[448.747388315903, 492.21611812801393, 0, 0, -122.96965958186621, -79.25796175143017],
[191.5882607168351, 405.54536293185015, 35.244503935513166, 2.0083717439883912, 0, 0],
true
]
[[100.10301277238074, 299.8360064274938], [192.98476439737567, 381.03840618337944], [191.58826071683484, 405.5453629318501, 0, 0, 1.76117811362775, 0.1003589202450712], [158.80881838193744, 396.40041814383164, 11.345470204261431, 9.97219009394314, 0, 0], true],
[[195.00176127688619, 345.64254151310115], [481.252611684097, 441.78388187198607], [448.747388315903, 492.21611812801393, 0, 0, -122.96965958186621, -79.25796175143017], [191.5882607168351, 405.54536293185015, 35.244503935513166, 2.0083717439883912, 0, 0], true ]
], [
[
[201.4099970302107, 456.883477028569, 0, 0, 0, 0],
[226.29027430947582, 456.0825533500981, 0, 0, -0.2832959470065646, -8.800441169464932],
[219.2838668275147, 483.73556312076016, 10.02977284964885, -11.976298343562064, 0, 0],
[200, 500, 0, 0, 0, 0],
true
], [
[166.32133819059692, 458.01301981440685, 0, 0, 0, 0],
[204.6120898437701, 320.4482218772343, 0, 0, 0, 0],
[244.3462523224993, 365.40593903584846, 0, 0, -18.086870972805855, 15.985390615581537],
[226.29027430947582, 456.08255335009807, -0.8931629157136456, -27.74564118385956, 0, 0],
true
]
[[201.4099970302107, 456.883477028569], [226.29027430947582, 456.0825533500981, 0, 0, -0.2832959470065646, -8.800441169464932], [219.2838668275147, 483.73556312076016, 10.02977284964885, -11.976298343562064, 0, 0], [200, 500], true],
[[166.32133819059692, 458.01301981440685], [204.6120898437701, 320.4482218772343], [244.3462523224993, 365.40593903584846, 0, 0, -18.086870972805855, 15.985390615581537], [226.29027430947582, 456.08255335009807, -0.8931629157136456, -27.74564118385956, 0, 0], true ]
], [
[
[134.30251416753708, 172.0081092040946, 0, 0, 97.01301228604092, -2.2561165647916255],
[223.30038363130024, 161.29265138604404, 7.832155210448377, -11.227084549308643, 0, 0],
[135.69748583246292, 231.99189079590533, 0, 0, 0, 0],
true
], [
[248.04309709886002, 178.55347910623016, 0, 0, 0, 0],
[223.30038363130373, 161.29265138603904, 0, 0, -6.854532836619114, 9.825701564243673],
[240.2776561840474, 149.3557271403692, -14.092989377677696, 3.748174738020822, 0, 0],
true
]
[[134.30251416753708, 172.0081092040946, 0, 0, 97.01301228604092, -2.2561165647916255], [223.30038363130024, 161.29265138604404, 7.832155210448377, -11.227084549308643, 0, 0], [135.69748583246292, 231.99189079590533], true],
[[248.04309709886002, 178.55347910623016], [223.30038363130373, 161.29265138603904, 0, 0, -6.854532836619114, 9.825701564243673], [240.2776561840474, 149.3557271403692, -14.092989377677696, 3.748174738020822, 0, 0], true ]
], [
[
[517.5047187481108, 202.91541735696418, 6.513140197398911, -18.244597886454756, 0, 0],
[545.7583411018326, 213.0016798561104, 0, 0, 0, 0],
[557.8431595513716, 185.5433980031361, -8.326516730755202, -3.664629555367924, 0, 0],
[545.7583424843119, 213.00167993223172, 0, 0, -1.1368683772161603e-13, 0],
true
], [
[550.3546243594556, 242.6474912770306, 0, 0, 11.17102286717818, -1.7319541248482437],
[541.1620576122966, 183.35586693936358, -11.180538230113825, 1.733429385644115, 0, 0],
true
]
[[517.5047187481108, 202.91541735696418, 6.513140197398911, -18.244597886454756, 0, 0], [545.7583411018326, 213.0016798561104], [557.8431595513716, 185.5433980031361, -8.326516730755202, -3.664629555367924, 0, 0], [545.7583424843119, 213.00167993223172, 0, 0, -1.1368683772161603e-13, 0], true],
[[550.3546243594556, 242.6474912770306, 0, 0, 11.17102286717818, -1.7319541248482437], [541.1620576122966, 183.35586693936358, -11.180538230113825, 1.733429385644115, 0, 0], true ]
], [
[
[290.1253327484206, 287.90652074109494, 0, 0, 0, 0],
[342.6480156335393, 281.88796157138086, 0, 0, 0, 0],
[340.20645047153664, 251.98747653472907, 0, 0, 0, 0],
[370.8816252545162, 292.03012917196776, 0, 0, 0, 0],
true
], [
[345.08958029318296, 311.78843842619824, 0, 0, 0, 0],
[300.0082518321038, 300.98900280805503, 0, 0, 0, 0],
[340.20645030689445, 251.98747654817316, 0, 0, 0, 0],
true
]
[[290.1253327484206, 287.90652074109494], [342.6480156335393, 281.88796157138086], [340.20645047153664, 251.98747653472907], [370.8816252545162, 292.03012917196776], true],
[[345.08958029318296, 311.78843842619824], [300.0082518321038, 300.98900280805503], [340.20645030689445, 251.98747654817316], true ]
], [
[
[371.53493854231004, 257.22260275739484, 0, 0, -5.3406979774814545, -1.8674091727692712],
[360.1944182950855, 257.04852958152196, 1.4950314859081004, -0.8166674734584944, 0, 0],
[430.4144838319712, 235.2349421258068, -7.8035474909103755, -18.555544116219835, 0, 0],
true
], [
[360.1944182950853, 257.0485295815221, 0, 0, 0.09209791202033557, -0.05030888635417341],
[358.8995515281498, 260.3188854078006, 0.4901759953118585, -3.4265416599628793, 0, 0],
[300, 230, 0, 0, 0, 0],
true
]
[[371.53493854231004, 257.22260275739484, 0, 0, -5.3406979774814545, -1.8674091727692712], [360.1944182950855, 257.04852958152196, 1.4950314859081004, -0.8166674734584944, 0, 0], [430.4144838319712, 235.2349421258068, -7.8035474909103755, -18.555544116219835, 0, 0], true],
[[360.1944182950853, 257.0485295815221, 0, 0, 0.09209791202033557, -0.05030888635417341], [358.8995515281498, 260.3188854078006, 0.4901759953118585, -3.4265416599628793, 0, 0], [300, 230], true ]
], [
[
[409.2490311439771, 253.4403128346141, 0, 0, -4.356295913055419, 1.322648861578557],
[403.6254675741819, 256.25364724519244, 0.0777100557439212, -0.09457550986331853, 0, 0],
[357.2674295740252, 218.16254181654907, 0, 0, 0, 0],
true
], [
[403.625467574182, 256.2536472451924, 0, 0, 0.27347672342176566, -0.33282952001209765],
[403.0346093549582, 261.0014812561057, -0.21747734382410044, -4.397037948600143, 0, 0],
[357.26742957402513, 218.16254181654915, 0, 0, 0, 0],
true
]
[[409.2490311439771, 253.4403128346141, 0, 0, -4.356295913055419, 1.322648861578557], [403.6254675741819, 256.25364724519244, 0.0777100557439212, -0.09457550986331853, 0, 0], [357.2674295740252, 218.16254181654907], true],
[[403.625467574182, 256.2536472451924, 0, 0, 0.27347672342176566, -0.33282952001209765], [403.0346093549582, 261.0014812561057, -0.21747734382410044, -4.397037948600143, 0, 0], [357.26742957402513, 218.16254181654915], true ]
], [
[
[292.9399983081827, 321.04496242335836, 0, 0, 0, 0],
[301.41124169557446, 297.40574481030876, 0, 0, 0, 0],
[271.4382902635834, 296.1319728479751, 0, 0, 0, 0],
[319.88255402047366, 273.7665574434494, 0, 0, 0, 0],
true
], [
[331.38418270096264, 298.67951674085646, 0, 0, 0, 0],
[350, 345.76013009266507, 0, 0, 0, 0],
[271.4382902810318, 296.1319724373992, 0, 0, 0, 0],
true
]
[[292.9399983081827, 321.04496242335836], [301.41124169557446, 297.40574481030876], [271.4382902635834, 296.1319728479751], [319.88255402047366, 273.7665574434494], true],
[[331.38418270096264, 298.67951674085646], [350, 345.76013009266507], [271.4382902810318, 296.1319724373992], true ]
], [
[
[349.2988989052917, 302.360122358839, 0, 0, 0, 0],
[306.8847250793194, 310.8417788081535, 0, 0, 0, 0],
[317.34865046978905, 286.0848942283935, 0, 0, 0, 0],
[295.03238113332606, 289.30770347326694, 0, 0, 0, 0],
true
], [
[306.8847250793191, 310.8417788081534, 0, 0, 0, 0],
[308.40196713650136, 308.29790890842884, 0, 0, 0, 0],
[297.432392604982, 249.3091944403423, 0, 0, 0, 0],
[330.2439214313423, 255.57562328972034, 0, 0, 0, 0],
true
]
[[349.2988989052917, 302.360122358839], [306.8847250793194, 310.8417788081535], [317.34865046978905, 286.0848942283935], [295.03238113332606, 289.30770347326694], true],
[[306.8847250793191, 310.8417788081534], [308.40196713650136, 308.29790890842884], [297.432392604982, 249.3091944403423], [330.2439214313423, 255.57562328972034], true ]
], [ // 20
[
[150, 290, 0, 0, 0, 0],
[180, 260, 0, 0, 0, 0],
[220, 300, 0, 0, 0, 0],
true
], [
[180, 260, 0, 0, 0, 0],
[230, 270, 0, 0, 0, 0],
[170, 310, 0, 0, 0, 0],
[220, 300, 0, 0, 0, 0],
true
]
[[150, 290], [180, 260], [220, 300], true],
[[180, 260], [230, 270], [170, 310], [220, 300], true ]
], [
[
[299.7385339651986, 102.20556080028058, -8.846854364457954, -13.558854632211663, 0, 0],
[324.85949771228013, 85.81468459475798, 0, 0, 0, 0],
[331.26017128225755, 56.500458549069435, 0, 0, 0, 0],
[349.988176980811, 69.4187741812245, 0, 0, 9.063133638672639, 13.890328297113285],
true
], [
[318.4609036471463, 115.11938678905685, 0, 0, 0, 0],
[340.9228398583517, 111.1463404606569, 0, 0, 0, 0],
[308.7912208820021, 60.47525341924158, 0, 0, 0, 0],
[331.2601712818937, 56.50045854899, 0, 0, 0, 0],
true
]
[[299.7385339651986, 102.20556080028058, -8.846854364457954, -13.558854632211663, 0, 0], [324.85949771228013, 85.81468459475798], [331.26017128225755, 56.500458549069435], [349.988176980811, 69.4187741812245, 0, 0, 9.063133638672639, 13.890328297113285], true],
[[318.4609036471463, 115.11938678905685], [340.9228398583517, 111.1463404606569], [308.7912208820021, 60.47525341924158], [331.2601712818937, 56.50045854899], true ]
], [
[
[388.9213889025063, 223.3215931867822, 0, 0, 120.27613015930797, -2.2436869719875574],
[597.6181955110758, 242.94850207232983, 0, 0, 0, 0],
[628.0354673841999, 243.03685701873312, 0, 0, -0.031041118475286567, 10.686285016774008],
[419.2789142850017, 364.27077547853787, 0, 0],
true
], [
[568.0357205119291, 242.86257201242702, 0, 0, 0, 0],
[576.294245114903, 263.4873716612576, -0, 0, 0, 0],
[619.5200435607698, 221.87571045051882, 0, 0, 0, 0],
[628.0354673841999, 243.03685701876972, 0.030302631585300333, -10.432051860541975, 0, 0],
true
]
[[388.9213889025063, 223.3215931867822, 0, 0, 120.27613015930797, -2.2436869719875574], [597.6181955110758, 242.94850207232983], [628.0354673841999, 243.03685701873312, 0, 0, -0.031041118475286567, 10.686285016774008], [419.2789142850017, 364.27077547853787, 0, 0], true],
[[568.0357205119291, 242.86257201242702], [576.294245114903, 263.4873716612576, -0, 0, 0, 0], [619.5200435607698, 221.87571045051882], [628.0354673841999, 243.03685701876972, 0.030302631585300333, -10.432051860541975, 0, 0], true ]
], [
[
[250, 130, 0, 0, 0, 0],
[274.2339539863471, 194.10449080567912, 0, 0, 0.10568701547992987, -0.053016796189552906],
[272.11154618911314, 196.81853259861245, 1.370678992642354, -2.513969427633242, 0, 0],
true
], [
[250, 130, 0, 0, 0, 0],
[282.64261453718956, 194.05831848298737, 0, 0, -6.1766919512210166, -1.0441192545144133],
[274.23395398634705, 194.10449080567915, 0.11866362575074163, -0.05952637826862883, 0, 0],
true
]
[[250, 130], [274.2339539863471, 194.10449080567912, 0, 0, 0.10568701547992987, -0.053016796189552906], [272.11154618911314, 196.81853259861245, 1.370678992642354, -2.513969427633242, 0, 0], true],
[[250, 130], [282.64261453718956, 194.05831848298737, 0, 0, -6.1766919512210166, -1.0441192545144133], [274.23395398634705, 194.10449080567915, 0.11866362575074163, -0.05952637826862883, 0, 0], true ]
], [
[
[386.4093435542647, 270.73026596496675, 0, 0, 77.41690321854611, 15.777187877165375],
[528.635149558586, 289.6368596320347, -12.835362144855708, 5.740740187064205, 0, 0],
[553.1321511797777, 344.4081743101702, 0, 0, 0, 0],
true
], [
[528.6351495585858, 289.6368596320348, 0, 0, -0.31548183780626005, 0.14110231126664985],
[522.9057367288372, 295.33394762583623, 2.3982010141742194, -4.106159119428241, 0, 0],
[574.716309478071, 325.5938972523037, 0, 0, 0, 0],
[553.1321511797779, 344.40817431017007, 0, 0, 0, 0],
true
]
[[386.4093435542647, 270.73026596496675, 0, 0, 77.41690321854611, 15.777187877165375], [528.635149558586, 289.6368596320347, -12.835362144855708, 5.740740187064205, 0, 0], [553.1321511797777, 344.4081743101702], true],
[[528.6351495585858, 289.6368596320348, 0, 0, -0.31548183780626005, 0.14110231126664985], [522.9057367288372, 295.33394762583623, 2.3982010141742194, -4.106159119428241, 0, 0], [574.716309478071, 325.5938972523037], [553.1321511797779, 344.40817431017007], true ]
], [
[
[525, 345, 0, 0, 0, 0],
[557.3179687742295, 363.04379418599376, 0, 0, 0, 0],
[587.1223034990716, 366.54087021669767, 0, 0, 0, 0],
[500, 400, 0, 0, 0, 0],
true
], [
[527.5311085637297, 359.5487685170587, 0, 0, 0, 0],
[533.6060904205631, 381.4080959083297, 0, 0, 0, 0],
[581.0430044030195, 344.66929908778826, 0, 0, 0, 0],
[587.1223034989287, 366.54087021791537, 0, 0, 0, 0],
true
]
[[525, 345], [557.3179687742295, 363.04379418599376], [587.1223034990716, 366.54087021669767], [500, 400], true],
[[527.5311085637297, 359.5487685170587], [533.6060904205631, 381.4080959083297], [581.0430044030195, 344.66929908778826], [587.1223034989287, 366.54087021791537], true ]
], [
[
[250, 150, 0, 0, 0, 0],
[234.74625221124325, 182.05024235296503, 0, 0, 0, 0],
[205.60227766791786, 189.2546311484904, 0, 0, 0, 0],
[205.60227766791786, 189.4546311484904, 0, 0, 0, 0],
[205.61255586021304, 189.25209037995552, 0, 0, 0, 0],
[263.84900039629053, 174.85604471078497, 0, 0, 0, 0],
true
], [
[225.84313834895474, 153.1048226009985, 0, 0, 0, 0],
[180, 190, 0, 0, 0, 0],
[243.48255333255608, 210.4533277169673, 0, 0, 0, 0],
true
]
[[250, 150], [234.74625221124325, 182.05024235296503], [205.60227766791786, 189.2546311484904], [205.60227766791786, 189.4546311484904], [205.61255586021304, 189.25209037995552], [263.84900039629053, 174.85604471078497], true],
[[225.84313834895474, 153.1048226009985], [180, 190], [243.48255333255608, 210.4533277169673], true ]
], [
[
[598.5486959306086, 408.11025390080914, 0, 0, 0, 0],
[556.2683544908633, 467.2163769525839, 0, 0, 0, 0],
[552.429221746517, 437.22810161381835, 0, 0, 0, 0],
true
], [
[556.2683546136653, 467.2163769491477, 0, 0, 0, 0],
[518.5330018076562, 379.67700053006695, 0, 0, 0, 0],
[554.5900896267148, 407.2398529865706, 0, 0, 0, 0],
true
]
[[598.5486959306086, 408.11025390080914], [556.2683544908633, 467.2163769525839], [552.429221746517, 437.22810161381835], true],
[[556.2683546136653, 467.2163769491477], [518.5330018076562, 379.67700053006695], [554.5900896267148, 407.2398529865706], true ]
], [
[
[570, 290, 0, 0, 0, 0],
[575.8176000300452, 323.5855681222093, 0, 0, 0, 0],
[547.6444566349796, 309.1465641549448, 0, 0, 0, 0],
[578.8341920603752, 304.57835489946484, 0, 0, -5.7225406635552645e-9, -3.907138079739525e-8],
[519.4675806753132, 313.27349449897866, 0, 0, 0, 0],
true
], [
[575.8176000300631, 323.58556812217466, 0, 0, 0, 0],
[560, 300, 0, 0, 0, 0],
[522.421811145802, 296.21971842903645, 0, 0, 0, 0],
true
]
[[570, 290], [575.8176000300452, 323.5855681222093], [547.6444566349796, 309.1465641549448], [578.8341920603752, 304.57835489946484, 0, 0, -5.7225406635552645e-9, -3.907138079739525e-8], [519.4675806753132, 313.27349449897866], true],
[[575.8176000300631, 323.58556812217466], [560, 300], [522.421811145802, 296.21971842903645], true ]
], [
[
[87.34388521634615, 0, -3.9382371300724373, 0, 2.1330446378301247, 0],
[93.61538461538461, 0, -2.9185159236061224, 0, 2.2538650858334677, 0],
[100.17943209134619, 0, -2.11714516843503, 0, 8.39247295673077, 0],
[100.17943209134613, 0, -4.131239081724743, 0, -2.1880158253205195, 0],
[93.61538461538458, 0, 2.1880158253205053, 0, -2.0904997996794776, 0],
true
], [
[163.8269230769231, 0, 0, 0, 0, 0],
[160.90144230769232, 0, 1.6090144230769283, 0, 0, 0],
[2.9254807692307696, 0, 0, 0, -1.6090144230769234, 0],
[0, 0, 0, 0, 0, 0],
true
]
[[87.34388521634615, 0, -3.9382371300724373, 0, 2.1330446378301247, 0], [93.61538461538461, 0, -2.9185159236061224, 0, 2.2538650858334677, 0], [100.17943209134619, 0, -2.11714516843503, 0, 8.39247295673077, 0], [100.17943209134613, 0, -4.131239081724743, 0, -2.1880158253205195, 0], [93.61538461538458, 0, 2.1880158253205053, 0, -2.0904997996794776, 0], true],
[[163.8269230769231, 0], [160.90144230769232, 0, 1.6090144230769283, 0, 0, 0], [2.9254807692307696, 0, 0, 0, -1.6090144230769234, 0], [0, 0], true ]
], [
'M419.20344565830516,384.34607379092466c5.844713611412715,3.313058909545532 8.737629565616828,3.6008009941920136 9.663847696961,3.5457774486854987c0.4249875971154893,-0.23215482613579752 3.134401138218834,-1.9001699951828073 6.912521889816844,-9.027614775318739c33.358079343370036,-62.930193110079074 15.048818377810562,-263.53585410399967 14.89110904614597,-264.2035689431943l58.39331120497843,-13.792070421750992c0.38461989956749676,1.6284160973869177 24.314056080847877,221.98511298279283 -20.271816008415897,306.09659649109955c-7.779727674038611,14.676497403570863 -19.843728834889646,29.87171953249475 -38.60350857895327,37.0189975138764c-20.692089248499826,7.88346749760683 -41.830098370105475,3.183730282850888 -60.57334789311045,-7.440826188961864z',
'M450.6709242911992,114.66066752097116c-5.7317866225195075,-24.267422495749997 -2.0221968032280984,26.377626042706837 32.186077599051714,22.94975715794014l-5.982390225081872,-59.70101345199127c34.20913357233178,-3.427954978623788 37.91990661944476,47.22024138695528 32.18962383106816,22.95918587255207z'