App icon: a fringe cube with flow streamlines replaces the meshed bracket
The mark is now a hex-meshed cube in isometric view whose faces carry a banded colour fringe (blue to red, hottest at the front corner), with three tapered streamlines wrapping around it. The small variant keeps the fringe cube and one bolder streamline. Icon Composer gets four groups (floor, flow behind, cube with mesh, flow in front), its maximum. The title-bar mark is redrawn as the fringe cube. Co-Authored-By: Claude Opus 5.5 <[email protected]>
No files matched your search
@@ -134,12 +134,13 @@ is committed and listed here with its exports.
|
||||
| assets/icons/ui.sun.svg, assets/icons/ui.sun.vectorcraft | FieldCraft contributors | Original interface icon (navigation bar, title bar, browser) drawn with VectorCraft from `assets/icons/src/ui.sun.json` (`cargo xtask icons`) | MIT OR Apache-2.0 |
|
||||
| assets/icons/ui.views.svg, assets/icons/ui.views.vectorcraft | FieldCraft contributors | Original interface icon (navigation bar, title bar, browser) drawn with VectorCraft from `assets/icons/src/ui.views.json` (`cargo xtask icons`) | MIT OR Apache-2.0 |
|
||||
| assets/icons/ui.zoom.svg, assets/icons/ui.zoom.vectorcraft | FieldCraft contributors | Original interface icon (navigation bar, title bar, browser) drawn with VectorCraft from `assets/icons/src/ui.zoom.json` (`cargo xtask icons`) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/icon.vectorcraft, assets/app-icon/icon.svg, assets/app-icon/icon.png | FieldCraft contributors | Original application icon (an L bracket with a bolt hole under a structured hexahedral mesh, on a rounded-square backdrop), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs); editable source, SVG and 1024 × 1024 PNG export | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/icon-small.vectorcraft, assets/app-icon/icon-small.svg, assets/app-icon/icon-small.png | FieldCraft contributors | Original simplified application icon for 16–32 px (no mesh or floor grid), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/icon.vectorcraft, assets/app-icon/icon.svg, assets/app-icon/icon.png | FieldCraft contributors | Original application icon (a hexahedral-meshed cube with a banded colour fringe on its faces and flow streamlines around it, on a rounded-square backdrop), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs); editable source, SVG and 1024 × 1024 PNG export | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/icon-small.vectorcraft, assets/app-icon/icon-small.svg, assets/app-icon/icon-small.png | FieldCraft contributors | Original simplified application icon for 16–32 px (fringe cube and one streamline; no mesh or floor grid), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/01-floor.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/01-floor.svg | FieldCraft contributors | Original isometric floor grid with a radial fade (Default appearance), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/01-floor-dark.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/01-floor-dark.svg | FieldCraft contributors | Original isometric floor grid with a radial fade (Dark appearance), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/02-part.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/02-part.svg | FieldCraft contributors | Original bracket faces with transparent gaps at the shared edges, drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/03-mesh.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/03-mesh.svg | FieldCraft contributors | Original hexahedral mesh lines (O-grid around the hole) clipped to the bracket's faces, drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/02-flow-behind.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/02-flow-behind.svg | FieldCraft contributors | Original tapered flow streamlines (the runs behind the cube), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/03-part.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/03-part.svg | FieldCraft contributors | Original cube faces with a banded colour fringe and transparent gaps at the shared edges, and the hexahedral mesh lines clipped to them, drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/layers/04-flow-front.vectorcraft, assets/app-icon/FieldCraft.icon/Assets/04-flow-front.svg | FieldCraft contributors | Original tapered flow streamlines (the runs in front of the cube), drawn with VectorCraft by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/FieldCraft.icon/icon.json | FieldCraft contributors | Icon Composer composition of the layers above (Default and Dark floor grid), written by `cargo xtask app-icon` (xtask/src/app_icon.rs) | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/Assets.car | FieldCraft contributors | Apple actool compilation of assets/app-icon/FieldCraft.icon; contains original artwork only | MIT OR Apache-2.0 |
|
||||
| assets/app-icon/icon.icns | FieldCraft contributors | iconutil compilation of assets/app-icon/icon.iconset | MIT OR Apache-2.0 |
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
<clipPath id="clip-path-1">
|
||||
<path d="M320 100 L704 100 C854 100 924 170 924 320 L924 704 C924 854 854 924 704 924 L320 924 C170 924 100 854 100 704 L100 320 C100 170 170 100 320 100 Z"/>
|
||||
</clipPath>
|
||||
<radialGradient id="radial-gradient-1" cx="0" cy="0" r="578" gradientTransform="matrix(1 0 0 0.5 512 720)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#4f8a82"/>
|
||||
<stop offset="0.3" stop-color="#4f8a82" stop-opacity="0.9"/>
|
||||
<stop offset="0.65" stop-color="#4f8a82" stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-color="#4f8a82" stop-opacity="0"/>
|
||||
<radialGradient id="radial-gradient-1" cx="0" cy="0" r="560" gradientTransform="matrix(1 0 0 0.5 512 643)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#4f6a86"/>
|
||||
<stop offset="0.3" stop-color="#4f6a86" stop-opacity="0.9"/>
|
||||
<stop offset="0.65" stop-color="#4f6a86" stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-color="#4f6a86" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<title>FieldCraft icon floor grid (Dark)</title>
|
||||
<g id="Floor_grid" data-name="Floor grid" clip-path="url(#clip-path-1)">
|
||||
<path id="floor_grid" data-name="floor grid" d="M154.62 100 L100 131.53 M869.38 100 L924 131.53 M368.82 100 L100 255.2 M655.18 100 L924 255.2 M583.01 100 L100 378.87 M440.99 100 L924 378.87 M797.21 100 L100 502.53 M226.79 100 L924 502.53 M924 150.47 L100 626.2 M100 150.47 L924 626.2 M924 274.13 L100 749.87 M100 274.13 L924 749.87 M924 397.8 L100 873.53 M100 397.8 L924 873.53 M924 521.47 L226.79 924 M100 521.47 L797.21 924 M924 645.13 L440.99 924 M100 645.13 L583.01 924 M924 768.8 L655.18 924 M100 768.8 L368.82 924 M924 892.47 L869.38 924 M100 892.47 L154.62 924" fill="none" stroke="url(#radial-gradient-1)" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path id="floor_grid" data-name="floor grid" d="M214.09 100 L100 165.87 M809.91 100 L924 165.87 M337.93 100 L100 237.37 M686.07 100 L924 237.37 M461.77 100 L100 308.87 M562.23 100 L924 308.87 M585.61 100 L100 380.37 M438.39 100 L924 380.37 M709.45 100 L100 451.87 M314.55 100 L924 451.87 M833.3 100 L100 523.37 M190.7 100 L924 523.37 M924 119.13 L100 594.87 M100 119.13 L924 594.87 M924 190.63 L100 666.37 M100 190.63 L924 666.37 M924 262.13 L100 737.87 M100 262.13 L924 737.87 M924 333.63 L100 809.37 M100 333.63 L924 809.37 M924 405.13 L100 880.87 M100 405.13 L924 880.87 M924 476.63 L149.14 924 M100 476.63 L874.86 924 M924 548.13 L272.98 924 M100 548.13 L751.02 924 M924 619.63 L396.82 924 M100 619.63 L627.18 924 M924 691.13 L520.66 924 M100 691.13 L503.34 924 M924 762.63 L644.5 924 M100 762.63 L379.5 924 M924 834.13 L768.34 924 M100 834.13 L255.66 924 M924 905.63 L892.19 924 M100 905.63 L131.81 924" fill="none" stroke="url(#radial-gradient-1)" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -4,15 +4,15 @@
|
||||
<clipPath id="clip-path-1">
|
||||
<path d="M320 100 L704 100 C854 100 924 170 924 320 L924 704 C924 854 854 924 704 924 L320 924 C170 924 100 854 100 704 L100 320 C100 170 170 100 320 100 Z"/>
|
||||
</clipPath>
|
||||
<radialGradient id="radial-gradient-1" cx="0" cy="0" r="578" gradientTransform="matrix(1 0 0 0.5 512 720)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#7fa8a2"/>
|
||||
<stop offset="0.3" stop-color="#7fa8a2" stop-opacity="0.9"/>
|
||||
<stop offset="0.65" stop-color="#7fa8a2" stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-color="#7fa8a2" stop-opacity="0"/>
|
||||
<radialGradient id="radial-gradient-1" cx="0" cy="0" r="560" gradientTransform="matrix(1 0 0 0.5 512 643)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#8aa0b4"/>
|
||||
<stop offset="0.3" stop-color="#8aa0b4" stop-opacity="0.9"/>
|
||||
<stop offset="0.65" stop-color="#8aa0b4" stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-color="#8aa0b4" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<title>FieldCraft icon floor grid</title>
|
||||
<g id="Floor_grid" data-name="Floor grid" clip-path="url(#clip-path-1)">
|
||||
<path id="floor_grid" data-name="floor grid" d="M154.62 100 L100 131.53 M869.38 100 L924 131.53 M368.82 100 L100 255.2 M655.18 100 L924 255.2 M583.01 100 L100 378.87 M440.99 100 L924 378.87 M797.21 100 L100 502.53 M226.79 100 L924 502.53 M924 150.47 L100 626.2 M100 150.47 L924 626.2 M924 274.13 L100 749.87 M100 274.13 L924 749.87 M924 397.8 L100 873.53 M100 397.8 L924 873.53 M924 521.47 L226.79 924 M100 521.47 L797.21 924 M924 645.13 L440.99 924 M100 645.13 L583.01 924 M924 768.8 L655.18 924 M100 768.8 L368.82 924 M924 892.47 L869.38 924 M100 892.47 L154.62 924" fill="none" stroke="url(#radial-gradient-1)" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path id="floor_grid" data-name="floor grid" d="M214.09 100 L100 165.87 M809.91 100 L924 165.87 M337.93 100 L100 237.37 M686.07 100 L924 237.37 M461.77 100 L100 308.87 M562.23 100 L924 308.87 M585.61 100 L100 380.37 M438.39 100 L924 380.37 M709.45 100 L100 451.87 M314.55 100 L924 451.87 M833.3 100 L100 523.37 M190.7 100 L924 523.37 M924 119.13 L100 594.87 M100 119.13 L924 594.87 M924 190.63 L100 666.37 M100 190.63 L924 666.37 M924 262.13 L100 737.87 M100 262.13 L924 737.87 M924 333.63 L100 809.37 M100 333.63 L924 809.37 M924 405.13 L100 880.87 M100 405.13 L924 880.87 M924 476.63 L149.14 924 M100 476.63 L874.86 924 M924 548.13 L272.98 924 M100 548.13 L751.02 924 M924 619.63 L396.82 924 M100 619.63 L627.18 924 M924 691.13 L520.66 924 M100 691.13 L503.34 924 M924 762.63 L644.5 924 M100 762.63 L379.5 924 M924 834.13 L768.34 924 M100 834.13 L255.66 924 M924 905.63 L892.19 924 M100 905.63 L131.81 924" fill="none" stroke="url(#radial-gradient-1)" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<title>FieldCraft icon flow behind the cube</title>
|
||||
<g id="Flow_behind" data-name="Flow behind">
|
||||
<path id="streamline_1_halo" data-name="streamline 1 halo" d="M360.88 220.28 L354.82 220.38 L348.86 221.02 L342.98 221.83 L337.19 222.77 L331.48 223.84 L325.86 225.02 L320.33 226.31 L314.9 227.71 L309.55 229.21 L304.31 230.81 L299.16 232.51 L294.12 234.31 L289.19 236.2 L284.36 238.19 L279.64 240.28 L275.03 242.46 L270.54 244.73 L266.17 247.1 L261.92 249.56 L257.79 252.11 L253.78 254.74 L249.9 257.47 L246.15 260.29 L242.53 263.19 L239.05 266.18 L235.7 269.25 L232.49 272.41 L229.43 275.65 L226.5 278.97 L223.73 282.38 L221.11 285.86 L218.63 289.42 L216.31 293.05 L214.15 296.75 L212.15 300.53 L210.32 304.37 L208.64 308.27 L207.13 312.24 L205.79 316.26 L204.62 320.34 L203.62 324.47 L202.79 328.65 L202.14 332.87 L201.65 337.12 L201.34 341.42 L201.2 345.74 L220.32 345.71 L220.32 342.14 L220.47 338.6 L220.76 335.09 L221.18 331.61 L221.74 328.17 L222.45 324.76 L223.29 321.38 L224.27 318.03 L225.39 314.72 L226.65 311.44 L228.05 308.19 L229.59 304.98 L231.28 301.81 L233.1 298.67 L235.07 295.57 L237.18 292.51 L239.44 289.5 L241.83 286.52 L244.37 283.59 L247.05 280.71 L249.88 277.87 L252.84 275.09 L255.94 272.36 L259.19 269.68 L262.57 267.06 L266.09 264.5 L269.74 262 L273.52 259.56 L277.44 257.18 L281.49 254.87 L285.66 252.62 L289.96 250.45 L294.39 248.34 L298.93 246.3 L303.6 244.34 L308.38 242.45 L313.27 240.63 L318.27 238.88 L323.38 237.21 L328.6 235.61 L333.92 234.07 L339.33 232.61 L344.84 231.2 L350.44 229.85 L356.13 228.5 L361.88 226.8 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_1" data-name="streamline 1" d="M361.38 223.54 L355.35 223.64 L349.44 224.27 L343.63 225.06 L337.89 226 L332.25 227.05 L326.69 228.22 L321.22 229.49 L315.85 230.87 L310.57 232.35 L305.4 233.92 L300.32 235.6 L295.35 237.37 L290.49 239.24 L285.73 241.2 L281.09 243.25 L276.56 245.39 L272.14 247.62 L267.85 249.94 L263.67 252.35 L259.62 254.85 L255.7 257.43 L251.9 260.1 L248.23 262.85 L244.69 265.68 L241.29 268.6 L238.02 271.6 L234.9 274.67 L231.91 277.83 L229.06 281.06 L226.37 284.36 L223.81 287.74 L221.41 291.19 L219.16 294.72 L217.07 298.3 L215.13 301.96 L213.34 305.68 L211.72 309.46 L210.26 313.3 L208.96 317.19 L207.82 321.14 L206.85 325.13 L206.05 329.17 L205.41 333.26 L204.94 337.38 L204.64 341.54 L204.5 345.74 L217.02 345.72 L217.03 342.02 L217.18 338.34 L217.48 334.7 L217.92 331.09 L218.51 327.51 L219.24 323.96 L220.12 320.45 L221.14 316.97 L222.31 313.53 L223.62 310.13 L225.08 306.76 L226.68 303.43 L228.43 300.14 L230.32 296.89 L232.36 293.69 L234.55 290.53 L236.88 287.41 L239.35 284.35 L241.97 281.33 L244.73 278.37 L247.63 275.45 L250.68 272.6 L253.87 269.8 L257.19 267.06 L260.65 264.37 L264.25 261.76 L267.98 259.2 L271.85 256.71 L275.84 254.29 L279.97 251.94 L284.22 249.66 L288.59 247.44 L293.09 245.31 L297.71 243.24 L302.44 241.25 L307.29 239.33 L312.25 237.49 L317.32 235.72 L322.49 234.03 L327.77 232.41 L333.15 230.86 L338.63 229.39 L344.2 227.97 L349.86 226.6 L355.6 225.24 Z" fill="#ffffff"/>
|
||||
<path id="streamline_2_halo" data-name="streamline 2 halo" d="M452.77 288.74 L443.33 286.86 L433.85 285.7 L424.4 284.8 L415.01 284.11 L405.69 283.64 L396.43 283.35 L387.25 283.25 L378.16 283.34 L369.17 283.6 L360.28 284.05 L351.49 284.67 L342.82 285.47 L334.28 286.45 L325.86 287.6 L317.58 288.93 L309.44 290.43 L301.44 292.09 L293.6 293.93 L285.92 295.94 L278.41 298.12 L271.06 300.47 L263.89 302.98 L256.9 305.65 L250.1 308.5 L243.49 311.5 L237.08 314.67 L230.87 318 L224.87 321.49 L219.08 325.14 L213.51 328.94 L208.16 332.91 L203.05 337.02 L198.16 341.29 L193.52 345.72 L189.12 350.29 L184.98 355 L181.09 359.86 L177.47 364.86 L174.12 369.99 L171.04 375.25 L168.25 380.64 L165.73 386.14 L163.52 391.75 L161.59 397.47 L159.96 403.28 L158.64 409.18 L157.61 415.16 L156.89 421.21 L156.48 427.33 L156.36 433.49 L181.13 433.08 L181.1 428.12 L181.31 423.21 L181.76 418.37 L182.44 413.59 L183.37 408.87 L184.53 404.22 L185.93 399.62 L187.57 395.08 L189.44 390.61 L191.56 386.2 L193.92 381.86 L196.53 377.58 L199.38 373.37 L202.47 369.23 L205.81 365.17 L209.39 361.19 L213.22 357.29 L217.29 353.47 L221.6 349.75 L226.16 346.13 L230.95 342.6 L235.98 339.18 L241.25 335.87 L246.74 332.68 L252.45 329.6 L258.39 326.64 L264.54 323.81 L270.9 321.1 L277.46 318.53 L284.23 316.09 L291.19 313.79 L298.34 311.63 L305.67 309.61 L313.18 307.74 L320.86 306.01 L328.7 304.43 L336.7 303 L344.85 301.72 L353.14 300.59 L361.57 299.61 L370.13 298.78 L378.81 298.1 L387.61 297.58 L396.52 297.2 L405.53 296.96 L414.64 296.86 L423.84 296.89 L433.12 297.04 L442.49 297.24 L452.02 297.07 Z M864.37 564.9 L863.9 558.84 L863.13 552.77 L862.07 546.68 L860.72 540.58 L859.08 534.47 L857.17 528.37 L854.97 522.28 L852.5 516.2 L849.75 510.13 L846.74 504.08 L843.45 498.06 L839.9 492.07 L836.08 486.12 L832 480.22 L827.65 474.37 L823.02 468.6 L818.08 462.93 L812.53 457.72 L806.04 462.98 L809.9 469.38 L813.9 475.38 L817.73 481.32 L821.34 487.21 L824.72 493.08 L827.86 498.92 L830.76 504.73 L833.42 510.5 L835.82 516.23 L837.97 521.93 L839.87 527.57 L841.51 533.17 L842.9 538.71 L844.04 544.19 L844.92 549.61 L845.55 554.96 L845.93 560.24 L846.06 565.45 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_2" data-name="streamline 2" d="M452.39 292.9 L442.99 291.03 L433.58 289.87 L424.21 288.97 L414.89 288.29 L405.64 287.82 L396.46 287.53 L387.36 287.43 L378.35 287.51 L369.43 287.77 L360.62 288.21 L351.92 288.83 L343.34 289.62 L334.88 290.59 L326.56 291.73 L318.37 293.03 L310.32 294.51 L302.43 296.16 L294.69 297.97 L287.11 299.95 L279.7 302.1 L272.46 304.41 L265.4 306.88 L258.52 309.51 L251.84 312.3 L245.35 315.25 L239.06 318.35 L232.97 321.61 L227.09 325.03 L221.43 328.59 L215.99 332.31 L210.77 336.17 L205.78 340.18 L201.03 344.34 L196.51 348.63 L192.24 353.07 L188.22 357.64 L184.46 362.34 L180.95 367.18 L177.7 372.14 L174.73 377.22 L172.03 382.42 L169.6 387.72 L167.46 393.14 L165.6 398.65 L164.03 404.25 L162.75 409.94 L161.76 415.71 L161.06 421.55 L160.65 427.46 L160.54 433.42 L176.95 433.15 L176.92 427.98 L177.14 422.87 L177.61 417.82 L178.33 412.83 L179.3 407.9 L180.52 403.04 L181.98 398.24 L183.7 393.5 L185.66 388.83 L187.88 384.23 L190.34 379.71 L193.05 375.26 L196.01 370.88 L199.23 366.59 L202.69 362.39 L206.4 358.27 L210.35 354.24 L214.55 350.31 L219 346.48 L223.68 342.76 L228.6 339.15 L233.76 335.64 L239.15 332.26 L244.76 328.99 L250.6 325.85 L256.65 322.84 L262.92 319.95 L269.39 317.2 L276.07 314.59 L282.94 312.12 L290.01 309.78 L297.26 307.59 L304.69 305.55 L312.3 303.65 L320.07 301.91 L328 300.31 L336.09 298.86 L344.33 297.57 L352.71 296.43 L361.22 295.44 L369.86 294.61 L378.63 293.93 L387.5 293.4 L396.49 293.02 L405.58 292.78 L414.76 292.68 L424.03 292.72 L433.39 292.86 L442.83 293.07 Z M860.2 565.02 L859.73 559.17 L858.98 553.28 L857.95 547.38 L856.63 541.46 L855.04 535.53 L853.17 529.6 L851.03 523.66 L848.61 517.73 L845.92 511.81 L842.97 505.9 L839.75 500.01 L836.27 494.14 L832.52 488.31 L828.5 482.51 L824.22 476.77 L819.66 471.09 L814.79 465.52 L809.28 460.35 L809.28 460.35 L813.19 466.79 L817.26 472.89 L821.15 478.92 L824.83 484.92 L828.28 490.9 L831.5 496.85 L834.46 502.78 L837.18 508.68 L839.65 514.55 L841.86 520.39 L843.82 526.19 L845.51 531.94 L846.95 537.65 L848.12 543.3 L849.04 548.9 L849.7 554.44 L850.1 559.91 L850.24 565.32 Z" fill="#ffffff"/>
|
||||
<path id="streamline_3_halo" data-name="streamline 3 halo" d="M230.16 475.51 L226.31 478.65 L222.9 482.23 L219.72 485.95 L216.75 489.8 L213.98 493.74 L211.4 497.79 L209.03 501.92 L206.86 506.14 L204.9 510.44 L203.14 514.81 L201.58 519.26 L200.23 523.77 L199.09 528.34 L198.16 532.97 L197.45 537.65 L196.94 542.38 L196.65 547.15 L196.57 551.95 L211.03 551.52 L210.88 547.34 L210.9 543.18 L211.11 539.05 L211.49 534.94 L212.05 530.86 L212.79 526.8 L213.71 522.77 L214.81 518.77 L216.09 514.8 L217.54 510.85 L219.18 506.94 L220.99 503.05 L222.98 499.19 L225.14 495.36 L227.46 491.56 L229.95 487.77 L232.57 483.97 L235.11 479.88 Z M829.29 639.76 L829.09 634.87 L828.69 629.97 L828.07 625.06 L827.24 620.14 L826.2 615.22 L824.95 610.31 L823.5 605.4 L821.85 600.5 L820 595.61 L817.95 590.74 L815.71 585.89 L813.27 581.06 L810.64 576.25 L807.83 571.47 L804.83 566.72 L801.65 561.99 L798.28 557.31 L794.74 552.66 L791.02 548.04 L787.13 543.47 L783.07 538.94 L778.84 534.46 L774.45 530.03 L769.9 525.64 L765.18 521.32 L760.31 517.04 L755.29 512.83 L750.11 508.68 L744.79 504.59 L739.32 500.58 L733.71 496.63 L727.96 492.76 L722.08 488.98 L716.06 485.28 L709.9 481.67 L703.6 478.18 L697.16 474.84 L690.42 471.97 L687.18 477.72 L693.06 481.97 L699 485.88 L704.85 489.79 L710.59 493.73 L716.21 497.71 L721.7 501.72 L727.05 505.78 L732.27 509.88 L737.35 514.02 L742.28 518.2 L747.06 522.41 L751.69 526.67 L756.16 530.95 L760.47 535.27 L764.62 539.61 L768.6 543.98 L772.41 548.37 L776.06 552.78 L779.53 557.2 L782.83 561.63 L785.95 566.08 L788.9 570.53 L791.66 574.98 L794.24 579.43 L796.65 583.88 L798.86 588.31 L800.9 592.74 L802.75 597.15 L804.42 601.54 L805.9 605.92 L807.2 610.26 L808.32 614.59 L809.25 618.88 L810 623.14 L810.57 627.37 L810.96 631.56 L811.17 635.71 L811.2 639.83 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_3" data-name="streamline 3" d="M232.64 477.7 L228.82 480.79 L225.49 484.27 L222.39 487.89 L219.5 491.62 L216.8 495.45 L214.3 499.38 L211.99 503.38 L209.88 507.47 L207.97 511.64 L206.26 515.87 L204.75 520.18 L203.44 524.54 L202.33 528.97 L201.43 533.45 L200.73 537.99 L200.24 542.57 L199.95 547.19 L199.87 551.85 L207.73 551.61 L207.58 547.29 L207.61 542.99 L207.83 538.71 L208.23 534.46 L208.81 530.23 L209.58 526.03 L210.54 521.86 L211.68 517.71 L213.01 513.6 L214.52 509.52 L216.22 505.47 L218.1 501.46 L220.15 497.48 L222.39 493.54 L224.79 489.62 L227.36 485.73 L230.06 481.84 Z M825.99 639.78 L825.8 635.03 L825.4 630.26 L824.79 625.49 L823.98 620.71 L822.97 615.92 L821.76 611.13 L820.34 606.34 L818.73 601.56 L816.92 596.79 L814.91 592.02 L812.71 587.27 L810.32 582.54 L807.75 577.83 L804.98 573.14 L802.03 568.47 L798.9 563.83 L795.59 559.22 L792.1 554.64 L788.44 550.1 L784.61 545.59 L780.6 541.13 L776.43 536.71 L772.09 532.33 L767.59 528 L762.93 523.72 L758.11 519.5 L753.14 515.33 L748.02 511.23 L742.75 507.18 L737.33 503.21 L731.77 499.3 L726.07 495.47 L720.24 491.71 L714.26 488.05 L708.16 484.48 L701.91 481.02 L695.51 477.7 L688.8 474.85 L688.8 474.85 L694.71 479.1 L700.69 483.05 L706.59 486.99 L712.38 490.96 L718.05 494.97 L723.59 499.02 L729 503.11 L734.27 507.25 L739.39 511.43 L744.38 515.65 L749.21 519.91 L753.89 524.21 L758.41 528.54 L762.78 532.91 L766.98 537.31 L771.02 541.73 L774.89 546.18 L778.59 550.65 L782.11 555.14 L785.47 559.65 L788.64 564.17 L791.64 568.69 L794.46 573.23 L797.09 577.76 L799.54 582.3 L801.81 586.83 L803.89 591.35 L805.79 595.87 L807.5 600.37 L809.03 604.85 L810.36 609.32 L811.51 613.76 L812.47 618.18 L813.25 622.57 L813.84 626.93 L814.24 631.26 L814.46 635.56 L814.5 639.81 Z" fill="#ffffff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<defs>
|
||||
<linearGradient id="linear-gradient-1" x1="512" y1="141" x2="512" y2="376.622" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#86e3d3"/>
|
||||
<stop offset="1" stop-color="#4cc4b1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-2" x1="512" y1="457.259" x2="512" y2="755.042" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#86e3d3"/>
|
||||
<stop offset="1" stop-color="#4cc4b1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-3" x1="512" y1="209.598" x2="512" y2="624.284" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20b39f"/>
|
||||
<stop offset="1" stop-color="#118c7c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-4" x1="512" y1="588.018" x2="512" y2="878.381" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20b39f"/>
|
||||
<stop offset="1" stop-color="#118c7c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-5" x1="512" y1="335.738" x2="512" y2="878.381" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0f786d"/>
|
||||
<stop offset="1" stop-color="#0a544e"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-6" x1="512" y1="558.616" x2="512" y2="658.304" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0b665e"/>
|
||||
<stop offset="1" stop-color="#04302c"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>FieldCraft icon part</title>
|
||||
<g id="Part">
|
||||
<path id="wall_top" data-name="wall top" d="M512 141 L825.3 321.88 L730.48 376.62 L417.19 195.74 Z" fill="url(#linear-gradient-1)"/>
|
||||
<path id="base_top" data-name="base top" d="M401.19 457.26 L714.48 638.14 L512 755.04 L198.7 574.16 Z M521.64 643.71 C555.35 624.24 555.35 592.68 521.64 573.22 C487.92 553.75 433.26 553.75 399.55 573.22 C365.83 592.68 365.83 624.24 399.55 643.71 C433.26 663.17 487.92 663.17 521.64 643.71 Z" fill="url(#linear-gradient-2)"/>
|
||||
<path id="wall_front" data-name="wall front" d="M409.19 209.6 L722.48 390.48 L722.48 624.28 L409.19 443.4 Z" fill="url(#linear-gradient-3)"/>
|
||||
<path id="base_front" data-name="base front" d="M190.7 588.02 L504 768.9 L504 878.38 L190.7 697.5 Z" fill="url(#linear-gradient-4)"/>
|
||||
<path id="end" d="M833.3 697.5 L520 878.38 L520 768.9 L738.48 642.76 L738.48 390.48 L833.3 335.74 Z" fill="url(#linear-gradient-5)"/>
|
||||
<path id="bolt_hole" data-name="bolt hole" d="M521.64 643.71 C487.92 663.17 433.26 663.17 399.55 643.71 C365.83 624.24 365.83 592.68 399.55 573.22 C433.26 553.75 487.92 553.75 521.64 573.22 C555.35 592.68 555.35 624.24 521.64 643.71 Z" fill="url(#linear-gradient-6)"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<defs>
|
||||
<clipPath id="clip-path-1">
|
||||
<path d="M512 141 L825.3 321.88 L730.48 376.62 L417.19 195.74 Z M401.19 457.26 L714.48 638.14 L512 755.04 L198.7 574.16 Z M521.64 643.71 C555.35 624.24 555.35 592.68 521.64 573.22 C487.92 553.75 433.26 553.75 399.55 573.22 C365.83 592.68 365.83 624.24 399.55 643.71 C433.26 663.17 487.92 663.17 521.64 643.71 Z M409.19 209.6 L722.48 390.48 L722.48 624.28 L409.19 443.4 Z M190.7 588.02 L504 768.9 L504 878.38 L190.7 697.5 Z M833.3 697.5 L520 878.38 L520 768.9 L738.48 642.76 L738.48 390.48 L833.3 335.74 Z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>FieldCraft icon mesh</title>
|
||||
<g id="Mesh" clip-path="url(#clip-path-1)">
|
||||
<path id="hexahedral_mesh" data-name="hexahedral mesh" d="M460.59 482.32 L242.11 608.46 M679.07 608.46 L460.59 734.6 M354.57 484.18 L405.97 513.86 M624.45 640 L675.86 669.67 M299.95 515.71 L351.35 545.39 M569.83 671.53 L621.24 701.21 M245.32 547.25 L296.73 576.92 M515.21 703.07 L566.62 732.75 M460.59 482.32 L460.59 230.04 M563.41 170.68 L460.59 230.04 M515.21 513.86 L515.21 261.57 M618.03 202.22 L515.21 261.57 M569.83 545.39 L569.83 293.11 M672.65 233.75 L569.83 293.11 M624.45 576.93 L624.45 324.65 M727.27 265.29 L624.45 324.65 M679.07 608.46 L679.07 356.18 M781.89 296.82 L679.07 356.18 M409.19 389.57 L730.48 575.07 M409.19 326.5 L730.48 512 M409.19 263.43 L730.48 448.93 M460.59 170.68 L781.89 356.18 M242.11 727.18 L242.11 608.46 M296.73 758.72 L296.73 640 M351.35 790.25 L351.35 671.53 M405.97 821.79 L405.97 703.07 M460.59 853.32 L460.59 734.6 M190.7 638.14 L512 823.64 M781.89 727.18 L781.89 356.18 M730.48 756.86 L730.48 638.14 M675.86 788.39 L675.86 669.67 M621.24 819.93 L621.24 701.21 M566.62 851.47 L566.62 732.75 M833.3 638.14 L512 823.64 M833.3 578.78 L730.48 638.14 M833.3 515.71 L730.48 575.07 M833.3 452.64 L730.48 512 M833.3 389.57 L730.48 448.93 M460.59 558.62 L460.59 482.32 M433.29 561.17 L405.97 513.86 M399.55 573.22 L351.35 545.39 M378.69 592.7 L296.73 576.92 M374.26 608.46 L242.11 608.46 M487.89 561.17 L515.21 513.86 M378.69 624.22 L296.73 640 M521.64 573.22 L569.83 545.39 M399.55 643.71 L351.35 671.53 M542.49 592.7 L624.45 576.92 M433.29 655.75 L405.97 703.06 M546.92 608.46 L679.07 608.46 M542.49 624.22 L624.45 640 M521.64 643.71 L569.83 671.53 M487.89 655.75 L515.21 703.07 M460.59 658.3 L460.59 734.6 M545.74 657.62 L540.09 660.8 L534.3 663.92 L528.33 666.99 L522.16 670.03 L515.76 673.05 L509.11 676.08 L502.15 679.15 L494.85 682.27 L487.14 685.51 L478.94 688.9 L470.14 692.52 L460.59 696.45 L451.05 692.52 L442.25 688.9 L434.05 685.51 L426.34 682.27 L419.03 679.15 L412.08 676.08 L405.42 673.05 L399.02 670.03 L392.86 666.99 L386.89 663.92 L381.09 660.8 L375.45 657.62 L369.94 654.36 L364.54 651.01 L359.22 647.57 L353.95 644.01 L348.72 640.31 L343.47 636.47 L338.16 632.45 L332.74 628.24 L327.14 623.79 L321.26 619.05 L315 613.97 L308.19 608.46 L315 602.95 L321.26 597.87 L327.14 593.13 L332.74 588.68 L338.16 584.47 L343.47 580.45 L348.72 576.61 L353.95 572.91 L359.22 569.35 L364.54 565.91 L369.94 562.56 L375.45 559.3 L381.09 556.12 L386.89 553 L392.86 549.93 L399.02 546.89 L405.42 543.87 L412.08 540.84 L419.03 537.77 L426.34 534.65 L434.05 531.41 L442.25 528.02 L451.05 524.4 L460.59 520.47 L470.14 524.4 L478.94 528.02 L487.14 531.41 L494.85 534.65 L502.15 537.77 L509.11 540.84 L515.76 543.87 L522.16 546.89 L528.33 549.93 L534.3 553 L540.09 556.12 L545.74 559.3 L551.25 562.56 L556.65 565.91 L561.97 569.35 L567.23 572.91 L572.47 576.61 L577.72 580.45 L583.02 584.47 L588.44 588.68 L594.05 593.13 L599.92 597.87 L606.19 602.95 L613 608.46 L606.19 613.97 L599.92 619.05 L594.05 623.79 L588.44 628.24 L583.02 632.45 L577.72 636.47 L572.47 640.31 L567.23 644.01 L561.97 647.57 L556.65 651.01 L551.25 654.36 Z" fill="none" stroke="#ffffff" stroke-width="4.5" stroke-linejoin="round" opacity="0.5"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<defs>
|
||||
<clipPath id="clip-path-1">
|
||||
<path d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-2">
|
||||
<path d="M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-3">
|
||||
<path d="M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-4">
|
||||
<path d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>FieldCraft icon cube</title>
|
||||
<g id="Top_face" data-name="Top face" clip-path="url(#clip-path-1)">
|
||||
<path id="top" d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z" fill="#2c4fbf"/>
|
||||
<path id="top_band_1" data-name="top band 1" d="M829.03 683.04 C653.94 784.13 370.06 784.13 194.97 683.04 C19.87 581.95 19.87 418.05 194.97 316.96 C370.06 215.87 653.94 215.87 829.03 316.96 C1004.13 418.05 1004.13 581.95 829.03 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="top_band_2" data-name="top band 2" d="M777.02 653.01 C630.65 737.52 393.35 737.52 246.98 653.01 C100.61 568.5 100.61 431.5 246.98 346.99 C393.35 262.48 630.65 262.48 777.02 346.99 C923.39 431.5 923.39 568.5 777.02 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="top_band_3" data-name="top band 3" d="M727.48 624.41 C608.48 693.12 415.52 693.12 296.52 624.41 C177.51 555.7 177.51 444.3 296.52 375.59 C415.52 306.88 608.48 306.88 727.48 375.59 C846.49 444.3 846.49 555.7 727.48 624.41 Z" fill="#3fc584"/>
|
||||
<path id="top_band_4" data-name="top band 4" d="M677.95 595.81 C586.3 648.72 437.7 648.72 346.05 595.81 C254.4 542.9 254.4 457.1 346.05 404.19 C437.7 351.28 586.3 351.28 677.95 404.19 C769.6 457.1 769.6 542.9 677.95 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="top_band_5" data-name="top band 5" d="M628.41 567.21 C564.12 604.33 459.88 604.33 395.59 567.21 C331.3 530.09 331.3 469.91 395.59 432.79 C459.88 395.67 564.12 395.67 628.41 432.79 C692.7 469.91 692.7 530.09 628.41 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="top_band_6" data-name="top band 6" d="M578.87 538.61 C541.94 559.93 482.06 559.93 445.13 538.61 C408.19 517.29 408.19 482.71 445.13 461.39 C482.06 440.07 541.94 440.07 578.87 461.39 C615.81 482.71 615.81 517.29 578.87 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="top_shade" data-name="top shade" d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z" fill="#ffffff" opacity="0.1"/>
|
||||
</g>
|
||||
<g id="Left_face" data-name="Left face" clip-path="url(#clip-path-2)">
|
||||
<path id="left" d="M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z" fill="#2c4fbf"/>
|
||||
<path id="left_band_1" data-name="left band 1" d="M829.03 683.04 C829.03 480.86 687.09 235.01 512 133.92 C336.91 32.83 194.97 114.78 194.97 316.96 C194.97 519.14 336.91 764.99 512 866.08 C687.09 967.17 829.03 885.22 829.03 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="left_band_2" data-name="left band 2" d="M777.02 653.01 C777.02 484 658.37 278.49 512 193.98 C365.63 109.47 246.98 177.98 246.98 346.99 C246.98 516 365.63 721.51 512 806.02 C658.37 890.53 777.02 822.02 777.02 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="left_band_3" data-name="left band 3" d="M727.48 624.41 C727.48 486.99 631.01 319.89 512 251.18 C392.99 182.47 296.52 238.17 296.52 375.59 C296.52 513.01 392.99 680.11 512 748.82 C631.01 817.53 727.48 761.83 727.48 624.41 Z" fill="#3fc584"/>
|
||||
<path id="left_band_4" data-name="left band 4" d="M677.95 595.81 C677.95 489.98 603.65 361.29 512 308.38 C420.35 255.47 346.05 298.36 346.05 404.19 C346.05 510.02 420.35 638.71 512 691.62 C603.65 744.53 677.95 701.64 677.95 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="left_band_5" data-name="left band 5" d="M628.41 567.21 C628.41 492.97 576.29 402.7 512 365.58 C447.71 328.46 395.59 358.55 395.59 432.79 C395.59 507.03 447.71 597.3 512 634.42 C576.29 671.54 628.41 641.45 628.41 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="left_band_6" data-name="left band 6" d="M578.87 538.61 C578.87 495.96 548.93 444.1 512 422.78 C475.07 401.46 445.13 418.74 445.13 461.39 C445.13 504.04 475.07 555.9 512 577.22 C548.93 598.54 578.87 581.26 578.87 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="left_shade" data-name="left shade" d="M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z" fill="#000000" opacity="0.12"/>
|
||||
</g>
|
||||
<g id="Right_face" data-name="Right face" clip-path="url(#clip-path-3)">
|
||||
<path id="right" d="M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z" fill="#2c4fbf"/>
|
||||
<path id="right_band_1" data-name="right band 1" d="M194.97 683.04 C194.97 480.86 336.91 235.01 512 133.92 C687.09 32.83 829.03 114.78 829.03 316.96 C829.03 519.14 687.09 764.99 512 866.08 C336.91 967.17 194.97 885.22 194.97 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="right_band_2" data-name="right band 2" d="M246.98 653.01 C246.98 484 365.63 278.49 512 193.98 C658.37 109.47 777.02 177.98 777.02 346.99 C777.02 516 658.37 721.51 512 806.02 C365.63 890.53 246.98 822.02 246.98 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="right_band_3" data-name="right band 3" d="M296.52 624.41 C296.52 486.99 392.99 319.89 512 251.18 C631.01 182.47 727.48 238.17 727.48 375.59 C727.48 513.01 631.01 680.11 512 748.82 C392.99 817.53 296.52 761.83 296.52 624.41 Z" fill="#3fc584"/>
|
||||
<path id="right_band_4" data-name="right band 4" d="M346.05 595.81 C346.05 489.98 420.35 361.29 512 308.38 C603.65 255.47 677.95 298.36 677.95 404.19 C677.95 510.02 603.65 638.71 512 691.62 C420.35 744.53 346.05 701.64 346.05 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="right_band_5" data-name="right band 5" d="M395.59 567.21 C395.59 492.97 447.71 402.7 512 365.58 C576.29 328.46 628.41 358.55 628.41 432.79 C628.41 507.03 576.29 597.3 512 634.42 C447.71 671.54 395.59 641.45 395.59 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="right_band_6" data-name="right band 6" d="M445.13 538.61 C445.13 495.96 475.07 444.1 512 422.78 C548.93 401.46 578.87 418.74 578.87 461.39 C578.87 504.04 548.93 555.9 512 577.22 C475.07 598.54 445.13 581.26 445.13 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="right_shade" data-name="right shade" d="M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z" fill="#000000" opacity="0.3"/>
|
||||
</g>
|
||||
<g id="Mesh" clip-path="url(#clip-path-4)">
|
||||
<path id="hexahedral_mesh" data-name="hexahedral mesh" d="M573.92 249.75 L326.24 392.75 M450.08 249.75 L697.76 392.75 M326.24 678.75 L326.24 392.75 M264.32 571.5 L512 714.5 M697.76 678.75 L697.76 392.75 M759.68 571.5 L512 714.5 M635.84 285.5 L388.16 428.5 M388.16 285.5 L635.84 428.5 M388.16 714.5 L388.16 428.5 M264.32 500 L512 643 M635.84 714.5 L635.84 428.5 M759.68 500 L512 643 M697.76 321.25 L450.08 464.25 M326.24 321.25 L573.92 464.25 M450.08 750.25 L450.08 464.25 M264.32 428.5 L512 571.5 M573.92 750.25 L573.92 464.25 M759.68 428.5 L512 571.5" fill="none" stroke="#0b2236" stroke-width="3.5" stroke-linejoin="round" opacity="0.45"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.9 KiB |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<title>FieldCraft icon flow in front of the cube</title>
|
||||
<g id="Flow_in_front" data-name="Flow in front">
|
||||
<path id="streamline_1_halo" data-name="streamline 1 halo" d="M201.2 345.74 L201.24 350.1 L201.45 354.48 L201.83 358.88 L202.38 363.3 L203.1 367.74 L203.98 372.18 L205.04 376.64 L206.26 381.1 L207.64 385.57 L209.19 390.03 L210.9 394.5 L212.76 398.96 L214.79 403.42 L216.97 407.87 L219.3 412.31 L221.79 416.74 L224.42 421.15 L227.21 425.55 L230.14 429.93 L233.22 434.29 L236.43 438.62 L239.79 442.94 L243.29 447.22 L246.93 451.49 L250.7 455.72 L254.6 459.92 L258.64 464.08 L262.8 468.22 L267.09 472.31 L271.5 476.37 L276.03 480.39 L280.69 484.36 L285.46 488.29 L290.34 492.18 L295.34 496.02 L300.44 499.8 L305.65 503.54 L310.97 507.23 L316.38 510.86 L321.9 514.43 L327.51 517.95 L333.21 521.41 L339 524.81 L344.88 528.14 L350.85 531.41 L356.89 534.62 L363.02 537.75 L369.21 540.82 L375.48 543.82 L381.82 546.75 L388.22 549.6 L394.68 552.38 L401.21 555.08 L407.79 557.71 L414.42 560.26 L421.1 562.72 L427.82 565.11 L434.59 567.42 L441.39 569.64 L448.23 571.77 L455.11 573.83 L462.01 575.79 L468.93 577.67 L475.88 579.46 L482.84 581.16 L489.82 582.77 L496.81 584.28 L503.8 585.71 L510.8 587.04 L517.8 588.28 L524.8 589.43 L531.79 590.48 L538.76 591.44 L545.73 592.3 L552.68 593.06 L559.6 593.73 L566.5 594.3 L573.37 594.77 L580.21 595.15 L587.02 595.43 L593.79 595.61 L600.51 595.69 L607.19 595.67 L613.82 595.56 L620.4 595.34 L626.93 595.03 L633.39 594.62 L639.79 594.11 L646.13 593.5 L652.4 592.79 L658.6 591.99 L664.72 591.09 L670.76 590.09 L676.73 588.99 L682.61 587.79 L688.4 586.5 L694.1 585.12 L699.71 583.64 L705.22 582.06 L710.64 580.39 L715.95 578.63 L721.15 576.77 L726.25 574.82 L731.24 572.78 L736.12 570.64 L740.88 568.42 L745.52 566.11 L750.04 563.71 L754.43 561.22 L758.7 558.65 L762.84 555.99 L766.84 553.25 L770.71 550.42 L774.45 547.51 L778.04 544.53 L781.49 541.46 L784.79 538.32 L787.95 535.1 L790.95 531.81 L793.8 528.45 L796.5 525.02 L799.03 521.52 L801.41 517.96 L803.61 514.34 L805.65 510.66 L807.52 506.93 L809.22 503.14 L810.74 499.31 L812.08 495.43 L813.23 491.5 L814.19 487.54 L814.94 483.55 L815.45 479.52 L815.34 475.48 L808.84 474.32 L807.39 477.92 L806.23 481.44 L805 484.91 L803.68 488.33 L802.24 491.7 L800.69 495.02 L799 498.28 L797.2 501.49 L795.26 504.65 L793.2 507.75 L791 510.8 L788.67 513.8 L786.22 516.74 L783.63 519.62 L780.91 522.45 L778.06 525.21 L775.08 527.92 L771.98 530.57 L768.74 533.16 L765.37 535.68 L761.88 538.14 L758.26 540.53 L754.51 542.86 L750.65 545.12 L746.66 547.31 L742.54 549.43 L738.31 551.47 L733.96 553.44 L729.5 555.34 L724.92 557.16 L720.24 558.9 L715.44 560.57 L710.54 562.15 L705.53 563.66 L700.42 565.08 L695.21 566.42 L689.91 567.67 L684.51 568.84 L679.02 569.92 L673.44 570.92 L667.78 571.83 L662.03 572.65 L656.21 573.39 L650.31 574.03 L644.34 574.59 L638.29 575.05 L632.18 575.43 L626.01 575.71 L619.78 575.9 L613.49 576 L607.15 576.01 L600.75 575.93 L594.31 575.76 L587.83 575.5 L581.31 575.14 L574.75 574.69 L568.15 574.15 L561.53 573.52 L554.88 572.8 L548.21 571.99 L541.53 571.09 L534.82 570.1 L528.11 569.02 L521.38 567.85 L514.66 566.59 L507.93 565.25 L501.2 563.82 L494.49 562.3 L487.78 560.7 L481.08 559.01 L474.4 557.24 L467.75 555.39 L461.11 553.46 L454.51 551.44 L447.93 549.35 L441.39 547.18 L434.89 544.93 L428.43 542.6 L422.02 540.2 L415.65 537.73 L409.34 535.18 L403.08 532.57 L396.88 529.88 L390.75 527.13 L384.67 524.31 L378.67 521.43 L372.74 518.48 L366.88 515.47 L361.1 512.4 L355.41 509.28 L349.79 506.09 L344.27 502.86 L338.83 499.57 L333.49 496.23 L328.24 492.84 L323.09 489.4 L318.04 485.92 L313.1 482.4 L308.26 478.84 L303.53 475.23 L298.92 471.59 L294.41 467.92 L290.03 464.21 L285.76 460.48 L281.61 456.71 L277.59 452.92 L273.69 449.11 L269.92 445.27 L266.28 441.42 L262.77 437.55 L259.38 433.66 L256.14 429.77 L253.03 425.86 L250.05 421.95 L247.22 418.03 L244.52 414.12 L241.96 410.2 L239.54 406.28 L237.27 402.37 L235.14 398.47 L233.15 394.57 L231.3 390.69 L229.6 386.82 L228.04 382.97 L226.62 379.14 L225.35 375.32 L224.23 371.53 L223.24 367.76 L222.4 364.02 L221.7 360.3 L221.14 356.61 L220.73 352.95 L220.45 349.32 L220.32 345.71 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_1" data-name="streamline 1" d="M204.5 345.74 L204.54 349.97 L204.74 354.22 L205.1 358.5 L205.64 362.79 L206.34 367.11 L207.2 371.44 L208.23 375.79 L209.42 380.15 L210.77 384.51 L212.28 388.88 L213.95 393.25 L215.78 397.62 L217.76 401.99 L219.9 406.35 L222.19 410.71 L224.63 415.06 L227.22 419.4 L229.96 423.73 L232.85 428.04 L235.88 432.34 L239.05 436.61 L242.36 440.87 L245.82 445.1 L249.41 449.3 L253.13 453.48 L256.99 457.64 L260.98 461.76 L265.09 465.84 L269.34 469.9 L273.7 473.91 L278.19 477.89 L282.8 481.83 L287.53 485.72 L292.37 489.57 L297.32 493.38 L302.38 497.14 L307.55 500.84 L312.82 504.5 L318.2 508.1 L323.67 511.65 L329.24 515.14 L334.9 518.57 L340.65 521.95 L346.49 525.26 L352.41 528.51 L358.42 531.69 L364.5 534.81 L370.66 537.86 L376.89 540.84 L383.18 543.74 L389.55 546.58 L395.97 549.34 L402.46 552.03 L409 554.64 L415.59 557.17 L422.23 559.62 L428.91 562 L435.64 564.29 L442.41 566.5 L449.21 568.62 L456.04 570.66 L462.9 572.61 L469.79 574.48 L476.69 576.26 L483.62 577.95 L490.55 579.55 L497.5 581.06 L504.46 582.47 L511.41 583.8 L518.37 585.03 L525.33 586.17 L532.27 587.22 L539.21 588.17 L546.13 589.02 L553.03 589.78 L559.91 590.45 L566.77 591.01 L573.6 591.48 L580.39 591.86 L587.15 592.13 L593.87 592.31 L600.55 592.39 L607.18 592.37 L613.77 592.26 L620.3 592.04 L626.77 591.73 L633.18 591.32 L639.53 590.82 L645.82 590.21 L652.03 589.51 L658.18 588.71 L664.24 587.82 L670.23 586.83 L676.14 585.74 L681.96 584.56 L687.69 583.28 L693.33 581.91 L698.88 580.44 L704.32 578.89 L709.67 577.23 L714.92 575.49 L720.06 573.66 L725.09 571.73 L730 569.72 L734.81 567.62 L739.49 565.43 L744.06 563.15 L748.5 560.79 L752.82 558.34 L757.01 555.81 L761.07 553.2 L765 550.51 L768.79 547.74 L772.44 544.9 L775.95 541.97 L779.32 538.98 L782.54 535.91 L785.62 532.77 L788.54 529.56 L791.31 526.29 L793.93 522.95 L796.39 519.55 L798.69 516.09 L800.82 512.58 L802.8 509.01 L804.6 505.39 L806.24 501.72 L807.71 498.01 L808.99 494.26 L810.1 490.46 L811.02 486.63 L811.74 482.77 L812.21 478.87 L812.09 474.9 L812.09 474.9 L810.62 478.56 L809.43 482.21 L808.17 485.82 L806.81 489.37 L805.33 492.87 L803.72 496.31 L801.98 499.7 L800.12 503.03 L798.12 506.3 L795.98 509.52 L793.72 512.67 L791.32 515.77 L788.79 518.81 L786.12 521.78 L783.33 524.7 L780.4 527.55 L777.34 530.33 L774.15 533.05 L770.83 535.71 L767.38 538.3 L763.81 540.82 L760.11 543.27 L756.28 545.65 L752.33 547.95 L748.27 550.19 L744.08 552.35 L739.77 554.43 L735.35 556.44 L730.81 558.37 L726.16 560.22 L721.4 561.99 L716.54 563.68 L711.57 565.29 L706.49 566.81 L701.32 568.25 L696.05 569.61 L690.68 570.88 L685.22 572.06 L679.67 573.16 L674.03 574.17 L668.31 575.09 L662.51 575.92 L656.63 576.66 L650.68 577.31 L644.65 577.87 L638.55 578.34 L632.39 578.72 L626.17 579.01 L619.88 579.2 L613.55 579.3 L607.15 579.31 L600.71 579.23 L594.22 579.06 L587.69 578.79 L581.13 578.43 L574.52 577.98 L567.88 577.44 L561.22 576.81 L554.53 576.08 L547.81 575.27 L541.08 574.36 L534.34 573.36 L527.58 572.28 L520.81 571.1 L514.05 569.84 L507.28 568.48 L500.51 567.04 L493.75 565.52 L487 563.91 L480.27 562.21 L473.55 560.43 L466.85 558.57 L460.18 556.62 L453.53 554.6 L446.92 552.49 L440.34 550.3 L433.8 548.04 L427.3 545.7 L420.85 543.29 L414.44 540.8 L408.09 538.24 L401.79 535.61 L395.56 532.9 L389.38 530.13 L383.27 527.29 L377.22 524.39 L371.25 521.43 L365.36 518.4 L359.54 515.31 L353.8 512.16 L348.14 508.95 L342.58 505.69 L337.1 502.38 L331.71 499.01 L326.42 495.6 L321.23 492.13 L316.14 488.62 L311.16 485.07 L306.28 481.47 L301.51 477.84 L296.85 474.16 L292.3 470.45 L287.87 466.71 L283.56 462.93 L279.37 459.13 L275.3 455.29 L271.35 451.43 L267.54 447.55 L263.85 443.65 L260.29 439.73 L256.86 435.79 L253.57 431.84 L250.41 427.87 L247.39 423.9 L244.51 419.92 L241.76 415.93 L239.16 411.94 L236.7 407.96 L234.38 403.97 L232.21 399.98 L230.17 396.01 L228.29 392.04 L226.55 388.08 L224.95 384.13 L223.5 380.2 L222.19 376.28 L221.04 372.38 L220.02 368.5 L219.16 364.64 L218.44 360.81 L217.87 357 L217.44 353.21 L217.16 349.45 L217.02 345.72 Z" fill="#ffffff"/>
|
||||
<path id="streamline_2_halo" data-name="streamline 2 halo" d="M156.36 433.49 L156.55 439.71 L157.04 445.96 L157.83 452.24 L158.91 458.55 L160.28 464.88 L161.95 471.22 L163.9 477.56 L166.13 483.91 L168.64 490.26 L171.42 496.59 L174.48 502.92 L177.8 509.23 L181.39 515.51 L185.23 521.77 L189.33 528.01 L193.68 534.2 L198.28 540.37 L203.12 546.49 L208.2 552.56 L213.51 558.59 L219.06 564.56 L224.82 570.48 L230.81 576.33 L237.01 582.12 L243.43 587.85 L250.04 593.5 L256.86 599.08 L263.88 604.57 L271.08 609.99 L278.46 615.31 L286.03 620.55 L293.76 625.69 L301.67 630.73 L309.73 635.67 L317.95 640.51 L326.31 645.24 L334.82 649.85 L343.46 654.35 L352.23 658.73 L361.12 663 L370.12 667.13 L379.23 671.14 L388.45 675.02 L397.76 678.76 L407.15 682.37 L416.62 685.83 L426.17 689.16 L435.78 692.34 L445.45 695.38 L455.17 698.26 L464.93 701 L474.73 703.58 L484.55 706.01 L494.4 708.28 L504.25 710.39 L514.12 712.34 L523.98 714.12 L533.83 715.75 L543.66 717.21 L553.47 718.5 L563.25 719.62 L572.99 720.58 L582.68 721.37 L592.32 721.99 L601.9 722.44 L611.4 722.72 L620.83 722.82 L630.18 722.76 L639.44 722.52 L648.6 722.11 L657.65 721.53 L666.6 720.77 L675.43 719.85 L684.13 718.75 L692.7 717.48 L701.14 716.04 L709.43 714.44 L717.57 712.66 L725.55 710.71 L733.37 708.6 L741.03 706.32 L748.51 703.87 L755.81 701.26 L762.92 698.49 L769.84 695.55 L776.56 692.46 L783.08 689.2 L789.4 685.79 L795.49 682.21 L801.37 678.49 L807.02 674.61 L812.44 670.58 L817.62 666.41 L822.57 662.09 L827.26 657.62 L831.7 653.02 L835.88 648.28 L839.79 643.41 L843.43 638.42 L846.8 633.3 L849.89 628.07 L852.69 622.72 L855.2 617.28 L857.41 611.74 L859.34 606.11 L860.96 600.4 L862.28 594.62 L863.3 588.77 L864.02 582.87 L864.44 576.92 L864.56 570.92 L864.37 564.9 L846.06 565.45 L845.95 570.58 L845.59 575.63 L844.99 580.61 L844.15 585.5 L843.06 590.31 L841.75 595.04 L840.19 599.69 L838.4 604.26 L836.38 608.74 L834.12 613.14 L831.62 617.46 L828.9 621.69 L825.93 625.84 L822.74 629.9 L819.31 633.87 L815.64 637.74 L811.75 641.53 L807.62 645.21 L803.26 648.8 L798.67 652.28 L793.85 655.65 L788.81 658.91 L783.54 662.06 L778.06 665.09 L772.36 668 L766.45 670.79 L760.33 673.45 L754.01 675.98 L747.5 678.37 L740.78 680.62 L733.89 682.74 L726.81 684.72 L719.55 686.55 L712.12 688.23 L704.53 689.77 L696.78 691.15 L688.88 692.39 L680.83 693.47 L672.65 694.39 L664.33 695.16 L655.89 695.77 L647.33 696.22 L638.66 696.52 L629.88 696.65 L621.01 696.63 L612.05 696.45 L603.01 696.1 L593.89 695.6 L584.71 694.93 L575.47 694.11 L566.17 693.13 L556.84 691.99 L547.46 690.69 L538.06 689.24 L528.64 687.63 L519.2 685.87 L509.76 683.95 L500.32 681.88 L490.89 679.67 L481.48 677.3 L472.1 674.79 L462.75 672.14 L453.44 669.34 L444.18 666.41 L434.97 663.34 L425.83 660.13 L416.76 656.79 L407.77 653.33 L398.86 649.73 L390.05 646.02 L381.34 642.18 L372.74 638.23 L364.25 634.16 L355.88 629.98 L347.64 625.7 L339.54 621.32 L331.58 616.83 L323.76 612.25 L316.11 607.58 L308.61 602.83 L301.28 597.99 L294.12 593.07 L287.14 588.08 L280.35 583.01 L273.74 577.89 L267.33 572.7 L261.13 567.46 L255.12 562.16 L249.33 556.83 L243.75 551.45 L238.39 546.03 L233.26 540.58 L228.35 535.11 L223.67 529.62 L219.23 524.11 L215.02 518.59 L211.05 513.07 L207.32 507.55 L203.84 502.03 L200.61 496.53 L197.62 491.04 L194.88 485.57 L192.39 480.14 L190.14 474.73 L188.15 469.36 L186.41 464.03 L184.91 458.74 L183.67 453.5 L182.67 448.31 L181.91 443.18 L181.4 438.1 L181.13 433.08 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_2" data-name="streamline 2" d="M160.54 433.42 L160.72 439.44 L161.19 445.49 L161.95 451.59 L163 457.71 L164.34 463.87 L165.96 470.04 L167.85 476.22 L170.03 482.42 L172.48 488.62 L175.21 494.82 L178.2 501.01 L181.45 507.19 L184.97 513.36 L188.75 519.51 L192.78 525.64 L197.06 531.74 L201.58 537.8 L206.35 543.83 L211.36 549.82 L216.6 555.77 L222.07 561.67 L227.77 567.51 L233.69 573.3 L239.82 579.03 L246.17 584.69 L252.72 590.29 L259.47 595.81 L266.41 601.25 L273.55 606.61 L280.87 611.89 L288.37 617.08 L296.04 622.18 L303.88 627.18 L311.88 632.09 L320.03 636.89 L328.33 641.58 L336.78 646.16 L345.36 650.63 L354.06 654.98 L362.89 659.21 L371.84 663.32 L380.89 667.3 L390.04 671.15 L399.29 674.87 L408.62 678.45 L418.03 681.9 L427.52 685.2 L437.07 688.36 L446.67 691.38 L456.33 694.25 L466.03 696.97 L475.77 699.53 L485.53 701.94 L495.31 704.2 L505.11 706.29 L514.91 708.23 L524.7 710.01 L534.49 711.62 L544.26 713.07 L554 714.35 L563.71 715.47 L573.38 716.42 L583 717.2 L592.57 717.82 L602.07 718.26 L611.51 718.54 L620.86 718.64 L630.13 718.58 L639.31 718.34 L648.39 717.93 L657.37 717.36 L666.23 716.61 L674.97 715.69 L683.59 714.61 L692.07 713.35 L700.42 711.93 L708.61 710.34 L716.66 708.58 L724.55 706.66 L732.27 704.57 L739.82 702.32 L747.19 699.91 L754.38 697.33 L761.38 694.6 L768.19 691.71 L774.8 688.67 L781.2 685.47 L787.39 682.12 L793.36 678.62 L799.11 674.97 L804.64 671.18 L809.93 667.24 L814.98 663.17 L819.79 658.96 L824.36 654.61 L828.67 650.14 L832.72 645.54 L836.51 640.82 L840.04 635.98 L843.29 631.02 L846.27 625.97 L848.97 620.81 L851.39 615.55 L853.52 610.21 L855.37 604.78 L856.93 599.28 L858.2 593.7 L859.18 588.07 L859.87 582.37 L860.27 576.63 L860.38 570.84 L860.2 565.02 L850.24 565.32 L850.13 570.65 L849.76 575.92 L849.14 581.1 L848.27 586.2 L847.14 591.23 L845.77 596.17 L844.15 601.02 L842.29 605.79 L840.18 610.47 L837.83 615.06 L835.24 619.56 L832.4 623.97 L829.33 628.28 L826.01 632.49 L822.46 636.61 L818.67 640.62 L814.65 644.54 L810.39 648.34 L805.9 652.04 L801.18 655.62 L796.23 659.08 L791.06 662.43 L785.67 665.66 L780.07 668.76 L774.25 671.73 L768.22 674.58 L761.98 677.29 L755.55 679.86 L748.92 682.3 L742.1 684.59 L735.1 686.74 L727.91 688.75 L720.56 690.6 L713.03 692.31 L705.34 693.87 L697.5 695.27 L689.51 696.52 L681.37 697.61 L673.1 698.55 L664.7 699.32 L656.17 699.94 L647.53 700.4 L638.78 700.7 L629.93 700.83 L620.98 700.81 L611.95 700.63 L602.83 700.28 L593.64 699.77 L584.39 699.1 L575.08 698.27 L565.72 697.29 L556.31 696.14 L546.87 694.83 L537.4 693.37 L527.91 691.75 L518.41 689.97 L508.91 688.04 L499.41 685.96 L489.92 683.73 L480.44 681.35 L471 678.83 L461.58 676.15 L452.21 673.34 L442.89 670.39 L433.62 667.29 L424.42 664.07 L415.29 660.71 L406.24 657.21 L397.27 653.6 L388.4 649.85 L379.63 645.99 L370.96 642.01 L362.41 637.91 L353.98 633.71 L345.68 629.39 L337.52 624.97 L329.49 620.45 L321.62 615.84 L313.89 611.13 L306.33 606.33 L298.94 601.45 L291.71 596.49 L284.67 591.45 L277.81 586.34 L271.14 581.16 L264.66 575.91 L258.39 570.61 L252.31 565.26 L246.45 559.86 L240.8 554.41 L235.38 548.92 L230.17 543.4 L225.19 537.85 L220.44 532.27 L215.92 526.67 L211.64 521.06 L207.61 515.44 L203.81 509.81 L200.26 504.18 L196.95 498.56 L193.9 492.95 L191.09 487.35 L188.54 481.77 L186.24 476.22 L184.19 470.7 L182.4 465.2 L180.86 459.75 L179.57 454.33 L178.54 448.96 L177.76 443.64 L177.23 438.37 L176.95 433.15 Z" fill="#ffffff"/>
|
||||
<path id="streamline_3_halo" data-name="streamline 3 halo" d="M196.57 551.95 L196.71 556.79 L197.06 561.65 L197.62 566.54 L198.39 571.45 L199.37 576.36 L200.56 581.29 L201.95 586.23 L203.55 591.17 L205.35 596.1 L207.36 601.03 L209.56 605.95 L211.96 610.86 L214.55 615.75 L217.33 620.63 L220.31 625.48 L223.47 630.31 L226.81 635.11 L230.34 639.88 L234.04 644.61 L237.92 649.32 L241.98 653.98 L246.2 658.6 L250.59 663.18 L255.15 667.71 L259.87 672.19 L264.75 676.63 L269.78 681 L274.96 685.33 L280.29 689.59 L285.77 693.79 L291.39 697.93 L297.14 702 L303.03 706.01 L309.05 709.94 L315.2 713.8 L321.47 717.59 L327.86 721.29 L334.36 724.92 L340.97 728.47 L347.69 731.93 L354.51 735.31 L361.43 738.6 L368.45 741.8 L375.55 744.91 L382.74 747.93 L390.01 750.85 L397.36 753.67 L404.77 756.4 L412.26 759.02 L419.8 761.55 L427.4 763.97 L435.06 766.28 L442.76 768.49 L450.51 770.6 L458.3 772.59 L466.12 774.47 L473.97 776.25 L481.84 777.91 L489.73 779.46 L497.64 780.89 L505.55 782.21 L513.47 783.41 L521.39 784.49 L529.3 785.46 L537.21 786.31 L545.1 787.05 L552.97 787.66 L560.81 788.15 L568.63 788.53 L576.41 788.78 L584.15 788.91 L591.85 788.92 L599.5 788.82 L607.09 788.59 L614.63 788.24 L622.11 787.77 L629.52 787.18 L636.85 786.46 L644.12 785.63 L651.3 784.68 L658.39 783.61 L665.4 782.42 L672.32 781.12 L679.13 779.69 L685.85 778.15 L692.46 776.49 L698.96 774.72 L705.34 772.83 L711.61 770.82 L717.76 768.7 L723.78 766.47 L729.67 764.13 L735.43 761.68 L741.05 759.11 L746.53 756.44 L751.87 753.66 L757.06 750.78 L762.1 747.78 L766.99 744.69 L771.71 741.49 L776.28 738.19 L780.68 734.79 L784.91 731.29 L788.97 727.7 L792.86 724.01 L796.57 720.22 L800.09 716.35 L803.43 712.39 L806.58 708.34 L809.54 704.21 L812.3 700 L814.87 695.71 L817.23 691.34 L819.39 686.91 L821.34 682.42 L823.08 677.86 L824.61 673.24 L825.92 668.58 L827.02 663.86 L827.91 659.11 L828.58 654.31 L829.03 649.49 L829.27 644.64 L829.29 639.76 L811.2 639.83 L811.05 643.9 L810.73 647.93 L810.24 651.92 L809.57 655.87 L808.72 659.78 L807.7 663.64 L806.51 667.45 L805.15 671.23 L803.62 674.95 L801.91 678.63 L800.03 682.27 L797.98 685.85 L795.75 689.39 L793.36 692.88 L790.79 696.31 L788.05 699.69 L785.13 703.01 L782.05 706.28 L778.8 709.49 L775.37 712.63 L771.78 715.71 L768.02 718.72 L764.1 721.66 L760.01 724.53 L755.76 727.32 L751.36 730.04 L746.79 732.68 L742.07 735.23 L737.2 737.7 L732.19 740.09 L727.02 742.38 L721.72 744.59 L716.27 746.7 L710.7 748.72 L704.98 750.65 L699.15 752.47 L693.18 754.2 L687.1 755.82 L680.9 757.34 L674.59 758.76 L668.17 760.07 L661.65 761.28 L655.03 762.38 L648.31 763.37 L641.51 764.25 L634.61 765.03 L627.64 765.69 L620.59 766.24 L613.47 766.68 L606.27 767.01 L599.02 767.22 L591.71 767.32 L584.35 767.31 L576.94 767.19 L569.48 766.95 L561.99 766.6 L554.46 766.14 L546.91 765.57 L539.33 764.88 L531.74 764.08 L524.13 763.17 L516.51 762.15 L508.89 761.02 L501.27 759.78 L493.65 758.43 L486.05 756.97 L478.46 755.41 L470.9 753.74 L463.36 751.97 L455.86 750.09 L448.39 748.11 L440.96 746.03 L433.58 743.85 L426.24 741.57 L418.97 739.2 L411.75 736.73 L404.6 734.16 L397.52 731.51 L390.51 728.77 L383.58 725.93 L376.74 723.01 L369.98 720.01 L363.32 716.93 L356.75 713.76 L350.28 710.52 L343.92 707.21 L337.66 703.82 L331.52 700.35 L325.5 696.83 L319.59 693.23 L313.82 689.57 L308.17 685.85 L302.65 682.07 L297.27 678.24 L292.02 674.35 L286.92 670.42 L281.97 666.43 L277.16 662.41 L272.5 658.34 L268 654.23 L263.66 650.08 L259.47 645.91 L255.45 641.7 L251.59 637.46 L247.89 633.21 L244.37 628.93 L241.01 624.63 L237.83 620.32 L234.82 616 L231.99 611.66 L229.33 607.32 L226.85 602.98 L224.54 598.64 L222.42 594.3 L220.47 589.97 L218.7 585.64 L217.12 581.32 L215.71 577.01 L214.48 572.72 L213.43 568.44 L212.56 564.18 L211.87 559.94 L211.36 555.72 L211.03 551.52 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_3" data-name="streamline 3" d="M199.87 551.85 L200 556.55 L200.34 561.27 L200.88 566.03 L201.62 570.8 L202.58 575.59 L203.73 580.4 L205.09 585.21 L206.65 590.03 L208.41 594.86 L210.37 599.68 L212.52 604.5 L214.87 609.32 L217.42 614.12 L220.15 618.9 L223.07 623.67 L226.18 628.42 L229.47 633.15 L232.94 637.85 L236.59 642.52 L240.42 647.15 L244.42 651.76 L248.59 656.32 L252.92 660.84 L257.43 665.32 L262.09 669.76 L266.92 674.14 L271.89 678.47 L277.03 682.75 L282.31 686.97 L287.73 691.14 L293.3 695.24 L299 699.28 L304.84 703.25 L310.81 707.15 L316.91 710.98 L323.13 714.73 L329.47 718.42 L335.92 722.02 L342.49 725.54 L349.16 728.98 L355.94 732.33 L362.81 735.6 L369.78 738.78 L376.84 741.87 L383.98 744.87 L391.2 747.77 L398.5 750.58 L405.88 753.29 L413.31 755.9 L420.81 758.41 L428.37 760.81 L435.98 763.12 L443.64 765.31 L451.34 767.4 L459.08 769.39 L466.86 771.26 L474.66 773.02 L482.49 774.67 L490.33 776.21 L498.19 777.64 L506.06 778.95 L513.94 780.14 L521.81 781.22 L529.68 782.18 L537.53 783.03 L545.37 783.76 L553.2 784.37 L560.99 784.86 L568.76 785.23 L576.49 785.48 L584.18 785.61 L591.83 785.62 L599.42 785.52 L606.97 785.29 L614.45 784.94 L621.88 784.47 L629.23 783.89 L636.51 783.18 L643.72 782.36 L650.84 781.41 L657.88 780.35 L664.83 779.17 L671.68 777.88 L678.43 776.47 L685.09 774.94 L691.63 773.3 L698.06 771.54 L704.38 769.67 L710.58 767.69 L716.66 765.59 L722.61 763.39 L728.43 761.07 L734.11 758.65 L739.66 756.12 L745.06 753.49 L750.32 750.75 L755.43 747.91 L760.39 744.96 L765.19 741.92 L769.84 738.77 L774.32 735.53 L778.64 732.2 L782.79 728.77 L786.76 725.25 L790.57 721.64 L794.19 717.94 L797.63 714.15 L800.89 710.29 L803.96 706.34 L806.84 702.31 L809.53 698.22 L812.02 694.04 L814.31 689.8 L816.41 685.5 L818.3 681.13 L819.98 676.71 L821.46 672.24 L822.74 667.71 L823.8 663.14 L824.66 658.53 L825.31 653.89 L825.74 649.21 L825.97 644.5 L825.99 639.78 L814.5 639.81 L814.35 644.03 L814.02 648.21 L813.51 652.35 L812.82 656.44 L811.94 660.5 L810.89 664.5 L809.66 668.46 L808.25 672.37 L806.66 676.23 L804.89 680.05 L802.95 683.81 L800.83 687.52 L798.53 691.17 L796.06 694.77 L793.41 698.31 L790.59 701.79 L787.6 705.21 L784.43 708.57 L781.09 711.86 L777.58 715.08 L773.91 718.23 L770.06 721.31 L766.06 724.32 L761.89 727.24 L757.55 730.09 L753.06 732.86 L748.42 735.55 L743.62 738.15 L738.67 740.66 L733.58 743.08 L728.34 745.41 L722.96 747.65 L717.45 749.79 L711.79 751.83 L706.01 753.78 L700.11 755.63 L694.08 757.37 L687.93 759.01 L681.67 760.55 L675.29 761.98 L668.81 763.31 L662.23 764.53 L655.55 765.64 L648.77 766.64 L641.91 767.53 L634.96 768.31 L627.93 768.98 L620.82 769.53 L613.64 769.98 L606.4 770.3 L599.09 770.52 L591.73 770.62 L584.32 770.61 L576.86 770.49 L569.35 770.25 L561.81 769.9 L554.23 769.43 L546.63 768.86 L539.01 768.16 L531.36 767.36 L523.71 766.44 L516.04 765.42 L508.37 764.28 L500.71 763.03 L493.05 761.67 L485.4 760.21 L477.77 758.64 L470.16 756.96 L462.58 755.17 L455.02 753.28 L447.51 751.29 L440.04 749.2 L432.61 747.01 L425.23 744.71 L417.91 742.32 L410.65 739.84 L403.45 737.26 L396.32 734.59 L389.27 731.82 L382.3 728.97 L375.41 726.03 L368.6 723.01 L361.89 719.9 L355.27 716.72 L348.76 713.45 L342.35 710.11 L336.05 706.69 L329.86 703.2 L323.79 699.65 L317.83 696.02 L312.01 692.33 L306.31 688.58 L300.74 684.76 L295.3 680.89 L290.01 676.97 L284.86 672.99 L279.85 668.96 L274.99 664.89 L270.28 660.77 L265.72 656.62 L261.33 652.42 L257.09 648.19 L253.01 643.92 L249.09 639.63 L245.35 635.3 L241.77 630.96 L238.36 626.59 L235.12 622.2 L232.06 617.8 L229.17 613.38 L226.46 608.96 L223.93 604.53 L221.58 600.09 L219.4 595.65 L217.41 591.21 L215.6 586.77 L213.98 582.34 L212.53 577.91 L211.27 573.49 L210.2 569.09 L209.3 564.69 L208.6 560.32 L208.07 555.96 L207.73 551.61 Z" fill="#ffffff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
@@ -10,8 +10,8 @@
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"image-name": "03-mesh.svg",
|
||||
"name": "03-mesh",
|
||||
"image-name": "04-flow-front.svg",
|
||||
"name": "04-flow-front",
|
||||
"position": {
|
||||
"scale": 0.9,
|
||||
"translation-in-points": [
|
||||
@@ -21,7 +21,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "03 Mesh",
|
||||
"name": "04 Flow front",
|
||||
"shadow": {
|
||||
"kind": "none",
|
||||
"opacity": 0
|
||||
@@ -41,8 +41,8 @@
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"image-name": "02-part.svg",
|
||||
"name": "02-part",
|
||||
"image-name": "03-part.svg",
|
||||
"name": "03-part",
|
||||
"position": {
|
||||
"scale": 0.9,
|
||||
"translation-in-points": [
|
||||
@@ -52,7 +52,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "02 Part",
|
||||
"name": "03 Part",
|
||||
"shadow": {
|
||||
"kind": "none",
|
||||
"opacity": 0
|
||||
@@ -63,6 +63,37 @@
|
||||
"value": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"layers": [
|
||||
{
|
||||
"glass-specializations": [
|
||||
{
|
||||
"appearance": "tinted",
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"image-name": "02-flow-behind.svg",
|
||||
"name": "02-flow-behind",
|
||||
"position": {
|
||||
"scale": 0.9,
|
||||
"translation-in-points": [
|
||||
0,
|
||||
0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "02 Flow behind",
|
||||
"shadow": {
|
||||
"kind": "none",
|
||||
"opacity": 0
|
||||
},
|
||||
"specular": false,
|
||||
"translucency": {
|
||||
"enabled": false,
|
||||
"value": 0.3
|
||||
}
|
||||
},
|
||||
{
|
||||
"layers": [
|
||||
{
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
# FieldCraft application icon
|
||||
|
||||
FieldCraft's mark is an L-shaped bracket with a bolt hole, drawn in isometric view and covered
|
||||
by a structured hexahedral mesh with an O-grid around the hole. Its faces are separated by
|
||||
FieldCraft's mark is a cube in isometric view, covered by a structured hexahedral mesh, whose
|
||||
faces carry a banded colour fringe (blue to red, hottest at the front corner) as a stress or
|
||||
temperature result would, with three tapered flow streamlines wrapping around it. Its faces are separated by
|
||||
transparent gaps rather than painted edge lines, so the backdrop shows through them in every
|
||||
appearance. It is original artwork, attributed in `ATTRIBUTION.md`, and shares the Craft
|
||||
family's layout (rounded-square backdrop, isometric floor grid, lit top faces) in its own teal.
|
||||
family's layout (rounded-square backdrop, isometric floor grid, lit top faces).
|
||||
|
||||
Everything here is generated by `cargo xtask app-icon` (`xtask/src/app_icon.rs`), which computes
|
||||
the geometry and draws it with VectorCraft's command-line tool (`VECTORCRAFT_CLI`, else
|
||||
@@ -14,10 +15,10 @@ hand. It runs on macOS (sips, iconutil, `xcrun actool`) with ImageMagick (`magic
|
||||
| File | What it is |
|
||||
|---|---|
|
||||
| `icon.vectorcraft`, `icon.svg`, `icon.png` | The full icon on its backdrop, 1024 × 1024 |
|
||||
| `icon-small.vectorcraft`, `icon-small.svg`, `icon-small.png` | Small-size artwork used at 16–32 px: no mesh or floor grid, faces edge to edge |
|
||||
| `icon-small.vectorcraft`, `icon-small.svg`, `icon-small.png` | Small-size artwork used at 16–32 px: the fringe cube and one bolder streamline, no mesh or floor grid, faces edge to edge |
|
||||
| `icon.iconset/`, `icon.icns` | macOS iconset (sips) and its iconutil compilation |
|
||||
| `icon.ico` | Windows icon, 16–256 px |
|
||||
| `FieldCraft.icon/` | Icon Composer document: floor grid (Default and Dark), part and mesh layers, each scaled to 90% |
|
||||
| `FieldCraft.icon/` | Icon Composer document: floor grid (Default and Dark), flow behind, cube (faces and mesh) and flow in front layers, each scaled to 90% |
|
||||
| `layers/*.vectorcraft` | Editable sources of the Icon Composer layers |
|
||||
| `Assets.car` | `actool` compilation of `FieldCraft.icon` for macOS 26 and later (needs Xcode 26 or later; the task skips it with a note otherwise) |
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 79 KiB |
@@ -1,35 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<defs>
|
||||
<filter id="filter-1" filterUnits="userSpaceOnUse" x="67" y="67" width="890" height="890" data-vc-blend="multiply" color-interpolation-filters="sRGB"><feGaussianBlur in="SourceAlpha" stdDeviation="7"/><feOffset dx="0" dy="10" result="shadow"/><feFlood flood-color="#1d3b38" flood-opacity="0.22"/><feComposite in2="shadow" operator="in" result="paint"/><feMerge><feMergeNode in="paint"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<filter id="filter-1" filterUnits="userSpaceOnUse" x="67" y="67" width="890" height="890" data-vc-blend="multiply" color-interpolation-filters="sRGB"><feGaussianBlur in="SourceAlpha" stdDeviation="7"/><feOffset dx="0" dy="10" result="shadow"/><feFlood flood-color="#1d2b3b" flood-opacity="0.22"/><feComposite in2="shadow" operator="in" result="paint"/><feMerge><feMergeNode in="paint"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<linearGradient id="linear-gradient-1" x1="512" y1="100" x2="512" y2="924" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fbfdfd"/>
|
||||
<stop offset="1" stop-color="#dbe5e4"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-2" x1="512" y1="141" x2="512" y2="385.86" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#86e3d3"/>
|
||||
<stop offset="1" stop-color="#4cc4b1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-3" x1="512" y1="452.64" x2="512" y2="764.28" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#86e3d3"/>
|
||||
<stop offset="1" stop-color="#4cc4b1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-4" x1="512" y1="200.36" x2="512" y2="638.14" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20b39f"/>
|
||||
<stop offset="1" stop-color="#118c7c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-5" x1="512" y1="578.78" x2="512" y2="883" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20b39f"/>
|
||||
<stop offset="1" stop-color="#118c7c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-6" x1="512" y1="326.5" x2="512" y2="883" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0f786d"/>
|
||||
<stop offset="1" stop-color="#0a544e"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-7" x1="512" y1="558.616" x2="512" y2="658.304" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0b665e"/>
|
||||
<stop offset="1" stop-color="#04302c"/>
|
||||
<stop offset="0" stop-color="#fbfcfe"/>
|
||||
<stop offset="1" stop-color="#dce3ec"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip-path-1">
|
||||
<path d="M512 214 L759.68 357 L512 500 L264.32 357 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-2">
|
||||
<path d="M264.32 357 L512 500 L512 786 L264.32 643 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-3">
|
||||
<path d="M759.68 643 L512 786 L512 500 L759.68 357 Z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>FieldCraft application icon, small sizes</title>
|
||||
<g id="Backdrop">
|
||||
@@ -37,12 +22,42 @@
|
||||
<path id="backdrop" d="M320 100 L704 100 C854 100 924 170 924 320 L924 704 C924 854 854 924 704 924 L320 924 C170 924 100 854 100 704 L100 320 C100 170 170 100 320 100 Z" fill="url(#linear-gradient-1)"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Part">
|
||||
<path id="wall_top" data-name="wall top" d="M512 141 L833.3 326.5 L730.48 385.86 L409.19 200.36 Z" fill="url(#linear-gradient-2)"/>
|
||||
<path id="base_top" data-name="base top" d="M409.19 452.64 L730.48 638.14 L512 764.28 L190.7 578.78 Z M521.64 643.71 C555.35 624.24 555.35 592.68 521.64 573.22 C487.92 553.75 433.26 553.75 399.55 573.22 C365.83 592.68 365.83 624.24 399.55 643.71 C433.26 663.17 487.92 663.17 521.64 643.71 Z" fill="url(#linear-gradient-3)"/>
|
||||
<path id="wall_front" data-name="wall front" d="M409.19 200.36 L730.48 385.86 L730.48 638.14 L409.19 452.64 Z" fill="url(#linear-gradient-4)"/>
|
||||
<path id="base_front" data-name="base front" d="M190.7 578.78 L512 764.28 L512 883 L190.7 697.5 Z" fill="url(#linear-gradient-5)"/>
|
||||
<path id="end" d="M833.3 697.5 L512 883 L512 764.28 L730.48 638.14 L730.48 385.86 L833.3 326.5 Z" fill="url(#linear-gradient-6)"/>
|
||||
<path id="bolt_hole" data-name="bolt hole" d="M521.64 643.71 C487.92 663.17 433.26 663.17 399.55 643.71 C365.83 624.24 365.83 592.68 399.55 573.22 C433.26 553.75 487.92 553.75 521.64 573.22 C555.35 592.68 555.35 624.24 521.64 643.71 Z" fill="url(#linear-gradient-7)"/>
|
||||
<g id="Flow_behind" data-name="Flow behind">
|
||||
<path id="streamline_1_halo" data-name="streamline 1 halo" d="M453.34 282.39 L443.98 278.95 L434.4 277.04 L424.84 275.56 L415.3 274.39 L405.8 273.47 L396.36 272.78 L386.98 272.32 L377.67 272.07 L368.44 272.02 L359.29 272.17 L350.24 272.53 L341.28 273.08 L332.43 273.82 L323.7 274.76 L315.08 275.89 L306.58 277.21 L298.22 278.73 L289.99 280.43 L281.9 282.32 L273.96 284.41 L266.18 286.68 L258.55 289.14 L251.08 291.8 L243.78 294.65 L236.66 297.69 L229.72 300.93 L222.96 304.36 L216.39 307.98 L210.02 311.81 L203.86 315.83 L197.91 320.05 L192.18 324.47 L186.68 329.09 L181.41 333.91 L176.39 338.93 L171.63 344.14 L167.14 349.55 L162.93 355.15 L159 360.93 L155.38 366.89 L152.07 373.02 L149.07 379.31 L146.41 385.75 L144.08 392.32 L142.1 399.02 L140.47 405.82 L139.19 412.71 L138.26 419.68 L137.68 426.72 L137.46 433.81 L200.03 432.76 L199.89 428.72 L199.94 424.74 L200.18 420.82 L200.61 416.96 L201.23 413.14 L202.03 409.36 L203.03 405.62 L204.23 401.91 L205.62 398.22 L207.22 394.56 L209.04 390.91 L211.07 387.28 L213.33 383.68 L215.81 380.09 L218.54 376.53 L221.5 372.99 L224.71 369.49 L228.16 366.03 L231.86 362.61 L235.81 359.24 L240.01 355.93 L244.46 352.69 L249.16 349.52 L254.1 346.42 L259.29 343.41 L264.71 340.49 L270.36 337.66 L276.24 334.94 L282.35 332.32 L288.67 329.81 L295.21 327.41 L301.95 325.14 L308.9 322.98 L316.03 320.95 L323.36 319.05 L330.86 317.27 L338.54 315.63 L346.39 314.12 L354.39 312.73 L362.55 311.48 L370.86 310.37 L379.3 309.37 L387.88 308.51 L396.58 307.76 L405.41 307.13 L414.35 306.59 L423.4 306.13 L432.56 305.69 L441.84 305.16 L451.45 303.42 Z M878.35 564.48 L877.61 557.78 L876.54 551.09 L875.15 544.44 L873.45 537.82 L871.43 531.24 L869.11 524.72 L866.49 518.24 L863.58 511.82 L860.38 505.47 L856.9 499.18 L853.13 492.97 L849.08 486.85 L844.75 480.81 L840.14 474.88 L835.22 469.07 L829.97 463.42 L824.32 458.01 L817.48 453.7 L801.08 467 L803.66 474.3 L806.95 480.56 L810.15 486.62 L813.2 492.55 L816.05 498.39 L818.68 504.14 L821.08 509.81 L823.26 515.4 L825.19 520.89 L826.89 526.3 L828.35 531.61 L829.57 536.83 L830.56 541.94 L831.31 546.94 L831.84 551.84 L832.14 556.63 L832.22 561.3 L832.09 565.87 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_1" data-name="streamline 1" d="M452.39 292.9 L443.12 289.47 L433.73 287.58 L424.34 286.11 L414.99 284.94 L405.68 284.03 L396.43 283.34 L387.24 282.87 L378.13 282.62 L369.1 282.56 L360.16 282.7 L351.32 283.03 L342.59 283.56 L333.96 284.27 L325.45 285.17 L317.07 286.26 L308.81 287.53 L300.7 288.99 L292.72 290.63 L284.89 292.45 L277.22 294.45 L269.7 296.63 L262.35 299 L255.17 301.54 L248.17 304.26 L241.34 307.16 L234.7 310.23 L228.26 313.49 L222.01 316.93 L215.96 320.54 L210.12 324.33 L204.49 328.3 L199.09 332.45 L193.91 336.78 L188.97 341.28 L184.27 345.96 L179.83 350.81 L175.64 355.83 L171.71 361.01 L168.06 366.36 L164.7 371.87 L161.62 377.52 L158.85 383.32 L156.37 389.25 L154.22 395.3 L152.37 401.47 L150.85 407.74 L149.66 414.1 L148.78 420.55 L148.24 427.06 L148.02 433.63 L189.47 432.94 L189.33 428.38 L189.42 423.88 L189.71 419.43 L190.23 415.04 L190.96 410.69 L191.9 406.39 L193.07 402.13 L194.46 397.91 L196.07 393.73 L197.91 389.59 L199.98 385.48 L202.29 381.42 L204.83 377.4 L207.62 373.42 L210.66 369.5 L213.94 365.62 L217.47 361.8 L221.25 358.04 L225.28 354.35 L229.55 350.74 L234.08 347.2 L238.85 343.75 L243.86 340.38 L249.11 337.11 L254.6 333.94 L260.32 330.88 L266.27 327.93 L272.44 325.09 L278.82 322.36 L285.42 319.76 L292.22 317.28 L299.22 314.94 L306.42 312.72 L313.8 310.63 L321.37 308.68 L329.11 306.86 L337.02 305.18 L345.08 303.64 L353.31 302.23 L361.68 300.96 L370.19 299.83 L378.84 298.83 L387.62 297.95 L396.52 297.2 L405.53 296.57 L414.66 296.03 L423.9 295.58 L433.24 295.15 L442.7 294.63 Z M867.79 564.79 L867.08 558.59 L866.06 552.4 L864.74 546.22 L863.12 540.06 L861.21 533.92 L859.01 527.81 L856.53 521.73 L853.76 515.7 L850.71 509.71 L847.39 503.77 L843.78 497.89 L839.91 492.07 L835.75 486.33 L831.31 480.67 L826.57 475.13 L821.5 469.73 L816.02 464.55 L809.28 460.35 L809.28 460.35 L811.96 467.76 L815.42 474.25 L818.81 480.56 L822.03 486.76 L825.05 492.88 L827.86 498.92 L830.43 504.9 L832.77 510.81 L834.86 516.65 L836.71 522.42 L838.31 528.12 L839.67 533.73 L840.77 539.27 L841.63 544.71 L842.25 550.06 L842.62 555.32 L842.75 560.49 L842.64 565.55 Z" fill="#ffffff"/>
|
||||
</g>
|
||||
<g id="Top_face" data-name="Top face" clip-path="url(#clip-path-1)">
|
||||
<path id="top" d="M512 214 L759.68 357 L512 500 L264.32 357 Z" fill="#2c4fbf"/>
|
||||
<path id="top_band_1" data-name="top band 1" d="M829.03 683.04 C653.94 784.13 370.06 784.13 194.97 683.04 C19.87 581.95 19.87 418.05 194.97 316.96 C370.06 215.87 653.94 215.87 829.03 316.96 C1004.13 418.05 1004.13 581.95 829.03 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="top_band_2" data-name="top band 2" d="M777.02 653.01 C630.65 737.52 393.35 737.52 246.98 653.01 C100.61 568.5 100.61 431.5 246.98 346.99 C393.35 262.48 630.65 262.48 777.02 346.99 C923.39 431.5 923.39 568.5 777.02 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="top_band_3" data-name="top band 3" d="M727.48 624.41 C608.48 693.12 415.52 693.12 296.52 624.41 C177.51 555.7 177.51 444.3 296.52 375.59 C415.52 306.88 608.48 306.88 727.48 375.59 C846.49 444.3 846.49 555.7 727.48 624.41 Z" fill="#3fc584"/>
|
||||
<path id="top_band_4" data-name="top band 4" d="M677.95 595.81 C586.3 648.72 437.7 648.72 346.05 595.81 C254.4 542.9 254.4 457.1 346.05 404.19 C437.7 351.28 586.3 351.28 677.95 404.19 C769.6 457.1 769.6 542.9 677.95 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="top_band_5" data-name="top band 5" d="M628.41 567.21 C564.12 604.33 459.88 604.33 395.59 567.21 C331.3 530.09 331.3 469.91 395.59 432.79 C459.88 395.67 564.12 395.67 628.41 432.79 C692.7 469.91 692.7 530.09 628.41 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="top_band_6" data-name="top band 6" d="M578.87 538.61 C541.94 559.93 482.06 559.93 445.13 538.61 C408.19 517.29 408.19 482.71 445.13 461.39 C482.06 440.07 541.94 440.07 578.87 461.39 C615.81 482.71 615.81 517.29 578.87 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="top_shade" data-name="top shade" d="M512 214 L759.68 357 L512 500 L264.32 357 Z" fill="#ffffff" opacity="0.1"/>
|
||||
</g>
|
||||
<g id="Left_face" data-name="Left face" clip-path="url(#clip-path-2)">
|
||||
<path id="left" d="M264.32 357 L512 500 L512 786 L264.32 643 Z" fill="#2c4fbf"/>
|
||||
<path id="left_band_1" data-name="left band 1" d="M829.03 683.04 C829.03 480.86 687.09 235.01 512 133.92 C336.91 32.83 194.97 114.78 194.97 316.96 C194.97 519.14 336.91 764.99 512 866.08 C687.09 967.17 829.03 885.22 829.03 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="left_band_2" data-name="left band 2" d="M777.02 653.01 C777.02 484 658.37 278.49 512 193.98 C365.63 109.47 246.98 177.98 246.98 346.99 C246.98 516 365.63 721.51 512 806.02 C658.37 890.53 777.02 822.02 777.02 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="left_band_3" data-name="left band 3" d="M727.48 624.41 C727.48 486.99 631.01 319.89 512 251.18 C392.99 182.47 296.52 238.17 296.52 375.59 C296.52 513.01 392.99 680.11 512 748.82 C631.01 817.53 727.48 761.83 727.48 624.41 Z" fill="#3fc584"/>
|
||||
<path id="left_band_4" data-name="left band 4" d="M677.95 595.81 C677.95 489.98 603.65 361.29 512 308.38 C420.35 255.47 346.05 298.36 346.05 404.19 C346.05 510.02 420.35 638.71 512 691.62 C603.65 744.53 677.95 701.64 677.95 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="left_band_5" data-name="left band 5" d="M628.41 567.21 C628.41 492.97 576.29 402.7 512 365.58 C447.71 328.46 395.59 358.55 395.59 432.79 C395.59 507.03 447.71 597.3 512 634.42 C576.29 671.54 628.41 641.45 628.41 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="left_band_6" data-name="left band 6" d="M578.87 538.61 C578.87 495.96 548.93 444.1 512 422.78 C475.07 401.46 445.13 418.74 445.13 461.39 C445.13 504.04 475.07 555.9 512 577.22 C548.93 598.54 578.87 581.26 578.87 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="left_shade" data-name="left shade" d="M264.32 357 L512 500 L512 786 L264.32 643 Z" fill="#000000" opacity="0.12"/>
|
||||
</g>
|
||||
<g id="Right_face" data-name="Right face" clip-path="url(#clip-path-3)">
|
||||
<path id="right" d="M759.68 643 L512 786 L512 500 L759.68 357 Z" fill="#2c4fbf"/>
|
||||
<path id="right_band_1" data-name="right band 1" d="M194.97 683.04 C194.97 480.86 336.91 235.01 512 133.92 C687.09 32.83 829.03 114.78 829.03 316.96 C829.03 519.14 687.09 764.99 512 866.08 C336.91 967.17 194.97 885.22 194.97 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="right_band_2" data-name="right band 2" d="M246.98 653.01 C246.98 484 365.63 278.49 512 193.98 C658.37 109.47 777.02 177.98 777.02 346.99 C777.02 516 658.37 721.51 512 806.02 C365.63 890.53 246.98 822.02 246.98 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="right_band_3" data-name="right band 3" d="M296.52 624.41 C296.52 486.99 392.99 319.89 512 251.18 C631.01 182.47 727.48 238.17 727.48 375.59 C727.48 513.01 631.01 680.11 512 748.82 C392.99 817.53 296.52 761.83 296.52 624.41 Z" fill="#3fc584"/>
|
||||
<path id="right_band_4" data-name="right band 4" d="M346.05 595.81 C346.05 489.98 420.35 361.29 512 308.38 C603.65 255.47 677.95 298.36 677.95 404.19 C677.95 510.02 603.65 638.71 512 691.62 C420.35 744.53 346.05 701.64 346.05 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="right_band_5" data-name="right band 5" d="M395.59 567.21 C395.59 492.97 447.71 402.7 512 365.58 C576.29 328.46 628.41 358.55 628.41 432.79 C628.41 507.03 576.29 597.3 512 634.42 C447.71 671.54 395.59 641.45 395.59 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="right_band_6" data-name="right band 6" d="M445.13 538.61 C445.13 495.96 475.07 444.1 512 422.78 C548.93 401.46 578.87 418.74 578.87 461.39 C578.87 504.04 548.93 555.9 512 577.22 C475.07 598.54 445.13 581.26 445.13 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="right_shade" data-name="right shade" d="M759.68 643 L512 786 L512 500 L759.68 357 Z" fill="#000000" opacity="0.3"/>
|
||||
</g>
|
||||
<g id="Flow_in_front" data-name="Flow in front">
|
||||
<path id="streamline_1_halo-2" data-name="streamline 1 halo" d="M137.46 433.81 L137.59 440.93 L138.06 448.08 L138.87 455.24 L140.01 462.4 L141.48 469.56 L143.28 476.71 L145.38 483.83 L147.8 490.92 L150.51 497.98 L153.52 505 L156.82 511.98 L160.4 518.92 L164.25 525.8 L168.37 532.63 L172.76 539.41 L177.4 546.12 L182.3 552.77 L187.44 559.36 L192.82 565.88 L198.45 572.33 L204.3 578.7 L210.38 585 L216.68 591.22 L223.19 597.36 L229.92 603.41 L236.85 609.37 L243.98 615.25 L251.31 621.02 L258.82 626.71 L266.52 632.29 L274.39 637.76 L282.44 643.14 L290.65 648.4 L299.02 653.54 L307.54 658.58 L316.22 663.49 L325.03 668.28 L333.98 672.95 L343.05 677.49 L352.25 681.9 L361.56 686.17 L370.98 690.31 L380.5 694.31 L390.11 698.17 L399.81 701.88 L409.6 705.45 L419.45 708.87 L429.37 712.13 L439.35 715.24 L449.38 718.2 L459.46 721 L469.57 723.63 L479.71 726.11 L489.87 728.41 L500.05 730.56 L510.24 732.53 L520.42 734.34 L530.6 735.98 L540.77 737.44 L550.91 738.73 L561.02 739.84 L571.1 740.78 L581.14 741.55 L591.12 742.13 L601.05 742.54 L610.91 742.76 L620.7 742.81 L630.41 742.67 L640.03 742.36 L649.57 741.86 L659 741.18 L668.33 740.32 L677.55 739.27 L686.65 738.05 L695.62 736.63 L704.46 735.04 L713.16 733.26 L721.72 731.3 L730.13 729.15 L738.39 726.83 L746.48 724.31 L754.4 721.62 L762.15 718.73 L769.72 715.67 L777.1 712.42 L784.28 708.99 L791.27 705.37 L798.05 701.58 L804.61 697.59 L810.96 693.43 L817.07 689.08 L822.95 684.55 L828.59 679.85 L833.97 674.97 L839.1 669.91 L843.95 664.68 L848.52 659.28 L852.8 653.73 L856.79 648.02 L860.46 642.16 L863.82 636.16 L866.86 630.03 L869.56 623.79 L871.93 617.44 L873.95 611 L875.62 604.48 L876.94 597.9 L877.92 591.27 L878.54 584.59 L878.82 577.9 L878.75 571.19 L878.35 564.48 L832.09 565.87 L831.75 570.31 L831.21 574.65 L830.46 578.88 L829.53 583 L828.4 587.03 L827.08 590.96 L825.58 594.8 L823.89 598.55 L822.01 602.23 L819.95 605.83 L817.69 609.36 L815.23 612.83 L812.58 616.24 L809.72 619.58 L806.66 622.86 L803.39 626.08 L799.91 629.24 L796.21 632.33 L792.29 635.36 L788.15 638.31 L783.79 641.18 L779.22 643.98 L774.42 646.69 L769.41 649.3 L764.18 651.83 L758.73 654.26 L753.08 656.58 L747.22 658.79 L741.15 660.9 L734.89 662.88 L728.44 664.75 L721.79 666.49 L714.97 668.11 L707.97 669.59 L700.79 670.94 L693.46 672.16 L685.96 673.23 L678.32 674.17 L670.53 674.96 L662.6 675.61 L654.54 676.12 L646.36 676.47 L638.06 676.68 L629.65 676.74 L621.15 676.64 L612.54 676.4 L603.86 676 L595.09 675.46 L586.26 674.76 L577.36 673.91 L568.4 672.91 L559.4 671.76 L550.36 670.46 L541.29 669.01 L532.19 667.41 L523.08 665.67 L513.96 663.78 L504.85 661.75 L495.74 659.57 L486.64 657.25 L477.57 654.8 L468.54 652.2 L459.54 649.48 L450.59 646.62 L441.69 643.63 L432.86 640.52 L424.1 637.28 L415.41 633.92 L406.81 630.44 L398.31 626.84 L389.9 623.14 L381.61 619.32 L373.42 615.4 L365.36 611.39 L357.43 607.27 L349.63 603.06 L341.98 598.76 L334.47 594.38 L327.12 589.92 L319.94 585.38 L312.91 580.77 L306.07 576.09 L299.4 571.36 L292.92 566.56 L286.62 561.72 L280.53 556.83 L274.63 551.9 L268.94 546.93 L263.46 541.94 L258.2 536.92 L253.15 531.89 L248.33 526.84 L243.72 521.79 L239.35 516.74 L235.21 511.7 L231.3 506.67 L227.62 501.67 L224.18 496.69 L220.98 491.74 L218.01 486.84 L215.28 481.97 L212.78 477.16 L210.51 472.41 L208.47 467.72 L206.66 463.09 L205.08 458.54 L203.71 454.05 L202.56 449.64 L201.62 445.31 L200.89 441.05 L200.36 436.87 L200.03 432.76 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_1-2" data-name="streamline 1" d="M148.02 433.63 L148.13 440.25 L148.55 446.91 L149.3 453.59 L150.36 460.29 L151.73 467.01 L153.41 473.73 L155.39 480.44 L157.66 487.15 L160.23 493.84 L163.08 500.51 L166.21 507.16 L169.62 513.78 L173.3 520.37 L177.25 526.91 L181.46 533.42 L185.92 539.88 L190.64 546.3 L195.6 552.66 L200.81 558.97 L206.25 565.21 L211.92 571.4 L217.82 577.51 L223.95 583.56 L230.29 589.54 L236.84 595.44 L243.6 601.25 L250.56 606.99 L257.72 612.63 L265.06 618.19 L272.59 623.65 L280.3 629.02 L288.19 634.28 L296.24 639.44 L304.45 644.49 L312.81 649.43 L321.33 654.25 L329.98 658.96 L338.77 663.54 L347.69 668 L356.73 672.34 L365.89 676.54 L375.15 680.61 L384.52 684.55 L393.98 688.34 L403.53 692 L413.16 695.51 L422.86 698.87 L432.62 702.09 L442.45 705.15 L452.32 708.06 L462.24 710.81 L472.2 713.4 L482.18 715.84 L492.19 718.11 L502.2 720.22 L512.23 722.16 L522.25 723.94 L532.27 725.55 L542.26 726.99 L552.24 728.25 L562.18 729.35 L572.08 730.27 L581.94 731.02 L591.75 731.59 L601.49 731.99 L611.17 732.21 L620.77 732.25 L630.29 732.12 L639.72 731.8 L649.05 731.31 L658.28 730.65 L667.4 729.8 L676.4 728.78 L685.28 727.57 L694.03 726.2 L702.64 724.64 L711.11 722.9 L719.43 720.99 L727.59 718.91 L735.59 716.64 L743.42 714.21 L751.07 711.59 L758.55 708.81 L765.83 705.85 L772.92 702.72 L779.81 699.42 L786.5 695.95 L792.97 692.31 L799.23 688.51 L805.25 684.54 L811.05 680.41 L816.61 676.12 L821.92 671.67 L826.97 667.06 L831.77 662.3 L836.3 657.4 L840.55 652.35 L844.53 647.17 L848.21 641.85 L851.6 636.41 L854.69 630.86 L857.47 625.19 L859.94 619.43 L862.1 613.58 L863.93 607.65 L865.45 601.65 L866.64 595.59 L867.51 589.49 L868.06 583.35 L868.29 577.18 L868.2 570.99 L867.79 564.79 L842.64 565.55 L842.31 570.51 L841.74 575.37 L840.95 580.13 L839.94 584.78 L838.7 589.34 L837.26 593.79 L835.59 598.15 L833.72 602.42 L831.63 606.59 L829.33 610.67 L826.82 614.67 L824.09 618.58 L821.15 622.4 L818 626.14 L814.63 629.8 L811.04 633.36 L807.23 636.85 L803.21 640.24 L798.96 643.54 L794.5 646.74 L789.82 649.85 L784.92 652.86 L779.81 655.77 L774.48 658.57 L768.94 661.25 L763.2 663.82 L757.25 666.28 L751.1 668.61 L744.76 670.82 L738.22 672.9 L731.5 674.85 L724.59 676.67 L717.51 678.35 L710.26 679.9 L702.85 681.3 L695.28 682.56 L687.55 683.67 L679.68 684.64 L671.67 685.46 L663.53 686.13 L655.26 686.65 L646.88 687.02 L638.38 687.23 L629.77 687.29 L621.07 687.2 L612.28 686.96 L603.41 686.55 L594.46 686 L585.45 685.29 L576.37 684.42 L567.25 683.41 L558.07 682.24 L548.86 680.91 L539.62 679.44 L530.36 677.81 L521.09 676.04 L511.81 674.12 L502.53 672.05 L493.26 669.84 L484.01 667.48 L474.79 664.98 L465.59 662.35 L456.44 659.57 L447.33 656.67 L438.28 653.63 L429.3 650.46 L420.38 647.16 L411.54 643.74 L402.79 640.2 L394.13 636.54 L385.57 632.77 L377.12 628.88 L368.78 624.89 L360.57 620.79 L352.48 616.6 L344.52 612.3 L336.71 607.91 L329.05 603.44 L321.54 598.88 L314.18 594.23 L307 589.52 L299.99 584.73 L293.16 579.87 L286.51 574.95 L280.04 569.98 L273.78 564.95 L267.71 559.87 L261.85 554.75 L256.19 549.6 L250.75 544.41 L245.53 539.19 L240.52 533.96 L235.74 528.71 L231.19 523.44 L226.87 518.18 L222.78 512.91 L218.92 507.65 L215.31 502.41 L211.93 497.18 L208.78 491.97 L205.88 486.8 L203.22 481.66 L200.8 476.55 L198.61 471.49 L196.66 466.48 L194.95 461.52 L193.47 456.61 L192.22 451.76 L191.19 446.96 L190.4 442.23 L189.82 437.55 L189.47 432.94 Z" fill="#ffffff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 364 KiB After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 209 KiB |
@@ -1,46 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1024" height="1024" viewBox="0 0 1024 1024">
|
||||
<defs>
|
||||
<filter id="filter-1" filterUnits="userSpaceOnUse" x="67" y="67" width="890" height="890" data-vc-blend="multiply" color-interpolation-filters="sRGB"><feGaussianBlur in="SourceAlpha" stdDeviation="7"/><feOffset dx="0" dy="10" result="shadow"/><feFlood flood-color="#1d3b38" flood-opacity="0.22"/><feComposite in2="shadow" operator="in" result="paint"/><feMerge><feMergeNode in="paint"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<filter id="filter-1" filterUnits="userSpaceOnUse" x="67" y="67" width="890" height="890" data-vc-blend="multiply" color-interpolation-filters="sRGB"><feGaussianBlur in="SourceAlpha" stdDeviation="7"/><feOffset dx="0" dy="10" result="shadow"/><feFlood flood-color="#1d2b3b" flood-opacity="0.22"/><feComposite in2="shadow" operator="in" result="paint"/><feMerge><feMergeNode in="paint"/><feMergeNode in="SourceGraphic"/></feMerge></filter>
|
||||
<linearGradient id="linear-gradient-1" x1="512" y1="100" x2="512" y2="924" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fbfdfd"/>
|
||||
<stop offset="1" stop-color="#dbe5e4"/>
|
||||
<stop offset="0" stop-color="#fbfcfe"/>
|
||||
<stop offset="1" stop-color="#dce3ec"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip-path-1">
|
||||
<path d="M320 100 L704 100 C854 100 924 170 924 320 L924 704 C924 854 854 924 704 924 L320 924 C170 924 100 854 100 704 L100 320 C100 170 170 100 320 100 Z"/>
|
||||
</clipPath>
|
||||
<radialGradient id="radial-gradient-1" cx="0" cy="0" r="578" gradientTransform="matrix(1 0 0 0.5 512 720)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#7fa8a2"/>
|
||||
<stop offset="0.3" stop-color="#7fa8a2" stop-opacity="0.9"/>
|
||||
<stop offset="0.65" stop-color="#7fa8a2" stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-color="#7fa8a2" stop-opacity="0"/>
|
||||
<radialGradient id="radial-gradient-1" cx="0" cy="0" r="560" gradientTransform="matrix(1 0 0 0.5 512 643)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#8aa0b4"/>
|
||||
<stop offset="0.3" stop-color="#8aa0b4" stop-opacity="0.9"/>
|
||||
<stop offset="0.65" stop-color="#8aa0b4" stop-opacity="0.35"/>
|
||||
<stop offset="1" stop-color="#8aa0b4" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linear-gradient-2" x1="512" y1="141" x2="512" y2="376.622" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#86e3d3"/>
|
||||
<stop offset="1" stop-color="#4cc4b1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-3" x1="512" y1="457.259" x2="512" y2="755.042" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#86e3d3"/>
|
||||
<stop offset="1" stop-color="#4cc4b1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-4" x1="512" y1="209.598" x2="512" y2="624.284" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20b39f"/>
|
||||
<stop offset="1" stop-color="#118c7c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-5" x1="512" y1="588.018" x2="512" y2="878.381" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#20b39f"/>
|
||||
<stop offset="1" stop-color="#118c7c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-6" x1="512" y1="335.738" x2="512" y2="878.381" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0f786d"/>
|
||||
<stop offset="1" stop-color="#0a544e"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linear-gradient-7" x1="512" y1="558.616" x2="512" y2="658.304" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0b665e"/>
|
||||
<stop offset="1" stop-color="#04302c"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip-path-2">
|
||||
<path d="M512 141 L825.3 321.88 L730.48 376.62 L417.19 195.74 Z M401.19 457.26 L714.48 638.14 L512 755.04 L198.7 574.16 Z M521.64 643.71 C555.35 624.24 555.35 592.68 521.64 573.22 C487.92 553.75 433.26 553.75 399.55 573.22 C365.83 592.68 365.83 624.24 399.55 643.71 C433.26 663.17 487.92 663.17 521.64 643.71 Z M409.19 209.6 L722.48 390.48 L722.48 624.28 L409.19 443.4 Z M190.7 588.02 L504 768.9 L504 878.38 L190.7 697.5 Z M833.3 697.5 L520 878.38 L520 768.9 L738.48 642.76 L738.48 390.48 L833.3 335.74 Z"/>
|
||||
<path d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-3">
|
||||
<path d="M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-4">
|
||||
<path d="M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip-path-5">
|
||||
<path d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>FieldCraft application icon</title>
|
||||
@@ -50,17 +35,55 @@
|
||||
</g>
|
||||
</g>
|
||||
<g id="Floor_grid" data-name="Floor grid" clip-path="url(#clip-path-1)">
|
||||
<path id="floor_grid" data-name="floor grid" d="M154.62 100 L100 131.53 M869.38 100 L924 131.53 M368.82 100 L100 255.2 M655.18 100 L924 255.2 M583.01 100 L100 378.87 M440.99 100 L924 378.87 M797.21 100 L100 502.53 M226.79 100 L924 502.53 M924 150.47 L100 626.2 M100 150.47 L924 626.2 M924 274.13 L100 749.87 M100 274.13 L924 749.87 M924 397.8 L100 873.53 M100 397.8 L924 873.53 M924 521.47 L226.79 924 M100 521.47 L797.21 924 M924 645.13 L440.99 924 M100 645.13 L583.01 924 M924 768.8 L655.18 924 M100 768.8 L368.82 924 M924 892.47 L869.38 924 M100 892.47 L154.62 924" fill="none" stroke="url(#radial-gradient-1)" stroke-width="3" stroke-linejoin="round"/>
|
||||
<path id="floor_grid" data-name="floor grid" d="M214.09 100 L100 165.87 M809.91 100 L924 165.87 M337.93 100 L100 237.37 M686.07 100 L924 237.37 M461.77 100 L100 308.87 M562.23 100 L924 308.87 M585.61 100 L100 380.37 M438.39 100 L924 380.37 M709.45 100 L100 451.87 M314.55 100 L924 451.87 M833.3 100 L100 523.37 M190.7 100 L924 523.37 M924 119.13 L100 594.87 M100 119.13 L924 594.87 M924 190.63 L100 666.37 M100 190.63 L924 666.37 M924 262.13 L100 737.87 M100 262.13 L924 737.87 M924 333.63 L100 809.37 M100 333.63 L924 809.37 M924 405.13 L100 880.87 M100 405.13 L924 880.87 M924 476.63 L149.14 924 M100 476.63 L874.86 924 M924 548.13 L272.98 924 M100 548.13 L751.02 924 M924 619.63 L396.82 924 M100 619.63 L627.18 924 M924 691.13 L520.66 924 M100 691.13 L503.34 924 M924 762.63 L644.5 924 M100 762.63 L379.5 924 M924 834.13 L768.34 924 M100 834.13 L255.66 924 M924 905.63 L892.19 924 M100 905.63 L131.81 924" fill="none" stroke="url(#radial-gradient-1)" stroke-width="3" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<g id="Part">
|
||||
<path id="wall_top" data-name="wall top" d="M512 141 L825.3 321.88 L730.48 376.62 L417.19 195.74 Z" fill="url(#linear-gradient-2)"/>
|
||||
<path id="base_top" data-name="base top" d="M401.19 457.26 L714.48 638.14 L512 755.04 L198.7 574.16 Z M521.64 643.71 C555.35 624.24 555.35 592.68 521.64 573.22 C487.92 553.75 433.26 553.75 399.55 573.22 C365.83 592.68 365.83 624.24 399.55 643.71 C433.26 663.17 487.92 663.17 521.64 643.71 Z" fill="url(#linear-gradient-3)"/>
|
||||
<path id="wall_front" data-name="wall front" d="M409.19 209.6 L722.48 390.48 L722.48 624.28 L409.19 443.4 Z" fill="url(#linear-gradient-4)"/>
|
||||
<path id="base_front" data-name="base front" d="M190.7 588.02 L504 768.9 L504 878.38 L190.7 697.5 Z" fill="url(#linear-gradient-5)"/>
|
||||
<path id="end" d="M833.3 697.5 L520 878.38 L520 768.9 L738.48 642.76 L738.48 390.48 L833.3 335.74 Z" fill="url(#linear-gradient-6)"/>
|
||||
<path id="bolt_hole" data-name="bolt hole" d="M521.64 643.71 C487.92 663.17 433.26 663.17 399.55 643.71 C365.83 624.24 365.83 592.68 399.55 573.22 C433.26 553.75 487.92 553.75 521.64 573.22 C555.35 592.68 555.35 624.24 521.64 643.71 Z" fill="url(#linear-gradient-7)"/>
|
||||
<g id="Flow_behind" data-name="Flow behind">
|
||||
<path id="streamline_1_halo" data-name="streamline 1 halo" d="M360.88 220.28 L354.82 220.38 L348.86 221.02 L342.98 221.83 L337.19 222.77 L331.48 223.84 L325.86 225.02 L320.33 226.31 L314.9 227.71 L309.55 229.21 L304.31 230.81 L299.16 232.51 L294.12 234.31 L289.19 236.2 L284.36 238.19 L279.64 240.28 L275.03 242.46 L270.54 244.73 L266.17 247.1 L261.92 249.56 L257.79 252.11 L253.78 254.74 L249.9 257.47 L246.15 260.29 L242.53 263.19 L239.05 266.18 L235.7 269.25 L232.49 272.41 L229.43 275.65 L226.5 278.97 L223.73 282.38 L221.11 285.86 L218.63 289.42 L216.31 293.05 L214.15 296.75 L212.15 300.53 L210.32 304.37 L208.64 308.27 L207.13 312.24 L205.79 316.26 L204.62 320.34 L203.62 324.47 L202.79 328.65 L202.14 332.87 L201.65 337.12 L201.34 341.42 L201.2 345.74 L220.32 345.71 L220.32 342.14 L220.47 338.6 L220.76 335.09 L221.18 331.61 L221.74 328.17 L222.45 324.76 L223.29 321.38 L224.27 318.03 L225.39 314.72 L226.65 311.44 L228.05 308.19 L229.59 304.98 L231.28 301.81 L233.1 298.67 L235.07 295.57 L237.18 292.51 L239.44 289.5 L241.83 286.52 L244.37 283.59 L247.05 280.71 L249.88 277.87 L252.84 275.09 L255.94 272.36 L259.19 269.68 L262.57 267.06 L266.09 264.5 L269.74 262 L273.52 259.56 L277.44 257.18 L281.49 254.87 L285.66 252.62 L289.96 250.45 L294.39 248.34 L298.93 246.3 L303.6 244.34 L308.38 242.45 L313.27 240.63 L318.27 238.88 L323.38 237.21 L328.6 235.61 L333.92 234.07 L339.33 232.61 L344.84 231.2 L350.44 229.85 L356.13 228.5 L361.88 226.8 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_1" data-name="streamline 1" d="M361.38 223.54 L355.35 223.64 L349.44 224.27 L343.63 225.06 L337.89 226 L332.25 227.05 L326.69 228.22 L321.22 229.49 L315.85 230.87 L310.57 232.35 L305.4 233.92 L300.32 235.6 L295.35 237.37 L290.49 239.24 L285.73 241.2 L281.09 243.25 L276.56 245.39 L272.14 247.62 L267.85 249.94 L263.67 252.35 L259.62 254.85 L255.7 257.43 L251.9 260.1 L248.23 262.85 L244.69 265.68 L241.29 268.6 L238.02 271.6 L234.9 274.67 L231.91 277.83 L229.06 281.06 L226.37 284.36 L223.81 287.74 L221.41 291.19 L219.16 294.72 L217.07 298.3 L215.13 301.96 L213.34 305.68 L211.72 309.46 L210.26 313.3 L208.96 317.19 L207.82 321.14 L206.85 325.13 L206.05 329.17 L205.41 333.26 L204.94 337.38 L204.64 341.54 L204.5 345.74 L217.02 345.72 L217.03 342.02 L217.18 338.34 L217.48 334.7 L217.92 331.09 L218.51 327.51 L219.24 323.96 L220.12 320.45 L221.14 316.97 L222.31 313.53 L223.62 310.13 L225.08 306.76 L226.68 303.43 L228.43 300.14 L230.32 296.89 L232.36 293.69 L234.55 290.53 L236.88 287.41 L239.35 284.35 L241.97 281.33 L244.73 278.37 L247.63 275.45 L250.68 272.6 L253.87 269.8 L257.19 267.06 L260.65 264.37 L264.25 261.76 L267.98 259.2 L271.85 256.71 L275.84 254.29 L279.97 251.94 L284.22 249.66 L288.59 247.44 L293.09 245.31 L297.71 243.24 L302.44 241.25 L307.29 239.33 L312.25 237.49 L317.32 235.72 L322.49 234.03 L327.77 232.41 L333.15 230.86 L338.63 229.39 L344.2 227.97 L349.86 226.6 L355.6 225.24 Z" fill="#ffffff"/>
|
||||
<path id="streamline_2_halo" data-name="streamline 2 halo" d="M452.77 288.74 L443.33 286.86 L433.85 285.7 L424.4 284.8 L415.01 284.11 L405.69 283.64 L396.43 283.35 L387.25 283.25 L378.16 283.34 L369.17 283.6 L360.28 284.05 L351.49 284.67 L342.82 285.47 L334.28 286.45 L325.86 287.6 L317.58 288.93 L309.44 290.43 L301.44 292.09 L293.6 293.93 L285.92 295.94 L278.41 298.12 L271.06 300.47 L263.89 302.98 L256.9 305.65 L250.1 308.5 L243.49 311.5 L237.08 314.67 L230.87 318 L224.87 321.49 L219.08 325.14 L213.51 328.94 L208.16 332.91 L203.05 337.02 L198.16 341.29 L193.52 345.72 L189.12 350.29 L184.98 355 L181.09 359.86 L177.47 364.86 L174.12 369.99 L171.04 375.25 L168.25 380.64 L165.73 386.14 L163.52 391.75 L161.59 397.47 L159.96 403.28 L158.64 409.18 L157.61 415.16 L156.89 421.21 L156.48 427.33 L156.36 433.49 L181.13 433.08 L181.1 428.12 L181.31 423.21 L181.76 418.37 L182.44 413.59 L183.37 408.87 L184.53 404.22 L185.93 399.62 L187.57 395.08 L189.44 390.61 L191.56 386.2 L193.92 381.86 L196.53 377.58 L199.38 373.37 L202.47 369.23 L205.81 365.17 L209.39 361.19 L213.22 357.29 L217.29 353.47 L221.6 349.75 L226.16 346.13 L230.95 342.6 L235.98 339.18 L241.25 335.87 L246.74 332.68 L252.45 329.6 L258.39 326.64 L264.54 323.81 L270.9 321.1 L277.46 318.53 L284.23 316.09 L291.19 313.79 L298.34 311.63 L305.67 309.61 L313.18 307.74 L320.86 306.01 L328.7 304.43 L336.7 303 L344.85 301.72 L353.14 300.59 L361.57 299.61 L370.13 298.78 L378.81 298.1 L387.61 297.58 L396.52 297.2 L405.53 296.96 L414.64 296.86 L423.84 296.89 L433.12 297.04 L442.49 297.24 L452.02 297.07 Z M864.37 564.9 L863.9 558.84 L863.13 552.77 L862.07 546.68 L860.72 540.58 L859.08 534.47 L857.17 528.37 L854.97 522.28 L852.5 516.2 L849.75 510.13 L846.74 504.08 L843.45 498.06 L839.9 492.07 L836.08 486.12 L832 480.22 L827.65 474.37 L823.02 468.6 L818.08 462.93 L812.53 457.72 L806.04 462.98 L809.9 469.38 L813.9 475.38 L817.73 481.32 L821.34 487.21 L824.72 493.08 L827.86 498.92 L830.76 504.73 L833.42 510.5 L835.82 516.23 L837.97 521.93 L839.87 527.57 L841.51 533.17 L842.9 538.71 L844.04 544.19 L844.92 549.61 L845.55 554.96 L845.93 560.24 L846.06 565.45 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_2" data-name="streamline 2" d="M452.39 292.9 L442.99 291.03 L433.58 289.87 L424.21 288.97 L414.89 288.29 L405.64 287.82 L396.46 287.53 L387.36 287.43 L378.35 287.51 L369.43 287.77 L360.62 288.21 L351.92 288.83 L343.34 289.62 L334.88 290.59 L326.56 291.73 L318.37 293.03 L310.32 294.51 L302.43 296.16 L294.69 297.97 L287.11 299.95 L279.7 302.1 L272.46 304.41 L265.4 306.88 L258.52 309.51 L251.84 312.3 L245.35 315.25 L239.06 318.35 L232.97 321.61 L227.09 325.03 L221.43 328.59 L215.99 332.31 L210.77 336.17 L205.78 340.18 L201.03 344.34 L196.51 348.63 L192.24 353.07 L188.22 357.64 L184.46 362.34 L180.95 367.18 L177.7 372.14 L174.73 377.22 L172.03 382.42 L169.6 387.72 L167.46 393.14 L165.6 398.65 L164.03 404.25 L162.75 409.94 L161.76 415.71 L161.06 421.55 L160.65 427.46 L160.54 433.42 L176.95 433.15 L176.92 427.98 L177.14 422.87 L177.61 417.82 L178.33 412.83 L179.3 407.9 L180.52 403.04 L181.98 398.24 L183.7 393.5 L185.66 388.83 L187.88 384.23 L190.34 379.71 L193.05 375.26 L196.01 370.88 L199.23 366.59 L202.69 362.39 L206.4 358.27 L210.35 354.24 L214.55 350.31 L219 346.48 L223.68 342.76 L228.6 339.15 L233.76 335.64 L239.15 332.26 L244.76 328.99 L250.6 325.85 L256.65 322.84 L262.92 319.95 L269.39 317.2 L276.07 314.59 L282.94 312.12 L290.01 309.78 L297.26 307.59 L304.69 305.55 L312.3 303.65 L320.07 301.91 L328 300.31 L336.09 298.86 L344.33 297.57 L352.71 296.43 L361.22 295.44 L369.86 294.61 L378.63 293.93 L387.5 293.4 L396.49 293.02 L405.58 292.78 L414.76 292.68 L424.03 292.72 L433.39 292.86 L442.83 293.07 Z M860.2 565.02 L859.73 559.17 L858.98 553.28 L857.95 547.38 L856.63 541.46 L855.04 535.53 L853.17 529.6 L851.03 523.66 L848.61 517.73 L845.92 511.81 L842.97 505.9 L839.75 500.01 L836.27 494.14 L832.52 488.31 L828.5 482.51 L824.22 476.77 L819.66 471.09 L814.79 465.52 L809.28 460.35 L809.28 460.35 L813.19 466.79 L817.26 472.89 L821.15 478.92 L824.83 484.92 L828.28 490.9 L831.5 496.85 L834.46 502.78 L837.18 508.68 L839.65 514.55 L841.86 520.39 L843.82 526.19 L845.51 531.94 L846.95 537.65 L848.12 543.3 L849.04 548.9 L849.7 554.44 L850.1 559.91 L850.24 565.32 Z" fill="#ffffff"/>
|
||||
<path id="streamline_3_halo" data-name="streamline 3 halo" d="M230.16 475.51 L226.31 478.65 L222.9 482.23 L219.72 485.95 L216.75 489.8 L213.98 493.74 L211.4 497.79 L209.03 501.92 L206.86 506.14 L204.9 510.44 L203.14 514.81 L201.58 519.26 L200.23 523.77 L199.09 528.34 L198.16 532.97 L197.45 537.65 L196.94 542.38 L196.65 547.15 L196.57 551.95 L211.03 551.52 L210.88 547.34 L210.9 543.18 L211.11 539.05 L211.49 534.94 L212.05 530.86 L212.79 526.8 L213.71 522.77 L214.81 518.77 L216.09 514.8 L217.54 510.85 L219.18 506.94 L220.99 503.05 L222.98 499.19 L225.14 495.36 L227.46 491.56 L229.95 487.77 L232.57 483.97 L235.11 479.88 Z M829.29 639.76 L829.09 634.87 L828.69 629.97 L828.07 625.06 L827.24 620.14 L826.2 615.22 L824.95 610.31 L823.5 605.4 L821.85 600.5 L820 595.61 L817.95 590.74 L815.71 585.89 L813.27 581.06 L810.64 576.25 L807.83 571.47 L804.83 566.72 L801.65 561.99 L798.28 557.31 L794.74 552.66 L791.02 548.04 L787.13 543.47 L783.07 538.94 L778.84 534.46 L774.45 530.03 L769.9 525.64 L765.18 521.32 L760.31 517.04 L755.29 512.83 L750.11 508.68 L744.79 504.59 L739.32 500.58 L733.71 496.63 L727.96 492.76 L722.08 488.98 L716.06 485.28 L709.9 481.67 L703.6 478.18 L697.16 474.84 L690.42 471.97 L687.18 477.72 L693.06 481.97 L699 485.88 L704.85 489.79 L710.59 493.73 L716.21 497.71 L721.7 501.72 L727.05 505.78 L732.27 509.88 L737.35 514.02 L742.28 518.2 L747.06 522.41 L751.69 526.67 L756.16 530.95 L760.47 535.27 L764.62 539.61 L768.6 543.98 L772.41 548.37 L776.06 552.78 L779.53 557.2 L782.83 561.63 L785.95 566.08 L788.9 570.53 L791.66 574.98 L794.24 579.43 L796.65 583.88 L798.86 588.31 L800.9 592.74 L802.75 597.15 L804.42 601.54 L805.9 605.92 L807.2 610.26 L808.32 614.59 L809.25 618.88 L810 623.14 L810.57 627.37 L810.96 631.56 L811.17 635.71 L811.2 639.83 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_3" data-name="streamline 3" d="M232.64 477.7 L228.82 480.79 L225.49 484.27 L222.39 487.89 L219.5 491.62 L216.8 495.45 L214.3 499.38 L211.99 503.38 L209.88 507.47 L207.97 511.64 L206.26 515.87 L204.75 520.18 L203.44 524.54 L202.33 528.97 L201.43 533.45 L200.73 537.99 L200.24 542.57 L199.95 547.19 L199.87 551.85 L207.73 551.61 L207.58 547.29 L207.61 542.99 L207.83 538.71 L208.23 534.46 L208.81 530.23 L209.58 526.03 L210.54 521.86 L211.68 517.71 L213.01 513.6 L214.52 509.52 L216.22 505.47 L218.1 501.46 L220.15 497.48 L222.39 493.54 L224.79 489.62 L227.36 485.73 L230.06 481.84 Z M825.99 639.78 L825.8 635.03 L825.4 630.26 L824.79 625.49 L823.98 620.71 L822.97 615.92 L821.76 611.13 L820.34 606.34 L818.73 601.56 L816.92 596.79 L814.91 592.02 L812.71 587.27 L810.32 582.54 L807.75 577.83 L804.98 573.14 L802.03 568.47 L798.9 563.83 L795.59 559.22 L792.1 554.64 L788.44 550.1 L784.61 545.59 L780.6 541.13 L776.43 536.71 L772.09 532.33 L767.59 528 L762.93 523.72 L758.11 519.5 L753.14 515.33 L748.02 511.23 L742.75 507.18 L737.33 503.21 L731.77 499.3 L726.07 495.47 L720.24 491.71 L714.26 488.05 L708.16 484.48 L701.91 481.02 L695.51 477.7 L688.8 474.85 L688.8 474.85 L694.71 479.1 L700.69 483.05 L706.59 486.99 L712.38 490.96 L718.05 494.97 L723.59 499.02 L729 503.11 L734.27 507.25 L739.39 511.43 L744.38 515.65 L749.21 519.91 L753.89 524.21 L758.41 528.54 L762.78 532.91 L766.98 537.31 L771.02 541.73 L774.89 546.18 L778.59 550.65 L782.11 555.14 L785.47 559.65 L788.64 564.17 L791.64 568.69 L794.46 573.23 L797.09 577.76 L799.54 582.3 L801.81 586.83 L803.89 591.35 L805.79 595.87 L807.5 600.37 L809.03 604.85 L810.36 609.32 L811.51 613.76 L812.47 618.18 L813.25 622.57 L813.84 626.93 L814.24 631.26 L814.46 635.56 L814.5 639.81 Z" fill="#ffffff"/>
|
||||
</g>
|
||||
<g id="Mesh" clip-path="url(#clip-path-2)">
|
||||
<path id="hexahedral_mesh" data-name="hexahedral mesh" d="M460.59 482.32 L242.11 608.46 M679.07 608.46 L460.59 734.6 M354.57 484.18 L405.97 513.86 M624.45 640 L675.86 669.67 M299.95 515.71 L351.35 545.39 M569.83 671.53 L621.24 701.21 M245.32 547.25 L296.73 576.92 M515.21 703.07 L566.62 732.75 M460.59 482.32 L460.59 230.04 M563.41 170.68 L460.59 230.04 M515.21 513.86 L515.21 261.57 M618.03 202.22 L515.21 261.57 M569.83 545.39 L569.83 293.11 M672.65 233.75 L569.83 293.11 M624.45 576.93 L624.45 324.65 M727.27 265.29 L624.45 324.65 M679.07 608.46 L679.07 356.18 M781.89 296.82 L679.07 356.18 M409.19 389.57 L730.48 575.07 M409.19 326.5 L730.48 512 M409.19 263.43 L730.48 448.93 M460.59 170.68 L781.89 356.18 M242.11 727.18 L242.11 608.46 M296.73 758.72 L296.73 640 M351.35 790.25 L351.35 671.53 M405.97 821.79 L405.97 703.07 M460.59 853.32 L460.59 734.6 M190.7 638.14 L512 823.64 M781.89 727.18 L781.89 356.18 M730.48 756.86 L730.48 638.14 M675.86 788.39 L675.86 669.67 M621.24 819.93 L621.24 701.21 M566.62 851.47 L566.62 732.75 M833.3 638.14 L512 823.64 M833.3 578.78 L730.48 638.14 M833.3 515.71 L730.48 575.07 M833.3 452.64 L730.48 512 M833.3 389.57 L730.48 448.93 M460.59 558.62 L460.59 482.32 M433.29 561.17 L405.97 513.86 M399.55 573.22 L351.35 545.39 M378.69 592.7 L296.73 576.92 M374.26 608.46 L242.11 608.46 M487.89 561.17 L515.21 513.86 M378.69 624.22 L296.73 640 M521.64 573.22 L569.83 545.39 M399.55 643.71 L351.35 671.53 M542.49 592.7 L624.45 576.92 M433.29 655.75 L405.97 703.06 M546.92 608.46 L679.07 608.46 M542.49 624.22 L624.45 640 M521.64 643.71 L569.83 671.53 M487.89 655.75 L515.21 703.07 M460.59 658.3 L460.59 734.6 M545.74 657.62 L540.09 660.8 L534.3 663.92 L528.33 666.99 L522.16 670.03 L515.76 673.05 L509.11 676.08 L502.15 679.15 L494.85 682.27 L487.14 685.51 L478.94 688.9 L470.14 692.52 L460.59 696.45 L451.05 692.52 L442.25 688.9 L434.05 685.51 L426.34 682.27 L419.03 679.15 L412.08 676.08 L405.42 673.05 L399.02 670.03 L392.86 666.99 L386.89 663.92 L381.09 660.8 L375.45 657.62 L369.94 654.36 L364.54 651.01 L359.22 647.57 L353.95 644.01 L348.72 640.31 L343.47 636.47 L338.16 632.45 L332.74 628.24 L327.14 623.79 L321.26 619.05 L315 613.97 L308.19 608.46 L315 602.95 L321.26 597.87 L327.14 593.13 L332.74 588.68 L338.16 584.47 L343.47 580.45 L348.72 576.61 L353.95 572.91 L359.22 569.35 L364.54 565.91 L369.94 562.56 L375.45 559.3 L381.09 556.12 L386.89 553 L392.86 549.93 L399.02 546.89 L405.42 543.87 L412.08 540.84 L419.03 537.77 L426.34 534.65 L434.05 531.41 L442.25 528.02 L451.05 524.4 L460.59 520.47 L470.14 524.4 L478.94 528.02 L487.14 531.41 L494.85 534.65 L502.15 537.77 L509.11 540.84 L515.76 543.87 L522.16 546.89 L528.33 549.93 L534.3 553 L540.09 556.12 L545.74 559.3 L551.25 562.56 L556.65 565.91 L561.97 569.35 L567.23 572.91 L572.47 576.61 L577.72 580.45 L583.02 584.47 L588.44 588.68 L594.05 593.13 L599.92 597.87 L606.19 602.95 L613 608.46 L606.19 613.97 L599.92 619.05 L594.05 623.79 L588.44 628.24 L583.02 632.45 L577.72 636.47 L572.47 640.31 L567.23 644.01 L561.97 647.57 L556.65 651.01 L551.25 654.36 Z" fill="none" stroke="#ffffff" stroke-width="4.5" stroke-linejoin="round" opacity="0.5"/>
|
||||
<g id="Top_face" data-name="Top face" clip-path="url(#clip-path-2)">
|
||||
<path id="top" d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z" fill="#2c4fbf"/>
|
||||
<path id="top_band_1" data-name="top band 1" d="M829.03 683.04 C653.94 784.13 370.06 784.13 194.97 683.04 C19.87 581.95 19.87 418.05 194.97 316.96 C370.06 215.87 653.94 215.87 829.03 316.96 C1004.13 418.05 1004.13 581.95 829.03 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="top_band_2" data-name="top band 2" d="M777.02 653.01 C630.65 737.52 393.35 737.52 246.98 653.01 C100.61 568.5 100.61 431.5 246.98 346.99 C393.35 262.48 630.65 262.48 777.02 346.99 C923.39 431.5 923.39 568.5 777.02 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="top_band_3" data-name="top band 3" d="M727.48 624.41 C608.48 693.12 415.52 693.12 296.52 624.41 C177.51 555.7 177.51 444.3 296.52 375.59 C415.52 306.88 608.48 306.88 727.48 375.59 C846.49 444.3 846.49 555.7 727.48 624.41 Z" fill="#3fc584"/>
|
||||
<path id="top_band_4" data-name="top band 4" d="M677.95 595.81 C586.3 648.72 437.7 648.72 346.05 595.81 C254.4 542.9 254.4 457.1 346.05 404.19 C437.7 351.28 586.3 351.28 677.95 404.19 C769.6 457.1 769.6 542.9 677.95 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="top_band_5" data-name="top band 5" d="M628.41 567.21 C564.12 604.33 459.88 604.33 395.59 567.21 C331.3 530.09 331.3 469.91 395.59 432.79 C459.88 395.67 564.12 395.67 628.41 432.79 C692.7 469.91 692.7 530.09 628.41 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="top_band_6" data-name="top band 6" d="M578.87 538.61 C541.94 559.93 482.06 559.93 445.13 538.61 C408.19 517.29 408.19 482.71 445.13 461.39 C482.06 440.07 541.94 440.07 578.87 461.39 C615.81 482.71 615.81 517.29 578.87 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="top_shade" data-name="top shade" d="M512 214 L752.68 352.96 L512 491.92 L271.32 352.96 Z" fill="#ffffff" opacity="0.1"/>
|
||||
</g>
|
||||
<g id="Left_face" data-name="Left face" clip-path="url(#clip-path-3)">
|
||||
<path id="left" d="M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z" fill="#2c4fbf"/>
|
||||
<path id="left_band_1" data-name="left band 1" d="M829.03 683.04 C829.03 480.86 687.09 235.01 512 133.92 C336.91 32.83 194.97 114.78 194.97 316.96 C194.97 519.14 336.91 764.99 512 866.08 C687.09 967.17 829.03 885.22 829.03 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="left_band_2" data-name="left band 2" d="M777.02 653.01 C777.02 484 658.37 278.49 512 193.98 C365.63 109.47 246.98 177.98 246.98 346.99 C246.98 516 365.63 721.51 512 806.02 C658.37 890.53 777.02 822.02 777.02 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="left_band_3" data-name="left band 3" d="M727.48 624.41 C727.48 486.99 631.01 319.89 512 251.18 C392.99 182.47 296.52 238.17 296.52 375.59 C296.52 513.01 392.99 680.11 512 748.82 C631.01 817.53 727.48 761.83 727.48 624.41 Z" fill="#3fc584"/>
|
||||
<path id="left_band_4" data-name="left band 4" d="M677.95 595.81 C677.95 489.98 603.65 361.29 512 308.38 C420.35 255.47 346.05 298.36 346.05 404.19 C346.05 510.02 420.35 638.71 512 691.62 C603.65 744.53 677.95 701.64 677.95 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="left_band_5" data-name="left band 5" d="M628.41 567.21 C628.41 492.97 576.29 402.7 512 365.58 C447.71 328.46 395.59 358.55 395.59 432.79 C395.59 507.03 447.71 597.3 512 634.42 C576.29 671.54 628.41 641.45 628.41 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="left_band_6" data-name="left band 6" d="M578.87 538.61 C578.87 495.96 548.93 444.1 512 422.78 C475.07 401.46 445.13 418.74 445.13 461.39 C445.13 504.04 475.07 555.9 512 577.22 C548.93 598.54 578.87 581.26 578.87 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="left_shade" data-name="left shade" d="M264.32 365.08 L505 504.04 L505 781.96 L264.32 643 Z" fill="#000000" opacity="0.12"/>
|
||||
</g>
|
||||
<g id="Right_face" data-name="Right face" clip-path="url(#clip-path-4)">
|
||||
<path id="right" d="M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z" fill="#2c4fbf"/>
|
||||
<path id="right_band_1" data-name="right band 1" d="M194.97 683.04 C194.97 480.86 336.91 235.01 512 133.92 C687.09 32.83 829.03 114.78 829.03 316.96 C829.03 519.14 687.09 764.99 512 866.08 C336.91 967.17 194.97 885.22 194.97 683.04 Z" fill="#2f86e0"/>
|
||||
<path id="right_band_2" data-name="right band 2" d="M246.98 653.01 C246.98 484 365.63 278.49 512 193.98 C658.37 109.47 777.02 177.98 777.02 346.99 C777.02 516 658.37 721.51 512 806.02 C365.63 890.53 246.98 822.02 246.98 653.01 Z" fill="#22bcd8"/>
|
||||
<path id="right_band_3" data-name="right band 3" d="M296.52 624.41 C296.52 486.99 392.99 319.89 512 251.18 C631.01 182.47 727.48 238.17 727.48 375.59 C727.48 513.01 631.01 680.11 512 748.82 C392.99 817.53 296.52 761.83 296.52 624.41 Z" fill="#3fc584"/>
|
||||
<path id="right_band_4" data-name="right band 4" d="M346.05 595.81 C346.05 489.98 420.35 361.29 512 308.38 C603.65 255.47 677.95 298.36 677.95 404.19 C677.95 510.02 603.65 638.71 512 691.62 C420.35 744.53 346.05 701.64 346.05 595.81 Z" fill="#f0d13a"/>
|
||||
<path id="right_band_5" data-name="right band 5" d="M395.59 567.21 C395.59 492.97 447.71 402.7 512 365.58 C576.29 328.46 628.41 358.55 628.41 432.79 C628.41 507.03 576.29 597.3 512 634.42 C447.71 671.54 395.59 641.45 395.59 567.21 Z" fill="#f28a2b"/>
|
||||
<path id="right_band_6" data-name="right band 6" d="M445.13 538.61 C445.13 495.96 475.07 444.1 512 422.78 C548.93 401.46 578.87 418.74 578.87 461.39 C578.87 504.04 548.93 555.9 512 577.22 C475.07 598.54 445.13 581.26 445.13 538.61 Z" fill="#de3b2f"/>
|
||||
<path id="right_shade" data-name="right shade" d="M759.68 643 L519 781.96 L519 504.04 L759.68 365.08 Z" fill="#000000" opacity="0.3"/>
|
||||
</g>
|
||||
<g id="Mesh" clip-path="url(#clip-path-5)">
|
||||
<path id="hexahedral_mesh" data-name="hexahedral mesh" d="M573.92 249.75 L326.24 392.75 M450.08 249.75 L697.76 392.75 M326.24 678.75 L326.24 392.75 M264.32 571.5 L512 714.5 M697.76 678.75 L697.76 392.75 M759.68 571.5 L512 714.5 M635.84 285.5 L388.16 428.5 M388.16 285.5 L635.84 428.5 M388.16 714.5 L388.16 428.5 M264.32 500 L512 643 M635.84 714.5 L635.84 428.5 M759.68 500 L512 643 M697.76 321.25 L450.08 464.25 M326.24 321.25 L573.92 464.25 M450.08 750.25 L450.08 464.25 M264.32 428.5 L512 571.5 M573.92 750.25 L573.92 464.25 M759.68 428.5 L512 571.5" fill="none" stroke="#0b2236" stroke-width="3.5" stroke-linejoin="round" opacity="0.45"/>
|
||||
</g>
|
||||
<g id="Flow_in_front" data-name="Flow in front">
|
||||
<path id="streamline_1_halo-2" data-name="streamline 1 halo" d="M201.2 345.74 L201.24 350.1 L201.45 354.48 L201.83 358.88 L202.38 363.3 L203.1 367.74 L203.98 372.18 L205.04 376.64 L206.26 381.1 L207.64 385.57 L209.19 390.03 L210.9 394.5 L212.76 398.96 L214.79 403.42 L216.97 407.87 L219.3 412.31 L221.79 416.74 L224.42 421.15 L227.21 425.55 L230.14 429.93 L233.22 434.29 L236.43 438.62 L239.79 442.94 L243.29 447.22 L246.93 451.49 L250.7 455.72 L254.6 459.92 L258.64 464.08 L262.8 468.22 L267.09 472.31 L271.5 476.37 L276.03 480.39 L280.69 484.36 L285.46 488.29 L290.34 492.18 L295.34 496.02 L300.44 499.8 L305.65 503.54 L310.97 507.23 L316.38 510.86 L321.9 514.43 L327.51 517.95 L333.21 521.41 L339 524.81 L344.88 528.14 L350.85 531.41 L356.89 534.62 L363.02 537.75 L369.21 540.82 L375.48 543.82 L381.82 546.75 L388.22 549.6 L394.68 552.38 L401.21 555.08 L407.79 557.71 L414.42 560.26 L421.1 562.72 L427.82 565.11 L434.59 567.42 L441.39 569.64 L448.23 571.77 L455.11 573.83 L462.01 575.79 L468.93 577.67 L475.88 579.46 L482.84 581.16 L489.82 582.77 L496.81 584.28 L503.8 585.71 L510.8 587.04 L517.8 588.28 L524.8 589.43 L531.79 590.48 L538.76 591.44 L545.73 592.3 L552.68 593.06 L559.6 593.73 L566.5 594.3 L573.37 594.77 L580.21 595.15 L587.02 595.43 L593.79 595.61 L600.51 595.69 L607.19 595.67 L613.82 595.56 L620.4 595.34 L626.93 595.03 L633.39 594.62 L639.79 594.11 L646.13 593.5 L652.4 592.79 L658.6 591.99 L664.72 591.09 L670.76 590.09 L676.73 588.99 L682.61 587.79 L688.4 586.5 L694.1 585.12 L699.71 583.64 L705.22 582.06 L710.64 580.39 L715.95 578.63 L721.15 576.77 L726.25 574.82 L731.24 572.78 L736.12 570.64 L740.88 568.42 L745.52 566.11 L750.04 563.71 L754.43 561.22 L758.7 558.65 L762.84 555.99 L766.84 553.25 L770.71 550.42 L774.45 547.51 L778.04 544.53 L781.49 541.46 L784.79 538.32 L787.95 535.1 L790.95 531.81 L793.8 528.45 L796.5 525.02 L799.03 521.52 L801.41 517.96 L803.61 514.34 L805.65 510.66 L807.52 506.93 L809.22 503.14 L810.74 499.31 L812.08 495.43 L813.23 491.5 L814.19 487.54 L814.94 483.55 L815.45 479.52 L815.34 475.48 L808.84 474.32 L807.39 477.92 L806.23 481.44 L805 484.91 L803.68 488.33 L802.24 491.7 L800.69 495.02 L799 498.28 L797.2 501.49 L795.26 504.65 L793.2 507.75 L791 510.8 L788.67 513.8 L786.22 516.74 L783.63 519.62 L780.91 522.45 L778.06 525.21 L775.08 527.92 L771.98 530.57 L768.74 533.16 L765.37 535.68 L761.88 538.14 L758.26 540.53 L754.51 542.86 L750.65 545.12 L746.66 547.31 L742.54 549.43 L738.31 551.47 L733.96 553.44 L729.5 555.34 L724.92 557.16 L720.24 558.9 L715.44 560.57 L710.54 562.15 L705.53 563.66 L700.42 565.08 L695.21 566.42 L689.91 567.67 L684.51 568.84 L679.02 569.92 L673.44 570.92 L667.78 571.83 L662.03 572.65 L656.21 573.39 L650.31 574.03 L644.34 574.59 L638.29 575.05 L632.18 575.43 L626.01 575.71 L619.78 575.9 L613.49 576 L607.15 576.01 L600.75 575.93 L594.31 575.76 L587.83 575.5 L581.31 575.14 L574.75 574.69 L568.15 574.15 L561.53 573.52 L554.88 572.8 L548.21 571.99 L541.53 571.09 L534.82 570.1 L528.11 569.02 L521.38 567.85 L514.66 566.59 L507.93 565.25 L501.2 563.82 L494.49 562.3 L487.78 560.7 L481.08 559.01 L474.4 557.24 L467.75 555.39 L461.11 553.46 L454.51 551.44 L447.93 549.35 L441.39 547.18 L434.89 544.93 L428.43 542.6 L422.02 540.2 L415.65 537.73 L409.34 535.18 L403.08 532.57 L396.88 529.88 L390.75 527.13 L384.67 524.31 L378.67 521.43 L372.74 518.48 L366.88 515.47 L361.1 512.4 L355.41 509.28 L349.79 506.09 L344.27 502.86 L338.83 499.57 L333.49 496.23 L328.24 492.84 L323.09 489.4 L318.04 485.92 L313.1 482.4 L308.26 478.84 L303.53 475.23 L298.92 471.59 L294.41 467.92 L290.03 464.21 L285.76 460.48 L281.61 456.71 L277.59 452.92 L273.69 449.11 L269.92 445.27 L266.28 441.42 L262.77 437.55 L259.38 433.66 L256.14 429.77 L253.03 425.86 L250.05 421.95 L247.22 418.03 L244.52 414.12 L241.96 410.2 L239.54 406.28 L237.27 402.37 L235.14 398.47 L233.15 394.57 L231.3 390.69 L229.6 386.82 L228.04 382.97 L226.62 379.14 L225.35 375.32 L224.23 371.53 L223.24 367.76 L222.4 364.02 L221.7 360.3 L221.14 356.61 L220.73 352.95 L220.45 349.32 L220.32 345.71 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_1-2" data-name="streamline 1" d="M204.5 345.74 L204.54 349.97 L204.74 354.22 L205.1 358.5 L205.64 362.79 L206.34 367.11 L207.2 371.44 L208.23 375.79 L209.42 380.15 L210.77 384.51 L212.28 388.88 L213.95 393.25 L215.78 397.62 L217.76 401.99 L219.9 406.35 L222.19 410.71 L224.63 415.06 L227.22 419.4 L229.96 423.73 L232.85 428.04 L235.88 432.34 L239.05 436.61 L242.36 440.87 L245.82 445.1 L249.41 449.3 L253.13 453.48 L256.99 457.64 L260.98 461.76 L265.09 465.84 L269.34 469.9 L273.7 473.91 L278.19 477.89 L282.8 481.83 L287.53 485.72 L292.37 489.57 L297.32 493.38 L302.38 497.14 L307.55 500.84 L312.82 504.5 L318.2 508.1 L323.67 511.65 L329.24 515.14 L334.9 518.57 L340.65 521.95 L346.49 525.26 L352.41 528.51 L358.42 531.69 L364.5 534.81 L370.66 537.86 L376.89 540.84 L383.18 543.74 L389.55 546.58 L395.97 549.34 L402.46 552.03 L409 554.64 L415.59 557.17 L422.23 559.62 L428.91 562 L435.64 564.29 L442.41 566.5 L449.21 568.62 L456.04 570.66 L462.9 572.61 L469.79 574.48 L476.69 576.26 L483.62 577.95 L490.55 579.55 L497.5 581.06 L504.46 582.47 L511.41 583.8 L518.37 585.03 L525.33 586.17 L532.27 587.22 L539.21 588.17 L546.13 589.02 L553.03 589.78 L559.91 590.45 L566.77 591.01 L573.6 591.48 L580.39 591.86 L587.15 592.13 L593.87 592.31 L600.55 592.39 L607.18 592.37 L613.77 592.26 L620.3 592.04 L626.77 591.73 L633.18 591.32 L639.53 590.82 L645.82 590.21 L652.03 589.51 L658.18 588.71 L664.24 587.82 L670.23 586.83 L676.14 585.74 L681.96 584.56 L687.69 583.28 L693.33 581.91 L698.88 580.44 L704.32 578.89 L709.67 577.23 L714.92 575.49 L720.06 573.66 L725.09 571.73 L730 569.72 L734.81 567.62 L739.49 565.43 L744.06 563.15 L748.5 560.79 L752.82 558.34 L757.01 555.81 L761.07 553.2 L765 550.51 L768.79 547.74 L772.44 544.9 L775.95 541.97 L779.32 538.98 L782.54 535.91 L785.62 532.77 L788.54 529.56 L791.31 526.29 L793.93 522.95 L796.39 519.55 L798.69 516.09 L800.82 512.58 L802.8 509.01 L804.6 505.39 L806.24 501.72 L807.71 498.01 L808.99 494.26 L810.1 490.46 L811.02 486.63 L811.74 482.77 L812.21 478.87 L812.09 474.9 L812.09 474.9 L810.62 478.56 L809.43 482.21 L808.17 485.82 L806.81 489.37 L805.33 492.87 L803.72 496.31 L801.98 499.7 L800.12 503.03 L798.12 506.3 L795.98 509.52 L793.72 512.67 L791.32 515.77 L788.79 518.81 L786.12 521.78 L783.33 524.7 L780.4 527.55 L777.34 530.33 L774.15 533.05 L770.83 535.71 L767.38 538.3 L763.81 540.82 L760.11 543.27 L756.28 545.65 L752.33 547.95 L748.27 550.19 L744.08 552.35 L739.77 554.43 L735.35 556.44 L730.81 558.37 L726.16 560.22 L721.4 561.99 L716.54 563.68 L711.57 565.29 L706.49 566.81 L701.32 568.25 L696.05 569.61 L690.68 570.88 L685.22 572.06 L679.67 573.16 L674.03 574.17 L668.31 575.09 L662.51 575.92 L656.63 576.66 L650.68 577.31 L644.65 577.87 L638.55 578.34 L632.39 578.72 L626.17 579.01 L619.88 579.2 L613.55 579.3 L607.15 579.31 L600.71 579.23 L594.22 579.06 L587.69 578.79 L581.13 578.43 L574.52 577.98 L567.88 577.44 L561.22 576.81 L554.53 576.08 L547.81 575.27 L541.08 574.36 L534.34 573.36 L527.58 572.28 L520.81 571.1 L514.05 569.84 L507.28 568.48 L500.51 567.04 L493.75 565.52 L487 563.91 L480.27 562.21 L473.55 560.43 L466.85 558.57 L460.18 556.62 L453.53 554.6 L446.92 552.49 L440.34 550.3 L433.8 548.04 L427.3 545.7 L420.85 543.29 L414.44 540.8 L408.09 538.24 L401.79 535.61 L395.56 532.9 L389.38 530.13 L383.27 527.29 L377.22 524.39 L371.25 521.43 L365.36 518.4 L359.54 515.31 L353.8 512.16 L348.14 508.95 L342.58 505.69 L337.1 502.38 L331.71 499.01 L326.42 495.6 L321.23 492.13 L316.14 488.62 L311.16 485.07 L306.28 481.47 L301.51 477.84 L296.85 474.16 L292.3 470.45 L287.87 466.71 L283.56 462.93 L279.37 459.13 L275.3 455.29 L271.35 451.43 L267.54 447.55 L263.85 443.65 L260.29 439.73 L256.86 435.79 L253.57 431.84 L250.41 427.87 L247.39 423.9 L244.51 419.92 L241.76 415.93 L239.16 411.94 L236.7 407.96 L234.38 403.97 L232.21 399.98 L230.17 396.01 L228.29 392.04 L226.55 388.08 L224.95 384.13 L223.5 380.2 L222.19 376.28 L221.04 372.38 L220.02 368.5 L219.16 364.64 L218.44 360.81 L217.87 357 L217.44 353.21 L217.16 349.45 L217.02 345.72 Z" fill="#ffffff"/>
|
||||
<path id="streamline_2_halo-2" data-name="streamline 2 halo" d="M156.36 433.49 L156.55 439.71 L157.04 445.96 L157.83 452.24 L158.91 458.55 L160.28 464.88 L161.95 471.22 L163.9 477.56 L166.13 483.91 L168.64 490.26 L171.42 496.59 L174.48 502.92 L177.8 509.23 L181.39 515.51 L185.23 521.77 L189.33 528.01 L193.68 534.2 L198.28 540.37 L203.12 546.49 L208.2 552.56 L213.51 558.59 L219.06 564.56 L224.82 570.48 L230.81 576.33 L237.01 582.12 L243.43 587.85 L250.04 593.5 L256.86 599.08 L263.88 604.57 L271.08 609.99 L278.46 615.31 L286.03 620.55 L293.76 625.69 L301.67 630.73 L309.73 635.67 L317.95 640.51 L326.31 645.24 L334.82 649.85 L343.46 654.35 L352.23 658.73 L361.12 663 L370.12 667.13 L379.23 671.14 L388.45 675.02 L397.76 678.76 L407.15 682.37 L416.62 685.83 L426.17 689.16 L435.78 692.34 L445.45 695.38 L455.17 698.26 L464.93 701 L474.73 703.58 L484.55 706.01 L494.4 708.28 L504.25 710.39 L514.12 712.34 L523.98 714.12 L533.83 715.75 L543.66 717.21 L553.47 718.5 L563.25 719.62 L572.99 720.58 L582.68 721.37 L592.32 721.99 L601.9 722.44 L611.4 722.72 L620.83 722.82 L630.18 722.76 L639.44 722.52 L648.6 722.11 L657.65 721.53 L666.6 720.77 L675.43 719.85 L684.13 718.75 L692.7 717.48 L701.14 716.04 L709.43 714.44 L717.57 712.66 L725.55 710.71 L733.37 708.6 L741.03 706.32 L748.51 703.87 L755.81 701.26 L762.92 698.49 L769.84 695.55 L776.56 692.46 L783.08 689.2 L789.4 685.79 L795.49 682.21 L801.37 678.49 L807.02 674.61 L812.44 670.58 L817.62 666.41 L822.57 662.09 L827.26 657.62 L831.7 653.02 L835.88 648.28 L839.79 643.41 L843.43 638.42 L846.8 633.3 L849.89 628.07 L852.69 622.72 L855.2 617.28 L857.41 611.74 L859.34 606.11 L860.96 600.4 L862.28 594.62 L863.3 588.77 L864.02 582.87 L864.44 576.92 L864.56 570.92 L864.37 564.9 L846.06 565.45 L845.95 570.58 L845.59 575.63 L844.99 580.61 L844.15 585.5 L843.06 590.31 L841.75 595.04 L840.19 599.69 L838.4 604.26 L836.38 608.74 L834.12 613.14 L831.62 617.46 L828.9 621.69 L825.93 625.84 L822.74 629.9 L819.31 633.87 L815.64 637.74 L811.75 641.53 L807.62 645.21 L803.26 648.8 L798.67 652.28 L793.85 655.65 L788.81 658.91 L783.54 662.06 L778.06 665.09 L772.36 668 L766.45 670.79 L760.33 673.45 L754.01 675.98 L747.5 678.37 L740.78 680.62 L733.89 682.74 L726.81 684.72 L719.55 686.55 L712.12 688.23 L704.53 689.77 L696.78 691.15 L688.88 692.39 L680.83 693.47 L672.65 694.39 L664.33 695.16 L655.89 695.77 L647.33 696.22 L638.66 696.52 L629.88 696.65 L621.01 696.63 L612.05 696.45 L603.01 696.1 L593.89 695.6 L584.71 694.93 L575.47 694.11 L566.17 693.13 L556.84 691.99 L547.46 690.69 L538.06 689.24 L528.64 687.63 L519.2 685.87 L509.76 683.95 L500.32 681.88 L490.89 679.67 L481.48 677.3 L472.1 674.79 L462.75 672.14 L453.44 669.34 L444.18 666.41 L434.97 663.34 L425.83 660.13 L416.76 656.79 L407.77 653.33 L398.86 649.73 L390.05 646.02 L381.34 642.18 L372.74 638.23 L364.25 634.16 L355.88 629.98 L347.64 625.7 L339.54 621.32 L331.58 616.83 L323.76 612.25 L316.11 607.58 L308.61 602.83 L301.28 597.99 L294.12 593.07 L287.14 588.08 L280.35 583.01 L273.74 577.89 L267.33 572.7 L261.13 567.46 L255.12 562.16 L249.33 556.83 L243.75 551.45 L238.39 546.03 L233.26 540.58 L228.35 535.11 L223.67 529.62 L219.23 524.11 L215.02 518.59 L211.05 513.07 L207.32 507.55 L203.84 502.03 L200.61 496.53 L197.62 491.04 L194.88 485.57 L192.39 480.14 L190.14 474.73 L188.15 469.36 L186.41 464.03 L184.91 458.74 L183.67 453.5 L182.67 448.31 L181.91 443.18 L181.4 438.1 L181.13 433.08 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_2-2" data-name="streamline 2" d="M160.54 433.42 L160.72 439.44 L161.19 445.49 L161.95 451.59 L163 457.71 L164.34 463.87 L165.96 470.04 L167.85 476.22 L170.03 482.42 L172.48 488.62 L175.21 494.82 L178.2 501.01 L181.45 507.19 L184.97 513.36 L188.75 519.51 L192.78 525.64 L197.06 531.74 L201.58 537.8 L206.35 543.83 L211.36 549.82 L216.6 555.77 L222.07 561.67 L227.77 567.51 L233.69 573.3 L239.82 579.03 L246.17 584.69 L252.72 590.29 L259.47 595.81 L266.41 601.25 L273.55 606.61 L280.87 611.89 L288.37 617.08 L296.04 622.18 L303.88 627.18 L311.88 632.09 L320.03 636.89 L328.33 641.58 L336.78 646.16 L345.36 650.63 L354.06 654.98 L362.89 659.21 L371.84 663.32 L380.89 667.3 L390.04 671.15 L399.29 674.87 L408.62 678.45 L418.03 681.9 L427.52 685.2 L437.07 688.36 L446.67 691.38 L456.33 694.25 L466.03 696.97 L475.77 699.53 L485.53 701.94 L495.31 704.2 L505.11 706.29 L514.91 708.23 L524.7 710.01 L534.49 711.62 L544.26 713.07 L554 714.35 L563.71 715.47 L573.38 716.42 L583 717.2 L592.57 717.82 L602.07 718.26 L611.51 718.54 L620.86 718.64 L630.13 718.58 L639.31 718.34 L648.39 717.93 L657.37 717.36 L666.23 716.61 L674.97 715.69 L683.59 714.61 L692.07 713.35 L700.42 711.93 L708.61 710.34 L716.66 708.58 L724.55 706.66 L732.27 704.57 L739.82 702.32 L747.19 699.91 L754.38 697.33 L761.38 694.6 L768.19 691.71 L774.8 688.67 L781.2 685.47 L787.39 682.12 L793.36 678.62 L799.11 674.97 L804.64 671.18 L809.93 667.24 L814.98 663.17 L819.79 658.96 L824.36 654.61 L828.67 650.14 L832.72 645.54 L836.51 640.82 L840.04 635.98 L843.29 631.02 L846.27 625.97 L848.97 620.81 L851.39 615.55 L853.52 610.21 L855.37 604.78 L856.93 599.28 L858.2 593.7 L859.18 588.07 L859.87 582.37 L860.27 576.63 L860.38 570.84 L860.2 565.02 L850.24 565.32 L850.13 570.65 L849.76 575.92 L849.14 581.1 L848.27 586.2 L847.14 591.23 L845.77 596.17 L844.15 601.02 L842.29 605.79 L840.18 610.47 L837.83 615.06 L835.24 619.56 L832.4 623.97 L829.33 628.28 L826.01 632.49 L822.46 636.61 L818.67 640.62 L814.65 644.54 L810.39 648.34 L805.9 652.04 L801.18 655.62 L796.23 659.08 L791.06 662.43 L785.67 665.66 L780.07 668.76 L774.25 671.73 L768.22 674.58 L761.98 677.29 L755.55 679.86 L748.92 682.3 L742.1 684.59 L735.1 686.74 L727.91 688.75 L720.56 690.6 L713.03 692.31 L705.34 693.87 L697.5 695.27 L689.51 696.52 L681.37 697.61 L673.1 698.55 L664.7 699.32 L656.17 699.94 L647.53 700.4 L638.78 700.7 L629.93 700.83 L620.98 700.81 L611.95 700.63 L602.83 700.28 L593.64 699.77 L584.39 699.1 L575.08 698.27 L565.72 697.29 L556.31 696.14 L546.87 694.83 L537.4 693.37 L527.91 691.75 L518.41 689.97 L508.91 688.04 L499.41 685.96 L489.92 683.73 L480.44 681.35 L471 678.83 L461.58 676.15 L452.21 673.34 L442.89 670.39 L433.62 667.29 L424.42 664.07 L415.29 660.71 L406.24 657.21 L397.27 653.6 L388.4 649.85 L379.63 645.99 L370.96 642.01 L362.41 637.91 L353.98 633.71 L345.68 629.39 L337.52 624.97 L329.49 620.45 L321.62 615.84 L313.89 611.13 L306.33 606.33 L298.94 601.45 L291.71 596.49 L284.67 591.45 L277.81 586.34 L271.14 581.16 L264.66 575.91 L258.39 570.61 L252.31 565.26 L246.45 559.86 L240.8 554.41 L235.38 548.92 L230.17 543.4 L225.19 537.85 L220.44 532.27 L215.92 526.67 L211.64 521.06 L207.61 515.44 L203.81 509.81 L200.26 504.18 L196.95 498.56 L193.9 492.95 L191.09 487.35 L188.54 481.77 L186.24 476.22 L184.19 470.7 L182.4 465.2 L180.86 459.75 L179.57 454.33 L178.54 448.96 L177.76 443.64 L177.23 438.37 L176.95 433.15 Z" fill="#ffffff"/>
|
||||
<path id="streamline_3_halo-2" data-name="streamline 3 halo" d="M196.57 551.95 L196.71 556.79 L197.06 561.65 L197.62 566.54 L198.39 571.45 L199.37 576.36 L200.56 581.29 L201.95 586.23 L203.55 591.17 L205.35 596.1 L207.36 601.03 L209.56 605.95 L211.96 610.86 L214.55 615.75 L217.33 620.63 L220.31 625.48 L223.47 630.31 L226.81 635.11 L230.34 639.88 L234.04 644.61 L237.92 649.32 L241.98 653.98 L246.2 658.6 L250.59 663.18 L255.15 667.71 L259.87 672.19 L264.75 676.63 L269.78 681 L274.96 685.33 L280.29 689.59 L285.77 693.79 L291.39 697.93 L297.14 702 L303.03 706.01 L309.05 709.94 L315.2 713.8 L321.47 717.59 L327.86 721.29 L334.36 724.92 L340.97 728.47 L347.69 731.93 L354.51 735.31 L361.43 738.6 L368.45 741.8 L375.55 744.91 L382.74 747.93 L390.01 750.85 L397.36 753.67 L404.77 756.4 L412.26 759.02 L419.8 761.55 L427.4 763.97 L435.06 766.28 L442.76 768.49 L450.51 770.6 L458.3 772.59 L466.12 774.47 L473.97 776.25 L481.84 777.91 L489.73 779.46 L497.64 780.89 L505.55 782.21 L513.47 783.41 L521.39 784.49 L529.3 785.46 L537.21 786.31 L545.1 787.05 L552.97 787.66 L560.81 788.15 L568.63 788.53 L576.41 788.78 L584.15 788.91 L591.85 788.92 L599.5 788.82 L607.09 788.59 L614.63 788.24 L622.11 787.77 L629.52 787.18 L636.85 786.46 L644.12 785.63 L651.3 784.68 L658.39 783.61 L665.4 782.42 L672.32 781.12 L679.13 779.69 L685.85 778.15 L692.46 776.49 L698.96 774.72 L705.34 772.83 L711.61 770.82 L717.76 768.7 L723.78 766.47 L729.67 764.13 L735.43 761.68 L741.05 759.11 L746.53 756.44 L751.87 753.66 L757.06 750.78 L762.1 747.78 L766.99 744.69 L771.71 741.49 L776.28 738.19 L780.68 734.79 L784.91 731.29 L788.97 727.7 L792.86 724.01 L796.57 720.22 L800.09 716.35 L803.43 712.39 L806.58 708.34 L809.54 704.21 L812.3 700 L814.87 695.71 L817.23 691.34 L819.39 686.91 L821.34 682.42 L823.08 677.86 L824.61 673.24 L825.92 668.58 L827.02 663.86 L827.91 659.11 L828.58 654.31 L829.03 649.49 L829.27 644.64 L829.29 639.76 L811.2 639.83 L811.05 643.9 L810.73 647.93 L810.24 651.92 L809.57 655.87 L808.72 659.78 L807.7 663.64 L806.51 667.45 L805.15 671.23 L803.62 674.95 L801.91 678.63 L800.03 682.27 L797.98 685.85 L795.75 689.39 L793.36 692.88 L790.79 696.31 L788.05 699.69 L785.13 703.01 L782.05 706.28 L778.8 709.49 L775.37 712.63 L771.78 715.71 L768.02 718.72 L764.1 721.66 L760.01 724.53 L755.76 727.32 L751.36 730.04 L746.79 732.68 L742.07 735.23 L737.2 737.7 L732.19 740.09 L727.02 742.38 L721.72 744.59 L716.27 746.7 L710.7 748.72 L704.98 750.65 L699.15 752.47 L693.18 754.2 L687.1 755.82 L680.9 757.34 L674.59 758.76 L668.17 760.07 L661.65 761.28 L655.03 762.38 L648.31 763.37 L641.51 764.25 L634.61 765.03 L627.64 765.69 L620.59 766.24 L613.47 766.68 L606.27 767.01 L599.02 767.22 L591.71 767.32 L584.35 767.31 L576.94 767.19 L569.48 766.95 L561.99 766.6 L554.46 766.14 L546.91 765.57 L539.33 764.88 L531.74 764.08 L524.13 763.17 L516.51 762.15 L508.89 761.02 L501.27 759.78 L493.65 758.43 L486.05 756.97 L478.46 755.41 L470.9 753.74 L463.36 751.97 L455.86 750.09 L448.39 748.11 L440.96 746.03 L433.58 743.85 L426.24 741.57 L418.97 739.2 L411.75 736.73 L404.6 734.16 L397.52 731.51 L390.51 728.77 L383.58 725.93 L376.74 723.01 L369.98 720.01 L363.32 716.93 L356.75 713.76 L350.28 710.52 L343.92 707.21 L337.66 703.82 L331.52 700.35 L325.5 696.83 L319.59 693.23 L313.82 689.57 L308.17 685.85 L302.65 682.07 L297.27 678.24 L292.02 674.35 L286.92 670.42 L281.97 666.43 L277.16 662.41 L272.5 658.34 L268 654.23 L263.66 650.08 L259.47 645.91 L255.45 641.7 L251.59 637.46 L247.89 633.21 L244.37 628.93 L241.01 624.63 L237.83 620.32 L234.82 616 L231.99 611.66 L229.33 607.32 L226.85 602.98 L224.54 598.64 L222.42 594.3 L220.47 589.97 L218.7 585.64 L217.12 581.32 L215.71 577.01 L214.48 572.72 L213.43 568.44 L212.56 564.18 L211.87 559.94 L211.36 555.72 L211.03 551.52 Z" fill="#0b2236" opacity="0.4"/>
|
||||
<path id="streamline_3-2" data-name="streamline 3" d="M199.87 551.85 L200 556.55 L200.34 561.27 L200.88 566.03 L201.62 570.8 L202.58 575.59 L203.73 580.4 L205.09 585.21 L206.65 590.03 L208.41 594.86 L210.37 599.68 L212.52 604.5 L214.87 609.32 L217.42 614.12 L220.15 618.9 L223.07 623.67 L226.18 628.42 L229.47 633.15 L232.94 637.85 L236.59 642.52 L240.42 647.15 L244.42 651.76 L248.59 656.32 L252.92 660.84 L257.43 665.32 L262.09 669.76 L266.92 674.14 L271.89 678.47 L277.03 682.75 L282.31 686.97 L287.73 691.14 L293.3 695.24 L299 699.28 L304.84 703.25 L310.81 707.15 L316.91 710.98 L323.13 714.73 L329.47 718.42 L335.92 722.02 L342.49 725.54 L349.16 728.98 L355.94 732.33 L362.81 735.6 L369.78 738.78 L376.84 741.87 L383.98 744.87 L391.2 747.77 L398.5 750.58 L405.88 753.29 L413.31 755.9 L420.81 758.41 L428.37 760.81 L435.98 763.12 L443.64 765.31 L451.34 767.4 L459.08 769.39 L466.86 771.26 L474.66 773.02 L482.49 774.67 L490.33 776.21 L498.19 777.64 L506.06 778.95 L513.94 780.14 L521.81 781.22 L529.68 782.18 L537.53 783.03 L545.37 783.76 L553.2 784.37 L560.99 784.86 L568.76 785.23 L576.49 785.48 L584.18 785.61 L591.83 785.62 L599.42 785.52 L606.97 785.29 L614.45 784.94 L621.88 784.47 L629.23 783.89 L636.51 783.18 L643.72 782.36 L650.84 781.41 L657.88 780.35 L664.83 779.17 L671.68 777.88 L678.43 776.47 L685.09 774.94 L691.63 773.3 L698.06 771.54 L704.38 769.67 L710.58 767.69 L716.66 765.59 L722.61 763.39 L728.43 761.07 L734.11 758.65 L739.66 756.12 L745.06 753.49 L750.32 750.75 L755.43 747.91 L760.39 744.96 L765.19 741.92 L769.84 738.77 L774.32 735.53 L778.64 732.2 L782.79 728.77 L786.76 725.25 L790.57 721.64 L794.19 717.94 L797.63 714.15 L800.89 710.29 L803.96 706.34 L806.84 702.31 L809.53 698.22 L812.02 694.04 L814.31 689.8 L816.41 685.5 L818.3 681.13 L819.98 676.71 L821.46 672.24 L822.74 667.71 L823.8 663.14 L824.66 658.53 L825.31 653.89 L825.74 649.21 L825.97 644.5 L825.99 639.78 L814.5 639.81 L814.35 644.03 L814.02 648.21 L813.51 652.35 L812.82 656.44 L811.94 660.5 L810.89 664.5 L809.66 668.46 L808.25 672.37 L806.66 676.23 L804.89 680.05 L802.95 683.81 L800.83 687.52 L798.53 691.17 L796.06 694.77 L793.41 698.31 L790.59 701.79 L787.6 705.21 L784.43 708.57 L781.09 711.86 L777.58 715.08 L773.91 718.23 L770.06 721.31 L766.06 724.32 L761.89 727.24 L757.55 730.09 L753.06 732.86 L748.42 735.55 L743.62 738.15 L738.67 740.66 L733.58 743.08 L728.34 745.41 L722.96 747.65 L717.45 749.79 L711.79 751.83 L706.01 753.78 L700.11 755.63 L694.08 757.37 L687.93 759.01 L681.67 760.55 L675.29 761.98 L668.81 763.31 L662.23 764.53 L655.55 765.64 L648.77 766.64 L641.91 767.53 L634.96 768.31 L627.93 768.98 L620.82 769.53 L613.64 769.98 L606.4 770.3 L599.09 770.52 L591.73 770.62 L584.32 770.61 L576.86 770.49 L569.35 770.25 L561.81 769.9 L554.23 769.43 L546.63 768.86 L539.01 768.16 L531.36 767.36 L523.71 766.44 L516.04 765.42 L508.37 764.28 L500.71 763.03 L493.05 761.67 L485.4 760.21 L477.77 758.64 L470.16 756.96 L462.58 755.17 L455.02 753.28 L447.51 751.29 L440.04 749.2 L432.61 747.01 L425.23 744.71 L417.91 742.32 L410.65 739.84 L403.45 737.26 L396.32 734.59 L389.27 731.82 L382.3 728.97 L375.41 726.03 L368.6 723.01 L361.89 719.9 L355.27 716.72 L348.76 713.45 L342.35 710.11 L336.05 706.69 L329.86 703.2 L323.79 699.65 L317.83 696.02 L312.01 692.33 L306.31 688.58 L300.74 684.76 L295.3 680.89 L290.01 676.97 L284.86 672.99 L279.85 668.96 L274.99 664.89 L270.28 660.77 L265.72 656.62 L261.33 652.42 L257.09 648.19 L253.01 643.92 L249.09 639.63 L245.35 635.3 L241.77 630.96 L238.36 626.59 L235.12 622.2 L232.06 617.8 L229.17 613.38 L226.46 608.96 L223.93 604.53 L221.58 600.09 L219.4 595.65 L217.41 591.21 L215.6 586.77 L213.98 582.34 L212.53 577.91 L211.27 573.49 L210.2 569.09 L209.3 564.69 L208.6 560.32 L208.07 555.96 L207.73 551.61 Z" fill="#ffffff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 42 KiB |
@@ -61,30 +61,40 @@ fn button_style(t: &Tokens) -> IconButtonStyle {
|
||||
}
|
||||
}
|
||||
|
||||
/// FieldCraft's mark: the application icon's bracket (`assets/app-icon/icon-small.svg`) drawn in
|
||||
/// code from the SVG's own coordinates, without its tile, each face in the middle of its gradient.
|
||||
/// FieldCraft's mark: the application icon's fringe cube (`assets/app-icon/icon-small.svg`, after
|
||||
/// `xtask/src/app_icon.rs`) drawn in code without its tile or streamline: each visible face split
|
||||
/// into small cells coloured by the fringe band at the cell's centre, shaded per face.
|
||||
fn mark(p: &egui::Painter, c: egui::Pos2) {
|
||||
// The bracket spans y 141–883 in the SVG; draw it 22 points tall around its centre.
|
||||
let s = 22.0 / 742.0;
|
||||
let at = |x: f32, y: f32| c + vec2((x - 512.0) * s, (y - 512.0) * s);
|
||||
let face = |col: Color32, pts: &[(f32, f32)]| {
|
||||
p.add(egui::Shape::convex_polygon(pts.iter().map(|&(x, y)| at(x, y)).collect(), col, Stroke::NONE));
|
||||
};
|
||||
let (top, front, end) = (Color32::from_rgb(0x69, 0xd4, 0xc2), Color32::from_rgb(0x19, 0xa0, 0x8d), Color32::from_rgb(0x0d, 0x66, 0x5d));
|
||||
face(top, &[(512.0, 141.0), (833.3, 326.5), (730.48, 385.86), (409.19, 200.36)]);
|
||||
face(front, &[(409.19, 200.36), (730.48, 385.86), (730.48, 638.14), (409.19, 452.64)]);
|
||||
face(top, &[(409.19, 452.64), (730.48, 638.14), (512.0, 764.28), (190.7, 578.78)]);
|
||||
face(front, &[(190.7, 578.78), (512.0, 764.28), (512.0, 883.0), (190.7, 697.5)]);
|
||||
face(end, &[(730.48, 385.86), (833.3, 326.5), (833.3, 697.5), (730.48, 638.14)]);
|
||||
face(end, &[(730.48, 638.14), (833.3, 697.5), (512.0, 883.0), (512.0, 764.28)]);
|
||||
// The bolt hole.
|
||||
let hole: Vec<egui::Pos2> = (0..24)
|
||||
.map(|k| {
|
||||
let a = k as f32 / 24.0 * std::f32::consts::TAU;
|
||||
at(460.6 + 86.0 * a.cos(), 608.5 + 49.5 * a.sin())
|
||||
})
|
||||
.collect();
|
||||
p.add(egui::Shape::convex_polygon(hole, Color32::from_rgb(0x08, 0x46, 0x3f), Stroke::NONE));
|
||||
// The cube is 2 units tall on screen (half side 0.5, isometric); draw it 22 points tall.
|
||||
const S: f32 = 11.0;
|
||||
const N: usize = 8;
|
||||
const FRINGE: [(u8, u8, u8); 7] =
|
||||
[(0x2c, 0x4f, 0xbf), (0x2f, 0x86, 0xe0), (0x22, 0xbc, 0xd8), (0x3f, 0xc5, 0x84), (0xf0, 0xd1, 0x3a), (0xf2, 0x8a, 0x2b), (0xde, 0x3b, 0x2f)];
|
||||
const RADII: [f32; 6] = [1.28, 1.07, 0.87, 0.67, 0.47, 0.27];
|
||||
let at = |q: [f32; 3]| c + vec2((q[0] - q[1]) * 0.866 * S, ((q[0] + q[1]) * 0.5 - q[2]) * S);
|
||||
// Each face: origin corner, two edge vectors, and how much it is darkened (0 to 1).
|
||||
let faces: [([f32; 3], [f32; 3], [f32; 3], f32); 3] = [
|
||||
([-0.5, -0.5, 0.5], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], 0.0),
|
||||
([-0.5, 0.5, -0.5], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0], 0.12),
|
||||
([0.5, -0.5, -0.5], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0], 0.3),
|
||||
];
|
||||
let point = |o: [f32; 3], u: [f32; 3], v: [f32; 3], a: f32, b: f32| [0, 1, 2].map(|k| o[k] + u[k] * a + v[k] * b);
|
||||
for (o, u, v, shade) in faces {
|
||||
for i in 0..N {
|
||||
for j in 0..N {
|
||||
let (a0, a1, b0, b1) = (i as f32 / N as f32, (i + 1) as f32 / N as f32, j as f32 / N as f32, (j + 1) as f32 / N as f32);
|
||||
let m = point(o, u, v, (a0 + a1) / 2.0, (b0 + b1) / 2.0);
|
||||
let r = m.iter().map(|x| (0.5 - x) * (0.5 - x)).sum::<f32>().sqrt();
|
||||
let band = RADII.iter().filter(|&&rad| r < rad).count();
|
||||
let (cr, cg, cb) = FRINGE.get(band).copied().unwrap_or(FRINGE[0]);
|
||||
let k = 1.0 - shade;
|
||||
let col = Color32::from_rgb((cr as f32 * k) as u8, (cg as f32 * k) as u8, (cb as f32 * k) as u8);
|
||||
let quad = vec![at(point(o, u, v, a0, b0)), at(point(o, u, v, a1, b0)), at(point(o, u, v, a1, b1)), at(point(o, u, v, a0, b1))];
|
||||
// A hairline in the cell's own colour closes the seams between neighbouring cells.
|
||||
p.add(egui::Shape::convex_polygon(quad, col, Stroke::new(0.5, col)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Where the title bar's parts go.
|
||||
|
||||
@@ -1,25 +1,27 @@
|
||||
//! `cargo xtask app-icon`: draw FieldCraft's application icon family with VectorCraft.
|
||||
//!
|
||||
//! The mark is an L-shaped bracket with a bolt hole, drawn in isometric view and covered by a
|
||||
//! structured hexahedral mesh (an O-grid around the hole). The faces are separated by
|
||||
//! transparent gaps instead of painted edge lines, so the backdrop shows through them in every
|
||||
//! appearance. All geometry is computed here, turned into VectorCraft commands and run headlessly
|
||||
//! with `vectorcraft-cli run` (`VECTORCRAFT_CLI`, else `vectorcraft-cli` on the PATH), which
|
||||
//! saves each document's editable `.vectorcraft` source and exports its SVG (and PNG).
|
||||
//! The mark is a hexahedral-meshed cube in isometric view whose faces carry a banded colour
|
||||
//! fringe (blue to red, hottest at the cube's front corner) as a stress or temperature result
|
||||
//! would, with flow streamlines wrapping around it: structures and fluids. The faces are
|
||||
//! separated by transparent gaps instead of painted edge lines, so the backdrop shows through
|
||||
//! them in every appearance. All geometry is computed here, turned into VectorCraft commands and
|
||||
//! run headlessly with `vectorcraft-cli run` (`VECTORCRAFT_CLI`, else `vectorcraft-cli` on the
|
||||
//! PATH), which saves each document's editable `.vectorcraft` source and exports its SVG (and PNG).
|
||||
//!
|
||||
//! Outputs, all under `assets/app-icon/` (see its README.md):
|
||||
//! - `icon.vectorcraft`, `icon.svg`, `icon.png`: the full icon on its backdrop, 1024 × 1024.
|
||||
//! - `icon-small.vectorcraft`, `icon-small.svg`, `icon-small.png`: simplified artwork (no mesh,
|
||||
//! no floor grid, faces meeting edge to edge so the tones alone separate them) for 16–32 px.
|
||||
//! - `icon-small.vectorcraft`, `icon-small.svg`, `icon-small.png`: simplified artwork for 16–32 px
|
||||
//! (no mesh or floor grid, faces edge to edge, one bolder streamline).
|
||||
//! - `icon.iconset/` (sips), `icon.icns` (iconutil) and `icon.ico` (ImageMagick).
|
||||
//! - `FieldCraft.icon/`: an Icon Composer document with separate floor-grid (Default and Dark),
|
||||
//! part and mesh layers; their editable sources are `layers/*.vectorcraft`.
|
||||
//! flow (behind and in front) and cube layers (the mesh shares the cube's: Icon Composer allows
|
||||
//! four groups); their editable sources are `layers/*.vectorcraft`.
|
||||
//! - `Assets.car`: Apple's actool compilation of `FieldCraft.icon`, when Xcode 26 or later is
|
||||
//! installed (otherwise the step is skipped with a note and the checked-in catalog stays).
|
||||
//!
|
||||
//! macOS only (sips, iconutil); ImageMagick (`magick`) writes the Windows icon.
|
||||
|
||||
use std::f64::consts::{FRAC_PI_2, TAU};
|
||||
use std::f64::consts::{FRAC_PI_2, PI};
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::process::Command;
|
||||
|
||||
@@ -30,32 +32,31 @@ type P3 = [f64; 3];
|
||||
|
||||
/// Canvas side in pixels; every document is one square artboard.
|
||||
const CANVAS: f64 = 1024.0;
|
||||
/// Pixels per model unit, and the screen point the model origin's bounding box centres on.
|
||||
const SCALE: f64 = 371.0;
|
||||
const CENTRE: P2 = [512.0, 512.0];
|
||||
/// Pixels per model unit, and the screen point the model origin projects to.
|
||||
const SCALE: f64 = 286.0;
|
||||
const CENTRE: P2 = [512.0, 500.0];
|
||||
const COS30: f64 = 0.866_025_403_784_438_6;
|
||||
|
||||
/// The bracket, in model units (x to the right-front, y to the left-front, z up): a base plate
|
||||
/// `L × D × T` with an upright wall `L × T × H` along its back edge.
|
||||
const L: f64 = 1.0;
|
||||
const D: f64 = 1.0;
|
||||
const H: f64 = 1.0;
|
||||
const T: f64 = 0.32;
|
||||
/// The bolt hole through the base plate, and the half-side of the O-grid block around it (the
|
||||
/// block spans the plate's depth exactly).
|
||||
const HOLE: P2 = [0.5, 0.66];
|
||||
const HOLE_R: f64 = 0.19;
|
||||
const BLOCK: f64 = 0.34;
|
||||
/// The cube's half side, in model units (x to the right-front, y to the left-front, z up); the
|
||||
/// cube is centred on the origin.
|
||||
const A: f64 = 0.5;
|
||||
/// Mesh cells along each edge.
|
||||
const CELLS: usize = 4;
|
||||
|
||||
/// The fringe: a field that grows towards the hot point (the cube's front corner), shown as
|
||||
/// bands of constant colour. `BAND_RADII[k]` is the distance from the hot point inside which
|
||||
/// band `k + 1` of `FRINGE` starts; the coldest band fills the rest of the face.
|
||||
const HOT: P3 = [A, A, A];
|
||||
const FRINGE: [&str; 7] = ["#2c4fbf", "#2f86e0", "#22bcd8", "#3fc584", "#f0d13a", "#f28a2b", "#de3b2f"];
|
||||
const BAND_RADII: [f64; 6] = [1.28, 1.07, 0.87, 0.67, 0.47, 0.27];
|
||||
|
||||
/// The macOS icon grid: the backdrop's square, inset 100 px on a 1024 canvas.
|
||||
const BACKDROP: [f64; 2] = [100.0, 924.0];
|
||||
|
||||
/// Part palette: lit top faces, the left (+y) faces and the right (+x) faces, each a vertical
|
||||
/// gradient, and the bolt hole's inner wall.
|
||||
const TOP: [&str; 2] = ["#86e3d3", "#4cc4b1"];
|
||||
const LEFT: [&str; 2] = ["#20b39f", "#118c7c"];
|
||||
const RIGHT: [&str; 2] = ["#0f786d", "#0a544e"];
|
||||
const BORE: [&str; 2] = ["#0b665e", "#04302c"];
|
||||
/// The streamlines' core and halo colours (the same in both appearances: the dark halo keeps the
|
||||
/// light core readable on the light backdrop and on the fringe's yellow).
|
||||
const FLOW_CORE: &str = "#ffffff";
|
||||
const FLOW_HALO: &str = "#0b2236";
|
||||
|
||||
#[derive(Clone, Copy, PartialEq)]
|
||||
enum Appearance {
|
||||
@@ -63,7 +64,7 @@ enum Appearance {
|
||||
Dark,
|
||||
}
|
||||
|
||||
/// How much of the mark is drawn: the full mesh and floor grid, or the small-size artwork.
|
||||
/// How much of the mark is drawn: the full mesh, flow and floor grid, or the small-size artwork.
|
||||
#[derive(Clone, Copy, PartialEq)]
|
||||
enum Detail {
|
||||
Full,
|
||||
@@ -74,7 +75,7 @@ impl Detail {
|
||||
/// Width of the transparent gap between neighbouring faces, in pixels on the 1024 canvas.
|
||||
fn gap(self) -> f64 {
|
||||
match self {
|
||||
Detail::Full => 16.0,
|
||||
Detail::Full => 14.0,
|
||||
Detail::Small => 0.0,
|
||||
}
|
||||
}
|
||||
@@ -191,32 +192,27 @@ fn inset(poly: &[P2], flagged: &[bool], by: f64) -> Result<Vec<P2>, String> {
|
||||
Ok(out)
|
||||
}
|
||||
|
||||
/// A circle of radius `r` around `c` on the horizontal plane at height `z`, projected: four
|
||||
/// cubic arcs (projection is affine, so the projected Béziers are exact). `ccw` picks the
|
||||
/// screen winding (positive shoelace area when true).
|
||||
fn circle_d(c: P2, r: f64, z: f64, ccw: bool) -> String {
|
||||
let arcs = |sign: f64| -> Vec<[P2; 3]> {
|
||||
let k = 0.552_284_749_830_793_4 * r;
|
||||
let at = |t: f64| [c[0] + r * t.cos(), c[1] + sign * r * t.sin()];
|
||||
let tangent = |t: f64| [-t.sin(), sign * t.cos()];
|
||||
(0..4)
|
||||
.map(|i| {
|
||||
let (t0, t1) = (i as f64 * FRAC_PI_2, (i + 1) as f64 * FRAC_PI_2);
|
||||
let (p0, p1, d0, d1) = (at(t0), at(t1), tangent(t0), tangent(t1));
|
||||
let c1 = [p0[0] + k * d0[0], p0[1] + k * d0[1]];
|
||||
let c2 = [p1[0] - k * d1[0], p1[1] - k * d1[1]];
|
||||
[project([c1[0], c1[1], z]), project([c2[0], c2[1], z]), project([p1[0], p1[1], z])]
|
||||
})
|
||||
.collect()
|
||||
};
|
||||
let mut segs = arcs(1.0);
|
||||
let anchors: Vec<P2> = segs.iter().map(|s| s[2]).collect();
|
||||
if (signed_area(&anchors) > 0.0) != ccw {
|
||||
segs = arcs(-1.0);
|
||||
}
|
||||
let start = segs[3][2];
|
||||
fn add3(a: P3, b: P3, k: f64) -> P3 {
|
||||
[a[0] + b[0] * k, a[1] + b[1] * k, a[2] + b[2] * k]
|
||||
}
|
||||
|
||||
fn dot3(a: P3, b: P3) -> f64 {
|
||||
a[0] * b[0] + a[1] * b[1] + a[2] * b[2]
|
||||
}
|
||||
|
||||
/// A circle of radius `r` around `c` in the plane spanned by the unit vectors `u` and `v`,
|
||||
/// projected: four cubic arcs (projection is affine, so the projected Béziers are exact).
|
||||
fn circle_d(c: P3, u: P3, v: P3, r: f64) -> String {
|
||||
let k = 0.552_284_749_830_793_4 * r;
|
||||
let at = |t: f64| add3(add3(c, u, r * t.cos()), v, r * t.sin());
|
||||
let dir = |t: f64| add3(add3([0.0; 3], u, -t.sin()), v, t.cos());
|
||||
let start = project(at(0.0));
|
||||
let mut d = format!("M{} {}", num(start[0]), num(start[1]));
|
||||
for [c1, c2, p] in &segs {
|
||||
for i in 0..4 {
|
||||
let (t0, t1) = (i as f64 * FRAC_PI_2, (i + 1) as f64 * FRAC_PI_2);
|
||||
let c1 = project(add3(at(t0), dir(t0), k));
|
||||
let c2 = project(add3(at(t1), dir(t1), -k));
|
||||
let p = project(at(t1));
|
||||
d.push_str(&format!(" C{} {} {} {} {} {}", num(c1[0]), num(c1[1]), num(c2[0]), num(c2[1]), num(p[0]), num(p[1])));
|
||||
}
|
||||
d.push_str(" Z");
|
||||
@@ -233,42 +229,40 @@ enum Tone {
|
||||
struct Face {
|
||||
name: &'static str,
|
||||
/// Corners in model space and, per edge (corner i to i + 1), whether another face of the
|
||||
/// part meets it there (those edges get the gap).
|
||||
corners: Vec<P3>,
|
||||
shared: Vec<bool>,
|
||||
/// cube meets it there (those edges get the gap).
|
||||
corners: [P3; 4],
|
||||
shared: [bool; 4],
|
||||
/// The face's outward normal and two in-plane unit axes.
|
||||
normal: P3,
|
||||
axes: [P3; 2],
|
||||
tone: Tone,
|
||||
}
|
||||
|
||||
fn faces() -> Vec<Face> {
|
||||
vec![
|
||||
fn faces() -> [Face; 3] {
|
||||
let shared = [false, true, true, false];
|
||||
[
|
||||
Face {
|
||||
name: "wall top",
|
||||
corners: vec![[0.0, 0.0, H], [L, 0.0, H], [L, T, H], [0.0, T, H]],
|
||||
shared: vec![false, true, true, false],
|
||||
name: "top",
|
||||
corners: [[-A, -A, A], [A, -A, A], [A, A, A], [-A, A, A]],
|
||||
shared,
|
||||
normal: [0.0, 0.0, 1.0],
|
||||
axes: [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]],
|
||||
tone: Tone::Top,
|
||||
},
|
||||
Face {
|
||||
name: "base top",
|
||||
corners: vec![[0.0, T, T], [L, T, T], [L, D, T], [0.0, D, T]],
|
||||
shared: vec![true, true, true, false],
|
||||
tone: Tone::Top,
|
||||
},
|
||||
Face {
|
||||
name: "wall front",
|
||||
corners: vec![[0.0, T, T], [L, T, T], [L, T, H], [0.0, T, H]],
|
||||
shared: vec![true, true, true, false],
|
||||
name: "left",
|
||||
corners: [[-A, A, -A], [A, A, -A], [A, A, A], [-A, A, A]],
|
||||
shared,
|
||||
normal: [0.0, 1.0, 0.0],
|
||||
axes: [[1.0, 0.0, 0.0], [0.0, 0.0, 1.0]],
|
||||
tone: Tone::Left,
|
||||
},
|
||||
Face {
|
||||
name: "base front",
|
||||
corners: vec![[0.0, D, 0.0], [L, D, 0.0], [L, D, T], [0.0, D, T]],
|
||||
shared: vec![false, true, true, false],
|
||||
tone: Tone::Left,
|
||||
},
|
||||
Face {
|
||||
name: "end",
|
||||
corners: vec![[L, 0.0, 0.0], [L, D, 0.0], [L, D, T], [L, T, T], [L, T, H], [L, 0.0, H]],
|
||||
shared: vec![false, true, true, true, true, false],
|
||||
name: "right",
|
||||
corners: [[A, -A, -A], [A, A, -A], [A, A, A], [A, -A, A]],
|
||||
shared,
|
||||
normal: [1.0, 0.0, 0.0],
|
||||
axes: [[0.0, 1.0, 0.0], [0.0, 0.0, 1.0]],
|
||||
tone: Tone::Right,
|
||||
},
|
||||
]
|
||||
@@ -278,31 +272,108 @@ fn ccw(poly: Vec<P2>) -> Vec<P2> {
|
||||
if signed_area(&poly) < 0.0 { poly.into_iter().rev().collect() } else { poly }
|
||||
}
|
||||
|
||||
/// A face's outline as path data, with its tone and its vertical extent on screen.
|
||||
struct Outline {
|
||||
name: &'static str,
|
||||
tone: Tone,
|
||||
d: String,
|
||||
top: f64,
|
||||
bottom: f64,
|
||||
/// A face's outline on screen, inset at the shared edges by half the gap, wound
|
||||
/// counter-clockwise (positive area).
|
||||
fn outline_d(face: &Face, detail: Detail) -> Result<String, String> {
|
||||
let screen: Vec<P2> = face.corners.iter().map(|&p| project(p)).collect();
|
||||
Ok(polyline(&ccw(inset(&screen, &face.shared, detail.gap() / 2.0)?), true))
|
||||
}
|
||||
|
||||
/// Each face's outline on screen, inset at the shared edges by half the gap, wound
|
||||
/// counter-clockwise (positive area); the base top carries the bolt hole wound the other way.
|
||||
fn face_outlines(detail: Detail) -> Result<Vec<Outline>, String> {
|
||||
let mut out = Vec::new();
|
||||
for f in faces() {
|
||||
let screen: Vec<P2> = f.corners.iter().map(|&p| project(p)).collect();
|
||||
let poly = ccw(inset(&screen, &f.shared, detail.gap() / 2.0)?);
|
||||
let (top, bottom) = poly.iter().fold((f64::MAX, f64::MIN), |(a, b), p| (a.min(p[1]), b.max(p[1])));
|
||||
let mut d = polyline(&poly, true);
|
||||
if f.name == "base top" {
|
||||
d.push(' ');
|
||||
d.push_str(&circle_d(HOLE, HOLE_R, T, false));
|
||||
}
|
||||
out.push(Outline { name: f.name, tone: f.tone, d, top, bottom });
|
||||
/// The fringe's band boundaries on a face: for each band radius that reaches the face's plane,
|
||||
/// the band's colour and the circle (centre, radius) where the sphere around the hot point cuts
|
||||
/// the plane, largest first.
|
||||
fn bands(face: &Face) -> Vec<(&'static str, P3, f64)> {
|
||||
let dist = dot3(add3(HOT, face.corners[0], -1.0), face.normal);
|
||||
let centre = add3(HOT, face.normal, -dist);
|
||||
BAND_RADII.iter().zip(&FRINGE[1..]).filter(|(r, _)| **r > dist.abs()).map(|(r, colour)| (*colour, centre, (r * r - dist * dist).sqrt())).collect()
|
||||
}
|
||||
|
||||
/// The hexahedral mesh's edges on the visible faces, as path data. The interior nodes are
|
||||
/// shared, so lines run on across the face boundaries as a real structured mesh would.
|
||||
fn mesh_d() -> String {
|
||||
let cs: Vec<f64> = (1..CELLS).map(|i| -A + 2.0 * A * i as f64 / CELLS as f64).collect();
|
||||
let mut segs: Vec<(P3, P3)> = Vec::new();
|
||||
for &c in &cs {
|
||||
// Top.
|
||||
segs.push(([c, -A, A], [c, A, A]));
|
||||
segs.push(([-A, c, A], [A, c, A]));
|
||||
// Left (y = A).
|
||||
segs.push(([c, A, -A], [c, A, A]));
|
||||
segs.push(([-A, A, c], [A, A, c]));
|
||||
// Right (x = A).
|
||||
segs.push(([A, c, -A], [A, c, A]));
|
||||
segs.push(([A, -A, c], [A, A, c]));
|
||||
}
|
||||
Ok(out)
|
||||
segs.iter().map(|&(a, b)| polyline(&[project(a), project(b)], false)).collect::<Vec<_>>().join(" ")
|
||||
}
|
||||
|
||||
/// A streamline: a swept curve around the cube's vertical axis at radius `r`, its height
|
||||
/// `z0 + tilt · sin(θ − 45°)`, from angle `from` to `to` (degrees, decreasing: the flow passes
|
||||
/// in front of the cube from screen left to right), `width` pixels at its widest.
|
||||
struct Stream {
|
||||
r: f64,
|
||||
z0: f64,
|
||||
tilt: f64,
|
||||
from: f64,
|
||||
to: f64,
|
||||
width: f64,
|
||||
}
|
||||
|
||||
const STREAMS: [Stream; 3] = [
|
||||
Stream { r: 0.86, z0: 0.34, tilt: 0.2, from: 195.0, to: -40.0, width: 15.0 },
|
||||
Stream { r: 0.98, z0: 0.0, tilt: 0.24, from: 215.0, to: -75.0, width: 19.0 },
|
||||
Stream { r: 0.88, z0: -0.33, tilt: 0.16, from: 160.0, to: -100.0, width: 15.0 },
|
||||
];
|
||||
|
||||
/// Samples along each streamline.
|
||||
const STREAM_SAMPLES: usize = 180;
|
||||
|
||||
/// A streamline's tapered outline, split into the runs behind the cube and in front of it: the
|
||||
/// filled shapes at half-width `w/2 + grow` (`grow` widens the halo). Returns (behind, in front).
|
||||
fn stream_runs(s: &Stream, width: f64, grow: f64) -> (Vec<String>, Vec<String>) {
|
||||
let n = STREAM_SAMPLES;
|
||||
let pts3: Vec<P3> = (0..=n)
|
||||
.map(|i| {
|
||||
let t = (s.from + (s.to - s.from) * i as f64 / n as f64).to_radians();
|
||||
[s.r * t.cos(), s.r * t.sin(), s.z0 + s.tilt * (t - PI / 4.0).sin()]
|
||||
})
|
||||
.collect();
|
||||
let pts: Vec<P2> = pts3.iter().map(|&p| project(p)).collect();
|
||||
let half: Vec<f64> = (0..=n).map(|i| width / 2.0 * (PI * i as f64 / n as f64).sin().powf(0.55) + grow).collect();
|
||||
let normal = |i: usize| {
|
||||
let (a, b) = (pts[i.saturating_sub(1)], pts[(i + 1).min(n)]);
|
||||
let v = sub(b, a);
|
||||
let len = v[0].hypot(v[1]).max(1e-9);
|
||||
[-v[1] / len, v[0] / len]
|
||||
};
|
||||
let shape = |lo: usize, hi: usize| {
|
||||
let mut poly = Vec::new();
|
||||
for i in lo..=hi {
|
||||
let m = normal(i);
|
||||
poly.push([pts[i][0] + m[0] * half[i], pts[i][1] + m[1] * half[i]]);
|
||||
}
|
||||
for i in (lo..=hi).rev() {
|
||||
let m = normal(i);
|
||||
poly.push([pts[i][0] - m[0] * half[i], pts[i][1] - m[1] * half[i]]);
|
||||
}
|
||||
polyline(&poly, true)
|
||||
};
|
||||
let front = |i: usize| pts3[i][0] + pts3[i][1] > 0.0;
|
||||
let (mut behind, mut ahead) = (Vec::new(), Vec::new());
|
||||
let mut lo = 0;
|
||||
for i in 1..=n {
|
||||
if i == n || front(i) != front(lo) {
|
||||
// Neighbouring runs share their boundary sample, so they meet without a seam.
|
||||
let hi = i;
|
||||
if front(lo) {
|
||||
ahead.push(shape(lo, hi))
|
||||
} else {
|
||||
behind.push(shape(lo, hi))
|
||||
}
|
||||
lo = i;
|
||||
}
|
||||
}
|
||||
(behind, ahead)
|
||||
}
|
||||
|
||||
/// Clip a segment to the axis-aligned square [lo, hi]² (Liang–Barsky).
|
||||
@@ -326,80 +397,13 @@ fn clip_to_square(a: P2, b: P2, lo: f64, hi: f64) -> Option<(P2, P2)> {
|
||||
(t0 < t1).then(|| ([a[0] + d[0] * t0, a[1] + d[1] * t0], [a[0] + d[0] * t1, a[1] + d[1] * t1]))
|
||||
}
|
||||
|
||||
/// The hexahedral mesh's edges on the visible faces, as path data. The interior nodes are
|
||||
/// shared, so lines run on across the face boundaries as a real structured mesh would.
|
||||
fn mesh_d() -> String {
|
||||
let (x0, x1) = (HOLE[0] - BLOCK, HOLE[0] + BLOCK);
|
||||
let xs: Vec<f64> = (0..=4).map(|i| x0 + (x1 - x0) * i as f64 / 4.0).collect();
|
||||
let ys: Vec<f64> = (1..4).map(|i| T + (D - T) * i as f64 / 4.0).collect();
|
||||
let zs: Vec<f64> = (1..4).map(|i| T + (H - T) * i as f64 / 4.0).collect();
|
||||
let mid = T / 2.0;
|
||||
let mut segs: Vec<(P3, P3)> = Vec::new();
|
||||
// Base top: the O-grid block's sides and the strips either side of it.
|
||||
for x in [x0, x1] {
|
||||
segs.push(([x, T, T], [x, D, T]));
|
||||
}
|
||||
for &y in &ys {
|
||||
segs.push(([0.0, y, T], [x0, y, T]));
|
||||
segs.push(([x1, y, T], [L, y, T]));
|
||||
}
|
||||
// Wall front and wall top.
|
||||
for &x in &xs {
|
||||
segs.push(([x, T, T], [x, T, H]));
|
||||
segs.push(([x, 0.0, H], [x, T, H]));
|
||||
}
|
||||
for &z in &zs {
|
||||
segs.push(([0.0, T, z], [L, T, z]));
|
||||
}
|
||||
segs.push(([0.0, mid, H], [L, mid, H]));
|
||||
// Base front.
|
||||
for &x in &xs {
|
||||
segs.push(([x, D, 0.0], [x, D, T]));
|
||||
}
|
||||
segs.push(([0.0, D, mid], [L, D, mid]));
|
||||
// End face (x = L), an L shape.
|
||||
segs.push(([L, mid, 0.0], [L, mid, H]));
|
||||
for &y in std::iter::once(&T).chain(&ys) {
|
||||
segs.push(([L, y, 0.0], [L, y, T]));
|
||||
}
|
||||
segs.push(([L, 0.0, mid], [L, D, mid]));
|
||||
segs.push(([L, 0.0, T], [L, T, T]));
|
||||
for &z in &zs {
|
||||
segs.push(([L, 0.0, z], [L, T, z]));
|
||||
}
|
||||
let mut parts: Vec<String> = segs.iter().map(|&(a, b)| polyline(&[project(a), project(b)], false)).collect();
|
||||
// O-grid around the hole: spokes from the block's boundary nodes to the hole, and one ring
|
||||
// halfway between the hole and the block's square.
|
||||
for i in -2_i32..=2 {
|
||||
for j in -2_i32..=2 {
|
||||
if i.abs() != 2 && j.abs() != 2 {
|
||||
continue;
|
||||
}
|
||||
let node = [HOLE[0] + BLOCK * i as f64 / 2.0, HOLE[1] + BLOCK * j as f64 / 2.0];
|
||||
let t = (j as f64).atan2(i as f64);
|
||||
let rim = [HOLE[0] + HOLE_R * t.cos(), HOLE[1] + HOLE_R * t.sin()];
|
||||
parts.push(polyline(&[project([rim[0], rim[1], T]), project([node[0], node[1], T])], false));
|
||||
}
|
||||
}
|
||||
let ring: Vec<P2> = (0..96)
|
||||
.map(|k| {
|
||||
let t = k as f64 * TAU / 96.0;
|
||||
let square = BLOCK / t.cos().abs().max(t.sin().abs());
|
||||
let r = HOLE_R + 0.5 * (square - HOLE_R);
|
||||
project([HOLE[0] + r * t.cos(), HOLE[1] + r * t.sin(), T])
|
||||
})
|
||||
.collect();
|
||||
parts.push(polyline(&ring, true));
|
||||
parts.join(" ")
|
||||
}
|
||||
|
||||
/// The floor grid on the ground plane under the part, clipped to the backdrop's square.
|
||||
/// The floor grid on the ground plane under the cube, clipped to the backdrop's square.
|
||||
fn floor_d() -> String {
|
||||
let step = 1.0 / 3.0;
|
||||
let step = 1.0 / 4.0;
|
||||
let mut parts = Vec::new();
|
||||
for k in -12..=15 {
|
||||
let c = k as f64 * step;
|
||||
for (a, b) in [([c, -6.0, 0.0], [c, 6.0, 0.0]), ([-6.0, c, 0.0], [6.0, c, 0.0])] {
|
||||
for k in -24..=24 {
|
||||
let c = A + k as f64 * step;
|
||||
for (a, b) in [([c, -8.0, -A], [c, 8.0, -A]), ([-8.0, c, -A], [8.0, c, -A])] {
|
||||
if let Some((p, q)) = clip_to_square(project(a), project(b), BACKDROP[0], BACKDROP[1]) {
|
||||
parts.push(polyline(&[p, q], false));
|
||||
}
|
||||
@@ -442,36 +446,77 @@ fn linear(stops: [&str; 2], top: f64, bottom: f64) -> Value {
|
||||
"start": [CANVAS / 2.0, top], "end": [CANVAS / 2.0, bottom]}})
|
||||
}
|
||||
|
||||
fn part_layer(detail: Detail) -> Result<Layer, String> {
|
||||
let mut shapes = Vec::new();
|
||||
for Outline { name, tone, d, top, bottom } in face_outlines(detail)? {
|
||||
let colours = match tone {
|
||||
Tone::Top => TOP,
|
||||
Tone::Left => LEFT,
|
||||
Tone::Right => RIGHT,
|
||||
};
|
||||
shapes.push(Shape::filled(name, d, linear(colours, top, bottom)));
|
||||
fn colour(c: &str) -> Value {
|
||||
json!({"color": c})
|
||||
}
|
||||
|
||||
/// One face of the cube: the coldest band filling it, the warmer bands as nested discs, and a
|
||||
/// translucent shade that sets the face's tone, all clipped to the face.
|
||||
fn face_layer(face: &Face, detail: Detail) -> Result<Layer, String> {
|
||||
let outline = outline_d(face, detail)?;
|
||||
let mut shapes = vec![Shape::filled(face.name, outline.clone(), colour(FRINGE[0]))];
|
||||
for (i, (c, centre, r)) in bands(face).into_iter().enumerate() {
|
||||
shapes.push(Shape::filled(&format!("{} band {}", face.name, i + 1), circle_d(centre, face.axes[0], face.axes[1], r), colour(c)));
|
||||
}
|
||||
let centre = project([HOLE[0], HOLE[1], T]);
|
||||
let half = HOLE_R * SCALE * 0.5_f64.sqrt();
|
||||
shapes.push(Shape::filled("bolt hole", circle_d(HOLE, HOLE_R, T, true), linear(BORE, centre[1] - half, centre[1] + half)));
|
||||
Ok(Layer { name: "Part", shapes, clip: None })
|
||||
let shade = match face.tone {
|
||||
Tone::Top => Some(("#ffffff", 0.1)),
|
||||
Tone::Left => Some(("#000000", 0.12)),
|
||||
Tone::Right => Some(("#000000", 0.3)),
|
||||
};
|
||||
if let Some((c, opacity)) = shade {
|
||||
let mut s = Shape::filled(&format!("{} shade", face.name), outline.clone(), colour(c));
|
||||
s.opacity = opacity;
|
||||
shapes.push(s);
|
||||
}
|
||||
let name = match face.tone {
|
||||
Tone::Top => "Top face",
|
||||
Tone::Left => "Left face",
|
||||
Tone::Right => "Right face",
|
||||
};
|
||||
Ok(Layer { name, shapes, clip: Some(outline) })
|
||||
}
|
||||
|
||||
fn part_layers(detail: Detail) -> Result<Vec<Layer>, String> {
|
||||
faces().iter().map(|f| face_layer(f, detail)).collect()
|
||||
}
|
||||
|
||||
fn mesh_layer() -> Result<Layer, String> {
|
||||
let clip = face_outlines(Detail::Full)?.into_iter().map(|o| o.d).collect::<Vec<_>>().join(" ");
|
||||
let stroke = Stroke { paint: json!({"color": "#ffffff"}), width: 4.5, cap: "butt" };
|
||||
Ok(Layer { name: "Mesh", shapes: vec![Shape::stroked("hexahedral mesh", mesh_d(), stroke, 0.5)], clip: Some(clip) })
|
||||
let clip = faces().iter().map(|f| outline_d(f, Detail::Full)).collect::<Result<Vec<_>, _>>()?.join(" ");
|
||||
let stroke = Stroke { paint: colour("#0b2236"), width: 3.5, cap: "butt" };
|
||||
Ok(Layer { name: "Mesh", shapes: vec![Shape::stroked("hexahedral mesh", mesh_d(), stroke, 0.45)], clip: Some(clip) })
|
||||
}
|
||||
|
||||
/// The streamlines' runs behind the cube (`front == false`) or in front of it.
|
||||
fn flow_layer(detail: Detail, front: bool) -> Layer {
|
||||
let streams: Vec<(&Stream, f64)> = match detail {
|
||||
Detail::Full => STREAMS.iter().map(|s| (s, s.width)).collect(),
|
||||
Detail::Small => vec![(&STREAMS[1], 48.0)],
|
||||
};
|
||||
let mut shapes = Vec::new();
|
||||
for (k, (s, width)) in streams.into_iter().enumerate() {
|
||||
let pick = |(behind, ahead): (Vec<String>, Vec<String>)| if front { ahead } else { behind };
|
||||
let halo = pick(stream_runs(s, width, width * 0.22)).join(" ");
|
||||
let core = pick(stream_runs(s, width, 0.0)).join(" ");
|
||||
if core.is_empty() {
|
||||
continue;
|
||||
}
|
||||
let mut h = Shape::filled(&format!("streamline {} halo", k + 1), halo, colour(FLOW_HALO));
|
||||
h.opacity = 0.4;
|
||||
shapes.push(h);
|
||||
shapes.push(Shape::filled(&format!("streamline {}", k + 1), core, colour(FLOW_CORE)));
|
||||
}
|
||||
Layer { name: if front { "Flow in front" } else { "Flow behind" }, shapes, clip: None }
|
||||
}
|
||||
|
||||
fn floor_layer(appearance: Appearance) -> Layer {
|
||||
let colour = match appearance {
|
||||
Appearance::Light => "#7fa8a2",
|
||||
Appearance::Dark => "#4f8a82",
|
||||
Appearance::Light => "#8aa0b4",
|
||||
Appearance::Dark => "#4f6a86",
|
||||
};
|
||||
let fade = [(0.0, 1.0), (0.3, 0.9), (0.65, 0.35), (1.0, 0.0)];
|
||||
let stops: Vec<Value> = fade.iter().map(|(o, a)| json!({"offset": o, "color": colour, "opacity": a})).collect();
|
||||
let paint = json!({"gradient": {"kind": "radial", "stops": stops, "start": [512.0, 720.0], "end": [1090.0, 720.0], "aspect": 50}});
|
||||
let floor = project([0.0, 0.0, -A]);
|
||||
let paint = json!({"gradient": {"kind": "radial", "stops": stops, "start": floor, "end": [floor[0] + 560.0, floor[1]], "aspect": 50}});
|
||||
let stroke = Stroke { paint, width: 3.0, cap: "butt" };
|
||||
// Clipped to the backdrop, so the flattened icon's grid stops at its rounded corners (Icon
|
||||
// Composer masks its own layers the same way).
|
||||
@@ -480,8 +525,8 @@ fn floor_layer(appearance: Appearance) -> Layer {
|
||||
|
||||
fn backdrop_layer(appearance: Appearance) -> Layer {
|
||||
let (colours, shadow) = match appearance {
|
||||
Appearance::Light => (["#fbfdfd", "#dbe5e4"], "#1d3b38"),
|
||||
Appearance::Dark => (["#2b3433", "#141a1a"], "#000000"),
|
||||
Appearance::Light => (["#fbfcfe", "#dce3ec"], "#1d2b3b"),
|
||||
Appearance::Dark => (["#2a303a", "#13171d"], "#000000"),
|
||||
};
|
||||
let mut shape = Shape::filled("backdrop", backdrop_d(), linear(colours, BACKDROP[0], BACKDROP[1]));
|
||||
shape.shadow = Some(json!({"mode": "multiply", "opacity": 22, "x": 0, "y": 10, "blur": 14, "color": shadow}));
|
||||
@@ -493,10 +538,12 @@ fn composite(detail: Detail, appearance: Appearance) -> Result<Doc, String> {
|
||||
if detail == Detail::Full {
|
||||
layers.push(floor_layer(appearance));
|
||||
}
|
||||
layers.push(part_layer(detail)?);
|
||||
layers.push(flow_layer(detail, false));
|
||||
layers.extend(part_layers(detail)?);
|
||||
if detail == Detail::Full {
|
||||
layers.push(mesh_layer()?);
|
||||
}
|
||||
layers.push(flow_layer(detail, true));
|
||||
let title = match (detail, appearance) {
|
||||
(Detail::Full, Appearance::Light) => "FieldCraft application icon",
|
||||
(Detail::Full, Appearance::Dark) => "FieldCraft application icon (dark preview)",
|
||||
@@ -599,13 +646,16 @@ fn icon_json() -> Value {
|
||||
"translucency": {"enabled": false, "value": 0.3}})
|
||||
};
|
||||
let position = json!({"scale": 0.9, "translation-in-points": [0, 0]});
|
||||
let plain = |file: &str| {
|
||||
json!({"image-name": format!("{file}.svg"), "name": file, "position": position,
|
||||
"glass-specializations": [{"appearance": "tinted", "value": true}]})
|
||||
};
|
||||
json!({
|
||||
"fill": "system-light",
|
||||
"groups": [
|
||||
group("03 Mesh", json!({"image-name": "03-mesh.svg", "name": "03-mesh", "position": position,
|
||||
"glass-specializations": [{"appearance": "tinted", "value": true}]}), false),
|
||||
group("02 Part", json!({"image-name": "02-part.svg", "name": "02-part", "position": position,
|
||||
"glass-specializations": [{"appearance": "tinted", "value": true}]}), true),
|
||||
group("04 Flow front", plain("04-flow-front"), false),
|
||||
group("03 Part", plain("03-part"), true),
|
||||
group("02 Flow behind", plain("02-flow-behind"), false),
|
||||
group("01 Floor", json!({"image-name-specializations": [{"value": "01-floor.svg"}, {"appearance": "dark", "value": "01-floor-dark.svg"}],
|
||||
"name": "01-floor", "fill": "none", "position": position,
|
||||
"glass-specializations": [{"value": false}, {"appearance": "tinted", "value": true}]}), false),
|
||||
@@ -637,12 +687,16 @@ pub fn run(root: &Path) -> Result<(), String> {
|
||||
vectorcraft(&composite(Detail::Small, Appearance::Dark)?, &work.join("icon-small-dark.vectorcraft"), &[work.join("icon-small-dark.png")])?;
|
||||
|
||||
// Icon Composer layers: the system supplies the backdrop.
|
||||
// Icon Composer allows four groups, so the mesh shares the cube's.
|
||||
let single = |title, layer| Doc { title, layers: vec![layer] };
|
||||
let mut part_with_mesh = part_layers(Detail::Full)?;
|
||||
part_with_mesh.push(mesh_layer()?);
|
||||
let layer_docs = [
|
||||
("01-floor", single("FieldCraft icon floor grid", floor_layer(Appearance::Light))),
|
||||
("01-floor-dark", single("FieldCraft icon floor grid (Dark)", floor_layer(Appearance::Dark))),
|
||||
("02-part", single("FieldCraft icon part", part_layer(Detail::Full)?)),
|
||||
("03-mesh", single("FieldCraft icon mesh", mesh_layer()?)),
|
||||
("02-flow-behind", single("FieldCraft icon flow behind the cube", flow_layer(Detail::Full, false))),
|
||||
("03-part", Doc { title: "FieldCraft icon cube", layers: part_with_mesh }),
|
||||
("04-flow-front", single("FieldCraft icon flow in front of the cube", flow_layer(Detail::Full, true))),
|
||||
];
|
||||
for (name, doc) in &layer_docs {
|
||||
vectorcraft(doc, &layers.join(format!("{name}.vectorcraft")), &[assets.join(format!("{name}.svg"))])?;
|
||||
@@ -717,21 +771,21 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn the_hole_winds_against_its_face() {
|
||||
for o in face_outlines(Detail::Full).unwrap() {
|
||||
assert!(o.d.starts_with('M') && o.d.contains('Z'), "{}: {}", o.name, o.d);
|
||||
fn every_face_shows_every_band_hottest_last() {
|
||||
for f in faces() {
|
||||
let b = bands(&f);
|
||||
assert_eq!(b.len(), BAND_RADII.len(), "{}", f.name);
|
||||
assert!(b.windows(2).all(|w| w[0].2 > w[1].2), "{}", f.name);
|
||||
assert_eq!(b.last().map(|x| x.0), Some(FRINGE[FRINGE.len() - 1]));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn streamlines_pass_behind_and_in_front() {
|
||||
for s in &STREAMS {
|
||||
let (behind, ahead) = stream_runs(s, s.width, 0.0);
|
||||
assert!(!behind.is_empty() && !ahead.is_empty());
|
||||
}
|
||||
let anchors = |d: &str| -> Vec<P2> {
|
||||
d.split('C')
|
||||
.skip(1)
|
||||
.map(|s| {
|
||||
let n: Vec<f64> = s.split_whitespace().filter_map(|x| x.trim_end_matches('Z').parse().ok()).collect();
|
||||
[n[4], n[5]]
|
||||
})
|
||||
.collect()
|
||||
};
|
||||
assert!(signed_area(&anchors(&circle_d(HOLE, HOLE_R, T, true))) > 0.0);
|
||||
assert!(signed_area(&anchors(&circle_d(HOLE, HOLE_R, T, false))) < 0.0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -746,8 +800,9 @@ mod tests {
|
||||
let steps = commands(&doc, Path::new("/tmp/icon.vectorcraft"));
|
||||
assert_eq!(steps.first().map(|s| s.0), Some("file.new"));
|
||||
assert_eq!(steps.last().map(|s| s.0), Some("document.save"));
|
||||
assert_eq!(steps.iter().filter(|s| s.0 == "layer.new").count(), 3);
|
||||
// The floor grid is clipped to the backdrop and the mesh to the faces.
|
||||
assert_eq!(steps.iter().filter(|s| s.0 == "layer.clippingMask.toggle").count(), 2);
|
||||
// Floor, flow behind, three faces, mesh, flow in front.
|
||||
assert_eq!(steps.iter().filter(|s| s.0 == "layer.new").count(), 7);
|
||||
// The floor grid is clipped to the backdrop, each face's fringe and the mesh to the faces.
|
||||
assert_eq!(steps.iter().filter(|s| s.0 == "layer.clippingMask.toggle").count(), 5);
|
||||
}
|
||||
}
|
||||