Files
create/icons/themed/Mesh_SegmentationBestFit.svg
forbes d7b532255b
Some checks failed
Build and Test / build (pull_request) Has been cancelled
feat(icons): add icon theming infrastructure with Catppuccin color remapping
- Remove hand-crafted kindred-icons/ in favor of auto-generated themed icons
- Add icons/mappings/ with FCAD.csv (Tango palette) and kindred.csv (Catppuccin Mocha)
- Add icons/retheme.py script to remap upstream FreeCAD SVG colors
- Generate icons/themed/ with 1,595 themed SVGs (45,300 color replacements)
- BitmapFactory loads icons/themed/ as highest priority before default icons
- 157-color mapping covers the full Tango palette, interpolating between
  4 luminance anchors per color family

Regenerate: python3 icons/retheme.py
2026-02-15 20:34:22 -06:00

353 lines
15 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="64px"
height="64px"
id="svg2784"
version="1.1">
<title
id="title3262">Mesh_Segmentation_Best_Fit</title>
<defs
id="defs2786">
<linearGradient
id="linearGradient992">
<stop
style="stop-color:#359b2e;stop-opacity:1"
offset="0"
id="stop988" />
<stop
style="stop-color:#a6e3a1;stop-opacity:1"
offset="1"
id="stop990" />
</linearGradient>
<linearGradient
id="linearGradient3935">
<stop
id="stop3937"
offset="0"
style="stop-color:#a6e3a1;stop-opacity:1;" />
<stop
style="stop-color:#359b2e;stop-opacity:1;"
offset="1"
id="stop3951" />
</linearGradient>
<linearGradient
id="linearGradient3919">
<stop
style="stop-color:#359b2e;stop-opacity:1;"
offset="0"
id="stop3921" />
<stop
style="stop-color:#a6e3a1;stop-opacity:1;"
offset="1"
id="stop3923" />
</linearGradient>
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#f9d791;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#f8ca69;stop-opacity:1;" />
</linearGradient>
<radialGradient
xlink:href="#linearGradient4391"
id="radialGradient3692"
cx="42.871357"
cy="28.42197"
fx="42.871357"
fy="28.42197"
r="19.467436"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.69820836,0.90688615,-0.80234164,0.6177199,36.829014,-29.491992)" />
<linearGradient
xlink:href="#linearGradient4391"
id="linearGradient4397"
x1="72.473869"
y1="98.785927"
x2="99.153984"
y2="100.78592"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient4391">
<stop
style="stop-color:#89da82;stop-opacity:1;"
offset="0"
id="stop4393" />
<stop
style="stop-color:#318e2a;stop-opacity:1;"
offset="1"
id="stop4395" />
</linearGradient>
<radialGradient
r="18.0625"
fy="41.625"
fx="25.1875"
cy="41.625"
cx="25.1875"
gradientTransform="matrix(1,0,0,0.32526,0,28.08607)"
gradientUnits="userSpaceOnUse"
id="radialGradient3060"
xlink:href="#linearGradient2269" />
<linearGradient
id="linearGradient2269">
<stop
offset="0"
id="stop2271"
style="stop-color:#11111b;stop-opacity:1;" />
<stop
offset="1"
id="stop2273"
style="stop-color:#11111b;stop-opacity:0;" />
</linearGradient>
<linearGradient
xlink:href="#linearGradient992"
id="linearGradient994"
x1="55.113289"
y1="48.923363"
x2="32.31292"
y2="61.018528"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.6677666,0,0,1.6677666,-15.21598,-47.013101)" />
<radialGradient
r="18.0625"
fy="41.625"
fx="25.1875"
cy="41.625"
cx="25.1875"
gradientTransform="matrix(1.652249,0,0,0.36678256,-9.1383502,41.933993)"
gradientUnits="userSpaceOnUse"
id="radialGradient3043"
xlink:href="#linearGradient2269" />
<linearGradient
gradientTransform="matrix(0,1.3936145,-1.4377298,0,107.28831,-27.752566)"
gradientUnits="userSpaceOnUse"
y2="61.018528"
x2="32.31292"
y1="48.923363"
x1="55.113289"
id="linearGradient994-7"
xlink:href="#linearGradient992" />
</defs>
<metadata
id="metadata2789">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Mesh_Segmentation_Best_Fit</dc:title>
<cc:license
rdf:resource="" />
<dc:date>05-07-2020</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>[bitacovir]</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier />
<dc:relation />
<dc:subject>
<rdf:Bag>
<rdf:li>mesh puzzle</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description />
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<path
style="fill:url(#linearGradient994-7);fill-opacity:1;stroke:none;stroke-width:1.96908;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 11.595602,24.626768 V 14.003164 h 15.414743 c -2.936799,-5.8600153 0.683838,-9.0591699 4.304267,-9.1339435 3.53229,-0.072958 7.064382,2.8281982 4.506011,9.1339375 l 15.334492,6e-6 0.585054,12.868717 C 34.387514,19.586821 34.893283,43.540235 51.155115,38.113154 l 0.585265,10.949692 -13.705055,5e-6 c 2.630327,5.868786 -2.98174,12.044107 -6.591852,12.060921 -3.676872,0.01712 -6.629614,-6.231481 -3.782161,-12.060919 l -15.334487,-7e-6 -0.731223,-7.517654 c 13.27014,-0.594873 23.059498,-15.398463 0,-16.918424 z"
id="path939-6" />
<ellipse
ry="6.625"
rx="29.843748"
cy="57.201294"
cx="32.477673"
style="color:#11111b;display:inline;overflow:visible;visibility:visible;opacity:0.267045;fill:url(#radialGradient3043);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36498;stroke-miterlimit:4;stroke-dasharray:none;marker:none"
id="path2267" />
<g
id="g1076"
style="stroke:#a6e3a1">
<path
id="path1002-0"
d="M 36.989997,32.044279 C 36.924371,28.11643 41.426417,20.318984 50.37183,23.749952"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<g
id="g1045"
style="stroke:#a6e3a1">
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 35.540779,16.979423 H 49.778183 V 25.01297"
id="path1019" />
<path
id="path1002"
d="m 31.981427,4.9962743 c 3.358087,0.016431 7.02494,3.5962077 2.598172,9.1058957"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 34.918842,13.684159 c -1.070225,1.164661 -0.425628,3.465351 1.70586,3.337145"
id="path1021" />
</g>
</g>
<g
id="g1076-9"
transform="matrix(-1,0,0,1,63.962854,0)"
style="stroke:#a6e3a1">
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 36.989997,32.044279 C 36.924371,28.11643 41.426417,20.318984 50.37183,23.749952"
id="path1002-0-0" />
<g
id="g1045-5"
style="stroke:#a6e3a1">
<path
id="path1019-4"
d="M 35.540779,16.979423 H 49.778183 V 25.01297"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 31.981427,4.9962743 c 3.358087,0.016431 7.02494,3.5962077 2.598172,9.1058957"
id="path1002-7" />
<path
id="path1021-2"
d="m 34.918842,13.684159 c -1.070225,1.164661 -0.425628,3.465351 1.70586,3.337145"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
<g
id="g1076-0"
transform="matrix(1,0,0,-1,0,64.088558)"
style="stroke:#a6e3a1">
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 36.989997,32.044279 C 36.924371,28.11643 41.426417,20.318984 50.37183,23.749952"
id="path1002-0-7" />
<g
id="g1045-4"
style="stroke:#a6e3a1">
<path
id="path1019-0"
d="M 35.540779,16.979423 H 49.778183 V 25.01297"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 31.981427,4.9962743 c 3.358087,0.016431 7.02494,3.5962077 2.598172,9.1058957"
id="path1002-9" />
<path
id="path1021-8"
d="m 34.918842,13.684159 c -1.070225,1.164661 -0.425628,3.465351 1.70586,3.337145"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
<g
id="g1076-4"
transform="rotate(180,31.981427,32.044279)"
style="stroke:#a6e3a1">
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 36.989997,32.044279 C 36.924371,28.11643 41.426417,20.318984 50.37183,23.749952"
id="path1002-0-4" />
<g
id="g1045-6"
style="stroke:#a6e3a1">
<path
id="path1019-40"
d="M 35.540779,16.979423 H 49.778183 V 25.01297"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 31.981427,4.9962743 c 3.358087,0.016431 7.02494,3.5962077 2.598172,9.1058957"
id="path1002-96" />
<path
id="path1021-7"
d="m 34.918842,13.684159 c -1.070225,1.164661 -0.425628,3.465351 1.70586,3.337145"
style="fill:none;stroke:#a6e3a1;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
<path
id="path948-5"
style="fill:none;fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 32.033602,2.9841088 C 27.723004,2.8150631 22.302292,7.8125174 27.661524,15.045123 l -15.334488,7e-6 v 11.826751 c 6.95017,-5.300119 12.750656,0.70187 12.710066,5.20564" />
<path
d="m 32.033603,2.9841088 c 4.257867,0.09461 9.73131,4.8284082 4.372078,12.0610142 l 15.334488,7e-6 v 11.826751 c -6.95017,-5.300119 -12.750656,0.70187 -12.710066,5.205639"
style="fill:none;fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path948" />
<path
id="path948-0"
style="fill:none;fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 32.033814,61.123867 c 4.363872,0 9.73131,-4.828409 4.372079,-12.061015 l 15.334487,-6e-6 V 37.236095 c -6.95017,5.300119 -12.750656,-0.70187 -12.710066,-5.20564" />
<path
d="m 32.033391,61.123868 c -4.363329,0.248138 -9.73131,-4.828409 -4.372079,-12.061015 l -15.334487,-7e-6 v -11.82675 c 6.95017,5.300119 12.750656,-0.701871 12.710066,-5.205641"
style="fill:none;fill-opacity:1;stroke:#1c5017;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path948-0-3" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 12.326825,49.062846 19.628237,-6.66702 19.785318,6.66702"
id="path1538" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 27.661312,49.062853 4.29375,-6.667027 4.450831,6.667026"
id="path1542" />
<path
id="path1538-0"
d="m 51.740169,15.04513 -19.686198,6.9357 -19.726935,-6.9357"
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path1542-5"
d="M 36.405681,15.045123 32.053972,21.98083 27.661524,15.045123"
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 32.053972,21.98083 -0.09891,20.414996"
id="path1565" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 32.060525,31.955063 44.536487,24.905834"
id="path1567" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 32.060525,31.955063 19.183437,24.777616"
id="path1571" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 44.806008,39.373889 32.060525,31.955063 20.068017,39.150503"
id="path1569" />
<path
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 46.305057,39.310995 31.955062,42.395826 17.762147,39.310996"
id="path1540" />
<path
id="path1540-7"
d="M 17.762359,24.796981 32.053972,21.98083 46.304846,24.796981"
style="fill:none;stroke:#1c5017;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>