summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-04 08:24:21 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-09-04 08:28:42 +0300
commitdd3a2d591cfd775311f54425220263b1aa2f3798 (patch)
treeb8516337ef117a24826cb49106196a6965dd9699
parentbc1771d0ea20eb3b42beccddbe852541e107ab65 (diff)
Remove maps
Change-Id: I4414919764f5c33242847d9ac873ae03845a00b4 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
-rw-r--r--examples/examples.pro2
-rw-r--r--examples/mapdata/Suomi.karttapohja.svg3018
-rw-r--r--examples/mapdata/doc/images/mapdata-example.pngbin114152 -> 0 bytes
-rw-r--r--examples/mapdata/doc/src/mapdata.qdoc29
-rw-r--r--examples/mapdata/main.cpp201
-rw-r--r--examples/mapdata/mapdata.cpp359
-rw-r--r--examples/mapdata/mapdata.h65
-rw-r--r--examples/mapdata/mapdata.pro13
-rw-r--r--examples/mapdata/mapdata.qrc8
-rw-r--r--examples/mapdata/weirdthing.obj1232
-rw-r--r--examples/qmlmaps/doc/src/qmlmaps.qdoc29
-rw-r--r--examples/qmlmaps/floorplan.jpgbin108298 -> 0 bytes
-rw-r--r--examples/qmlmaps/main.cpp45
-rw-r--r--examples/qmlmaps/qml/qmlmaps/main.qml114
-rw-r--r--examples/qmlmaps/qmlmaps.desktop11
-rw-r--r--examples/qmlmaps/qmlmaps.pro29
-rw-r--r--examples/qmlmaps/qmlmaps.qrc8
-rw-r--r--examples/qmlmaps/qmlmaps64.pngbin3400 -> 0 bytes
-rw-r--r--examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.cpp81
-rw-r--r--examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.h33
-rw-r--r--examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.pri180
-rw-r--r--src/datavis3d/data/data.pri14
-rw-r--r--src/datavis3d/data/maprenderitem.cpp43
-rw-r--r--src/datavis3d/data/maprenderitem_p.h68
-rw-r--r--src/datavis3d/data/qabstractdataproxy.h5
-rw-r--r--src/datavis3d/data/qitemmodelmapdatamapping.cpp165
-rw-r--r--src/datavis3d/data/qitemmodelmapdatamapping.h67
-rw-r--r--src/datavis3d/data/qitemmodelmapdatamapping_p.h56
-rw-r--r--src/datavis3d/data/qitemmodelmapdataproxy.cpp347
-rw-r--r--src/datavis3d/data/qitemmodelmapdataproxy.h58
-rw-r--r--src/datavis3d/data/qitemmodelmapdataproxy_p.h81
-rw-r--r--src/datavis3d/data/qmapdataitem.cpp121
-rw-r--r--src/datavis3d/data/qmapdataitem.h57
-rw-r--r--src/datavis3d/data/qmapdataitem_p.h52
-rw-r--r--src/datavis3d/data/qmapdataproxy.cpp183
-rw-r--r--src/datavis3d/data/qmapdataproxy.h84
-rw-r--r--src/datavis3d/data/qmapdataproxy_p.h58
-rw-r--r--src/datavis3d/data/scatterrenderitem_p.h1
-rw-r--r--src/datavis3d/doc/src/qtdatavis3d-index.qdoc2
-rw-r--r--src/datavis3d/engine/engine.pri7
-rw-r--r--src/datavis3d/engine/maps3dcontroller.cpp1735
-rw-r--r--src/datavis3d/engine/maps3dcontroller_p.h249
-rw-r--r--src/datavis3d/engine/maps3drenderer.cpp74
-rw-r--r--src/datavis3d/engine/maps3drenderer_p.h53
-rw-r--r--src/datavis3d/engine/q3dmaps.cpp250
-rw-r--r--src/datavis3d/engine/q3dmaps.h133
-rw-r--r--src/datavis3d/engine/q3dmaps_p.h51
-rw-r--r--src/datavis3d/engine/scatter3drenderer.cpp42
-rw-r--r--src/datavis3d/engine/theme_p.h1
-rw-r--r--src/datavis3d/utils/texturehelper_p.h1
-rw-r--r--src/datavis3dqml2/datavis3dqml2.pro8
-rw-r--r--src/datavis3dqml2/datavis3dqml2_plugin.cpp2
-rw-r--r--src/datavis3dqml2/datavis3dqml2_plugin.h4
-rw-r--r--src/datavis3dqml2/declarativemaps.cpp238
-rw-r--r--src/datavis3dqml2/declarativemaps_p.h137
-rw-r--r--src/datavis3dqml2/declarativemapsrenderer.cpp79
-rw-r--r--src/datavis3dqml2/declarativemapsrenderer_p.h62
57 files changed, 4 insertions, 10041 deletions
diff --git a/examples/examples.pro b/examples/examples.pro
index 4712e0d0..41cccfc1 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -2,9 +2,7 @@ TEMPLATE = subdirs
SUBDIRS += barchart \
rainfall \
widget \
- #mapdata \
qmlbarchart \
- #qmlmaps \
qmlscatter \
surfacechart \
scatterchart
diff --git a/examples/mapdata/Suomi.karttapohja.svg b/examples/mapdata/Suomi.karttapohja.svg
deleted file mode 100644
index 85a449b0..00000000
--- a/examples/mapdata/Suomi.karttapohja.svg
+++ /dev/null
@@ -1,3018 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Creator: CorelDRAW -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xml:space="preserve"
- width="1850"
- height="3220"
- style="fill-rule: evenodd;"
- viewBox="0 0 1850 3237.41"
- id="svg2"
- version="1.1"
- inkscape:version="0.47 r22583"
- sodipodi:docname="Suomi.karttapohja.svg"><metadata
- id="metadata650"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1680"
- inkscape:window-height="1000"
- id="namedview648"
- showgrid="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:zoom="1.2968944"
- inkscape:cx="1302.3906"
- inkscape:cy="240.52554"
- inkscape:window-x="-8"
- inkscape:window-y="-8"
- inkscape:window-maximized="1"
- inkscape:current-layer="_74312864" />
- <defs
- id="defs4"><inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 1610 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="1850 : 1610 : 1"
- inkscape:persp3d-origin="925 : 1073.3333 : 1"
- id="perspective611" />
- <style
- type="text/css"
- id="style6">
-
- .str3 {stroke:#C7C7A2;stroke-width:0.797991}
- .str1 {stroke:#8C8C60;stroke-width:1.70998}
- .str2 {stroke:#636347;stroke-width:2.27997}
- .str0 {stroke:#1F1A17;stroke-width:3.98996}
- .fil1 {fill:none}
- .fil0 {fill:#EEEED4}
-
- </style>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <inkscape:perspective
- id="perspective3574"
- inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
- inkscape:vp_z="1 : 0.5 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_x="0 : 0.5 : 1"
- sodipodi:type="inkscape:persp3d" /></defs>
- <g
- id="Layer_x0020_1"
- transform="translate(-14.0454, -0.00501389)">
- <metadata
- id="CorelCorpID_0Corel-Layer" />
- <g
- id="_91105008">
- <polygon
- id="_91167600"
- class="fil0 str0"
- points="734.897,442.02 741.874,456.449 771.196,443.235 798.888,433.452 809.986,413.882 830.941,402.881 872.378,433.58 916.245,452.767 940.503,482.635 946.707,469.967 964.057,470.073 961.225,434.135 986.507,396.951 1005.05,385.808 1025.49,391.044 1035.53,355.861 1031.81,293.372 1050.21,188.127 1059.65,170.934 1054.1,154.879 1068.55,131.72 1097.91,105.588 1115.32,64.1525 1143.85,54.1508 1193.47,67.0789 1236.46,33.0009 1247.21,17.3925 1262.71,22.4227 1278.39,12.5376 1306.22,51.2835 1333.06,68.1732 1335.1,87.2276 1422.82,130.452 1452.27,205.546 1400.14,273.285 1396.63,307.18 1406.98,343.479 1352.78,389.081 1385.74,388.966 1393.92,402.814 1387.41,449.541 1358.46,501.718 1383.06,604.25 1455.73,633.814 1503.25,730.84 1549.63,765.543 1545.9,810.813 1447.28,995.77 1439.79,1020.47 1504.59,1129.9 1535.44,1212.77 1560.34,1249.47 1590.01,1334.1 1598.77,1395.63 1579.48,1397.44 1551.11,1416.34 1561.84,1434.11 1552.94,1464.05 1550.79,1496.63 1539.81,1533.78 1566.06,1536.2 1574.25,1545.67 1565.67,1563.26 1572.7,1572.6 1565.07,1588.4 1545.72,1594.85 1540.33,1615.02 1555.24,1672.39 1605.92,1682.79 1601.44,1698.83 1612.08,1712.15 1611.43,1732.28 1600.37,1741.99 1600.45,1764.83 1615.98,1806.59 1670.36,1843.89 1681,1893.37 1646.69,1982.92 1614.27,2006.04 1669.04,2064.54 1687.17,2090.16 1732.19,2110.62 1764.11,2135.78 1789.18,2153.1 1800.82,2193.18 1836.01,2221.81 1848.18,2252.58 1806.45,2385.04 1771.2,2450.67 1752.19,2458.11 1723.31,2502.39 1683.21,2572.67 1661.79,2594.86 1649.79,2628.83 1619.63,2656.59 1599.34,2699.18 1573.78,2717.29 1568.01,2735.14 1530.07,2799.12 1485.65,2829.93 1469.78,2836.4 1450.69,2869.07 1448.29,2890.48 1427.77,2895.06 1389.32,2928.71 1381.94,2948.43 1327.85,3000.45 1327.36,3010.63 1316.96,3017.51 1304.85,3009.58 1300.01,3013.29 1296.24,3030.21 1290.9,3038.94 1282.82,3039.19 1273.05,3040.6 1266.64,3037.07 1260.75,3041.02 1253.67,3047.69 1244.57,3034.19 1220.98,3031.41 1192.37,3022.07 1180.78,3033.71 1181.12,3052.38 1176.95,3059.87 1165.21,3059.51 1151.75,3046.07 1143.89,3053.24 1133.83,3053.59 1127.53,3046.94 1120.87,3051.57 1103.91,3055.46 1090.52,3067.5 1083.02,3067.23 1082.31,3078.1 1073.44,3067.02 1059.82,3066.67 1063.67,3079.72 1057.59,3080.2 1052.42,3068.69 1041.49,3057.43 1025.88,3042.53 1024.52,3050.67 1034.09,3063.59 1036.74,3074.18 1046.13,3090.82 1040.51,3093.28 1032.88,3089.49 1027.92,3091.22 1028.85,3103.79 1023.72,3105.84 1015.33,3088.55 1011.12,3091.97 1015.81,3106.98 1011.54,3112.5 1003.29,3107.36 995.826,3115.4 990.8,3114.45 978.112,3098.68 974.135,3083.96 958.129,3085.77 957.765,3099.11 951.609,3106.69 927.23,3107.33 907.83,3112.67 905.564,3119.68 897.779,3130.24 886.92,3126.88 888.623,3139.49 877.758,3148.68 875.629,3136.95 870.838,3144.55 856.642,3144.36 846.544,3137.47 819.64,3146.92 814.402,3141.68 812.242,3146.82 812.282,3156.77 782.761,3193.85 773.2,3193.11 786.207,3176.04 780.156,3172.55 773.188,3178.62 768.431,3178.57 769.358,3159.3 747.17,3171.57 716.781,3172.24 679.897,3188.04 661.696,3189.71 664.258,3199.07 657.776,3204.03 645.171,3201.29 629.122,3204.72 621.295,3199.14 609.151,3197.57 599.173,3208.63 599.17,3215.85 586.153,3226.97 560.976,3226.77 540.143,3235.42 533.188,3226.63 539.698,3219.29 567.487,3209.5 573.125,3202.7 575.723,3183.32 570.936,3175.91 565.296,3180.45 564.876,3196.36 560.113,3201 542.296,3197.89 532.525,3184.98 534.937,3173.17 546.22,3172.67 555.331,3177.38 560.044,3137.2 544.117,3127.6 540.111,3106.4 569.635,3070.42 564.025,3061.07 528.397,3088.6 505.365,3095.39 495.474,3086.45 479.701,3086.82 479.662,3077.15 494.459,3053.5 485.448,3046.64 479.824,3051.51 441.956,3058.82 431.993,3049.37 423.925,3048.85 425.606,3027.77 422.098,3025.01 413.217,3030.73 402.264,3020.74 405.489,3016.74 412.964,3017.12 413.36,3009.16 405.308,3001.37 383.919,3002.04 367.22,3006.12 367.985,2998.1 375.283,2987.85 383.218,2988.61 390.139,2970.75 383.336,2967.69 363.077,2978.55 358.094,3000.15 346.88,3001.15 342.51,2982.42 328.157,2969.79 317.118,2940.85 317.44,2922.78 312.318,2914.66 311.779,2901.47 309.348,2892.27 311.198,2886.84 314.431,2884.63 316.01,2879.55 300.748,2870.3 299.889,2864.62 313.266,2861.92 313.722,2854.08 307.199,2847.1 311.04,2843.08 318.389,2842.59 324.87,2855.63 331.73,2861.06 333.992,2853.29 323.011,2841.9 318.655,2817.98 326.984,2813.34 331.534,2820.35 338.516,2806.33 345.896,2764.2 353.463,2769.24 357.298,2764.37 356.504,2757.75 361.247,2733.23 350.93,2709.05 352.877,2706.01 357.594,2704.47 364.653,2707.23 370.088,2706.24 366.434,2697.31 355.147,2691.36 354.27,2683.4 361.873,2683.69 373.855,2687.23 373.514,2682.72 366.895,2677.37 359.79,2662.94 362.789,2657.25 368.402,2657.65 377.325,2667.83 384.023,2668.06 371.05,2638.93 371.061,2612.51 357.59,2595.07 360.297,2589.1 368.184,2588.27 368.696,2583.58 362.645,2578.87 358.927,2555.16 349.954,2549.66 347.236,2539.57 339.362,2526.5 346.611,2498.97 354.361,2486.29 353.9,2475 365.851,2462.21 364.27,2454.11 349.269,2448.25 349.233,2436.92 359.461,2423.29 360.11,2416.17 338.319,2415.1 331.84,2405.05 337.853,2381.11 333.22,2376.18 335.43,2357.44 345.35,2341.23 344.328,2334.69 339.132,2330.79 332.311,2336.53 328.473,2331.91 331.715,2311.25 336.643,2305.46 343.06,2299.64 344.031,2290.92 337.303,2283.26 338.504,2278.41 349.848,2279 355.58,2272.87 358.574,2254.71 369.587,2250.92 370.303,2256.45 381.609,2255.16 385.901,2250.78 384.587,2240.35 395.125,2230.34 396.191,2218.55 391.702,2208.89 381.18,2200.87 385.845,2193.29 395.853,2199.94 402.206,2197.86 411.394,2200.31 416.553,2198.31 413.408,2190.53 403.459,2181.86 402.223,2173.97 410.657,2163.49 411.427,2141.71 419.5,2133.51 424.363,2148.04 435.891,2147.78 460.629,2137.37 495.38,2149.82 508.39,2146.78 516.539,2131.32 527.665,2131.1 532.104,2120.31 519.963,2093.06 514.431,2087.5 512.029,2079.73 516.005,2074.45 523.646,2074 528.625,2052.44 535.479,2048.67 542.07,2057.32 545.861,2040.72 554.878,2034.13 555.89,2029.24 565.518,2020.94 572.222,2018.05 574.065,2009.34 586.191,2001.6 587.76,1989.75 584.997,1973.56 594.918,1967 604.682,1952.39 617.806,1952.46 623.807,1959.69 630.435,1959.54 636.315,1950.95 684.379,1948.78 685.437,1902.79 693.471,1897.06 705.358,1908.41 714.896,1906.75 716.105,1883.13 733.448,1856.71 740.913,1850.69 749.922,1837.06 757.474,1842.06 763.625,1838.73 763.857,1823.97 771.579,1811.3 774.609,1804.09 794.931,1782.31 812.447,1770.7 813.334,1763.68 826.035,1753.87 836.256,1710.62 855.481,1697.25 860.633,1670.62 873.052,1669.18 877.301,1661.48 884.505,1655.08 906.039,1654.86 915.554,1647.45 933.954,1647.6 953.652,1659.04 955.431,1669.57 964.448,1670.35 969.609,1665.68 965.659,1653.85 946.032,1634.14 944.869,1625.57 947.233,1618.86 960.695,1620.02 975.171,1631.73 981.608,1632.03 982.389,1626.32 972.932,1616.68 969.772,1595.81 964.457,1586.08 951.99,1578.88 947.584,1569.28 956.308,1557.58 956.404,1526.28 950.936,1516.19 957.26,1508.46 957.234,1493.78 965.442,1485.06 966.46,1472.57 947.684,1439.17 943.014,1443.47 936.023,1443.43 935.451,1430.3 927.013,1421.66 918.091,1422.49 909.761,1411.71 895.771,1409.63 888.751,1415.36 880.458,1416.2 876.5,1403.43 866.303,1410.09 860.985,1403.94 868.363,1388.45 861.805,1378.74 840.805,1370.97 831.074,1359.29 823.287,1371.7 812.149,1372.98 811.888,1350.9 801.684,1323.4 800.196,1303.55 783.321,1276.01 782.238,1255.29 761.961,1235.63 754.073,1196.49 758.7,1184.48 754.505,1167.65 760.527,1149.03 765.291,1133.49 783.076,1118.06 786.503,1061.56 804.095,1042.11 756.34,931.753 757.445,900.132 781.291,887.737 775.935,869.381 783.001,853.424 755.287,848.647 743.601,827.609 758.747,788.675 757.551,731.659 757.953,713.103 766.703,698.359 777.759,685.217 751.185,657.554 745.169,628.899 730.742,630.925 724.506,613.838 724.42,584.796 677.125,541.217 633.583,521.252 600.882,513.796 591.826,487.604 569.502,476.682 560.728,454.646 536.845,447.227 504.106,379.259 481.261,373.099 479.491,346.63 449.668,308.064 472.929,285.304 505.76,310.727 510.988,292.53 500.788,265.596 518.159,244.839 544.067,232.093 585.676,246.547 656.063,389.248 654.014,423.839 671.82,416.349 702.653,438.674"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167528"
- class="fil0 str0"
- points="892.558,1634.74 881.896,1628.14 870.453,1631.06 860.036,1606.73 866.113,1595.44 899.535,1587.62 908.877,1598.64 918.083,1598.51 923.98,1595.47 929.149,1600.17 928.93,1606.22 916.609,1611.27 904.132,1603 894.158,1605.66 901.318,1628.45"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167456"
- class="fil0 str0"
- points="951.187,1592.83 944.242,1592.83 937.731,1587.19 941.204,1581.11 949.971,1584.43"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167384"
- class="fil0 str0"
- points="720.706,1869.96 713.327,1870.39 715.497,1858.67 723.31,1855.63 725.133,1861.99"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167312"
- class="fil0 str0"
- points="570.525,1995.92 565.75,1986.37 570.959,1969.43 577.903,1975.51 576.704,1989.53"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167240"
- class="fil0 str0"
- points="452.897,2090.62 448.122,2078.89 457.238,2076.28 461.144,2080.19 460.813,2088.57"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167168"
- class="fil0 str0"
- points="469.825,2119.28 479.808,2103.21 488.923,2103.21 494.523,2108.46 491.136,2114.13 481.213,2114.63 474.6,2119.72"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167096"
- class="fil0 str0"
- points="478.94,2137.53 475.034,2128.84 488.055,2120.59 501.968,2126.49 508.455,2123.19 509.281,2133.22 503.724,2143.67 490.328,2137.22"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91167024"
- class="fil0 str0"
- points="426.42,2139.27 426.42,2128.84 434.233,2119.72 446.344,2130.17 444.259,2136.72 436.94,2129.83 432.063,2140.57"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166952"
- class="fil0 str0"
- points="368.691,2091.92 374.291,2091.95 374.437,2101.6 368.257,2111.03 360.01,2111.03 363.483,2101.91"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166880"
- class="fil0 str0"
- points="385.185,2100.61 392.521,2100.64 396.139,2108.98 389.96,2117.11 379.543,2117.11 374.768,2108.86"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166808"
- class="fil0 str0"
- points="363.049,2158.81 356.104,2158.38 346.555,2121.89 353.065,2119.72 358.254,2125.56 367.337,2116.45 373.466,2121.89 373.643,2128.93 367.395,2134.92 370.679,2140.64 380.882,2140.97 384.805,2132.63 393.218,2134.91 400.059,2149.8 395.924,2160.55 384.637,2156.59 378.198,2166.66 369.228,2164.58"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166736"
- class="fil0 str0"
- points="305.32,2207.46 311.788,2210.1 311.5,2217.57 308.792,2223.1 302.716,2223.1 299.243,2216.58"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166664"
- class="fil0 str0"
- points="346.555,2225.7 346.555,2211.8 352.197,2208.33 359.013,2213.87 359.968,2221.39 357.943,2230.61 352.197,2230.48"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166592"
- class="fil0 str0"
- points="340.478,2259.15 349.55,2254.84 353.602,2263.62 347.857,2267.84 342.648,2272.18 335.269,2267.84"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166520"
- class="fil0 str0"
- points="326.588,2290.86 330.452,2290.02 336.24,2301.84 334.401,2304.76 327.891,2305.19 325.72,2300.85"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166448"
- class="fil0 str0"
- points="324.809,2346.49 331.466,2353.97 331.797,2358.19 324.852,2362.09 319.644,2356.88 321.773,2350.78"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166376"
- class="fil0 str0"
- points="325.245,2779.5 326.695,2776.72 330.018,2773.03 335.896,2776.72 337.44,2783.86 333.533,2789.08 327.891,2789.51"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166304"
- class="fil0 str0"
- points="272.766,3011.9 264.519,3010.17 262.843,2978.21 269.052,2977.83 279.711,2993.66"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166232"
- class="fil0 str0"
- points="247.784,2994.34 255.34,3006.32 252.8,3017.99 244.987,3022.33 238.476,3007.56 239.838,2999.49"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166160"
- class="fil0 str0"
- points="264.712,3016.49 271.4,3024.56 268.86,3039.27 263.651,3044.05 257.14,3040.14 254.162,3025.55"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166088"
- class="fil0 str0"
- points="240.646,3045.78 232.834,3047.96 227.625,3042.31 230.856,3032.13 240.582,3036.29"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91166016"
- class="fil0 str0"
- points="207.225,3045.35 207.225,3044.92 210.022,3036.03 215.841,3031.95 221.114,3037.1 217.208,3047.09 209.838,3048.7"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165944"
- class="fil0 str0"
- points="211.131,3074.02 210.263,3069.67 210.022,3060.79 218.88,3056.71 224.153,3064.03 225.889,3068.37 215.915,3077.37"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165872"
- class="fil0 str0"
- points="195.939,3087.92 192.901,3075.76 196.132,3070.35 202.386,3071.48 204.62,3077.06 204.609,3081.37 205.932,3087.8"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165800"
- class="fil0 str0"
- points="200.289,3115.16 188.56,3114.41 185.836,3102.31 180.314,3096.17 186.149,3087.72 195.875,3093.63 202.016,3107.03 200.703,3110.04"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165728"
- class="fil0 str0"
- points="163.395,3039.15 140.815,3037.53 141.249,3030.58 147.084,3026.04 163.374,3034.02"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165656"
- class="fil0 str0"
- points="162.305,3068.36 154.259,3079.63 149.071,3079.54 149.935,3064.62 143.853,3058.38 150.798,3051.43 156.633,3046.89 160.407,3053.17 157.211,3060.58"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165584"
- class="fil0 str0"
- points="151.655,3146.96 136.484,3146.44 133.441,3141.5 147.326,3130.05 154.897,3124.21 173.863,3126.57 178.914,3132.68 172.288,3140.89"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165512"
- class="fil0 str0"
- points="166.183,3106.84 171.969,3107.92 178.799,3114.4 179,3119.16 166.867,3117.77 161.654,3111.96"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165440"
- class="fil0 str0"
- points="123.462,3114.73 121.721,3099.37 131.459,3087.72 135.232,3088.35 136.811,3096.63 131.054,3107.45 134.293,3114.81"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165368"
- class="fil0 str0"
- points="98.813,3085.09 90.3449,3105.11 92.4564,3108.56 100.794,3108.78 105.859,3105.46 122.12,3114.24 122.2,3120.94 118.794,3128.57 124.795,3134.78 123.752,3142.38 113.857,3149.22 111.359,3138.67 104.948,3139.89 100.309,3129.31 86.3825,3119.37 74.1171,3122.07 72.4157,3111.57 67.6728,3105.54 58.1744,3104.57 52.4884,3098.18 50.8534,3085.95 41.1199,3074.77 34.4915,3074.87 29.1595,3073.65 26.3728,3083.28 18.8654,3083.7 13.3646,3071.39 16.3306,3058.37 11.012,3052.68 14.3162,3043.96 33.5849,3035.75 42.3408,3038.52 51.701,3037.09 59.1953,3027.51 67.5138,3032.8 65.2332,3047.71 71.3886,3049.28 76.6471,3043.26 74.7148,3038.85 74.6712,3032.67 70.0742,3024.81 55.7411,3022.76 68.3286,3006.26 80.6746,3000.85 96.5307,3016.21 111.167,3018.9 117.585,3029.69 126.015,3033.32 127.334,3043.78 137.343,3055.96 129.954,3077.59 112.327,3080.44 101.229,3068.17 94.4933,3067.5 88.7378,3077.46"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165296"
- class="fil0 str0"
- points="240.529,3169.96 238.749,3175.41 232.835,3175.24 227.614,3183.44 214.613,3173.8 217.212,3166.26 230.856,3159.83 234.906,3162.65 242.604,3166.52"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165224"
- class="fil0 str0"
- points="925.18,3112.1 932.084,3112.1 935.15,3113.47 940.911,3113.82 938.458,3118.35 935.188,3121.94 924.874,3122.62 922.573,3118.73 920.359,3116.23"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165152"
- class="fil0 str0"
- points="956.431,3114.27 958.424,3131.82 952.116,3132.8 950.352,3129.15 950.309,3119.71"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165080"
- class="fil0 str0"
- points="970.755,3094.72 972.868,3106.03 978.467,3112.69 978.256,3120.46 976.76,3122.09 976.655,3125.74 971.522,3131.08 966.873,3127.16 966.412,3113.95 965.935,3096.25"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91165008"
- class="fil0 str0"
- points="1018.4,3119.64 1020.93,3124.87 1014.49,3131.51 1001.6,3129.76 1001.14,3125.24 1002.39,3118.84 1008.15,3117.26 1011.56,3114.27"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91164936"
- class="fil0 str0"
- points="1038.46,3103.96 1051.49,3097.33 1053.99,3108.34 1044.88,3110.23"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91164864"
- class="fil0 str0"
- points="1056.69,3091.36 1058.77,3084.39 1065.81,3084.3 1070.49,3094.88 1064.41,3098.07 1057.81,3094.22"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91164792"
- class="fil0 str0"
- points="1113.02,3078.37 1112.59,3085.47 1097.3,3082.93 1093.15,3076.16 1097.4,3070.49"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91164720"
- class="fil0 str0"
- points="1157.3,3082.72 1153.82,3088.51 1147.22,3084.67 1141.77,3080.94 1151.22,3073.1"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91107264"
- class="fil0 str0"
- points="1130.82,3055.78 1132.99,3063.75 1119.87,3073.81 1112.25,3067.04 1123.01,3055.72"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91107192"
- class="fil0 str0"
- points="1214.16,3108.49 1205.38,3108.12 1205.57,3100.48 1210.19,3095.95 1212.42,3096.12 1218.33,3101.66 1221.53,3104"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91107120"
- class="fil0 str0"
- points="1197.23,3075.77 1191.15,3075.91 1185.85,3063.38 1189.95,3049.66 1197.23,3052.25"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91107048"
- class="fil0 str0"
- points="344.384,2648.78 349.552,2643.54 351.287,2631.43 356.207,2632.83 366.087,2650.95 361.378,2656.18 351.329,2656.16"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106976"
- class="fil0 str0"
- points="295.529,2971.31 308.358,2990.62 308.358,3000.61 299.677,3000.61 294.427,2993.64 291.924,2974.3"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106904"
- class="fil0 str0"
- points="331.797,3006.69 324.877,3005.19 313.092,2990.17 313.193,2977.77 317.666,2973.92 328.759,2985.41 329.231,2987.11 336.138,2993.66"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106832"
- class="fil0 str0"
- points="303.342,2946.12 310.095,2951.09 310.963,2966.3 304.018,2973.25 294.861,2963.67 293.66,2953.01"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106760"
- class="fil0 str0"
- points="331.857,3205.19 341.683,3205.66 343.048,3210.35 335.282,3215.49 329.182,3220.36 321.389,3216.37"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106688"
- class="fil0 str0"
- points="353.509,3179.88 358.325,3174.39 362.675,3167.4 368.594,3173.08 368.657,3186.46 365.666,3190.73 356.961,3189.96"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106616"
- class="fil0 str0"
- points="287.09,3032.75 279.711,3027.11 281.073,3016.86 286.414,3013.45 291.366,3023.26"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106544"
- class="fil0 str0"
- points="302.474,3033.43 308.728,3042.37 306.622,3046.22 297.507,3047.09 293.167,3041.44 295.831,3034.24"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106472"
- class="fil0 str0"
- points="319.402,3019.96 321.38,3034.06 318.157,3035.15 315.303,3039.7 310.963,3033.62 312.325,3020.77"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106400"
- class="fil0 str0"
- points="339.176,3031.45 339.236,3023.38 354.56,3013.88 356.538,3020.59 350.692,3028.72 348.107,3033.41 341.346,3033.62"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106328"
- class="fil0 str0"
- points="321.801,3090.79 320.76,3098.6 315.034,3100.47 308.792,3103.12 288.826,3096.17 291.924,3078.11 298.568,3077.3 304.387,3084.07 322.248,3083.57"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106256"
- class="fil0 str0"
- points="352.133,3102.75 350.33,3110.47 349.762,3116.42 347.41,3120.33 341.16,3124.66 328.055,3125.23 322.248,3117.89 330.061,3110.07 331.066,3108.12 341.406,3096.35 351.956,3095.54"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106184"
- class="fil0 str0"
- points="304.886,3077.06 308.172,3073.76 308.791,3071.41 314.495,3065.51 322.007,3064.27 320.946,3074.45 314.869,3081.4 309.4,3080.19"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106112"
- class="fil0 str0"
- points="338.742,3093.56 333.099,3089.22 333.593,3068.55 339.369,3065.14 350.192,3087.44"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91106040"
- class="fil0 str0"
- points="383.075,3010.35 393.191,3016.49 394.3,3021.89 411.428,3046.36 409.442,3055.33 408.692,3064.04 401.4,3071.3 391.758,3069.68 392.334,3063.18 394.302,3052.47 384.982,3044.8 376.938,3026.67 378.674,3014.08"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105968"
- class="fil0 str0"
- points="368.071,3124.66 360.175,3121.75 362.605,3104.94 365.219,3094.43 383.208,3094.24 393.368,3101.45 388.961,3107.86 377.541,3110.77"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105896"
- class="fil0 str0"
- points="355.915,3044.14 358.768,3039.89 372.356,3044.29 373.466,3050.56 374.131,3056.09 363.917,3058.38 354.802,3050.13"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105824"
- class="fil0 str0"
- points="378.405,3129.14 375.192,3123.61 384.751,3114.41 404.653,3124.03 402.716,3129.45"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105752"
- class="fil0 str0"
- points="400.107,3114.37 399.933,3104.07 415.135,3095.74 420.713,3099.27 415.303,3112.51"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105680"
- class="fil0 str0"
- points="484.149,3064.9 449.426,3104.6 439.897,3105.42 433.162,3097.79 434.794,3088.66 423.633,3085.46 421.211,3076.19 428.723,3061.89 440.744,3064.9 451.221,3063.78 479.133,3056.88"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105608"
- class="fil0 str0"
- points="445.687,3125.1 440.908,3120.02 454.189,3104.07 463.314,3103.56 468.892,3107.09 460.565,3119.08 459.171,3118.43 453.445,3125.11"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105536"
- class="fil0 str0"
- points="476.587,3127.59 475.468,3120.93 469.524,3113.58 475.468,3108.33 475.527,3102.43 479.816,3098.14 488.937,3104.5 546.41,3090.76 531.026,3112.24 539.638,3131.74 524.275,3148.27 524.517,3158.02 518.462,3166.46 505.873,3168.41 490.262,3162.06 480.217,3168.39 464.774,3167.46 456.601,3155.12 459.535,3140.79"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105464"
- class="fil0 str0"
- points="500.932,3186.84 497.368,3191.84 483.015,3188.96 477.802,3177.79 482.403,3174 493.264,3175.66"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105392"
- class="fil0 str0"
- points="455.089,3173.51 455.969,3173.02 459.398,3170.09 466.353,3174.36 465.774,3182.06 464.38,3188.36 453.066,3188.09 450.891,3177.35"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105320"
- class="fil0 str0"
- points="455.666,3214.27 468.513,3200.93 480.242,3201.72 479.663,3210.73 467.389,3219.36"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105248"
- class="fil0 str0"
- points="537.701,3142.6 545.34,3134.91 552.295,3137.44 548.677,3145.58 539.905,3147.1"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105176"
- class="fil0 str0"
- points="537.093,3150.98 545.35,3163.5 538.981,3167.25 531.315,3170.77 527.284,3159.11"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105104"
- class="fil0 str0"
- points="623.04,3214.18 632.594,3211.71 629.263,3219.37 624.842,3220.55 619.862,3223.33 614.304,3221.84 610.188,3219.05 615.656,3212.66"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- <polygon
- id="_91105032"
- class="fil0 str0"
- points="709.416,3181.17 712.578,3182.96 718.244,3182.88 707.745,3191.88 698.859,3199.44 690.487,3195.16 695.955,3185.29 702.946,3181.16"
- style="fill: rgb(238, 238, 212); stroke: rgb(31, 26, 23); stroke-width: 3.98996;" />
- </g>
- <polygon
- class="fil1 str1"
- points="892.558,1634.74 881.896,1628.14 870.453,1631.06 860.036,1606.73 866.113,1595.44 899.535,1587.62 908.877,1598.64 918.083,1598.51 923.98,1595.47 929.149,1600.17 928.93,1606.22 916.609,1611.27 904.132,1603 894.158,1605.66 901.318,1628.45"
- id="polygon84"
- style="fill: none; stroke: rgb(140, 140, 96); stroke-width: 1.70998;" />
- <polygon
- class="fil1 str1"
- points="951.187,1592.83 944.242,1592.83 937.731,1587.19 941.204,1581.11 949.971,1584.43"
- id="polygon86"
- style="fill: none; stroke: rgb(140, 140, 96); stroke-width: 1.70998;" />
- <polygon
- class="fil1 str1"
- points="714.87,1862.05 715.497,1858.67 723.31,1855.63 725.133,1861.99 722.576,1866.59 720.706,1869.96 713.327,1870.39"
- id="polygon88"
- style="fill: none; stroke: rgb(140, 140, 96); stroke-width: 1.70998;" />
- <g
- id="_124239120">
- <polygon
- id="_124840120"
- class="fil1 str2"
- points="1266.81,1320.59 1280.73,1355.15 1348.52,1365.88 1378.48,1352.79 1379.62,1333.66 1364.8,1311.34 1383.24,1302.42 1401.44,1307.59 1406.94,1303.11 1406.59,1286.23 1393.99,1277.05 1394.3,1259.63 1403.72,1258.16 1408.29,1226.72 1389.74,1218.91 1377.03,1191.57 1381.94,1173.14 1397,1167.18 1396.51,1150.45 1471.15,1167.96 1516.62,1162.12 1504.59,1129.9 1439.79,1020.47 1447.28,995.77 1545.9,810.813 1549.63,765.543 1503.25,730.84 1455.73,633.814 1383.06,604.25 1358.46,501.718 1387.41,449.541 1393.92,402.814 1385.74,388.966 1352.78,389.081 1406.98,343.479 1396.63,307.18 1400.14,273.285 1452.27,205.546 1422.82,130.452 1335.1,87.2276 1333.06,68.1732 1306.22,51.2835 1278.39,12.5376 1262.71,22.4227 1247.21,17.3925 1236.46,33.0009 1193.47,67.0789 1143.85,54.1508 1115.32,64.1525 1097.91,105.588 1068.55,131.72 1054.1,154.879 1059.65,170.934 1050.21,188.127 1031.81,293.372 1035.53,355.861 1025.49,391.044 1005.05,385.808 986.507,396.951 961.225,434.135 964.057,470.073 946.707,469.967 940.503,482.635 916.245,452.767 872.378,433.58 830.941,402.881 809.986,413.882 798.888,433.452 771.196,443.235 741.874,456.449 734.897,442.02 702.653,438.674 671.82,416.349 654.014,423.839 656.063,389.248 585.676,246.547 544.067,232.093 518.159,244.839 500.788,265.596 510.988,292.53 505.76,310.727 472.929,285.304 449.668,308.064 479.491,346.63 481.261,373.099 504.106,379.259 536.845,447.227 560.728,454.646 569.502,476.682 591.826,487.604 600.882,513.796 633.583,521.252 677.125,541.217 724.42,584.796 724.506,613.838 730.742,630.925 745.169,628.899 751.185,657.554 777.759,685.217 766.703,698.359 757.953,713.103 757.551,731.659 758.747,788.675 743.601,827.609 755.287,848.647 783.001,853.424 775.935,869.381 781.291,887.737 757.445,900.132 756.34,931.753 804.095,1042.11 786.503,1061.56 783.076,1118.06 765.291,1133.49 760.527,1149.03 754.505,1167.65 758.7,1184.48 754.073,1196.49 761.961,1235.63 782.238,1255.29 783.321,1276.01 800.196,1303.55 801.684,1323.4 811.888,1350.9 812.149,1372.98 823.287,1371.7 831.074,1359.29 840.805,1370.97 861.805,1378.74 868.363,1388.45 860.985,1403.94 866.303,1410.09 876.5,1403.43 880.458,1416.2 888.751,1415.36 895.771,1409.63 909.761,1411.71 918.091,1422.49 927.013,1421.66 933.578,1428.39 932.974,1428.95 948.026,1413.68 969.415,1402.58 972.617,1387.74 1026.26,1390.81 1072.98,1361.38 1076.5,1391.52 1168.84,1399.51 1200.14,1388.84 1242.83,1319.3 1256.46,1325.5"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <path
- id="_124840072"
- class="fil1 str2"
- d="m 1556.25,1452.97 5.5914,-18.8591 -10.735,-17.7727 28.3729,-18.895 19.2912,-1.8143 -8.764,-61.5248 -29.6724,-84.6324 -24.8936,-36.6968 -18.8186,-50.6542 -45.4721,5.8399 -74.6438,-17.5068 0.4953,16.727 -15.0601,5.9613 -4.913,18.427 12.7111,27.3457 18.5473,7.806 -4.5671,31.4386 -9.4191,1.468 -0.3178,17.4253 12.6011,9.1832 0.3545,16.8795 -5.4959,4.4807 -18.2053,-5.1775 -18.4353,8.9232 14.8173,22.3207 -1.1397,19.1241 -29.9606,13.0916 -67.7902,-10.7227 -13.9232,-34.5616 -10.3497,4.9034 -13.6291,-6.2001 -42.6871,69.5464 -31.3063,10.6697 -92.3395,-7.9905 -3.5191,-30.1461 -46.7181,29.435 -53.6418,-3.0657 -3.20165,14.8349 -21.389,11.1046 -14.4268,14.7101 c 0.61645,0.6401 1.23375,1.2765 1.85162,1.9095 l 0.5717,13.1287 6.99154,0.034 4.66996,-4.3003 18.7756,33.4082 -1.01801,12.4857 -8.20819,8.7163 0.0265,14.6822 -6.32465,7.736 5.46852,10.0852 -0.0958,31.3038 -8.72432,11.6929 4.40577,9.607 12.4669,7.1978 5.31548,9.7304 3.15976,20.8652 9.45734,9.64 -0.78146,5.7139 -6.43722,-0.3027 -14.4753,-11.7085 -13.4618,-1.1616 -2.36462,6.7097 1.16336,8.5752 19.6272,19.7044 3.94949,11.8288 -5.16072,4.6786 -9.01673,-0.7858 -1.77952,-10.5332 -19.6978,-11.4364 -18.4003,-0.1485 -9.5149,7.4068 -21.5341,0.2203 -7.20358,6.4022 -4.24902,7.7049 -12.4196,1.4361 -5.15132,26.6321 -19.2253,13.3669 -10.2214,43.2491 -12.7003,9.811 -0.88691,7.0226 -17.5159,11.6039 -20.3226,21.7823 -3.03009,7.2107 -7.72227,12.6701 -0.23142,14.7626 -6.15109,3.3257 -7.55185,-5.0026 -9.00961,13.6377 -7.46492,6.0126 -7.46207,11.3685 -9.88027,15.0535 -1.20896,23.6197 19.9116,27.4683 12.4353,-0.1647 9.3744,8.4447 7.81005,-4.2502 -8.97085,-12.1762 8.12612,-15.2619 20.6295,-4.0073 9.47358,37.8285 10.8473,5.6421 5.0111,21.0644 14.8338,5.8418 16.5347,49.7114 62.192,75.7388 17.5817,-2.3324 6.51018,-40.4539 14.8007,-6.1471 46.9185,32.1875 23.71265,0.075 9.5391,7.9546 8.9601,18.917 31.0208,-0.2184 16.2223,-45.8976 8.3145,-4.9883 -7.4915,-76.0138 50.0064,-46.2031 34.5841,-11.6481 -10.8949,-13.7024 0.01,-70.4207 -15.6808,-10.4317 -11.7866,1.6365 -14.5631,-12.7616 2.2868,-14.2527 -7.4356,-16.466 -13.2895,-8.7172 25.1903,-25.7059 13.2824,-3.8956 4.9484,-16.0071 28.5114,-13.9073 10.0627,-29.1845 26.0262,-12.4088 0.8442,-7.4248 30.6067,7.05 5.7444,-15.4713 -2.4769,-41.0746 -17.2226,-14.4092 12.763,-20.9567 28.0135,0.1237 14.5759,-10.8689 16.226,2.1158 14.2766,9.8572 6.1377,-37.7196 14.9643,-9.1062 72.6517,-13.0435 3.3834,-33.7299 41.1154,-19.4029 8.7312,7.1346 14.8529,-4.4696 12.5002,-26.7863 6.0642,5.0325 35.1387,1.6572 36.9117,-7.1722 z"
- inkscape:connector-curvature="0"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124839760"
- class="fil1 str2"
- points="1646.69,1982.92 1681,1893.37 1670.36,1843.89 1615.98,1806.59 1600.45,1764.83 1600.37,1741.99 1611.43,1732.28 1612.08,1712.15 1601.44,1698.83 1605.92,1682.79 1555.24,1672.39 1540.33,1615.02 1545.72,1594.85 1565.07,1588.4 1572.7,1572.6 1565.67,1563.26 1574.25,1545.67 1566.06,1536.2 1539.81,1533.78 1550.79,1496.63 1552.94,1464.05 1556.39,1452.45 1519.34,1460.14 1484.2,1458.48 1478.14,1453.45 1465.64,1480.24 1450.78,1484.71 1442.05,1477.57 1400.94,1496.98 1397.55,1530.71 1324.9,1543.75 1309.94,1552.85 1303.8,1590.57 1289.52,1580.72 1273.3,1578.6 1258.72,1589.47 1230.71,1589.35 1217.95,1610.3 1235.17,1624.71 1237.65,1665.79 1231.9,1681.26 1201.29,1674.21 1200.45,1681.63 1174.42,1694.04 1164.36,1723.23 1135.85,1737.13 1130.9,1753.14 1117.62,1757.04 1092.43,1782.74 1105.72,1791.46 1113.15,1807.93 1110.87,1822.18 1125.43,1834.94 1137.22,1833.3 1152.9,1843.74 1152.89,1914.16 1163.78,1927.86 1207.19,1944.29 1258.55,1948.2 1320.53,1987.87 1360.91,2034.47 1387.76,1972.61 1455.48,1985.14 1556.27,1967.15 1577.17,2020.35 1590.75,2005.54 1616.07,2007.81 1614.27,2006.04"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124839736"
- class="fil1 str2"
- points="1485.88,2248.99 1464.08,2264.8 1481.78,2288.71 1463.16,2314.29 1438.17,2303.4 1434.12,2315.59 1421.03,2319.07 1438.93,2358.55 1451.15,2362.31 1479.1,2388 1481.01,2398.62 1495.39,2410.75 1489.33,2425.11 1503.41,2435.19 1517.62,2426.52 1526.07,2436.91 1526.09,2453.63 1544.88,2484.29 1556.03,2545.38 1575.32,2553.81 1583.06,2571.55 1576.69,2579.58 1588.01,2602.55 1575.24,2639.59 1665.27,2590.89 1683.08,2572.45 1723.18,2502.21 1752.06,2457.97 1771.07,2450.53 1806.32,2384.96 1848.05,2252.59 1835.88,2221.84 1800.69,2193.23 1789.05,2153.18 1763.98,2135.88 1732.06,2110.73 1687.04,2090.28 1668.91,2064.69 1615.81,2008.01 1590.62,2005.73 1577.04,2020.53 1556.13,1967.36 1455.35,1985.35 1387.63,1972.83 1371.85,2008.96 1391.5,2030.84 1407.04,2032.02 1411,2064.1 1419.71,2071.17 1413.09,2080.85 1417.03,2117.75 1432.35,2126.8 1432.73,2148.51 1419.08,2173.46 1430.02,2183.28 1453.3,2232.2"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124836256"
- class="fil1 str2"
- points="1110.41,2684 1091.63,2678 1088.98,2685.08 1078.95,2711.93 1075.46,2744.04 1085.02,2750.82 1085.72,2763.48 1100.22,2777.05 1108.9,2778.31 1110.07,2793.94 1120.95,2789.57 1137.1,2815.17 1152.26,2807.36 1152.52,2791.73 1172.74,2792.15 1172.81,2819.03 1200.87,2832.93 1217.13,2827.42 1238.68,2822.25 1231.64,2807.96 1237.75,2796.12 1219.84,2776.96 1201.56,2779.62 1182.67,2768.32 1189.19,2758.34 1204.56,2759.61 1208.29,2752.58 1246.36,2752.77 1270.32,2767.13 1291.58,2758.42 1324.79,2765.24 1374.61,2760.91 1400.05,2729.45 1407.65,2710.65 1421.92,2721.53 1459.43,2721.3 1464.27,2704.28 1494.89,2705.66 1525.75,2695.78 1544.82,2664.15 1569.12,2655.94 1574.78,2639.83 1575.24,2639.59 1588.01,2602.55 1576.69,2579.58 1583.06,2571.55 1575.32,2553.81 1556.03,2545.38 1544.88,2484.29 1526.09,2453.63 1526.07,2436.91 1517.62,2426.52 1503.41,2435.19 1489.33,2425.11 1495.39,2410.75 1481.01,2398.62 1479.1,2388 1451.15,2362.31 1438.93,2358.55 1428.86,2361.48 1402.76,2387.27 1389.03,2387.28 1389.08,2416.75 1377.16,2415.27 1367.72,2430.91 1378.59,2439.15 1372.33,2451.98 1390.09,2451.29 1391.34,2466.37 1408.03,2462.28 1431.03,2490.93 1423.76,2508.74 1377.71,2490.78 1349.11,2494.04 1331.64,2478.64 1306,2477.13 1291.23,2451.36 1240.04,2406.84 1215.45,2423.49 1204.84,2410.01 1183.37,2415.36 1177.82,2423.69 1162.88,2417.16 1146.97,2425.78 1136.42,2433.1 1153.07,2451.48 1138.33,2456.7 1129.62,2493.64 1111.94,2484.65 1087.34,2499.92 1073.45,2528.26 1095.71,2569.11 1089.18,2578.96 1094.35,2633.26 1115.66,2664.63"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124857376"
- class="fil1 str2"
- points="1430.02,2183.28 1419.08,2173.46 1432.73,2148.51 1432.35,2126.8 1417.03,2117.75 1413.09,2080.85 1419.71,2071.17 1411,2064.1 1407.04,2032.02 1391.5,2030.84 1371.85,2008.96 1360.87,2034.42 1320.53,1987.87 1258.55,1948.2 1207.19,1944.29 1163.78,1927.86 1129.2,1939.51 1079.2,1985.78 1086.69,2061.72 1078.37,2066.71 1062.15,2112.61 1055.07,2138.69 1065.73,2153.22 1069.09,2206.51 1089.65,2234.84 1077.41,2243.02 1087.11,2252.61 1079.04,2266.19 1049.57,2270.03 1091.51,2322.46 1103.87,2319.42 1121.72,2346.67 1126.64,2375.5 1106.95,2396.56 1107,2405.1 1129.41,2419.45 1140.29,2418.05 1146.97,2425.78 1162.88,2417.16 1177.82,2423.69 1183.37,2415.36 1204.84,2410.01 1215.45,2423.49 1240.04,2406.84 1291.23,2451.36 1306,2477.13 1331.64,2478.64 1349.11,2494.04 1377.71,2490.78 1423.76,2508.74 1431.03,2490.93 1408.03,2462.28 1391.34,2466.37 1390.09,2451.29 1372.33,2451.98 1378.59,2439.15 1367.72,2430.91 1377.16,2415.27 1389.08,2416.75 1389.03,2387.28 1402.76,2387.27 1428.86,2361.48 1438.93,2358.55 1421.03,2319.07 1434.12,2315.59 1438.17,2303.4 1463.16,2314.29 1481.78,2288.71 1464.08,2264.8 1485.88,2248.99 1453.3,2232.2"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124853848"
- class="fil1 str2"
- points="701.798,2879.74 696.659,2884.78 676.072,2862.29 645.998,2873.75 631.458,2873.97 629.168,2863.92 614.825,2853.04 604.484,2859.38 604.271,2867.68 616.528,2875.01 608.333,2894.11 593.691,2897.09 592.29,2911.08 600.574,2920.76 593.733,2926.89 594.498,2938.88 619.967,2951.96 639.263,2942.32 674.917,2969.69 706.523,2980.15 752.417,2988.06 758.077,3000.59 768.943,2992.27 780.117,2997.59 782.852,3008.01 810.923,3002.5 809.7,2988.07 817.6,2977.44 835.253,2980.06 865.162,2976.12 875.258,2971.8 895.324,2977.5 893.857,2968.57 907.1,2958.94 897.939,2952.53 888.946,2960.18 891.799,2947.46 902.202,2944.25 897.85,2933.28 891.37,2919.27 901.478,2910.74 883.856,2889.32 891.308,2858.88 918.923,2842.42 916.723,2804.85 901.898,2793.4 890.301,2798.88 893.515,2786.84 868.71,2776.92 851.034,2784.83 839.203,2773 833.758,2785.32 808.832,2775.62 780.133,2798.12 775.339,2794.5 771.866,2799.95 772.241,2806.46 775.576,2810.39 766.709,2820.94 697.552,2847.18"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124859200"
- class="fil1 str2"
- points="875.177,2729.06 952.598,2721.78 968.256,2665.41 991.77,2654.62 1004.25,2660.56 1020.62,2632.25 1038.87,2641.43 1059.76,2673.6 1089.21,2685.26 1079.08,2712.26 1075.59,2744.39 1085.15,2751.18 1085.86,2763.84 1100.35,2777.42 1109.03,2778.68 1110.2,2794.33 1100.89,2799.5 1092.94,2820.34 1071.79,2834.66 1049.87,2834.59 1046.16,2848.06 1052.01,2860.71 1056.41,2883.28 1043.9,2882.52 1038.47,2892.87 1054.6,2899.79 1046.81,2914.56 1047.42,2931.6 1061.07,2940.64 1063.31,2956.43 1067.62,2958.58 1065.96,2972.56 1052.68,2979.68 1039.93,2968.24 1019.93,2972.61 1019.16,2958.78 1005.74,2968.25 997.134,2966.83 968.842,2975.59 961.777,2966.76 960.302,2967.6 953.263,2942.05 948.506,2937.81 932.585,2954.49 912.046,2929.51 897.85,2933.28 891.37,2919.27 901.478,2910.74 883.856,2889.32 891.308,2858.88 918.923,2842.42 916.723,2804.85 901.898,2793.4 890.301,2798.88 893.515,2786.84 868.71,2776.92 866.502,2724.03"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <g
- id="g99">
- <polygon
- id="_124835824"
- class="fil1 str2"
- points="272.766,3011.9 264.519,3010.17 262.843,2978.21 269.052,2977.83 279.711,2993.66"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124854976"
- class="fil1 str2"
- points="247.784,2994.34 255.34,3006.32 252.8,3017.99 244.987,3022.33 238.476,3007.56 239.838,2999.49"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124848616"
- class="fil1 str2"
- points="264.712,3016.49 271.4,3024.56 268.86,3039.27 263.651,3044.05 257.14,3040.14 254.162,3025.55"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124852216"
- class="fil1 str2"
- points="240.646,3045.78 232.834,3047.96 227.625,3042.31 230.856,3032.13 240.582,3036.29"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124865992"
- class="fil1 str2"
- points="207.225,3045.35 207.225,3044.92 210.022,3036.03 215.841,3031.95 221.114,3037.1 217.208,3047.09 209.838,3048.7"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124847728"
- class="fil1 str2"
- points="211.131,3074.02 210.263,3069.67 210.022,3060.79 218.88,3056.71 224.153,3064.03 225.889,3068.37 215.915,3077.37"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124856152"
- class="fil1 str2"
- points="195.939,3087.92 192.901,3075.76 196.132,3070.35 202.386,3071.48 204.62,3077.06 204.609,3081.37 205.932,3087.8"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124861384"
- class="fil1 str2"
- points="200.289,3115.16 188.56,3114.41 185.836,3102.31 180.314,3096.17 186.149,3087.72 195.875,3093.63 202.016,3107.03 200.703,3110.04"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124839040"
- class="fil1 str2"
- points="163.395,3039.15 140.815,3037.53 141.249,3030.58 147.084,3026.04 163.374,3034.02"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124846792"
- class="fil1 str2"
- points="162.305,3068.36 154.259,3079.63 149.071,3079.54 149.935,3064.62 143.853,3058.38 150.798,3051.43 156.633,3046.89 160.407,3053.17 157.211,3060.58"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124864792"
- class="fil1 str2"
- points="151.655,3146.96 136.484,3146.44 133.441,3141.5 147.326,3130.05 154.897,3124.21 173.863,3126.57 178.914,3132.68 172.288,3140.89"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124846936"
- class="fil1 str2"
- points="166.183,3106.84 171.969,3107.92 178.799,3114.4 179,3119.16 166.867,3117.77 161.654,3111.96"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124848880"
- class="fil1 str2"
- points="123.462,3114.73 121.721,3099.37 131.459,3087.72 135.232,3088.35 136.811,3096.63 131.054,3107.45 134.293,3114.81"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124866136"
- class="fil1 str2"
- points="98.813,3085.09 90.3449,3105.11 92.4564,3108.56 100.794,3108.78 105.859,3105.46 122.12,3114.24 122.2,3120.94 118.794,3128.57 124.795,3134.78 123.752,3142.38 113.857,3149.22 111.359,3138.67 104.948,3139.89 100.309,3129.31 86.3825,3119.37 74.1171,3122.07 72.4157,3111.57 67.6728,3105.54 58.1744,3104.57 52.4884,3098.18 50.8534,3085.95 41.1199,3074.77 34.4915,3074.87 29.1595,3073.65 26.3728,3083.28 18.8654,3083.7 13.3646,3071.39 16.3306,3058.37 11.012,3052.68 14.3162,3043.96 33.5849,3035.75 42.3408,3038.52 51.701,3037.09 59.1953,3027.51 67.5138,3032.8 65.2332,3047.71 71.3886,3049.28 76.6471,3043.26 74.7148,3038.85 74.6712,3032.67 70.0742,3024.81 55.7411,3022.76 68.3286,3006.26 80.6746,3000.85 96.5307,3016.21 111.167,3018.9 117.585,3029.69 126.015,3033.32 127.334,3043.78 137.343,3055.96 129.954,3077.59 112.327,3080.44 101.229,3068.17 94.4933,3067.5 88.7378,3077.46"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124838896"
- class="fil1 str2"
- points="240.529,3169.96 238.749,3175.41 232.835,3175.24 227.614,3183.44 214.613,3173.8 217.212,3166.26 230.856,3159.83 234.906,3162.65 242.604,3166.52"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- </g>
- <g
- id="g116">
- <polygon
- id="_124848376"
- class="fil1 str2"
- points="443.893,2886.79 438.309,2878.57 411.303,2875.96 400.797,2846.4 389.267,2836 368.196,2851.22 367.103,2825.2 354.009,2835.06 342.792,2835.93 331.517,2820.04 326.984,2813.34 318.655,2817.98 323.011,2841.9 333.992,2853.29 331.73,2861.06 324.87,2855.63 318.389,2842.59 311.04,2843.08 307.199,2847.1 313.722,2854.08 313.266,2861.92 299.889,2864.62 300.748,2870.3 316.01,2879.55 314.431,2884.63 311.198,2886.84 309.348,2892.27 311.779,2901.47 312.318,2914.66 317.44,2922.78 317.118,2940.85 328.157,2969.79 342.51,2982.42 346.88,3001.15 358.094,3000.15 363.077,2978.55 383.336,2967.69 390.139,2970.75 383.218,2988.61 375.283,2987.85 367.985,2998.1 367.22,3006.12 383.919,3002.04 405.308,3001.37 413.36,3009.16 412.964,3017.12 405.489,3016.74 402.264,3020.74 413.217,3030.73 422.098,3025.01 425.606,3027.77 423.925,3048.85 431.993,3049.37 441.956,3058.82 479.824,3051.51 485.448,3046.64 494.459,3053.5 479.662,3077.15 479.701,3086.82 495.474,3086.45 505.365,3095.39 528.397,3088.6 564.025,3061.07 569.635,3070.42 561.105,3080.81 540.111,3106.4 544.117,3127.6 550.845,3131.65 560.044,3137.2 559.508,3141.76 584.629,3141.3 603.544,3121.5 613.217,3129.19 641.986,3114.91 658.085,3122.45 656.979,3088.1 671.961,3082.95 674.926,3063.09 684.832,3062.04 681.624,3042.72 671.403,3038.58 672.733,3024.74 696.041,3021.54 707.161,2996.65 701.625,2987.16 706.523,2980.15 674.917,2969.69 639.263,2942.32 619.967,2951.96 594.498,2938.88 593.733,2926.89 600.574,2920.76 592.29,2911.08 593.691,2897.09 608.333,2894.11 616.528,2875.01 604.271,2867.68 604.381,2859.88 596.51,2860.89 597.864,2850.36 578.371,2854.16 566.618,2840.33 550.978,2835.08 548.953,2862.17 523.876,2855.3 500.239,2862.47 505.417,2869 478.834,2876.05 459.805,2872.48"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124847464"
- class="fil1 str2"
- points="299.677,3000.61 295.944,2995.66 294.427,2993.64 291.924,2974.3 295.529,2971.31 308.358,2990.62 308.358,2996.39 308.358,3000.61"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124847848"
- class="fil1 str2"
- points="329.031,2986.39 329.231,2987.11 336.138,2993.66 333.051,3002.93 331.797,3006.69 324.877,3005.19 313.092,2990.17 313.193,2977.77 317.666,2973.92 328.759,2985.41"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124847872"
- class="fil1 str2"
- points="304.018,2973.25 297.507,2966.44 294.861,2963.67 293.66,2953.01 303.342,2946.12 310.095,2951.09 310.596,2959.87 310.963,2966.3"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124847752"
- class="fil1 str2"
- points="335.282,3215.49 330.944,3218.96 329.182,3220.36 321.389,3216.37 331.857,3205.19 341.683,3205.66 342.471,3208.36 343.048,3210.35"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124863352"
- class="fil1 str2"
- points="368.657,3186.46 365.666,3190.73 359.476,3190.18 356.961,3189.96 353.509,3179.88 358.325,3174.39 362.675,3167.4 368.594,3173.08 368.63,3180.81"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124864144"
- class="fil1 str2"
- points="280.679,3019.82 281.073,3016.86 286.414,3013.45 291.366,3023.26 288.896,3028.74 287.09,3032.75 279.711,3027.11"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124853872"
- class="fil1 str2"
- points="297.507,3047.09 294.421,3043.07 293.167,3041.44 295.831,3034.24 302.474,3033.43 308.728,3042.37 307.512,3044.59 306.622,3046.22"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124845808"
- class="fil1 str2"
- points="315.303,3039.7 312.217,3035.38 310.963,3033.62 312.325,3020.77 319.402,3019.96 321.38,3034.06 319.518,3034.69 318.157,3035.15"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124853584"
- class="fil1 str2"
- points="350.692,3028.72 348.107,3033.41 343.299,3033.56 341.346,3033.62 339.176,3031.45 339.236,3023.38 354.56,3013.88 356.538,3020.59 353.161,3025.29"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124858600"
- class="fil1 str2"
- points="304.387,3084.07 314.704,3083.78 322.248,3083.57 321.801,3090.79 321.06,3096.34 320.76,3098.6 315.034,3100.47 308.792,3103.12 288.826,3096.17 291.924,3078.11 298.568,3077.3"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124854832"
- class="fil1 str2"
- points="341.406,3096.35 351.956,3095.54 352.133,3102.75 351.092,3107.21 350.33,3110.47 349.762,3116.42 348.089,3119.2 347.41,3120.33 341.16,3124.66 328.055,3125.23 322.248,3117.89 330.061,3110.07 331.066,3108.12"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124841248"
- class="fil1 str2"
- points="317.436,3078.47 314.869,3081.4 309.4,3080.19 306.19,3077.96 304.886,3077.06 308.172,3073.76 308.791,3071.41 314.495,3065.51 322.007,3064.27 320.946,3074.45"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124855624"
- class="fil1 str2"
- points="333.45,3074.53 333.593,3068.55 339.369,3065.14 350.192,3087.44 343.578,3090.98 338.742,3093.56 333.099,3089.22"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124855696"
- class="fil1 str2"
- points="376.938,3026.67 378.674,3014.08 383.075,3010.35 393.191,3016.49 394.3,3021.89 404.193,3036.03 411.428,3046.36 409.442,3055.33 408.908,3061.53 408.692,3064.04 401.4,3071.3 391.758,3069.68 392.334,3063.18 394.302,3052.47 384.982,3044.8"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124855120"
- class="fil1 str2"
- points="390.822,3105.15 388.961,3107.86 377.541,3110.77 370.807,3120.65 368.071,3124.66 360.175,3121.75 362.605,3104.94 365.219,3094.43 383.208,3094.24 393.368,3101.45"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124851424"
- class="fil1 str2"
- points="374.131,3056.09 363.917,3058.38 357.435,3052.51 354.802,3050.13 355.915,3044.14 358.768,3039.89 372.356,3044.29 373.466,3050.56 373.85,3053.76"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124857712"
- class="fil1 str2"
- points="381.989,3117.07 384.751,3114.41 404.653,3124.03 402.716,3129.45 388.673,3129.27 378.405,3129.14 375.192,3123.61"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124849816"
- class="fil1 str2"
- points="410.742,3098.14 415.135,3095.74 420.713,3099.27 415.303,3112.51 406.526,3113.58 400.107,3114.37 399.933,3104.07"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124849072"
- class="fil1 str2"
- points="451.221,3063.78 479.133,3056.88 484.149,3064.9 464.092,3087.83 449.426,3104.6 439.897,3105.42 435.108,3099.99 433.162,3097.79 434.794,3088.66 423.633,3085.46 421.211,3076.19 428.723,3061.89 440.744,3064.9"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124849864"
- class="fil1 str2"
- points="459.76,3118.71 459.171,3118.43 453.445,3125.11 447.928,3125.11 445.687,3125.1 440.908,3120.02 454.189,3104.07 463.314,3103.56 468.892,3107.09 460.565,3119.08"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124849672"
- class="fil1 str2"
- points="477.802,3177.79 481.074,3175.09 482.403,3174 493.264,3175.66 500.932,3186.84 497.368,3191.84 489.077,3190.17 483.015,3188.96"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124848568"
- class="fil1 str2"
- points="457.845,3188.2 453.066,3188.09 450.891,3177.35 453.876,3174.62 455.089,3173.51 455.969,3173.02 459.398,3170.09 466.353,3174.36 465.774,3182.06 464.38,3188.36"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124849720"
- class="fil1 str2"
- points="476.853,3201.49 480.242,3201.72 479.663,3210.73 467.389,3219.36 460.618,3216.42 455.666,3214.27 468.513,3200.93"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124858408"
- class="fil1 str2"
- points="550.285,3136.71 552.295,3137.44 548.677,3145.58 539.905,3147.1 538.632,3144.5 537.701,3142.6 545.34,3134.91"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124849504"
- class="fil1 str2"
- points="540.821,3166.16 538.981,3167.25 531.315,3170.77 527.284,3159.11 532.95,3154.41 537.093,3150.98 545.35,3163.5"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124858072"
- class="fil1 str2"
- points="456.601,3155.12 459.535,3140.79 476.587,3127.59 475.468,3120.93 469.524,3113.58 475.468,3108.33 475.527,3102.43 479.816,3098.14 488.937,3104.5 546.41,3090.76 531.026,3112.24 536,3123.5 539.638,3131.74 524.275,3148.27 524.447,3155.21 524.517,3158.02 518.462,3166.46 505.873,3168.41 490.262,3162.06 480.217,3168.39 464.774,3167.46"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- </g>
- <polygon
- id="_124860688"
- class="fil1 str2"
- points="645.754,2416.75 673.61,2427.63 677.504,2417.78 698.495,2420.78 724.382,2399.46 735.962,2406.83 738.921,2431.19 750.321,2435.93 770.715,2412.47 797.152,2416.3 803.266,2405.07 825.52,2404.73 831.235,2365.9 823.655,2355.54 829.202,2347.65 823.967,2331.65 806.687,2286.3 815.776,2279.18 802.543,2261.43 797.81,2223.04 808.231,2208.56 778.643,2194.57 791.702,2189.18 766.274,2157.05 741.564,2149.62 714.195,2113.64 699.942,2096.18 682.31,2087.69 658.233,2087.36 649.109,2114.14 637.041,2124.73 619.645,2119.72 586.682,2125.52 555.396,2140.77 555.031,2165.28 563.071,2165.56 569.468,2193.63 553.069,2193.43 518.675,2253.04 521.205,2270.12 491.621,2301.21 454.775,2288.95 431.183,2264.34 424.509,2272.14 420.961,2308.75 428.463,2316.31 404.054,2342.78 384.527,2400.54 392.2,2419.5 403.237,2423.14 403.809,2451.54 410.475,2454.41 417.712,2464.96 402.523,2474.65 405.334,2489.15 397.085,2495.68 393.829,2524.51 407.269,2536.82 440.787,2542.76 479.433,2509.9 491.272,2509.84 512.035,2477.97 527.667,2477.44 541.062,2450.11 559.474,2459.25 570.796,2459.34 599.722,2459.44 631.338,2442.18"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124854568"
- class="fil1 str2"
- points="855.993,2624.48 863.048,2625.71 862.962,2632.14 855.746,2632.58 853.548,2626.45 848.018,2630.15 850.892,2639.92 849.764,2652.02 857.353,2656.57 859.788,2655.2 869.772,2661.13 860.037,2667.95 855.727,2677.44 857.886,2690.29 876.373,2705.54 875.177,2729.06 952.598,2721.78 968.256,2665.41 991.77,2654.62 1004.25,2660.56 1020.62,2632.25 1038.87,2641.43 1059.76,2673.6 1089.12,2685.39 1091.76,2678.3 1110.54,2684.31 1115.79,2664.92 1094.48,2633.52 1089.31,2579.19 1095.84,2569.33 1073.58,2528.45 1087.47,2500.09 1112.07,2484.81 1129.75,2493.81 1138.47,2456.84 1153.2,2451.62 1136.55,2433.22 1147.1,2425.9 1140.42,2418.16 1129.54,2419.56 1107.13,2405.2 1107.08,2396.66 1126.77,2375.58 1121.85,2346.73 1104,2319.46 1091.64,2322.51 1049.7,2270.03 1079.17,2266.2 1087.24,2252.6 1077.54,2243.01 1089.78,2234.82 1069.22,2206.47 1065.73,2153.22 1055.2,2138.59 1062.15,2112.61 1031.13,2112.83 1022.17,2093.91 1012.63,2085.96 988.916,2085.88 941.998,2053.69 927.197,2059.84 920.687,2100.29 902.573,2102.34 890.26,2104.44 866.13,2130.15 863.575,2199.98 840.551,2194.96 814.137,2204.71 807.95,2208.76 797.81,2223.04 802.543,2261.43 815.776,2279.18 806.687,2286.3 824.237,2332.36 829.202,2347.65 823.655,2355.54 831.235,2365.9 825.52,2404.73 803.266,2405.07 797.152,2416.3 770.715,2412.47 750.148,2435.87 750.251,2464.15 771.722,2477 782.995,2474.88 790.749,2497.03 811.397,2501.12 824.279,2496.5 846.796,2520.41 853.961,2546.7 839.501,2569.81 835.201,2562.17 821.734,2581.68"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124851472"
- class="fil1 str2"
- points="555.341,2497.17 554.459,2523.43 536.267,2525.2 527.031,2540.67 540.911,2547.49 540.927,2561.29 556.397,2572.87 562.553,2594.72 553.841,2625.16 540.705,2620.89 536.228,2644.07 547.471,2654.9 533.606,2666.6 524.204,2695.59 543.685,2709.22 541.029,2722.35 516.578,2725.93 507.308,2732.96 508.209,2746.41 521.353,2778.54 547.643,2787.26 556.244,2777.91 571.268,2793.24 564.401,2817.34 576.782,2838.73 566.618,2840.33 578.371,2854.16 597.864,2850.36 596.51,2860.89 604.484,2859.38 614.825,2853.04 629.168,2863.92 631.458,2873.97 645.998,2873.75 676.072,2862.29 696.659,2884.78 701.798,2879.74 697.552,2847.18 766.709,2820.94 775.576,2810.39 772.241,2806.46 771.866,2799.95 775.339,2794.5 780.133,2798.12 808.832,2775.62 833.758,2785.32 839.203,2773 851.034,2784.83 868.71,2776.92 866.502,2724.03 875.177,2729.06 876.373,2705.54 857.886,2690.29 855.727,2677.44 860.037,2667.95 869.772,2661.13 859.788,2655.2 857.353,2656.57 849.764,2652.02 850.892,2639.92 848.018,2630.15 853.548,2626.45 855.746,2632.58 862.962,2632.14 863.048,2625.71 855.993,2624.48 821.734,2581.68 835.201,2562.17 839.501,2569.81 853.961,2546.7 846.796,2520.41 824.279,2496.5 811.397,2501.12 790.749,2497.03 782.995,2474.88 771.722,2477 750.251,2464.15 750.321,2435.93 738.921,2431.19 735.962,2406.83 724.382,2399.46 698.495,2420.78 677.504,2417.78 673.61,2427.63 645.754,2416.75 631.338,2442.18 599.722,2459.44 570.925,2459.2 570.936,2489.64"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <path
- id="_124852264"
- class="fil1 str2"
- d="m 330.018,2773.03 5.87806,3.6842 0.89147,4.1264 0.65207,3.0179 -3.90645,5.2123 -4.01247,0.3086 -1.63018,0.1257 -2.64563,-10.0094 1.45035,-2.7836 3.32278,-3.6821 z m 21.2685,-141.603 4.92019,1.3962 5.70678,10.4659 4.17349,7.6536 -4.70929,5.2377 -7.14544,-0.018 -2.90298,-0.01 -6.9448,-7.3843 5.16728,-5.2314 1.73478,-12.1124 z m -19.6668,188.75 6.89607,-13.8531 7.37999,-42.1245 7.56752,5.0399 3.83492,-4.8703 -0.794,-6.6211 4.74292,-24.518 -10.3172,-24.1871 1.9471,-3.0372 4.71698,-1.5401 7.05852,2.7619 5.43546,-0.9924 -3.65423,-8.9301 -11.287,-5.953 -0.87722,-7.9605 7.60372,0.299 11.9813,3.5325 -0.34086,-4.5086 -6.61905,-5.3514 -7.10469,-14.4245 2.99874,-5.6943 5.61301,0.4024 8.92354,10.1747 6.698,0.2337 -12.9731,-29.1292 0.0108,-26.4175 -13.4715,-17.4435 2.70719,-5.9678 7.88757,-0.8359 0.51129,-4.6836 -6.05077,-4.707 -3.7175,-23.7106 -8.97313,-5.505 -2.06765,-7.6733 15.2106,-13.8608 30.7315,-3.6103 13.4402,12.3033 33.5185,5.947 38.6456,-32.8695 11.8388,-0.054 20.7637,-31.8695 15.6312,-0.5336 13.3957,-27.3312 18.4117,9.1425 11.4512,-0.048 0.0108,30.4422 -15.5953,7.5271 -0.88207,26.2619 -18.1913,1.7684 -9.23646,15.4676 13.8805,6.8188 0.0154,13.803 15.4705,11.5774 6.15593,21.8547 -8.7115,30.4391 -13.1364,-4.2698 -4.47759,23.1751 11.2437,10.8367 -13.8648,11.6991 -9.40262,28.9876 19.481,13.6291 -2.65617,13.1287 -24.4507,3.5818 -9.27009,7.0315 0.90116,13.4541 13.1441,32.122 26.2895,8.7234 8.60177,-9.3541 15.0236,15.3354 -6.86671,24.0939 12.3811,21.3936 -10.1641,1.6011 -15.6406,-5.2471 -2.0249,27.0827 -25.0769,-6.8693 -23.6365,7.1762 5.17782,6.5253 -26.5834,7.0506 -19.0284,-3.5705 -15.9119,14.3154 -5.5848,-8.227 -27.0052,-2.6114 -10.5064,-29.5513 -11.5298,-10.403 -21.0715,15.2223 -1.09239,-26.0202 -13.0942,9.8563 -11.2172,0.8664 -11.1722,-15.7441 z"
- inkscape:connector-curvature="0"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <g
- id="g149">
- <polygon
- id="_124852096"
- class="fil1 str2"
- points="1046.81,2914.56 1054.6,2899.79 1038.47,2892.87 1043.9,2882.52 1056.41,2883.28 1052.01,2860.71 1046.16,2848.06 1049.87,2834.59 1071.79,2834.66 1092.94,2820.34 1100.89,2799.5 1110.2,2794.33 1121.08,2789.95 1137.23,2815.57 1152.39,2807.76 1152.65,2792.11 1172.87,2792.53 1172.94,2819.43 1201,2833.34 1217.28,2827.87 1227.47,2851 1211.5,2856.94 1206.37,2874.25 1220.88,2891.94 1212.85,2896.74 1220.55,2909.89 1246.24,2917.38 1253.16,2929.55 1272.39,2939.79 1294.15,2939.26 1301.48,2954.11 1317.8,2956.53 1325.69,2975.93 1343.75,2985.16 1327.85,3000.45 1327.36,3010.63 1316.96,3017.51 1304.85,3009.58 1300.01,3013.29 1296.24,3030.21 1290.9,3038.94 1282.82,3039.19 1273.05,3040.6 1266.64,3037.07 1260.75,3041.02 1253.67,3047.69 1244.57,3034.19 1220.98,3031.41 1192.37,3022.07 1180.78,3033.71 1181.12,3052.38 1176.95,3059.87 1165.21,3059.51 1151.75,3046.07 1143.89,3053.24 1133.83,3053.59 1127.53,3046.94 1120.87,3051.57 1104.46,3054.96 1100.75,3043.55 1118.41,3009.43 1116.35,3006.32 1106.42,3004.64 1101.11,2986.67 1087.65,2984.09 1083.5,2966.13 1067.17,2958.28 1063.31,2956.43 1061.07,2940.64 1047.42,2931.6"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124856392"
- class="fil1 str2"
- points="1157.3,3082.72 1153.82,3088.51 1147.22,3084.67 1141.77,3080.94 1151.22,3073.1"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124840984"
- class="fil1 str2"
- points="1130.82,3055.78 1132.99,3063.75 1119.87,3073.81 1112.25,3067.04 1123.01,3055.72"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124850200"
- class="fil1 str2"
- points="1214.16,3108.49 1205.38,3108.12 1205.57,3100.48 1210.19,3095.95 1212.42,3096.12 1218.33,3101.66 1221.53,3104"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124846864"
- class="fil1 str2"
- points="1197.23,3075.77 1191.15,3075.91 1185.85,3063.38 1189.95,3049.66 1197.23,3052.25"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- </g>
- <polygon
- id="_124848544"
- class="fil1 str2"
- points="1211.5,2856.94 1227.47,2851 1217.26,2827.83 1238.81,2822.65 1231.77,2808.35 1237.88,2796.5 1219.97,2777.33 1201.69,2779.99 1182.8,2768.68 1189.32,2758.7 1204.69,2759.97 1208.42,2752.94 1246.49,2753.13 1270.46,2767.5 1291.71,2758.78 1324.92,2765.61 1374.74,2761.27 1400.18,2729.79 1407.78,2710.97 1422.05,2721.86 1459.56,2721.64 1464.4,2704.6 1495.02,2705.98 1525.89,2696.09 1544.95,2664.44 1569.25,2656.22 1574.91,2640.11 1664.71,2591.89 1661.79,2594.86 1649.79,2628.83 1619.63,2656.59 1599.34,2699.18 1573.78,2717.29 1568.01,2735.14 1530.07,2799.12 1485.65,2829.93 1469.78,2836.4 1450.69,2869.07 1448.29,2890.48 1427.77,2895.06 1389.32,2928.71 1381.94,2948.43 1343.75,2985.16 1325.69,2975.93 1317.8,2956.53 1301.48,2954.11 1294.15,2939.26 1272.39,2939.79 1253.16,2929.55 1246.24,2917.38 1220.55,2909.89 1212.85,2896.74 1220.88,2891.94 1206.37,2874.25"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <path
- id="_124846648"
- class="fil1 str2"
- d="m 902.573,2102.34 -61.6602,-75.4558 -16.5347,-49.7114 -14.8338,-5.8419 -5.0111,-21.0641 -10.8473,-5.6423 -9.47358,-37.8285 -20.6295,4.0073 -8.12612,15.2619 8.97085,12.1759 -7.81005,4.2507 -9.3744,-8.445 -12.4353,0.1644 -19.9116,-27.4683 -9.53827,1.6604 -11.8875,-11.3437 -8.03378,5.7268 -1.05734,45.9874 -48.0644,2.1745 -5.88005,8.5924 -6.6276,0.1484 -6.00146,-7.2283 -13.1235,-0.077 c -0.33117,0.4954 -0.40555,0.04 -0.73586,0.535 l 14.3502,39.4746 6.25511,-8.4744 32.8707,24.5459 23.2158,-11.3209 6.08098,9.0449 10.6797,-8.2831 36.9741,29.7283 -8.41767,9.0256 -17.3546,0.3961 -10.8128,-8.8127 -13.8161,8.9352 9.11904,16.1191 8.46156,-2.409 20.5309,37.2579 -7.83798,26.1533 27.3184,35.3211 24.7101,7.4236 25.4286,32.1328 -13.0591,5.3904 29.5875,13.9871 5.90656,-3.8517 26.4138,-9.7466 23.024,5.017 2.555,-69.8268 24.1298,-25.7087 12.313,-2.0975 z"
- inkscape:connector-curvature="0"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <g
- id="g158">
- <path
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.26771;"
- d="m 898.15625,2913.75 -14.125,3.75 4.3125,10.9062 -10.8125,3.125 -2.375,12.7188 8.96875,-7.5938 9.09375,6.375 -13.15625,9.5626 1.4375,8.875 -19.9375,-5.6563 -10.0625,4.3125 -29.71875,3.9062 -17.5625,-2.5937 -7.875,10.5625 1.21875,14.3438 -27.90625,5.5 -2.71875,-10.375 -11.125,-5.2813 -10.8125,8.25 -5.625,-12.4375 -45.65625,-7.875 -4.875,6.9688 5.53125,9.4374 -11.0625,24.75 -23.1875,3.1876 -1.3125,13.75 10.15625,4.125 3.1875,19.2187 -9.84375,1.0625 -2.96875,19.75 -14.90625,5.125 1.125,34.1562 -16.03125,-7.5 -28.59375,14.1876 -9.625,-7.625 -18.8125,19.6874 -25,0.4688 -4.15625,35.4062 -9.0625,-4.6874 -11.21875,0.5 -2.40625,11.75 9.71875,12.8437 17.71875,3.0937 4.75,-4.625 0.40625,-15.8124 5.625,-4.5313 4.75,7.375 -2.5625,19.2813 -5.625,6.7812 -27.625,9.7188 -6.5,7.3124 6.9375,8.75 20.71875,-8.625 25.03125,0.2188 12.9375,-11.0625 0.0312,-7.1875 9.90625,-11 12.09375,1.5625 7.78125,5.5313 15.96875,-3.4063 12.53125,2.7187 6.4375,-4.9062 -2.53125,-9.3125 18.09375,-1.6875 36.6875,-15.6875 30.21875,-0.6875 22.0625,-12.1875 -0.90625,19.1563 4.71875,0.062 6.9375,-6.0624 6,3.5 -12.9375,16.9687 9.53125,0.7187 29.34375,-36.875 -0.0312,-9.875 2.15625,-5.125 5.21875,5.2188 26.75,-9.4062 10.03125,6.8437 14.125,0.1875 4.78125,-7.5625 2.09375,11.6875 10.8125,-9.1562 -1.6875,-12.5313 10.8125,3.3437 7.71875,-10.5 2.25,-6.9687 5.6875,-1.5625 13.625,-3.75 24.25,-0.6562 6.125,-7.5313 0.34375,-13.2813 15.9375,-1.7812 3.9375,14.625 12.625,15.6875 5,0.9687 7.4375,-8 8.1875,5.0938 4.25005,-5.4688 -4.6563,-14.9374 4.1875,-3.4063 8.3438,17.1875 5.0937,-2.0312 -0.9063,-12.5 4.9376,-1.7188 7.5624,3.75 5.5938,-2.4375 -9.3438,-16.5313 -2.625,-10.5312 -9.5312,-12.875 1.375,-8.0938 15.5312,14.8126 10.8438,11.2187 5.1562,11.4375 6.0626,-0.4688 -3.8438,-12.9687 13.5312,0.3437 8.8438,11 0.6875,-10.8124 7.4687,0.2812 13.3126,-11.9688 -3.125,-11.8437 17.5624,-33.9375 -2.0624,-3.0938 -9.875,-1.6874 -5.2813,-17.875 -13.375,-2.5626 -4.125,-17.8437 -15.8125,-7.5313 -1.6562,13.9063 -13.1876,7.0937 -12.6874,-11.375 -19.9063,4.3438 -0.75,-13.75 -13.34375,9.4062 -8.5625,-1.4062 -28.15625,8.7188 -7.03125,-8.7813 -1.4375,0.8125 -7,-25.4062 -4.75,-4.2188 -15.84375,16.5938 -20.40625,-24.8438 z"
- transform="matrix(1.00541, 0, 0, 1.00541, 9.04408, 0.00501389)"
- id="_124858432"
- sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
- <polygon
- id="_124862656"
- class="fil1 str2"
- points="925.18,3112.1 932.084,3112.1 935.15,3113.47 940.911,3113.82 938.458,3118.35 935.188,3121.94 924.874,3122.62 922.573,3118.73 920.359,3116.23"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124867096"
- class="fil1 str2"
- points="956.431,3114.27 958.424,3131.82 952.116,3132.8 950.352,3129.15 950.309,3119.71"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124213728"
- class="fil1 str2"
- points="970.755,3094.72 972.868,3106.03 978.467,3112.69 978.256,3120.46 976.76,3122.09 976.655,3125.74 971.522,3131.08 966.873,3127.16 966.412,3113.95 965.935,3096.25"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124211160"
- class="fil1 str2"
- points="1018.4,3119.64 1020.93,3124.87 1014.49,3131.51 1001.6,3129.76 1001.14,3125.24 1002.39,3118.84 1008.15,3117.26 1011.56,3114.27"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124241040"
- class="fil1 str2"
- points="1038.46,3103.96 1051.49,3097.33 1053.99,3108.34 1044.88,3110.23"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124219728"
- class="fil1 str2"
- points="1056.69,3091.36 1058.77,3084.39 1065.81,3084.3 1070.49,3094.88 1064.41,3098.07 1057.81,3094.22"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124230192"
- class="fil1 str2"
- points="1113.02,3078.37 1112.59,3085.47 1097.3,3082.93 1093.15,3076.16 1097.4,3070.49"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- </g>
- <g
- id="g168">
-
- <polygon
- id="_124228272"
- class="fil1 str2"
- points="623.04,3214.18 632.594,3211.71 629.263,3219.37 624.842,3220.55 619.862,3223.33 614.304,3221.84 610.188,3219.05 615.656,3212.66"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124212648"
- class="fil1 str2"
- points="709.416,3181.17 712.578,3182.96 718.244,3182.88 707.745,3191.88 698.859,3199.44 690.487,3195.16 695.955,3185.29 702.946,3181.16"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- </g>
- <g
- id="g173">
- <polygon
- id="_124851736"
- class="fil1 str2"
- points="569.454,1974.32 570.959,1969.43 577.903,1975.51 576.704,1989.53 573.135,1993.22 570.525,1995.92 565.75,1986.37"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124221384"
- class="fil1 str2"
- points="454.604,2077.04 457.238,2076.28 461.144,2080.19 460.813,2088.57 456.24,2089.75 452.897,2090.62 448.122,2078.89"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124218600"
- class="fil1 str2"
- points="491.136,2114.13 481.213,2114.63 476.51,2118.25 474.6,2119.72 469.825,2119.28 479.808,2103.21 488.923,2103.21 494.523,2108.46 492.567,2111.73"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124231944"
- class="fil1 str2"
- points="506.071,2139.25 503.724,2143.67 490.328,2137.22 482.23,2137.44 478.94,2137.53 475.034,2128.84 488.055,2120.59 501.968,2126.49 508.455,2123.19 509.281,2133.22"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124213416"
- class="fil1 str2"
- points="444.259,2136.72 436.94,2129.83 433.472,2137.47 432.063,2140.57 426.42,2139.27 426.42,2128.84 434.233,2119.72 446.344,2130.17 445.139,2133.95"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124237632"
- class="fil1 str2"
- points="368.257,2111.03 362.393,2111.03 360.01,2111.03 363.483,2101.91 368.691,2091.92 374.291,2091.95 374.375,2097.52 374.437,2101.6"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124223424"
- class="fil1 str2"
- points="389.96,2117.11 382.552,2117.11 379.543,2117.11 374.768,2108.86 385.185,2100.61 392.521,2100.64 394.611,2105.46 396.139,2108.98"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124242240"
- class="fil1 str2"
- points="378.198,2166.66 369.228,2164.58 363.049,2158.81 356.104,2158.38 346.555,2121.89 353.065,2119.72 358.254,2125.56 367.337,2116.45 373.466,2121.89 373.643,2128.93 370.034,2132.39 367.395,2134.92 370.679,2140.64 377.934,2140.87 380.882,2140.97 384.805,2132.63 393.218,2134.91 400.059,2149.8 395.924,2160.55 384.637,2156.59"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124211352"
- class="fil1 str2"
- points="308.792,2223.1 304.471,2223.1 302.716,2223.1 299.243,2216.58 305.32,2207.46 311.788,2210.1 311.621,2214.42 311.5,2217.57"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124227576"
- class="fil1 str2"
- points="359.968,2221.39 357.943,2230.61 353.857,2230.52 352.197,2230.48 346.555,2225.7 346.555,2211.8 352.197,2208.33 359.013,2213.87 359.564,2218.22"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124229952"
- class="fil1 str2"
- points="347.857,2267.84 344.153,2270.93 342.648,2272.18 335.269,2267.84 340.478,2259.15 349.55,2254.84 351.891,2259.91 353.602,2263.62"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124236048"
- class="fil1 str2"
- points="334.401,2304.76 329.772,2305.07 327.891,2305.19 325.72,2300.85 326.588,2290.86 330.452,2290.02 333.795,2296.85 336.24,2301.84"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124228464"
- class="fil1 str2"
- points="324.852,2362.09 321.148,2358.39 319.644,2356.88 321.773,2350.78 324.809,2346.49 331.466,2353.97 331.657,2356.4 331.797,2358.19"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- <polygon
- id="_124220496"
- class="fil1 str2"
- points="657.422,2008.47 624.552,1983.92 618.297,1992.4 604.111,1953.24 594.918,1967 584.997,1973.56 587.76,1989.75 586.191,2001.6 574.065,2009.34 572.222,2018.05 565.518,2020.94 555.89,2029.24 554.878,2034.13 545.861,2040.72 542.07,2057.32 535.479,2048.67 528.625,2052.44 523.646,2074 516.005,2074.45 512.029,2079.73 514.431,2087.5 519.963,2093.06 532.104,2120.31 527.665,2131.1 516.539,2131.32 508.39,2146.78 495.38,2149.82 460.629,2137.37 435.891,2147.78 424.363,2148.04 419.5,2133.51 411.427,2141.71 410.657,2163.49 402.223,2173.97 403.459,2181.86 413.408,2190.53 416.553,2198.31 411.394,2200.31 402.206,2197.86 395.853,2199.94 385.845,2193.29 381.18,2200.87 391.702,2208.89 396.191,2218.55 395.125,2230.34 384.587,2240.35 385.901,2250.78 381.609,2255.16 370.303,2256.45 369.587,2250.92 358.574,2254.71 355.58,2272.87 349.848,2279 338.504,2278.41 337.303,2283.26 344.031,2290.92 343.06,2299.64 336.643,2305.46 331.715,2311.25 328.473,2331.91 332.311,2336.53 339.132,2330.79 344.328,2334.69 345.35,2341.23 335.43,2357.44 333.22,2376.18 337.853,2381.11 331.84,2405.05 338.319,2415.1 360.11,2416.17 359.461,2423.29 349.233,2436.92 349.269,2448.25 364.27,2454.11 365.851,2462.21 353.9,2475 354.361,2486.29 346.611,2498.97 339.362,2526.5 347.236,2539.57 347.887,2541.99 363.097,2528.12 393.829,2524.51 397.085,2495.68 405.334,2489.15 402.523,2474.65 417.712,2464.96 410.475,2454.41 403.809,2451.54 403.237,2423.14 392.2,2419.5 384.527,2400.54 404.054,2342.78 428.463,2316.31 420.961,2308.75 424.509,2272.14 431.183,2264.34 454.775,2288.95 491.621,2301.21 521.205,2270.12 518.675,2253.04 553.069,2193.43 569.468,2193.63 563.071,2165.56 555.031,2165.28 555.396,2140.77 586.682,2125.52 619.645,2119.72 637.041,2124.73 649.109,2114.14 658.233,2087.36 682.31,2087.69 699.942,2096.18 714.195,2113.64 722.083,2088.15 701.553,2050.89 693.091,2053.3 683.972,2037.18 697.788,2028.25 708.601,2037.06 725.955,2036.66 734.373,2027.64 697.399,1997.91 686.719,2006.19 680.638,1997.15"
- style="fill: none; stroke: rgb(99, 99, 71); stroke-width: 2.27997;" />
- </g>
- </g>
- <g
- id="_159700104">
- <polygon
- id="_159701568"
- class="fil1 str3"
- points="830.941,402.881 809.986,413.882 798.888,433.452 771.196,443.235 741.874,456.449 734.897,442.02 702.653,438.674 671.82,416.349 654.014,423.838 656.063,389.248 585.676,246.547 544.067,232.093 518.159,244.839 500.788,265.596 510.988,292.53 505.76,310.727 472.929,285.304 449.668,308.064 479.491,346.63 481.261,373.098 504.106,379.259 536.845,447.227 560.728,454.646 569.502,476.682 591.826,487.604 600.882,513.796 633.583,521.252 677.125,541.217 724.42,584.796 724.506,613.838 730.742,630.925 745.169,628.899 756.209,611.08 799.401,608.259 832.34,619.678 832.373,628.156 854.877,619.641 889.179,571.282 913.23,550.482 957.998,550.637 940.503,482.635 916.245,452.767 872.378,433.58"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <path
- id="_159701496"
- class="fil1 str3"
- d="m 844.926,622.977 3.04947,9.96206 -3.07084,7.73054 5.26532,3.25694 4.30203,12.1335 1.01259,15.5201 -5.95187,15.6483 7.54672,100.688 -23.0047,-6.0767 -79.2223,64.6364 -11.252,-18.8674 15.1462,-38.9343 -1.19613,-57.0159 0.4027,-18.5559 8.74912,-14.7435 11.0562,-13.1423 -26.5734,-27.6635 -6.016,-28.6544 11.0394,-17.8191 43.1924,-2.82118 32.9394,11.4195 0.0325,8.47723 c 4.28151,-1.61964 9.251,-3.77706 12.5533,-5.17811 z"
- inkscape:connector-curvature="0"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159701424"
- class="fil1 str3"
- points="1306.58,153.038 1285.89,179.766 1219.45,208.406 1210.75,221.372 1033.34,319.14 1035.53,355.861 1025.49,391.044 1005.05,385.808 986.507,396.951 961.225,434.135 964.057,470.073 946.707,469.967 940.503,482.635 957.998,550.637 1066.51,591.022 1093.21,576.148 1241.78,567.229 1334.38,532.257 1341.47,536.564 1364.26,525.223 1358.46,501.718 1387.41,449.541 1393.92,402.814 1385.74,388.966 1352.78,389.081 1406.98,343.479 1396.63,307.18 1400.14,273.285 1452.27,205.546 1422.82,130.452 1335.1,87.2276"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159701352"
- class="fil1 str3"
- points="1262.71,22.4227 1278.39,12.5376 1306.22,51.2835 1333.06,68.1732 1335.1,87.2276 1306.58,153.038 1285.89,179.766 1219.45,208.406 1210.75,221.372 1033.31,318.568 1031.81,293.372 1050.21,188.127 1059.65,170.934 1054.1,154.879 1068.55,131.72 1097.91,105.588 1115.32,64.1525 1143.85,54.1508 1193.47,67.0789 1236.46,33.0009 1247.21,17.3925"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159701280"
- class="fil1 str3"
- points="910.526,938.136 919.759,1009.8 845.438,990.214 840.15,982.822 778.951,982.805 756.34,931.753 757.445,900.132 781.291,887.737 775.935,869.381 783.001,853.424 755.287,848.647 754.853,846.476 834.075,781.84 857.08,787.917 860.305,834.435 864.918,851.355"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159701208"
- class="fil1 str3"
- points="1324.01,1140.37 1336.29,1109.06 1331.73,1083.64 1310.73,1079.13 1295.55,1023.01 1303.43,983.233 1351.09,954.848 1389.31,947.416 1454.25,813.119 1459.88,791.214 1479.05,776.938 1503.25,730.84 1549.63,765.543 1545.9,810.813 1447.28,995.77 1439.79,1020.47 1504.59,1129.9 1516.62,1162.12 1471.15,1167.96 1396.51,1150.45 1363.15,1149.31 1341.06,1171.64 1329.32,1171.72"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159701136"
- class="fil1 str3"
- points="1308.26,937.013 1351.09,954.848 1389.31,947.416 1454.25,813.119 1459.88,791.214 1479.05,776.938 1503.25,730.84 1455.73,633.814 1383.06,604.25 1282.31,784.33 1236.53,816.298 1216.86,857.497 1282.53,900.717 1296.64,936.237"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159701064"
- class="fil1 str3"
- points="1069.32,696.928 1055.83,645.759 1066.51,591.022 957.998,550.637 913.23,550.482 889.179,571.282 875.78,590.172 862.062,609.511 857.347,616.159 854.877,619.641 844.926,622.977 847.976,632.94 844.905,640.67 850.17,643.927 854.472,656.06 855.485,671.581 849.533,687.229 857.08,787.917 860.305,834.435 864.918,851.355 892.71,904.237 910.526,938.136 927.341,930.388 984.701,940.259 998.343,895.468 1014.46,887.082 1016.77,875.004 1039.78,855.903 1034.01,817.427"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700992"
- class="fil1 str3"
- points="1189.58,934.581 1133.78,1005.88 1117.02,1008.51 1048.93,951.218 984.701,940.259 998.343,895.468 1014.46,887.082 1016.77,875.004 1039.78,855.903 1034.01,817.427 1069.32,696.928 1055.83,645.759 1066.51,591.022 1093.21,576.148 1241.78,567.229 1334.38,532.257 1341.47,536.564 1364.26,525.223 1383.06,604.25 1282.31,784.33 1236.53,816.298 1216.86,857.497 1215.4,876.774 1198.93,884.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700920"
- class="fil1 str3"
- points="1215.4,876.774 1216.86,857.497 1282.53,900.717 1296.64,936.237 1308.26,937.013 1351.09,954.848 1303.43,983.233 1295.55,1023.01 1272.24,1008.21 1256.83,989.742 1238.48,990.369 1226.17,976.883 1206.43,993.921 1175.33,995.138 1133.78,1005.88 1189.58,934.581 1198.93,884.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700848"
- class="fil1 str3"
- points="919.759,1009.8 845.438,990.214 840.15,982.822 778.951,982.805 804.095,1042.11 786.503,1061.56 783.076,1118.06 774.948,1125.11 800.949,1150.15 829.999,1136.38 850.512,1108.4 879.438,1097.2 879.421,1073.07 906.527,1062.97 931.407,1065.34"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700776"
- class="fil1 str3"
- points="906.527,1062.97 879.421,1073.07 879.438,1097.2 850.512,1108.4 829.999,1136.38 800.949,1150.15 774.948,1125.11 765.291,1133.49 760.527,1149.03 754.505,1167.65 758.7,1184.48 754.073,1196.49 761.961,1235.63 782.238,1255.29 787,1229.8 904.756,1196.58 935.423,1157.82 931.407,1065.34"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700704"
- class="fil1 str3"
- points="904.756,1196.58 787,1229.8 782.238,1255.29 783.321,1276.01 800.196,1303.55 801.684,1323.4 811.888,1350.9 812.149,1372.98 823.287,1371.7 831.074,1359.29 840.805,1370.97 854.438,1376.02 867.731,1347.95 863.258,1246.66"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700632"
- class="fil1 str3"
- points="1178.97,1212.74 1181.92,1228.73 1193.14,1240.96 1220.26,1243.07 1224.26,1228.34 1218.34,1222.89 1218.47,1198.86 1200.67,1189.34 1148.62,1125.15 1142.92,1050.23 1117.02,1008.51 1048.93,951.218 984.701,940.259 927.341,930.388 910.526,938.136 919.759,1009.8 931.407,1065.34 935.423,1157.82 904.756,1196.58 967.983,1236.02 1026.79,1236.37 1066.31,1257.97 1084.68,1240.98 1107.47,1235.82 1114.1,1249.56 1135.74,1237.75 1132.91,1215.39"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700560"
- class="fil1 str3"
- points="1324.01,1140.37 1336.29,1109.06 1331.73,1083.64 1310.73,1079.13 1295.55,1023.01 1272.24,1008.21 1256.83,989.742 1238.48,990.369 1226.17,976.883 1206.43,993.921 1175.33,995.138 1133.78,1005.88 1117.02,1008.51 1142.92,1050.23 1148.62,1125.15 1200.67,1189.34 1218.47,1198.86 1238.22,1213.29 1247.72,1190.74 1260.92,1178.94 1282.03,1170.39 1304.33,1172.6 1329.32,1171.72"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700488"
- class="fil1 str3"
- points="1242.83,1319.3 1256.46,1325.5 1266.81,1320.59 1280.73,1355.15 1348.52,1365.88 1378.48,1352.79 1379.62,1333.66 1364.8,1311.34 1383.24,1302.42 1401.44,1307.59 1406.94,1303.11 1406.59,1286.23 1393.99,1277.05 1394.3,1259.63 1403.72,1258.16 1408.29,1226.72 1389.74,1218.91 1377.03,1191.57 1381.94,1173.14 1397,1167.18 1396.51,1150.45 1363.15,1149.31 1341.06,1171.64 1329.32,1171.72 1304.33,1172.6 1282.03,1170.39 1260.92,1178.94 1247.72,1190.74 1238.22,1213.29 1218.47,1198.86 1218.34,1222.89 1224.26,1228.34 1220.26,1243.07 1220.93,1254.53 1245.07,1273.46"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700416"
- class="fil1 str3"
- points="1066.31,1257.97 1028.13,1279.26 1033.68,1304.93 1013.64,1341.07 1048.31,1376.91 1072.98,1361.38 1076.5,1391.52 1168.84,1399.51 1200.14,1388.84 1242.83,1319.3 1245.07,1273.46 1220.93,1254.53 1220.26,1243.07 1193.14,1240.96 1181.92,1228.73 1178.97,1212.74 1132.91,1215.39 1135.74,1237.75 1114.1,1249.56 1107.47,1235.82 1084.68,1240.98"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700344"
- class="fil1 str3"
- points="880.458,1416.2 901.322,1377.63 917.538,1377.33 921.192,1354.57 934.532,1349.41 958.132,1325.83 988.105,1278.48 1002.35,1270.4 1028.13,1279.26 1033.68,1304.93 1013.64,1341.07 1048.31,1376.91 1026.26,1390.81 972.617,1387.74 969.415,1402.58 948.026,1413.68 932.974,1428.95 933.578,1428.39 927.013,1421.66 918.091,1422.49 909.761,1411.71 895.771,1409.63 888.751,1415.36"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700272"
- class="fil1 str3"
- points="904.756,1196.58 967.983,1236.02 1026.79,1236.37 1066.31,1257.97 1028.13,1279.26 1002.35,1270.4 988.105,1278.48 963.135,1317.93 941.832,1307.89 894.524,1311.66 865.372,1294.53 863.258,1246.66"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700200"
- class="fil1 str3"
- points="863.281,1357.34 854.438,1376.02 880.637,1366.66 894.337,1390.54 901.322,1377.63 917.538,1377.33 921.192,1354.57 934.532,1349.41 958.132,1325.83 963.135,1317.93 948.964,1311.25 941.832,1307.89 894.524,1311.66 865.372,1294.53 867.731,1347.95"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159700128"
- class="fil1 str3"
- points="861.805,1378.74 868.363,1388.45 860.985,1403.94 866.303,1410.09 876.5,1403.43 880.458,1416.2 894.337,1390.54 880.637,1366.66 854.438,1376.02"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_159699432">
- <polygon
- id="_159700032"
- class="fil1 str3"
- points="1540.33,1728.66 1600.37,1741.99 1611.43,1732.28 1612.08,1712.15 1601.44,1698.83 1605.92,1682.79 1555.24,1672.39 1540.33,1615.02 1545.72,1594.85 1565.07,1588.4 1572.7,1572.6 1565.67,1563.26 1574.25,1545.67 1566.06,1536.2 1539.81,1533.78 1550.79,1496.63 1552.94,1464.05 1556.39,1452.45 1519.34,1460.14 1484.2,1458.48 1478.14,1453.45 1465.64,1480.24 1450.78,1484.71 1442.05,1477.57 1400.94,1496.98 1397.55,1530.71 1324.9,1543.75 1309.94,1552.85 1343.45,1556.25 1350.6,1569.8 1341.77,1575.96 1336.49,1589.78 1353.21,1613.03 1359.56,1649.64 1428.05,1706.65 1438.94,1703.54 1485.49,1720.34 1520.45,1747.45 1520.38,1742.18"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699960"
- class="fil1 str3"
- points="1494.42,1943.21 1488.74,1979.2 1556.27,1967.15 1577.17,2020.35 1590.75,2005.54 1616.07,2007.81 1614.27,2006.04 1646.69,1982.92 1681,1893.37 1670.36,1843.89 1615.98,1806.59 1600.45,1764.83 1600.37,1741.99 1540.33,1728.66 1520.38,1742.18 1520.02,1747.45 1516.69,1768.98 1480.62,1789.12 1451.87,1778.26 1444.64,1768.92 1431.81,1780.17 1442.45,1797.99 1441.24,1819.68 1426.96,1839.2 1441.38,1854.34 1451.75,1905.5 1468.04,1929.41"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699888"
- class="fil1 str3"
- points="1520.02,1747.45 1516.69,1768.98 1480.62,1789.12 1451.87,1778.26 1444.64,1768.92 1440.54,1772.52 1381.01,1737.54 1366.27,1744.65 1344.03,1729.12 1334.92,1732.92 1331.21,1678.01 1344.15,1678.12 1359.56,1649.64 1428.05,1706.65 1438.94,1703.54 1467.3,1713.78 1485.49,1720.34"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699816"
- class="fil1 str3"
- points="1353.21,1613.03 1336.49,1589.78 1341.77,1575.96 1350.6,1569.8 1343.45,1556.25 1309.94,1552.85 1303.8,1590.57 1289.52,1580.72 1273.3,1578.6 1258.72,1589.47 1230.71,1589.35 1217.95,1610.3 1235.17,1624.71 1237.65,1665.79 1231.9,1681.26 1201.29,1674.21 1200.45,1681.63 1230.93,1709.32 1222.15,1712.23 1237.51,1757.31 1257.78,1776.69 1299.21,1765.71 1306.63,1753.35 1312.37,1743.79 1334.92,1732.92 1331.21,1678.01 1344.15,1678.12 1359.56,1649.64"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699744"
- class="fil1 str3"
- points="1334.92,1732.92 1312.37,1743.79 1306.63,1753.35 1318.4,1753.42 1331.59,1766.21 1333.62,1788.04 1426.96,1839.2 1441.24,1819.68 1442.45,1797.99 1431.81,1780.17 1440.54,1772.52 1381.01,1737.54 1366.27,1744.65 1344.03,1729.12"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699672"
- class="fil1 str3"
- points="1333.62,1788.04 1331.59,1766.21 1318.4,1753.42 1306.63,1753.35 1299.21,1765.71 1257.78,1776.69 1237.51,1757.31 1225.97,1778.79 1217.54,1779.01 1208.55,1798.46 1217.95,1812.39 1225.49,1823.55 1221.52,1834.82 1248.66,1840.68 1251.64,1832.12 1271.25,1836.15 1277.65,1822.96 1292.5,1825.65 1300.69,1818.49 1321.5,1827.14 1338.46,1838.26 1350.57,1828.77 1371.83,1828.94 1385.43,1816.43"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699600"
- class="fil1 str3"
- points="1494.42,1943.21 1468.04,1929.41 1451.75,1905.5 1441.38,1854.34 1426.96,1839.2 1385.43,1816.43 1371.83,1828.94 1350.57,1828.77 1338.46,1838.26 1311.41,1863.41 1305.1,1877.01 1303.24,1903.57 1308.29,1926.04 1326.97,1939.46 1343.7,1971.11 1320.53,1987.87 1360.91,2034.47 1387.76,1972.61 1455.48,1985.14 1488.74,1979.2"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699528"
- class="fil1 str3"
- points="1292.5,1825.65 1277.65,1822.96 1271.25,1836.15 1251.64,1832.12 1248.66,1840.68 1221.52,1834.82 1218.44,1852.12 1188.13,1850.14 1186.68,1840.27 1172.87,1832.48 1152.9,1843.74 1152.89,1914.16 1163.78,1927.86 1207.19,1944.29 1225.58,1945.69 1258.55,1948.2 1320.53,1987.87 1343.7,1971.11 1326.97,1939.46 1308.29,1926.04 1303.24,1903.57 1305.1,1877.01 1311.41,1863.41 1338.46,1838.26 1321.5,1827.14 1300.69,1818.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699456"
- class="fil1 str3"
- points="1125.43,1834.94 1110.87,1822.18 1113.15,1807.93 1105.72,1791.46 1092.43,1782.74 1117.62,1757.04 1130.9,1753.14 1135.85,1737.13 1164.36,1723.23 1174.42,1694.04 1200.45,1681.63 1230.93,1709.32 1222.15,1712.23 1237.51,1757.31 1225.97,1778.79 1217.54,1779.01 1208.55,1798.46 1225.49,1823.55 1221.48,1834.77 1218.44,1852.12 1188.13,1850.14 1186.68,1840.27 1172.87,1832.48 1152.9,1843.74 1137.22,1833.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_159697896">
- <polygon
- id="_159699360"
- class="fil1 str3"
- points="1123.9,1944.4 1079.19,1985.71 1086.69,2061.72 1078.37,2066.71 1067,2098.89 1100.17,2104.47 1114.73,2111.37 1133.43,2105.15 1141.24,2114.72 1152.48,2105.94 1160.39,2095.96 1165.99,2048.31 1172.68,2039.71 1167.97,2002 1155.66,1990.63 1153.06,1967.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699288"
- class="fil1 str3"
- points="1183.68,2057.16 1165.99,2048.31 1172.68,2039.71 1167.97,2002 1155.66,1990.63 1153.06,1967.92 1123.9,1944.4 1129.2,1939.51 1163.78,1927.86 1207.19,1944.29 1216.89,1954.73 1226.6,1954.58 1231.39,1962.95 1224.06,1973.56 1236.65,1985.33 1239.01,2003.12 1220.71,2012.42 1219.04,2025.35 1227.34,2036.49 1214.54,2047.17 1199.5,2039.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699216"
- class="fil1 str3"
- points="1258.55,1948.2 1207.19,1944.29 1216.89,1954.73 1226.6,1954.58 1231.39,1962.95 1224.06,1973.56 1236.65,1985.33 1239.01,2003.12 1220.71,2012.42 1219.04,2025.35 1227.34,2036.49 1236.69,2050.27 1251.41,2055.15 1265.87,2071.26 1275.12,2090.58 1288.36,2088.61 1316.2,2084.46 1319.86,2090.85 1338.13,2076.41 1336.07,2058.75 1352.47,2024.72 1320.53,1987.87"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699144"
- class="fil1 str3"
- points="1336.07,2058.75 1352.47,2024.72 1360.91,2034.47 1372.03,2008.84 1391.5,2030.84 1407.04,2032.02 1411,2064.1 1419.71,2071.17 1413.09,2080.85 1417.03,2117.75 1432.35,2126.8 1432.73,2148.51 1419.08,2173.46 1392.71,2161.81 1387.97,2130.55 1381.07,2129.43 1378.42,2146.08 1370.21,2146.01 1367.6,2134.03 1341.53,2120.5 1341.8,2115.52 1342.18,2103.98 1349.54,2097.33 1338.13,2076.41"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699072"
- class="fil1 str3"
- points="1262.93,2094.59 1267.07,2100.49 1275.12,2090.58 1265.87,2071.26 1251.41,2055.15 1236.69,2050.27 1227.34,2036.49 1214.54,2047.17 1199.5,2039.49 1183.68,2057.16 1165.99,2048.31 1160.39,2095.96 1181.22,2112.45 1181.14,2132.98 1191.04,2135.02 1191.13,2146.22 1206.79,2154.76 1206.38,2150.3 1214.46,2142.46 1209.04,2129.24 1216.49,2111.13 1231.91,2115.3 1242.5,2094.28"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159699000"
- class="fil1 str3"
- points="1267.07,2100.49 1275.12,2090.58 1288.36,2088.61 1316.2,2084.46 1319.86,2090.85 1338.13,2076.41 1349.54,2097.33 1342.18,2103.98 1341.8,2115.52 1325.78,2140.96 1304.25,2165.54 1282.37,2172.4 1275.52,2193.62 1265.61,2193.46 1259.02,2201.73 1238.84,2193.02 1233.27,2165.02 1214.46,2142.46 1209.04,2129.24 1216.49,2111.13 1231.91,2115.3 1242.5,2094.28 1262.93,2094.59"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698928"
- class="fil1 str3"
- points="1089.65,2234.84 1120.67,2255.67 1132.77,2236.78 1120.75,2220.97 1109.93,2173.15 1094.05,2159.54 1095.44,2135.05 1084.83,2120.65 1062.15,2112.61 1055.2,2138.59 1065.73,2153.22 1069.09,2206.51"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698856"
- class="fil1 str3"
- points="1084.83,2120.65 1062.15,2112.61 1067,2098.89 1100.17,2104.47 1114.73,2111.37 1133.43,2105.15 1141.24,2114.72 1152.48,2105.94 1160.39,2095.96 1181.22,2112.45 1181.14,2132.98 1191.04,2135.02 1191.13,2146.22 1206.79,2154.76 1206.77,2169.28 1197.06,2169.51 1197.05,2182.9 1186.18,2208.51 1170.13,2213.11 1170.4,2225.78 1132.77,2236.78 1120.75,2220.97 1109.93,2173.15 1094.05,2159.54 1095.44,2135.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698784"
- class="fil1 str3"
- points="1135.26,2265.63 1140.7,2275.76 1139.97,2297.38 1104,2319.46 1091.64,2322.51 1049.57,2270.03 1079.04,2266.19 1087.11,2252.61 1077.41,2243.02 1089.78,2234.82 1120.67,2255.67"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698712"
- class="fil1 str3"
- points="1197.06,2169.51 1197.05,2182.9 1186.18,2208.51 1210.13,2246.6 1247.95,2240.99 1253.67,2235.47 1262,2216.58 1253.99,2208.93 1259.02,2201.73 1238.84,2193.02 1233.27,2165.02 1214.46,2142.46 1206.38,2150.3 1206.79,2154.76 1206.77,2169.28"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698640"
- class="fil1 str3"
- points="1265.61,2193.46 1259.02,2201.73 1253.99,2208.93 1262,2216.58 1253.67,2235.47 1247.95,2240.99 1252.52,2253.7 1268.62,2260.23 1295.58,2259.92 1309.62,2265.5 1313.56,2248.05 1321.66,2245.7 1301.12,2235.27 1308.72,2219.08 1307.91,2198.02 1282.37,2172.4 1275.52,2193.62"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698568"
- class="fil1 str3"
- points="1370.21,2146.01 1367.6,2134.03 1341.53,2120.5 1341.8,2115.52 1325.78,2140.96 1304.25,2165.54 1282.37,2172.4 1307.91,2198.02 1308.72,2219.08 1301.12,2235.27 1321.66,2245.7 1331.09,2234.56 1330.16,2221.81 1350.23,2217.25 1362.14,2199.11 1374.65,2207.34 1386.6,2200.93 1381.06,2174.3 1392.71,2161.22 1387.97,2130.55 1381.07,2129.43 1378.42,2146.08"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698496"
- class="fil1 str3"
- points="1104,2319.46 1139.97,2297.38 1151.47,2299.72 1164.18,2314.17 1182.91,2374.34 1166.39,2379.08 1168.65,2419.74 1163.01,2417.28 1147.1,2425.9 1140.29,2418.05 1129.41,2419.45 1107,2405.1 1106.95,2396.56 1126.64,2375.5 1121.72,2346.67"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698424"
- class="fil1 str3"
- points="1135.26,2265.63 1120.67,2255.67 1132.77,2236.78 1170.4,2225.78 1170.13,2213.11 1186.18,2208.51 1210.13,2246.6 1188.52,2259.62 1181.47,2251.41 1173.01,2259.04 1181.53,2287.22 1176.1,2302.98 1174.41,2307.9 1164.18,2314.17 1151.47,2299.72 1139.97,2297.38 1140.7,2275.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698352"
- class="fil1 str3"
- points="1256.57,2356.74 1266.35,2363.2 1250.56,2378.16 1240.17,2406.95 1215.58,2423.61 1204.97,2410.12 1183.5,2415.47 1177.95,2423.8 1168.65,2419.74 1166.39,2379.08 1182.91,2374.34 1164.18,2314.17 1174.41,2307.9 1176.1,2302.98 1186.23,2308.99 1182.55,2324.82 1195.81,2330.66 1205.12,2325 1231.94,2341.95 1254.14,2342.2"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698280"
- class="fil1 str3"
- points="1392.71,2161.81 1381.06,2174.3 1386.6,2200.93 1374.65,2207.34 1362.14,2199.11 1350.23,2217.25 1330.16,2221.81 1331.09,2234.56 1344.63,2243.27 1351.01,2260.22 1373.95,2265.84 1394.21,2254.04 1399.16,2239.14 1389.45,2228.15 1396.27,2211.19 1414.34,2204.71 1441.82,2208.08 1430.02,2183.28 1419.08,2173.46"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698208"
- class="fil1 str3"
- points="1399.16,2239.14 1394.21,2254.04 1433.45,2281.73 1438.17,2303.4 1463.16,2314.29 1481.78,2288.71 1464.08,2264.8 1485.88,2248.99 1453.3,2232.2 1441.82,2208.08 1414.34,2204.71 1396.27,2211.19 1389.45,2228.15"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698136"
- class="fil1 str3"
- points="1433.45,2281.73 1394.21,2254.04 1373.95,2265.84 1373.53,2284.78 1360.87,2287.82 1371.05,2306.22 1377.55,2303.58 1385.85,2368.25 1411.19,2378.94 1428.86,2361.48 1438.93,2358.55 1421.03,2319.07 1434.12,2315.59 1438.17,2303.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159698064"
- class="fil1 str3"
- points="1351.01,2260.22 1344.63,2243.27 1331.09,2234.56 1321.66,2245.7 1313.56,2248.05 1309.62,2265.5 1295.58,2259.92 1268.62,2260.23 1252.52,2253.7 1247.95,2240.99 1210.13,2246.6 1188.52,2259.62 1181.47,2251.41 1173.01,2259.04 1181.53,2287.22 1176.1,2302.98 1186.23,2308.99 1182.55,2324.82 1195.81,2330.66 1205.12,2325 1231.94,2341.95 1254.14,2342.2 1278.78,2342.09 1304.93,2358.89 1323.67,2346.4 1362.03,2360.63 1365.68,2375.21 1385.85,2368.25 1377.55,2303.58 1371.05,2306.22 1360.87,2287.82 1373.53,2284.78 1373.95,2265.84"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697992"
- class="fil1 str3"
- points="1240.17,2406.95 1250.56,2378.16 1266.35,2363.2 1256.57,2356.74 1254.14,2342.2 1278.78,2342.09 1304.93,2358.89 1323.67,2346.4 1362.03,2360.63 1365.68,2375.21 1385.85,2368.25 1411.19,2378.94 1402.76,2387.27 1389.03,2387.28 1389.08,2416.75 1377.16,2415.27 1367.72,2430.91 1378.59,2439.15 1372.33,2451.98 1355.86,2452.02 1342.35,2465.65 1321.89,2441.27 1311.53,2449.46 1291.36,2451.5"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697920"
- class="fil1 str3"
- points="1342.35,2465.65 1321.89,2441.27 1311.53,2449.46 1291.36,2451.5 1306,2477.13 1331.64,2478.64 1349.11,2494.04 1377.71,2490.78 1423.89,2508.92 1431.16,2491.09 1408.16,2462.43 1391.47,2466.52 1390.09,2451.29 1372.33,2451.98 1355.86,2452.02"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_159696864">
- <polygon
- id="_159697824"
- class="fil1 str3"
- points="1371.85,2008.96 1391.5,2030.84 1407.17,2031.85 1411.13,2063.96 1419.85,2071.03 1436.24,2063.03 1449.2,2068.98 1468.11,2054.46 1458.53,2039.9 1467.73,2014.69 1493.43,2007.79 1493.29,1995.74 1484.34,1992.07 1486.87,1979.72 1455.35,1985.35 1387.63,1972.83"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697752"
- class="fil1 str3"
- points="1432.35,2126.8 1449.2,2126.77 1464.73,2109.24 1484.01,2104.35 1502.54,2112.96 1520.23,2130.08 1539.12,2132.48 1550.1,2113.39 1535.84,2066.3 1544.99,2040.14 1577.04,2020.53 1556.13,1967.36 1486.87,1979.72 1484.34,1992.07 1493.29,1995.74 1493.43,2007.79 1467.73,2014.69 1458.53,2039.9 1468.11,2054.46 1449.2,2068.98 1436.24,2063.03 1419.85,2071.03 1413.22,2080.72 1417.03,2117.75"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697680"
- class="fil1 str3"
- points="1664.78,2236.03 1686.02,2228.36 1700.27,2197.3 1716.54,2200.72 1746.88,2188.14 1755.11,2167.8 1789.05,2153.18 1763.98,2135.88 1732.06,2110.73 1687.04,2090.28 1668.91,2064.69 1615.81,2008.01 1590.62,2005.73 1577.17,2020.35 1544.99,2040.14 1535.84,2066.3 1550.1,2113.39 1539.12,2132.48 1548.54,2137.08 1547.92,2149.32 1555.01,2174.6 1566.26,2178 1565.15,2192.49 1577.47,2214.84 1587.64,2219.9 1597.52,2219.99 1609.65,2234.64 1619.32,2223.35 1658.58,2224.26"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697608"
- class="fil1 str3"
- points="1432.73,2148.51 1432.35,2126.8 1449.2,2126.77 1464.73,2109.24 1484.01,2104.35 1502.54,2112.96 1520.23,2130.08 1539.12,2132.48 1548.54,2137.08 1547.92,2149.32 1555.01,2174.6 1566.26,2178 1565.15,2192.49 1577.47,2214.84 1587.64,2219.9 1559.39,2254.75 1551.18,2247.92 1549.13,2229.58 1533.14,2213.89 1516.75,2228.41 1499.79,2232.19 1498.67,2248.26 1486.01,2248.98 1453.43,2232.17 1430.15,2183.22 1419.21,2173.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697536"
- class="fil1 str3"
- points="1765.79,2389.01 1772.74,2397.32 1763.82,2406.54 1766.76,2415.05 1790.19,2414.95 1806.32,2384.96 1848.05,2252.59 1835.88,2221.84 1800.69,2193.23 1789.05,2153.18 1755.11,2167.8 1746.88,2188.14 1716.54,2200.72 1700.27,2197.3 1686.02,2228.36 1664.78,2236.03 1677.29,2251.42 1701.56,2310.8 1693.62,2326.58 1699.62,2334.41 1707.67,2334.15 1708.96,2341.54 1728.83,2350.72 1723.05,2360.38 1738.67,2371.98 1746.45,2370.72 1755.24,2387.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697464"
- class="fil1 str3"
- points="1625.64,2298.16 1630.61,2314.35 1653.49,2322.57 1667.51,2348.19 1659.82,2354.15 1651.69,2350.13 1649.09,2348.85 1619.19,2369.46 1609.15,2357.41 1568.02,2352.34 1563.26,2367.29 1591.47,2388.54 1593.86,2425.12 1626.36,2436.42 1636.18,2424.51 1652.32,2428.01 1656.49,2421.66 1663.69,2421.61 1670.17,2438.37 1689.29,2442.96 1724.62,2435.47 1726.89,2443.66 1736.85,2442.96 1745.14,2468.57 1752.06,2457.97 1771.07,2450.53 1790.19,2414.95 1766.76,2415.05 1763.82,2406.54 1772.74,2397.32 1765.79,2389.01 1755.24,2387.4 1746.45,2370.72 1738.67,2371.98 1723.05,2360.38 1728.83,2350.72 1724.03,2348.5 1708.96,2341.54 1707.67,2334.15 1699.62,2334.41 1693.62,2326.58 1701.56,2310.8 1677.29,2251.42 1664.78,2236.03 1658.58,2224.26 1619.32,2223.35 1609.65,2234.64 1614.32,2251.47 1610.69,2278.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697392"
- class="fil1 str3"
- points="1630.61,2314.35 1625.64,2298.16 1610.69,2278.05 1614.32,2251.47 1609.65,2234.64 1597.52,2219.99 1587.64,2219.9 1559.39,2254.75 1575.62,2274.88 1575.64,2291.93 1556.5,2308.61 1559.84,2326.23 1567.79,2352.37 1609.15,2357.41 1619.19,2369.46 1649.09,2348.85 1659.82,2354.15 1667.51,2348.19 1653.49,2322.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697320"
- class="fil1 str3"
- points="1516.75,2228.41 1499.79,2232.19 1498.67,2248.26 1486.01,2248.98 1464.21,2264.81 1481.91,2288.72 1507.77,2299.84 1517.6,2332.33 1532.56,2339.8 1559.84,2326.23 1556.5,2308.61 1575.64,2291.93 1575.62,2274.88 1559.39,2254.75 1551.18,2247.92 1549.13,2229.58 1533.14,2213.89"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697248"
- class="fil1 str3"
- points="1463.29,2314.33 1481.91,2288.72 1507.77,2299.84 1517.6,2332.33 1522.2,2334.63 1517.42,2345.65 1508.19,2346.44 1489.03,2337.82 1473.06,2356.29 1483.37,2367.29 1472.33,2381.74 1451.15,2362.31 1438.93,2358.55 1421.16,2319.11 1434.25,2315.62 1438.3,2303.43"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697176"
- class="fil1 str3"
- points="1473.06,2356.29 1489.03,2337.82 1508.19,2346.44 1517.42,2345.65 1522.2,2334.63 1532.56,2339.8 1559.84,2326.23 1568.02,2352.34 1563.26,2367.29 1591.47,2388.54 1593.86,2425.12 1574.18,2445.35 1560.87,2432.19 1526.07,2436.91 1517.62,2426.52 1503.41,2435.19 1489.33,2425.11 1495.39,2410.75 1481.01,2398.62 1479.1,2388 1472.33,2381.74 1483.37,2367.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697104"
- class="fil1 str3"
- points="1656.49,2421.66 1663.69,2421.61 1670.17,2438.37 1689.29,2442.96 1724.62,2435.47 1726.89,2443.66 1736.85,2442.96 1745.14,2468.57 1723.6,2501.57 1707.85,2529.06 1688.17,2519.82 1684.29,2509.96 1664.89,2509.08 1659.65,2477.7 1640.91,2471.35 1628.18,2475.73 1623.57,2459.14 1630.09,2455.65 1626.36,2436.42 1636.18,2424.51 1652.32,2428.01"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159697032"
- class="fil1 str3"
- points="1602.13,2555.55 1636.74,2570.42 1649.57,2599.38 1665.27,2590.89 1683.08,2572.45 1707.85,2529.06 1688.17,2519.82 1684.29,2509.96 1664.89,2509.08 1659.65,2477.7 1640.91,2471.35 1629.36,2475.73 1613.58,2483.99 1624.26,2486.92 1615.31,2499.72 1596.08,2490.67 1583.28,2501.24 1555.61,2482.22 1544.88,2484.29 1551.22,2518.59 1565.06,2522.92 1582.07,2516.84 1595.2,2522.07"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696960"
- class="fil1 str3"
- points="1615.31,2499.72 1596.08,2490.67 1583.28,2501.24 1555.61,2482.22 1544.88,2484.29 1526.09,2453.63 1526.07,2436.91 1560.87,2432.19 1574.18,2445.35 1593.86,2425.12 1626.36,2436.42 1630.09,2455.65 1623.57,2459.14 1628.18,2475.73 1613.58,2483.99 1624.26,2486.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696888"
- class="fil1 str3"
- points="1565.06,2522.92 1551.22,2518.59 1556.03,2545.38 1575.32,2553.81 1583.06,2571.55 1576.69,2579.58 1588.01,2602.55 1575.24,2639.59 1649.57,2599.38 1636.74,2570.42 1602.13,2555.55 1595.2,2522.07 1582.07,2516.84"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_159695184">
- <polygon
- id="_159696792"
- class="fil1 str3"
- points="1008.31,2158.9 1000.6,2167.73 985.741,2167.58 951.776,2158.08 920.687,2100.29 927.197,2059.84 941.998,2053.69 954.771,2062.46 988.916,2085.88 1012.63,2085.96 1022.17,2093.91 1031.13,2112.83 1062.02,2112.72 1055.2,2138.59 1065.73,2153.22 1066.42,2163.77 1030.06,2155.63"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696720"
- class="fil1 str3"
- points="864.99,2161.31 866.13,2130.15 890.26,2104.44 902.573,2102.34 920.687,2100.29 951.776,2158.08 914.11,2173.68 880.3,2170.79"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696648"
- class="fil1 str3"
- points="1052.71,2273.96 1038.94,2290.88 1001.68,2272.63 997.067,2260.99 985.818,2262.87 972.074,2248.54 977.676,2239.46 974.56,2228.24 954.129,2216.64 951.776,2158.08 985.741,2167.58 1000.6,2167.73 1008.31,2158.9 1030.06,2155.63 1066.42,2163.77 1069.22,2206.47 1089.65,2234.84 1077.54,2243.01 1087.11,2252.61 1079.17,2266.2 1049.7,2270.03"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696576"
- class="fil1 str3"
- points="864.99,2161.31 880.3,2170.79 914.11,2173.68 951.776,2158.08 954.129,2216.64 926.402,2219.2 925.593,2235.61 911.808,2235.74 905.184,2228.21 884.096,2228.41 884.342,2220.69 863.575,2199.98"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696504"
- class="fil1 str3"
- points="967.874,2278.37 946.189,2301.32 925.339,2279.61 925.471,2266.71 910.22,2265.53 911.808,2235.74 925.593,2235.61 926.402,2219.2 954.129,2216.64 974.56,2228.24 977.676,2239.46 972.074,2248.54 985.818,2262.87 997.067,2260.99 1001.68,2272.63 986.718,2287.75 977.87,2277.21"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696432"
- class="fil1 str3"
- points="911.836,2294.35 899.929,2291.6 886,2298.19 884.918,2308.96 891.319,2317.5 885.861,2321.39 867.589,2315.07 849.88,2314.85 824.237,2332.36 806.687,2286.3 815.776,2279.18 802.543,2261.43 801.596,2253.75 830.301,2259.6 848.196,2244.3 860.427,2247.2 884.096,2228.41 905.184,2228.21 911.808,2235.74 910.22,2265.53 925.471,2266.71 925.339,2279.61 946.189,2301.32 928.206,2307.26"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696360"
- class="fil1 str3"
- points="808.231,2208.56 814.137,2204.71 840.551,2194.96 863.575,2199.98 884.342,2220.69 884.096,2228.41 860.427,2247.2 848.196,2244.3 830.301,2259.6 801.596,2253.75 800.65,2246.07 797.81,2223.04"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696288"
- class="fil1 str3"
- points="967.874,2278.37 946.189,2301.32 928.504,2307.16 911.836,2294.35 899.929,2291.6 886,2298.19 884.918,2308.96 891.319,2317.5 885.861,2321.39 867.589,2315.07 849.88,2314.85 824.237,2332.36 829.202,2347.65 856.512,2388.56 884.617,2373.15 889.963,2380.49 922.859,2378.53 928.514,2389.62 957.576,2393.78 969.151,2385.03 966.099,2345.53 970.099,2332.71 996.348,2325.83 997.801,2311.28 986.718,2287.75 977.87,2277.21"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696216"
- class="fil1 str3"
- points="970.099,2332.71 996.348,2325.83 997.801,2311.28 986.718,2287.75 1001.68,2272.63 1038.94,2290.88 1052.71,2273.96 1072.23,2298.22 1042.22,2302.25 1063.82,2325.34 1063.76,2338.85 1073.45,2347.16 1047.26,2381 1038.31,2386.71 1031.45,2398.98 1009.25,2394.92 988.733,2403.29 985.841,2389.84 969.151,2385.03 966.099,2345.53"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696144"
- class="fil1 str3"
- points="928.514,2389.62 957.576,2393.78 969.151,2385.03 985.841,2389.84 988.698,2403.13 981.52,2411.1 979.778,2424.44 975.248,2436.05 956.504,2434.66 939.318,2437.22 926.471,2428.87 914.596,2426.75"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696072"
- class="fil1 str3"
- points="1073.45,2347.16 1063.76,2338.85 1063.82,2325.34 1042.22,2302.25 1072.23,2298.22 1091.64,2322.51 1103.87,2319.42 1121.72,2346.67 1126.77,2375.58 1107.08,2396.66 1071.18,2389.21 1072.48,2414.23 1064.9,2414.13 1048.17,2391.95 1047.26,2381"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159696000"
- class="fil1 str3"
- points="1063.14,2493.35 1047.57,2501.09 1034.58,2476.96 1017.26,2458.72 1016.58,2438.05 1003.01,2438.1 979.778,2424.44 981.52,2411.1 988.961,2402.84 1009.25,2394.92 1031.45,2398.98 1038.31,2386.71 1047.26,2381 1048.17,2391.95 1064.9,2414.13 1072.48,2414.23 1072.76,2430.94 1083.59,2437.61 1070.72,2452.13 1087.34,2499.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695928"
- class="fil1 str3"
- points="1070.72,2452.13 1083.59,2437.61 1072.76,2430.94 1072.48,2414.23 1071.18,2389.21 1107.08,2396.66 1107,2405.1 1129.41,2419.45 1140.42,2418.16 1146.97,2425.78 1136.55,2433.22 1153.07,2451.48 1138.33,2456.7 1129.75,2493.81 1112.07,2484.81 1087.34,2499.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695856"
- class="fil1 str3"
- points="833.086,2422.25 825.52,2404.73 831.235,2365.9 823.655,2355.54 829.202,2347.65 856.512,2388.56 884.617,2373.15 889.963,2380.49 922.859,2378.53 928.514,2389.62 914.596,2426.75 908.87,2425.68 900.712,2436.03 900.477,2457.55 884.521,2457.69 875.308,2445.56 862.272,2452.35"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695784"
- class="fil1 str3"
- points="870.839,2541.65 853.961,2546.7 847.065,2520.15 824.279,2496.5 811.397,2501.12 790.749,2497.03 782.995,2474.88 771.722,2477 750.251,2464.15 750.148,2435.87 770.715,2412.47 797.152,2416.3 803.266,2405.07 825.52,2404.73 833.356,2421.99 862.541,2452.09 875.308,2445.56 884.521,2457.69 900.477,2457.55 900.341,2483.95 887.282,2492.83 868.514,2516.56"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695712"
- class="fil1 str3"
- points="900.341,2483.95 900.477,2457.55 900.712,2436.03 908.87,2425.68 926.471,2428.87 939.318,2437.22 941.784,2450.95 953.513,2450.58 963.669,2460.6 957.427,2486.08 943.734,2486.09 940.679,2503.45 931.284,2509.22 921.582,2509.1 887.282,2492.83"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695640"
- class="fil1 str3"
- points="1031.85,2580.61 1030.62,2559.06 1007.3,2543.59 964.979,2530.08 969.126,2510.5 960.181,2505.4 964.376,2489.08 978.249,2488.99 982.95,2498.63 996.419,2500.25 1005.99,2509.55 987.476,2513.4 987.67,2519.82 988.978,2523.69 1009.75,2528.11 1016.88,2520.54 1019.92,2523.62 1030.88,2531.04 1032.97,2515.32 1047.57,2501.09 1034.58,2476.96 1017.26,2458.72 1016.58,2438.05 1003.01,2438.1 979.778,2424.44 975.248,2436.05 956.504,2434.66 939.318,2437.22 941.784,2450.95 953.513,2450.58 963.669,2460.6 957.427,2486.08 943.734,2486.09 940.679,2503.45 931.284,2509.22 941.95,2529.11 933.362,2545.84 942.795,2555.4 937.717,2566.33 971.397,2606.13 997.357,2608.59 1001.21,2597.28 1018.1,2598.86"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695568"
- class="fil1 str3"
- points="960.181,2505.4 964.376,2489.08 978.249,2488.99 982.95,2498.63 996.419,2500.25 1005.99,2509.55 987.476,2513.4 987.67,2519.82 988.978,2523.69 1009.75,2528.11 1007.3,2543.59 964.979,2530.08 969.126,2510.5"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695496"
- class="fil1 str3"
- points="1009.75,2528.11 1016.88,2520.54 1019.92,2523.62 1030.8,2531.21 1032.97,2515.32 1047.57,2501.09 1063.14,2493.35 1087.34,2499.92 1073.58,2528.45 1081.62,2543.21 1064.93,2546.84 1055.8,2560.61 1046.12,2549.84 1032.9,2549.89 1030.62,2559.06 1007.22,2543.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695424"
- class="fil1 str3"
- points="997.357,2608.59 1001.21,2597.28 1018.1,2598.86 1023.8,2608.45 1020.62,2632.25 1004.25,2660.56 991.77,2654.62 968.256,2665.41 963.368,2633.49 971.397,2606.13"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695352"
- class="fil1 str3"
- points="855.727,2677.44 860.037,2667.95 882.17,2677.44 877.316,2648.33 888.537,2627.54 919.156,2642.82 943.918,2644.78 951.19,2635.95 963.368,2633.49 968.256,2665.41 952.598,2721.78 875.177,2729.06 876.373,2705.54 857.886,2690.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695280"
- class="fil1 str3"
- points="1030.62,2559.06 1032.9,2549.89 1046.12,2549.84 1055.8,2560.61 1064.93,2546.84 1081.62,2543.21 1095.71,2569.11 1089.18,2578.96 1089.51,2581.31 1094.35,2633.26 1115.79,2664.92 1110.41,2684 1091.63,2678 1089.21,2685.26 1059.76,2673.6 1038.87,2641.43 1020.62,2632.25 1023.8,2608.45 1018.1,2598.86 1031.85,2580.61"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695208"
- class="fil1 str3"
- points="863.048,2625.71 862.962,2632.14 855.746,2632.58 853.548,2626.45 848.018,2630.15 850.892,2639.92 849.764,2652.02 857.353,2656.57 859.788,2655.2 869.772,2661.13 860.037,2667.95 882.17,2677.44 877.316,2648.33 888.537,2627.54 919.156,2642.82 943.918,2644.78 951.19,2635.95 963.368,2633.49 971.397,2606.13 937.348,2566.23 942.795,2555.4 933.362,2545.84 941.95,2529.11 931.284,2509.22 921.582,2509.1 887.282,2492.83 868.514,2516.56 870.839,2541.65 853.961,2546.7 839.501,2569.81 835.201,2562.17 821.734,2581.68 855.993,2624.48"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123528456">
- <polygon
- id="_159695112"
- class="fil1 str3"
- points="1494.89,2705.66 1479.58,2704.97 1465.08,2692.85 1464.8,2685.67 1467.17,2674.77 1483.92,2659.63 1506.16,2671.56 1528.56,2644.05 1503.1,2621.1 1522.22,2601.11 1532.64,2604.47 1545,2619.18 1561.43,2584.84 1576.69,2579.58 1588.01,2602.55 1575.24,2639.59 1574.78,2639.83 1569.12,2655.94 1544.82,2664.15 1525.75,2695.78"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159695040"
- class="fil1 str3"
- points="1263.4,2498.37 1271.98,2514.83 1282.3,2515.17 1282.39,2549.63 1260.51,2553.29 1247.99,2543.27 1244.6,2558.92 1208.71,2506.55 1193.04,2511.38 1184.93,2508.8 1179.53,2520.31 1167.49,2524.11 1137.18,2461.61 1138.33,2456.7 1153.07,2451.48 1136.42,2433.1 1146.97,2425.78 1162.88,2417.16 1168.65,2419.74 1177.82,2423.69 1183.37,2415.36 1204.84,2410.01 1215.45,2423.49 1240.04,2406.84 1291.36,2451.5 1280.47,2470.46 1261.34,2473.82"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_159694968"
- class="fil1 str3"
- points="1282.39,2552.58 1282.39,2549.63 1282.3,2515.17 1271.98,2514.83 1263.4,2498.37 1261.34,2473.82 1280.47,2470.46 1291.23,2451.36 1306,2477.13 1331.77,2478.8 1344.76,2490.21 1338.57,2505.2 1347.2,2528.48 1323.72,2536.79 1312.79,2548.68 1310.29,2561.53 1308.91,2568.64"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_88495024"
- class="fil1 str3"
- points="1188.93,2704.97 1198.08,2683.25 1238.38,2693.07 1260.97,2690.62 1269.3,2707.13 1280.39,2707.17 1279.58,2719.23 1296.67,2728.08 1321.5,2707.48 1318.4,2669.02 1299.04,2657.84 1277.23,2654.5 1249.26,2600.19 1256.04,2592.11 1258.98,2579.17 1244.6,2558.92 1208.71,2506.55 1193.04,2511.38 1184.93,2508.8 1179.53,2520.31 1167.49,2524.11 1163.68,2539.7 1209.92,2576.34 1177.08,2589.71 1160.81,2609.65 1166.55,2637.15 1187.77,2677.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123235464"
- class="fil1 str3"
- points="1089.4,2581.34 1089.18,2578.96 1095.71,2569.11 1081.62,2543.21 1073.45,2528.26 1087.34,2499.92 1111.94,2484.65 1129.62,2493.64 1137.18,2461.61 1167.49,2524.11 1163.68,2539.7 1209.92,2576.34 1177.08,2589.71 1160.81,2609.65 1143.63,2619.77 1124.87,2609.28 1092.36,2612.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_124843672"
- class="fil1 str3"
- points="1490.44,2458.02 1483.8,2451.46 1470.87,2458.58 1474.53,2468.67 1470.61,2477.94 1460.27,2476.77 1449.22,2466.58 1443.62,2474.97 1451.96,2491.29 1448.15,2493.32 1436.53,2480.17 1431.03,2490.93 1408.03,2462.28 1391.34,2466.37 1390.09,2451.29 1372.33,2451.98 1378.59,2439.15 1367.72,2430.91 1377.16,2415.27 1389.08,2416.75 1389.03,2387.28 1402.76,2387.27 1428.86,2361.48 1438.93,2358.55 1451.29,2362.39 1472.33,2381.74 1479.1,2388 1481.01,2398.62 1495.39,2410.75 1489.33,2425.11 1503.41,2435.19 1507.46,2450.69"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_124866928"
- class="fil1 str3"
- points="1503.1,2621.1 1483.5,2572.15 1471.14,2561.72 1497.94,2551.71 1503.39,2532.56 1529.7,2524.43 1526.52,2510.37 1548.95,2506.62 1556.03,2545.38 1575.32,2553.81 1583.06,2571.55 1576.69,2579.58 1561.43,2584.84 1545,2619.18 1532.64,2604.47 1522.22,2601.11"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_124851856"
- class="fil1 str3"
- points="1507.46,2450.69 1490.44,2458.02 1483.8,2451.46 1470.87,2458.58 1474.53,2468.67 1470.61,2477.94 1460.27,2476.77 1449.22,2466.58 1443.62,2474.97 1451.96,2491.29 1448.15,2493.32 1436.53,2480.17 1431.03,2490.93 1423.76,2508.74 1393.72,2497.02 1387.84,2510.31 1400.24,2518.03 1407.61,2517.24 1427.22,2529.12 1448.66,2567.59 1436.71,2580.38 1419.47,2575.41 1400.23,2596.23 1400.52,2604.94 1421.43,2615.35 1429.66,2636.27 1424.43,2649.2 1431.74,2658.48 1431.12,2669.58 1464.8,2685.67 1467.17,2674.77 1483.92,2659.63 1506.16,2671.56 1528.56,2644.05 1503.1,2621.1 1483.5,2572.15 1471.14,2561.72 1450.61,2545.74 1457.9,2536.79 1428.78,2512.87 1435.15,2487.46 1440.1,2487.72 1448.25,2496.23 1453.71,2490.52 1449.91,2483.43 1447.73,2474.6 1449.54,2470.34 1460.92,2480.02 1470.46,2479.68 1469.36,2492.46 1492.04,2523.26 1503.39,2532.56 1529.7,2524.43 1526.52,2510.37 1548.95,2506.62 1544.88,2484.29 1526.09,2453.63 1526.07,2436.91 1517.62,2426.52 1503.41,2435.19"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522888"
- class="fil1 str3"
- points="1497.94,2551.71 1471.14,2561.72 1450.61,2545.74 1457.9,2536.79 1428.78,2512.87 1435.15,2487.46 1440.1,2487.72 1448.25,2496.23 1453.71,2490.52 1449.91,2483.43 1447.73,2474.6 1449.54,2470.34 1460.92,2480.02 1470.46,2479.68 1469.36,2492.46 1492.04,2523.26 1503.39,2532.56"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_124857088"
- class="fil1 str3"
- points="1367.29,2574.42 1356.68,2567.39 1344.75,2574.98 1310.29,2561.53 1312.79,2548.68 1323.72,2536.79 1347.2,2528.48 1338.57,2505.2 1344.76,2490.21 1349.11,2494.04 1377.71,2490.78 1393.72,2497.02 1387.84,2510.31 1400.24,2518.03 1407.61,2517.24 1427.22,2529.12 1448.66,2567.59 1436.71,2580.38 1419.47,2575.41 1400.23,2596.23"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535488"
- class="fil1 str3"
- points="1410.76,2687.38 1405.52,2673.33 1367.27,2659.2 1353.24,2641.51 1370.42,2638.05 1352.33,2620.25 1363.08,2603.32 1352.86,2595.01 1367.29,2574.42 1400.23,2596.23 1400.52,2604.94 1421.43,2615.35 1429.66,2636.27 1424.43,2649.2 1431.74,2658.48 1431.12,2669.58 1464.8,2685.67 1465.08,2692.85 1479.58,2704.97 1464.27,2704.28"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522696"
- class="fil1 str3"
- points="1363.08,2603.32 1352.33,2620.25 1370.42,2638.05 1353.24,2641.51 1367.27,2659.2 1351.42,2676.96 1335.69,2670.87 1329.03,2679.21 1334.37,2692.89 1331.75,2701.94 1321.5,2707.48 1318.4,2669.02 1299.04,2657.84 1277.23,2654.5 1249.26,2600.19 1256.04,2592.11 1258.98,2579.17 1244.6,2558.92 1247.99,2543.27 1260.51,2553.29 1282.39,2549.63 1282.39,2552.58 1308.91,2568.64 1310.29,2561.53 1344.75,2574.98 1356.68,2567.39 1367.29,2574.42 1352.86,2595.01"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509784"
- class="fil1 str3"
- points="1295.86,2759.3 1292.87,2747.67 1301.05,2740.55 1296.67,2728.08 1321.5,2707.48 1331.75,2701.94 1334.37,2692.89 1329.03,2679.21 1335.69,2670.87 1351.42,2676.96 1367.27,2659.2 1405.52,2673.33 1410.76,2687.38 1464.27,2704.28 1459.43,2721.3 1421.92,2721.53 1407.65,2710.65 1400.05,2729.45 1374.61,2760.91 1324.79,2765.24"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123521664"
- class="fil1 str3"
- points="1246.36,2752.77 1208.29,2752.58 1196.11,2738.55 1195.8,2726.88 1188.33,2726.88 1185.03,2716.33 1188.93,2704.97 1198.08,2683.25 1238.38,2693.07 1260.97,2690.62 1269.3,2707.13 1280.39,2706.58 1279.58,2719.23 1296.67,2728.08 1301.05,2740.55 1292.87,2747.67 1295.86,2759.3 1291.58,2758.42 1270.32,2767.13"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_124238256"
- class="fil1 str3"
- points="1208.29,2752.58 1204.56,2759.61 1189.19,2758.34 1182.67,2768.32 1201.56,2779.62 1219.84,2776.96 1237.75,2796.12 1231.64,2807.96 1238.68,2822.25 1217.13,2827.42 1200.87,2832.93 1172.81,2819.03 1172.74,2792.15 1152.52,2791.73 1152.26,2807.36 1137.1,2815.17 1120.95,2789.57 1110.07,2793.94 1108.9,2778.31 1100.22,2777.05 1085.72,2763.48 1124.21,2763.37 1124.06,2742.75 1119.68,2732.6 1133.83,2723.52 1133.76,2706.02 1140.43,2694.65 1159.04,2696.69 1165.29,2714.69 1185.03,2716.33 1188.33,2726.88 1195.8,2726.88 1196.11,2738.55"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525384"
- class="fil1 str3"
- points="1127.32,2711.51 1118.47,2704.69 1110.41,2684 1115.66,2664.63 1094.35,2633.26 1092.36,2612.4 1124.87,2609.28 1143.63,2619.77 1160.81,2609.65 1166.55,2637.15 1187.77,2677.45 1188.93,2704.97 1185.03,2716.33 1165.29,2714.69 1159.04,2696.69 1140.43,2694.65 1133.76,2706.02"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_124863688"
- class="fil1 str3"
- points="1078.95,2711.93 1091.63,2678 1110.41,2684 1118.47,2704.69 1127.32,2711.51 1133.76,2706.02 1133.83,2723.52 1119.68,2732.6 1124.06,2742.75 1124.21,2763.37 1085.72,2763.48 1085.02,2750.82 1075.46,2744.04"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123515016">
- <polygon
- id="_123514800"
- class="fil1 str3"
- points="708.601,2037.06 725.955,2036.66 734.373,2027.64 697.399,1997.91 686.719,2006.19 680.638,1997.15 657.422,2008.47 624.552,1983.92 618.297,1992.4 609.406,2001.45 625.958,2026.78 650.048,2036.58 682.31,2087.69 699.942,2096.18 714.195,2113.64 722.083,2088.15 701.553,2050.89 693.091,2053.3 683.972,2037.18 697.788,2028.25"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123507216"
- class="fil1 str3"
- points="602.732,2104.25 604.143,2072.32 560.912,2033.72 591.47,2034.67 599.345,2005.73 606.724,2003.75 609.406,2001.45 625.958,2026.78 650.048,2036.58 682.31,2087.69 658.233,2087.36 649.109,2114.14 637.041,2124.73 619.645,2119.72"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123531504"
- class="fil1 str3"
- points="574.065,2009.34 586.191,2001.6 599.345,2005.73 591.47,2034.67 560.912,2033.72 555.89,2029.24 565.518,2020.94 572.222,2018.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g304">
- <polygon
- id="_123532512"
- class="fil1 str3"
- points="569.454,1974.32 570.959,1969.43 577.903,1975.51 576.704,1989.53 573.135,1993.22 570.525,1995.92 565.75,1986.37"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522432"
- class="fil1 str3"
- points="606.724,2003.75 609.406,2001.45 618.297,1992.4 609.713,1968.71 604.111,1953.24 594.918,1967 584.997,1973.56 587.76,1989.75 586.191,2001.6 599.345,2005.73"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123529656"
- class="fil1 str3"
- points="586.682,2125.52 619.645,2119.72 602.732,2104.25 604.143,2072.32 560.912,2033.72 555.89,2029.24 554.878,2034.13 545.861,2040.72 542.07,2057.32 535.479,2048.67 528.625,2052.44 523.646,2074 516.005,2074.45 512.029,2079.73 514.431,2087.5 519.963,2093.06 532.104,2120.31 555.396,2140.77"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g309">
- <polygon
- id="_123518352"
- class="fil1 str3"
- points="497.993,2124.8 501.968,2126.49 508.455,2123.19 509.281,2133.22 506.071,2139.25 503.452,2143.4 494.267,2138.97 490.328,2137.22 482.23,2137.44 478.94,2137.53 475.034,2128.84 488.055,2120.59"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526800"
- class="fil1 str3"
- points="454.604,2077.04 457.238,2076.28 461.144,2080.19 460.813,2088.57 456.24,2089.75 452.897,2090.62 448.122,2078.89"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532416"
- class="fil1 str3"
- points="491.136,2114.13 481.213,2114.63 476.51,2118.25 474.6,2119.72 469.825,2119.28 479.808,2103.21 488.923,2103.21 494.523,2108.46 492.567,2111.73"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509688"
- class="fil1 str3"
- points="527.665,2131.1 532.104,2120.31 555.396,2140.77 555.031,2165.28 563.071,2165.56 569.468,2193.63 553.069,2193.43 535.39,2198.79 521.204,2212.05 504.679,2205.76 479.858,2180.12 478.448,2170.6 469.279,2140.47 495.38,2149.82 508.39,2146.78 516.539,2131.32"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123526632"
- class="fil1 str3"
- points="521.204,2212.05 535.39,2198.79 553.069,2193.43 518.675,2253.04 521.205,2270.12 505.575,2286.54 497.439,2253.13 486.195,2236.05 504.679,2205.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123534936"
- class="fil1 str3"
- points="504.679,2205.76 486.195,2236.05 456.831,2205.46 479.858,2180.12"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g317">
- <polygon
- id="_123523032"
- class="fil1 str3"
- points="444.259,2136.72 436.94,2129.83 433.472,2137.47 432.063,2140.57 426.42,2139.27 426.42,2128.84 434.233,2119.72 446.344,2130.17 445.139,2133.95"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123521784"
- class="fil1 str3"
- points="368.257,2111.03 362.393,2111.03 360.01,2111.03 363.483,2101.91 368.691,2091.92 374.291,2091.95 374.375,2097.52 374.437,2101.6"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524160"
- class="fil1 str3"
- points="389.96,2117.11 382.552,2117.11 379.543,2117.11 374.768,2108.86 385.185,2100.61 392.521,2100.64 394.611,2105.46 396.139,2108.98"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532392"
- class="fil1 str3"
- points="378.198,2166.66 369.228,2164.58 363.049,2158.81 356.104,2158.38 346.555,2121.89 353.065,2119.72 358.254,2125.56 367.337,2116.45 373.466,2121.89 373.643,2128.93 370.034,2132.39 367.395,2134.92 370.679,2140.64 377.934,2140.87 380.882,2140.97 384.805,2132.63 393.218,2134.91 400.059,2149.8 395.924,2160.55 384.637,2156.59"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123521928"
- class="fil1 str3"
- points="460.629,2137.37 469.279,2140.47 478.448,2170.6 479.858,2180.12 456.831,2205.46 437.999,2253.13 405.042,2221.35 422.274,2202.18 436.107,2205.5 443.336,2190.18 445.199,2172.29 435.458,2167.51 427.14,2175.11 410.657,2163.49 411.427,2141.71 419.5,2133.51 424.363,2148.04 435.891,2147.78"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123515736"
- class="fil1 str3"
- points="395.853,2199.94 385.845,2193.29 381.18,2200.87 391.702,2208.89 396.191,2218.55 405.042,2221.35 422.274,2202.18 436.107,2205.5 443.336,2190.18 445.199,2172.29 435.458,2167.51 427.14,2175.11 410.657,2163.49 402.223,2173.97 403.459,2181.86 413.408,2190.53 416.553,2198.31 411.394,2200.31 402.206,2197.86"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525312"
- class="fil1 str3"
- points="431.183,2264.34 437.999,2253.13 456.831,2205.46 486.195,2236.05 497.439,2253.13 505.575,2286.54 491.621,2301.21 454.775,2288.95"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g326">
- <polygon
- id="_123512136"
- class="fil1 str3"
- points="308.792,2223.1 304.471,2223.1 302.716,2223.1 299.243,2216.58 305.32,2207.46 311.788,2210.1 311.621,2214.42 311.5,2217.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123518040"
- class="fil1 str3"
- points="359.968,2221.39 357.943,2230.61 353.857,2230.52 352.197,2230.48 346.555,2225.7 346.555,2211.8 352.197,2208.33 359.013,2213.87 359.564,2218.22"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123506688"
- class="fil1 str3"
- points="437.999,2253.13 431.183,2264.34 424.509,2272.14 422.735,2290.44 368.826,2294.62 367.633,2271.65 371.529,2267.62 370.303,2256.45 381.609,2255.16 385.901,2250.78 384.587,2240.35 395.125,2230.34 396.191,2218.55 405.042,2221.35"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g331">
- <polygon
- id="_123526896"
- class="fil1 str3"
- points="347.857,2267.84 344.153,2270.93 342.648,2272.18 335.269,2267.84 340.478,2259.15 349.55,2254.84 351.891,2259.91 353.602,2263.62"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530064"
- class="fil1 str3"
- points="334.401,2304.76 329.772,2305.07 327.891,2305.19 325.72,2300.85 326.588,2290.86 330.452,2290.02 333.795,2296.85 336.24,2301.84"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524664"
- class="fil1 str3"
- points="331.973,2310.95 331.011,2315.73 362.649,2315.76 368.826,2294.62 367.633,2271.65 371.529,2267.62 370.303,2256.45 369.587,2250.92 358.574,2254.71 355.58,2272.87 349.848,2279 338.504,2278.41 337.303,2283.26 344.031,2290.92 343.06,2299.64"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g336">
- <polygon
- id="_123526992"
- class="fil1 str3"
- points="324.852,2362.09 321.148,2358.39 319.644,2356.88 321.773,2350.78 324.809,2346.49 331.466,2353.97 331.657,2356.4 331.797,2358.19"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528384"
- class="fil1 str3"
- points="347.952,2415.57 358.025,2401.86 350.075,2389.46 332.954,2400.61 337.853,2381.11 333.22,2376.18 335.43,2357.44 345.35,2341.23 344.328,2334.69 339.132,2330.79 332.311,2336.53 328.473,2331.91 331.011,2315.73 362.649,2315.76 368.826,2294.62 422.735,2290.44 421.21,2308.62 428.463,2316.31 404.054,2342.78 384.527,2400.54 372.634,2422.35 349.233,2436.92 359.461,2423.29 360.11,2416.17"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123504672"
- class="fil1 str3"
- points="332.954,2400.61 350.075,2389.46 358.025,2401.86 347.952,2415.57 338.319,2415.1 331.84,2405.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528288"
- class="fil1 str3"
- points="363.097,2528.12 347.887,2541.99 347.236,2539.57 339.362,2526.5 346.611,2498.97 354.361,2486.29 353.9,2475 365.851,2462.21 364.27,2454.11 349.269,2448.25 349.233,2436.92 372.634,2422.35 384.527,2400.54 392.2,2419.5 403.237,2423.14 403.809,2451.54 410.475,2454.41 417.712,2464.96 402.523,2474.65 405.334,2489.15 397.085,2495.68 393.829,2524.51"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123507120">
- <g
- id="g343">
- <polygon
- id="_123516168"
- class="fil1 str3"
- points="951.99,1578.88 947.584,1569.28 956.308,1557.58 956.364,1539.27 964.998,1535.58 995.78,1539.13 1006.02,1540.57 1026.35,1524.47 1049.79,1525.04 1057.21,1535.21 1061.89,1556.18 1052.16,1556.41 1014.05,1547.56 999.253,1557.49 995.823,1568.69 1006.78,1577.38 1009.75,1587.79 1004.51,1600.44 980.109,1590.58 969.772,1595.81 964.457,1586.08"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524544"
- class="fil1 str3"
- points="951.187,1592.83 944.242,1592.83 937.731,1587.19 941.204,1581.11 949.971,1584.43"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123511296"
- class="fil1 str3"
- points="892.558,1634.74 881.896,1628.14 870.453,1631.06 860.036,1606.73 866.113,1595.44 899.535,1587.62 908.877,1598.64 918.083,1598.51 923.98,1595.47 929.149,1600.17 928.93,1606.22 916.609,1611.27 904.132,1603 894.158,1605.66 901.318,1628.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g348">
- <polygon
- id="_123532296"
- class="fil1 str3"
- points="723.31,1855.63 715.497,1858.67 714.87,1862.05 713.327,1870.39 720.706,1869.96 722.576,1866.59 725.133,1861.99"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513816"
- class="fil1 str3"
- points="757.474,1842.06 749.922,1837.06 740.913,1850.69 733.448,1856.71 725.828,1868.31 716.105,1883.13 714.896,1906.75 734.808,1934.22 747.243,1934.05 756.618,1942.5 764.428,1938.25 755.457,1926.07 763.583,1910.81 784.212,1906.8 790.68,1932.63 813.538,1928.76 820.94,1917.54 805.498,1897.4 795.716,1869.35 807.846,1863.11 805.145,1847.66 816.72,1831.45 771.579,1811.3 763.857,1823.97 763.625,1838.73"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123511080"
- class="fil1 str3"
- points="1001.06,1906.9 1018.13,1898.21 1004.95,1874.74 981.21,1828.82 976.195,1818.34 955.644,1835.42 941.487,1835.27 941.464,1849.9 932.232,1856.91 920.747,1879.77 899.164,1883.46 893.508,1893.31 918.623,1909 964.779,1954.89 987.348,1958.71 985.131,1947.28 987.934,1933.85 997.203,1932.51"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123504864"
- class="fil1 str3"
- points="1551.11,1416.34 1579.48,1397.44 1598.77,1395.63 1590.01,1334.1 1560.34,1249.47 1535.44,1212.77 1516.62,1162.12 1471.15,1167.96 1396.51,1150.45 1397,1167.18 1381.94,1173.14 1377.03,1191.57 1389.74,1218.91 1408.29,1226.72 1403.72,1258.16 1394.3,1259.63 1393.99,1277.05 1406.59,1286.23 1406.94,1303.11 1401.44,1307.59 1383.24,1302.42 1364.8,1311.34 1379.62,1333.66 1378.48,1352.79 1392.79,1360.37 1402.99,1382.63 1403.3,1420.9 1417.27,1430.13 1431.56,1429.74 1440.15,1420.73 1478.14,1453.45 1484.2,1458.48 1519.34,1460.14 1556.25,1452.97 1561.84,1434.11"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123533808"
- class="fil1 str3"
- points="1465.64,1480.24 1478.14,1453.45 1440.15,1420.73 1431.56,1429.74 1417.27,1430.13 1403.3,1420.9 1402.99,1382.63 1392.79,1360.37 1378.48,1352.79 1348.52,1365.88 1280.73,1355.15 1277.61,1368.71 1294.04,1430.21 1291.28,1474.28 1305.57,1493.61 1317.92,1493.78 1336.46,1512.05 1340.51,1540.95 1397.55,1530.71 1400.94,1496.98 1442.05,1477.57 1450.78,1484.71"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123520872"
- class="fil1 str3"
- points="1294.04,1430.21 1277.61,1368.71 1280.73,1355.15 1266.81,1320.59 1256.46,1325.5 1242.83,1319.3 1200.14,1388.84 1168.84,1399.51 1076.5,1391.52 1078.92,1441.61 1075.93,1487.6 1095,1498.02 1101.28,1497.21 1107.57,1510.27 1102.29,1526.69 1084.87,1532.4 1101.52,1559.96 1131.27,1585.48 1230.71,1589.35 1258.72,1589.47 1273.3,1578.6 1289.52,1580.72 1303.8,1590.57 1309.94,1552.85 1324.9,1543.75 1340.51,1540.95 1336.46,1512.05 1317.92,1493.78 1305.57,1493.61 1291.28,1474.28"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <path
- id="_123507576"
- class="fil1 str3"
- d="m 959.934,1460.96 6.52643,11.6125 -1.01801,12.4857 -8.20819,8.7163 0.0265,14.6825 -6.32465,7.7357 5.46852,10.0852 -0.0396,12.9904 8.63312,-3.6944 30.7828,3.5576 31.42888,-91.9069 30.9951,-8.8973 20.7187,3.2786 -2.427,-50.0862 -3.5192,-30.1461 -46.7181,29.4353 -53.64175,-3.066 -3.20165,14.8349 -21.389,11.1046 -14.4268,14.7101 c 0.61645,0.6401 1.23375,1.2765 1.85162,1.9095 l 0.5717,13.1287 6.99154,0.034 4.66996,-4.3003 12.2492,21.7957 z"
- inkscape:connector-curvature="0"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123531072"
- class="fil1 str3"
- points="1058.2,1438.33 1027.21,1447.23 995.78,1539.13 1006.02,1540.57 1026.35,1524.47 1049.79,1525.04 1057.21,1535.21 1084.87,1532.4 1102.29,1526.69 1107.57,1510.27 1101.28,1497.21 1095,1498.02 1075.93,1487.6 1078.92,1441.61"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522384"
- class="fil1 str3"
- points="1084.02,1729.21 1091.23,1748.68 1109.12,1743.81 1116.82,1747.93 1117.62,1757.04 1130.9,1753.14 1135.85,1737.13 1164.36,1723.23 1174.42,1694.04 1200.45,1681.63 1201.29,1674.21 1231.9,1681.26 1237.65,1665.79 1235.17,1624.71 1217.95,1610.3 1230.71,1589.35 1131.27,1585.48 1138.85,1609.63 1157,1630.55 1139.03,1656.24 1129.65,1655.35 1125.19,1664.37 1112,1670.37 1118.12,1679.46 1109.37,1686.42 1086.03,1669.08 1075.33,1674.57 1102.38,1725.9"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123510912"
- class="fil1 str3"
- points="1032.7,1611.22 1047.11,1600.88 1058.39,1582.72 1049.38,1564.88 1052.16,1556.41 1014.05,1547.56 999.253,1557.49 995.823,1568.69 1006.78,1577.38 1009.75,1587.79 1004.51,1600.44"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525168"
- class="fil1 str3"
- points="1058.39,1582.72 1049.38,1564.88 1052.16,1556.41 1061.89,1556.18 1057.21,1535.21 1084.87,1532.4 1101.52,1559.96 1131.27,1585.48 1138.85,1609.63 1157,1630.55 1139.03,1656.24 1129.65,1655.35 1125.19,1664.37 1112,1670.37 1088.95,1662 1063.35,1627.69 1024.22,1657.93 1012.89,1642.69 978.389,1631.88 981.608,1632.03 982.389,1626.32 972.932,1616.68 969.772,1595.81 980.109,1590.58 1004.51,1600.44 1032.7,1611.22 1047.11,1600.88"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515184"
- class="fil1 str3"
- points="960.695,1620.02 947.233,1618.86 944.869,1625.57 946.032,1634.14 965.659,1653.85 967.439,1659.18 977.006,1661.59 974.448,1652.55 974.344,1643.03 978.389,1631.88 975.171,1631.73"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123504984"
- class="fil1 str3"
- points="1012.89,1642.69 978.389,1631.88 974.344,1643.03 974.448,1652.55 977.006,1661.59 993.27,1669.89 1008.08,1668.63 1018.27,1649.93"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528000"
- class="fil1 str3"
- points="1086.03,1669.08 1109.37,1686.42 1118.12,1679.46 1112,1670.37 1088.95,1662 1063.35,1627.69 1024.22,1657.93 1055.73,1715.72 1049.94,1722.8 1073.54,1748.12 1092.43,1782.74 1117.62,1757.04 1116.82,1747.93 1109.12,1743.81 1091.23,1748.68 1084.02,1729.21 1102.38,1725.9 1075.33,1674.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513528"
- class="fil1 str3"
- points="1066.99,1752.89 1041.43,1732.49 1049.94,1722.8 1055.73,1715.72 1024.22,1657.93 1018.27,1649.93 1008.08,1668.63 993.27,1669.89 987.276,1673.01 993.835,1704.17 982.278,1704.51 980.537,1718.27 1011.99,1752.76 1019.43,1746.77 1009.48,1736.94 1017.42,1729.03 1036.07,1743.71 1047.58,1757.86 1063.95,1761.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515952"
- class="fil1 str3"
- points="1066.99,1752.89 1063.95,1761.05 1047.58,1757.86 1036.07,1743.71 1017.42,1729.03 1009.48,1736.94 1019.43,1746.77 1011.99,1752.76 980.537,1718.27 982.278,1704.51 993.835,1704.17 987.276,1673.01 993.27,1669.89 977.006,1661.59 967.439,1659.18 969.609,1665.68 964.448,1670.35 955.431,1669.57 937.238,1704.08 999.386,1751.24 1012.77,1773.59 1017.89,1763.82 1023.1,1763.85 1032.18,1774.11 1039.32,1762.17 1074.94,1791.22 1092.43,1782.74 1073.54,1748.12 1049.94,1722.8 1041.43,1732.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123520728"
- class="fil1 str3"
- points="953.652,1659.04 955.431,1669.57 937.238,1704.08 909.667,1684.22 918.965,1656.94 915.554,1647.45 933.954,1647.6"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123506952"
- class="fil1 str3"
- points="937.238,1704.08 982.066,1738.09 974.984,1744.16 966.871,1766.71 982.556,1772.35 976.32,1788.03 983.67,1802.74 983.816,1812.72 976.195,1818.34 976.105,1805.26 967.051,1793.78 938.385,1781.11 912.355,1757.17 894.016,1753.24 888.621,1746.34 886.536,1743.68 886.528,1728.33 886.601,1715.24 869.231,1685 858.027,1684.09 860.633,1670.62 873.052,1669.18 877.301,1661.48 884.505,1655.08 906.039,1654.86 915.554,1647.45 918.965,1656.94 909.667,1684.22"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523464"
- class="fil1 str3"
- points="869.231,1685 858.027,1684.09 855.481,1697.25 836.256,1710.62 826.035,1753.87 813.334,1763.68 852.231,1780.02 877.52,1782.64 899.35,1809.52 904.492,1804.96 904.513,1792.91 895.733,1782.69 891.38,1763.88 894.016,1753.24 886.536,1743.68 886.528,1728.33 886.601,1715.24"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526584"
- class="fil1 str3"
- points="1152.9,1843.74 1137.22,1833.3 1125.43,1834.94 1110.87,1822.18 1113.15,1807.93 1105.72,1791.46 1092.43,1782.74 1074.94,1791.22 1039.32,1762.17 1032.18,1774.11 1023.1,1763.85 1017.89,1763.82 1012.77,1773.59 999.386,1751.24 982.066,1738.09 974.984,1744.16 966.871,1766.71 982.556,1772.35 976.32,1788.03 983.67,1802.74 983.816,1812.72 976.195,1818.34 981.21,1828.82 1004.95,1874.74 1018.13,1898.21 1042.12,1918.68 1078.19,1933.82 1078.24,1912.07 1068.28,1894.79 1071.66,1883.9 1085.38,1887.84 1093.62,1872.04 1121.19,1863.77 1141.27,1873.17 1152.89,1870.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123534576"
- class="fil1 str3"
- points="967.051,1793.78 976.105,1805.26 976.195,1818.34 955.644,1835.42 941.487,1835.27 915.39,1829.25 899.35,1809.52 904.492,1804.96 904.513,1792.91 895.733,1782.69 891.38,1763.88 894.016,1753.24 912.355,1757.17 938.385,1781.11"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123533976"
- class="fil1 str3"
- points="1152.89,1914.16 1163.78,1927.86 1129.2,1939.51 1087.05,1978.45 1086.47,1957.32 1078.17,1942.05 1078.19,1933.82 1078.24,1912.07 1068.28,1894.79 1071.66,1883.9 1085.38,1887.84 1093.62,1872.04 1121.19,1863.77 1141.27,1873.17 1152.89,1870.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513216"
- class="fil1 str3"
- points="988.916,2085.88 954.771,2062.46 984.632,2049.24 1004.27,1996.82 1086.47,1957.32 1087.05,1978.45 1079.19,1985.71 1086.69,2061.72 1078.37,2066.71 1062.15,2112.61 1031.13,2112.83 1022.17,2093.91 1012.63,2085.96"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532968"
- class="fil1 str3"
- points="1004.27,1996.82 994.841,1960.18 987.348,1958.71 985.131,1947.28 987.934,1933.85 997.203,1932.51 1001.06,1906.9 1018.13,1898.21 1042.12,1918.68 1078.19,1933.82 1078.17,1942.05 1086.47,1957.32"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525192"
- class="fil1 str3"
- points="994.841,1960.18 987.348,1958.71 964.779,1954.89 946.622,1953.72 941.182,1975.51 927.401,1998.06 902.086,1990.61 898.208,2014.19 919.154,2017.2 941.998,2053.69 954.771,2062.46 984.632,2049.24 1004.27,1996.82"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525912"
- class="fil1 str3"
- points="853.35,2042.04 903.105,2102.63 920.687,2100.29 927.197,2059.84 941.998,2053.69 919.154,2017.2 898.208,2014.19 895.453,2030.73 872.274,2022.81"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123516384"
- class="fil1 str3"
- points="853.35,2042.04 872.274,2022.81 895.453,2030.73 898.208,2014.19 902.086,1990.61 890.208,1969.58 859.115,1949.81 834.523,1940.28 820.94,1917.54 813.538,1928.76 790.68,1932.63 793.686,1944.63 804.533,1950.27 809.544,1971.34 824.378,1977.18 840.913,2026.89"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123519888"
- class="fil1 str3"
- points="899.506,1937.89 871.385,1937.68 859.115,1949.81 890.208,1969.58 902.086,1990.61 927.401,1998.06 941.182,1975.51 946.622,1953.72 964.779,1954.89 918.623,1909"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123536520"
- class="fil1 str3"
- points="857.778,1869.72 834.503,1875.81 824.964,1891.77 826.916,1902.36 820.94,1917.54 834.523,1940.28 859.115,1949.81 871.385,1937.68 899.506,1937.89 918.623,1909 893.508,1893.31"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514200"
- class="fil1 str3"
- points="899.164,1883.46 893.508,1893.31 857.778,1869.72 851.884,1842.21 869.051,1845.22 869.101,1834.38 883.841,1820.72 883.987,1809.55 899.35,1809.52 915.39,1829.25 941.487,1835.27 941.464,1849.9 932.232,1856.91 920.747,1879.77"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529440"
- class="fil1 str3"
- points="850.132,1824.32 866.155,1811.31 883.987,1809.55 899.35,1809.52 877.52,1782.64 852.231,1780.02 813.334,1763.68 812.447,1770.7 794.931,1782.31 774.609,1804.09 771.579,1811.3 816.72,1831.45 840.604,1810.62"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532032"
- class="fil1 str3"
- points="851.884,1842.21 869.051,1845.22 869.101,1834.38 883.841,1820.72 883.987,1809.55 866.155,1811.31 850.132,1824.32 840.604,1810.62 816.72,1831.45 857.778,1869.72"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123527832"
- class="fil1 str3"
- points="795.716,1869.35 807.846,1863.11 805.145,1847.66 816.72,1831.45 857.778,1869.72 834.503,1875.81 824.964,1891.77 826.916,1902.36 820.94,1917.54 805.498,1897.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
-
- <g
- id="_123524592">
- <polygon
- id="_123521616"
- class="fil1 str3"
- points="682.21,2928.73 675.663,2901.05 683.482,2888.24 696.659,2884.78 701.798,2879.74 701.09,2874.31 728.985,2889.25 724.994,2902.1 736.807,2918.6 728.161,2921.9 735.082,2932.22 725.235,2983.37 706.523,2980.15 674.917,2969.69 643.351,2945.45 653.789,2928.99 669.642,2936.15"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509544"
- class="fil1 str3"
- points="856.142,2914.42 851.628,2913.31 847.074,2924.88 839.33,2925.25 836.602,2935.47 827.385,2949.77 824.339,2943.07 810.131,2943.02 808.216,2952.16 793.893,2949.49 786.618,2943.56 797.658,2930.49 789.814,2899.94 811.017,2887.92 825.088,2864.91 835.357,2861.1 846.062,2868.43 859.462,2864.55 877.622,2884.02 877.557,2907.41 870.777,2907.92 872.565,2917.21 862.987,2924.52 856.943,2919.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123533376"
- class="fil1 str3"
- points="901.478,2910.74 891.37,2919.27 903.078,2944.58 891.799,2947.46 888.946,2960.18 897.939,2952.53 907.1,2958.94 893.857,2968.57 895.324,2977.5 875.258,2971.8 865.162,2976.12 855.256,2977.28 850.996,2964.14 856.021,2952.27 852.966,2942.73 836.602,2935.47 839.33,2925.25 847.074,2924.88 851.628,2913.31 856.142,2914.42 856.943,2919.92 862.987,2924.52 872.565,2917.21 870.777,2907.92 877.557,2907.41 890.922,2897.91"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123512832"
- class="fil1 str3"
- points="901.898,2793.4 916.723,2804.85 918.923,2842.42 891.308,2858.88 883.856,2889.32 890.922,2897.91 877.557,2907.41 877.622,2884.02 859.462,2864.55 846.062,2868.43 835.357,2861.1 825.088,2864.91 811.017,2887.92 789.814,2899.94 797.658,2930.49 786.618,2943.56 776.985,2934.04 744.975,2926.25 735.082,2932.22 728.161,2921.9 736.807,2918.6 724.994,2902.1 728.985,2889.25 701.09,2874.31 697.552,2847.18 719.506,2838.85 766.709,2820.94 766.392,2846.94 731.276,2886.66 729.083,2891.62 731.563,2894.66 729.417,2902.46 736.22,2905.04 735.175,2907.55 739.188,2909.15 743.214,2904.27 746.275,2906.89 771.03,2876.28 819.947,2848.12 805.823,2838.11 780.133,2798.12 808.832,2775.62 833.758,2785.32 839.203,2773 851.034,2784.83 868.71,2776.92 893.515,2786.84 890.301,2798.88"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123536496"
- class="fil1 str3"
- points="739.188,2909.15 735.175,2907.55 736.22,2905.04 729.417,2902.46 731.563,2894.66 729.083,2891.62 731.276,2886.66 766.392,2846.94 766.709,2820.94 775.576,2810.39 772.241,2806.46 771.866,2799.95 775.339,2794.5 780.133,2798.12 805.823,2838.11 819.947,2848.12 771.03,2876.28 746.275,2906.89 743.214,2904.27"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123510456"
- class="fil1 str3"
- points="696.659,2884.78 683.482,2888.24 675.663,2901.05 682.21,2928.73 669.642,2936.15 653.789,2928.99 657.19,2892.39 647.285,2882.87 645.998,2873.75 676.072,2862.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517104"
- class="fil1 str3"
- points="657.19,2892.39 653.789,2928.99 643.351,2945.45 639.263,2942.32 629.615,2947.14 629.769,2941.37 612.904,2904.19 636.512,2900.79 647.285,2882.87"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517536"
- class="fil1 str3"
- points="647.285,2882.87 636.512,2900.79 612.904,2904.19 608.333,2894.11 616.528,2875.01 604.271,2867.68 604.484,2859.38 614.825,2853.04 629.168,2863.92 631.458,2873.97 645.998,2873.75"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525480"
- class="fil1 str3"
- points="619.967,2951.96 594.283,2939.19 593.733,2926.89 600.574,2920.76 592.29,2911.08 593.691,2897.09 608.333,2894.11 629.769,2941.37 629.615,2947.14"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514656"
- class="fil1 str3"
- points="782.852,3008.01 780.117,2997.59 768.943,2992.27 758.077,3000.59 752.417,2988.06 725.235,2983.37 735.082,2932.22 744.975,2926.25 776.985,2934.04 786.618,2943.56 793.893,2949.49 808.216,2952.16 810.131,2943.02 824.339,2943.07 827.385,2949.77 814.396,2968.88 817.6,2977.44 809.7,2988.07 810.923,3002.5"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523560"
- class="fil1 str3"
- points="852.966,2942.73 856.021,2952.27 850.996,2964.14 855.256,2977.28 835.253,2980.06 817.6,2977.44 814.396,2968.88 827.385,2949.77 836.602,2935.47"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
-
- <g
- id="_123517872">
- <polygon
- id="_123529392"
- class="fil1 str3"
- points="33.5849,3035.75 41.1199,3074.77 34.4915,3074.87 29.1595,3073.65 26.3728,3083.28 18.8654,3083.7 13.3646,3071.39 16.3306,3058.37 11.012,3052.68 14.3162,3043.96"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517752"
- class="fil1 str3"
- points="59.1953,3027.51 67.5138,3032.8 65.2332,3047.71 63.4896,3065.75 69.7114,3073.8 50.8534,3085.95 41.1199,3074.77 33.5849,3035.75 42.3408,3038.52 51.701,3037.09"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530808"
- class="fil1 str3"
- points="79.2103,3067.68 88.7378,3077.46 98.813,3085.09 90.3449,3105.11 84.8333,3089.34 70.9434,3090.87 72.4157,3111.57 67.6728,3105.54 58.1744,3104.57 52.4884,3098.18 50.8534,3085.95 69.7114,3073.8"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528240"
- class="fil1 str3"
- points="70.9434,3090.87 84.8333,3089.34 90.3449,3105.11 86.3825,3119.37 74.1171,3122.07 72.4157,3111.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523920"
- class="fil1 str3"
- points="100.189,3128.84 86.3825,3119.37 90.3449,3105.11 92.4564,3108.56 100.794,3108.78 105.859,3105.46 122.12,3114.24 122.2,3120.94 118.794,3128.57 124.795,3134.78 123.752,3142.38 113.857,3149.22 111.359,3138.67 104.948,3139.89"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123510792"
- class="fil1 str3"
- points="127.334,3043.78 137.343,3055.96 129.954,3077.59 112.327,3080.44 101.229,3068.17 96.2591,3067.67 98.9053,3058.86 119.393,3050.51 126.972,3040.91"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526512"
- class="fil1 str3"
- points="88.7378,3077.46 79.2103,3067.68 69.7114,3073.8 63.4896,3065.75 65.2332,3047.71 71.3886,3049.28 76.6471,3043.26 74.7148,3038.85 74.6712,3032.67 71.3641,3027.63 73.55,3027.63 95.3594,3015.08 96.5307,3016.21 89.9829,3036.5 98.9053,3058.86 96.2591,3067.67 94.4933,3067.5"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509880"
- class="fil1 str3"
- points="70.0742,3024.81 55.7411,3022.76 68.3286,3006.26 80.6746,3000.85 95.3594,3015.08 73.55,3027.63 71.3641,3027.63"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525672"
- class="fil1 str3"
- points="123.462,3114.73 121.721,3099.37 131.459,3087.72 135.232,3088.35 136.811,3096.63 131.054,3107.45 134.293,3114.81"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g435">
- <polygon
- id="_123522000"
- class="fil1 str3"
- points="163.395,3039.15 140.815,3037.53 141.249,3030.58 147.084,3026.04 163.374,3034.02"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515568"
- class="fil1 str3"
- points="162.305,3068.36 154.259,3079.63 149.071,3079.54 149.935,3064.62 143.853,3058.38 150.798,3051.43 156.633,3046.89 160.407,3053.17 157.211,3060.58"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g439">
- <polygon
- id="_123529344"
- class="fil1 str3"
- points="151.655,3146.96 136.484,3146.44 133.441,3141.5 147.326,3130.05 154.897,3124.21 173.863,3126.57 178.914,3132.68 172.288,3140.89"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509568"
- class="fil1 str3"
- points="166.183,3106.84 171.969,3107.92 178.799,3114.4 179,3119.16 166.867,3117.77 161.654,3111.96"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123517392"
- class="fil1 str3"
- points="200.289,3115.16 188.56,3114.41 185.836,3102.31 180.314,3096.17 186.149,3087.72 195.875,3093.63 202.016,3107.03 200.703,3110.04"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123531240"
- class="fil1 str3"
- points="240.529,3169.96 238.749,3175.41 232.835,3175.24 227.614,3183.44 214.613,3173.8 217.212,3166.26 230.856,3159.83 234.906,3162.65 242.604,3166.52"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g445">
- <polygon
- id="_123506592"
- class="fil1 str3"
- points="240.646,3045.78 232.834,3047.96 227.625,3042.31 230.856,3032.13 240.582,3036.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532080"
- class="fil1 str3"
- points="207.225,3045.35 207.225,3044.92 210.022,3036.03 215.841,3031.95 221.114,3037.1 217.208,3047.09 209.838,3048.7"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513576"
- class="fil1 str3"
- points="211.131,3074.02 210.263,3069.67 210.022,3060.79 218.88,3056.71 224.153,3064.03 225.889,3068.37 215.915,3077.37"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123505728"
- class="fil1 str3"
- points="195.939,3087.92 192.901,3075.76 196.132,3070.35 202.386,3071.48 204.62,3077.06 204.609,3081.37 205.932,3087.8"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g451">
- <polygon
- id="_123522984"
- class="fil1 str3"
- points="272.766,3011.9 264.519,3010.17 262.843,2978.21 269.052,2977.83 279.711,2993.66"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535848"
- class="fil1 str3"
- points="247.784,2994.34 255.34,3006.32 252.8,3017.99 244.987,3022.33 238.476,3007.56 239.838,2999.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528912"
- class="fil1 str3"
- points="264.712,3016.49 271.4,3024.56 268.86,3039.27 263.651,3044.05 257.14,3040.14 254.162,3025.55"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123529608"
- class="fil1 str3"
- points="126.972,3040.91 119.393,3050.51 98.9053,3058.86 89.9829,3036.5 96.5307,3016.21 111.167,3018.9 117.585,3029.69 126.015,3033.32"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123519216">
- <polygon
- id="_123532104"
- class="fil1 str3"
- points="658.233,2087.36 682.31,2087.69 699.942,2096.18 714.245,2114.3 714.561,2139.08 704.215,2144.14 696.728,2135.21 682.861,2144.09 672.967,2134.35 663.731,2143.82 647.327,2132.41 649.109,2114.14"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123512568"
- class="fil1 str3"
- points="563.071,2165.56 555.031,2165.28 555.396,2140.77 586.682,2125.52 619.645,2119.72 637.041,2124.73 649.109,2114.14 647.327,2132.41 663.731,2143.82 672.967,2134.35 682.861,2144.09 663.037,2168.83 678.745,2188.31 679.841,2217.2 662.047,2226.57 621.288,2228.43 599.272,2209.66 580.212,2220.72 561.818,2207.59 543.924,2209.28 553.069,2193.43 569.468,2193.63 564.053,2169.86"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517968"
- class="fil1 str3"
- points="679.841,2217.2 678.745,2188.31 663.037,2168.83 682.861,2144.09 696.728,2135.21 704.215,2144.14 714.561,2139.08 714.195,2113.64 741.564,2149.62 737.314,2173.94 717.836,2180.51 715.228,2190.71 707.745,2219.97 688.668,2243.43"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123531720"
- class="fil1 str3"
- points="619.767,2278.77 588.469,2268.18 590.276,2248.25 580.212,2220.72 599.272,2209.66 621.288,2228.43 662.047,2226.57 679.841,2217.2 688.668,2243.43 676.626,2248.09 685.092,2258.59 661.861,2273.17 647.411,2301.46 629.944,2293.6 611.653,2296.53"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529008"
- class="fil1 str3"
- points="791.702,2189.18 778.643,2194.57 724.425,2210.56 715.228,2190.71 717.836,2180.51 737.314,2173.94 741.564,2149.62 766.274,2157.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513792"
- class="fil1 str3"
- points="756.723,2325.43 769.624,2291.36 755.993,2284.06 759.594,2259.24 761.068,2250.48 773.118,2245.73 800.65,2246.07 802.543,2261.43 815.776,2279.18 806.687,2286.3 824.237,2332.36 829.202,2347.65 815.941,2341.77 792.966,2323.57 788.842,2336.68 768.337,2339.41"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522120"
- class="fil1 str3"
- points="685.092,2258.59 704.766,2281.54 725.711,2307.76 731.195,2314.63 747.831,2322.83 756.723,2325.43 769.624,2291.36 755.993,2284.06 759.594,2259.24 761.068,2250.48 773.118,2245.73 800.65,2246.07 797.81,2223.04 808.231,2208.56 778.643,2194.57 724.425,2210.56 715.228,2190.71 707.745,2219.97 688.668,2243.43 676.626,2248.09"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517944"
- class="fil1 str3"
- points="685.092,2258.59 704.766,2281.54 725.711,2307.76 715.227,2315.33 701.505,2317.41 687.362,2345.36 669.595,2341.4 646.764,2317.17 647.411,2301.46 661.861,2273.17"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123504024"
- class="fil1 str3"
- points="505.575,2286.54 566.323,2268.55 581.177,2281.04 562.813,2298.48 561.618,2306.5 586.675,2329.74 587.11,2347.83 550.406,2355.19 533.002,2336.02 484.101,2317.52 480.922,2311.67 491.621,2301.21"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123506304"
- class="fil1 str3"
- points="518.675,2253.04 521.205,2270.12 505.575,2286.54 566.323,2268.55 581.177,2281.04 562.813,2298.48 561.618,2306.5 586.675,2329.74 587.11,2347.83 596.481,2377.61 604.225,2374.11 621.78,2420.77 612.569,2426.24 631.338,2442.18 645.754,2416.75 650.412,2407.34 642.291,2373.14 648.671,2366.44 632.281,2332.12 636.13,2321.07 646.764,2317.17 647.411,2301.46 629.944,2293.6 611.653,2296.53 619.767,2278.77 588.469,2268.18 590.276,2248.25 580.212,2220.72 561.818,2207.59 543.924,2209.28"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514128"
- class="fil1 str3"
- points="540.701,2399.04 536.786,2385.21 539.248,2369.81 550.406,2355.19 587.11,2347.83 596.481,2377.61 604.225,2374.11 621.78,2420.77 612.569,2426.24 631.338,2442.18 599.722,2459.44 570.925,2459.2 559.474,2459.25 541.062,2450.11 550.752,2434.56"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515304"
- class="fil1 str3"
- points="480.922,2311.67 491.621,2301.21 454.775,2288.95 431.183,2264.34 424.509,2272.14 421.21,2308.62 428.463,2316.31 409.544,2336.83 428.602,2336.75 428.678,2350.24 449.003,2354.27 454.576,2341.47 472.572,2345.65 463.389,2368.06 475.99,2370.47 484.616,2362.48 509.875,2377.57 509.892,2386.71 540.701,2399.04 536.786,2385.21 539.248,2369.81 550.406,2355.19 533.002,2336.02 484.101,2317.52"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123527088"
- class="fil1 str3"
- points="428.602,2336.75 428.678,2350.24 449.003,2354.27 454.576,2341.47 472.706,2345.32 463.389,2368.06 453.552,2391.01 434.457,2421.37 386.163,2395.7 404.054,2342.78 409.544,2336.83"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535800"
- class="fil1 str3"
- points="434.457,2421.37 435.392,2444.48 428.834,2449.52 425.652,2464.91 417.712,2464.96 410.475,2454.41 403.809,2451.54 403.237,2423.14 392.2,2419.5 384.527,2400.54 386.163,2395.7"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524856"
- class="fil1 str3"
- points="478.835,2501.31 435.392,2444.48 434.457,2421.37 453.552,2391.01 463.389,2368.06 475.99,2370.47 484.616,2362.48 509.875,2377.57 509.892,2386.71 540.701,2399.04 550.752,2434.56 541.062,2450.11 527.667,2477.44 512.035,2477.97 491.272,2509.84 479.433,2509.9"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532368"
- class="fil1 str3"
- points="402.523,2474.65 417.712,2464.96 425.652,2464.91 428.834,2449.52 435.392,2444.48 478.835,2501.31 479.433,2509.9 440.787,2542.76 407.269,2536.82 393.829,2524.51 397.085,2495.68 405.334,2489.15"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532632"
- class="fil1 str3"
- points="645.754,2416.75 650.412,2407.34 642.291,2373.14 648.671,2366.44 632.281,2332.12 636.13,2321.07 646.764,2317.17 669.595,2341.4 687.362,2345.36 701.505,2317.41 715.227,2315.33 713.307,2353.46 708.432,2356.26 724.382,2399.46 698.495,2420.78 677.504,2417.78 673.61,2427.63"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513984"
- class="fil1 str3"
- points="725.711,2307.76 731.195,2314.63 747.831,2322.83 751.728,2339.56 746.476,2350.29 754.242,2373.16 749.337,2373.27 724.382,2399.46 708.432,2356.26 713.307,2353.46 715.227,2315.33"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515472"
- class="fil1 str3"
- points="770.715,2412.47 750.321,2435.93 738.921,2431.19 735.962,2406.83 724.382,2399.46 749.337,2373.27 754.242,2373.16 746.476,2350.29 751.728,2339.56 747.831,2322.83 756.723,2325.43 768.337,2339.41 788.842,2336.68 792.966,2323.57 815.941,2341.77 829.202,2347.65 823.655,2355.54 831.235,2365.9 825.52,2404.73 803.266,2405.07 797.152,2416.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123510552">
- <polygon
- id="_123526656"
- class="fil1 str3"
- points="368.184,2588.27 368.696,2583.58 362.645,2578.87 358.927,2555.16 349.954,2549.66 347.887,2541.99 363.097,2528.12 393.829,2524.51 407.269,2536.82 404.405,2569.89 396.31,2569.52 389.882,2586.04 401.744,2613.79 371.06,2615.14 371.061,2612.51 357.59,2595.07 360.297,2589.1"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123508824"
- class="fil1 str3"
- points="407.269,2536.82 440.787,2542.76 444.255,2559.86 465.297,2565.05 444.003,2600.73 451.982,2605.6 442.583,2620.29 435.07,2612.17 401.744,2613.79 389.882,2586.04 396.31,2569.52 404.405,2569.89"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123519672"
- class="fil1 str3"
- points="540.101,2610.95 540.705,2620.89 537.311,2638.46 523.038,2639.63 498.95,2624.04 479.489,2611.45 469.188,2619.19 463.398,2611.34 451.982,2605.6 444.003,2600.73 465.297,2565.05 482.941,2564.95 497.483,2553.25 498.893,2542.26 511.497,2537.62 527.031,2540.67 540.911,2547.49 540.927,2561.29 525.036,2566.94 523.068,2575.95 529.296,2582.42 527.441,2606.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123536664"
- class="fil1 str3"
- points="556.397,2572.87 562.553,2594.72 553.841,2625.16 540.705,2620.89 540.101,2610.95 527.441,2606.45 529.296,2582.42 523.068,2575.95 525.036,2566.94 540.927,2561.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123534312"
- class="fil1 str3"
- points="413.219,2628.97 406.119,2622.66 401.744,2613.79 435.07,2612.17 442.583,2620.29 451.982,2605.6 463.398,2611.34 469.188,2619.19 479.489,2611.45 498.95,2624.04 490.608,2633.11 483.734,2630.52 460.95,2653.3 440.578,2653.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515088"
- class="fil1 str3"
- points="490.608,2633.11 498.95,2624.04 523.038,2639.63 537.311,2638.46 536.228,2644.07 547.471,2654.9 533.606,2666.6 525.852,2690.51 500.054,2701.59 477.713,2672.47 490.399,2661.06 496.299,2646.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g484">
- <polygon
- id="_123510816"
- class="fil1 str3"
- points="361.873,2683.69 373.855,2687.23 373.514,2682.72 366.895,2677.37 359.79,2662.94 362.789,2657.25 368.402,2657.65 377.325,2667.83 384.023,2668.06 371.05,2638.93 371.06,2615.14 401.744,2613.79 406.119,2622.66 413.219,2628.97 440.578,2653.3 460.95,2653.3 483.734,2630.52 490.608,2633.11 496.299,2646.92 490.399,2661.06 477.713,2672.47 454.567,2670.93 430.709,2681.78 421.085,2703.37 410.446,2705.58 403.76,2725.7 391.354,2725.8 384.082,2714.43 370.516,2713.57 364.653,2707.23 370.088,2706.24 366.452,2697.82 355.147,2691.36 354.27,2683.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529512"
- class="fil1 str3"
- points="344.384,2648.78 349.552,2643.54 351.287,2631.43 356.207,2632.83 366.087,2650.95 361.378,2656.18 351.329,2656.16"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123535248"
- class="fil1 str3"
- points="430.709,2681.78 454.567,2670.93 477.713,2672.47 500.054,2701.59 479.768,2717.17 463.392,2720.77 453.239,2721.06 443.802,2717.86 415.341,2725.89 403.76,2725.7 410.446,2705.58 421.085,2703.37"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123508680"
- class="fil1 str3"
- points="500.054,2701.59 525.852,2690.51 524.204,2695.59 543.685,2709.22 541.029,2722.35 516.578,2725.93"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123508968"
- class="fil1 str3"
- points="456.605,2760.8 470.037,2762.72 479.498,2751.82 463.392,2720.77 479.768,2717.17 500.054,2701.59 516.578,2725.93 507.308,2732.96 508.209,2746.41 518.322,2771.13 500.918,2799.71 497.496,2795.76 472.037,2787.19 459.75,2775.04 453.14,2768.51"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123518136"
- class="fil1 str3"
- points="463.392,2720.77 479.498,2751.82 470.037,2762.72 456.605,2760.8 453.14,2768.51 439.976,2767.55 425.535,2753.11 439.388,2745.12 439.334,2731.61 453.239,2721.06"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514272"
- class="fil1 str3"
- points="415.341,2725.89 443.802,2717.86 453.239,2721.06 439.334,2731.61 439.388,2745.12 425.535,2753.11 417.074,2752.47 410.923,2758.08 400.372,2740.67 391.354,2725.8 403.76,2725.7"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529584"
- class="fil1 str3"
- points="350.93,2709.05 352.877,2706.01 357.594,2704.47 364.653,2707.23 370.516,2713.57 384.082,2714.43 391.354,2725.8 400.372,2740.67 397.616,2756.64 381.401,2758.11 358.364,2748.14 361.247,2733.23"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526608"
- class="fil1 str3"
- points="345.896,2764.2 353.463,2769.24 357.298,2764.37 356.504,2757.75 358.364,2748.14 381.401,2758.11 397.616,2756.64 400.372,2740.67 410.923,2758.08 414.018,2788.5 422.472,2792.25 410.526,2801.86 407.243,2798.03 371.293,2801.39 368.093,2789.37 344.23,2773.71"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g495">
- <polygon
- id="_123510144"
- class="fil1 str3"
- points="342.792,2835.93 354.009,2835.06 367.103,2825.2 368.196,2851.22 389.267,2836 400.797,2846.4 432.916,2833.01 430.636,2816.03 418.79,2816.1 410.526,2801.86 407.243,2798.03 371.293,2801.39 368.093,2789.37 344.23,2773.71 338.516,2806.33 331.62,2820.18"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509280"
- class="fil1 str3"
- points="325.97,2778.11 330.018,2773.03 335.896,2776.72 337.44,2783.86 333.533,2789.08 327.891,2789.51"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123516648"
- class="fil1 str3"
- points="418.79,2816.1 410.526,2801.86 422.472,2792.25 414.018,2788.5 410.923,2758.08 417.074,2752.47 425.535,2753.11 439.976,2767.55 453.14,2768.51 459.75,2775.04 452.491,2790.33 459.031,2798.4 458.052,2818.88 456.273,2856.14 464.873,2873.43 459.805,2872.48 443.893,2886.79 438.309,2878.57 411.303,2875.96 400.797,2846.4 432.916,2833.01 430.636,2816.03"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532560"
- class="fil1 str3"
- points="500.918,2799.71 509.706,2824.09 511.538,2846.49 458.128,2817.31 459.031,2798.4 452.491,2790.33 459.75,2775.04 472.037,2787.19 497.496,2795.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523848"
- class="fil1 str3"
- points="523.876,2855.3 511.538,2846.49 509.706,2824.09 500.918,2799.71 518.322,2771.13 521.353,2778.54 547.8,2787.77 556.244,2777.91 571.268,2793.24 564.473,2817.08 576.782,2838.73 566.618,2840.33 550.978,2835.08 548.953,2862.17"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123511032"
- class="fil1 str3"
- points="505.417,2869 478.834,2876.05 464.873,2873.43 456.273,2856.14 458.128,2817.31 511.538,2846.49 523.876,2855.3 500.239,2862.47"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123516624"
- class="fil1 str3"
- points="479.433,2509.9 491.272,2509.84 502.787,2492.17 513.164,2500.34 511.497,2537.62 498.893,2542.26 497.483,2553.25 482.941,2564.95 465.297,2565.05 444.255,2559.86 440.787,2542.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524928"
- class="fil1 str3"
- points="513.164,2500.34 502.787,2492.17 512.035,2477.97 527.667,2477.44 541.062,2450.11 559.474,2459.25 570.925,2459.2 570.936,2489.64 555.341,2497.17 554.459,2523.43 536.267,2525.2 527.031,2540.67 511.497,2537.62"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g3502"><g
- id="g398">
- <polygon
- id="_123534648"
- class="fil1 str3"
- points="740.129,3147.08 746.165,3142.23 758.438,3165.34 747.17,3171.57 716.781,3172.24 682.735,3186.74 679.56,3174.67 696.474,3167.28 689.669,3145.17 705.885,3139.88 721.496,3134.58"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523368"
- class="fil1 str3"
- points="698.859,3199.44 690.487,3195.16 695.955,3185.29 702.946,3181.16 709.416,3181.17 712.578,3182.96 718.244,3182.88"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g><polygon
- id="_123534504"
- class="fil1 str3"
- points="884.915,3002.74 899.642,2983.76 895.324,2977.5 893.857,2968.57 907.1,2958.94 897.939,2952.53 888.946,2960.18 891.64,2947.39 903.078,2944.58 897.85,2933.28 901.271,2931.98 912.046,2929.51 932.585,2954.49 948.506,2937.81 953.263,2942.05 960.302,2967.6 940.789,2980.38 953.702,3005.8 948.982,3020.96 944.296,3021.34 939.611,3021.72 937.467,3012.8 912.643,3018.12 909.511,3034.7 896.616,3017.94"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123507432"
- class="fil1 str3"
- points="881.153,3045.86 882.919,3021.73 896.616,3017.94 909.511,3034.7 902.779,3041.84"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123526176"
- class="fil1 str3"
- points="879.859,3079.01 870.455,3079.01 854.518,3060.99 870.802,3027.7 861.091,3005.43 877.978,3004.55 884.915,3002.74 896.616,3017.94 882.919,3021.73 881.153,3045.86 902.779,3041.84 904.137,3048.14 902.393,3048.07 898.93,3049.38 886.262,3054.78 887.038,3072.34 879.921,3068.99"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123517008"
- class="fil1 str3"
- points="904.137,3048.14 907.376,3064.45 899.895,3076.46 887.038,3072.34 886.262,3054.78 902.393,3048.07"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123522240"
- class="fil1 str3"
- points="858.708,3100.04 848.491,3106.32 841.873,3101.98 837.603,3074.7 854.518,3060.99 870.455,3079.01 879.859,3079.01 879.921,3068.99 887.038,3072.34 899.895,3076.46 894.369,3085.33 908.247,3098.19 898.719,3104.53 900.62,3109.05 897.135,3114.01 883.071,3101.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123533688"
- class="fil1 str3"
- points="877.758,3148.68 875.629,3136.95 870.838,3144.55 856.642,3144.36 846.544,3137.47 848.491,3106.32 858.708,3100.04 883.071,3101.57 897.214,3113.9 900.62,3109.05 898.719,3104.53 908.247,3098.19 915.611,3095.34 912.308,3103.34 913.525,3111.1 907.83,3112.67 905.564,3119.68 897.779,3130.24 886.92,3126.88 888.623,3139.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123511968"
- class="fil1 str3"
- points="849.435,3019.93 855.754,3005.71 861.091,3005.43 870.802,3027.7 854.518,3060.99 837.603,3074.7 817.593,3068.81 805.34,3033.51 820.562,3019.72 832.665,3023.47 836.018,3002.14"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123508776"
- class="fil1 str3"
- points="820.562,3019.72 810.923,3002.5 809.7,2988.07 817.6,2977.44 835.253,2980.06 854.536,2977.82 865.162,2976.12 875.258,2971.8 895.324,2977.5 899.642,2983.76 884.915,3002.74 877.978,3004.55 861.091,3005.43 855.754,3005.71 849.435,3019.93 836.018,3002.14 832.665,3023.47"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123521688"
- class="fil1 str3"
- points="769.732,3108.66 763.162,3123.91 775.391,3145.56 769.358,3159.3 758.438,3165.34 746.165,3142.23 740.129,3147.08 721.496,3134.58 733.07,3109.35 749.847,3107.82 764.694,3095.01"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123516120"
- class="fil1 str3"
- points="775.391,3145.56 763.162,3123.91 769.732,3108.66 784.878,3091.29 796.998,3091.32 799.204,3124.95 812.242,3146.82 812.282,3156.77 782.761,3193.85 773.2,3193.11 786.207,3176.04 780.156,3172.55 773.188,3178.62 768.431,3178.57 769.358,3159.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><g
- id="g412">
- <polygon
- id="_123517416"
- class="fil1 str3"
- points="623.04,3214.18 632.594,3211.71 629.263,3219.37 624.842,3220.55 619.862,3223.33 614.304,3221.84 610.188,3219.05 615.656,3212.66"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532920"
- class="fil1 str3"
- points="565.296,3180.45 564.876,3196.36 560.113,3201 542.296,3197.89 532.525,3184.98 534.937,3173.17 546.22,3172.67 555.331,3177.38 559.508,3141.76 584.629,3141.3 603.544,3121.5 613.217,3129.19 641.986,3114.91 658.085,3122.45 660.241,3126.33 689.379,3118.68 698.98,3116.63 705.885,3139.88 689.669,3145.17 696.474,3167.28 679.56,3174.67 682.64,3186.87 679.897,3188.04 661.696,3189.71 664.258,3199.07 657.776,3204.03 645.171,3201.29 629.122,3204.72 621.295,3199.14 609.151,3197.57 600.829,3206.79 573.539,3199.61 575.723,3183.32 570.936,3175.91"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g><polygon
- id="_123523296"
- class="fil1 str3"
- points="660.241,3126.33 658.085,3122.45 656.979,3088.1 671.961,3082.95 680.911,3089.48 688.637,3084.75 698.423,3091.03 689.379,3118.68"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123536448"
- class="fil1 str3"
- points="573.539,3199.61 600.829,3206.79 599.173,3208.63 599.17,3215.85 586.153,3226.97 560.976,3226.77 540.143,3235.42 533.188,3226.63 539.698,3219.29 567.487,3209.5 573.125,3202.7"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123518016"
- class="fil1 str3"
- points="810.124,3085.66 817.593,3068.81 837.603,3074.7 841.873,3101.98 848.491,3106.32 846.544,3137.47 819.64,3146.92 814.402,3141.68 812.242,3146.82 799.204,3124.95 796.998,3091.32 800.464,3082.68"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123512016"
- class="fil1 str3"
- points="824.938,3124.81 821.936,3114.13 831.717,3104.2 840.541,3112.3 836.791,3124.94"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123524088"
- class="fil1 str3"
- points="768.943,2992.27 780.117,2997.59 782.852,3008.01 789.333,3006.74 791.961,3026.01 763.621,3035.14 757.993,3028.74 746.382,3027.62 725.235,2983.37 752.417,2988.06 758.077,3000.59"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123531648"
- class="fil1 str3"
- points="764.406,3095.3 764.804,3083.62 756.144,3083.62 738.43,3052.22 746.382,3027.62 757.993,3028.74 763.621,3035.14 791.961,3026.01 789.333,3006.74 810.923,3002.5 820.562,3019.72 805.34,3033.51 817.593,3068.81 810.124,3085.66 800.464,3082.68 796.998,3091.32 784.878,3091.29 769.732,3108.66"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123522096"
- class="fil1 str3"
- points="674.926,3063.09 671.961,3082.95 680.911,3089.48 688.637,3084.75 698.423,3091.03 689.379,3118.68 698.98,3116.63 705.885,3139.88 721.496,3134.58 733.07,3109.35 749.847,3107.82 764.694,3095.01 764.804,3083.62 756.144,3083.62 738.43,3052.22 733.378,3067.85 709.461,3075.66 684.832,3062.04"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123516336"
- class="fil1 str3"
- points="706.523,2980.15 725.235,2983.37 746.382,3027.62 733.378,3067.85 709.461,3075.66 684.832,3062.04 681.624,3042.72 671.403,3038.58 672.733,3024.74 696.041,3021.54 707.161,2996.65 701.625,2987.16"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123535080"
- class="fil1 str3"
- points="912.643,3018.12 937.467,3012.8 939.611,3021.72 946.113,3044.96 954.725,3053.64 934.185,3063.66 909.511,3034.7"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><g
- id="g506">
- <polygon
- id="_123531816"
- class="fil1 str3"
- points="902.779,3041.84 909.511,3034.7 934.185,3063.66 934.155,3082.53 954.687,3102.9 951.609,3106.69 927.23,3107.33 913.525,3111.1 912.308,3103.34 915.611,3095.34 908.247,3098.19 894.369,3085.33 907.376,3064.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513144"
- class="fil1 str3"
- points="940.911,3113.82 938.458,3118.35 935.188,3121.94 924.874,3122.62 923.249,3119.87 922.573,3118.73 920.359,3116.23 925.18,3112.1 932.084,3112.1 935.15,3113.47"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g><g
- id="g510">
- <polygon
- id="_123509616"
- class="fil1 str3"
- points="990.8,3114.45 978.112,3098.68 974.135,3083.96 958.129,3085.77 957.765,3099.11 954.687,3102.9 934.155,3082.53 934.185,3063.66 954.725,3053.64 946.113,3044.96 973.294,3035.35 986.764,3039.1 996.127,3022.44 1003.05,3016.89 1000.81,3040.62 1019.02,3060.57 1021.59,3101.45 1015.33,3088.55 1011.12,3091.97 1015.81,3106.98 1011.54,3112.5 1003.29,3107.36 995.826,3115.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535224"
- class="fil1 str3"
- points="950.352,3129.15 950.309,3119.71 956.431,3114.27 958.424,3131.82 952.116,3132.8"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123512208"
- class="fil1 str3"
- points="976.76,3122.09 976.655,3125.74 971.522,3131.08 966.873,3127.16 965.935,3096.25 970.755,3094.72 972.868,3106.03 978.467,3112.69 978.256,3120.46"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525456"
- class="fil1 str3"
- points="1014.49,3131.51 1001.6,3129.76 1001.14,3125.24 1002.39,3118.84 1008.15,3117.26 1011.56,3114.27 1018.4,3119.64 1020.93,3124.87"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g><polygon
- id="_123510648"
- class="fil1 str3"
- points="1003.05,3016.89 996.127,3022.44 986.764,3039.1 973.294,3035.35 946.113,3044.96 939.611,3021.72 948.982,3020.96 953.702,3005.8 984.173,2994.61 997.376,3004.42 1003.51,3014.31"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123536400"
- class="fil1 str3"
- points="997.134,2966.83 995.162,2980.61 984.173,2994.61 953.702,3005.8 940.91,2980.41 940.789,2980.38 960.302,2967.6 961.777,2966.76 968.842,2975.59"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><polygon
- id="_123520104"
- class="fil1 str3"
- points="1019.16,2958.78 1019.93,2972.61 1019.38,2988.4 1027.21,2989.3 1027.38,2997.33 1022.13,3008.78 1003.51,3014.31 997.376,3004.42 984.173,2994.61 995.162,2980.61 997.134,2966.83 1005.74,2968.25"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /><g
- id="g519">
- <polygon
- id="_123530016"
- class="fil1 str3"
- points="1021.6,3101.47 1023.72,3105.84 1028.85,3103.79 1027.92,3091.22 1032.77,3088.93 1040.51,3093.28 1046.13,3090.82 1036.74,3074.18 1034.09,3063.59 1024.52,3050.67 1025.88,3042.53 1052.42,3068.69 1057.59,3080.2 1063.67,3079.72 1059.82,3066.67 1073.44,3067.02 1082.31,3078.1 1083.02,3067.23 1090.52,3067.5 1104.46,3054.96 1100.75,3043.55 1108.85,3028.24 1118.41,3009.43 1116.35,3006.32 1106.42,3004.64 1101.11,2986.67 1087.65,2984.09 1090.16,3032.79 1072.87,3037.18 1068.53,3020.71 1064.52,3005.48 1059.56,3004.96 1056.01,3009.5 1049.77,3009.87 1042.89,2990.54 1027.21,2989.3 1027.38,2997.33 1022.13,3008.78 1003.51,3014.31 1003.05,3016.89 1000.81,3040.62 1019.02,3060.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530256"
- class="fil1 str3"
- points="1038.46,3103.96 1051.49,3097.33 1053.99,3108.34 1044.88,3110.23"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123504408"
- class="fil1 str3"
- points="1070.49,3094.88 1064.41,3098.07 1057.81,3094.22 1056.69,3091.36 1058.77,3084.39 1065.81,3084.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123510696"
- class="fil1 str3"
- points="1113.02,3078.37 1112.59,3085.47 1097.3,3082.93 1093.15,3076.16 1097.4,3070.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g><polygon
- id="_123520128"
- class="fil1 str3"
- points="1027.21,2989.3 1019.38,2988.4 1019.93,2972.61 1039.93,2968.24 1052.68,2979.68 1065.96,2972.56 1067.62,2958.58 1075.34,2962.21 1083.5,2966.13 1087.65,2984.09 1090.16,3032.79 1072.87,3037.18 1068.53,3020.71 1064.52,3005.48 1059.56,3004.96 1056.01,3009.5 1049.77,3009.87 1042.89,2990.54"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" /></g>
- <g
- id="_123534360">
- <polygon
- id="_123516696"
- class="fil1 str3"
- points="1087.23,2878.88 1088.75,2879.43 1092.02,2872.76 1109.54,2876.35 1116.53,2909.85 1105.6,2914.68 1108.26,2929.95 1095.53,2938.97 1097.12,2949.9 1075.34,2962.21 1067.62,2958.58 1063.31,2956.43 1061.07,2940.64 1047.42,2931.6 1046.81,2914.56 1054.6,2899.79 1038.47,2892.87 1043.9,2882.52 1056.41,2883.28 1052.01,2860.71 1046.16,2848.06 1049.87,2834.59 1071.79,2834.66 1084.66,2846.38 1072.93,2869.92 1081.16,2878.5 1083.28,2877.28 1086.11,2879.86"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515856"
- class="fil1 str3"
- points="1259.03,2990.59 1253.16,2929.55 1272.39,2939.79 1294.15,2939.26 1301.48,2954.11 1317.8,2956.53 1325.69,2975.93 1343.75,2985.16 1331.28,2997.15 1311.86,2986.69 1297.95,2995.24 1284.31,2984.34 1272.72,2984.97 1273.02,2995.68"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523440"
- class="fil1 str3"
- points="1296.24,3030.21 1290.9,3038.94 1282.82,3039.19 1273.05,3040.6 1266.64,3037.07 1260.75,3041.02 1257.21,3044.35 1243.05,3009.83 1259.03,2990.59 1273.02,2995.68 1272.72,2984.97 1284.31,2984.34 1297.95,2995.24 1311.86,2986.69 1331.28,2997.15 1327.85,3000.45 1327.36,3010.63 1316.96,3017.51 1304.85,3009.58 1300.01,3013.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509904"
- class="fil1 str3"
- points="1121.08,2789.95 1110.2,2794.33 1100.89,2799.5 1092.94,2820.34 1071.79,2834.66 1084.66,2846.38 1072.93,2869.92 1081.16,2878.5 1083.28,2877.28 1086.11,2879.86 1087.23,2878.88 1088.75,2879.43 1092.02,2872.76 1109.54,2876.35 1116.53,2909.85 1105.6,2914.68 1108.26,2929.95 1095.53,2938.97 1097.12,2949.9 1075.34,2962.21 1083.5,2966.13 1087.65,2984.09 1101.11,2986.67 1106.42,3004.64 1116.35,3006.32 1126.37,2988.95 1133.84,2989.42 1136.96,2989.62 1149.08,3013.22 1153.89,3002.76 1153.84,2979.88 1173.72,2988.99 1200.32,2974.38 1208.36,2964.09 1208.17,2947.96 1224.52,2953.76 1236.81,2935.19 1253.16,2929.55 1246.24,2917.38 1220.55,2909.89 1212.85,2896.74 1220.88,2891.94 1206.37,2874.25 1211.5,2856.94 1227.47,2851 1217.28,2827.87 1201,2833.34 1172.94,2819.43 1172.87,2792.53 1152.65,2792.11 1152.39,2807.76 1137.23,2815.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123527976"
- class="fil1 str3"
- points="1197.95,3023.89 1195.62,3001.4 1173.72,2988.99 1200.32,2974.38 1208.36,2964.09 1208.17,2947.96 1224.52,2953.76 1236.81,2935.19 1253.16,2929.55 1259.03,2990.59 1243.05,3009.83 1257.21,3044.35 1253.67,3047.69 1244.57,3034.19 1220.98,3031.41"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g532">
- <polygon
- id="_123517608"
- class="fil1 str3"
- points="1118.41,3009.43 1116.35,3006.32 1126.37,2988.95 1136.96,2989.62 1149.08,3013.22 1169.32,3059.64 1165.21,3059.51 1151.75,3046.07 1143.89,3053.24 1133.83,3053.59 1127.53,3046.94 1120.87,3051.57 1104.46,3054.96 1100.75,3043.55"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513720"
- class="fil1 str3"
- points="1153.82,3088.51 1147.22,3084.67 1141.77,3080.94 1151.22,3073.1 1157.3,3082.72"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514320"
- class="fil1 str3"
- points="1132.99,3063.75 1119.87,3073.81 1112.25,3067.04 1123.01,3055.72 1130.82,3055.78"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g537">
- <polygon
- id="_123507000"
- class="fil1 str3"
- points="1153.84,2979.88 1173.72,2988.99 1195.62,3001.4 1197.95,3023.89 1192.37,3022.07 1180.78,3033.71 1181.12,3052.38 1176.95,3059.87 1169.32,3059.64 1149.08,3013.22 1153.89,3002.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123508464"
- class="fil1 str3"
- points="1185.85,3063.38 1189.95,3049.66 1197.23,3052.25 1197.23,3075.77 1191.15,3075.91"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524472"
- class="fil1 str3"
- points="1205.38,3108.12 1205.57,3100.48 1210.19,3095.95 1212.42,3096.12 1218.33,3101.66 1221.53,3104 1214.16,3108.49"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- </g>
- <g
- id="_123526296">
- <polygon
- id="_123509520"
- class="fil1 str3"
- points="1219.97,2777.33 1201.69,2779.99 1182.8,2768.68 1189.32,2758.7 1204.69,2759.97 1208.42,2752.94 1246.49,2753.13 1270.46,2767.5 1291.71,2758.78 1307.95,2762.12 1297.62,2774.74 1279.71,2774.33 1270.42,2793.3 1254.87,2794.64 1238.81,2822.65 1231.77,2808.35 1237.88,2796.5"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123533496"
- class="fil1 str3"
- points="1293.68,2828.91 1294.79,2845.43 1282.55,2849.31 1283.32,2862.94 1269.88,2875.84 1253.96,2871.46 1244.22,2843.51 1227.47,2851 1217.26,2827.83 1238.81,2822.65 1254.87,2794.64 1270.42,2793.3 1279.71,2774.33 1297.62,2774.74 1307.95,2762.12 1324.92,2765.61 1315.25,2780.49 1320.61,2795.04 1305.44,2795.13 1301.18,2801.77 1307.53,2813.31 1308.69,2823.23"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535896"
- class="fil1 str3"
- points="1294.15,2939.26 1272.39,2939.79 1253.16,2929.55 1246.24,2917.38 1220.55,2909.89 1212.85,2896.74 1220.88,2891.94 1206.37,2874.25 1211.5,2856.94 1227.47,2851 1244.22,2843.51 1253.96,2871.46 1269.88,2875.84 1276.05,2877.54 1319.61,2878.03 1328.43,2878.13 1334.25,2912.23 1321.59,2931.15 1312.5,2930.96 1305.41,2922.72 1300.2,2923.07"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529944"
- class="fil1 str3"
- points="1458.49,2839.29 1466.02,2842.83 1450.69,2869.07 1448.29,2890.48 1427.77,2895.06 1389.32,2928.71 1381.94,2948.43 1343.75,2985.16 1325.69,2975.93 1317.8,2956.53 1301.48,2954.11 1294.15,2939.26 1300.2,2923.07 1305.41,2922.72 1312.5,2930.96 1321.59,2931.15 1334.25,2912.23 1328.43,2878.13 1319.61,2878.03 1321.43,2869.57 1340.2,2852.83 1393.11,2835.31 1402.66,2820.19 1387.65,2808.8 1385.47,2800.02 1400.24,2786.25 1431.65,2811.94 1444.27,2805.19"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123520008"
- class="fil1 str3"
- points="1322.54,2826.93 1340.2,2852.83 1321.43,2869.57 1319.61,2878.03 1276.05,2877.54 1269.88,2875.84 1283.32,2862.94 1282.55,2849.31 1294.79,2845.43 1293.68,2828.91 1308.69,2823.23"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509136"
- class="fil1 str3"
- points="1301.18,2801.77 1305.44,2795.13 1320.61,2795.04 1315.25,2780.49 1324.92,2765.61 1374.74,2761.27 1393.39,2775.9 1400.24,2786.25 1385.47,2800.02 1387.65,2808.8 1402.66,2820.19 1393.11,2835.31 1340.2,2852.83 1322.54,2826.93 1308.69,2823.23 1307.53,2813.31"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526776"
- class="fil1 str3"
- points="1489.01,2827.6 1477.85,2809.89 1487.59,2798.01 1480.11,2783.99 1467.91,2782.79 1463.85,2796.39 1444.23,2796.23 1444.27,2805.19 1431.65,2811.94 1400.24,2786.25 1393.39,2775.9 1374.74,2761.27 1400.18,2729.79 1407.78,2710.97 1422.05,2721.86 1459.56,2721.64 1464.4,2704.6 1495.02,2705.98 1525.89,2696.09 1524.42,2706.79 1522.66,2719.65 1508.5,2719.29 1503.73,2731.24 1512.04,2737.16 1495.67,2800.73 1511.7,2811.87"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535344"
- class="fil1 str3"
- points="1463.85,2796.39 1467.91,2782.79 1480.11,2783.99 1487.59,2798.01 1477.85,2809.89 1489.01,2827.6 1485.65,2829.93 1469.78,2836.4 1466.02,2842.83 1458.49,2839.29 1444.27,2805.19 1444.23,2796.23"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529704"
- class="fil1 str3"
- points="1511.7,2811.87 1495.67,2800.73 1512.04,2737.16 1503.73,2731.24 1508.5,2719.29 1522.66,2719.65 1524.42,2706.79 1562.21,2744.91 1530.07,2799.12"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123534144"
- class="fil1 str3"
- points="1525.89,2696.09 1544.95,2664.44 1557.1,2660.33 1569.25,2656.22 1574.91,2640.11 1664.71,2591.89 1661.79,2594.86 1649.79,2628.83 1619.63,2656.59 1599.34,2699.18 1573.78,2717.29 1568.01,2735.14 1562.21,2744.91 1524.42,2706.79"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123514032">
- <polygon
- id="_123504168"
- class="fil1 str3"
- points="863.575,2199.98 866.13,2130.15 841.823,2119.67 829.36,2119.6 820.603,2119.55 809.876,2137.83 785.329,2135.35 766.274,2157.05 791.702,2189.18 778.643,2194.57 808.231,2208.56 814.137,2204.71 840.551,2194.96"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523944"
- class="fil1 str3"
- points="866.13,2130.15 841.823,2119.67 829.36,2119.6 826.575,2068.38 852.991,2041.67 902.573,2102.34 890.26,2104.44"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123516456"
- class="fil1 str3"
- points="799.741,1967.2 808.386,1966.47 809.544,1971.34 824.378,1977.18 840.913,2026.89 852.991,2041.67 826.575,2068.38 763.028,1992.38 787.295,1972.58"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526464"
- class="fil1 str3"
- points="804.533,1950.27 808.386,1966.47 799.741,1967.2 787.295,1972.58 763.028,1992.38 743.073,1975.99 724.913,1951.4 738.721,1941 734.808,1934.22 747.243,1934.05 756.618,1942.5 764.428,1938.25 755.457,1926.07 763.583,1910.81 784.212,1906.8 793.686,1944.63"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123508800"
- class="fil1 str3"
- points="785.329,2135.35 772.567,2116.37 776.902,2090.23 766.881,2078.38 758.176,2083.62 748.127,2072.18 727.288,2079.8 718.147,2081.01 722.083,2088.15 714.245,2114.3 741.564,2149.62 766.274,2157.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123511488"
- class="fil1 str3"
- points="809.326,2085.33 826.575,2068.38 829.36,2119.6 820.603,2119.55 809.876,2137.83 785.329,2135.35 772.567,2116.37 776.902,2090.23 766.881,2078.38 784.67,2066.18"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123516024"
- class="fil1 str3"
- points="766.881,2078.38 784.67,2066.18 734.373,2027.64 725.955,2036.66 708.601,2037.06 697.788,2028.25 683.972,2037.18 693.091,2053.3 701.553,2050.89 718.147,2081.01 727.288,2079.8 748.127,2072.18 758.176,2083.62"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <path
- id="_123536280"
- class="fil1 str3"
- d="m 784.67,2066.18 -36.0911,-27.6541 -14.2054,-10.8843 -36.9741,-29.7283 -10.6797,8.2832 -6.08098,-9.045 -23.2158,11.3209 -32.8707,-24.5459 -6.25511,8.4744 -14.3502,-39.4746 c 0.33031,-0.4948 0.4047,-0.04 0.73586,-0.5349 l 13.1235,0.077 6.00146,7.2284 6.6276,-0.1485 5.88005,-8.5924 28.2198,-1.2765 19.8446,-0.898 0.28243,-12.2868 0.77491,-33.7006 8.03378,-5.7267 11.8875,11.3437 9.53827,-1.6604 19.9116,27.4683 3.91329,6.7877 -13.8081,10.3944 18.1603,24.5907 19.9543,16.3942 63.5477,75.9955 -17.2491,16.9488 -24.6568,-19.1504 z"
- inkscape:connector-curvature="0"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123507816">
- <polygon
- id="_123534168"
- class="fil1 str3"
- points="324.87,2855.63 331.73,2861.06 333.992,2853.29 323.011,2841.9 318.655,2817.98 326.984,2813.34 331.62,2820.18 342.792,2835.93 354.009,2835.06 367.103,2825.2 368.196,2851.22 359.619,2859.62 346.146,2848.09 347.305,2880.9 337.459,2880.75"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526272"
- class="fil1 str3"
- points="346.146,2848.09 359.619,2859.62 368.196,2851.22 389.267,2836 400.797,2846.4 411.303,2875.96 438.309,2878.57 422.602,2898.76 386.162,2924.3 378.67,2921.73 369.378,2899.03 354.164,2895.41 347.305,2880.9"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530592"
- class="fil1 str3"
- points="312.318,2914.66 311.779,2901.47 309.348,2892.27 311.198,2886.84 314.431,2884.63 316.01,2879.55 300.748,2870.3 299.889,2864.62 313.266,2861.92 313.722,2854.08 307.199,2847.1 311.04,2843.08 318.389,2842.59 324.929,2855.67 337.459,2880.75 347.305,2880.9 354.164,2895.41 369.378,2899.03 378.67,2921.73 345.974,2930.51 345.957,2960.27 322.638,2955.32 317.118,2940.85 317.44,2922.78"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123505704"
- class="fil1 str3"
- points="389.007,2973.67 395.432,2973.99 397.616,2976.78 408.297,2967.11 415.13,2960.93 428.886,2948.15 462.271,2934.8 481.871,2934.36 460.365,2914.78 443.893,2886.79 438.309,2878.57 422.602,2898.76 386.162,2924.3 384.558,2947.57 383.336,2967.69 390.139,2970.75"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526536"
- class="fil1 str3"
- points="383.336,2967.69 372.159,2973.68 365.579,2965.56 345.957,2960.27 345.974,2930.51 378.67,2921.73 386.162,2924.3 384.558,2947.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529968"
- class="fil1 str3"
- points="423.852,3026.39 428.807,2998.42 436.485,2995.33 452.374,3008.49 444.388,3022.57"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528624"
- class="fil1 str3"
- points="448.827,2960.15 421.529,2983.79 408.297,2967.11 415.13,2960.93 428.886,2948.15 462.271,2934.8 481.871,2934.36 454.881,2963.15"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123510528"
- class="fil1 str3"
- points="452.374,3008.49 436.485,2995.33 448.077,2975.05 454.881,2963.15 481.871,2934.36 477.682,2963.89 466.052,2984.39"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513024"
- class="fil1 str3"
- points="375.283,2987.85 383.218,2988.61 389.007,2973.67 395.432,2973.99 397.616,2976.78 408.297,2967.11 421.529,2983.79 448.827,2960.15 454.881,2963.15 448.077,2975.05 436.485,2995.33 428.807,2998.42 410.045,3005.96 405.308,3001.37 398.968,3001.57 383.919,3002.04 367.22,3006.12 367.985,2998.1"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123503976"
- class="fil1 str3"
- points="425.606,3027.77 423.852,3026.39 444.388,3022.57 477.682,2963.89 481.871,2934.36 487.537,2968.46 467.627,3017.66 467.929,3021.23 453.356,3036.83 459.955,3055.35 441.956,3058.82 431.993,3049.37 423.925,3048.85"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515400"
- class="fil1 str3"
- points="502.567,3012.31 500.55,3048.8 497.701,3048.44 494.459,3053.5 485.448,3046.64 482.636,3049.08 479.824,3051.51 459.955,3055.35 453.356,3036.83 467.929,3021.23 474.024,3029.43"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535680"
- class="fil1 str3"
- points="498.364,2979.53 507.12,2974.62 514.309,2979.86 511.234,2985.66 511.389,2997.58 516.83,3003.39 502.567,3012.31 474.024,3029.43 467.929,3021.23 467.627,3017.66 487.537,2968.46"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123523896"
- class="fil1 str3"
- points="537.879,3054.52 500.55,3048.8 502.567,3012.31 516.83,3003.39 539.728,3006.93 540.445,3011.49 543.097,3028.35"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123505560"
- class="fil1 str3"
- points="539.728,3006.93 516.83,3003.39 511.389,2997.58 511.234,2985.66 514.309,2979.86 525.78,2970.98 545.95,2975.66 536.584,2994.16"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530352"
- class="fil1 str3"
- points="581.261,2996.68 540.445,3011.49 539.728,3006.93 536.584,2994.16 545.95,2975.66 559.567,2951.02 568.818,2978.35 579.098,2991.28"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123531936"
- class="fil1 str3"
- points="598.175,2940.77 607.44,2975.16 601.749,2991.75 580.517,2994.82 579.098,2991.28 568.818,2978.35 559.567,2951.02 580.321,2950.9 594.498,2938.88"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123509232"
- class="fil1 str3"
- points="525.801,2959.64 525.78,2970.98 514.309,2979.86 507.12,2974.62 498.364,2979.53 487.537,2968.46 481.871,2934.36 495.842,2944.72 501.356,2959.62"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polyline
- id="_123534192"
- class="fil1 str3"
- points="481.871,2934.36 495.842,2944.72 501.356,2959.62 525.801,2959.64 525.78,2970.98 545.95,2975.66 559.567,2951.02 547.399,2929.21 539.728,2915.46 505.249,2905.36 503.288,2893.16 512.488,2879.23 505.417,2869 478.834,2876.05 464.873,2873.43 459.805,2872.48 443.893,2886.79 460.365,2914.78 481.871,2934.36"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123505536"
- class="fil1 str3"
- points="594.498,2938.88 580.321,2950.9 559.567,2951.02 547.399,2929.21 539.728,2915.46 539.354,2887.19 539.532,2871.55 523.952,2883.3 516.785,2885.45 512.488,2879.23 505.417,2869 500.239,2862.47 523.876,2855.3 548.953,2862.17 550.978,2835.08 566.84,2840.65 578.371,2854.16 597.864,2850.36 596.51,2860.89 604.381,2859.88 604.271,2867.68 616.528,2875.01 608.333,2894.11 593.691,2897.09 592.29,2911.08 600.574,2920.76 593.733,2926.89 594.133,2935.82"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123504960"
- class="fil1 str3"
- points="539.602,2887.22 539.728,2915.46 505.249,2905.36 503.288,2893.16 512.488,2879.23 516.785,2885.45 523.952,2883.3 539.532,2871.55"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g583">
- <polygon
- id="_123513408"
- class="fil1 str3"
- points="564.339,3076.87 569.635,3070.42 565.592,3063.68 564.025,3061.07 540.807,3079.01 537.879,3054.52 543.097,3028.35 540.445,3011.49 581.261,2996.68 580.517,2994.82 601.749,2991.75 626.324,3000.88 643.104,2996.27 644.548,3010.6 652.187,3015.24 656.501,3026.63 672.733,3024.74 671.403,3038.58 681.624,3042.72 684.832,3062.04 674.926,3063.09 671.961,3082.95 656.979,3088.1 658.085,3122.45 641.986,3114.91 613.217,3129.19 603.544,3121.5 584.629,3141.3 573.772,3141.5 559.508,3141.76 560.044,3137.2 544.117,3127.6 543.361,3123.6 540.111,3106.4"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123511896"
- class="fil1 str3"
- points="548.677,3145.58 552.295,3137.44 545.34,3134.91 537.701,3142.6 539.905,3147.1"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514008"
- class="fil1 str3"
- points="545.35,3163.5 538.981,3167.25 531.315,3170.77 527.284,3159.11 537.093,3150.98"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123508632"
- class="fil1 str3"
- points="652.187,3015.24 644.548,3010.6 643.104,2996.27 626.324,3000.88 601.749,2991.75 607.44,2975.16 598.175,2940.77 619.967,2951.96 629.615,2947.14 639.263,2942.32 644.229,2946.13 674.917,2969.69 706.523,2980.15 701.625,2987.16 707.161,2996.65 696.041,3021.54 672.733,3024.74 656.501,3026.63"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g589">
- <polygon
- id="_123526920"
- class="fil1 str3"
- points="299.677,3000.61 295.944,2995.66 294.427,2993.64 291.924,2974.3 295.529,2971.31 308.358,2990.62 308.358,2996.39 308.358,3000.61"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526944"
- class="fil1 str3"
- points="329.031,2986.39 329.231,2987.11 336.138,2993.66 333.051,3002.93 331.797,3006.69 324.877,3005.19 313.092,2990.17 313.193,2977.77 317.666,2973.92 328.759,2985.41"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513840"
- class="fil1 str3"
- points="304.018,2973.25 297.507,2966.44 294.861,2963.67 293.66,2953.01 303.342,2946.12 310.095,2951.09 310.596,2959.87 310.963,2966.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123532992"
- class="fil1 str3"
- points="372.159,2973.68 363.077,2978.55 358.094,3000.15 346.88,3001.15 342.51,2982.42 328.157,2969.79 322.638,2955.32 345.957,2960.27 365.579,2965.56"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g595">
- <polygon
- id="_123525264"
- class="fil1 str3"
- points="422.098,3025.01 413.217,3030.73 402.264,3020.74 405.489,3016.74 412.964,3017.12 413.36,3009.16 410.045,3005.96 428.807,2998.42 423.852,3026.39"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517440"
- class="fil1 str3"
- points="350.692,3028.72 348.107,3033.41 343.299,3033.56 341.346,3033.62 339.176,3031.45 339.236,3023.38 354.56,3013.88 356.538,3020.59 353.161,3025.29"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525072"
- class="fil1 str3"
- points="374.131,3056.09 363.917,3058.38 357.435,3052.51 354.802,3050.13 355.915,3044.14 358.768,3039.89 372.356,3044.29 373.466,3050.56 373.85,3053.76"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524640"
- class="fil1 str3"
- points="392.334,3063.18 394.302,3052.47 384.982,3044.8 376.938,3026.67 378.674,3014.08 383.075,3010.35 393.191,3016.49 394.3,3021.89 404.193,3036.03 411.428,3046.36 409.442,3055.33 408.908,3061.53 408.692,3064.04 401.4,3071.3 391.758,3069.68"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123507528"
- class="fil1 str3"
- points="540.807,3079.01 528.397,3088.6 505.365,3095.39 495.474,3086.45 479.701,3086.82 479.662,3077.15 494.459,3053.5 497.701,3048.44 500.55,3048.8 537.879,3054.52"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <g
- id="g602">
- <polygon
- id="_123522600"
- class="fil1 str3"
- points="477.802,3177.79 481.074,3175.09 482.403,3174 493.264,3175.66 500.932,3186.84 497.368,3191.84 489.077,3190.17 483.015,3188.96"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524280"
- class="fil1 str3"
- points="457.845,3188.2 453.066,3188.09 450.891,3177.35 453.876,3174.62 455.089,3173.51 455.969,3173.02 459.398,3170.09 466.353,3174.36 465.774,3182.06 464.38,3188.36"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123527688"
- class="fil1 str3"
- points="476.853,3201.49 480.242,3201.72 479.663,3210.73 467.389,3219.36 460.618,3216.42 455.666,3214.27 468.513,3200.93"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535872"
- class="fil1 str3"
- points="524.275,3148.27 539.638,3131.74 536,3123.5 531.026,3112.24 546.41,3090.76 488.937,3104.5 479.816,3098.14 475.527,3102.43 475.468,3108.33 469.524,3113.58 475.468,3120.93 476.26,3125.65 476.587,3127.59 459.535,3140.79 456.601,3155.12 464.774,3167.46 480.217,3168.39 490.262,3162.06 505.873,3168.41 518.462,3166.46 523.893,3158.89 524.517,3158.02 524.447,3155.21"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="g608">
- <polygon
- id="_123524736"
- class="fil1 str3"
- points="280.679,3019.82 281.073,3016.86 286.414,3013.45 291.366,3023.26 288.896,3028.74 287.09,3032.75 279.711,3027.11"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123529536"
- class="fil1 str3"
- points="297.507,3047.09 294.421,3043.07 293.167,3041.44 295.831,3034.24 302.474,3033.43 308.728,3042.37 307.512,3044.59 306.622,3046.22"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123508944"
- class="fil1 str3"
- points="315.303,3039.7 312.217,3035.38 310.963,3033.62 312.325,3020.77 319.402,3019.96 321.38,3034.06 319.518,3034.69 318.157,3035.15"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530784"
- class="fil1 str3"
- points="304.387,3084.07 314.704,3083.78 322.248,3083.57 321.801,3090.79 321.06,3096.34 320.76,3098.6 315.034,3100.47 308.792,3103.12 288.826,3096.17 291.924,3078.11 298.568,3077.3"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528264"
- class="fil1 str3"
- points="317.436,3078.47 314.869,3081.4 309.4,3080.19 306.19,3077.96 304.886,3077.06 308.172,3073.76 308.791,3071.41 314.495,3065.51 322.007,3064.27 320.946,3074.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522024"
- class="fil1 str3"
- points="368.657,3186.46 365.666,3190.73 359.476,3190.18 356.961,3189.96 353.509,3179.88 358.325,3174.39 362.675,3167.4 368.594,3173.08 368.63,3180.81"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123521520"
- class="fil1 str3"
- points="390.822,3105.15 388.961,3107.86 377.541,3110.77 370.807,3120.65 368.071,3124.66 360.175,3121.75 362.605,3104.94 365.219,3094.43 383.208,3094.24 393.368,3101.45"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123515040"
- class="fil1 str3"
- points="381.989,3117.07 384.751,3114.41 404.653,3124.03 402.716,3129.45 388.673,3129.27 378.405,3129.14 375.192,3123.61"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530424"
- class="fil1 str3"
- points="410.742,3098.14 415.135,3095.74 420.713,3099.27 415.303,3112.51 406.526,3113.58 400.107,3114.37 399.933,3104.07"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123528648"
- class="fil1 str3"
- points="451.221,3063.78 479.133,3056.88 484.149,3064.9 464.092,3087.83 449.426,3104.6 439.897,3105.42 435.108,3099.99 433.162,3097.79 434.794,3088.66 423.633,3085.46 421.211,3076.19 428.723,3061.89 440.744,3064.9"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123525576"
- class="fil1 str3"
- points="459.76,3118.71 459.171,3118.43 453.445,3125.11 447.928,3125.11 445.687,3125.1 440.908,3120.02 454.189,3104.07 463.314,3103.56 468.892,3107.09 460.565,3119.08"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123516984"
- class="fil1 str3"
- points="335.282,3215.49 330.944,3218.96 329.182,3220.36 321.389,3216.37 331.857,3205.19 341.683,3205.66 342.471,3208.36 343.048,3210.35"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513432"
- class="fil1 str3"
- points="341.406,3096.35 351.956,3095.54 352.133,3102.75 351.092,3107.21 350.33,3110.47 349.762,3116.42 348.089,3119.2 347.41,3120.33 341.16,3124.66 328.055,3125.23 322.248,3117.89 330.061,3110.07 331.066,3108.12"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123519768"
- class="fil1 str3"
- points="333.45,3074.53 333.593,3068.55 339.369,3065.14 350.192,3087.44 343.578,3090.98 338.742,3093.56 333.099,3089.22"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <polygon
- id="_123530832"
- class="fil1 str3"
- points="501.356,2959.62 495.842,2944.72 481.871,2934.36 460.365,2914.78 443.893,2886.79 459.805,2872.48 478.834,2876.05 505.417,2869 512.488,2879.23 503.288,2893.16 505.249,2905.36 539.728,2915.46 559.567,2951.02 545.95,2975.66 525.78,2970.98 525.801,2959.64"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- id="_123507288">
- <polygon
- id="_123513936"
- class="fil1 str3"
- points="591.872,2574.72 585.27,2557.09 568.262,2555.04 556.397,2572.87 540.927,2561.29 540.911,2547.49 527.031,2540.67 536.267,2525.2 554.459,2523.43 555.341,2497.17 570.936,2489.64 570.796,2459.34 599.722,2459.44 603.154,2494.78 614.514,2518.96 643.074,2517.05 649.307,2523.61 639.687,2565.36 637.105,2576.57 614.401,2578.71 606.468,2562.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123533784"
- class="fil1 str3"
- points="614.514,2518.96 603.154,2494.78 599.722,2459.44 631.338,2442.18 656.435,2491.38 653.002,2497.98 643.074,2517.05"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123514536"
- class="fil1 str3"
- points="723.014,2502.83 720.436,2518.72 695.882,2527.59 687.356,2530.67 653.002,2497.98 656.435,2491.38 631.338,2442.18 645.754,2416.75 673.61,2427.63 677.504,2417.78 698.495,2420.78 724.382,2399.46 735.962,2406.83 738.921,2431.19 750.321,2435.93 750.251,2464.15 771.722,2477 771.52,2488.1 747.347,2513.38"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123510840"
- class="fil1 str3"
- points="840.872,2514.12 847.065,2520.15 853.961,2546.7 839.501,2569.81 835.201,2562.17 821.734,2581.68 807.25,2584.4 794.291,2570.77 788.423,2534.92 747.347,2513.38 771.52,2488.1 771.722,2477 782.995,2474.88 790.749,2497.03 811.397,2501.12 824.279,2496.5"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123517848"
- class="fil1 str3"
- points="710.537,2565.34 695.882,2527.59 720.436,2518.72 723.014,2502.83 747.347,2513.38 788.423,2534.92 794.291,2570.77 807.25,2584.4 805.805,2595.64 769.166,2612.12 751.885,2619.9 738.141,2626.08 721.349,2606.48"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123530304"
- class="fil1 str3"
- points="566.931,2641.39 537.311,2638.46 540.705,2620.89 553.841,2625.16 562.553,2594.72 556.397,2572.87 568.262,2555.04 585.27,2557.09 591.872,2574.72 606.468,2562.92 614.401,2578.71 637.105,2576.57 639.687,2565.36 676.478,2598.66 676.077,2607.38 648.661,2610.81 617.198,2633.15"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123504912"
- class="fil1 str3"
- points="676.077,2607.38 648.661,2610.81 617.198,2633.15 617.503,2653.46 637.944,2657.21 664.57,2649.05 660.545,2678.27 654.843,2683.29 667.241,2697.91 698.41,2695.83 695.523,2650.84 701.463,2644.8 707.613,2610.23 721.349,2606.48 710.537,2565.34 695.882,2527.59 687.049,2530.38 653.114,2498.28 643.074,2517.05 649.307,2523.61 639.687,2565.36 676.478,2598.66"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123511992"
- class="fil1 str3"
- points="822.15,2642.71 805.822,2642.71 769.166,2612.12 805.805,2595.64 807.25,2584.4 821.734,2581.68 838.747,2602.47"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123522552"
- class="fil1 str3"
- points="518.322,2771.13 508.209,2746.41 507.308,2732.96 516.578,2725.93 541.029,2722.35 543.685,2709.22 524.204,2695.59 525.852,2690.51 533.606,2666.6 547.471,2654.9 536.228,2644.07 537.311,2638.46 566.931,2641.39 567.169,2661.7 572.387,2667.98 594.405,2669.8 594.255,2689.47 611.14,2695.29 611.147,2708.9 602.207,2715.02 619.854,2744.58 612.354,2753.85 617.233,2755.59 619.507,2759.32 621.89,2774.45 617.648,2795.32 581.119,2801.61 571.268,2793.24 556.244,2777.91 547.8,2787.77 521.353,2778.54"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123506472"
- class="fil1 str3"
- points="572.387,2667.98 567.169,2661.7 566.931,2641.39 617.198,2633.15 617.503,2653.46 637.944,2657.21 664.57,2649.05 660.545,2678.27 654.843,2683.29 636.621,2699.36 617.095,2697.35 611.14,2695.29 594.255,2689.47 594.405,2669.8"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123512088"
- class="fil1 str3"
- points="698.41,2695.83 695.523,2650.84 701.463,2644.8 707.613,2610.23 721.349,2606.48 738.141,2626.08 751.885,2619.9 749.901,2671.12 714.477,2731.91 696.209,2727.71 696.241,2726.21 695.979,2715.23 682.835,2712.22 677.122,2716.99 667.241,2697.91"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526224"
- class="fil1 str3"
- points="797.908,2699.55 830.653,2712.62 835.508,2704.87 845.078,2706.71 847.842,2693.94 857.886,2690.29 876.373,2705.54 875.177,2729.06 866.502,2724.03 861.709,2721.37 824.038,2734.83 806.005,2740.93 780.523,2732.7 777.388,2746.91 752.049,2754.13 747.2,2758.99 734.763,2771.44 722.863,2767.55 714.477,2731.91 749.901,2671.12 768.508,2687.12 789.468,2688.16"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532536"
- class="fil1 str3"
- points="808.832,2775.62 833.758,2785.32 839.203,2773 851.034,2784.83 868.71,2776.92 866.502,2724.03 861.709,2721.37 824.038,2734.83 806.005,2740.93 780.523,2732.7 777.388,2746.91 752.049,2754.13 747.2,2758.99 752.398,2767.95 746.03,2779.43 754.751,2786.74 775.339,2794.5 780.133,2798.12 804.467,2779.24"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123534624"
- class="fil1 str3"
- points="612.354,2753.85 619.854,2744.58 602.207,2715.02 611.147,2708.9 611.14,2695.29 617.095,2697.35 636.621,2699.36 654.843,2683.29 667.241,2697.91 677.122,2716.99 657.535,2729.59 656.03,2743.7 646.395,2746.79 651.765,2761.06 619.507,2759.32 617.233,2755.59"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535632"
- class="fil1 str3"
- points="667.06,2750.32 656.03,2743.7 657.535,2729.59 677.122,2716.99 682.835,2712.22 695.979,2715.23 696.209,2727.71"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123507864"
- class="fil1 str3"
- points="689.343,2789.46 689.314,2775.55 667.284,2749.75 696.209,2727.71 714.477,2731.91 722.863,2767.55 704.31,2792.96"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123526032"
- class="fil1 str3"
- points="715.359,2828.43 726.459,2809.83 704.31,2792.96 722.863,2767.55 734.763,2771.44 747.2,2758.99 752.398,2767.95 746.03,2779.43 754.751,2786.74 775.339,2794.5 771.866,2799.95 772.241,2806.46 775.576,2810.39 766.709,2820.94 719.506,2838.85"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123535824"
- class="fil1 str3"
- points="566.84,2840.65 576.782,2838.73 564.473,2817.08 571.268,2793.24 580.427,2801.12 617.648,2795.32 616.183,2802.37 631.34,2820.92 620.014,2824.51 617.597,2855.14 614.825,2853.04 604.381,2859.88 596.51,2860.89 597.864,2850.36 578.371,2854.16"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123513288"
- class="fil1 str3"
- points="621.89,2774.45 619.507,2759.32 651.765,2761.06 646.395,2746.79 656.03,2743.7 667.284,2749.75 689.314,2775.55 689.343,2789.46 667.501,2793.55 660.884,2804.17 637.476,2805.14 636.106,2796.78 617.648,2795.32"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123524976"
- class="fil1 str3"
- points="726.459,2809.83 704.31,2792.96 689.343,2789.46 667.501,2793.55 660.884,2804.17 654.864,2812.91 662.648,2828.41 675.01,2825.19 697.552,2847.18 719.506,2838.85 715.359,2828.43"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123532848"
- class="fil1 str3"
- points="631.458,2873.97 629.168,2863.92 617.597,2855.14 620.014,2824.51 631.34,2820.92 616.183,2802.37 617.648,2795.32 636.106,2796.78 637.476,2805.14 660.884,2804.17 654.864,2812.91 662.648,2828.41 675.01,2825.19 697.552,2847.18 701.798,2879.74 696.659,2884.78 676.072,2862.29 645.998,2873.75"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- <polygon
- id="_123520896"
- class="fil1 str3"
- points="849.764,2652.02 857.353,2656.57 859.788,2655.2 869.772,2661.13 860.037,2667.95 855.727,2677.44 857.886,2690.29 847.842,2693.94 845.078,2706.71 835.508,2704.87 830.653,2712.62 797.908,2699.55 789.468,2688.16 768.508,2687.12 749.901,2671.12 751.885,2619.9 769.166,2612.12 805.822,2642.71 822.15,2642.71 838.864,2603.08 855.993,2624.48 863.048,2625.71 862.962,2632.14 855.746,2632.58 853.548,2626.45 848.018,2630.15 850.892,2639.92"
- style="fill: none; stroke: rgb(199, 199, 162); stroke-width: 0.797991;" />
- </g>
- <g
- transform="matrix(1.0054068,0,0,1.0054068,-0.02738123,-0.03888718)"
- id="_74312864"><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_53586096"
- points="1059.63,2737.39 1053.24,2749.32 1006.35,2749.25 1000.42,2769.94 992.882,2750.74 961.773,2752.66 956.125,2733.71 959.5,2724.72 947.476,2707.15 963.05,2651.08 986.438,2640.35 998.847,2646.25 1022.17,2695.83 1008.68,2709.29 1024.51,2726.86 1043.94,2714.13 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_55040216"
- points="931.519,2785.71 911.795,2789.77 897.049,2778.38 885.515,2783.83 888.711,2771.86 864.04,2761.99 861.843,2709.39 870.471,2714.38 947.476,2707.15 959.5,2724.72 956.125,2733.71 961.773,2752.66 941.39,2764.32 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_54401600"
- points="1043.94,2714.13 1024.51,2726.86 1008.68,2709.29 1022.17,2695.83 998.847,2646.25 1015.13,2618.1 1033.29,2627.23 1054.06,2659.23 1083.26,2670.95 1073.28,2697.67 1069.81,2729.63 1059.63,2737.39 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_55213984"
- points="1020.5,2817.69 1012.39,2827.94 995.848,2827.45 961.283,2826.41 954.268,2816.05 923.26,2831.7 913.982,2827.14 911.795,2789.77 931.519,2785.71 941.39,2764.32 961.773,2752.66 992.882,2750.74 1000.42,2769.94 1013.37,2776.81 1022.09,2789.84 1013.87,2800.75 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_55250640"
- points="886.516,2843.51 913.982,2827.14 923.26,2831.7 913.932,2853.9 917.503,2861.54 896.631,2895.09 879.104,2873.78 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_55261112"
- points="969.837,2846.07 956.706,2865.06 961.423,2883.98 975.625,2890.25 973.584,2902.46 941.39,2906.56 926.458,2892 926.696,2880.84 917.503,2861.54 913.932,2853.9 923.26,2831.7 954.268,2816.05 961.283,2826.41 995.848,2827.45 986.881,2836.89 999.636,2841.15 995.497,2850.72 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_54158464"
- points="969.837,2846.07 995.497,2850.72 1005.21,2854.47 991.145,2891.34 975.625,2890.25 961.423,2883.98 956.706,2865.06 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_55233608"
- points="907.143,2913.76 893.023,2917.51 886.578,2903.58 896.631,2895.09 917.503,2861.54 926.696,2880.84 926.458,2892 941.39,2906.56 943.406,2922.02 927.571,2938.6 " /><path
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- d="M 1012.0625 2889.75 L 1004.4062 2901.9375 L 982.125 2891.2812 L 966.59375 2890.2188 L 964.5625 2902.4062 L 932.375 2906.5312 L 934.375 2921.9688 L 939.125 2926.1875 L 946.125 2951.5938 L 947.59375 2950.7812 L 954.625 2959.5625 L 982.75 2950.8438 L 991.3125 2952.25 L 1004.6562 2942.8125 L 1005.4375 2956.5625 L 1025.3125 2952.25 L 1038 2963.625 L 1051.2188 2956.5312 L 1052.8438 2942.625 L 1048.5625 2940.5 L 1046.3438 2924.7812 L 1032.7812 2915.7812 L 1032.1562 2898.8438 L 1012.0625 2889.75 z "
- transform="translate(9.0226775,0.04366498)"
- id="_55216032" /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_74091008"
- points="1032.89,2877.32 1048.93,2884.2 1041.19,2898.89 1021.09,2889.78 1013.43,2901.99 991.145,2891.34 1005.21,2854.47 995.497,2850.72 999.636,2841.15 986.881,2836.89 995.848,2827.45 1012.77,2827.96 1020.39,2839.26 1040.53,2832.74 1046.35,2845.33 1050.73,2867.78 1038.29,2867.02 " /><polygon
- style="fill:none;stroke:#cfcfa9;stroke-width:0.70866197"
- id="_74456064"
- points="1094.31,2762.12 1103.07,2763.74 1104.1,2778.92 1094.97,2784.45 1087.07,2805.18 1066.03,2819.42 1044.23,2819.35 1040.53,2832.74 1020.39,2839.26 1012.77,2827.96 1020.5,2817.69 1013.87,2800.75 1022.09,2789.84 1013.76,2776.83 1000.42,2769.94 1006.35,2749.25 1053.24,2749.32 1059.63,2737.39 1069.68,2729.29 1079.31,2736.39 1079.89,2748.62 " /></g></g>
-</svg> \ No newline at end of file
diff --git a/examples/mapdata/doc/images/mapdata-example.png b/examples/mapdata/doc/images/mapdata-example.png
deleted file mode 100644
index 8bd8fc18..00000000
--- a/examples/mapdata/doc/images/mapdata-example.png
+++ /dev/null
Binary files differ
diff --git a/examples/mapdata/doc/src/mapdata.qdoc b/examples/mapdata/doc/src/mapdata.qdoc
deleted file mode 100644
index 3014cadb..00000000
--- a/examples/mapdata/doc/src/mapdata.qdoc
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-/*!
- \example mapdata
- \title Mapdata Example
-
- The mapdata example shows how to make a simple 3D maps visualization using Q3DMaps and
- combining the use of widgets for adjusting several adjustable qualities.
-
- \image mapdata-example.png
-
- TODO
-*/
diff --git a/examples/mapdata/main.cpp b/examples/mapdata/main.cpp
deleted file mode 100644
index d176bd55..00000000
--- a/examples/mapdata/main.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "mapdata.h"
-
-#include <QApplication>
-#include <QWidget>
-#include <QHBoxLayout>
-#include <QVBoxLayout>
-#include <QPushButton>
-#include <QCheckBox>
-#include <QSlider>
-#include <QComboBox>
-#include <QFontComboBox>
-#include <QLabel>
-#include <QScreen>
-#include <QFontDatabase>
-
-int main(int argc, char **argv)
-{
- QApplication app(argc, argv);
-
- QWidget *widget = new QWidget;
- QHBoxLayout *hLayout = new QHBoxLayout(widget);
- QVBoxLayout *vLayout = new QVBoxLayout();
-
- Q3DMaps *chart = new Q3DMaps();
- QSize screenSize = chart->screen()->size();
-
- QWidget *container = QWidget::createWindowContainer(chart);
- container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2));
- container->setMaximumSize(screenSize);
- container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- container->setFocusPolicy(Qt::StrongFocus);
-
- widget->setWindowTitle(QStringLiteral("Population of a few cities in Finland"));
-
- hLayout->addWidget(container, 1);
- hLayout->addLayout(vLayout);
-
-// QPushButton *dataButton = new QPushButton(widget);
-// dataButton->setText(QStringLiteral("Add a row of random data"));
-// dataButton->setEnabled(false);
-
- QPushButton *themeButton = new QPushButton(widget);
- themeButton->setText(QStringLiteral("Change theme"));
-
- QPushButton *labelButton = new QPushButton(widget);
- labelButton->setText(QStringLiteral("Change label style"));
-
- QPushButton *styleButton = new QPushButton(widget);
- styleButton->setText(QStringLiteral("Change bar style"));
-
- QPushButton *cameraButton = new QPushButton(widget);
- cameraButton->setText(QStringLiteral("Change camera preset"));
-
-// QPushButton *selectionButton = new QPushButton(widget);
-// selectionButton->setText(QStringLiteral("Change selection mode"));
-
-// QCheckBox *gridCheckBox = new QCheckBox(widget);
-// gridCheckBox->setText(QStringLiteral("Show grid"));
-// gridCheckBox->setChecked(true);
-
-// QCheckBox *rotationCheckBox = new QCheckBox(widget);
-// rotationCheckBox->setText("Rotate with slider");
-
-// QSlider *rotationSliderX = new QSlider(Qt::Horizontal, widget);
-// rotationSliderX->setTickInterval(1);
-// rotationSliderX->setMinimum(-180);
-// rotationSliderX->setValue(0);
-// rotationSliderX->setMaximum(180);
-// rotationSliderX->setEnabled(false);
-// QSlider *rotationSliderY = new QSlider(Qt::Horizontal, widget);
-// rotationSliderY->setTickInterval(1);
-// rotationSliderY->setMinimum(0);
-// rotationSliderY->setValue(0);
-// rotationSliderY->setMaximum(90);
-// rotationSliderY->setEnabled(false);
-
-// QSlider *sizeSliderX = new QSlider(Qt::Horizontal, widget);
-// sizeSliderX->setTickInterval(1);
-// sizeSliderX->setMinimum(1);
-// sizeSliderX->setValue(100);
-// sizeSliderX->setMaximum(100);
-// QSlider *sizeSliderZ = new QSlider(Qt::Horizontal, widget);
-// sizeSliderZ->setTickInterval(1);
-// sizeSliderZ->setMinimum(1);
-// sizeSliderZ->setValue(100);
-// sizeSliderZ->setMaximum(100);
-
- QComboBox *valueDimension = new QComboBox(widget);
- valueDimension->addItem(QStringLiteral("Height"));
- valueDimension->addItem(QStringLiteral("Width"));
- valueDimension->addItem(QStringLiteral("Depth"));
- valueDimension->addItem(QStringLiteral("Radius"));
- valueDimension->addItem(QStringLiteral("All"));
- valueDimension->setCurrentIndex(4);
-
- QComboBox *shadowQuality = new QComboBox(widget);
- shadowQuality->addItem(QStringLiteral("None"));
- shadowQuality->addItem(QStringLiteral("Low"));
- shadowQuality->addItem(QStringLiteral("Medium"));
- shadowQuality->addItem(QStringLiteral("High"));
- shadowQuality->setCurrentIndex(1);
-
- QFontComboBox *fontList = new QFontComboBox(widget);
-
- QSlider *fontSizeSlider = new QSlider(Qt::Horizontal, widget);
- fontSizeSlider->setTickInterval(1);
- fontSizeSlider->setMinimum(1);
- fontSizeSlider->setValue(80);
- fontSizeSlider->setMaximum(200);
-
-// vLayout->addWidget(rotationCheckBox, 0, Qt::AlignTop);
-// vLayout->addWidget(rotationSliderX, 0, Qt::AlignTop);
-// vLayout->addWidget(rotationSliderY, 0, Qt::AlignTop);
-// vLayout->addWidget(new QLabel(QStringLiteral("Adjust relative bar size")));
-// vLayout->addWidget(sizeSliderX, 0, Qt::AlignTop);
-// vLayout->addWidget(sizeSliderZ, 0, Qt::AlignTop);
-// vLayout->addWidget(dataButton, 0, Qt::AlignTop);
- vLayout->addWidget(themeButton, 0, Qt::AlignTop);
- vLayout->addWidget(labelButton, 0, Qt::AlignTop);
- vLayout->addWidget(styleButton, 0, Qt::AlignTop);
- vLayout->addWidget(cameraButton, 0, Qt::AlignTop);
- vLayout->addWidget(new QLabel(QStringLiteral("Apply value to:")));
- vLayout->addWidget(valueDimension, 0, Qt::AlignTop);
-// vLayout->addWidget(selectionButton, 0, Qt::AlignTop);
-// vLayout->addWidget(gridCheckBox);
- vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality")));
- vLayout->addWidget(shadowQuality);
- vLayout->addWidget(new QLabel(QStringLiteral("Change font")));
- vLayout->addWidget(fontList);
- vLayout->addWidget(new QLabel(QStringLiteral("Adjust font size")));
- vLayout->addWidget(fontSizeSlider, 1, Qt::AlignTop);
-// // TODO: Add example for setMeshFileName
-
- widget->show();
-
- MapsModifier *modifier = new MapsModifier(chart);
-
-// QObject::connect(rotationSliderX, &QSlider::valueChanged, modifier, &MapsModifier::rotateX);
-// QObject::connect(rotationSliderY, &QSlider::valueChanged, modifier, &MapsModifier::rotateY);
-
-// QObject::connect(sizeSliderX, &QSlider::valueChanged, modifier, &MapsModifier::setSpecsX);
-// QObject::connect(sizeSliderZ, &QSlider::valueChanged, modifier, &MapsModifier::setSpecsZ);
-
- QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier,
- &MapsModifier::changeFontSize);
-
- QObject::connect(styleButton, &QPushButton::clicked, modifier, &MapsModifier::changeStyle);
- QObject::connect(cameraButton, &QPushButton::clicked, modifier,
- &MapsModifier::changePresetCamera);
- QObject::connect(themeButton, &QPushButton::clicked, modifier, &MapsModifier::changeTheme);
- QObject::connect(labelButton, &QPushButton::clicked, modifier,
- &MapsModifier::changeTransparency);
-// QObject::connect(dataButton, &QPushButton::clicked, modifier, &MapsModifier::addBars);
-// QObject::connect(selectionButton, &QPushButton::clicked, modifier,
-// &MapsModifier::changeSelectionMode);
-
- QObject::connect(valueDimension, SIGNAL(currentIndexChanged(int)), modifier,
- SLOT(changeValueDimension(int)));
-
- QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier,
- SLOT(changeShadowQuality(int)));
- QObject::connect(modifier, &MapsModifier::shadowQuality, shadowQuality,
- &QComboBox::setCurrentIndex);
-
- QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier,
- &MapsModifier::changeFont);
-
-// QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier,
-// &MapsModifier::setGridEnabled);
-
-// QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX,
-// &QSlider::setEnabled);
-// QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX,
-// &QSlider::setValue);
-// QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderY,
-// &QSlider::setEnabled);
-// QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderY,
-// &QSlider::setValue);
-
- modifier->start();
-
- return app.exec();
-}
diff --git a/examples/mapdata/mapdata.cpp b/examples/mapdata/mapdata.cpp
deleted file mode 100644
index 744de129..00000000
--- a/examples/mapdata/mapdata.cpp
+++ /dev/null
@@ -1,359 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "mapdata.h"
-#include <QtDataVis3D/qmapdataproxy.h>
-#include <QImage>
-#include <QFile>
-
-using namespace QtDataVis3D;
-
-MapsModifier::MapsModifier(Q3DMaps *maps)
- : m_chart(maps),
- m_imageRect(QRect()),
- m_fontSize(80.0f),
- m_barSpecs(QVector3D(30.0f, 30.0f, 30.0f))
-{
- QImage image = QImage(QStringLiteral(":/images/finland"));
- m_imageRect = image.rect();
- m_chart->setAreaSpecs(m_imageRect, image);
- QFont font = m_chart->font();
- font.setPointSize(m_fontSize);
- m_chart->setFont(font);
-
-#if 0
- m_chart->setBarSpecs(m_barSpecs, Q3DMaps::AdjustHeight);
- m_chart->setBarType(BevelBars, true);
- m_chart->setTheme(ThemeBlueIcy);
- m_chart->setShadowQuality(ShadowMedium);
-#else
- m_chart->setBarSpecs(m_barSpecs, Q3DMaps::AdjustAll);
- m_chart->setMeshFileName(QStringLiteral(":/meshes/weirdthing"));
-#endif
- QMapDataProxy *proxy = new QMapDataProxy;
- m_chart->setDataProxy(proxy);
-}
-
-MapsModifier::~MapsModifier()
-{
- delete m_chart;
-}
-
-void MapsModifier::start()
-{
- addData();
-}
-
-void MapsModifier::addData()
-{
- QMapDataArray *dataArray = new QMapDataArray;
- QMapDataItem *item;
- item = new QMapDataItem();
- item->setValue(191050);
- item->setLabel("Oulu");
- item->setMapPosition(QPointF(963, 1604));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(22274);
- item->setLabel("Kemi");
- item->setMapPosition(QPointF(857, 1383));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(60887);
- item->setLabel("Rovaniemi");
- item->setMapPosition(QPointF(1061, 1119));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(16176);
- item->setLabel("Kuusamo");
- item->setMapPosition(QPointF(1459, 1284));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(3998);
- item->setLabel("Ivalo");
- item->setMapPosition(QPointF(1239, 474));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(37978);
- item->setLabel("Kajaani");
- item->setMapPosition(QPointF(1285, 1859));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(46809);
- item->setLabel("Kokkola");
- item->setMapPosition(QPointF(580, 1973));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(105236);
- item->setLabel("Kuopio");
- item->setMapPosition(QPointF(1292, 2283));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(133557);
- item->setLabel("Jyväskylä");
- item->setMapPosition(QPointF(991, 2496));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(65771);
- item->setLabel("Vaasa");
- item->setMapPosition(QPointF(441, 2184));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(217603);
- item->setLabel("Tampere");
- item->setMapPosition(QPointF(686, 2656));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(180350);
- item->setLabel("Turku");
- item->setMapPosition(QPointF(430, 3046));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(72400);
- item->setLabel("Lappeenranta");
- item->setMapPosition(QPoint(1365, 2852));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(14754);
- item->setLabel("Tammisaari");
- item->setMapPosition(QPointF(605, 3215));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(1879);
- item->setLabel("Enontekiö");
- item->setMapPosition(QPointF(752, 556));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(36624);
- item->setLabel("Savonlinna");
- item->setMapPosition(QPointF(1445, 2586));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(605022);
- item->setLabel("Helsinki");
- item->setMapPosition(QPointF(822, 3130));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(54887);
- item->setLabel("Kotka");
- item->setMapPosition(QPointF(1162, 3051));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(11372);
- item->setLabel("Maarianhamina");
- item->setMapPosition(QPointF(56, 3101));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(9266);
- item->setLabel("Hanko");
- item->setMapPosition(QPointF(527, 3228));
- dataArray->append(*item);
- delete item;
-
- item = new QMapDataItem();
- item->setValue(1287);
- item->setLabel("Utsjoki");
- item->setMapPosition(QPointF(1180, 72));
- dataArray->append(*item);
- delete item;
-
- static_cast<QMapDataProxy *>(m_chart->dataProxy())->resetArray(dataArray);
-}
-
-void MapsModifier::changeStyle()
-{
- static int model = 0;
- switch (model) {
- case 0:
- m_chart->setBarType(QDataVis::Cylinders, false);
- break;
- case 1:
- m_chart->setBarType(QDataVis::Cylinders, true);
- break;
- case 2:
- m_chart->setBarType(QDataVis::Cones, false);
- break;
- case 3:
- m_chart->setBarType(QDataVis::Cones, true);
- break;
- case 4:
- m_chart->setBarType(QDataVis::Bars, false);
- break;
- case 5:
- m_chart->setBarType(QDataVis::Bars, true);
- break;
- case 6:
- m_chart->setBarType(QDataVis::Pyramids, false);
- break;
- case 7:
- m_chart->setBarType(QDataVis::Pyramids, true);
- break;
- case 8:
- m_chart->setBarType(QDataVis::BevelBars, false);
- break;
- case 9:
- m_chart->setBarType(QDataVis::BevelBars, true);
- break;
- case 10:
- m_chart->setBarType(QDataVis::Spheres, false);
- break;
- case 11:
- m_chart->setBarType(QDataVis::Spheres, true);
- break;
- }
- model++;
- if (model > 11)
- model = 0;
-}
-
-void MapsModifier::changePresetCamera()
-{
- static int preset = QDataVis::PresetFrontLow;
-
- m_chart->setCameraPreset((QDataVis::CameraPreset)preset);
-
- if (++preset > QDataVis::PresetDirectlyAboveCCW45)
- preset = QDataVis::PresetFrontLow;
-}
-
-void MapsModifier::changeTheme()
-{
- static int theme = QDataVis::ThemeSystem;
-
- m_chart->setTheme((QDataVis::ColorTheme)theme);
-
- if (++theme > QDataVis::ThemeLight)
- theme = QDataVis::ThemeSystem;
-}
-
-void MapsModifier::changeTransparency()
-{
- static int transparency = QDataVis::TransparencyNone;
-
- m_chart->setLabelTransparency((QDataVis::LabelTransparency)transparency);
-
- if (++transparency > QDataVis::TransparencyNoBackground)
- transparency = QDataVis::TransparencyFromTheme;
-}
-
-void MapsModifier::changeValueDimension(int dimension)
-{
- m_chart->setBarSpecs(m_barSpecs, (Q3DMaps::AdjustmentDirection)dimension);
-}
-
-void MapsModifier::changeFont(const QFont &font)
-{
- QFont newFont = font;
- newFont.setPointSizeF(m_fontSize);
- m_chart->setFont(newFont);
-}
-
-void MapsModifier::changeFontSize(int fontsize)
-{
- m_fontSize = fontsize;
- QFont font = m_chart->font();
- font.setPointSize(m_fontSize);
- m_chart->setFont(font);
-}
-
-void MapsModifier::changeShadowQuality(int quality)
-{
- QDataVis::ShadowQuality sq = QDataVis::ShadowNone;
- switch (quality) {
- case 1:
- sq = QDataVis::ShadowLow;
- break;
- case 2:
- sq = QDataVis::ShadowMedium;
- break;
- case 3:
- sq = QDataVis::ShadowHigh;
- break;
- }
- QDataVis::ShadowQuality realquality = m_chart->setShadowQuality(sq);
- // Check if it setting quality was successful
- if (realquality != sq) {
- switch (realquality) {
- case QDataVis::ShadowLow:
- quality = 1;
- break;
- case QDataVis::ShadowMedium:
- quality = 2;
- break;
- case QDataVis::ShadowHigh:
- quality = 3;
- break;
- }
- emit shadowQuality(quality);
- }
-}
-
-//void MapsModifier::setGridEnabled(int enabled)
-//{
-// m_chart->setGridEnabled((bool)enabled);
-//}
-
-//void MapsModifier::rotateX(int rotation)
-//{
-// m_xRotation = rotation;
-// m_chart->setCameraPosition(m_xRotation, m_yRotation);
-//}
-
-//void MapsModifier::rotateY(int rotation)
-//{
-// m_yRotation = rotation;
-// m_chart->setCameraPosition(m_xRotation, m_yRotation);
-//}
diff --git a/examples/mapdata/mapdata.h b/examples/mapdata/mapdata.h
deleted file mode 100644
index 8aed69fe..00000000
--- a/examples/mapdata/mapdata.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#ifndef CHARTMODIFIER_H
-#define CHARTMODIFIER_H
-
-#include <QtDataVis3D/q3dmaps.h>
-
-#include <QFont>
-#include <QDebug>
-
-using namespace QtDataVis3D;
-
-class MapsModifier : public QObject
-{
- Q_OBJECT
-public:
- explicit MapsModifier(Q3DMaps *maps);
- ~MapsModifier();
-
- void addData();
- void changeStyle();
- void changePresetCamera();
- void changeTheme();
-// void changeSelectionMode();
- void changeTransparency();
- void changeFont(const QFont &font);
- void changeFontSize(int fontsize);
-// void rotateX(int rotation);
-// void rotateY(int rotation);
-// void setGridEnabled(int enabled);
-// void setSpecsX(int barwidth);
-// void setSpecsZ(int bardepth);
- void start();
-
-public slots:
- void changeValueDimension(int dimension);
- void changeShadowQuality(int quality);
-
-signals:
- void shadowQuality(int quality);
-
-private:
- Q3DMaps *m_chart;
- QRect m_imageRect;
- int m_fontSize;
- QVector3D m_barSpecs;
-};
-
-#endif
diff --git a/examples/mapdata/mapdata.pro b/examples/mapdata/mapdata.pro
deleted file mode 100644
index 091fdc7c..00000000
--- a/examples/mapdata/mapdata.pro
+++ /dev/null
@@ -1,13 +0,0 @@
-!include( ../examples.pri ) {
- error( "Couldn't find the examples.pri file!" )
-}
-
-SOURCES += main.cpp mapdata.cpp
-HEADERS += mapdata.h
-
-QT += widgets
-
-INSTALLS += target
-
-RESOURCES += \
- mapdata.qrc
diff --git a/examples/mapdata/mapdata.qrc b/examples/mapdata/mapdata.qrc
deleted file mode 100644
index 76ea5f05..00000000
--- a/examples/mapdata/mapdata.qrc
+++ /dev/null
@@ -1,8 +0,0 @@
-<RCC>
- <qresource prefix="/images">
- <file alias="finland">Suomi.karttapohja.svg</file>
- </qresource>
- <qresource prefix="/meshes">
- <file alias="weirdthing">weirdthing.obj</file>
- </qresource>
-</RCC>
diff --git a/examples/mapdata/weirdthing.obj b/examples/mapdata/weirdthing.obj
deleted file mode 100644
index 46c9e789..00000000
--- a/examples/mapdata/weirdthing.obj
+++ /dev/null
@@ -1,1232 +0,0 @@
-# Blender v2.66 (sub 0) OBJ File: 'kummajuttu.blend'
-# www.blender.org
-o Sphere
-v 0.003570 0.980785 -0.198744
-v 0.003570 0.923880 -0.386337
-v 0.003570 0.831470 -0.559224
-v 0.003570 0.707107 -0.710760
-v 0.003570 0.555570 -0.835123
-v 0.003570 0.382683 -0.927533
-v 0.003570 0.195090 -0.984439
-v 0.003570 0.000000 -1.003654
-v 0.003570 -0.195090 -0.984439
-v 0.003570 -0.382683 -0.927533
-v 0.003570 -0.555570 -0.835123
-v 0.003570 -0.707107 -0.710760
-v 0.003570 -0.831470 -0.559224
-v 0.003570 -0.923880 -0.386337
-v 0.003570 -0.980785 -0.198744
-v 0.078228 0.980785 -0.183894
-v 0.150016 0.923880 -0.357207
-v 0.216177 0.831470 -0.516933
-v 0.274168 0.707107 -0.656935
-v 0.321760 0.555570 -0.771831
-v 0.357123 0.382683 -0.857207
-v 0.378900 0.195090 -0.909781
-v 0.386254 0.000000 -0.927533
-v 0.378900 -0.195090 -0.909781
-v 0.357124 -0.382683 -0.857207
-v 0.321760 -0.555570 -0.771831
-v 0.274168 -0.707107 -0.656935
-v 0.216177 -0.831470 -0.516933
-v 0.150016 -0.923880 -0.357207
-v 0.078227 -0.980785 -0.183893
-v 0.003569 -1.000000 -0.003653
-v 0.141519 0.980785 -0.141603
-v 0.274168 0.923880 -0.274251
-v 0.396417 0.831470 -0.396501
-v 0.503570 0.707107 -0.503653
-v 0.591508 0.555570 -0.591591
-v 0.656851 0.382683 -0.656934
-v 0.697090 0.195090 -0.697173
-v 0.710677 0.000000 -0.710760
-v 0.697090 -0.195090 -0.697173
-v 0.656852 -0.382683 -0.656935
-v 0.591508 -0.555570 -0.591591
-v 0.503570 -0.707107 -0.503653
-v 0.396417 -0.831470 -0.396501
-v 0.274168 -0.923880 -0.274251
-v 0.141519 -0.980785 -0.141603
-v 0.183810 0.980785 -0.078311
-v 0.357123 0.923880 -0.150100
-v 0.516850 0.831470 -0.216261
-v 0.656851 0.707107 -0.274251
-v 0.771748 0.555570 -0.321843
-v 0.857123 0.382683 -0.357206
-v 0.909697 0.195090 -0.378983
-v 0.927450 0.000000 -0.386336
-v 0.909697 -0.195090 -0.378983
-v 0.857123 -0.382683 -0.357206
-v 0.771748 -0.555570 -0.321843
-v 0.656851 -0.707107 -0.274251
-v 0.516850 -0.831470 -0.216261
-v 0.357123 -0.923880 -0.150100
-v 0.183810 -0.980785 -0.078311
-v 0.198660 0.980785 -0.003653
-v 0.677357 1.471222 -0.125912
-v 0.559140 0.831470 -0.003653
-v 0.710676 0.707107 -0.003653
-v 0.835039 0.555570 -0.003653
-v 0.927449 0.382683 -0.003653
-v 0.984355 0.195090 -0.003653
-v 1.003570 0.000000 -0.003653
-v 0.984355 -0.195090 -0.003653
-v 0.927449 -0.382683 -0.003653
-v 0.835039 -0.555570 -0.003653
-v 0.710676 -0.707107 -0.003653
-v 0.559140 -0.831470 -0.003653
-v 0.386253 -0.923880 -0.003653
-v 0.198660 -0.980785 -0.003653
-v 0.183810 0.980785 0.071005
-v 0.357123 0.923880 0.142794
-v 0.516850 0.831470 0.208955
-v 0.656851 0.707107 0.266945
-v 0.771747 0.555570 0.314537
-v 0.857123 0.382683 0.349901
-v 0.909697 0.195090 0.371678
-v 0.927449 0.000000 0.379031
-v 0.909697 -0.195090 0.371678
-v 0.857123 -0.382683 0.349901
-v 0.771747 -0.555570 0.314537
-v 0.656851 -0.707107 0.266945
-v 0.516850 -0.831470 0.208955
-v 0.357123 -0.923880 0.142794
-v 0.183809 -0.980785 0.071005
-v 0.141519 0.980785 0.134297
-v 0.274168 0.923880 0.266945
-v 0.396417 0.831470 0.389194
-v 0.503569 0.707107 0.496347
-v 0.510364 0.555081 0.463719
-v 0.656851 0.382683 0.649629
-v 0.697089 0.195090 0.689867
-v 0.710676 0.000000 0.703454
-v 0.748412 -0.191114 0.569205
-v 0.656851 -0.382683 0.649629
-v 0.591507 -0.555570 0.584285
-v 0.503569 -0.707107 0.496347
-v 0.396417 -0.831470 0.389195
-v 0.274167 -0.923880 0.266945
-v 0.141519 -0.980785 0.134296
-v 0.078227 0.980785 0.176587
-v 0.150016 0.923880 0.349900
-v 0.216177 0.831470 0.509627
-v 0.274167 0.707107 0.649628
-v 0.291322 0.560724 0.763409
-v 0.277774 0.364301 0.818832
-v 0.378899 0.195090 0.902475
-v 0.386252 0.000000 0.920227
-v 0.379597 -0.105845 0.875443
-v 0.357122 -0.382683 0.849900
-v 0.321759 -0.555570 0.764525
-v 0.274167 -0.707107 0.649628
-v 0.216177 -0.831470 0.509627
-v 0.150016 -0.923880 0.349900
-v 0.078227 -0.980785 0.176587
-v 0.003569 0.980785 0.191437
-v 0.003569 0.923880 0.379030
-v 0.003569 0.831470 0.551917
-v 0.003569 0.707107 0.703454
-v 0.003569 0.555570 0.827816
-v 0.002822 0.396037 1.575037
-v -0.004287 0.229143 1.537837
-v 0.003569 0.000000 0.996347
-v 0.002270 0.152905 1.513075
-v 0.003569 -0.382683 0.920226
-v 0.003569 -0.555570 0.827816
-v 0.003569 -0.707107 0.703454
-v 0.003569 -0.831470 0.551917
-v 0.003569 -0.923880 0.379030
-v 0.003569 -0.980785 0.191437
-v -0.071089 0.980785 0.176587
-v -0.142877 0.923880 0.349900
-v -0.209038 0.831470 0.509627
-v -0.267029 0.707107 0.649628
-v -0.278921 0.569917 0.759967
-v -0.256269 0.375922 0.808299
-v -0.371761 0.195090 0.902474
-v -0.379115 0.000000 0.920226
-v -0.376325 -0.115657 0.878437
-v -0.349985 -0.382683 0.849900
-v -0.314621 -0.555570 0.764524
-v -0.267029 -0.707107 0.649628
-v -0.209038 -0.831470 0.509627
-v -0.142877 -0.923880 0.349900
-v -0.071088 -0.980785 0.176587
-v -0.134381 0.980785 0.134296
-v -0.267029 0.923880 0.266945
-v -0.389278 0.831470 0.389194
-v -0.496431 0.707107 0.496346
-v -0.514055 0.534945 0.480404
-v -0.649713 0.382683 0.649628
-v -0.689951 0.195090 0.689866
-v -0.703538 0.000000 0.703453
-v -0.717210 -0.189018 0.574779
-v -0.649712 -0.382683 0.649628
-v -0.584369 -0.555570 0.584284
-v -0.496431 -0.707107 0.496346
-v -0.389278 -0.831470 0.389194
-v -0.267029 -0.923880 0.266945
-v -0.134380 -0.980785 0.134296
-v -0.176671 0.980785 0.071004
-v -0.349984 0.923880 0.142793
-v -0.509711 0.831470 0.208954
-v -0.649712 0.707107 0.266944
-v -0.764608 0.555570 0.314536
-v -0.849984 0.382683 0.349899
-v -0.902558 0.195090 0.371676
-v -0.920310 0.000000 0.379030
-v -0.902558 -0.195090 0.371676
-v -0.849984 -0.382683 0.349899
-v -0.764608 -0.555570 0.314536
-v -0.649712 -0.707107 0.266944
-v -0.509711 -0.831470 0.208954
-v -0.349984 -0.923880 0.142793
-v -0.176671 -0.980785 0.071004
-v -0.191521 0.980785 -0.003654
-v -0.670833 1.424588 -0.130514
-v -0.552001 0.831470 -0.003654
-v -0.703537 0.707107 -0.003654
-v -0.827900 0.555570 -0.003654
-v -0.920310 0.382683 -0.003654
-v -0.977216 0.195090 -0.003654
-v -0.996431 0.000000 -0.003654
-v -0.977216 -0.195090 -0.003654
-v -0.920310 -0.382683 -0.003654
-v -0.827900 -0.555570 -0.003654
-v -0.703537 -0.707107 -0.003654
-v -0.552001 -0.831470 -0.003654
-v -0.379114 -0.923880 -0.003654
-v -0.191521 -0.980785 -0.003653
-v -0.176671 0.980785 -0.078311
-v -0.349984 0.923880 -0.150100
-v -0.509711 0.831470 -0.216261
-v -0.649712 0.707107 -0.274252
-v -0.764608 0.555570 -0.321844
-v -0.849984 0.382683 -0.357207
-v -0.902558 0.195090 -0.378984
-v -0.920310 0.000000 -0.386338
-v -0.902558 -0.195090 -0.378984
-v -0.849984 -0.382683 -0.357207
-v -0.764608 -0.555570 -0.321844
-v -0.649712 -0.707107 -0.274252
-v -0.509711 -0.831470 -0.216261
-v -0.349984 -0.923880 -0.150100
-v -0.176670 -0.980785 -0.078311
-v -0.004740 0.946694 -0.042452
-v -0.134380 0.980785 -0.141603
-v -0.267029 0.923880 -0.274252
-v -0.389278 0.831470 -0.396501
-v -0.496430 0.707107 -0.503654
-v -0.584368 0.555570 -0.591592
-v -0.649712 0.382683 -0.656935
-v -0.689950 0.195090 -0.697174
-v -0.703537 0.000000 -0.710761
-v -0.689950 -0.195090 -0.697174
-v -0.649711 -0.382683 -0.656935
-v -0.584368 -0.555570 -0.591592
-v -0.496430 -0.707107 -0.503654
-v -0.389278 -0.831470 -0.396501
-v -0.267029 -0.923880 -0.274252
-v -0.134380 -0.980785 -0.141603
-v -0.071088 0.980785 -0.183894
-v -0.142877 0.923880 -0.357207
-v -0.209038 0.831470 -0.516934
-v -0.267028 0.707107 -0.656935
-v -0.314620 0.555570 -0.771831
-v -0.349983 0.382683 -0.857207
-v -0.371760 0.195090 -0.909781
-v -0.379113 0.000000 -0.927533
-v -0.371760 -0.195090 -0.909781
-v -0.349983 -0.382683 -0.857207
-v -0.314620 -0.555570 -0.771831
-v -0.267028 -0.707107 -0.656935
-v -0.209038 -0.831470 -0.516934
-v -0.142877 -0.923880 -0.357207
-v -0.071088 -0.980785 -0.183893
-vt 0.999851 0.254364
-vt 1.000216 0.316861
-vt 0.947490 0.313317
-vt 1.001430 0.629353
-vt 1.001720 0.691851
-vt 0.931922 0.687175
-vt 0.999311 0.191868
-vt 0.951339 0.251099
-vt 1.001186 0.566854
-vt 0.934881 0.624892
-vt 1.007035 0.941813
-vt 0.425056 0.995097
-vt 0.688036 0.976661
-vt 0.998332 0.129375
-vt 0.957069 0.189020
-vt 1.000962 0.504356
-vt 0.937391 0.562576
-vt 1.003771 0.879336
-vt 0.883350 0.933568
-vt 1.000738 0.441858
-vt 0.939710 0.500246
-vt 1.002681 0.816844
-vt 0.911801 0.873194
-vt 1.000498 0.379359
-vt 0.942029 0.437916
-vt 1.002102 0.754348
-vt 0.922311 0.811468
-vt 0.944536 0.375600
-vt 0.928063 0.749391
-vt 0.967518 0.127291
-vt 0.914370 0.179467
-vt 0.874297 0.548708
-vt 0.793367 0.911832
-vt 0.878776 0.486849
-vt 0.830431 0.854878
-vt 0.883328 0.425001
-vt 0.847177 0.794812
-vt 0.888332 0.363217
-vt 0.857097 0.733741
-vt 0.894325 0.301577
-vt 0.864050 0.672239
-vt 0.902279 0.240220
-vt 0.869538 0.610526
-vt 0.673229 0.952622
-vt 0.840021 0.282844
-vt 0.799196 0.650007
-vt 0.851832 0.222629
-vt 0.806082 0.588829
-vt 0.647674 0.930190
-vt 0.936876 0.120264
-vt 0.870487 0.163782
-vt 0.812241 0.527510
-vt 0.728438 0.886032
-vt 0.818195 0.466151
-vt 0.761780 0.830244
-vt 0.824401 0.404841
-vt 0.779430 0.771193
-vt 0.831401 0.343685
-vt 0.790798 0.710891
-vt 0.764618 0.380134
-vt 0.718010 0.745282
-vt 0.772877 0.319381
-vt 0.728814 0.685077
-vt 0.783442 0.259124
-vt 0.737196 0.624350
-vt 0.798621 0.199874
-vt 0.744340 0.563358
-vt 0.707182 0.860354
-vt 0.906609 0.108594
-vt 0.824112 0.142946
-vt 0.750946 0.502250
-vt 0.757534 0.441139
-vt 0.702334 0.804422
-vt 0.876972 0.092772
-vt 0.772639 0.118425
-vt 0.689719 0.476662
-vt 0.628630 0.839481
-vt 0.696023 0.415406
-vt 0.648446 0.780984
-vt 0.703032 0.354290
-vt 0.660884 0.720963
-vt 0.711521 0.293471
-vt 0.669897 0.660249
-vt 0.722910 0.233237
-vt 0.677174 0.599187
-vt 0.740364 0.174247
-vt 0.683593 0.537954
-vt 0.619392 0.910335
-vt 0.589901 0.893857
-vt 0.656384 0.208905
-vt 0.618155 0.578027
-vt 0.673599 0.149088
-vt 0.623041 0.516276
-vt 0.559721 0.881431
-vt 0.848420 0.073445
-vt 0.710510 0.092518
-vt 0.654100 0.398336
-vt 0.584434 0.822825
-vt 0.597641 0.762372
-vt 0.638711 0.331180
-vt 0.615729 0.669357
-vt 0.646031 0.269806
-vt 0.571320 0.314734
-vt 0.606283 0.701204
-vt 0.552981 0.688148
-vt 0.575821 0.252624
-vt 0.551486 0.628681
-vt 0.582490 0.190702
-vt 0.562178 0.501443
-vt 0.594534 0.129251
-vt 0.627829 0.454510
-vt 0.529129 0.873575
-vt 0.822173 0.051396
-vt 0.626046 0.069542
-vt 0.568416 0.404557
-vt 0.541593 0.812161
-vt 0.548412 0.750252
-vt 0.498332 0.870625
-vt 0.803855 0.027548
-vt 0.507034 0.058187
-vt 0.564908 0.439180
-vt 0.501186 0.433146
-vt 0.499311 0.808132
-vt 0.501720 0.308149
-vt 0.499851 0.745636
-vt 0.500216 0.683139
-vt 0.502102 0.245652
-vt 0.548785 0.563632
-vt 0.500498 0.620641
-vt 0.502681 0.183156
-vt 0.500213 0.480106
-vt 0.503771 0.120664
-vt 0.500833 0.511381
-vt 0.450277 0.630514
-vt 0.411801 0.126807
-vt 0.439710 0.499754
-vt 0.383351 0.066432
-vt 0.437391 0.437424
-vt 0.457069 0.810979
-vt 0.925055 0.004903
-vt 1.188037 0.023339
-vt 0.500933 0.465124
-vt 0.433581 0.399732
-vt 0.451339 0.748901
-vt 0.431922 0.312826
-vt 0.447490 0.686683
-vt 0.428063 0.250609
-vt 0.422311 0.188532
-vt 0.351556 0.393216
-vt 0.394325 0.698423
-vt 0.357098 0.266259
-vt 0.347177 0.205188
-vt 0.454645 0.567651
-vt 0.385200 0.656262
-vt 0.330431 0.145123
-vt 0.378776 0.513151
-vt 0.293367 0.088168
-vt 0.374297 0.451292
-vt 0.467518 0.872709
-vt 0.414370 0.820533
-vt 0.188037 0.023339
-vt 0.173229 0.047378
-vt 0.402279 0.759780
-vt 0.228438 0.113968
-vt 0.312241 0.472490
-vt 0.436876 0.879736
-vt 0.370488 0.836218
-vt 0.147674 0.069810
-vt 0.306082 0.411171
-vt 0.351833 0.777370
-vt 0.364050 0.327761
-vt 0.340021 0.717156
-vt 0.290798 0.289109
-vt 0.331401 0.656315
-vt 0.279430 0.228807
-vt 0.383329 0.574999
-vt 0.261780 0.169756
-vt 0.318195 0.533849
-vt 0.218010 0.254718
-vt 0.324402 0.595159
-vt 0.264618 0.619866
-vt 0.202334 0.195578
-vt 0.257534 0.558861
-vt 0.175646 0.138926
-vt 0.250946 0.497750
-vt 0.406609 0.891406
-vt 0.376972 0.907228
-vt 0.119392 0.089665
-vt 0.244340 0.436642
-vt 0.298621 0.800125
-vt 0.299196 0.349993
-vt 0.237196 0.375650
-vt 0.283443 0.740876
-vt 0.228814 0.314923
-vt 0.272877 0.680619
-vt 0.177174 0.400813
-vt 0.222910 0.766763
-vt 0.169898 0.339751
-vt 0.211521 0.706529
-vt 0.160884 0.279037
-vt 0.203032 0.645710
-vt 0.148446 0.219016
-vt 0.128630 0.160519
-vt 0.189719 0.523338
-vt 0.290338 0.852691
-vt 0.272639 0.881575
-vt 0.089901 0.106143
-vt 0.183593 0.462046
-vt 0.084435 0.177175
-vt 0.196023 0.584594
-vt 0.127829 0.545490
-vt 0.348421 0.926554
-vt 0.210511 0.907482
-vt 0.059721 0.118569
-vt 0.123041 0.483724
-vt 0.240365 0.825753
-vt 0.173599 0.850912
-vt 0.118155 0.421973
-vt 0.156384 0.791095
-vt 0.112765 0.360300
-vt 0.146031 0.730194
-vt 0.106283 0.298796
-vt 0.138711 0.668820
-vt 0.097641 0.237628
-vt 0.132896 0.607213
-vt 0.052981 0.311852
-vt 0.071320 0.685266
-vt 0.048412 0.249748
-vt 0.067856 0.623066
-vt 0.041593 0.187839
-vt 0.064908 0.560821
-vt 0.322173 0.948604
-vt 0.126046 0.930458
-vt 0.029129 0.126425
-vt 0.062178 0.498557
-vt 0.094534 0.870749
-vt 0.059443 0.436293
-vt 0.082490 0.809298
-vt 0.056480 0.374049
-vt 0.075821 0.747376
-vt 0.486102 0.945947
-vt 0.995670 0.066893
-vt 1.173229 0.047378
-vt 1.147674 0.069810
-vt 1.119392 0.089665
-vt 1.089901 0.106143
-vt 1.059721 0.118569
-vt 0.303856 0.972452
-vt 1.029129 0.126425
-vt 0.000738 0.441858
-vt 0.002681 0.816844
-vt 0.002103 0.754348
-vt 0.000498 0.379359
-vt 0.001720 0.691851
-vt 1.048412 0.249748
-vt 1.052981 0.311852
-vt 0.001430 0.629353
-vt 1.041593 0.187839
-vt 0.001186 0.566854
-vt 0.007035 0.941813
-vt 0.000962 0.504356
-vt 0.003771 0.879336
-vt 1.383351 0.066432
-vt 0.000216 0.316861
-vn 0.000000 -0.825831 -0.563891
-vn 0.000000 -0.701041 -0.713095
-vn 0.272866 -0.701041 -0.658803
-vn 0.000000 0.192785 -0.981231
-vn 0.000000 0.378430 -0.925596
-vn 0.354198 0.378430 -0.855159
-vn 0.000000 -0.919523 -0.393017
-vn 0.215796 -0.825831 -0.520981
-vn 0.000000 0.000000 -1.000000
-vn 0.375500 0.192785 -0.906522
-vn 0.000000 0.919523 -0.393017
-vn -0.000519 0.997436 -0.071200
-vn 0.027406 0.997192 -0.069613
-vn 0.000000 -0.978362 -0.206793
-vn 0.150395 -0.919523 -0.363109
-vn 0.000000 -0.192785 -0.981231
-vn 0.382672 0.000000 -0.923856
-vn 0.000000 0.825831 -0.563891
-vn 0.150395 0.919523 -0.363109
-vn 0.000000 -0.378430 -0.925596
-vn 0.375500 -0.192785 -0.906522
-vn 0.000000 0.701041 -0.713095
-vn 0.215796 0.825831 -0.520981
-vn 0.000000 -0.550005 -0.835139
-vn 0.354198 -0.378430 -0.855159
-vn 0.000000 0.550005 -0.835139
-vn 0.272866 0.701041 -0.658803
-vn 0.319590 -0.550005 -0.771569
-vn 0.319590 0.550005 -0.771569
-vn 0.079134 -0.978362 -0.191046
-vn 0.277902 -0.919523 -0.277902
-vn 0.707083 0.000000 -0.707083
-vn 0.277902 0.919523 -0.277902
-vn 0.693838 -0.192785 -0.693838
-vn 0.398724 0.825831 -0.398724
-vn 0.654500 -0.378430 -0.654500
-vn 0.504227 0.701041 -0.504227
-vn 0.590533 -0.550005 -0.590533
-vn 0.590533 0.550005 -0.590533
-vn 0.504227 -0.701041 -0.504227
-vn 0.654500 0.378430 -0.654500
-vn 0.398724 -0.825831 -0.398724
-vn 0.693838 0.192785 -0.693838
-vn 0.055757 0.996734 -0.058199
-vn 0.658803 -0.701041 -0.272866
-vn 0.855159 0.378430 -0.354198
-vn 0.520981 -0.825831 -0.215796
-vn 0.906522 0.192785 -0.375500
-vn -0.236305 0.959014 -0.156285
-vn 0.146214 -0.978362 -0.146214
-vn 0.363109 -0.919523 -0.150395
-vn 0.923856 0.000000 -0.382672
-vn 0.011261 0.683889 -0.729453
-vn 0.906522 -0.192785 -0.375500
-vn 0.605701 0.653768 -0.453536
-vn 0.855159 -0.378430 -0.354198
-vn 0.658803 0.701041 -0.272866
-vn 0.771569 -0.550005 -0.319590
-vn 0.771569 0.550005 -0.319590
-vn 0.925596 -0.378430 0.000000
-vn 0.713095 0.701041 0.000000
-vn 0.835139 -0.550005 0.000000
-vn 0.835139 0.550005 0.000000
-vn 0.713095 -0.701041 0.000000
-vn 0.925596 0.378430 0.000000
-vn 0.563891 -0.825831 0.000000
-vn 0.981231 0.192785 0.000000
-vn 0.457015 0.878414 -0.139592
-vn 0.191046 -0.978362 -0.079134
-vn 0.393017 -0.919523 0.000000
-vn 1.000000 0.000000 0.000000
-vn 0.981231 -0.192785 0.000000
-vn 0.826655 0.536607 0.169225
-vn 0.206793 -0.978362 0.000000
-vn 0.363109 -0.919523 0.150395
-vn 0.918363 -0.013153 0.395428
-vn 0.332072 0.776086 0.536058
-vn 0.887234 -0.192480 0.419202
-vn 0.520981 0.825831 0.215796
-vn 0.853755 -0.365734 0.370556
-vn 0.661458 0.653645 0.367626
-vn 0.771569 -0.550005 0.319590
-vn 0.697836 0.595203 0.398389
-vn 0.658803 -0.701041 0.272866
-vn 0.855159 0.378430 0.354198
-vn 0.520981 -0.825831 0.215796
-vn 0.906522 0.192785 0.375500
-vn -0.493942 0.869381 -0.011963
-vn -0.170476 0.970946 0.167882
-vn 0.504227 -0.701041 0.504227
-vn 0.585894 0.507614 0.631642
-vn 0.398724 -0.825831 0.398724
-vn 0.693838 0.192785 0.693838
-vn 0.071383 0.994934 0.070467
-vn 0.191046 -0.978362 0.079134
-vn 0.277902 -0.919523 0.277902
-vn 0.742882 -0.188543 0.642293
-vn 0.277902 0.919523 0.277902
-vn 0.398724 0.825831 0.398724
-vn 0.673086 -0.270486 0.688314
-vn 0.604236 0.484725 0.632374
-vn 0.590533 -0.550005 0.590533
-vn 0.363536 -0.292184 0.884548
-vn 0.652760 0.351756 0.670919
-vn 0.377728 0.636097 0.672811
-vn 0.319590 -0.550005 0.771569
-vn 0.382183 0.480911 0.789056
-vn 0.272866 -0.701041 0.658803
-vn 0.561907 0.233131 0.793634
-vn 0.215796 -0.825831 0.520981
-vn 0.683676 -0.129032 0.718253
-vn 0.039155 0.994781 0.093997
-vn 0.146214 -0.978362 0.146214
-vn 0.150395 -0.919523 0.363109
-vn 0.489853 -0.255684 0.833430
-vn 0.150395 0.919523 0.363109
-vn 0.215796 0.825831 0.520981
-vn -0.000214 0.994781 0.101779
-vn 0.079134 -0.978362 0.191046
-vn 0.000000 -0.919523 0.393017
-vn 0.373913 -0.143284 0.916318
-vn 0.483200 0.406323 0.775475
-vn 0.000000 0.919523 0.393017
-vn 0.090335 -0.566515 0.819056
-vn 0.000000 0.825831 0.563891
-vn 0.001495 0.700217 0.713889
-vn 0.000000 -0.550005 0.835139
-vn 0.503006 0.524033 0.687246
-vn 0.164159 0.810419 0.562334
-vn 0.000000 -0.701041 0.713095
-vn 0.058321 -0.465743 0.882962
-vn 0.000000 -0.825831 0.563891
-vn 0.073977 0.415296 0.906644
-vn -0.589007 0.456130 0.667043
-vn -0.215796 -0.825831 0.520981
-vn -0.704520 0.368694 0.606342
-vn -0.150395 -0.919523 0.363109
-vn -0.530290 -0.262947 0.805994
-vn -0.150395 0.919523 0.363109
-vn 0.000000 -0.978362 0.206793
-vn -0.079134 -0.978362 0.191046
-vn 0.049959 0.476424 0.877773
-vn -0.661336 -0.128391 0.738975
-vn -0.215796 0.825831 0.520981
-vn -0.469863 -0.393567 0.790124
-vn -0.287149 0.689108 0.665304
-vn -0.319590 -0.550005 0.771569
-vn -0.272866 -0.701041 0.658803
-vn -0.673421 -0.193152 0.713553
-vn -0.604236 0.498520 0.621540
-vn -0.590533 -0.550005 0.590533
-vn -0.504227 -0.701041 0.504227
-vn -0.768883 0.370861 0.520829
-vn -0.544877 0.410474 0.731132
-vn -0.398724 -0.825831 0.398724
-vn -0.666066 0.221381 0.712241
-vn -0.277902 -0.919523 0.277902
-vn -0.671102 -0.151128 0.725761
-vn -0.038942 0.994964 0.092257
-vn -0.277902 0.919523 0.277902
-vn -0.146214 -0.978362 0.146214
-vn -0.398724 0.825831 0.398724
-vn -0.363109 -0.919523 0.150395
-vn -0.923856 0.000000 0.382672
-vn -0.069369 0.995270 0.067782
-vn -0.291696 0.836390 0.464003
-vn -0.191046 -0.978362 0.079134
-vn -0.897244 -0.193762 0.396680
-vn -0.520981 0.825831 0.215796
-vn -0.655873 -0.216712 0.723075
-vn -0.658803 0.701041 0.272866
-vn -0.771569 -0.550005 0.319590
-vn -0.740257 0.558123 0.374828
-vn -0.658803 -0.701041 0.272866
-vn -0.502091 0.528520 0.684500
-vn -0.520981 -0.825831 0.215796
-vn -0.906522 0.192785 0.375500
-vn -0.713095 -0.701041 0.000000
-vn -0.855159 0.378430 0.354198
-vn -0.925596 0.378430 0.000000
-vn -0.563891 -0.825831 0.000000
-vn -0.981231 0.192785 0.000000
-vn -0.393017 -0.919523 0.000000
-vn -1.000000 0.000000 0.000000
-vn -0.085879 0.995697 0.033967
-vn 0.169530 0.985382 0.015473
-vn -0.206793 -0.978362 0.000000
-vn -0.981231 -0.192785 0.000000
-vn -0.759606 0.649922 0.023621
-vn -0.855159 -0.378430 0.354198
-vn -0.925596 -0.378430 0.000000
-vn -0.713095 0.701041 0.000000
-vn -0.835139 -0.550005 0.000000
-vn -0.835139 0.550005 0.000000
-vn -0.855159 -0.378430 -0.354198
-vn -0.658803 0.701041 -0.272866
-vn -0.771569 -0.550005 -0.319590
-vn -0.771569 0.550005 -0.319590
-vn -0.658803 -0.701041 -0.272866
-vn -0.855159 0.378430 -0.354198
-vn -0.520981 -0.825831 -0.215796
-vn -0.363109 -0.919523 -0.150395
-vn -0.923856 0.000000 -0.382672
-vn -0.495224 0.845058 -0.201483
-vn -0.237465 0.770379 -0.591693
-vn -0.191046 -0.978362 -0.079134
-vn -0.906522 -0.192785 -0.375500
-vn -0.277902 -0.919523 -0.277902
-vn -0.906522 0.192785 -0.375500
-vn -0.707083 0.000000 -0.707083
-vn -0.073366 0.996765 -0.032228
-vn -0.277902 0.919523 -0.277902
-vn -0.146214 -0.978362 -0.146214
-vn -0.693838 -0.192785 -0.693838
-vn -0.520981 0.825831 -0.215796
-vn -0.398724 0.825831 -0.398724
-vn -0.654500 -0.378430 -0.654500
-vn -0.504227 0.701041 -0.504227
-vn -0.590533 -0.550005 -0.590533
-vn -0.590533 0.550005 -0.590533
-vn -0.504227 -0.701041 -0.504227
-vn -0.654500 0.378430 -0.654500
-vn -0.398724 -0.825831 -0.398724
-vn -0.693838 0.192785 -0.693838
-vn -0.272866 -0.701041 -0.658803
-vn -0.354198 0.378430 -0.855159
-vn -0.215796 -0.825831 -0.520981
-vn -0.375500 0.192785 -0.906522
-vn -0.150395 -0.919523 -0.363109
-vn -0.382672 0.000000 -0.923856
-vn -0.051729 0.997223 -0.053529
-vn -0.150395 0.919523 -0.363109
-vn -0.079134 -0.978362 -0.191046
-vn -0.375500 -0.192785 -0.906522
-vn -0.215796 0.825831 -0.520981
-vn -0.354198 -0.378430 -0.855159
-vn -0.272866 0.701041 -0.658803
-vn -0.319590 -0.550005 -0.771569
-vn -0.319590 0.550005 -0.771569
-vn 0.007691 0.999298 0.035981
-vn 0.000000 -0.999969 0.000000
-vn -0.026765 0.997467 -0.065828
-s 1
-f 13/1/1 12/2/2 27/3/3
-f 7/4/4 6/5/5 21/6/6
-f 14/7/7 13/1/1 28/8/8
-f 8/9/9 7/4/4 22/10/10
-f 2/11/11 1/12/12 16/13/13
-f 15/14/14 14/7/7 29/15/15
-f 9/16/16 8/9/9 23/17/17
-f 3/18/18 2/11/11 17/19/19
-f 10/20/20 9/16/16 24/21/21
-f 4/22/22 3/18/18 18/23/23
-f 11/24/24 10/20/20 25/25/25
-f 5/26/26 4/22/22 19/27/27
-f 12/2/2 11/24/24 26/28/28
-f 6/5/5 5/26/26 20/29/29
-f 30/30/30 29/15/15 45/31/31
-f 24/21/21 23/17/17 39/32/32
-f 18/23/23 17/19/19 33/33/33
-f 25/25/25 24/21/21 40/34/34
-f 19/27/27 18/23/23 34/35/35
-f 26/28/28 25/25/25 41/36/36
-f 20/29/29 19/27/27 35/37/37
-f 27/3/3 26/28/28 42/38/38
-f 21/6/6 20/29/29 36/39/39
-f 28/8/8 27/3/3 43/40/40
-f 22/10/10 21/6/6 37/41/41
-f 29/15/15 28/8/8 44/42/42
-f 23/17/17 22/10/10 38/43/43
-f 17/19/19 16/13/13 32/44/44
-f 44/42/42 43/40/40 58/45/45
-f 38/43/43 37/41/41 52/46/46
-f 45/31/31 44/42/42 59/47/47
-f 39/32/32 38/43/43 53/48/48
-f 33/33/33 32/44/44 47/49/49
-f 46/50/50 45/31/31 60/51/51
-f 40/34/34 39/32/32 54/52/52
-f 34/35/35 33/33/33 48/53/53
-f 41/36/36 40/34/34 55/54/54
-f 35/37/37 34/35/35 49/55/55
-f 42/38/38 41/36/36 56/56/56
-f 36/39/39 35/37/37 50/57/57
-f 43/40/40 42/38/38 57/58/58
-f 37/41/41 36/39/39 51/59/59
-f 57/58/58 56/56/56 71/60/60
-f 51/59/59 50/57/57 65/61/61
-f 58/45/45 57/58/58 72/62/62
-f 52/46/46 51/59/59 66/63/63
-f 59/47/47 58/45/45 73/64/64
-f 53/48/48 52/46/46 67/65/65
-f 60/51/51 59/47/47 74/66/66
-f 54/52/52 53/48/48 68/67/67
-f 48/53/53 47/49/49 63/68/68
-f 61/69/69 60/51/51 75/70/70
-f 55/54/54 54/52/52 69/71/71
-f 49/55/55 48/53/53 63/68/68
-f 56/56/56 55/54/54 70/72/72
-f 50/57/57 49/55/55 64/73/73
-f 76/74/74 75/70/70 90/75/75
-f 70/72/72 69/71/71 84/76/76
-f 64/73/73 63/68/68 78/77/77
-f 71/60/60 70/72/72 85/78/78
-f 65/61/61 64/73/73 79/79/79
-f 72/62/62 71/60/60 86/80/80
-f 66/63/63 65/61/61 80/81/81
-f 73/64/64 72/62/62 87/82/82
-f 67/65/65 66/63/63 81/83/83
-f 74/66/66 73/64/64 88/84/84
-f 68/67/67 67/65/65 82/85/85
-f 75/70/70 74/66/66 89/86/86
-f 69/71/71 68/67/67 83/87/87
-f 63/68/68 62/88/88 77/89/89
-f 89/86/86 88/84/84 103/90/90
-f 83/87/87 82/85/85 97/91/91
-f 90/75/75 89/86/86 104/92/92
-f 84/76/76 83/87/87 98/93/93
-f 78/77/77 77/89/89 92/94/94
-f 91/95/95 90/75/75 105/96/96
-f 85/78/78 84/76/76 100/97/97
-f 79/79/79 78/77/77 93/98/98
-f 86/80/80 85/78/78 100/97/97
-f 80/81/81 79/79/79 94/99/99
-f 87/82/82 86/80/80 101/100/100
-f 81/83/83 80/81/81 96/101/101
-f 88/84/84 87/82/82 102/102/102
-f 82/85/85 81/83/83 97/91/91
-f 102/102/102 101/100/100 116/103/103
-f 96/101/101 95/104/104 110/105/105
-f 103/90/90 102/102/102 117/106/106
-f 97/91/91 96/101/101 111/107/107
-f 104/92/92 103/90/90 118/108/108
-f 98/93/93 97/91/91 113/109/109
-f 105/96/96 104/92/92 119/110/110
-f 99/111/111 98/93/93 113/109/109
-f 93/98/98 92/94/94 107/112/112
-f 106/113/113 105/96/96 120/114/114
-f 100/97/97 99/111/111 115/115/115
-f 94/99/99 93/98/98 108/116/116
-f 101/100/100 100/97/97 115/115/115
-f 95/104/104 94/99/99 109/117/117
-f 108/116/116 107/112/112 122/118/118
-f 121/119/119 120/114/114 135/120/120
-f 115/115/115 114/121/121 129/122/122
-f 109/117/117 108/116/116 123/123/123
-f 116/103/103 115/115/115 131/124/124
-f 110/105/105 109/117/117 124/125/125
-f 117/106/106 116/103/103 131/124/124
-f 111/107/107 110/105/105 125/126/126
-f 118/108/108 117/106/106 132/127/127
-f 112/128/128 111/107/107 126/129/129
-f 119/110/110 118/108/108 133/130/130
-f 113/109/109 112/128/128 128/131/131
-f 120/114/114 119/110/110 134/132/132
-f 114/121/121 113/109/109 129/122/122
-f 127/133/133 126/129/129 141/134/134
-f 134/132/132 133/130/130 149/135/135
-f 128/131/131 127/133/133 143/136/136
-f 135/120/120 134/132/132 150/137/137
-f 129/122/122 128/131/131 144/138/138
-f 123/123/123 122/118/118 138/139/139
-f 136/140/140 135/120/120 151/141/141
-f 130/142/142 129/122/122 145/143/143
-f 124/125/125 123/123/123 139/144/144
-f 131/124/124 130/142/142 146/145/145
-f 125/126/126 124/125/125 140/146/146
-f 132/127/127 131/124/124 147/147/147
-f 126/129/129 125/126/126 140/146/146
-f 133/130/130 132/127/127 148/148/148
-f 146/145/145 145/143/143 160/149/149
-f 140/146/146 139/144/144 155/150/150
-f 147/147/147 146/145/145 162/151/151
-f 141/134/134 140/146/146 155/150/150
-f 148/148/148 147/147/147 163/152/152
-f 142/153/153 141/134/134 156/154/154
-f 149/135/135 148/148/148 164/155/155
-f 143/136/136 142/153/153 158/156/156
-f 150/137/137 149/135/135 165/157/157
-f 144/138/138 143/136/136 159/158/158
-f 138/139/139 137/159/159 153/160/160
-f 151/161/141 150/137/137 166/162/161
-f 145/143/143 144/138/138 160/149/149
-f 139/144/144 138/139/139 154/163/162
-f 165/157/157 164/155/155 180/164/163
-f 159/158/158 158/156/156 174/165/164
-f 153/160/160 152/166/165 168/167/166
-f 166/162/161 165/157/157 181/168/167
-f 160/149/149 159/158/158 175/169/168
-f 154/163/162 153/160/160 169/170/169
-f 161/171/170 160/149/149 175/169/168
-f 155/150/150 154/163/162 170/172/171
-f 162/151/151 161/171/170 177/173/172
-f 156/154/154 155/150/150 171/174/173
-f 163/152/152 162/151/151 178/175/174
-f 157/176/175 156/154/154 171/174/173
-f 164/155/155 163/152/152 179/177/176
-f 158/156/156 157/176/175 173/178/177
-f 178/175/174 177/173/172 193/179/178
-f 172/180/179 171/174/173 187/181/180
-f 179/177/176 178/175/174 194/182/181
-f 173/178/177 172/180/179 188/183/182
-f 180/164/163 179/177/176 195/184/183
-f 174/165/164 173/178/177 189/185/184
-f 168/167/166 167/186/185 182/187/186
-f 181/168/167 180/164/163 196/188/187
-f 175/169/168 174/165/164 190/189/188
-f 169/170/169 168/167/166 184/190/189
-f 176/191/190 175/169/168 191/192/191
-f 170/172/171 169/170/169 185/193/192
-f 177/173/172 176/191/190 192/194/193
-f 171/174/173 170/172/171 186/195/194
-f 191/192/191 190/189/188 206/196/195
-f 185/193/192 184/190/189 200/197/196
-f 192/194/193 191/192/191 207/198/197
-f 186/195/194 185/193/192 201/199/198
-f 193/179/178 192/194/193 208/200/199
-f 187/181/180 186/195/194 202/201/200
-f 194/182/181 193/179/178 209/202/201
-f 188/183/182 187/181/180 202/201/200
-f 195/184/183 194/182/181 210/203/202
-f 189/185/184 188/183/182 204/204/203
-f 183/205/204 182/187/186 198/206/205
-f 196/188/187 195/184/183 211/207/206
-f 190/189/188 189/185/184 205/208/207
-f 184/190/189 183/205/204 198/206/205
-f 210/203/202 209/202/201 226/209/208
-f 204/204/203 203/210/209 220/211/210
-f 198/206/205 197/212/211 214/213/212
-f 211/207/206 210/203/202 227/214/213
-f 205/208/207 204/204/203 221/215/214
-f 199/216/215 198/206/205 215/217/216
-f 206/196/195 205/208/207 222/218/217
-f 200/197/196 199/216/215 216/219/218
-f 207/198/197 206/196/195 223/220/219
-f 201/199/198 200/197/196 217/221/220
-f 208/200/199 207/198/197 224/222/221
-f 202/201/200 201/199/198 218/223/222
-f 209/202/201 208/200/199 225/224/223
-f 203/210/209 202/201/200 219/225/224
-f 224/222/221 223/220/219 239/226/225
-f 218/223/222 217/221/220 233/227/226
-f 225/224/223 224/222/221 240/228/227
-f 219/225/224 218/223/222 234/229/228
-f 226/209/208 225/224/223 241/230/229
-f 220/211/210 219/225/224 235/231/230
-f 214/213/212 213/232/231 229/233/232
-f 227/214/213 226/209/208 242/234/233
-f 221/215/214 220/211/210 236/235/234
-f 215/217/216 214/213/212 230/236/235
-f 222/218/217 221/215/214 237/237/236
-f 216/219/218 215/217/216 231/238/237
-f 223/220/219 222/218/217 238/239/238
-f 217/221/220 216/219/218 232/240/239
-f 1/12/12 212/241/240 16/13/13
-f 31/242/241 15/14/14 30/30/30
-f 31/242/241 30/30/30 46/50/50
-f 16/13/13 212/241/240 32/44/44
-f 32/44/44 212/241/240 47/49/49
-f 31/242/241 46/50/50 61/69/69
-f 47/49/49 212/241/240 62/88/88
-f 31/242/241 61/69/69 76/74/74
-f 31/242/241 76/74/74 91/95/95
-f 62/88/88 212/241/240 77/89/89
-f 77/89/89 212/241/240 92/94/94
-f 31/242/241 91/95/95 106/113/113
-f 92/94/94 212/241/240 107/112/112
-f 31/242/241 106/113/113 121/119/119
-f 31/242/241 121/119/119 136/140/140
-f 107/112/112 212/241/240 122/118/118
-f 122/118/118 212/241/240 137/159/159
-f 31/242/241 136/140/140 151/141/141
-f 137/159/159 212/241/240 152/166/165
-f 31/242/241 151/141/141 166/243/161
-f 31/242/241 166/243/161 181/244/167
-f 152/166/165 212/241/240 167/186/185
-f 167/186/185 212/241/240 182/187/186
-f 31/242/241 181/244/167 196/245/187
-f 31/242/241 196/245/187 211/246/206
-f 182/187/186 212/241/240 197/212/211
-f 31/242/241 211/246/206 227/247/213
-f 197/212/211 212/241/240 213/232/231
-f 213/232/231 212/241/240 228/248/242
-f 31/242/241 227/247/213 242/249/233
-f 31/242/241 242/249/233 15/14/14
-f 237/237/236 236/235/234 10/250/20
-f 231/238/237 230/236/235 4/251/22
-f 238/239/238 237/237/236 10/250/20
-f 232/240/239 231/238/237 5/252/26
-f 239/226/225 238/239/238 11/253/24
-f 233/227/226 232/240/239 6/254/5
-f 240/255/227 239/256/225 13/1/1
-f 234/229/228 233/227/226 7/257/4
-f 228/248/242 212/241/240 1/12/12
-f 241/258/229 240/255/227 14/7/7
-f 235/231/230 234/229/228 8/259/9
-f 229/233/232 228/248/242 2/260/11
-f 242/249/233 241/258/229 15/14/14
-f 236/235/234 235/231/230 9/261/16
-f 230/236/235 229/233/232 3/262/18
-f 28/8/8 13/1/1 27/3/3
-f 22/10/10 7/4/4 21/6/6
-f 29/15/15 14/7/7 28/8/8
-f 23/17/17 8/9/9 22/10/10
-f 17/19/19 2/11/11 16/13/13
-f 30/30/30 15/14/14 29/15/15
-f 24/21/21 9/16/16 23/17/17
-f 18/23/23 3/18/18 17/19/19
-f 25/25/25 10/20/20 24/21/21
-f 19/27/27 4/22/22 18/23/23
-f 26/28/28 11/24/24 25/25/25
-f 20/29/29 5/26/26 19/27/27
-f 27/3/3 12/2/2 26/28/28
-f 21/6/6 6/5/5 20/29/29
-f 46/50/50 30/30/30 45/31/31
-f 40/34/34 24/21/21 39/32/32
-f 34/35/35 18/23/23 33/33/33
-f 41/36/36 25/25/25 40/34/34
-f 35/37/37 19/27/27 34/35/35
-f 42/38/38 26/28/28 41/36/36
-f 36/39/39 20/29/29 35/37/37
-f 43/40/40 27/3/3 42/38/38
-f 37/41/41 21/6/6 36/39/39
-f 44/42/42 28/8/8 43/40/40
-f 38/43/43 22/10/10 37/41/41
-f 45/31/31 29/15/15 44/42/42
-f 39/32/32 23/17/17 38/43/43
-f 33/33/33 17/19/19 32/44/44
-f 59/47/47 44/42/42 58/45/45
-f 53/48/48 38/43/43 52/46/46
-f 60/51/51 45/31/31 59/47/47
-f 54/52/52 39/32/32 53/48/48
-f 48/53/53 33/33/33 47/49/49
-f 61/69/69 46/50/50 60/51/51
-f 55/54/54 40/34/34 54/52/52
-f 49/55/55 34/35/35 48/53/53
-f 56/56/56 41/36/36 55/54/54
-f 50/57/57 35/37/37 49/55/55
-f 57/58/58 42/38/38 56/56/56
-f 51/59/59 36/39/39 50/57/57
-f 58/45/45 43/40/40 57/58/58
-f 52/46/46 37/41/41 51/59/59
-f 72/62/62 57/58/58 71/60/60
-f 66/63/63 51/59/59 65/61/61
-f 73/64/64 58/45/45 72/62/62
-f 67/65/65 52/46/46 66/63/63
-f 74/66/66 59/47/47 73/64/64
-f 68/67/67 53/48/48 67/65/65
-f 75/70/70 60/51/51 74/66/66
-f 69/71/71 54/52/52 68/67/67
-f 47/49/49 62/88/88 63/68/68
-f 76/74/74 61/69/69 75/70/70
-f 70/72/72 55/54/54 69/71/71
-f 64/73/73 49/55/55 63/68/68
-f 71/60/60 56/56/56 70/72/72
-f 65/61/61 50/57/57 64/73/73
-f 91/95/95 76/74/74 90/75/75
-f 85/78/78 70/72/72 84/76/76
-f 79/79/79 64/73/73 78/77/77
-f 86/80/80 71/60/60 85/78/78
-f 80/81/81 65/61/61 79/79/79
-f 87/82/82 72/62/62 86/80/80
-f 81/83/83 66/63/63 80/81/81
-f 88/84/84 73/64/64 87/82/82
-f 82/85/85 67/65/65 81/83/83
-f 89/86/86 74/66/66 88/84/84
-f 83/87/87 68/67/67 82/85/85
-f 90/75/75 75/70/70 89/86/86
-f 84/76/76 69/71/71 83/87/87
-f 78/77/77 63/68/68 77/89/89
-f 104/92/92 89/86/86 103/90/90
-f 98/93/93 83/87/87 97/91/91
-f 105/96/96 90/75/75 104/92/92
-f 99/111/111 84/76/76 98/93/93
-f 93/98/98 78/77/77 92/94/94
-f 106/113/113 91/95/95 105/96/96
-f 84/76/76 99/111/111 100/97/97
-f 94/99/99 79/79/79 93/98/98
-f 101/100/100 86/80/80 100/97/97
-f 95/104/104 80/81/81 94/99/99
-f 102/102/102 87/82/82 101/100/100
-f 80/81/81 95/104/104 96/101/101
-f 103/90/90 88/84/84 102/102/102
-f 81/83/83 96/101/101 97/91/91
-f 117/106/106 102/102/102 116/103/103
-f 111/107/107 96/101/101 110/105/105
-f 118/108/108 103/90/90 117/106/106
-f 112/128/128 97/91/91 111/107/107
-f 119/110/110 104/92/92 118/108/108
-f 97/91/91 112/128/128 113/109/109
-f 120/114/114 105/96/96 119/110/110
-f 114/121/121 99/111/111 113/109/109
-f 108/116/116 93/98/98 107/112/112
-f 121/119/119 106/113/113 120/114/114
-f 99/111/111 114/121/121 115/115/115
-f 109/117/117 94/99/99 108/116/116
-f 116/103/103 101/100/100 115/115/115
-f 110/105/105 95/104/104 109/117/117
-f 123/123/123 108/116/116 122/118/118
-f 136/140/140 121/119/119 135/120/120
-f 130/142/142 115/115/115 129/122/122
-f 124/125/125 109/117/117 123/123/123
-f 115/115/115 130/142/142 131/124/124
-f 125/126/126 110/105/105 124/125/125
-f 132/127/127 117/106/106 131/124/124
-f 126/129/129 111/107/107 125/126/126
-f 133/130/130 118/108/108 132/127/127
-f 127/133/133 112/128/128 126/129/129
-f 134/132/132 119/110/110 133/130/130
-f 112/128/128 127/133/133 128/131/131
-f 135/120/120 120/114/114 134/132/132
-f 113/109/109 128/131/131 129/122/122
-f 142/153/153 127/133/133 141/134/134
-f 133/130/130 148/148/148 149/135/135
-f 127/133/133 142/153/153 143/136/136
-f 134/132/132 149/135/135 150/137/137
-f 128/131/131 143/136/136 144/138/138
-f 122/118/118 137/159/159 138/139/139
-f 135/120/120 150/263/137 151/141/141
-f 129/122/122 144/138/138 145/143/143
-f 123/123/123 138/139/139 139/144/144
-f 130/142/142 145/143/143 146/145/145
-f 124/125/125 139/144/144 140/146/146
-f 131/124/124 146/145/145 147/147/147
-f 141/134/134 126/129/129 140/146/146
-f 132/127/127 147/147/147 148/148/148
-f 161/171/170 146/145/145 160/149/149
-f 139/144/144 154/163/162 155/150/150
-f 146/145/145 161/171/170 162/151/151
-f 156/154/154 141/134/134 155/150/150
-f 147/147/147 162/151/151 163/152/152
-f 157/176/175 142/153/153 156/154/154
-f 148/148/148 163/152/152 164/155/155
-f 142/153/153 157/176/175 158/156/156
-f 149/135/135 164/155/155 165/157/157
-f 143/136/136 158/156/156 159/158/158
-f 137/159/159 152/166/165 153/160/160
-f 150/137/137 165/157/157 166/162/161
-f 144/138/138 159/158/158 160/149/149
-f 138/139/139 153/160/160 154/163/162
-f 164/155/155 179/177/176 180/164/163
-f 158/156/156 173/178/177 174/165/164
-f 152/166/165 167/186/185 168/167/166
-f 165/157/157 180/164/163 181/168/167
-f 159/158/158 174/165/164 175/169/168
-f 153/160/160 168/167/166 169/170/169
-f 176/191/190 161/171/170 175/169/168
-f 154/163/162 169/170/169 170/172/171
-f 161/171/170 176/191/190 177/173/172
-f 155/150/150 170/172/171 171/174/173
-f 162/151/151 177/173/172 178/175/174
-f 172/180/179 157/176/175 171/174/173
-f 163/152/152 178/175/174 179/177/176
-f 157/176/175 172/180/179 173/178/177
-f 177/173/172 192/194/193 193/179/178
-f 171/174/173 186/195/194 187/181/180
-f 178/175/174 193/179/178 194/182/181
-f 172/180/179 187/181/180 188/183/182
-f 179/177/176 194/182/181 195/184/183
-f 173/178/177 188/183/182 189/185/184
-f 183/205/204 168/167/166 182/187/186
-f 180/164/163 195/184/183 196/188/187
-f 174/165/164 189/185/184 190/189/188
-f 168/167/166 183/205/204 184/190/189
-f 175/169/168 190/189/188 191/192/191
-f 169/170/169 184/190/189 185/193/192
-f 176/191/190 191/192/191 192/194/193
-f 170/172/171 185/193/192 186/195/194
-f 190/189/188 205/208/207 206/196/195
-f 184/190/189 199/216/215 200/197/196
-f 191/192/191 206/196/195 207/198/197
-f 185/193/192 200/197/196 201/199/198
-f 192/194/193 207/198/197 208/200/199
-f 186/195/194 201/199/198 202/201/200
-f 193/179/178 208/200/199 209/202/201
-f 203/210/209 188/183/182 202/201/200
-f 194/182/181 209/202/201 210/203/202
-f 188/183/182 203/210/209 204/204/203
-f 182/187/186 197/212/211 198/206/205
-f 195/184/183 210/203/202 211/207/206
-f 189/185/184 204/204/203 205/208/207
-f 199/216/215 184/190/189 198/206/205
-f 209/202/201 225/224/223 226/209/208
-f 203/210/209 219/225/224 220/211/210
-f 197/212/211 213/232/231 214/213/212
-f 210/203/202 226/209/208 227/214/213
-f 204/204/203 220/211/210 221/215/214
-f 198/206/205 214/213/212 215/217/216
-f 205/208/207 221/215/214 222/218/217
-f 199/216/215 215/217/216 216/219/218
-f 206/196/195 222/218/217 223/220/219
-f 200/197/196 216/219/218 217/221/220
-f 207/198/197 223/220/219 224/222/221
-f 201/199/198 217/221/220 218/223/222
-f 208/200/199 224/222/221 225/224/223
-f 202/201/200 218/223/222 219/225/224
-f 223/220/219 238/239/238 239/226/225
-f 217/221/220 232/240/239 233/227/226
-f 224/222/221 239/226/225 240/228/227
-f 218/223/222 233/227/226 234/229/228
-f 225/224/223 240/228/227 241/230/229
-f 219/225/224 234/229/228 235/231/230
-f 213/232/231 228/248/242 229/233/232
-f 226/209/208 241/230/229 242/234/233
-f 220/211/210 235/231/230 236/235/234
-f 214/213/212 229/233/232 230/236/235
-f 221/215/214 236/235/234 237/237/236
-f 215/217/216 230/236/235 231/238/237
-f 222/218/217 237/237/236 238/239/238
-f 216/219/218 231/238/237 232/240/239
-f 236/235/234 9/261/16 10/250/20
-f 230/236/235 3/262/18 4/251/22
-f 11/253/24 238/239/238 10/250/20
-f 231/238/237 4/251/22 5/252/26
-f 12/264/2 239/226/225 11/253/24
-f 232/240/239 5/252/26 6/254/5
-f 239/256/225 12/2/2 13/1/1
-f 233/227/226 6/254/5 7/257/4
-f 240/255/227 13/1/1 14/7/7
-f 234/229/228 7/257/4 8/259/9
-f 228/248/242 1/12/12 2/260/11
-f 241/258/229 14/7/7 15/14/14
-f 235/231/230 8/259/9 9/261/16
-f 229/233/232 2/260/11 3/262/18
diff --git a/examples/qmlmaps/doc/src/qmlmaps.qdoc b/examples/qmlmaps/doc/src/qmlmaps.qdoc
deleted file mode 100644
index f27dc126..00000000
--- a/examples/qmlmaps/doc/src/qmlmaps.qdoc
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-/*!
- \example qmlmaps
- \title Qt Quick 2 Maps Example
-
- The Qt Quick 2 maps example shows how to make a simple maps visualization using Q3DMaps using Qt
- Quick 2.
-
- \image qmlmaps-example.png
-
- TODO
-*/
diff --git a/examples/qmlmaps/floorplan.jpg b/examples/qmlmaps/floorplan.jpg
deleted file mode 100644
index 578d8252..00000000
--- a/examples/qmlmaps/floorplan.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/qmlmaps/main.cpp b/examples/qmlmaps/main.cpp
deleted file mode 100644
index b58e66f8..00000000
--- a/examples/qmlmaps/main.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include <QtGui/QGuiApplication>
-#include "qtquick2applicationviewer.h"
-#ifdef Q_OS_ANDROID
-#include <QDir>
-#include <QQmlEngine>
-#endif
-#include <QDebug>
-
-int main(int argc, char *argv[])
-{
- QGuiApplication app(argc, argv);
-
- QtQuick2ApplicationViewer viewer;
-#ifdef Q_OS_ANDROID
- viewer.addImportPath(QString::fromLatin1("assets:/qml"));
- viewer.engine()->addPluginPath(QString::fromLatin1("%1/../%2").arg(QDir::homePath(),
- QString::fromLatin1("lib")));
-#else
- viewer.addImportPath(QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(),
- QString::fromLatin1("qml")));
-#endif
- viewer.setSource(QUrl("qrc:/qml/main.qml"));
- viewer.setResizeMode(QQuickView::SizeRootObjectToView);
- viewer.show();
-
- return app.exec();
-}
diff --git a/examples/qmlmaps/qml/qmlmaps/main.qml b/examples/qmlmaps/qml/qmlmaps/main.qml
deleted file mode 100644
index 9a8fa93b..00000000
--- a/examples/qmlmaps/qml/qmlmaps/main.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-import QtQuick 2.1
-import QtQuick.Controls 1.0
-import com.digia.QtDataVis3D 1.0
-
-Item {
- id: mainview
- width: 800
- height: 500
- visible: true
- //title: "Noise levels from construction site"
-
- Item {
- id: dataView
- width: parent.width
- height: parent.height - shadowToggle.height
- anchors.bottom: parent.bottom
-
- Image {
- id: testimage
- source: "qrc:/images/floorplan.jpg"
- visible: false
- }
-
- MapDataMapping {
- id: mapMapping
- labelRole: "label"
- valueRole: "value"
- xPosRole: "xPos"
- yPosRole: "yPos"
- }
-
- ListModel {
- id: dataModel
- ListElement{ label: "dB"; value: 76; xPos: 95.0; yPos: 490.0 }
- ListElement{ label: "dB"; value: 88; xPos: 185.0; yPos: 105.0 }
- ListElement{ label: "dB"; value: 85; xPos: 700.0; yPos: 465.0 }
- ListElement{ label: "dB"; value: 92; xPos: 505.0; yPos: 225.0 }
- }
-
- Maps3D {
- id: testmap
- width: dataView.width
- height: dataView.height
- fontSize: 300.0
- mapping: mapMapping
-
- Component.onCompleted: {
- console.log("testmap complete");
- console.log(testimage);
- console.log(testimage.sourceSize);
- setBarSpecs(Qt.vector3d(10.0, 10.0, 10.0));
- setAreaSpecs(Qt.rect(0, 0, testimage.sourceSize.width, testimage.sourceSize.height),
- testimage);
- //setImage(testimage);
- setImage(":/images/floorplan.jpg");
- shadowQuality = Maps3D.ShadowNone
- selectionMode = Maps3D.ModeBar
- labelTransparency = Maps3D.TransparencyNoBackground//.TransparencyFromTheme
- data = dataModel
- }
- }
- }
-
- Component.onCompleted: {
- console.log("mainview complete");
- }
-
- Rectangle {
- id: shadowToggle
- color: "#FFFFFF"
- x: 0
- y: 0
- width: parent.width
- height: 60
-
- TextArea {
- id: buttonText
- text: "Toggle Shadows"
- anchors.fill: parent
- textColor: "#000000"
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (testmap.shadowQuality === Maps3D.ShadowNone) {
- testmap.shadowQuality = Maps3D.ShadowLow;
- buttonText.textColor = "#999999";
- } else {
- testmap.shadowQuality = Maps3D.ShadowNone;
- buttonText.textColor = "#000000";
- }
- }
- }
- }
-}
diff --git a/examples/qmlmaps/qmlmaps.desktop b/examples/qmlmaps/qmlmaps.desktop
deleted file mode 100644
index 25959510..00000000
--- a/examples/qmlmaps/qmlmaps.desktop
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=qmlmaps
-Exec=/opt/qmlmaps/bin/qmlmaps
-Icon=qmlmaps64
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
diff --git a/examples/qmlmaps/qmlmaps.pro b/examples/qmlmaps/qmlmaps.pro
deleted file mode 100644
index 44963d48..00000000
--- a/examples/qmlmaps/qmlmaps.pro
+++ /dev/null
@@ -1,29 +0,0 @@
-!include( ../examples.pri ) {
- error( "Couldn't find the examples.pri file!" )
-}
-
-# Add more folders to ship with the application, here
-folder_01.source = qml/qmlmaps
-folder_01.target = qml
-DEPLOYMENTFOLDERS = folder_01
-
-# Additional import path used to resolve QML modules in Creator's code model
-QML_IMPORT_PATH =
-
-# If your application uses the Qt Mobility libraries, uncomment the following
-# lines and add the respective components to the MOBILITY variable.
-# CONFIG += mobility
-# MOBILITY +=
-
-# The .cpp file which was generated for your project. Feel free to hack it.
-SOURCES += main.cpp
-
-# Installation path
-# target.path =
-
-# Please do not modify the following two lines. Required for deployment.
-include(qtquick2applicationviewer/qtquick2applicationviewer.pri)
-qtcAddDeployment()
-
-RESOURCES += \
- qmlmaps.qrc
diff --git a/examples/qmlmaps/qmlmaps.qrc b/examples/qmlmaps/qmlmaps.qrc
deleted file mode 100644
index 81f1f83c..00000000
--- a/examples/qmlmaps/qmlmaps.qrc
+++ /dev/null
@@ -1,8 +0,0 @@
-<RCC>
- <qresource prefix="/images">
- <file>floorplan.jpg</file>
- </qresource>
- <qresource prefix="/qml">
- <file alias="main.qml">qml/qmlmaps/main.qml</file>
- </qresource>
-</RCC>
diff --git a/examples/qmlmaps/qmlmaps64.png b/examples/qmlmaps/qmlmaps64.png
deleted file mode 100644
index 707d5c4e..00000000
--- a/examples/qmlmaps/qmlmaps64.png
+++ /dev/null
Binary files differ
diff --git a/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.cpp
deleted file mode 100644
index 10709d7a..00000000
--- a/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// checksum 0x4f6f version 0x90005
-/*
- This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
- QtQuick2ApplicationViewer is a convenience class containing mobile device specific
- code such as screen orientation handling. Also QML paths and debugging are
- handled here.
- It is recommended not to modify this file, since newer versions of Qt Creator
- may offer an updated version of it.
-*/
-
-#include "qtquick2applicationviewer.h"
-
-#include <QtCore/QCoreApplication>
-#include <QtCore/QDir>
-#include <QtQml/QQmlEngine>
-
-class QtQuick2ApplicationViewerPrivate
-{
- QString mainQmlFile;
- friend class QtQuick2ApplicationViewer;
- static QString adjustPath(const QString &path);
-};
-
-QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path)
-{
-#if defined(Q_OS_MAC)
- if (!QDir::isAbsolutePath(path))
- return QString::fromLatin1("%1/../Resources/%2")
- .arg(QCoreApplication::applicationDirPath(), path);
-#elif defined(Q_OS_BLACKBERRY)
- if (!QDir::isAbsolutePath(path))
- return QString::fromLatin1("app/native/%1").arg(path);
-#elif !defined(Q_OS_ANDROID)
- QString pathInInstallDir =
- QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
- if (QFileInfo(pathInInstallDir).exists())
- return pathInInstallDir;
- pathInInstallDir =
- QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path);
- if (QFileInfo(pathInInstallDir).exists())
- return pathInInstallDir;
-#endif
- return path;
-}
-
-QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent)
- : QQuickView(parent)
- , d(new QtQuick2ApplicationViewerPrivate())
-{
- connect(engine(), SIGNAL(quit()), SLOT(close()));
- setResizeMode(QQuickView::SizeRootObjectToView);
-}
-
-QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer()
-{
- delete d;
-}
-
-void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file)
-{
- d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file);
-#ifdef Q_OS_ANDROID
- setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile));
-#else
- setSource(QUrl::fromLocalFile(d->mainQmlFile));
-#endif
-}
-
-void QtQuick2ApplicationViewer::addImportPath(const QString &path)
-{
- engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path));
-}
-
-void QtQuick2ApplicationViewer::showExpanded()
-{
-#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX)
- showFullScreen();
-#else
- show();
-#endif
-}
diff --git a/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.h b/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.h
deleted file mode 100644
index cf66f140..00000000
--- a/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// checksum 0xfde6 version 0x90005
-/*
- This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
- QtQuick2ApplicationViewer is a convenience class containing mobile device specific
- code such as screen orientation handling. Also QML paths and debugging are
- handled here.
- It is recommended not to modify this file, since newer versions of Qt Creator
- may offer an updated version of it.
-*/
-
-#ifndef QTQUICK2APPLICATIONVIEWER_H
-#define QTQUICK2APPLICATIONVIEWER_H
-
-#include <QtQuick/QQuickView>
-
-class QtQuick2ApplicationViewer : public QQuickView
-{
- Q_OBJECT
-
-public:
- explicit QtQuick2ApplicationViewer(QWindow *parent = 0);
- virtual ~QtQuick2ApplicationViewer();
-
- void setMainQmlFile(const QString &file);
- void addImportPath(const QString &path);
-
- void showExpanded();
-
-private:
- class QtQuick2ApplicationViewerPrivate *d;
-};
-
-#endif // QTQUICK2APPLICATIONVIEWER_H
diff --git a/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.pri b/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.pri
deleted file mode 100644
index e5f7990f..00000000
--- a/examples/qmlmaps/qtquick2applicationviewer/qtquick2applicationviewer.pri
+++ /dev/null
@@ -1,180 +0,0 @@
-# checksum 0x7b0d version 0x90005
-# This file was generated by the Qt Quick 2 Application wizard of Qt Creator.
-# The code below adds the QtQuick2ApplicationViewer to the project and handles
-# the activation of QML debugging.
-# It is recommended not to modify this file, since newer versions of Qt Creator
-# may offer an updated version of it.
-
-QT += qml quick
-
-SOURCES += $$PWD/qtquick2applicationviewer.cpp
-HEADERS += $$PWD/qtquick2applicationviewer.h
-INCLUDEPATH += $$PWD
-# This file was generated by an application wizard of Qt Creator.
-# The code below handles deployment to Android and Maemo, aswell as copying
-# of the application data to shadow build directories on desktop.
-# It is recommended not to modify this file, since newer versions of Qt Creator
-# may offer an updated version of it.
-
-defineTest(qtcAddDeployment) {
-for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- greaterThan(QT_MAJOR_VERSION, 4) {
- itemsources = $${item}.files
- } else {
- itemsources = $${item}.sources
- }
- $$itemsources = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath= $$eval($${deploymentfolder}.target)
- export($$itemsources)
- export($$itempath)
- DEPLOYMENT += $$item
-}
-
-MAINPROFILEPWD = $$PWD
-
-android-no-sdk {
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemfiles = $${item}.files
- $$itemfiles = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath = /data/user/qt/$$eval($${deploymentfolder}.target)
- export($$itemfiles)
- export($$itempath)
- INSTALLS += $$item
- }
-
- target.path = /data/user/qt
-
- export(target.path)
- INSTALLS += target
-} else:android {
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemfiles = $${item}.files
- $$itemfiles = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath = /assets/$$eval($${deploymentfolder}.target)
- export($$itemfiles)
- export($$itempath)
- INSTALLS += $$item
- }
-
- x86 {
- target.path = /libs/x86
- } else: armeabi-v7a {
- target.path = /libs/armeabi-v7a
- } else {
- target.path = /libs/armeabi
- }
-
- export(target.path)
- INSTALLS += target
-} else:win32 {
- copyCommand =
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
- source = $$replace(source, /, \\)
- sourcePathSegments = $$split(source, \\)
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
- target = $$replace(target, /, \\)
- target ~= s,\\\\\\.?\\\\,\\,
- !isEqual(source,$$target) {
- !isEmpty(copyCommand):copyCommand += &&
- isEqual(QMAKE_DIR_SEP, \\) {
- copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
- } else {
- source = $$replace(source, \\\\, /)
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
- target = $$replace(target, \\\\, /)
- copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
- }
- }
- }
- !isEmpty(copyCommand) {
- copyCommand = @echo Copying application data... && $$copyCommand
- copydeploymentfolders.commands = $$copyCommand
- first.depends = $(first) copydeploymentfolders
- export(first.depends)
- export(copydeploymentfolders.commands)
- QMAKE_EXTRA_TARGETS += first copydeploymentfolders
- }
-} else:unix {
- maemo5 {
- desktopfile.files = $${TARGET}.desktop
- desktopfile.path = /usr/share/applications/hildon
- icon.files = $${TARGET}64.png
- icon.path = /usr/share/icons/hicolor/64x64/apps
- } else:!isEmpty(MEEGO_VERSION_MAJOR) {
- desktopfile.files = $${TARGET}_harmattan.desktop
- desktopfile.path = /usr/share/applications
- icon.files = $${TARGET}80.png
- icon.path = /usr/share/icons/hicolor/80x80/apps
- } else { # Assumed to be a Desktop Unix
- copyCommand =
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
- source = $$replace(source, \\\\, /)
- macx {
- target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
- } else {
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
- }
- target = $$replace(target, \\\\, /)
- sourcePathSegments = $$split(source, /)
- targetFullPath = $$target/$$last(sourcePathSegments)
- targetFullPath ~= s,/\\.?/,/,
- !isEqual(source,$$targetFullPath) {
- !isEmpty(copyCommand):copyCommand += &&
- copyCommand += $(MKDIR) \"$$target\"
- copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
- }
- }
- !isEmpty(copyCommand) {
- copyCommand = @echo Copying application data... && $$copyCommand
- copydeploymentfolders.commands = $$copyCommand
- first.depends = $(first) copydeploymentfolders
- export(first.depends)
- export(copydeploymentfolders.commands)
- QMAKE_EXTRA_TARGETS += first copydeploymentfolders
- }
- }
- !isEmpty(target.path) {
- installPrefix = $${target.path}
- } else {
- installPrefix = /opt/$${TARGET}
- }
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemfiles = $${item}.files
- $$itemfiles = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
- export($$itemfiles)
- export($$itempath)
- INSTALLS += $$item
- }
-
- !isEmpty(desktopfile.path) {
- export(icon.files)
- export(icon.path)
- export(desktopfile.files)
- export(desktopfile.path)
- INSTALLS += icon desktopfile
- }
-
- isEmpty(target.path) {
- target.path = $${installPrefix}/bin
- export(target.path)
- }
- INSTALLS += target
-}
-
-export (ICON)
-export (INSTALLS)
-export (DEPLOYMENT)
-export (LIBS)
-export (QMAKE_EXTRA_TARGETS)
-}
diff --git a/src/datavis3d/data/data.pri b/src/datavis3d/data/data.pri
index 873b9a0e..312a8658 100644
--- a/src/datavis3d/data/data.pri
+++ b/src/datavis3d/data/data.pri
@@ -12,20 +12,11 @@ HEADERS += \
$$PWD/qitemmodelbardatamapping_p.h \
$$PWD/qitemmodelbardataproxy_p.h \
$$PWD/qitemmodelbardataproxy.h \
- $$PWD/maprenderitem_p.h \
- $$PWD/qmapdataitem.h \
- $$PWD/qmapdataitem_p.h \
- $$PWD/qmapdataproxy.h \
- $$PWD/qmapdataproxy_p.h \
$$PWD/scatterrenderitem_p.h \
$$PWD/qscatterdataitem.h \
$$PWD/qscatterdataitem_p.h \
$$PWD/qscatterdataproxy.h \
$$PWD/qscatterdataproxy_p.h \
- $$PWD/qitemmodelmapdatamapping.h \
- $$PWD/qitemmodelmapdatamapping_p.h \
- $$PWD/qitemmodelmapdataproxy.h \
- $$PWD/qitemmodelmapdataproxy_p.h \
$$PWD/qitemmodelscatterdatamapping.h \
$$PWD/qitemmodelscatterdatamapping_p.h \
$$PWD/qitemmodelscatterdataproxy.h \
@@ -45,14 +36,9 @@ SOURCES += \
$$PWD/qbardataitem.cpp \
$$PWD/qitemmodelbardatamapping.cpp \
$$PWD/qitemmodelbardataproxy.cpp \
- $$PWD/maprenderitem.cpp \
- $$PWD/qmapdataitem.cpp \
- $$PWD/qmapdataproxy.cpp \
$$PWD/scatterrenderitem.cpp \
$$PWD/qscatterdataitem.cpp \
$$PWD/qscatterdataproxy.cpp \
- $$PWD/qitemmodelmapdatamapping.cpp \
- $$PWD/qitemmodelmapdataproxy.cpp \
$$PWD/qitemmodelscatterdatamapping.cpp \
$$PWD/qitemmodelscatterdataproxy.cpp \
$$PWD/abstractitemmodelhandler.cpp \
diff --git a/src/datavis3d/data/maprenderitem.cpp b/src/datavis3d/data/maprenderitem.cpp
deleted file mode 100644
index d737e6f6..00000000
--- a/src/datavis3d/data/maprenderitem.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "maprenderitem_p.h"
-#include "maps3drenderer_p.h" // TODO remove when maps refactored
-#include "maps3dcontroller_p.h" // TODO should be renderer
-#include "qmapdataproxy.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-MapRenderItem::MapRenderItem()
- : BarRenderItem()
-{
-}
-
-MapRenderItem::MapRenderItem(const MapRenderItem &other)
- : BarRenderItem(other)
-{
- m_renderer = other.m_renderer;
- m_mapPosition = other.m_mapPosition;
- m_itemLabel = other.m_itemLabel;
-}
-
-MapRenderItem::~MapRenderItem()
-{
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/data/maprenderitem_p.h b/src/datavis3d/data/maprenderitem_p.h
deleted file mode 100644
index f8f877af..00000000
--- a/src/datavis3d/data/maprenderitem_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef MAPRENDERITEM_P_H
-#define MAPRENDERITEM_P_H
-
-#include "barrenderitem_p.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class Maps3DRenderer;
-class Maps3DController; // TODO remove when maps refactored
-
-class MapRenderItem : public BarRenderItem
-{
-public:
- MapRenderItem();
- MapRenderItem(const MapRenderItem &other);
- virtual ~MapRenderItem();
-
- inline const QPointF &mapPosition() const { return m_mapPosition; }
- inline void setMapPosition(const QPointF &pos) { m_mapPosition = pos; }
-
- inline const QString &itemLabel() const { return m_itemLabel; }
- inline void setItemLabel(const QString &label) { m_itemLabel = label; }
-
- // TODO should be in abstract, but currently there is no abstract renderer
- // TODO change when maps refactored
- inline void setRenderer(Maps3DController *renderer) { m_renderer = renderer; }
-
-protected:
- Maps3DController *m_renderer;
- QPointF m_mapPosition;
- QString m_itemLabel; // from QMapDataItem::label() - unformatted item label
-
- friend class QMapDataItem;
-};
-
-typedef QVector<MapRenderItem> MapRenderItemArray;
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qabstractdataproxy.h b/src/datavis3d/data/qabstractdataproxy.h
index 99b28e1f..ccf66b20 100644
--- a/src/datavis3d/data/qabstractdataproxy.h
+++ b/src/datavis3d/data/qabstractdataproxy.h
@@ -37,9 +37,8 @@ public:
enum DataType {
DataTypeNone = 0,
DataTypeBar = 1,
- DataTypeMap = 2,
- DataTypeScatter = 4,
- DataTypeSurface = 8
+ DataTypeScatter = 2,
+ DataTypeSurface = 4
};
protected:
diff --git a/src/datavis3d/data/qitemmodelmapdatamapping.cpp b/src/datavis3d/data/qitemmodelmapdatamapping.cpp
deleted file mode 100644
index bdc23b7f..00000000
--- a/src/datavis3d/data/qitemmodelmapdatamapping.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "qitemmodelmapdatamapping_p.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-/*!
- * \class QItemModelMapDataMapping
- * \inmodule QtDataVis3D
- * \brief Data model mapping for Q3DMaps.
- * \since 1.0.0
- *
- * QItemModelMapDataMapping is used to define roles for mapping data in QAbstractItemModel to
- * Q3DMaps.
- *
- * TO BE CHECKED (add more explanations and/or example)
- *
- * \sa QItemModelMapDataProxy
- */
-
-/*!
- * Constructs QItemModelMapDataMapping with the given \a parent.
- */
-QItemModelMapDataMapping::QItemModelMapDataMapping(QObject *parent)
- : QObject(parent),
- d_ptr(new QItemModelMapDataMappingPrivate(this))
-{
-}
-
-/*!
- * Constructs QItemModelMapDataMapping with \a labelRole, \a xPosRole, \a zPosRole,
- * \a valueRole and the given \a parent.
- */
-QItemModelMapDataMapping::QItemModelMapDataMapping(const QString &labelRole,
- const QString &xPosRole,
- const QString &zPosRole,
- const QString &valueRole,
- QObject *parent)
- : QObject(parent),
- d_ptr(new QItemModelMapDataMappingPrivate(this))
-{
- d_ptr->m_labelRole = labelRole;
- d_ptr->m_xPosRole = xPosRole;
- d_ptr->m_zPosRole = zPosRole;
- d_ptr->m_valueRole = valueRole;
-}
-
-/*!
- * Destroys QItemModelMapDataMapping.
- */
-QItemModelMapDataMapping::~QItemModelMapDataMapping()
-{
-}
-
-/*!
- * \property QItemModelMapDataMapping::labelRole
- *
- * Defines the label role for the mapping.
- */
-void QItemModelMapDataMapping::setLabelRole(const QString &role)
-{
- d_ptr->m_labelRole = role;
- emit mappingChanged();
-}
-
-QString QItemModelMapDataMapping::labelRole() const
-{
- return d_ptr->m_labelRole;
-}
-
-/*!
- * \property QItemModelMapDataMapping::xPosRole
- *
- * Defines the x position role for the mapping.
- */
-void QItemModelMapDataMapping::setXPosRole(const QString &role)
-{
- d_ptr->m_xPosRole = role;
- emit mappingChanged();
-}
-
-QString QItemModelMapDataMapping::xPosRole() const
-{
- return d_ptr->m_xPosRole;
-}
-
-/*!
- * \property QItemModelMapDataMapping::zPosRole
- *
- * Defines the z position role for the mapping.
- */
-void QItemModelMapDataMapping::setZPosRole(const QString &role)
-{
- d_ptr->m_zPosRole = role;
- emit mappingChanged();
-}
-
-QString QItemModelMapDataMapping::zPosRole() const
-{
- return d_ptr->m_zPosRole;
-}
-
-/*!
- * \property QItemModelMapDataMapping::valueRole
- *
- * Defines the value role for the mapping.
- */
-void QItemModelMapDataMapping::setValueRole(const QString &role)
-{
- d_ptr->m_valueRole = role;
- emit mappingChanged();
-}
-
-QString QItemModelMapDataMapping::valueRole() const
-{
- return d_ptr->m_valueRole;
-}
-
-
-/*!
- * Changes \a labelRole, \a xPosRole, \a zPosRole and \a valueRole to the mapping.
- *
- * Emits mappingChanged() signal after remapping.
- */
-void QItemModelMapDataMapping::remap(const QString &labelRole, const QString &xPosRole,
- const QString &zPosRole, const QString &valueRole)
-{
- d_ptr->m_labelRole = labelRole;
- d_ptr->m_xPosRole = xPosRole;
- d_ptr->m_zPosRole = zPosRole;
- d_ptr->m_valueRole = valueRole;
-
- emit mappingChanged();
-}
-
-// QItemModelMapDataMappingPrivate
-
-QItemModelMapDataMappingPrivate::QItemModelMapDataMappingPrivate(QItemModelMapDataMapping *q)
- : QObject(0),
- q_ptr(q)
-{
-}
-
-QItemModelMapDataMappingPrivate::~QItemModelMapDataMappingPrivate()
-{
-}
-
-QT_DATAVIS3D_END_NAMESPACE
-
diff --git a/src/datavis3d/data/qitemmodelmapdatamapping.h b/src/datavis3d/data/qitemmodelmapdatamapping.h
deleted file mode 100644
index 6c6acdae..00000000
--- a/src/datavis3d/data/qitemmodelmapdatamapping.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#ifndef QITEMMODELMAPDATAMAPPING_H
-#define QITEMMODELMAPDATAMAPPING_H
-
-#include <QtDataVis3D/qdatavis3denums.h>
-#include <QStringList>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QItemModelMapDataMappingPrivate;
-
-class QT_DATAVIS3D_EXPORT QItemModelMapDataMapping : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString labelRole READ labelRole WRITE setLabelRole NOTIFY mappingChanged)
- Q_PROPERTY(QString xPosRole READ xPosRole WRITE setXPosRole NOTIFY mappingChanged)
- Q_PROPERTY(QString zPosRole READ zPosRole WRITE setZPosRole NOTIFY mappingChanged)
- Q_PROPERTY(QString valueRole READ valueRole WRITE setValueRole NOTIFY mappingChanged)
-
-public:
- explicit QItemModelMapDataMapping(QObject *parent = 0);
- QItemModelMapDataMapping(const QString &labelRole, const QString &xPosRole,
- const QString &zPosRole, const QString &valueRole,
- QObject *parent = 0);
- virtual ~QItemModelMapDataMapping();
-
- void setLabelRole(const QString &role);
- QString labelRole() const;
- void setXPosRole(const QString &role);
- QString xPosRole() const;
- void setZPosRole(const QString &role);
- QString zPosRole() const;
- void setValueRole(const QString &role);
- QString valueRole() const;
-
- void remap(const QString &labelRole, const QString &xPosRole,
- const QString &zPosRole, const QString &valueRole);
-
-signals:
- void mappingChanged();
-
-private:
- Q_DISABLE_COPY(QItemModelMapDataMapping)
- QScopedPointer<QItemModelMapDataMappingPrivate> d_ptr;
-};
-
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qitemmodelmapdatamapping_p.h b/src/datavis3d/data/qitemmodelmapdatamapping_p.h
deleted file mode 100644
index c289f565..00000000
--- a/src/datavis3d/data/qitemmodelmapdatamapping_p.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#include "qitemmodelmapdatamapping.h"
-
-#ifndef QITEMMODELMAPDATAMAPPING_P_H
-#define QITEMMODELMAPDATAMAPPING_P_H
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QItemModelMapDataMappingPrivate : public QObject
-{
- Q_OBJECT
-public:
- QItemModelMapDataMappingPrivate(QItemModelMapDataMapping *q);
- virtual ~QItemModelMapDataMappingPrivate();
-
-private:
- QString m_labelRole;
- QString m_xPosRole;
- QString m_zPosRole;
- QString m_valueRole;
-
- QItemModelMapDataMapping *q_ptr;
-
- friend class QItemModelMapDataMapping;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qitemmodelmapdataproxy.cpp b/src/datavis3d/data/qitemmodelmapdataproxy.cpp
deleted file mode 100644
index 6288d979..00000000
--- a/src/datavis3d/data/qitemmodelmapdataproxy.cpp
+++ /dev/null
@@ -1,347 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "qitemmodelmapdataproxy_p.h"
-#include <QTimer>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-/*!
- * \class QItemModelMapDataProxy
- * \inmodule QtDataVis3D
- * \brief Proxy class for Q3DMaps data model mapping.
- * \since 1.0.0
- *
- * QItemModelMapDataProxy allows you to use QAbstractItemModel derived models as a data source
- * for Q3DMaps. It maps roles defined in QItemModelMapDataMapping to roles in the model.
- */
-
-/*!
- * Constructs QItemModelMapDataProxy.
- */
-QItemModelMapDataProxy::QItemModelMapDataProxy() :
- QMapDataProxy(new QItemModelMapDataProxyPrivate(this))
-{
-}
-
-/*!
- * Constructs QItemModelMapDataProxy with \a itemModel and \a mapping. Does not take ownership of
- * the model or the mapping, but does connect to them to listen for changes.
- */
-QItemModelMapDataProxy::QItemModelMapDataProxy(QAbstractItemModel *itemModel,
- QItemModelMapDataMapping *mapping) :
- QMapDataProxy(new QItemModelMapDataProxyPrivate(this))
-{
- dptr()->setItemModel(itemModel);
- dptr()->setActiveMapping(mapping);
-}
-
-/*!
- * Destroys QItemModelMapDataProxy.
- */
-QItemModelMapDataProxy::~QItemModelMapDataProxy()
-{
-}
-
-/*!
- * \property QItemModelMapDataProxy::itemModel
- *
- * Defines item model. Does not take ownership of the model, but does connect to it to listen for
- * changes.
- */
-void QItemModelMapDataProxy::setItemModel(const QAbstractItemModel *itemModel)
-{
- dptr()->setItemModel(itemModel);
-}
-
-const QAbstractItemModel *QItemModelMapDataProxy::itemModel() const
-{
- return dptrc()->m_itemModel.data();
-}
-
-/*!
- * \property QItemModelMapDataProxy::activeMapping
- *
- * Defines data mapping. Proxy takes ownership of the \a mapping.
- * Modifying a mapping that is set to the proxy will trigger data set re-resolving.
- */
-void QItemModelMapDataProxy::setActiveMapping(QItemModelMapDataMapping *mapping)
-{
- dptr()->setActiveMapping(mapping);
-}
-
-QItemModelMapDataMapping *QItemModelMapDataProxy::activeMapping() const
-{
- return dptrc()->m_mapping;
-}
-
-/*!
- * \internal
- */
-QItemModelMapDataProxyPrivate *QItemModelMapDataProxy::dptr()
-{
- return static_cast<QItemModelMapDataProxyPrivate *>(d_ptr.data());
-}
-
-/*!
- * \internal
- */
-const QItemModelMapDataProxyPrivate *QItemModelMapDataProxy::dptrc() const
-{
- return static_cast<const QItemModelMapDataProxyPrivate *>(d_ptr.data());
-}
-
-// QItemModelMapDataProxyPrivate
-
-QItemModelMapDataProxyPrivate::QItemModelMapDataProxyPrivate(QItemModelMapDataProxy *q)
- : QMapDataProxyPrivate(q),
- m_mapping(0),
- resolvePending(0)
-{
- m_resolveTimer.setSingleShot(true);
- QObject::connect(&m_resolveTimer, &QTimer::timeout,
- this, &QItemModelMapDataProxyPrivate::handlePendingResolve);
-}
-
-QItemModelMapDataProxyPrivate::~QItemModelMapDataProxyPrivate()
-{
-}
-
-void QItemModelMapDataProxyPrivate::setItemModel(const QAbstractItemModel *itemModel)
-{
- if (!m_itemModel.isNull())
- QObject::disconnect(m_itemModel, 0, this, 0);
-
- m_itemModel = itemModel;
-
- if (!m_itemModel.isNull()) {
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsInserted,
- this, &QItemModelMapDataProxyPrivate::handleColumnsInserted);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsMoved,
- this, &QItemModelMapDataProxyPrivate::handleColumnsMoved);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::columnsRemoved,
- this, &QItemModelMapDataProxyPrivate::handleColumnsRemoved);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::dataChanged,
- this, &QItemModelMapDataProxyPrivate::handleDataChanged);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::layoutChanged,
- this, &QItemModelMapDataProxyPrivate::handleLayoutChanged);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::modelReset,
- this, &QItemModelMapDataProxyPrivate::handleModelReset);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsInserted,
- this, &QItemModelMapDataProxyPrivate::handleRowsInserted);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsMoved,
- this, &QItemModelMapDataProxyPrivate::handleRowsMoved);
- QObject::connect(m_itemModel.data(), &QAbstractItemModel::rowsRemoved,
- this, &QItemModelMapDataProxyPrivate::handleRowsRemoved);
- }
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0);
-}
-
-void QItemModelMapDataProxyPrivate::setActiveMapping(QItemModelMapDataMapping *mapping)
-{
- if (m_mapping) {
- QObject::disconnect(m_mapping, &QItemModelMapDataMapping::mappingChanged,
- this, &QItemModelMapDataProxyPrivate::handleMappingChanged);
- }
-
- m_mapping = mapping;
-
- if (m_mapping) {
- QObject::connect(m_mapping, &QItemModelMapDataMapping::mappingChanged,
- this, &QItemModelMapDataProxyPrivate::handleMappingChanged);
- }
-
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0);
-}
-
-void QItemModelMapDataProxyPrivate::handleColumnsInserted(const QModelIndex &parent,
- int start, int end)
-{
- Q_UNUSED(parent)
- Q_UNUSED(start)
- Q_UNUSED(end)
-
- // Resolve new items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleColumnsMoved(const QModelIndex &sourceParent,
- int sourceStart,
- int sourceEnd,
- const QModelIndex &destinationParent,
- int destinationColumn)
-{
- Q_UNUSED(sourceParent)
- Q_UNUSED(sourceStart)
- Q_UNUSED(sourceEnd)
- Q_UNUSED(destinationParent)
- Q_UNUSED(destinationColumn)
-
- // Resolve moved items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleColumnsRemoved(const QModelIndex &parent,
- int start, int end)
-{
- Q_UNUSED(parent)
- Q_UNUSED(start)
- Q_UNUSED(end)
-
- // Remove old items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleDataChanged(const QModelIndex &topLeft,
- const QModelIndex &bottomRight,
- const QVector<int> &roles)
-{
- Q_UNUSED(topLeft)
- Q_UNUSED(bottomRight)
- Q_UNUSED(roles)
-
- // Resolve changed items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleLayoutChanged(const QList<QPersistentModelIndex> &parents,
- QAbstractItemModel::LayoutChangeHint hint)
-{
- Q_UNUSED(parents)
- Q_UNUSED(hint)
-
- // Resolve moved items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleModelReset()
-{
- // Data cleared, reset array
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleRowsInserted(const QModelIndex &parent,
- int start, int end)
-{
- Q_UNUSED(parent)
- Q_UNUSED(start)
- Q_UNUSED(end)
-
- // Resolve new items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleRowsMoved(const QModelIndex &sourceParent,
- int sourceStart,
- int sourceEnd,
- const QModelIndex &destinationParent,
- int destinationRow)
-{
- Q_UNUSED(sourceParent)
- Q_UNUSED(sourceStart)
- Q_UNUSED(sourceEnd)
- Q_UNUSED(destinationParent)
- Q_UNUSED(destinationRow)
-
- // Resolve moved items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleRowsRemoved(const QModelIndex &parent, int start, int end)
-{
- Q_UNUSED(parent)
- Q_UNUSED(start)
- Q_UNUSED(end)
-
- // Resolve removed items
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0); // TODO Resolving entire model is inefficient
-}
-
-void QItemModelMapDataProxyPrivate::handleMappingChanged()
-{
- if (!m_resolveTimer.isActive())
- m_resolveTimer.start(0);
-}
-
-void QItemModelMapDataProxyPrivate::handlePendingResolve()
-{
- resolveModel();
-}
-
-// Resolve entire item model into QMapDataArray.
-void QItemModelMapDataProxyPrivate::resolveModel()
-{
- if (m_itemModel.isNull() || !m_mapping) {
- qptr()->resetArray(0);
- return;
- }
-
- static const int noRoleIndex = -1;
-
- QHash<int, QByteArray> roleHash = m_itemModel->roleNames();
- const int labelRole = roleHash.key(m_mapping->labelRole().toLatin1(), noRoleIndex);
- const int xPosRole = roleHash.key(m_mapping->xPosRole().toLatin1(), noRoleIndex);
- const int zPosRole = roleHash.key(m_mapping->zPosRole().toLatin1(), noRoleIndex);
- // Default valueRole to display role if no mapping
- const int valueRole = roleHash.key(m_mapping->valueRole().toLatin1(), Qt::DisplayRole);
- const int columnCount = m_itemModel->columnCount();
- const int rowCount = m_itemModel->rowCount();
- const int totalCount = rowCount * columnCount;
- int runningCount = 0;
-
- // Parse data into newProxyArray
- QMapDataArray *newProxyArray = new QMapDataArray(totalCount);
- for (int i = 0; i < rowCount; i++) {
- for (int j = 0; j < columnCount; j++) {
- QModelIndex index = m_itemModel->index(i, j);
- if (labelRole != noRoleIndex)
- (*newProxyArray)[runningCount].setLabel(index.data(labelRole).toString());
- qreal xPos(qreal(0.0));
- qreal yPos(qreal(0.0));
- if (xPosRole != noRoleIndex)
- xPos = index.data(xPosRole).toReal();
- if (zPosRole != noRoleIndex)
- yPos = index.data(zPosRole).toReal(); // z position is mapped to y of QPoint
- (*newProxyArray)[runningCount].setMapPosition(QPointF(xPos, yPos));
- (*newProxyArray)[runningCount].setValue(index.data(valueRole).toReal());
- runningCount++;
- }
- }
-
- qDebug() << __FUNCTION__ << "Total count:" << newProxyArray->size();
-
- qptr()->resetArray(newProxyArray);
-}
-
-QItemModelMapDataProxy *QItemModelMapDataProxyPrivate::qptr()
-{
- return static_cast<QItemModelMapDataProxy *>(q_ptr);
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/data/qitemmodelmapdataproxy.h b/src/datavis3d/data/qitemmodelmapdataproxy.h
deleted file mode 100644
index 6d817b46..00000000
--- a/src/datavis3d/data/qitemmodelmapdataproxy.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#ifndef QITEMMODELMAPDATAPROXY_H
-#define QITEMMODELMAPDATAPROXY_H
-
-#include <QtDataVis3D/qmapdataproxy.h>
-#include <QtDataVis3D/qitemmodelmapdatamapping.h>
-#include <QAbstractItemModel>
-#include <QStringList>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QItemModelMapDataProxyPrivate;
-
-class QT_DATAVIS3D_EXPORT QItemModelMapDataProxy : public QMapDataProxy
-{
- Q_OBJECT
- Q_PROPERTY(const QAbstractItemModel* itemModel READ itemModel WRITE setItemModel)
- Q_PROPERTY(QItemModelMapDataMapping* activeMapping READ activeMapping WRITE setActiveMapping)
-
-public:
- explicit QItemModelMapDataProxy();
- explicit QItemModelMapDataProxy(QAbstractItemModel *itemModel, QItemModelMapDataMapping *mapping);
- virtual ~QItemModelMapDataProxy();
-
- void setItemModel(const QAbstractItemModel *itemModel);
- const QAbstractItemModel *itemModel() const;
-
- void setActiveMapping(QItemModelMapDataMapping *mapping);
- QItemModelMapDataMapping *activeMapping() const;
-
-protected:
- QItemModelMapDataProxyPrivate *dptr();
- const QItemModelMapDataProxyPrivate *dptrc() const;
-
-private:
- Q_DISABLE_COPY(QItemModelMapDataProxy)
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qitemmodelmapdataproxy_p.h b/src/datavis3d/data/qitemmodelmapdataproxy_p.h
deleted file mode 100644
index ce73c54b..00000000
--- a/src/datavis3d/data/qitemmodelmapdataproxy_p.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef QITEMMODELMAPDATAPROXY_P_H
-#define QITEMMODELMAPDATAPROXY_P_H
-
-#include "qitemmodelmapdataproxy.h"
-#include "qmapdataproxy_p.h"
-#include <QPointer>
-#include <QTimer>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QItemModelMapDataProxyPrivate : public QMapDataProxyPrivate
-{
- Q_OBJECT
-public:
- QItemModelMapDataProxyPrivate(QItemModelMapDataProxy *q);
- virtual ~QItemModelMapDataProxyPrivate();
-
- void setItemModel(const QAbstractItemModel *itemModel);
- void setActiveMapping(QItemModelMapDataMapping *mapping);
-
-public slots:
- void handleColumnsInserted(const QModelIndex &parent, int start, int end);
- void handleColumnsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd,
- const QModelIndex &destinationParent, int destinationColumn);
- void handleColumnsRemoved(const QModelIndex &parent, int start, int end);
- void handleDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight,
- const QVector<int> &roles = QVector<int> ());
- void handleLayoutChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex> (),
- QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint);
- void handleModelReset();
- void handleRowsInserted(const QModelIndex &parent, int start, int end);
- void handleRowsMoved(const QModelIndex &sourceParent, int sourceStart, int sourceEnd,
- const QModelIndex &destinationParent, int destinationRow);
- void handleRowsRemoved(const QModelIndex &parent, int start, int end);
-
- void handleMappingChanged();
- void handlePendingResolve();
-
-private:
- void resolveModel();
- QItemModelMapDataProxy *qptr();
-
- QPointer<const QAbstractItemModel> m_itemModel; // Not owned
- QItemModelMapDataMapping *m_mapping;
- bool resolvePending;
- QTimer m_resolveTimer;
-
- friend class QItemModelMapDataProxy;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qmapdataitem.cpp b/src/datavis3d/data/qmapdataitem.cpp
deleted file mode 100644
index 47e1a659..00000000
--- a/src/datavis3d/data/qmapdataitem.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "qmapdataitem_p.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-/*!
- * \class QMapDataItem
- * \inmodule QtDataVis3D
- * \brief The QMapDataItem class provides a container for resolved data to be added to maps graphs.
- * \since 1.0.0
- *
- * A QMapDataItem holds data for a single rendered bar in a maps graph.
- * Maps data proxies parse data into QMapDataItem instances for visualizing.
- *
- * \sa QMapDataProxy, {Qt Data Visualization 3D C++ Classes}
- */
-
-/*!
- * Constructs QMapDataItem.
- */
-QMapDataItem::QMapDataItem()
- : QBarDataItem()
-{
-}
-
-/*!
- * Constructs a copy of \a other.
- */
-QMapDataItem::QMapDataItem(const QMapDataItem &other)
- : QBarDataItem(other)
-{
- operator=(other);
-}
-
-/*!
- * Destroys QMapDataItem.
- */
-QMapDataItem::~QMapDataItem()
-{
-}
-
-/*!
- * Assigns a copy of \a other to this object.
- */
-QMapDataItem &QMapDataItem::operator=(const QMapDataItem &other)
-{
- QBarDataItem::operator =(other);
- m_mapPosition = other.m_mapPosition;
- m_label = other.m_label;
-
- return *this;
-}
-
-/*!
- * Sets \a position on the map to this data item.
- */
-void QMapDataItem::setMapPosition(const QPointF &position)
-{
- m_mapPosition = position;
-}
-
-/*!
- * \return position of this data item.
- */
-QPointF QMapDataItem::mapPosition() const
-{
- return m_mapPosition;
-}
-
-/*!
- * Sets \a label to this data item.
- */
-void QMapDataItem::setLabel(const QString &label)
-{
- m_label = label;
-}
-
-/*!
- * \return label of this data item.
- */
-QString QMapDataItem::label() const
-{
- return m_label;
-}
-
-/*!
- * \internal
- */
-void QMapDataItem::createExtraData()
-{
- if (!d_ptr)
- d_ptr = new QMapDataItemPrivate;
-}
-
-QMapDataItemPrivate::QMapDataItemPrivate()
- : QBarDataItemPrivate()
-{
-}
-
-QMapDataItemPrivate::~QMapDataItemPrivate()
-{
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/data/qmapdataitem.h b/src/datavis3d/data/qmapdataitem.h
deleted file mode 100644
index 240b03dd..00000000
--- a/src/datavis3d/data/qmapdataitem.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#ifndef QMAPDATAITEM_H
-#define QMAPDATAITEM_H
-
-#include <QtDataVis3D/qdatavis3denums.h>
-#include <QtDataVis3D/qbardataitem.h>
-#include <QPointF>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QMapDataItemPrivate;
-
-class QT_DATAVIS3D_EXPORT QMapDataItem : public QBarDataItem
-{
-public:
- QMapDataItem();
- QMapDataItem(const QMapDataItem &other);
- ~QMapDataItem();
-
- QMapDataItem &operator=(const QMapDataItem &other);
-
- void setMapPosition(const QPointF &position);
- QPointF mapPosition() const;
-
- void setLabel(const QString &label);
- QString label() const;
-
-protected:
- virtual void createExtraData();
-
- QMapDataItemPrivate *d_ptr;
-
-private:
- QPointF m_mapPosition;
- QString m_label;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qmapdataitem_p.h b/src/datavis3d/data/qmapdataitem_p.h
deleted file mode 100644
index 2926e3ef..00000000
--- a/src/datavis3d/data/qmapdataitem_p.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef QMAPDATAITEM_P_H
-#define QMAPDATAITEM_P_H
-
-#include "datavis3dglobal_p.h"
-#include "qmapdataitem.h"
-#include "qbardataitem_p.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QMapDataItemPrivate : public QBarDataItemPrivate
-{
-public:
- QMapDataItemPrivate();
- virtual ~QMapDataItemPrivate();
-
- // TODO stores other data for map items besides position
-
-protected:
- friend class QMapDataItem;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qmapdataproxy.cpp b/src/datavis3d/data/qmapdataproxy.cpp
deleted file mode 100644
index 1e0db088..00000000
--- a/src/datavis3d/data/qmapdataproxy.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "qmapdataproxy.h"
-#include "qmapdataproxy_p.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-/*!
- * \class QMapDataProxy
- * \inmodule QtDataVis3D
- * \brief Proxy class for Q3DMaps.
- * \since 1.0.0
- *
- * QMapDataProxy handles adding, inserting, changing and removing data.
- *
- * QMapDataProxy takes ownership of all QMapDataArrays and QMapDataItems passed to it.
- */
-
-/*!
- * Constructs QMapDataProxy with the given \a parent.
- */
-QMapDataProxy::QMapDataProxy(QObject *parent) :
- QAbstractDataProxy(new QMapDataProxyPrivate(this), parent)
-{
-}
-
-/*!
- * \internal
- */
-QMapDataProxy::QMapDataProxy(QMapDataProxyPrivate *d, QObject *parent) :
- QAbstractDataProxy(d, parent)
-{
-}
-
-/*!
- * Destroys QMapDataProxy.
- */
-QMapDataProxy::~QMapDataProxy()
-{
-}
-
-/*!
- * Clears the existing array and takes ownership of the \a newArray. Do not use \a newArray pointer
- * to further modify data after QMapDataProxy assumes ownership of it, as such modifications will
- * not trigger proper signals.
- * Passing null array clears all data.
- */
-void QMapDataProxy::resetArray(QMapDataArray *newArray)
-{
- if (dptr()->resetArray(newArray))
- emit arrayReset();
-}
-
-/*!
- * \return item count in the array.
- */
-int QMapDataProxy::itemCount() const
-{
- return dptrc()->m_dataArray.size();
-}
-
-/*!
- * \return pointer to the data array.
- */
-const QMapDataArray *QMapDataProxy::array() const
-{
- return &dptrc()->m_dataArray;
-}
-
-/*!
- * \return pointer to the item at \a index. It is guaranteed to be valid only until next call
- * that modifies data.
- */
-const QMapDataItem *QMapDataProxy::itemAt(int index) const
-{
- return &dptrc()->m_dataArray.at(index);
-}
-
-/*!
- * \internal
- */
-QMapDataProxyPrivate *QMapDataProxy::dptr()
-{
- return static_cast<QMapDataProxyPrivate *>(d_ptr.data());
-}
-
-/*!
- * \internal
- */
-const QMapDataProxyPrivate *QMapDataProxy::dptrc() const
-{
- return static_cast<const QMapDataProxyPrivate *>(d_ptr.data());
-}
-
-/*!
- * \fn void QMapDataProxy::arrayReset()
- *
- * Emitted when data array is reset.
- */
-
-/*!
- * \fn void QMapDataProxy::itemsAdded(int startIndex, int count)
- *
- * Emitted when items have been added. Provides \a startIndex and \a count of items added.
- */
-
-/*!
- * \fn void QMapDataProxy::itemsChanged(int startIndex, int count)
- *
- * Emitted when items have changed. Provides \a startIndex and \a count of changed items.
- */
-
-/*!
- * \fn void QMapDataProxy::itemsRemoved(int startIndex, int count)
- *
- * Emitted when items have been removed. Provides \a startIndex and \a count of items removed.
- * Index may be over current array size if removed from end.
- */
-
-/*!
- * \fn void QMapDataProxy::itemsInserted(int startIndex, int count)
- *
- * Emitted when items have been inserted. Provides \a startIndex and \a count of inserted items.
- */
-
-// QBarDataProxyPrivate
-
-QMapDataProxyPrivate::QMapDataProxyPrivate(QMapDataProxy *q)
- : QAbstractDataProxyPrivate(q, QAbstractDataProxy::DataTypeMap)
-{
-}
-
-QMapDataProxyPrivate::~QMapDataProxyPrivate()
-{
- m_dataArray.clear();
-}
-
-bool QMapDataProxyPrivate::resetArray(QMapDataArray *newArray)
-{
- if (!m_dataArray.size() && (!newArray || !newArray->size()))
- return false;
-
- m_dataArray.clear();
-
- if (newArray) {
- m_dataArray = *newArray;
- delete newArray;
- }
-
- return true;
-}
-
-QPair<GLfloat, GLfloat> QMapDataProxyPrivate::limitValues()
-{
- QPair<GLfloat, GLfloat> limits = qMakePair(0.0f, 0.0f);
- for (int i = 0; i < m_dataArray.size(); i++) {
- const QMapDataItem &item = m_dataArray.at(i);
- qreal itemValue = item.value();
- if (limits.second < itemValue)
- limits.second = itemValue;
- if (limits.first > itemValue)
- limits.first = itemValue;
- }
- return limits;
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/data/qmapdataproxy.h b/src/datavis3d/data/qmapdataproxy.h
deleted file mode 100644
index f6d281f9..00000000
--- a/src/datavis3d/data/qmapdataproxy.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#ifndef QMAPDATAPROXY_H
-#define QMAPDATAPROXY_H
-
-#include <QtDataVis3D/qabstractdataproxy.h>
-#include <QtDataVis3D/qmapdataitem.h>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-typedef QVector<QMapDataItem> QMapDataArray;
-
-class QMapDataProxyPrivate;
-
-class QT_DATAVIS3D_EXPORT QMapDataProxy : public QAbstractDataProxy
-{
- Q_OBJECT
-
-public:
- explicit QMapDataProxy(QObject *parent = 0);
- virtual ~QMapDataProxy();
-
- // TODO: Replace first part of class description in docs with this once all TODOs are done:
- /*
- * QMapDataProxy handles adding, inserting, changing and removing data.
- * QMapDataProxy is optimized to use cases where the only defining characteristics of an individual
- * map item are its value and position. Modifying other data such as color or mesh of individual bar
- * requires allocating additional data object for the bar.
- */
-
- int itemCount() const;
- const QMapDataArray *array() const;
- const QMapDataItem *itemAt(int index) const; // Index needs to exist or this crashes
-
- void resetArray(QMapDataArray *newArray);
-
- // TODO void setItem(int index, QMapDataItem *item);
- // TODO void setItems(int index, QMapDataArray *items);
-
- // TODO int addItem(QMapDataItem *item); // returns the index of added item
- // TODO int addItems(QMapDataArray *items); // returns the index of added item
-
- // TODO void insertItem(int index, QMapDataItem *item);
- // TODO void insertItems(int index, QMapDataArray *items);
-
- // TODO void removeItems(int index, int removeCount);
-
-signals:
- void arrayReset();
- void itemsAdded(int startIndex, int count);
- void itemsChanged(int startIndex, int count);
- void itemsRemoved(int startIndex, int count);
- void itemsInserted(int startIndex, int count);
-
-protected:
- explicit QMapDataProxy(QMapDataProxyPrivate *d, QObject *parent = 0);
- QMapDataProxyPrivate *dptr();
- const QMapDataProxyPrivate *dptrc() const;
-
-private:
- Q_DISABLE_COPY(QMapDataProxy)
-
- friend class Maps3DController;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/data/qmapdataproxy_p.h b/src/datavis3d/data/qmapdataproxy_p.h
deleted file mode 100644
index bf3d1d2c..00000000
--- a/src/datavis3d/data/qmapdataproxy_p.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef QMAPDATAPROXY_P_H
-#define QMAPDATAPROXY_P_H
-
-#include "qmapdataproxy.h"
-#include "qabstractdataproxy_p.h"
-#include "qmapdataitem.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class QMapDataProxyPrivate : public QAbstractDataProxyPrivate
-{
- Q_OBJECT
-public:
- QMapDataProxyPrivate(QMapDataProxy *q);
- virtual ~QMapDataProxyPrivate();
-
- bool resetArray(QMapDataArray *newArray);
-
- QPair<GLfloat, GLfloat> limitValues();
-
-private:
- QMapDataArray m_dataArray;
-
-private:
- friend class QMapDataProxy;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif // QBARDATAPROXY_P_H
diff --git a/src/datavis3d/data/scatterrenderitem_p.h b/src/datavis3d/data/scatterrenderitem_p.h
index 6fade03e..cf63ae50 100644
--- a/src/datavis3d/data/scatterrenderitem_p.h
+++ b/src/datavis3d/data/scatterrenderitem_p.h
@@ -49,7 +49,6 @@ public:
//inline qreal size() const { return m_size; }
// TODO should be in abstract, but currently there is no abstract renderer
- // TODO change when maps refactored
inline void setRenderer(Scatter3DRenderer *renderer) { m_renderer = renderer; }
protected:
diff --git a/src/datavis3d/doc/src/qtdatavis3d-index.qdoc b/src/datavis3d/doc/src/qtdatavis3d-index.qdoc
index a199bbe5..b45e7cb6 100644
--- a/src/datavis3d/doc/src/qtdatavis3d-index.qdoc
+++ b/src/datavis3d/doc/src/qtdatavis3d-index.qdoc
@@ -50,9 +50,7 @@
\list
\li \l{Barchart Example}
- \li \l{Mapdata Example}
\li \l{Qt Quick 2 Barchart Example}
- \li \l{Qt Quick 2 Maps Example}
\li \l{Qt Quick 2 Scatter Example}
\li \l{Rainfall Example}
\li \l{Scatter Chart Example}
diff --git a/src/datavis3d/engine/engine.pri b/src/datavis3d/engine/engine.pri
index f615c5a5..ddc5abd1 100644
--- a/src/datavis3d/engine/engine.pri
+++ b/src/datavis3d/engine/engine.pri
@@ -2,14 +2,10 @@ HEADERS += $$PWD/q3dwindow_p.h \
$$PWD/q3dwindow.h \
$$PWD/q3dbars.h \
$$PWD/q3dbars_p.h \
- $$PWD/q3dmaps.h \
- $$PWD/q3dmaps_p.h \
$$PWD/theme_p.h \
$$PWD/drawer_p.h \
$$PWD/bars3dcontroller_p.h \
$$PWD/bars3drenderer_p.h \
- $$PWD/maps3dcontroller_p.h \
- $$PWD/maps3drenderer_p.h \
$$PWD/q3dsurface.h \
$$PWD/q3dsurface_p.h \
$$PWD/surface3dcontroller_p.h \
@@ -25,13 +21,10 @@ HEADERS += $$PWD/q3dwindow_p.h \
SOURCES += $$PWD/q3dwindow.cpp \
$$PWD/q3dbars.cpp \
- $$PWD/q3dmaps.cpp \
$$PWD/theme.cpp \
$$PWD/drawer.cpp \
$$PWD/bars3dcontroller.cpp \
$$PWD/bars3drenderer.cpp \
- $$PWD/maps3dcontroller.cpp \
- $$PWD/maps3drenderer.cpp \
$$PWD/q3dsurface.cpp \
$$PWD/surface3drenderer.cpp \
$$PWD/surface3dcontroller.cpp \
diff --git a/src/datavis3d/engine/maps3dcontroller.cpp b/src/datavis3d/engine/maps3dcontroller.cpp
deleted file mode 100644
index 21b46eda..00000000
--- a/src/datavis3d/engine/maps3dcontroller.cpp
+++ /dev/null
@@ -1,1735 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "maps3dcontroller_p.h"
-#include "maps3drenderer_p.h"
-#include "camerahelper_p.h"
-#include "shaderhelper_p.h"
-#include "objecthelper_p.h"
-#include "texturehelper_p.h"
-#include "theme_p.h"
-#include "utils_p.h"
-#include "drawer_p.h"
-#include "maprenderitem_p.h"
-#include "qmapdataproxy_p.h"
-
-#include <QOpenGLFunctions>
-#include <QMatrix4x4>
-#include <QMouseEvent>
-#include <qmath.h>
-
-#include <QDebug>
-
-//#define DISPLAY_RENDER_SPEED
-
-// Commenting this draws the shadow map with perspective projection. Otherwise it's drawn in
-// orthographic projection.
-//#define USE_WIDER_SHADOWS
-
-// You can verify that depth buffer drawing works correctly by uncommenting this.
-// You should see the scene from where the light is
-//#define SHOW_DEPTH_TEXTURE_SCENE
-
-#ifdef DISPLAY_RENDER_SPEED
-#include <QTime>
-#endif
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-const GLfloat gridLineWidth = 0.005f;
-GLfloat distanceMod = 0.0f;
-static QVector3D skipColor = QVector3D(255, 255, 255); // Selection texture's background color
-
-Maps3DController::Maps3DController(const QRect &rect)
- : m_camera(new CameraHelper()),
- m_barShader(0),
- m_depthShader(0),
- m_selectionShader(0),
- m_backgroundShader(0),
- m_labelShader(0),
- m_barObj(0),
- m_backgroundObj(0),
- m_gridLineObj(0),
- m_labelObj(0),
- m_objFile(QStringLiteral(":/defaultMeshes/bar")),
- m_mousePressed(MouseNone),
- m_mousePos(QPoint(0, 0)),
- m_zoomLevel(100),
- m_autoScaleAdjustment(1.0f),
- m_horizontalRotation(0.0f),
- m_verticalRotation(45.0f),
- m_barThickness(QVector3D(1.0f, 1.0f, 1.0f)),
- m_heightNormalizer(0.0f),
- m_yAdjustment(0.0f),
- m_scaleFactor(1.0f),
- m_theme(new Theme()),
- m_isInitialized(false),
- m_selectionMode(QDataVis::ModeItem),
- m_selectedBar(0),
- m_previouslySelectedBar(0),
- m_axisLabelX(QStringLiteral("X")),
- m_axisLabelZ(QStringLiteral("Z")),
- m_axisLabelY(QStringLiteral("Y")),
- m_sceneViewPort(rect.x(), rect.y(), rect.width(), rect.height()),
- m_zoomViewPort(rect.x(), rect.y(), rect.width(), rect.height()),
- m_zoomActivated(false),
- m_textureHelper(new TextureHelper()),
- m_labelTransparency(QDataVis::TransparencyFromTheme),
- m_font(QFont(QStringLiteral("Arial"))),
- m_drawer(new Drawer(*m_theme, m_font, m_labelTransparency)),
- m_areaSize(QSizeF(1.0, 1.0)),
- m_bgrTexture(0),
- m_depthTexture(0),
- m_selectionTexture(0),
- m_depthFrameBuffer(0),
- m_selectionFrameBuffer(0),
- m_selectionDepthBuffer(0),
- m_updateLabels(true),
- m_adjustDirection(Q3DMaps::AdjustHeight),
- m_shadowQuality(QDataVis::ShadowLow),
- m_shadowQualityToShader(33.3f),
- m_bgrHasAlpha(false),
- m_boundingRect(rect.x(), rect.y(), rect.width(), rect.height()),
- m_data(0),
- m_valuesDirty(false)
-{
- //m_data->setDrawer(m_drawer);
- //QObject::connect(m_drawer, &Drawer::drawerChanged, this, &Maps3DController::updateTextures);
-}
-
-Maps3DController::~Maps3DController()
-{
- m_textureHelper->glDeleteFramebuffers(1, &m_depthFrameBuffer);
- m_textureHelper->glDeleteFramebuffers(1, &m_selectionFrameBuffer);
- m_textureHelper->glDeleteRenderbuffers(1, &m_selectionDepthBuffer);
- m_textureHelper->deleteTexture(&m_selectionTexture);
- m_textureHelper->deleteTexture(&m_bgrTexture);
- delete m_barShader;
- delete m_selectionShader;
- delete m_backgroundShader;
- delete m_barObj;
- delete m_backgroundObj;
- delete m_gridLineObj;
- delete m_textureHelper;
- delete m_drawer;
- delete m_camera;
-}
-
-void Maps3DController::initializeOpenGL()
-{
- // Initialization is called multiple times when Qt Quick components are used
- if (m_isInitialized)
- return;
-
- m_renderer = new Maps3DRenderer(this);
- initializeOpenGLFunctions();
-
- m_textureHelper = new TextureHelper();
- m_drawer->initializeOpenGL();
-
- // Initialize shaders
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTexColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTex"));
- }
- initBackgroundShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadow"));
- } else {
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragmentColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragment"));
- }
- initBackgroundShaders(QStringLiteral(":/shaders/vertexTexture"),
- QStringLiteral(":/shaders/fragmentTexture"));
- }
-#else
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentColorOnYES2"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentES2"));
- }
- initBackgroundShaders(QStringLiteral(":/shaders/vertexTexture"), // Same vertex shader ok for ES2
- QStringLiteral(":/shaders/fragmentTextureES2"));
-#endif
- initLabelShaders(QStringLiteral(":/shaders/vertexLabel"),
- QStringLiteral(":/shaders/fragmentLabel"));
-
-#if !defined(QT_OPENGL_ES_2)
- // Init depth shader (for shadows). Init in any case, easier to handle shadow activation if done via api.
- initDepthShader();
-#endif
-
- // Init selection shader
- initSelectionShader();
-
- // Load default mesh
- loadBarMesh();
-
- // Load grid line mesh
- loadGridLineMesh();
-
- // Load label mesh
- loadLabelMesh();
-
- // Set OpenGL features
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- glEnable(GL_CULL_FACE);
- glCullFace(GL_BACK);
-
-#if !defined(QT_OPENGL_ES_2)
- glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
- glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
- glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
-#endif
-
- // Set initial camera position
- // X must be 0 for rotation to work - we can use "setCameraRotation" for setting it later
- m_camera->setDefaultCameraOrientation(QVector3D(0.0f, 0.0f, 1.0f + 2.9f * zComp),
- QVector3D(0.0f, 0.0f, zComp),
- QVector3D(0.0f, 1.0f, 0.0f));
-
- // Adjust to default rotation
- setCameraPosition(m_horizontalRotation, m_verticalRotation, m_zoomLevel);
-
- // Set view port
- glViewport(0, 0, width(), height());
-
- // Set initialized -flag
- m_isInitialized = true;
-
- // Resize in case we've missed resize events
- // Resize calls initSelectionBuffer and initDepthBuffer, so they don't need to be called here
- resizeNotify();
-
- // Load background mesh (we need to be initialized first)
- loadBackgroundMesh();
-
- // Update default light position
-#ifndef USE_WIDER_SHADOWS
- distanceMod = 5.0f;
-#endif
-}
-
-void Maps3DController::synchDataToRenderer()
-{
- // TODO: Implement!
-}
-
-
-/*!
- * \internal
- */
-void Maps3DController::render(const GLuint defaultFboHandle)
-{
- if (!m_isInitialized)
- return;
-
-#ifdef DISPLAY_RENDER_SPEED
- // For speed computation
- static bool firstRender = true;
- static QTime lastTime;
- static GLint nbFrames = 0;
- if (firstRender) {
- lastTime.start();
- firstRender = false;
- }
-
- // Measure speed (as milliseconds per frame)
- nbFrames++;
- if (lastTime.elapsed() >= 1000) { // print only if last measurement was more than 1s ago
- qDebug() << qreal(lastTime.elapsed()) / qreal(nbFrames) << "ms/frame (=" << qreal(nbFrames) << "fps)";
- nbFrames = 0;
- lastTime.restart();
- }
-#endif
-
- // Update cached values
- if (m_valuesDirty) {
- const QMapDataArray &dataArray = *m_data->array();
- int dataSize = dataArray.size();
- m_renderItemArray.resize(dataSize);
- for (int i = 0; i < dataSize ; i++) {
- qreal value = dataArray.at(i).value();
- m_renderItemArray[i].setValue(value);
- m_renderItemArray[i].setMapPosition(dataArray.at(i).mapPosition());
- m_renderItemArray[i].setHeight(value / m_heightNormalizer);
- m_renderItemArray[i].setItemLabel(dataArray.at(i).label());
- calculateTranslation(m_renderItemArray[i]);
- m_renderItemArray[i].setRenderer(this);
- }
- m_valuesDirty = false;
- }
-
- if (defaultFboHandle) {
- glDepthMask(true);
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- glEnable(GL_CULL_FACE);
- glCullFace(GL_BACK);
- }
-
- // Draw scene
- drawScene(defaultFboHandle);
-}
-
-/*!
- * \internal
- */
-void Maps3DController::drawScene(const GLuint defaultFboHandle)
-{
- // Set clear color
- QVector3D clearColor = Utils::vectorFromColor(m_theme->m_windowColor);
- glClearColor(clearColor.x(), clearColor.y(), clearColor.z(), 1.0f);
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- static QVector3D selection = skipColor;
-
- // Specify viewport
- glViewport(m_sceneViewPort.x(), m_sceneViewPort.y(),
- m_sceneViewPort.width(), m_sceneViewPort.height());
-
- // Set up projection matrix
- QMatrix4x4 projectionMatrix;
- projectionMatrix.perspective(45.0f, (GLfloat)m_sceneViewPort.width()
- / (GLfloat)m_sceneViewPort.height(), 0.1f, 100.0f);
-
- // Calculate view matrix
- QMatrix4x4 viewMatrix = m_camera->calculateViewMatrix(m_mousePos,
- m_zoomLevel * m_autoScaleAdjustment,
- m_sceneViewPort.width(),
- m_sceneViewPort.height());
-
- // Get light position (rotate light with camera, a bit above it (as set in defaultLightPos))
- QVector3D lightPos = m_camera->calculateLightPosition(defaultLightPos, 0.0f, distanceMod);
-
- // Map adjustment direction to model matrix scaling
- GLfloat heightMultiplier = 0.0f;
- GLfloat widthMultiplier = 0.0f;
- GLfloat depthMultiplier = 0.0f;
- GLfloat heightScaler = 0.0f;
- GLfloat widthScaler = 0.0f;
- GLfloat depthScaler = 0.0f;
- switch (m_adjustDirection) {
- case Q3DMaps::AdjustHeight:
- widthMultiplier = 0.0f;
- heightMultiplier = 1.0f;
- depthMultiplier = 0.0f;
- widthScaler = m_barThickness.x() / m_scaleFactor;
- heightScaler = 0.0f;
- depthScaler = m_barThickness.z() / m_scaleFactor;
- break;
- case Q3DMaps::AdjustWidth:
- widthMultiplier = 1.0f;
- heightMultiplier = 0.0f;
- depthMultiplier = 0.0f;
- widthScaler = 0.0f;
- heightScaler = m_barThickness.y() / m_scaleFactor;
- depthScaler = m_barThickness.z() / m_scaleFactor;
- break;
- case Q3DMaps::AdjustDepth:
- widthMultiplier = 0.0f;
- heightMultiplier = 0.0f;
- depthMultiplier = 1.0f;
- widthScaler = m_barThickness.x() / m_scaleFactor;
- heightScaler = m_barThickness.y() / m_scaleFactor;
- depthScaler = 0.0f;
- break;
- case Q3DMaps::AdjustRadius:
- widthMultiplier = 1.0f;
- heightMultiplier = 0.0f;
- depthMultiplier = 1.0f;
- widthScaler = 0.0f;
- heightScaler = m_barThickness.y() / m_scaleFactor;
- depthScaler = 0.0f;
- break;
- case Q3DMaps::AdjustAll:
- widthMultiplier = 1.0f;
- heightMultiplier = 1.0f;
- depthMultiplier = 1.0f;
- widthScaler = 0.0f;
- heightScaler = 0.0f;
- depthScaler = 0.0f;
- break;
- }
-
- // Introduce regardless of shadow quality to simplify logic
- QMatrix4x4 depthViewMatrix;
- QMatrix4x4 depthProjectionMatrix;
-
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- // Render scene into a depth texture for using with shadow mapping
- // Bind depth shader
- m_depthShader->bind();
-
- // Set viewport for depth map rendering. Must match texture size. Larger values give smoother shadows.
- glViewport(m_sceneViewPort.x(), m_sceneViewPort.y(),
- m_sceneViewPort.width() * m_shadowQuality,
- m_sceneViewPort.height() * m_shadowQuality);
-
- // Enable drawing to framebuffer
- glBindFramebuffer(GL_FRAMEBUFFER, m_depthFrameBuffer);
- glClear(GL_DEPTH_BUFFER_BIT);
-
- // Set front face culling to reduce self-shadowing issues
- glCullFace(GL_FRONT);
-
- // Get the depth view matrix
- // It may be possible to hack lightPos here if we want to make some tweaks to shadow
- QVector3D depthLightPos = m_camera->calculateLightPosition(
- defaultLightPos, 0.0f, (distanceMod + 1.5f) / m_autoScaleAdjustment);
- depthViewMatrix.lookAt(depthLightPos, QVector3D(0.0f, -m_yAdjustment, zComp),
- QVector3D(0.0f, 1.0f, 0.0f));
- // TODO: Why does depthViewMatrix.column(3).y() goes to zero when we're directly above? That causes the scene to be not drawn from above -> must be fixed
- //qDebug() << lightPos << depthViewMatrix << depthViewMatrix.column(3);
- // Set the depth projection matrix
-#ifndef USE_WIDER_SHADOWS
- // Use this for perspective shadows
- depthProjectionMatrix.perspective(15.0f, (GLfloat)m_sceneViewPort.width()
- / (GLfloat)m_sceneViewPort.height(), 3.0f, 200.0f);
-#else
- // Use these for orthographic shadows
- //qDebug() << m_areaSize.width() / m_scaleFactor << m_yAdjustment;
- GLfloat testAspectRatio = (GLfloat)m_sceneViewPort.width() / (GLfloat)m_sceneViewPort.height();
- depthProjectionMatrix.ortho(-(2.0f * m_areaSize.width()) / m_scaleFactor,
- (2.0f * m_areaSize.width()) / m_scaleFactor,
- -m_yAdjustment * 4.0f * testAspectRatio,
- m_yAdjustment * 4.0f * testAspectRatio,
- 0.0f, 100.0f);
-#endif
-#if 0
- // Draw background to depth buffer (You don't want to do this, except maybe for debugging purposes)
- if (m_backgroundObj) {
- QMatrix4x4 modelMatrix;
- QMatrix4x4 MVPMatrix;
-
- modelMatrix.translate(0.0f, -m_yAdjustment, zComp);
- modelMatrix.scale(QVector3D(m_areaSize.width() / m_scaleFactor,
- 1.0f,
- m_areaSize.height() / m_scaleFactor));
- modelMatrix.rotate(-90.0f, 1.0f, 0.0f, 0.0f);
-
- MVPMatrix = depthProjectionMatrix * depthViewMatrix * modelMatrix;
-
- m_depthShader->setUniformValue(m_depthShader->MVP(), MVPMatrix);
-
- // 1st attribute buffer : vertices
- glEnableVertexAttribArray(m_depthShader->posAtt());
- glBindBuffer(GL_ARRAY_BUFFER, m_backgroundObj->vertexBuf());
- glVertexAttribPointer(m_depthShader->posAtt(), 3, GL_FLOAT, GL_FALSE, 0, (void *)0);
-
- // Index buffer
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_backgroundObj->elementBuf());
-
- // Draw the triangles
- glDrawElements(GL_TRIANGLES, m_backgroundObj->indexCount(), GL_UNSIGNED_SHORT,
- (void *)0);
-
- // Free buffers
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
-
- glDisableVertexAttribArray(m_depthShader->posAtt());
- }
-#endif
- // Draw bars to depth buffer
- for (int bar = 0; bar < m_renderItemArray.size(); bar++) {
- const MapRenderItem &item = m_renderItemArray.at(bar);
- if (!item.value())
- continue;
-
- QMatrix4x4 modelMatrix;
- QMatrix4x4 MVPMatrix;
-
- modelMatrix.translate(item.translation().x(),
- heightMultiplier * item.height() + heightScaler - m_yAdjustment,
- item.translation().z());
- modelMatrix.scale(QVector3D(widthMultiplier * item.height() + widthScaler,
- heightMultiplier * item.height() + heightScaler,
- depthMultiplier * item.height() + depthScaler));
-
- MVPMatrix = depthProjectionMatrix * depthViewMatrix * modelMatrix;
-
- m_depthShader->setUniformValue(m_depthShader->MVP(), MVPMatrix);
-
- // 1st attribute buffer : vertices
- glEnableVertexAttribArray(m_depthShader->posAtt());
- glBindBuffer(GL_ARRAY_BUFFER, m_barObj->vertexBuf());
- glVertexAttribPointer(m_depthShader->posAtt(), 3, GL_FLOAT, GL_FALSE, 0, (void *)0);
-
- // Index buffer
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_barObj->elementBuf());
-
- // Draw the triangles
- glDrawElements(GL_TRIANGLES, m_barObj->indexCount(), GL_UNSIGNED_SHORT, (void *)0);
-
- // Free buffers
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
-
- glDisableVertexAttribArray(m_depthShader->posAtt());
- }
-
- // Disable drawing to framebuffer (= enable drawing to screen)
- glBindFramebuffer(GL_FRAMEBUFFER, defaultFboHandle);
-
- // Reset culling to normal
- glCullFace(GL_BACK);
-
- // Release depth shader
- m_depthShader->release();
-
- // Revert to original viewport
- glViewport(m_sceneViewPort.x(), m_sceneViewPort.y(),
- m_sceneViewPort.width(), m_sceneViewPort.height());
-
-#if 0 // Use this if you want to see what is being drawn to the framebuffer
- // You'll also have to comment out GL_COMPARE_R_TO_TEXTURE -line in texturehelper (if using it)
- m_labelShader->bind();
- glEnable(GL_TEXTURE_2D);
- QMatrix4x4 modelMatrix;
- QMatrix4x4 viewmatrix;
- viewmatrix.lookAt(QVector3D(0.0f, 0.0f, 2.5f + zComp),
- QVector3D(0.0f, 0.0f, zComp),
- QVector3D(0.0f, 1.0f, 0.0f));
- modelMatrix.translate(0.0, 0.0, zComp);
- QMatrix4x4 MVPMatrix = projectionMatrix * viewmatrix * modelMatrix;
- m_labelShader->setUniformValue(m_labelShader->MVP(), MVPMatrix);
- m_drawer->drawObject(m_labelShader, m_labelObj,
- m_depthTexture);
- glDisable(GL_TEXTURE_2D);
- m_labelShader->release();
-#endif
- }
-#endif
-
-#if 1
- // Skip selection mode drawing if we're zoomed or have no selection mode
- if (!m_zoomActivated && m_selectionMode > QDataVis::ModeNone) {
- // Bind selection shader
- m_selectionShader->bind();
-
- // Draw bars to selection buffer
- glBindFramebuffer(GL_FRAMEBUFFER, m_selectionFrameBuffer);
- glEnable(GL_DEPTH_TEST); // Needed, otherwise the depth render buffer is not used
- glClearColor(skipColor.x() / 255, skipColor.y() / 255, skipColor.z() / 255, 1.0f); // Set clear color to white (= skipColor)
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Needed for clearing the frame buffer
- glDisable(GL_DITHER); // disable dithering, it may affect colors if enabled
- GLint barIdxRed = 0;
- GLint barIdxGreen = 0;
- GLint barIdxBlue = 0;
- for (int bar = 0; bar < m_renderItemArray.size(); bar++, barIdxRed++) {
- const MapRenderItem &item = m_renderItemArray.at(bar);
- if (!item.value())
- continue;
-
- QMatrix4x4 modelMatrix;
- QMatrix4x4 MVPMatrix;
-
- modelMatrix.translate(item.translation().x(),
- heightMultiplier * item.height() + heightScaler - m_yAdjustment,
- item.translation().z());
- modelMatrix.scale(QVector3D(widthMultiplier * item.height() + widthScaler,
- heightMultiplier * item.height() + heightScaler,
- depthMultiplier * item.height() + depthScaler));
-
- MVPMatrix = projectionMatrix * viewMatrix * modelMatrix;
-
- if (barIdxRed > 0 && barIdxRed % 256 == 0) {
- barIdxRed = 0;
- barIdxGreen++;
- }
- if (barIdxGreen > 0 && barIdxGreen % 256 == 0) {
- barIdxGreen = 0;
- barIdxBlue++;
- }
- if (barIdxBlue > 255)
- qFatal("Too many objects");
-
- QVector3D barColor = QVector3D((GLfloat)barIdxRed / 255.0f,
- (GLfloat)barIdxGreen / 255.0f,
- (GLfloat)barIdxBlue / 255.0f);
-
- m_selectionShader->setUniformValue(m_selectionShader->MVP(), MVPMatrix);
- m_selectionShader->setUniformValue(m_selectionShader->color(), barColor);
-
- // 1st attribute buffer : vertices
- glEnableVertexAttribArray(m_selectionShader->posAtt());
- glBindBuffer(GL_ARRAY_BUFFER, m_barObj->vertexBuf());
- glVertexAttribPointer(m_selectionShader->posAtt(), 3, GL_FLOAT, GL_FALSE, 0, (void *)0);
-
- // Index buffer
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_barObj->elementBuf());
-
- // Draw the triangles
- glDrawElements(GL_TRIANGLES, m_barObj->indexCount(), GL_UNSIGNED_SHORT, (void *)0);
-
- // Free buffers
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
- glBindBuffer(GL_ARRAY_BUFFER, 0);
-
- glDisableVertexAttribArray(m_selectionShader->posAtt());
- }
- glEnable(GL_DITHER);
-
- // Read color under cursor
- if (Maps3DController::MouseOnScene == m_mousePressed)
- selection = Utils::getSelection(m_mousePos, height());
-
- glBindFramebuffer(GL_FRAMEBUFFER, defaultFboHandle);
-
- // Release selection shader
- m_selectionShader->release();
-
-#if 0 // Use this if you want to see what is being drawn to the framebuffer
- m_labelShader->bind();
- glDisable(GL_DEPTH_TEST);
- glEnable(GL_TEXTURE_2D);
- QMatrix4x4 modelMatrix;
- QMatrix4x4 viewmatrix;
- viewmatrix.lookAt(QVector3D(0.0f, 0.0f, 2.0f + zComp),
- QVector3D(0.0f, 0.0f, zComp),
- QVector3D(0.0f, 1.0f, 0.0f));
- modelMatrix.translate(0.0, 0.0, zComp);
- QMatrix4x4 MVPMatrix = projectionMatrix * viewmatrix * modelMatrix;
- m_labelShader->setUniformValue(m_labelShader->MVP(), MVPMatrix);
- m_drawer->drawObject(m_labelShader, m_labelObj,
- m_selectionTexture);
- glDisable(GL_TEXTURE_2D);
- m_labelShader->release();
-#endif
- }
-#if 1
- // Bind bar shader
- m_barShader->bind();
-
- // Enable texture
- glEnable(GL_TEXTURE_2D);
-
- // Draw bars
- // TODO: Handle zoom by camera transformations
- //if (!m_zoomActivated)
-
- bool barSelectionFound = false;
- for (int bar = 0; bar < m_renderItemArray.size(); bar++) {
- MapRenderItem &item = m_renderItemArray[bar];
- if (!item.value())
- continue;
-
- QMatrix4x4 modelMatrix;
- QMatrix4x4 MVPMatrix;
- QMatrix4x4 depthMVPMatrix;
- QMatrix4x4 itModelMatrix;
-
- modelMatrix.translate(item.translation().x(),
- heightMultiplier * item.height() + heightScaler - m_yAdjustment,
- item.translation().z());
- modelMatrix.scale(QVector3D(widthMultiplier * item.height() + widthScaler,
- heightMultiplier * item.height() + heightScaler,
- depthMultiplier * item.height() + depthScaler));
- itModelMatrix.scale(QVector3D(widthMultiplier * item.height() + widthScaler,
- heightMultiplier * item.height() + heightScaler,
- depthMultiplier * item.height() + depthScaler));
-
-#ifdef SHOW_DEPTH_TEXTURE_SCENE
- MVPMatrix = depthProjectionMatrix * depthViewMatrix * modelMatrix;
-#else
- MVPMatrix = projectionMatrix * viewMatrix * modelMatrix;
-#endif
- depthMVPMatrix = depthProjectionMatrix * depthViewMatrix * modelMatrix;
-
- QVector3D baseColor = Utils::vectorFromColor(m_theme->m_baseColor);
- QVector3D heightColor = Utils::vectorFromColor(m_theme->m_heightColor) * item.height();
-
- QVector3D barColor = baseColor + heightColor;
-
- GLfloat lightStrength = m_theme->m_lightStrength;
- if (m_selectionMode > QDataVis::ModeNone) {
- Maps3DController::SelectionType selectionType = isSelected(bar, selection);
- switch (selectionType) {
- case Maps3DController::SelectionBar: {
- barColor = Utils::vectorFromColor(m_theme->m_highlightBarColor);
- lightStrength = m_theme->m_highlightLightStrength;
- // Insert data to QDataItem. We have no ownership, don't delete the previous one
- if (!m_zoomActivated) {
- m_selectedBar = &item;
- barSelectionFound = true;
- }
- break;
- }
- case Maps3DController::SelectionNone: {
- // Current bar is not selected, nor on a row or column
- // do nothing
- break;
- }
- default: {
- // Unsupported selection mode
- // do nothing
- break;
- }
- }
- }
-
- if (item.height() != 0) {
- // Set shader bindings
- m_barShader->setUniformValue(m_barShader->lightP(), lightPos);
- m_barShader->setUniformValue(m_barShader->view(), viewMatrix);
- m_barShader->setUniformValue(m_barShader->model(), modelMatrix);
- m_barShader->setUniformValue(m_barShader->nModel(),
- itModelMatrix.inverted().transposed());
- m_barShader->setUniformValue(m_barShader->MVP(), MVPMatrix);
- m_barShader->setUniformValue(m_barShader->color(), barColor);
- m_barShader->setUniformValue(m_barShader->ambientS(), m_theme->m_ambientStrength);
-
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- // Set shadow shader bindings
- m_barShader->setUniformValue(m_barShader->shadowQ(), m_shadowQualityToShader);
- m_barShader->setUniformValue(m_barShader->depth(), depthMVPMatrix);
- m_barShader->setUniformValue(m_barShader->lightS(), lightStrength / 10.0f);
-
- // Draw the object
- m_drawer->drawObject(m_barShader, m_barObj, 0, m_depthTexture);
- } else
-#endif
- {
- // Set shadowless shader bindings
- m_barShader->setUniformValue(m_barShader->lightS(), lightStrength);
-
- // Draw the object
- m_drawer->drawObject(m_barShader, m_barObj);
- }
- }
- }
-
- // Release bar shader
- m_barShader->release();
-#if 1
- // Bind background shader
- m_backgroundShader->bind();
- if (m_bgrHasAlpha) {
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
-
- // Draw background
- if (m_backgroundObj) {
- QMatrix4x4 modelMatrix;
- QMatrix4x4 MVPMatrix;
- QMatrix4x4 depthMVPMatrix;
- QMatrix4x4 itModelMatrix;
-
- modelMatrix.translate(0.0f, -m_yAdjustment, zComp);
- modelMatrix.scale(QVector3D(m_areaSize.width() / m_scaleFactor,
- 1.0f,
- m_areaSize.height() / m_scaleFactor));
- modelMatrix.rotate(-90.0f, 1.0f, 0.0f, 0.0f);
- itModelMatrix.scale(QVector3D(m_areaSize.width() / m_scaleFactor,
- 1.0f,
- m_areaSize.height() / m_scaleFactor));
-
-#ifdef SHOW_DEPTH_TEXTURE_SCENE
- MVPMatrix = depthProjectionMatrix * depthViewMatrix * modelMatrix;
-#else
- MVPMatrix = projectionMatrix * viewMatrix * modelMatrix;
-#endif
- depthMVPMatrix = depthProjectionMatrix * depthViewMatrix * modelMatrix;
-
- // Set shader bindings
- m_backgroundShader->setUniformValue(m_backgroundShader->lightP(), lightPos);
- m_backgroundShader->setUniformValue(m_backgroundShader->view(), viewMatrix);
- m_backgroundShader->setUniformValue(m_backgroundShader->model(), modelMatrix);
- m_backgroundShader->setUniformValue(m_backgroundShader->nModel(),
- itModelMatrix.inverted().transposed());
- m_backgroundShader->setUniformValue(m_backgroundShader->MVP(), MVPMatrix);
- m_backgroundShader->setUniformValue(m_backgroundShader->ambientS(),
- m_theme->m_ambientStrength * 3.0f);
-
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- // Set shadow shader bindings
- m_backgroundShader->setUniformValue(m_backgroundShader->shadowQ(),
- m_shadowQualityToShader);
- m_backgroundShader->setUniformValue(m_backgroundShader->depth(),
- depthMVPMatrix);
- m_backgroundShader->setUniformValue(m_backgroundShader->lightS(),
- m_theme->m_lightStrength / 25.0f);
-
- // Draw the object
- m_drawer->drawObject(m_backgroundShader, m_backgroundObj, m_bgrTexture, m_depthTexture);
- } else
-#endif
- {
- // Set shadowless shader bindings
- m_backgroundShader->setUniformValue(m_backgroundShader->lightS(),
- m_theme->m_lightStrength);
-
- // Draw the object
- m_drawer->drawObject(m_backgroundShader, m_backgroundObj, m_bgrTexture);
- }
- }
-
- // Disable textures
- glDisable(GL_TEXTURE_2D);
- if (m_bgrHasAlpha)
- glDisable(GL_BLEND);
-
- // Release background shader
- m_backgroundShader->release();
-#endif
-
- // Handle zoom activation and label drawing
- if (!barSelectionFound) {
- // We have no ownership, don't delete. Just NULL the pointer.
- m_selectedBar = NULL;
- //if (m_zoomActivated && Maps3DController::MouseOnOverview == m_mousePressed) {
- //m_sceneViewPort = QRect(0, 0, width(), height());
- //m_zoomActivated = false;
- //}
- } /*else if (m_selectionMode >= ModeZoomRow
- && Maps3DController::MouseOnScene == m_mousePressed) {
- // Activate zoom mode
- m_zoomActivated = true;
- m_sceneViewPort = QRect(0, height() - height() / 5, width() / 5, height() / 5);
-
- // Create label textures
- for (int col = 0; col < m_zoomSelection->row().size(); col++) {
- QDataItem *item = m_zoomSelection->getItem(col);
- m_drawer->generateLabelTexture(item);
- }
- }*/ else {
- // Draw the selection label
- m_labelShader->bind();
- glDisable(GL_DEPTH_TEST);
- glEnable(GL_TEXTURE_2D);
- if (m_labelTransparency > QDataVis::TransparencyNone) {
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
-
- LabelItem &labelItem = m_selectedBar->selectionLabelItem();
- if (m_previouslySelectedBar != m_selectedBar || m_updateLabels || !labelItem.textureId()) {
- m_drawer->generateLabelItem(labelItem, m_selectedBar->selectionLabel());
- m_previouslySelectedBar = m_selectedBar;
- }
-
- m_drawer->drawLabel(*m_selectedBar, labelItem,
- viewMatrix, projectionMatrix,
- QVector3D(0.0f, m_yAdjustment, zComp),
- QVector3D(0.0f, 0.0f, 0.0f), m_selectedBar->height(),
- m_selectionMode, m_labelShader,
- m_labelObj, m_camera, true);
-
- glDisable(GL_TEXTURE_2D);
- if (m_labelTransparency > QDataVis::TransparencyNone)
- glDisable(GL_BLEND);
- glEnable(GL_DEPTH_TEST);
-
- // Release label shader
- m_labelShader->release();
-
- // Reset label update flag; they should have been updated when we get here
- m_updateLabels = false;
- }
-#if 0
- // TODO: Calculations done temporarily here. When optimizing, move to after data set addition? Keep drawing of the labels here.
- // Bind label shader
- m_labelShader->bind();
-
- glEnable(GL_TEXTURE_2D);
- if (m_labelTransparency > TransparencyNone) {
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- }
-
- // Calculate the positions for row and column labels and store them into QDataItems (and QDataRows?)
- for (int row = 0; row != m_sampleCount.second; row += 1) {
- // Go through all rows and get position of max+1 or min-1 column, depending on x flip
- // We need only positions for them, labels have already been generated at QDataSet. Just add LabelItems
- rowPos = (row + 1) * (m_barSpacing.height());
- barPos = 0;
- GLfloat rotLabelX = -90.0f;
- GLfloat rotLabelY = 0.0f;
- Qt::AlignmentFlag alignment = Qt::AlignRight;
- if (m_zFlipped)
- rotLabelY = 180.0f;
- if (m_xFlipped) {
- barPos = (m_sampleCount.first + 1) * (m_barSpacing.width());
- alignment = Qt::AlignLeft;
- }
- QVector3D labelPos = QVector3D((m_rowWidth - barPos) / m_scaleFactor,
- -m_yAdjustment + 0.005f, // raise a bit over background to avoid depth "glimmering"
- (m_columnDepth - rowPos) / m_scaleFactor + zComp);
-
- // TODO: Try it; draw the label here
-
- // Create a data item
- QDataItem *label = new QDataItem();
- label->setTranslation(labelPos);
- if (m_data->d_ptr->rowLabelItems().size() > row) {
- label->setLabel(m_data->d_ptr->rowLabelItems().at(m_data->d_ptr->rowLabelItems().size()
- - row - 1));
- }
-
- //qDebug() << "labelPos, row" << row + 1 << ":" << labelPos << m_dataSet->rowLabels().at(row);
-
- m_drawer->drawLabel(*label, label->label(), viewMatrix, projectionMatrix,
- QVector3D(0.0f, m_yAdjustment, zComp),
- QVector3D(rotLabelX, rotLabelY, 0.0f), m_heightNormalizer,
- m_selectionMode, m_labelShader,
- m_labelObj, true, true, Drawer::LabelMid, alignment);
-
- delete label;
- }
- for (int bar = 0; bar != m_sampleCount.first; bar += 1) {
- // Go through all columns and get position of max+1 or min-1 row, depending on z flip
- // We need only positions for them, labels have already been generated at QDataSet. Just add LabelItems
- barPos = (bar + 1) * (m_barSpacing.width());
- rowPos = 0;
- GLfloat rotLabelX = -90.0f;
- GLfloat rotLabelY = 90.0f;
- Qt::AlignmentFlag alignment = Qt::AlignLeft;
- if (m_xFlipped)
- rotLabelY = -90.0f;
- if (m_zFlipped) {
- rowPos = (m_sampleCount.second + 1) * (m_barSpacing.height());
- alignment = Qt::AlignRight;
- }
- QVector3D labelPos = QVector3D((m_rowWidth - barPos) / m_scaleFactor,
- -m_yAdjustment + 0.005f, // raise a bit over background to avoid depth "glimmering"
- (m_columnDepth - rowPos) / m_scaleFactor + zComp);
-
- // TODO: Try it; draw the label here
-
- // Create a data item
- QDataItem *label = new QDataItem();
- label->setTranslation(labelPos);
- if (m_data->d_ptr->columnLabelItems().size() > bar) {
- label->setLabel(m_data->d_ptr->columnLabelItems().at(
- m_data->d_ptr->columnLabelItems().size() - bar - 1));
- }
-
- //qDebug() << "labelPos, col" << bar + 1 << ":" << labelPos << m_dataSet->columnLabels().at(bar);
-
- m_drawer->drawLabel(*label, label->label(), viewMatrix, projectionMatrix,
- QVector3D(0.0f, m_yAdjustment, zComp),
- QVector3D(rotLabelX, rotLabelY, 0.0f), m_heightNormalizer,
- m_selectionMode, m_labelShader,
- m_labelObj, true, true, Drawer::LabelMid, alignment);
-
- delete label;
- }
- glDisable(GL_TEXTURE_2D);
- if (m_labelTransparency > TransparencyNone)
- glDisable(GL_BLEND);
-
- // Release label shader
- m_labelShader->release();
-#endif
-#endif
-#endif
-}
-
-#if defined(Q_OS_ANDROID)
-/*!
- * \internal
- */
-void Maps3DController::mouseDoubleClickEvent(QMouseEvent *event)
-{
- if (!m_zoomActivated) {
- m_mousePressed = Maps3DController::MouseOnScene;
- // update mouse positions to prevent jumping when releasing or repressing a button
- m_mousePos = event->pos();
- }
-}
-
-/*!
- * \internal
- */
-void Maps3DController::touchEvent(QTouchEvent *event)
-{
- static int prevDistance = 0;
-
- QList<QTouchEvent::TouchPoint> points;
- points = event->touchPoints();
-
- if (points.count() == 2) {
- m_mousePressed = Maps3DController::MouseOnPinch;
-
- QPointF distance = points.at(0).pos() - points.at(1).pos();
- int newDistance = distance.manhattanLength();
- int zoomRate = 1;
- if (m_zoomLevel > 100)
- zoomRate = 5;
- if (newDistance > prevDistance)
- m_zoomLevel += zoomRate;
- else
- m_zoomLevel -= zoomRate;
- if (m_zoomLevel > 500)
- m_zoomLevel = 500;
- else if (m_zoomLevel < 10)
- m_zoomLevel = 10;
- prevDistance = newDistance;
- //qDebug() << "distance" << distance.manhattanLength();
- }
-}
-#endif
-
-/*!
- * \internal
- */
-void Maps3DController::mousePressEvent(QMouseEvent *event, const QPoint &mousePos)
-{
- if (Qt::LeftButton == event->button()) {
- if (m_zoomActivated) {
- //qDebug() << event->pos().x() << event->pos().y() << m_sceneViewPort << m_zoomViewPort;
- if (mousePos.x() <= m_sceneViewPort.width()
- && mousePos.y() <= m_sceneViewPort.height()) {
- m_mousePressed = Maps3DController::MouseOnOverview;
- //qDebug() << "Mouse pressed on overview";
- } else {
- m_mousePressed = Maps3DController::MouseOnZoom;
- //qDebug() << "Mouse pressed on zoom";
- }
- } else {
-#if !defined(Q_OS_ANDROID)
- m_mousePressed = Maps3DController::MouseOnScene;
-#else
- m_mousePressed = Maps3DController::MouseRotating;
-#endif
- // update mouse positions to prevent jumping when releasing or repressing a button
- m_mousePos = mousePos;
- //qDebug() << "Mouse pressed on scene";
- }
- } else if (Qt::MiddleButton == event->button()) {
- // reset rotations
- m_mousePos = QPoint(0, 0);
- } else if (Qt::RightButton == event->button()) {
-#if !defined(Q_OS_ANDROID)
- m_mousePressed = Maps3DController::MouseRotating;
-#else
- m_mousePressed = Maps3DController::MouseOnScene;
-#endif
- // update mouse positions to prevent jumping when releasing or repressing a button
- m_mousePos = mousePos;
- }
- m_camera->updateMousePos(m_mousePos);
-}
-
-/*!
- * \internal
- */
-void Maps3DController::mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos)
-{
- Q_UNUSED(event);
- //qDebug() << "mouse button released" << event->button();
- if (Maps3DController::MouseRotating == m_mousePressed) {
- // update mouse positions to prevent jumping when releasing or repressing a button
- m_mousePos = mousePos;
- m_camera->updateMousePos(mousePos);
- }
- m_mousePressed = Maps3DController::MouseNone;
-}
-
-/*!
- * \internal
- */
-void Maps3DController::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos)
-{
- Q_UNUSED(event);
- if (Maps3DController::MouseRotating == m_mousePressed) {
- //qDebug() << "mouse moved while pressed" << event->pos();
- m_mousePos = mousePos;
- }
-#if 0
- // TODO: Testi - laske kursorin sijainti scenessä
- QPointF mouse3D((2.0f * event->pos().x() - width()) / height(),
- 1.0f - (2.0f * event->pos().y()) / height());
- //qDebug() << "mouse position in scene" << mouse3D;
-
- // TODO: Testi laske focal point
- GLfloat focalPoint = tan(45.0f / 2.0f);
-
- // TODO: Testi - laske viewmatriisin kerroin
- QVector3D worldRay = QVector3D(0.0f, 0.0f, 0.0f) - QVector3D(mouse3D.x(), mouse3D.y(),
- -focalPoint);
- //qDebug() << "worldRay" << worldRay;
- // multiply viewmatrix with this to get something?
-#endif
-}
-
-/*!
- * \internal
- */
-void Maps3DController::wheelEvent(QWheelEvent *event)
-{
- if (m_zoomLevel > 100)
- m_zoomLevel += event->angleDelta().y() / 12;
- else if (m_zoomLevel > 50)
- m_zoomLevel += event->angleDelta().y() / 60;
- else
- m_zoomLevel += event->angleDelta().y() / 120;
- if (m_zoomLevel > 500)
- m_zoomLevel = 500;
- else if (m_zoomLevel < 10)
- m_zoomLevel = 10;
-}
-
-/*!
- * \internal
- */
-void Maps3DController::resizeNotify()
-{
- if (!m_isInitialized)
- return;
-
- // Set view port
- if (m_zoomActivated)
- m_sceneViewPort = QRect(0, height() - height() / 5, width() / 5, height() / 5);
- else
- m_sceneViewPort = QRect(0, 0, width(), height());
- m_zoomViewPort = QRect(0, 0, width(), height());
-
- // Calculate zoom level based on aspect ratio
- GLfloat div;
- GLfloat zoomAdjustment;
- div = qMin(width(), height());
- zoomAdjustment = defaultRatio * ((width() / div) / (height() / div));
- //qDebug() << "zoom adjustment" << zoomAdjustment;
- m_autoScaleAdjustment = qMin(zoomAdjustment, 1.0f); // clamp to 1.0f
-
- // Re-init selection buffer
- initSelectionBuffer();
-
-#if !defined(QT_OPENGL_ES_2)
- // Re-init depth buffer
- initDepthBuffer();
-#endif
-}
-
-void Maps3DController::setBarSpecs(const QVector3D &thickness,
- Q3DMaps::AdjustmentDirection direction)
-{
- m_barThickness = thickness;
- m_adjustDirection = direction;
-}
-
-void Maps3DController::setBarType(QDataVis::MeshStyle style, bool smooth)
-{
- if (style == QDataVis::Bars) {
- if (smooth)
- m_objFile = QStringLiteral(":/defaultMeshes/barSmooth");
- else
- m_objFile = QStringLiteral(":/defaultMeshes/bar");
- } else if (style == QDataVis::Pyramids) {
- if (smooth)
- m_objFile = QStringLiteral(":/defaultMeshes/pyramidSmooth");
- else
- m_objFile = QStringLiteral(":/defaultMeshes/pyramid");
- } else if (style == QDataVis::Cones) {
- if (smooth)
- m_objFile = QStringLiteral(":/defaultMeshes/coneSmooth");
- else
- m_objFile = QStringLiteral(":/defaultMeshes/cone");
- } else if (style == QDataVis::Cylinders) {
- if (smooth)
- m_objFile = QStringLiteral(":/defaultMeshes/cylinderSmooth");
- else
- m_objFile = QStringLiteral(":/defaultMeshes/cylinder");
- } else if (style == QDataVis::BevelBars) {
- if (smooth)
- m_objFile = QStringLiteral(":/defaultMeshes/bevelbarSmooth");
- else
- m_objFile = QStringLiteral(":/defaultMeshes/bevelbar");
- } else if (style == QDataVis::Spheres) {
- if (smooth)
- m_objFile = QStringLiteral(":/defaultMeshes/sphereSmooth");
- else
- m_objFile = QStringLiteral(":/defaultMeshes/sphere");
- }
- // Reload mesh data
- if (m_isInitialized)
- loadBarMesh();
-}
-
-void Maps3DController::setMeshFileName(const QString &objFileName)
-{
- m_objFile = objFileName;
-}
-
-void Maps3DController::setCameraPreset(QDataVis::CameraPreset preset)
-{
- m_camera->setCameraPreset(preset);
-}
-
-void Maps3DController::setCameraPosition(GLfloat horizontal, GLfloat vertical, GLint distance)
-{
- m_horizontalRotation = qBound(-180.0f, horizontal, 180.0f);
- m_verticalRotation = qBound(0.0f, vertical, 90.0f);
- m_zoomLevel = qBound(10, distance, 500);
- m_camera->setCameraRotation(QPointF(m_horizontalRotation, m_verticalRotation));
- //qDebug() << "camera rotation set to" << m_horizontalRotation << m_verticalRotation;
-}
-
-void Maps3DController::setTheme(QDataVis::ColorTheme colorTheme)
-{
- m_theme->useColorTheme(colorTheme);
- m_drawer->setTheme(*m_theme);
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- // Re-init shaders
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTexColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTex"));
- }
- } else {
- // Re-init shaders
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragmentColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragment"));
- }
- }
-#else
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentColorOnYES2"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentES2"));
- }
-#endif
- m_updateLabels = true;
-}
-
-void Maps3DController::setBarColor(const QColor &baseColor, const QColor &heightColor,
- bool uniform)
-{
- m_theme->m_baseColor = baseColor;
- m_theme->m_heightColor = heightColor;
- if (m_theme->m_uniformColor != uniform) {
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- // Re-init shaders
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTexColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTex"));
- }
- } else {
- // Re-init shaders
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragmentColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragment"));
- }
- }
-#else
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentColorOnYES2"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentES2"));
- }
-#endif
- }
- m_theme->m_uniformColor = uniform;
-}
-
-void Maps3DController::setAreaSpecs(const QRect &areaRect, const QImage &image)
-{
- calculateSceneScalingFactors(areaRect);
- setImage(image);
-}
-
-void Maps3DController::setImage(const QImage &image)
-{
- m_bgrHasAlpha = image.hasAlphaChannel();
- if (m_bgrTexture)
- glDeleteTextures(1, &m_bgrTexture);
- m_bgrTexture = m_textureHelper->create2DTexture(image, true, true);
-}
-
-void Maps3DController::setSelectionMode(QDataVis::SelectionMode mode)
-{
- m_selectionMode = mode;
- // Disable zoom if mode changes
- //m_zoomActivated = false;
- //m_sceneViewPort = QRect(0, 0, width(), height());
-}
-
-QDataVis::SelectionMode Maps3DController::selectionMode()
-{
- return m_selectionMode;
-}
-
-void Maps3DController::setFont(const QFont &font)
-{
- m_font = font;
- m_drawer->setFont(font);
- m_updateLabels = true;
-}
-
-QFont Maps3DController::font()
-{
- return m_font;
-}
-
-void Maps3DController::setLabelTransparency(QDataVis::LabelTransparency transparency)
-{
- m_labelTransparency = transparency;
- m_drawer->setTransparency(transparency);
- m_updateLabels = true;
-}
-
-QDataVis::LabelTransparency Maps3DController::labelTransparency()
-{
- return m_labelTransparency;
-}
-
-QDataVis::ShadowQuality Maps3DController::setShadowQuality(QDataVis::ShadowQuality quality)
-{
- m_shadowQuality = quality;
- switch (quality) {
- case QDataVis::ShadowLow:
- //qDebug() << "ShadowLow";
- m_shadowQualityToShader = 33.3f;
- break;
- case QDataVis::ShadowMedium:
- //qDebug() << "ShadowMedium";
- m_shadowQualityToShader = 100.0f;
- break;
- case QDataVis::ShadowHigh:
- //qDebug() << "ShadowHigh";
- m_shadowQualityToShader = 200.0f;
- break;
- default:
- m_shadowQualityToShader = 0.0f;
- break;
- }
- if (m_isInitialized) {
-#if !defined(QT_OPENGL_ES_2)
- if (m_shadowQuality > QDataVis::ShadowNone) {
- // Re-init shaders
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTexColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadowNoTex"));
- }
- initBackgroundShaders(QStringLiteral(":/shaders/vertexShadow"),
- QStringLiteral(":/shaders/fragmentShadow"));
- } else {
- // Re-init shaders
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragmentColorOnY"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertex"),
- QStringLiteral(":/shaders/fragment"));
- }
- initBackgroundShaders(QStringLiteral(":/shaders/vertexTexture"),
- QStringLiteral(":/shaders/fragmentTexture"));
- }
- // Re-init depth buffer
- initDepthBuffer();
-#else
- if (!m_theme->m_uniformColor) {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentColorOnYES2"));
- } else {
- initShaders(QStringLiteral(":/shaders/vertexES2"),
- QStringLiteral(":/shaders/fragmentES2"));
- }
- initBackgroundShaders(QStringLiteral(":/shaders/vertexTexture"), // Same vertex shader ok for ES2
- QStringLiteral(":/shaders/fragmentTextureES2"));
-#endif
- }
- return m_shadowQuality;
-}
-
-QDataVis::ShadowQuality Maps3DController::shadowQuality()
-{
- return m_shadowQuality;
-}
-
-
-
-const QSize Maps3DController::size()
-{
- return m_boundingRect.size();
-}
-
-const QRect Maps3DController::boundingRect()
-{
- return m_boundingRect;
-}
-
-void Maps3DController::setBoundingRect(const QRect boundingRect)
-{
- m_boundingRect = boundingRect;
- resizeNotify();
-}
-
-void Maps3DController::setWidth(const int width)
-{
- m_boundingRect.setWidth(width);
- resizeNotify();
-}
-
-int Maps3DController::width()
-{
- return m_boundingRect.width();
-}
-
-void Maps3DController::setHeight(const int height)
-{
- m_boundingRect.setHeight(height);
- resizeNotify();
-}
-
-int Maps3DController::height()
-{
- return m_boundingRect.height();
-}
-
-void Maps3DController::setX(const int x)
-{
- m_boundingRect.setX(x);
-}
-
-int Maps3DController::x()
-{
- return m_boundingRect.x();
-}
-
-void Maps3DController::setY(const int y)
-{
- m_boundingRect.setY(y);
-}
-
-int Maps3DController::y()
-{
- return m_boundingRect.y();
-}
-
-void Maps3DController::loadBarMesh()
-{
- if (m_barObj)
- delete m_barObj;
- m_barObj = new ObjectHelper(m_objFile);
- m_barObj->load();
-}
-
-void Maps3DController::loadBackgroundMesh()
-{
- if (m_backgroundObj)
- delete m_backgroundObj;
- m_backgroundObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/label"));
- m_backgroundObj->load();
-}
-
-void Maps3DController::loadGridLineMesh()
-{
- if (m_gridLineObj)
- delete m_gridLineObj;
- m_gridLineObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/bar"));
- m_gridLineObj->load();
-}
-
-void Maps3DController::loadLabelMesh()
-{
- if (m_labelObj)
- delete m_labelObj;
- m_labelObj = new ObjectHelper(QStringLiteral(":/defaultMeshes/label"));
- m_labelObj->load();
-}
-
-void Maps3DController::initShaders(const QString &vertexShader, const QString &fragmentShader)
-{
- if (m_barShader)
- delete m_barShader;
- m_barShader = new ShaderHelper(this, vertexShader, fragmentShader);
- m_barShader->initialize();
-}
-
-void Maps3DController::initSelectionShader()
-{
- if (m_selectionShader)
- delete m_selectionShader;
- m_selectionShader = new ShaderHelper(this, QStringLiteral(":/shaders/vertexSelection"),
- QStringLiteral(":/shaders/fragmentSelection"));
- m_selectionShader->initialize();
-}
-
-void Maps3DController::initSelectionBuffer()
-{
- if (m_selectionTexture)
- m_textureHelper->deleteTexture(&m_selectionTexture);
-
- m_selectionTexture = m_textureHelper->createSelectionTexture(this->size(),
- m_selectionFrameBuffer,
- m_selectionDepthBuffer);
-}
-
-#if !defined(QT_OPENGL_ES_2)
-void Maps3DController::initDepthShader()
-{
- if (m_depthShader)
- delete m_depthShader;
- m_depthShader = new ShaderHelper(this, QStringLiteral(":/shaders/vertexDepth"),
- QStringLiteral(":/shaders/fragmentDepth"));
- m_depthShader->initialize();
-}
-
-void Maps3DController::initDepthBuffer()
-{
- if (!m_isInitialized)
- return;
-
- if (m_depthTexture) {
- m_textureHelper->deleteTexture(&m_depthTexture);
- m_depthTexture = 0;
- }
-
- if (m_shadowQuality > QDataVis::ShadowNone) {
- m_depthTexture = m_textureHelper->createDepthTexture(this->size(), m_depthFrameBuffer,
- m_shadowQuality);
- if (!m_depthTexture) {
- switch (m_shadowQuality) {
- case QDataVis::ShadowHigh:
- qWarning("Creating high quality shadows failed. Changing to medium quality.");
- (void)setShadowQuality(QDataVis::ShadowMedium);
- break;
- case QDataVis::ShadowMedium:
- qWarning("Creating medium quality shadows failed. Changing to low quality.");
- (void)setShadowQuality(QDataVis::ShadowLow);
- break;
- case QDataVis::ShadowLow:
- qWarning("Creating low quality shadows failed. Switching shadows off.");
- (void)setShadowQuality(QDataVis::ShadowNone);
- break;
- default:
- // Cannot get here
- break;
- }
- }
- }
-}
-#endif
-
-void Maps3DController::initBackgroundShaders(const QString &vertexShader,
- const QString &fragmentShader)
-{
- if (m_backgroundShader)
- delete m_backgroundShader;
- m_backgroundShader = new ShaderHelper(this, vertexShader, fragmentShader);
- m_backgroundShader->initialize();
-}
-
-void Maps3DController::initLabelShaders(const QString &vertexShader, const QString &fragmentShader)
-{
- if (m_labelShader)
- delete m_labelShader;
- m_labelShader = new ShaderHelper(this, vertexShader, fragmentShader);
- m_labelShader->initialize();
-}
-
-void Maps3DController::updateTextures()
-{
- // Drawer has changed; this flag needs to be checked when checking if we need to update labels
- m_updateLabels = true;
-}
-
-void Maps3DController::calculateSceneScalingFactors(const QRect &areaRect)
-{
- m_areaSize = areaRect.size();
- // Calculate scaling factor so that we can be sure the whole area fits to positive z space
- if (zComp > 1.0f)
- m_scaleFactor = qMax(m_areaSize.width(), m_areaSize.height()) / zComp;
- else
- m_scaleFactor = qMax(m_areaSize.width(), m_areaSize.height());
- //qDebug() << "scaleFactor" << m_scaleFactor;
-}
-
-void Maps3DController::calculateHeightAdjustment(const QPair<GLfloat, GLfloat> &limits)
-{
- // 2.0f = max difference between minimum and maximum value after scaling with m_heightNormalizer
- m_yAdjustment = 2.0f - ((limits.second - limits.first) / m_heightNormalizer);
- //qDebug() << m_yAdjustment;
-}
-
-void Maps3DController::calculateTranslation(MapRenderItem &item)
-{
- // We need to convert position (which is in coordinates), to translation (which has origin in the center and is scaled)
- // -> move pos(center, center) to trans(0, 0) and pos(0, 0) to trans(left, top)
- GLfloat xTrans = 2.0f * (item.mapPosition().x() - (m_areaSize.width() / 2.0f))
- / m_scaleFactor;
- GLfloat zTrans = 2.0f * (item.mapPosition().y() - (m_areaSize.height() / 2.0f))
- / m_scaleFactor;
- //qDebug() << "x, y" << item.mapPosition().x() << item.mapPosition().y();
- item.setTranslation(QVector3D(xTrans, 0.0f, zTrans + zComp));
- //qDebug() << item.translation();
-}
-
-Maps3DController::SelectionType Maps3DController::isSelected(GLint bar, const QVector3D &selection)
-{
- GLubyte barIdxRed = 0;
- GLubyte barIdxGreen = 0;
- GLubyte barIdxBlue = 0;
- //static QVector3D prevSel = selection; // TODO: For debugging
- SelectionType isSelectedType = SelectionNone;
-
- if (selection == skipColor)
- return isSelectedType; // skip window
-
- if (bar <= 255) {
- barIdxRed = bar;
- } else if (bar <= 65535) {
- barIdxGreen = bar / 256;
- barIdxRed = bar % 256;
- } else {
- barIdxBlue = bar / 65535;
- barIdxGreen = bar % 65535;
- barIdxRed = bar % 256;
- }
-
- QVector3D current = QVector3D(barIdxRed, barIdxGreen, barIdxBlue);
-
- // TODO: For debugging
- //if (selection != prevSel) {
- // qDebug() << selection.x() << selection .y() << selection.z();
- // prevSel = selection;
- //}
-
- if (current == selection)
- isSelectedType = SelectionBar;
-
- return isSelectedType;
-}
-
-bool Maps3DController::isValid(const MapRenderItem &item)
-{
- bool retval = true;
- if (item.value() < 0) {
- qCritical("Data item value out of range");
- retval = false;
- } else if (item.mapPosition().x() < 0 || item.mapPosition().x() > m_areaSize.width()) {
- qCritical("Data item x position out of range");
- retval = false;
- } else if (item.mapPosition().y() < 0 || item.mapPosition().y() > m_areaSize.height()) {
- qCritical("Data item y position out of range");
- retval = false;
- }
- return retval;
-}
-
-void Maps3DController::setDataProxy(QMapDataProxy *proxy)
-{
- delete m_data;
- m_data = proxy;
-
- QObject::connect(m_data, &QMapDataProxy::arrayReset, this, &Maps3DController::handleArrayReset);
- QObject::connect(m_data, &QMapDataProxy::itemsAdded, this, &Maps3DController::handleItemsAdded);
- QObject::connect(m_data, &QMapDataProxy::itemsChanged, this, &Maps3DController::handleItemsChanged);
- QObject::connect(m_data, &QMapDataProxy::itemsRemoved, this, &Maps3DController::handleItemsRemoved);
- QObject::connect(m_data, &QMapDataProxy::itemsInserted, this, &Maps3DController::handleItemsInserted);
-
- // emit something? Renderer might be interested?
-}
-
-QMapDataProxy *Maps3DController::dataProxy()
-{
- return m_data;
-}
-
-void Maps3DController::handleLimitChange()
-{
- QPair<GLfloat, GLfloat> limits = m_data->dptr()->limitValues();
- m_heightNormalizer = qMax(qAbs(limits.second), qAbs(limits.first));
- calculateHeightAdjustment(limits);
-
- //emit limitsChanged(limits);
-}
-
-void Maps3DController::handleArrayReset()
-{
- handleLimitChange();
- m_valuesDirty = true;
-}
-
-void Maps3DController::handleItemsAdded(int startIndex, int count)
-{
- Q_UNUSED(startIndex)
- Q_UNUSED(count)
- // TODO should dirty only affected values?
- handleLimitChange();
- m_valuesDirty = true;
-}
-
-void Maps3DController::handleItemsChanged(int startIndex, int count)
-{
- Q_UNUSED(startIndex)
- Q_UNUSED(count)
- // TODO should dirty only affected values?
- handleLimitChange();
- m_valuesDirty = true;
-}
-
-void Maps3DController::handleItemsRemoved(int startIndex, int count)
-{
- Q_UNUSED(startIndex)
- Q_UNUSED(count)
- // TODO should dirty only affected values?
- handleLimitChange();
- m_valuesDirty = true;
-}
-
-void Maps3DController::handleItemsInserted(int startIndex, int count)
-{
- Q_UNUSED(startIndex)
- Q_UNUSED(count)
- // TODO should dirty only affected values?
- handleLimitChange();
- m_valuesDirty = true;
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/engine/maps3dcontroller_p.h b/src/datavis3d/engine/maps3dcontroller_p.h
deleted file mode 100644
index 7f87db9d..00000000
--- a/src/datavis3d/engine/maps3dcontroller_p.h
+++ /dev/null
@@ -1,249 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef MAPS3DCONTROLLER_P_H
-#define MAPS3DCONTROLLER_P_H
-
-#include "datavis3dglobal_p.h"
-#include "q3dmaps.h"
-#include "maprenderitem_p.h"
-#include <QOpenGLFunctions>
-#include <QFont>
-
-//#define DISPLAY_RENDER_SPEED
-
-class QPoint;
-class QSizeF;
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class ShaderHelper;
-class ObjectHelper;
-class TextureHelper;
-class Theme;
-class Drawer;
-class Maps3DRenderer;
-class CameraHelper;
-class QMapDataProxy;
-
-class QT_DATAVIS3D_EXPORT Maps3DController : public QObject, public QOpenGLFunctions
-{
- Q_OBJECT
-public:
- enum SelectionType {
- SelectionNone = 0,
- SelectionBar,
- SelectionRow,
- SelectionColumn
- };
-
- enum MousePressType {
- MouseNone = 0,
- MouseOnScene,
- MouseOnOverview,
- MouseOnZoom,
- MouseRotating,
- MouseOnPinch
- };
-
-public:
- Maps3DController(const QRect &rect);
- ~Maps3DController();
-
- void initializeOpenGL();
- virtual void synchDataToRenderer();
- void render(const GLuint defaultFboHandle = 0);
-
- // bar specifications; base thickness in x, y and z, enum to indicate which direction is increased with value
- // TODO: Start using thickness also in adjustment direction; use it as a relative value.
- // For example, in AdjustAll mode setting thickness to (0.1f, 1.0f, 0.5f) would apply value to
- // x at 10%, y at 100% and z at 50%. If a dimension is not included, given thickness states its absolute value.
- void setBarSpecs(const QVector3D &thickness = QVector3D(1.0f, 1.0f, 1.0f),
- Q3DMaps::AdjustmentDirection direction = Q3DMaps::AdjustHeight);
-
- // bar type; bars (=cubes), pyramids, cones, cylinders, balls, etc.
- void setBarType(QDataVis::MeshStyle style, bool smooth = false);
-
- // override bar type with own mesh
- void setMeshFileName(const QString &objFileName);
-
- // Select preset camera placement
- void setCameraPreset(QDataVis::CameraPreset preset);
-
- // Set camera rotation if you don't want to use the presets (in horizontal (-180...180) and
- // vertical (0...90) angles and distance in percentage (10...500))
- void setCameraPosition(GLfloat horizontal, GLfloat vertical, GLint distance = 100);
-
- // Set theme (bar colors, shaders, window color, background colors, light intensity and text colors are affected)
- void setTheme(QDataVis::ColorTheme theme);
-
- // Set color if you don't want to use themes. Set uniform to false if you want the (height) color to change from bottom to top
- void setBarColor(const QColor &baseColor, const QColor &heightColor, bool uniform = true);
-
- // Set area specs
- void setAreaSpecs(const QRect &areaRect, const QImage &image);
-
- // Set area image
- void setImage(const QImage &image);
-
- // TODO: light placement API
-
- // Change selection mode; single bar, bar and row, bar and column, or all
- void setSelectionMode(QDataVis::SelectionMode mode);
- QDataVis::SelectionMode selectionMode();
-
- // Set font
- void setFont(const QFont &font);
- QFont font();
-
- // Label transparency adjustment
- void setLabelTransparency(QDataVis::LabelTransparency transparency);
- QDataVis::LabelTransparency labelTransparency();
-
- // Adjust shadow quality
- QDataVis::ShadowQuality setShadowQuality(QDataVis::ShadowQuality quality);
- QDataVis::ShadowQuality shadowQuality();
-
- // Size
- const QSize size();
- const QRect boundingRect();
- void setBoundingRect(const QRect boundingRect);
- void setWidth(const int width);
- int width();
- void setHeight(const int height);
- int height();
- void setX(const int x);
- int x();
- void setY(const int y);
- int y();
-
-#if defined(Q_OS_ANDROID)
- void mouseDoubleClickEvent(QMouseEvent *event);
- void touchEvent(QTouchEvent *event);
-#endif
- void mousePressEvent(QMouseEvent *event, const QPoint &mousePos);
- void mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos);
- void mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos);
- void wheelEvent(QWheelEvent *event);
- void resizeNotify();
-
- void loadBarMesh();
- void loadBackgroundMesh();
- void loadGridLineMesh();
- void loadLabelMesh();
- void initShaders(const QString &vertexShader, const QString &fragmentShader);
- void initSelectionShader();
- void initBackgroundShaders(const QString &vertexShader, const QString &fragmentShader);
- void initLabelShaders(const QString &vertexShader, const QString &fragmentShader);
- void initSelectionBuffer();
-#if !defined(QT_OPENGL_ES_2)
- void initDepthShader();
- void initDepthBuffer();
-#endif
- void updateTextures();
- void calculateSceneScalingFactors(const QRect &areaRect);
- void calculateHeightAdjustment(const QPair<GLfloat, GLfloat> &limits);
- void calculateTranslation(MapRenderItem &item);
- SelectionType isSelected(GLint bar, const QVector3D &selection);
- bool isValid(const MapRenderItem &item);
-
- // Sets the data proxy. Assumes ownership of the data proxy. Deletes old proxy.
- void setDataProxy(QMapDataProxy *proxy);
- QMapDataProxy *dataProxy();
-
- void handleLimitChange();
-
-public slots:
- void handleArrayReset();
- void handleItemsAdded(int startIndex, int count);
- void handleItemsChanged(int startIndex, int count);
- void handleItemsRemoved(int startIndex, int count);
- void handleItemsInserted(int startIndex, int count);
-
-private:
- void drawScene(const GLuint defaultFboHandle);
-
- Maps3DRenderer *m_renderer;
- CameraHelper *m_camera;
-
- ShaderHelper *m_barShader;
- ShaderHelper *m_depthShader;
- ShaderHelper *m_selectionShader;
- ShaderHelper *m_backgroundShader;
- ShaderHelper *m_labelShader;
- ObjectHelper *m_barObj;
- ObjectHelper *m_backgroundObj;
- ObjectHelper *m_gridLineObj;
- ObjectHelper *m_labelObj;
- QString m_objFile;
- MousePressType m_mousePressed;
- QPoint m_mousePos;
- GLint m_zoomLevel;
- GLfloat m_autoScaleAdjustment;
- GLfloat m_horizontalRotation;
- GLfloat m_verticalRotation;
- QVector3D m_barThickness;
- GLfloat m_heightNormalizer;
- GLfloat m_yAdjustment;
- GLfloat m_scaleFactor;
- Theme *m_theme;
- bool m_isInitialized;
- QDataVis::SelectionMode m_selectionMode;
- BarRenderItem *m_selectedBar; // points to renderitem array
- BarRenderItem *m_previouslySelectedBar; // points to renderitem array
- QString m_axisLabelX;
- QString m_axisLabelZ;
- QString m_axisLabelY;
- QRect m_sceneViewPort;
- QRect m_zoomViewPort;
- bool m_zoomActivated;
- TextureHelper *m_textureHelper;
- QDataVis::LabelTransparency m_labelTransparency;
- QFont m_font;
- Drawer *m_drawer;
- QSizeF m_areaSize;
- GLuint m_bgrTexture;
- GLuint m_depthTexture;
- GLuint m_selectionTexture;
- GLuint m_depthFrameBuffer;
- GLuint m_selectionFrameBuffer;
- GLuint m_selectionDepthBuffer;
- bool m_updateLabels;
- Q3DMaps::AdjustmentDirection m_adjustDirection;
- QDataVis::ShadowQuality m_shadowQuality;
- GLfloat m_shadowQualityToShader;
- bool m_bgrHasAlpha;
- QRect m_boundingRect;
- QMapDataProxy *m_data;
- bool m_valuesDirty;
- MapRenderItemArray m_renderItemArray;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/engine/maps3drenderer.cpp b/src/datavis3d/engine/maps3drenderer.cpp
deleted file mode 100644
index c05f2f51..00000000
--- a/src/datavis3d/engine/maps3drenderer.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "maps3dcontroller_p.h"
-#include "maps3drenderer_p.h"
-#include "camerahelper_p.h"
-#include "shaderhelper_p.h"
-#include "objecthelper_p.h"
-#include "texturehelper_p.h"
-#include "theme_p.h"
-#include "utils_p.h"
-#include "drawer_p.h"
-
-#include <QOpenGLFunctions>
-#include <QMatrix4x4>
-#include <QOpenGLPaintDevice>
-#include <QPainter>
-#include <QScreen>
-#include <QMouseEvent>
-
-#include <qmath.h>
-
-#include <QDebug>
-
-//#define DISPLAY_RENDER_SPEED
-
-// Uncommenting this draws the shadow map with wider FOV than scene itself, making the light
-// seem to be closer to scene than it actually is. This way shadows look slightly better (to me anyway)
-#define USE_WIDER_SHADOWS
-
-// You can verify that depth buffer drawing works correctly by uncommenting this.
-// You should see the scene from where the light is
-//#define SHOW_DEPTH_TEXTURE_SCENE
-
-#ifdef DISPLAY_RENDER_SPEED
-#include <QTime>
-#endif
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-//#define DISPLAY_FULL_DATA_ON_SELECTION // Append selection value text with row and column labels
-
-Maps3DRenderer::Maps3DRenderer(Maps3DController *controller) : QObject(controller)
-{
-}
-
-Maps3DRenderer::~Maps3DRenderer()
-{
-}
-
-void Maps3DRenderer::render(CameraHelper *camera, const GLuint defaultFboHandle)
-{
- Q_UNUSED(camera)
- Q_UNUSED(defaultFboHandle)
- // TODO: Implement
-}
-
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/engine/maps3drenderer_p.h b/src/datavis3d/engine/maps3drenderer_p.h
deleted file mode 100644
index 89054e83..00000000
--- a/src/datavis3d/engine/maps3drenderer_p.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef MAPS3DRENDERER_P_H
-#define MAPS3DRENDERER_P_H
-
-#include <QOpenGLFunctions>
-
-#include "datavis3dglobal_p.h"
-#include "camerahelper_p.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class Maps3DController;
-
-class QT_DATAVIS3D_EXPORT Maps3DRenderer : public QObject, public QOpenGLFunctions
-{
-
-public:
- explicit Maps3DRenderer(Maps3DController *controller);
- ~Maps3DRenderer();
-
- void render(CameraHelper *camera, const GLuint defaultFboHandle);
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/engine/q3dmaps.cpp b/src/datavis3d/engine/q3dmaps.cpp
deleted file mode 100644
index 3ff9bc7c..00000000
--- a/src/datavis3d/engine/q3dmaps.cpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "q3dmaps.h"
-#include "q3dmaps_p.h"
-#include "maps3dcontroller_p.h"
-
-#include <QMouseEvent>
-
-#include <QDebug>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-/*!
- * \class Q3DMaps
- * \inmodule QtDataVis3D
- * \brief The Q3DMaps class provides methods for rendering 3D bars on maps or other planes.
- * \since 1.0.0
- *
- * This class enables developers to render bars or objects on maps or other planes in 3D and to
- * view them by rotating the scene freely. Methods are provided for changing object types, themes
- * and so on.
- *
- * See methods themselves for more complete description.
- *
- * \sa Q3DBars, {Qt Data Visualization 3D C++ Classes}
- */
-
-/*!
- * Constructs Q3DMaps.
- */
-Q3DMaps::Q3DMaps()
- : d_ptr(new Q3DMapsPrivate(this, geometry()))
-{
- d_ptr->m_shared->initializeOpenGL();
-}
-
-/*!
- * Destructs Q3DMaps.
- */
-Q3DMaps::~Q3DMaps()
-{
-}
-
-/*!
- * \internal
- */
-void Q3DMaps::render()
-{
- d_ptr->m_shared->render();
-}
-
-#if defined(Q_OS_ANDROID)
-/*!
- * \internal
- */
-void Q3DMaps::mouseDoubleClickEvent(QMouseEvent *event)
-{
- d_ptr->m_shared->mouseDoubleClickEvent(event);
-}
-
-/*!
- * \internal
- */
-void Q3DMaps::touchEvent(QTouchEvent *event)
-{
- d_ptr->m_shared->touchEvent(event);
-}
-#endif
-
-/*!
- * \internal
- */
-void Q3DMaps::mousePressEvent(QMouseEvent *event)
-{
- d_ptr->m_shared->mousePressEvent(event, event->pos());
-}
-
-/*!
- * \internal
- */
-void Q3DMaps::mouseReleaseEvent(QMouseEvent *event)
-{
- d_ptr->m_shared->mouseReleaseEvent(event, event->pos());
-}
-
-/*!
- * \internal
- */
-void Q3DMaps::mouseMoveEvent(QMouseEvent *event)
-{
- d_ptr->m_shared->mouseMoveEvent(event, event->pos());
-}
-
-/*!
- * \internal
- */
-void Q3DMaps::wheelEvent(QWheelEvent *event)
-{
- d_ptr->m_shared->wheelEvent(event);
-}
-
-/*!
- * \internal
- */
-void Q3DMaps::resizeEvent(QResizeEvent *event)
-{
- Q_UNUSED(event);
- d_ptr->m_shared->setWidth(width());
- d_ptr->m_shared->setHeight(height());
- d_ptr->m_shared->resizeNotify();
-}
-
-// TODO: Document
-// Size
-void Q3DMaps::setWidth(const int width)
-{
- d_ptr->m_shared->setWidth(width);
- QWindow::setWidth(width);
-}
-
-void Q3DMaps::setHeight(const int height)
-{
- d_ptr->m_shared->setHeight(height);
- QWindow::setHeight(height);
-}
-
-void Q3DMaps::setBarSpecs(const QVector3D &thickness, AdjustmentDirection direction)
-{
- d_ptr->m_shared->setBarSpecs(thickness, direction);
-}
-
-void Q3DMaps::setBarType(QDataVis::MeshStyle style, bool smooth)
-{
- d_ptr->m_shared->setBarType(style, smooth);
-}
-
-void Q3DMaps::setMeshFileName(const QString &objFileName)
-{
- d_ptr->m_shared->setMeshFileName(objFileName);
-}
-
-void Q3DMaps::setCameraPreset(QDataVis::CameraPreset preset)
-{
- d_ptr->m_shared->setCameraPreset(preset);
-}
-
-void Q3DMaps::setCameraPosition(GLfloat horizontal, GLfloat vertical, GLint distance)
-{
- d_ptr->m_shared->setCameraPosition(horizontal, vertical, distance);
-}
-
-void Q3DMaps::setTheme(QDataVis::ColorTheme theme)
-{
- d_ptr->m_shared->setTheme(theme);
-}
-
-void Q3DMaps::setBarColor(const QColor &baseColor, const QColor &heightColor, bool uniform)
-{
- d_ptr->m_shared->setBarColor(baseColor, heightColor, uniform);
-}
-
-void Q3DMaps::setAreaSpecs(const QRect &areaRect, const QImage &image)
-{
- d_ptr->m_shared->setAreaSpecs(areaRect, image);
-}
-
-void Q3DMaps::setImage(const QImage &image)
-{
- d_ptr->m_shared->setImage(image);
-}
-
-void Q3DMaps::setSelectionMode(QDataVis::SelectionMode mode)
-{
- d_ptr->m_shared->setSelectionMode(mode);
-}
-
-QDataVis::SelectionMode Q3DMaps::selectionMode() const
-{
- return d_ptr->m_shared->selectionMode();
-}
-
-void Q3DMaps::setFont(const QFont &font)
-{
- d_ptr->m_shared->setFont(font);
-}
-
-QFont Q3DMaps::font() const
-{
- return d_ptr->m_shared->font();
-}
-
-void Q3DMaps::setLabelTransparency(QDataVis::LabelTransparency transparency)
-{
- d_ptr->m_shared->setLabelTransparency(transparency);
-}
-
-QDataVis::LabelTransparency Q3DMaps::labelTransparency() const
-{
- return d_ptr->m_shared->labelTransparency();
-}
-
-QDataVis::ShadowQuality Q3DMaps::setShadowQuality(QDataVis::ShadowQuality quality)
-{
- return d_ptr->m_shared->setShadowQuality(quality);
-}
-
-QDataVis::ShadowQuality Q3DMaps::shadowQuality() const
-{
- return d_ptr->m_shared->shadowQuality();
-}
-
-void Q3DMaps::setDataProxy(QMapDataProxy *proxy)
-{
- d_ptr->m_shared->setDataProxy(proxy);
-}
-
-QMapDataProxy *Q3DMaps::dataProxy()
-{
- return d_ptr->m_shared->dataProxy();
-}
-
-Q3DMapsPrivate::Q3DMapsPrivate(Q3DMaps *q, const QRect &rect)
- : q_ptr(q),
- m_shared(new Maps3DController(rect))
-{
-}
-
-Q3DMapsPrivate::~Q3DMapsPrivate()
-{
- qDebug() << "Destroying Q3DMapsPrivate";
- delete m_shared;
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3d/engine/q3dmaps.h b/src/datavis3d/engine/q3dmaps.h
deleted file mode 100644
index 0dbeaf14..00000000
--- a/src/datavis3d/engine/q3dmaps.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#ifndef Q3DMAPS_H
-#define Q3DMAPS_H
-
-#include <QtDataVis3D/qdatavis3denums.h>
-#include <QtDataVis3D/q3dwindow.h>
-
-#include <QFont>
-#include <QVector3D>
-
-class QImage;
-class QRect;
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class Maps3DController;
-class Q3DMapsPrivate;
-class QMapDataProxy;
-
-class QT_DATAVIS3D_EXPORT Q3DMaps : public Q3DWindow
-{
- Q_OBJECT
- Q_PROPERTY(QFont font READ font WRITE setFont)
-
-public:
-
- enum AdjustmentDirection {
- AdjustHeight = 0, // map value to y
- AdjustWidth, // map value to x
- AdjustDepth, // map value to z
- AdjustRadius, // map value to x and z
- AdjustAll // map value to all (x, y, z)
- };
-
-public:
- explicit Q3DMaps();
- ~Q3DMaps();
-
- void setWidth(const int width);
- void setHeight(const int height);
-
- // bar specifications; base thickness in x, y and z, enum to indicate which direction is increased with value
- // TODO: Start using thickness also in adjustment direction; use it as a relative value.
- // For example, in AdjustAll mode setting thickness to (0.1f, 1.0f, 0.5f) would apply value to
- // x at 10%, y at 100% and z at 50%. If a dimension is not included, given thickness states its absolute value.
- void setBarSpecs(const QVector3D &thickness = QVector3D(1.0f, 1.0f, 1.0f),
- AdjustmentDirection direction = AdjustHeight);
-
- // bar type; bars (=cubes), pyramids, cones, cylinders, balls, etc.
- void setBarType(QDataVis::MeshStyle style, bool smooth = false);
-
- // override bar type with own mesh
- void setMeshFileName(const QString &objFileName);
-
- // Select preset camera placement
- void setCameraPreset(QDataVis::CameraPreset preset);
-
- // Set camera rotation if you don't want to use the presets (in horizontal (-180...180) and
- // vertical (0...90) angles and distance in percentage (10...500))
- void setCameraPosition(GLfloat horizontal, GLfloat vertical, GLint distance = 100);
-
- // Set theme (bar colors, shaders, window color, background colors, light intensity and text colors are affected)
- void setTheme(QDataVis::ColorTheme theme);
-
- // Set color if you don't want to use themes. Set uniform to false if you want the (height) color to change from bottom to top
- void setBarColor(const QColor &baseColor, const QColor &heightColor, bool uniform = true);
-
- // Set area specs
- void setAreaSpecs(const QRect &areaRect, const QImage &image);
-
- // Set area image
- void setImage(const QImage &image);
-
- // TODO: light placement API
-
- // Change selection mode; single bar, bar and row, bar and column, or all
- void setSelectionMode(QDataVis::SelectionMode mode);
- QDataVis::SelectionMode selectionMode() const;
-
- // Set font
- void setFont(const QFont &font);
- QFont font() const;
-
- // Label transparency adjustment
- void setLabelTransparency(QDataVis::LabelTransparency transparency);
- QDataVis::LabelTransparency labelTransparency() const;
-
- // Adjust shadow quality
- QDataVis::ShadowQuality setShadowQuality(QDataVis::ShadowQuality quality);
- QDataVis::ShadowQuality shadowQuality() const;
-
- // Sets the data proxy. Assumes ownership of the data proxy. Deletes old proxy.
- void setDataProxy(QMapDataProxy *proxy);
- QMapDataProxy *dataProxy();
-
-protected:
- void render();
-
-#if defined(Q_OS_ANDROID)
- void mouseDoubleClickEvent(QMouseEvent *event);
- void touchEvent(QTouchEvent *event);
-#endif
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void wheelEvent(QWheelEvent *event);
- void resizeEvent(QResizeEvent *event);
-
-private:
- QScopedPointer<Q3DMapsPrivate> d_ptr;
- Q_DISABLE_COPY(Q3DMaps)
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/engine/q3dmaps_p.h b/src/datavis3d/engine/q3dmaps_p.h
deleted file mode 100644
index 166ed8f7..00000000
--- a/src/datavis3d/engine/q3dmaps_p.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef Q3DMAPS_P_H
-#define Q3DMAPS_P_H
-
-#include "maps3dcontroller_p.h"
-#include "qdatavis3denums.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class Q3DMaps;
-
-class Q3DMapsPrivate : public QObject
-{
-public:
- Q3DMapsPrivate(Q3DMaps *q, const QRect &rect);
- ~Q3DMapsPrivate();
-
- Q3DMaps *q_ptr;
- Maps3DController *m_shared;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3d/engine/scatter3drenderer.cpp b/src/datavis3d/engine/scatter3drenderer.cpp
index 9759d658..ee5a6cf2 100644
--- a/src/datavis3d/engine/scatter3drenderer.cpp
+++ b/src/datavis3d/engine/scatter3drenderer.cpp
@@ -241,48 +241,6 @@ void Scatter3DRenderer::drawScene(CameraHelper *camera,
GLfloat heightScaler = 0.0f;
GLfloat widthScaler = 0.0f;
GLfloat depthScaler = 0.0f;
- // switch (m_adjustDirection) {
- // case Q3DMaps::AdjustHeight:
- // widthMultiplier = 0.0f;
- // heightMultiplier = 1.0f;
- // depthMultiplier = 0.0f;
- // widthScaler = m_barThickness.x() / m_scaleFactor;
- // heightScaler = 0.0f;
- // depthScaler = m_barThickness.z() / m_scaleFactor;
- // break;
- // case Q3DMaps::AdjustWidth:
- // widthMultiplier = 1.0f;
- // heightMultiplier = 0.0f;
- // depthMultiplier = 0.0f;
- // widthScaler = 0.0f;
- // heightScaler = m_barThickness.y() / m_scaleFactor;
- // depthScaler = m_barThickness.z() / m_scaleFactor;
- // break;
- // case Q3DMaps::AdjustDepth:
- // widthMultiplier = 0.0f;
- // heightMultiplier = 0.0f;
- // depthMultiplier = 1.0f;
- // widthScaler = m_barThickness.x() / m_scaleFactor;
- // heightScaler = m_barThickness.y() / m_scaleFactor;
- // depthScaler = 0.0f;
- // break;
- // case Q3DMaps::AdjustRadius:
- // widthMultiplier = 1.0f;
- // heightMultiplier = 0.0f;
- // depthMultiplier = 1.0f;
- // widthScaler = 0.0f;
- // heightScaler = m_barThickness.y() / m_scaleFactor;
- // depthScaler = 0.0f;
- // break;
- // case Q3DMaps::AdjustAll:
- // widthMultiplier = 1.0f;
- // heightMultiplier = 1.0f;
- // depthMultiplier = 1.0f;
- // widthScaler = 0.0f;
- // heightScaler = 0.0f;
- // depthScaler = 0.0f;
- // break;
- // }
// Introduce regardless of shadow quality to simplify logic
QMatrix4x4 depthViewMatrix;
diff --git a/src/datavis3d/engine/theme_p.h b/src/datavis3d/engine/theme_p.h
index 034be3c2..4b36bdc4 100644
--- a/src/datavis3d/engine/theme_p.h
+++ b/src/datavis3d/engine/theme_p.h
@@ -51,7 +51,6 @@ private:
friend class Abstract3DController;
friend class Abstract3DRenderer;
friend class Bars3DRenderer;
- friend class Maps3DController;
friend class Surface3DRenderer;
friend class Surface3DController;
friend class Scatter3DRenderer;
diff --git a/src/datavis3d/utils/texturehelper_p.h b/src/datavis3d/utils/texturehelper_p.h
index 561816e5..3acf387a 100644
--- a/src/datavis3d/utils/texturehelper_p.h
+++ b/src/datavis3d/utils/texturehelper_p.h
@@ -62,7 +62,6 @@ class TextureHelper : protected QOpenGLFunctions
QRgb qt_gl_convertToGLFormatHelper(QRgb src_pixel, GLenum texture_format);
friend class Bars3DRenderer;
- friend class Maps3DController;
friend class Surface3DRenderer;
friend class Scatter3DRenderer;
};
diff --git a/src/datavis3dqml2/datavis3dqml2.pro b/src/datavis3dqml2/datavis3dqml2.pro
index c994c5be..b7157a26 100644
--- a/src/datavis3dqml2/datavis3dqml2.pro
+++ b/src/datavis3dqml2/datavis3dqml2.pro
@@ -21,18 +21,14 @@ SOURCES += \
declarativebars.cpp \
declarativebarsrenderer.cpp \
declarativescatter.cpp \
- declarativescatterrenderer.cpp \
- declarativemaps.cpp \
- declarativemapsrenderer.cpp
+ declarativescatterrenderer.cpp
HEADERS += \
datavis3dqml2_plugin.h \
declarativebars_p.h \
declarativebarsrenderer_p.h \
declarativescatter_p.h \
- declarativescatterrenderer_p.h \
- declarativemaps_p.h \
- declarativemapsrenderer_p.h
+ declarativescatterrenderer_p.h
OTHER_FILES = qmldir
diff --git a/src/datavis3dqml2/datavis3dqml2_plugin.cpp b/src/datavis3dqml2/datavis3dqml2_plugin.cpp
index bfd79806..b4a34f85 100644
--- a/src/datavis3dqml2/datavis3dqml2_plugin.cpp
+++ b/src/datavis3dqml2/datavis3dqml2_plugin.cpp
@@ -33,11 +33,9 @@ void Datavis3Dqml2Plugin::registerTypes(const char *uri)
QLatin1String("Trying to create uncreatable: AbstractAxis."));
qmlRegisterType<QItemModelBarDataMapping>(uri, 1, 0, "BarDataMapping");
- qmlRegisterType<QItemModelMapDataMapping>(uri, 1, 0, "MapDataMapping");
qmlRegisterType<QItemModelScatterDataMapping>(uri, 1, 0, "ScatterDataMapping");
qmlRegisterType<DeclarativeBars>(uri, 1, 0, "Bars3D");
- qmlRegisterType<DeclarativeMaps>(uri, 1, 0, "Maps3D");
qmlRegisterType<DeclarativeScatter>(uri, 1, 0, "Scatter3D");
qmlRegisterType<QValueAxis>(uri, 1, 0, "ValueAxis");
diff --git a/src/datavis3dqml2/datavis3dqml2_plugin.h b/src/datavis3dqml2/datavis3dqml2_plugin.h
index 57d67680..aaa3add9 100644
--- a/src/datavis3dqml2/datavis3dqml2_plugin.h
+++ b/src/datavis3dqml2/datavis3dqml2_plugin.h
@@ -21,10 +21,8 @@
#include "datavis3dglobal_p.h"
#include "declarativebars_p.h"
-#include "declarativemaps_p.h"
#include "declarativescatter_p.h"
#include "qitemmodelbardatamapping.h"
-#include "qitemmodelmapdatamapping.h"
#include "qitemmodelscatterdatamapping.h"
#include "qvalueaxis.h"
#include "qcategoryaxis.h"
@@ -34,11 +32,9 @@
QT_DATAVIS3D_USE_NAMESPACE
Q_DECLARE_METATYPE(DeclarativeBars *)
-Q_DECLARE_METATYPE(DeclarativeMaps *)
Q_DECLARE_METATYPE(DeclarativeScatter *)
Q_DECLARE_METATYPE(QItemModelBarDataMapping *)
-Q_DECLARE_METATYPE(QItemModelMapDataMapping *)
Q_DECLARE_METATYPE(QItemModelScatterDataMapping *)
Q_DECLARE_METATYPE(const QAbstractItemModel *)
Q_DECLARE_METATYPE(QDataVis *)
diff --git a/src/datavis3dqml2/declarativemaps.cpp b/src/datavis3dqml2/declarativemaps.cpp
deleted file mode 100644
index 962654a0..00000000
--- a/src/datavis3dqml2/declarativemaps.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "declarativemaps_p.h"
-#include "declarativemapsrenderer_p.h"
-#include "qitemmodelmapdataproxy.h"
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-DeclarativeMaps::DeclarativeMaps(QQuickItem *parent)
- : QQuickItem(parent),
- m_shared(0),
- m_initializedSize(0, 0)
-{
- setFlags(QQuickItem::ItemHasContents);
- setAcceptedMouseButtons(Qt::AllButtons);
-
- // TODO: These seem to have no effect; find a way to activate anti-aliasing
- setAntialiasing(true);
- setSmooth(true);
-}
-
-DeclarativeMaps::~DeclarativeMaps()
-{
- delete m_shared;
-}
-
-void DeclarativeMaps::classBegin()
-{
- //qDebug() << "classBegin";
-}
-
-void DeclarativeMaps::componentComplete()
-{
- //qDebug() << "componentComplete";
-}
-
-QSGNode *DeclarativeMaps::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
-{
- if (!m_shared) {
- m_shared = new Maps3DController(boundingRect().toRect());
- m_shared->setDataProxy(new QItemModelMapDataProxy);
- m_shared->initializeOpenGL();
- }
-
- // If old node exists and has right size, reuse it.
- if (oldNode && m_initializedSize == boundingRect().size().toSize()) {
- // Update bounding rectangle (that has same size as before).
- static_cast<DeclarativeMapsRenderer *>( oldNode )->setRect(boundingRect());
- return oldNode;
- }
-
- // Create a new render node when size changes or if there is no node yet
- m_initializedSize = boundingRect().size().toSize();
-
- // Delete old node
- if (oldNode)
- delete oldNode;
-
- // Create a new one and set it's bounding rectangle
- DeclarativeMapsRenderer *node = new DeclarativeMapsRenderer(window(), m_shared);
- node->setRect(boundingRect());
- m_shared->setBoundingRect(boundingRect().toRect());
- return node;
-}
-
-void DeclarativeMaps::setData(const QAbstractItemModel *data)
-{
- static_cast<QItemModelMapDataProxy *>(m_shared->dataProxy())->setItemModel(data);
-}
-
-const QAbstractItemModel *DeclarativeMaps::data() const
-{
- return static_cast<const QItemModelMapDataProxy *>(m_shared->dataProxy())->itemModel();
-}
-
-void DeclarativeMaps::setBarSpecs(const QVector3D &thickness,
- Q3DMaps::AdjustmentDirection direction)
-{
- m_shared->setBarSpecs(thickness, direction);
-}
-
-void DeclarativeMaps::setBarType(QDataVis::MeshStyle style, bool smooth)
-{
- m_shared->setBarType(style, smooth);
-}
-
-void DeclarativeMaps::setMeshFileName(const QString &objFileName)
-{
- m_shared->setMeshFileName(objFileName);
-}
-
-void DeclarativeMaps::setCameraPreset(QDataVis::CameraPreset preset)
-{
- m_shared->setCameraPreset(preset);
-}
-
-void DeclarativeMaps::setCameraPosition(GLfloat horizontal, GLfloat vertical, GLint distance)
-{
- m_shared->setCameraPosition(horizontal, vertical, distance);
-}
-
-void DeclarativeMaps::setTheme(QDataVis::ColorTheme theme)
-{
- m_shared->setTheme(theme);
-}
-
-void DeclarativeMaps::setBarColor(const QColor &baseColor, const QColor &heightColor, bool uniform)
-{
- m_shared->setBarColor(baseColor, heightColor, uniform);
-}
-
-void DeclarativeMaps::setAreaSpecs(const QRect &areaRect, const QImage &image)
-{
- m_shared->setAreaSpecs(areaRect, image);
-}
-
-void DeclarativeMaps::setImage(const QImage &image)
-{
- m_shared->setImage(image);
-}
-
-void DeclarativeMaps::setImage(const QString &imageUrl)
-{
- m_shared->setImage(QImage(imageUrl));
-}
-
-void DeclarativeMaps::setSelectionMode(QDataVis::SelectionMode mode)
-{
- m_shared->setSelectionMode(mode);
-}
-
-QDataVis::SelectionMode DeclarativeMaps::selectionMode()
-{
- return m_shared->selectionMode();
-}
-
-void DeclarativeMaps::setFont(const QFont &font)
-{
- m_shared->setFont(font);
-}
-
-QFont DeclarativeMaps::font()
-{
- return m_shared->font();
-}
-
-void DeclarativeMaps::setLabelTransparency(QDataVis::LabelTransparency transparency)
-{
- m_shared->setLabelTransparency(transparency);
-}
-
-QDataVis::LabelTransparency DeclarativeMaps::labelTransparency()
-{
- return m_shared->labelTransparency();
-}
-
-void DeclarativeMaps::setShadowQuality(QDataVis::ShadowQuality quality)
-{
- m_shared->setShadowQuality(quality);
-}
-
-QDataVis::ShadowQuality DeclarativeMaps::shadowQuality()
-{
- return m_shared->shadowQuality();
-}
-
-QItemModelMapDataMapping *DeclarativeMaps::mapping() const
-{
- return static_cast<QItemModelMapDataProxy *>(m_shared->dataProxy())->activeMapping();
-}
-
-void DeclarativeMaps::setMapping(QItemModelMapDataMapping *mapping)
-{
- static_cast<QItemModelMapDataProxy *>(m_shared->dataProxy())->setActiveMapping(mapping);
-}
-
-void DeclarativeMaps::mouseDoubleClickEvent(QMouseEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->mouseDoubleClickEvent(event);
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeMaps::touchEvent(QTouchEvent *event)
-{
-#if defined(Q_OS_ANDROID)
- m_shared->touchEvent(event);
- update();
-#else
- Q_UNUSED(event)
-#endif
-}
-
-void DeclarativeMaps::mousePressEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mousePressEvent(event, mousePos);
-}
-
-void DeclarativeMaps::mouseReleaseEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseReleaseEvent(event, mousePos);
-}
-
-void DeclarativeMaps::mouseMoveEvent(QMouseEvent *event)
-{
- QPoint mousePos = event->pos();
- //mousePos.setY(height() - mousePos.y());
- m_shared->mouseMoveEvent(event, mousePos);
-}
-
-void DeclarativeMaps::wheelEvent(QWheelEvent *event)
-{
- m_shared->wheelEvent(event);
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3dqml2/declarativemaps_p.h b/src/datavis3dqml2/declarativemaps_p.h
deleted file mode 100644
index 86428f51..00000000
--- a/src/datavis3dqml2/declarativemaps_p.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-//
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef DECLARATIVEMAPS_P_H
-#define DECLARATIVEMAPS_P_H
-
-#include "datavis3dglobal_p.h"
-#include "maps3dcontroller_p.h"
-#include "declarativemaps_p.h"
-#include "qitemmodelmapdatamapping.h"
-
-#include <QAbstractItemModel>
-#include <QQuickItem>
-#include <QObject>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class DeclarativeMaps : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(const QAbstractItemModel *data READ data WRITE setData)
- Q_PROPERTY(QtDataVis3D::QDataVis::SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
- Q_PROPERTY(QtDataVis3D::QDataVis::LabelTransparency labelTransparency READ labelTransparency WRITE setLabelTransparency)
- Q_PROPERTY(QtDataVis3D::QDataVis::ShadowQuality shadowQuality READ shadowQuality WRITE setShadowQuality)
- Q_PROPERTY(QFont font READ font WRITE setFont)
- Q_PROPERTY(QItemModelMapDataMapping *mapping READ mapping WRITE setMapping)
- Q_ENUMS(QtDataVis3D::QDataVis::SelectionMode)
- Q_ENUMS(QtDataVis3D::QDataVis::ShadowQuality)
- Q_ENUMS(QtDataVis3D::QDataVis::LabelTransparency)
-
-public:
- explicit DeclarativeMaps(QQuickItem *parent = 0);
- ~DeclarativeMaps();
-
- void classBegin();
- void componentComplete();
-
- void setData(const QAbstractItemModel *data);
- const QAbstractItemModel *data() const;
-
- // bar specifications; base thickness in x, y and z, enum to indicate which direction is increased with value
- // TODO: Start using thickness also in adjustment direction; use it as a relative value.
- // For example, in AdjustAll mode setting thickness to (0.1f, 1.0f, 0.5f) would apply value to
- // x at 10%, y at 100% and z at 50%. If a dimension is not included, given thickness states its absolute value.
- Q_INVOKABLE void setBarSpecs(const QVector3D &thickness = QVector3D(1.0f, 1.0f, 1.0f),
- Q3DMaps::AdjustmentDirection direction = Q3DMaps::AdjustHeight);
-
- // bar type; bars (=cubes), pyramids, cones, cylinders, balls, etc.
- Q_INVOKABLE void setBarType(QDataVis::MeshStyle style, bool smooth = false);
-
- // override bar type with own mesh
- Q_INVOKABLE void setMeshFileName(const QString &objFileName);
-
- // Select preset camera placement
- Q_INVOKABLE void setCameraPreset(QDataVis::CameraPreset preset);
-
- // Set camera rotation if you don't want to use the presets (in horizontal (180...180) and
- // vertical (0...90) angles and distance in percentage (10...500))
- Q_INVOKABLE void setCameraPosition(GLfloat horizontal, GLfloat vertical, GLint distance = 100);
-
- // Set theme (bar colors, shaders, window color, background colors, light intensity and text colors are affected)
- Q_INVOKABLE void setTheme(QDataVis::ColorTheme theme);
-
- // Set color if you don't want to use themes. Set uniform to false if you want the (height) color to change from bottom to top
- Q_INVOKABLE void setBarColor(const QColor &baseColor, const QColor &heightColor,
- bool uniform = true);
-
- // Set area specs
- Q_INVOKABLE void setAreaSpecs(const QRect &areaRect, const QImage &image);
-
- // Set area image
- Q_INVOKABLE void setImage(const QImage &image);
- Q_INVOKABLE void setImage(const QString &imageUrl);
-
- // Change selection mode; single bar, bar and row, bar and column, or all
- void setSelectionMode(QDataVis::SelectionMode mode);
- QDataVis::SelectionMode selectionMode();
-
- // Set font
- void setFont(const QFont &font);
- QFont font();
-
- // Label transparency adjustment
- void setLabelTransparency(QDataVis::LabelTransparency transparency);
- QDataVis::LabelTransparency labelTransparency();
-
- // Adjust shadow quality
- void setShadowQuality(QDataVis::ShadowQuality quality);
- QDataVis::ShadowQuality shadowQuality();
-
- QItemModelMapDataMapping *mapping() const;
- void setMapping(QItemModelMapDataMapping *mapping);
-
-protected:
- Maps3DController *m_shared;
-
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *);
-
- void mouseDoubleClickEvent(QMouseEvent *event);
- void touchEvent(QTouchEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void wheelEvent(QWheelEvent *event);
-
-private:
- QSize m_initializedSize;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif
diff --git a/src/datavis3dqml2/declarativemapsrenderer.cpp b/src/datavis3dqml2/declarativemapsrenderer.cpp
deleted file mode 100644
index 6e8dc2db..00000000
--- a/src/datavis3dqml2/declarativemapsrenderer.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-#include "declarativemapsrenderer_p.h"
-
-#include <QtQuick/QQuickWindow>
-#include <QtGui/QOpenGLFramebufferObject>
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-DeclarativeMapsRenderer::DeclarativeMapsRenderer(QQuickWindow *window, Maps3DController *renderer)
- : m_fbo(0),
- m_texture(0),
- m_window(window),
- m_mapsRenderer(renderer)
-{
- connect(m_window, SIGNAL(beforeRendering()), this, SLOT(render()), Qt::DirectConnection);
-}
-
-DeclarativeMapsRenderer::~DeclarativeMapsRenderer()
-{
- delete m_texture;
- delete m_fbo;
-}
-
-void DeclarativeMapsRenderer::render()
-{
- QSize size = rect().size().toSize();
-
- // Create FBO
- if (!m_fbo) {
- QOpenGLFramebufferObjectFormat format;
- format.setAttachment(QOpenGLFramebufferObject::Depth);
- m_fbo = new QOpenGLFramebufferObject(size, format);
- m_texture = m_window->createTextureFromId(m_fbo->texture(), size);
-
- setTexture(m_texture);
-
- // Flip texture
- // TODO: Can be gotten rid of once support for texture flipping becomes available (in Qt5.2)
- QSize ts = m_texture->textureSize();
- QRectF sourceRect(0, 0, ts.width(), ts.height());
- float tmp = sourceRect.top();
- sourceRect.setTop(sourceRect.bottom());
- sourceRect.setBottom(tmp);
- QSGGeometry *geometry = this->geometry();
- QSGGeometry::updateTexturedRectGeometry(geometry, rect(),
- m_texture->convertToNormalizedSourceRect(sourceRect));
- markDirty(DirtyMaterial);
- //qDebug() << "create node" << m_fbo->handle() << m_texture->textureId() << m_fbo->size();
- }
-
- // Call the shared rendering function
- m_fbo->bind();
-
- m_mapsRenderer->render(m_fbo->handle());
-
- m_fbo->release();
-
- // New view is in the FBO, request repaint of scene graph
- m_window->update();
-}
-
-QT_DATAVIS3D_END_NAMESPACE
diff --git a/src/datavis3dqml2/declarativemapsrenderer_p.h b/src/datavis3dqml2/declarativemapsrenderer_p.h
deleted file mode 100644
index 755764c9..00000000
--- a/src/datavis3dqml2/declarativemapsrenderer_p.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the QtDataVis3D module.
-**
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-**
-****************************************************************************/
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the QtDataVis3D API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-
-#ifndef DECLARATIVEMAPSRENDERER_P_H
-#define DECLARATIVEMAPSRENDERER_P_H
-
-#include "datavis3dglobal_p.h"
-#include "maps3dcontroller_p.h"
-#include <qsgsimpletexturenode.h>
-
-class QOpenGLFramebufferObject;
-class QSGTexture;
-class QQuickWindow;
-
-QT_DATAVIS3D_BEGIN_NAMESPACE
-
-class DeclarativeMapsRenderer : public QObject, public QSGSimpleTextureNode
-{
- Q_OBJECT
-
-public:
- DeclarativeMapsRenderer(QQuickWindow *window, Maps3DController *shared);
- ~DeclarativeMapsRenderer();
-
-public slots:
- void render();
-
-private:
- QOpenGLFramebufferObject *m_fbo;
- QSGTexture *m_texture;
- QQuickWindow *m_window;
- Maps3DController *m_mapsRenderer;
-};
-
-QT_DATAVIS3D_END_NAMESPACE
-
-#endif