clean up directories

master
howard 2021-04-19 18:31:32 -07:00
parent 5e52265a3b
commit fec6a75aeb
31 changed files with 42 additions and 691 deletions

View File

@ -4,7 +4,7 @@ import {
Quaternion,
Vector2,
Vector3
} from '../node_modules/three/src/Three';
} from 'three/src/Three';
var TrackballControls = function ( object, domElement ) {

26
https/rootCA.pem Normal file
View File

@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEbjCCAtagAwIBAgIRAKm5AjBIhGb5Ln0os/kCDC4wDQYJKoZIhvcNAQELBQAw
TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlob3dh
cmRAaHAxGTAXBgNVBAMMEG1rY2VydCBob3dhcmRAaHAwHhcNMjEwNDE4MDYxNTM5
WhcNMzEwNDE4MDYxNTM5WjBPMR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQg
Q0ExEjAQBgNVBAsMCWhvd2FyZEBocDEZMBcGA1UEAwwQbWtjZXJ0IGhvd2FyZEBo
cDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKhLnt2Krsa5m+NqqjjX
J5SF9Nm0SGWI89g6nRiJVc2guKFZDXiV0xDz9SFj8Md5ZlX71MtO/3ACx67/VgN4
As5+yFDEl6ulvesjZR81Xu2aGnR602SmL8Y3Q6sZUTvB3qgjQJExmEzv7ypo6PNX
Uh8Hj1/7qviHsGE8nYn7jfiy8eSnwq57p67UCFKvahBmUMEMHythcXq/zcWUJ5Dw
qjiQJNLUFcIN3Hl7J8QNtskds1Zt+N9TLS8my+cE91JG8T1JnwOn/zWJ1cnTEdls
yQIfbb2/INlkyuTvPkJHKggCrDzmVCxhLpD2aFQ2Qu8RtjmbNN/B7YEUJP8SLrv7
lWUV7Ic5HQmS+/q27TXOm4z8HWX1GlCzoaj5VyLaPZf62eRIBunGXcvp1GcXLbiy
GCo6+Tz7RiwBX3DpH70Rz8pbz9R/LOPLa2uhlB+r7oCxpqTWrl96l+gxohfnntti
adE5cZDS8/0ITgjXcPAezNHELlJYJSuIewOVzEOr9BYpOQIDAQABo0UwQzAOBgNV
HQ8BAf8EBAMCAgQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU1LipvY+p
DhxjE8UP8QpCiAfmI3kwDQYJKoZIhvcNAQELBQADggGBAAUDatXb+z8Fb9hz8CHX
CNrHXlppy6/gQvVdQ02SkFVCOqemVCdZPUCM3jAUciXZJapHQNiTam8lTi6muC9m
fHYv1xBXoWc/S7Y8BOpce1R76QEMwEHfqNetquAlFgLmmTuESXMUi1eJJobvS2zS
QLqYfx8AUkZPqDHQnJ5ZVBYqKPFTN9NKg0iR/UHJSt3tUOMyVnkx5lMRZFrUEue1
l+twzi0+Lhx11Sjx69kDd8qtGYvedcxKacR722LdiR8/YoHFoa3va/CBmLFH63oJ
k+10wNhm7eiubOaBvVit+uORS2ur26/1vFF72TLFTtXCF3mDG8P/6HB0fPzXRliI
cXdoO5+955KS6p+ZmjoMY37NNsnIZ0q3Zd6gj3I+dvhnW1XysDCEWsAiI0BQqC9d
AeZ3LqBbHIyJBantXQqpmAq9+vrYe/oUq0pwhC4cMwpAwE5pvGZgN0nt6acwrr5i
dLW6a1E571sfFFj2zC20kjwL3Sg9E2jSbMFOIiJopdT39Q==
-----END CERTIFICATE-----

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -1,124 +0,0 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="452.45901"
height="96"
viewBox="0 0 452.45901 96.000008"
version="1.1"
id="svg2112"
inkscape:version="1.0.2 (1.0.2+r75+1)"
sodipodi:docname="icon_text.svg">
<defs
id="defs2106">
<rect
x="645.90955"
y="45.977581"
width="248.2307"
height="71.300766"
id="rect943" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.53561479"
inkscape:cx="-4.052236"
inkscape:cy="331.25679"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1747"
inkscape:window-height="1199"
inkscape:window-x="241"
inkscape:window-y="125"
inkscape:window-maximized="0"
units="px" />
<metadata
id="metadata2109">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
aria-label="three.cad"
transform="matrix(1.8120726,0,0,1.8120726,-1064.5195,-78.240227)"
id="text941"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect943);fill:#000000;fill-opacity:1;stroke:none">
<path
d="m 655.63016,64.726208 h 7.84 v 2.76 h -7.84 v 8.64 q 0,1.4 0.2,2.28 0.2,0.88 0.64,1.44 0.48,0.52 1.2,0.72 0.72,0.2 1.76,0.2 1.44,0 2.32,-0.24 0.88,-0.24 1.68,-0.64 l 0.48,2.8 q -0.56,0.24 -1.8,0.64 -1.2,0.4 -3,0.4 -2.08,0 -3.4,-0.48 -1.32,-0.48 -2.08,-1.44 -0.72,-0.96 -1,-2.36 -0.28,-1.44 -0.28,-3.32 v -8.64 h -3.92 v -2.76 h 3.92 v -5.2 l 3.28,-0.56 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path842" />
<path
d="m 668.75008,83.286208 v -27.16 l 3.32,-0.56 v 9.44 q 0.8,-0.32 1.8,-0.48 1,-0.2 1.96,-0.2 2.12,0 3.52,0.64 1.44,0.6 2.28,1.72 0.84,1.12 1.2,2.68 0.36,1.56 0.36,3.44 v 10.48 h -3.28 v -9.76 q 0,-3.44 -0.96,-4.84 -0.96,-1.44 -3.44,-1.44 -1.04,0 -2.04,0.24 -0.96,0.2 -1.4,0.4 v 15.4 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path844" />
<path
d="m 690.19,83.286208 v -17.56 q 4.08,-1.4 8.24,-1.4 1.28,0 2.44,0.12 1.16,0.08 2.56,0.4 l -0.6,2.92 q -1.28,-0.36 -2.28,-0.44 -0.96,-0.12 -2.12,-0.12 -2.44,0 -4.96,0.68 v 15.4 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path846" />
<path
d="m 716.26993,64.286208 q 3.76,0 5.8,2.36 2.04,2.32 2.04,7.08 v 1.16 h -13.28 q 0.2,2.88 1.88,4.4 1.72,1.48 4.8,1.48 1.76,0 3,-0.28 1.24,-0.28 1.88,-0.6 l 0.44,2.8 q -0.6,0.32 -2.16,0.68 -1.56,0.36 -3.52,0.36 -2.4,0 -4.24,-0.72 -1.8,-0.76 -3,-2.04 -1.2,-1.28 -1.8,-3.04 -0.6,-1.8 -0.6,-3.88 0,-2.48 0.76,-4.32 0.76,-1.84 2,-3.04 1.24,-1.2 2.8,-1.8 1.56,-0.6 3.2,-0.6 z m 4.48,7.92 q 0,-2.36 -1.24,-3.72 -1.24,-1.4 -3.28,-1.4 -1.16,0 -2.12,0.44 -0.92,0.44 -1.6,1.16 -0.68,0.72 -1.08,1.64 -0.4,0.92 -0.52,1.88 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path848" />
<path
d="m 736.26985,64.286208 q 3.76,0 5.8,2.36 2.04,2.32 2.04,7.08 v 1.16 h -13.28 q 0.2,2.88 1.88,4.4 1.72,1.48 4.8,1.48 1.76,0 3,-0.28 1.24,-0.28 1.88,-0.6 l 0.44,2.8 q -0.6,0.32 -2.16,0.68 -1.56,0.36 -3.52,0.36 -2.4,0 -4.24,-0.72 -1.8,-0.76 -3,-2.04 -1.2,-1.28 -1.8,-3.04 -0.6,-1.8 -0.6,-3.88 0,-2.48 0.76,-4.32 0.76,-1.84 2,-3.04 1.24,-1.2 2.8,-1.8 1.56,-0.6 3.2,-0.6 z m 4.48,7.92 q 0,-2.36 -1.24,-3.72 -1.24,-1.4 -3.28,-1.4 -1.16,0 -2.12,0.44 -0.92,0.44 -1.6,1.16 -0.68,0.72 -1.08,1.64 -0.4,0.92 -0.52,1.88 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path850" />
<path
d="m 758.86977,80.726208 q 0,1.2 -0.8,2.12 -0.8,0.92 -2.12,0.92 -1.36,0 -2.16,-0.92 -0.8,-0.92 -0.8,-2.12 0,-1.24 0.8,-2.16 0.8,-0.92 2.16,-0.92 1.32,0 2.12,0.92 0.8,0.92 0.8,2.16 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path852" />
<path
d="m 767.8697,74.046208 q 0,-2.52 0.8,-4.36 0.8,-1.84 2.2,-3.04 1.4,-1.2 3.24,-1.76 1.88,-0.6 4,-0.6 1.36,0 2.68,0.2 1.36,0.16 2.88,0.64 l -0.76,2.84 q -1.32,-0.48 -2.44,-0.6 -1.08,-0.16 -2.2,-0.16 -1.44,0 -2.72,0.4 -1.28,0.36 -2.24,1.2 -0.92,0.8 -1.48,2.12 -0.56,1.28 -0.56,3.12 0,1.76 0.52,3.04 0.52,1.24 1.44,2.08 0.96,0.8 2.28,1.2 1.32,0.4 2.92,0.4 1.28,0 2.44,-0.12 1.2,-0.16 2.6,-0.64 l 0.48,2.76 q -1.4,0.52 -2.84,0.72 -1.44,0.24 -3.12,0.24 -2.24,0 -4.12,-0.6 -1.84,-0.64 -3.2,-1.84 -1.32,-1.2 -2.08,-3 -0.72,-1.84 -0.72,-4.24 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path854" />
<path
d="m 796.10962,80.926208 q 1.24,0 2.2,-0.08 1,-0.08 1.64,-0.2 v -5.52 q -0.64,-0.2 -1.56,-0.32 -0.88,-0.12 -1.88,-0.12 -0.92,0 -1.8,0.16 -0.88,0.12 -1.56,0.48 -0.68,0.36 -1.12,0.96 -0.44,0.56 -0.44,1.44 0,1.8 1.2,2.52 1.24,0.68 3.32,0.68 z m -0.32,-16.64 q 2.08,0 3.48,0.52 1.44,0.52 2.32,1.44 0.88,0.92 1.24,2.24 0.36,1.32 0.36,2.88 v 11.6 q -1.16,0.2 -3.08,0.48 -1.88,0.28 -3.88,0.28 -1.52,0 -2.96,-0.28 -1.44,-0.24 -2.56,-0.88 -1.12,-0.68 -1.8,-1.84 -0.68,-1.16 -0.68,-2.96 0,-1.6 0.68,-2.68 0.72,-1.12 1.8,-1.8 1.12,-0.68 2.52,-0.96 1.44,-0.32 2.88,-0.32 1.96,0 3.84,0.44 v -0.92 q 0,-0.84 -0.2,-1.6 -0.16,-0.8 -0.68,-1.44 -0.48,-0.64 -1.36,-1 -0.84,-0.4 -2.2,-0.4 -1.72,0 -3,0.24 -1.28,0.24 -1.96,0.48 l -0.4,-2.72 q 0.68,-0.32 2.24,-0.56 1.6,-0.24 3.4,-0.24 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path856" />
<path
d="m 819.74955,68.646208 q -0.56,-0.52 -1.64,-0.96 -1.08,-0.48 -2.24,-0.48 -1.32,0 -2.28,0.52 -0.92,0.52 -1.52,1.44 -0.6,0.88 -0.88,2.16 -0.28,1.24 -0.28,2.68 0,3.24 1.52,5 1.52,1.76 3.96,1.76 1.24,0 2.08,-0.12 0.88,-0.12 1.28,-0.24 z m 0,-12.52 3.32,-0.56 v 27.2 q -1.08,0.32 -2.76,0.64 -1.68,0.32 -3.92,0.32 -2,0 -3.64,-0.68 -1.64,-0.68 -2.8,-1.92 -1.16,-1.28 -1.8,-3.08 -0.64,-1.8 -0.64,-4.04 0,-2.16 0.52,-3.92 0.56,-1.8 1.6,-3.08 1.04,-1.28 2.48,-2 1.48,-0.72 3.36,-0.72 1.48,0 2.6,0.36 1.12,0.36 1.68,0.76 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Ubuntu Mono';-inkscape-font-specification:'Ubuntu Mono'"
id="path858" />
</g>
<g
id="g921"
transform="matrix(0.16834106,0,0,0.16834106,18.949768,14.727969)">
<path
style="fill:#34d399;fill-opacity:0.698039;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 51.316614,84.370759 164.499996,-95.000008 164.5,95.000008 -164.5,95.000041 z"
id="path2578"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#34d399;fill-opacity:0.698039;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 401.16781,121 0.0224,189.96118 -164.52241,94.96118 -0.0224,-189.96118 z"
id="path2578-3"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#34d399;fill-opacity:0.698039;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 194.52241,405.92236 30,310.96118 30.022413,121 194.54483,215.96118 Z"
id="path2578-6"
sodipodi:nodetypes="ccccc" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -1,73 +0,0 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
fill="currentColor"
class="bi bi-intersect"
viewBox="0 0 16 16"
version="1.1"
id="svg4"
sodipodi:docname="intersect_thin.svg"
inkscape:version="1.0.2 (1.0.2+r75+1)">
<metadata
id="metadata10">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1403"
id="namedview6"
showgrid="false"
inkscape:zoom="63.096953"
inkscape:cx="12.195007"
inkscape:cy="4.8433756"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4"
inkscape:document-rotation="0" />
<path
style="fill:#000000;fill-opacity:0.7;stroke:none;stroke-width:1.36009;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 5.1107682,5.0924028 c -0.021633,0.1942283 -0.059281,0.3835491 -0.059281,0.5836927 0,2.9081944 2.3450392,5.2532345 5.2532328,5.2532345 0.200144,0 0.389465,-0.03765 0.583694,-0.05928 V 5.6760955 c 0,-0.3334621 -0.250231,-0.5836927 -0.583694,-0.5836927 z"
id="path958" />
<rect
style="fill:none;fill-opacity:0.697106;stroke:#000000;stroke-width:0.6;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="10"
height="10"
x="1"
y="5"
rx="1"
ry="1" />
<circle
style="fill:none;fill-opacity:0.697106;stroke:#000000;stroke-width:0.6;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path835"
cx="10"
cy="6"
r="5" />
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,81 +0,0 @@
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
fill="currentColor"
class="bi bi-intersect"
viewBox="0 0 16 16"
version="1.1"
id="svg4"
sodipodi:docname="union_thin.svg"
inkscape:version="1.0.2 (1.0.2+r75+1)">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1514"
inkscape:window-height="1169"
id="namedview6"
showgrid="false"
inkscape:zoom="30.162102"
inkscape:cx="3.4385179"
inkscape:cy="3.8467787"
inkscape:window-x="280"
inkscape:window-y="90"
inkscape:window-maximized="0"
inkscape:current-layer="svg4"
inkscape:document-rotation="0" />
<path
style="fill:#000000;fill-opacity:0.7;stroke:none;stroke-width:1.24744;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M 5.382896,5.3299006 C 5.3630551,5.5080423 5.3285246,5.681683 5.3285246,5.86525 c 0,2.6673286 2.1508156,4.818144 4.8181444,4.818144 0.183567,0 0.357207,-0.03453 0.535349,-0.05437 V 5.86525 c 0,-0.3058436 -0.229505,-0.5353494 -0.535349,-0.5353494 z"
id="path958" />
<path
style="fill:#000000;fill-opacity:0.7;stroke:none;stroke-width:1.26153;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 1.8992563,4.8989629 c -0.3092992,0 -0.541398,0.2320989 -0.541398,0.5413981 v 8.662369 c 0,0.309301 0.2320988,0.541399 0.541398,0.541399 h 8.6623697 c 0.309301,0 0.541399,-0.232098 0.541399,-0.541399 v -2.734483 c -0.178843,0.01625 -0.358408,0.0275 -0.541399,0.0275 -3.2826524,0 -5.9553792,-2.6727275 -5.9553792,-5.9553799 0,-0.1829908 0.01124,-0.3625553 0.027494,-0.5413981 z"
id="path956" />
<path
style="fill:#000000;fill-opacity:0.7;stroke:none;stroke-width:1.25561;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 9.8153527,1.31679 c -2.1143158,0 -3.8868797,1.3513239 -4.5529312,3.2331494 h 4.5529312 c 0.8862613,0 1.6165743,0.7303132 1.6165743,1.6165748 v 4.5529298 c 1.881825,-0.66605 3.233149,-2.438614 3.233149,-4.5529298 0,-2.6848113 -2.164913,-4.8497242 -4.8497233,-4.8497242 z"
id="path954" />
<rect
style="fill:none;fill-opacity:0.697106;stroke:#000000;stroke-width:0.9;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="10"
height="10"
x="1"
y="5"
rx="1"
ry="1" />
<circle
style="fill:none;fill-opacity:0.697106;stroke:#000000;stroke-width:0.9;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path835"
cx="10"
cy="6"
r="5" />
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -3,18 +3,18 @@ import * as THREE from '../node_modules/three/src/Three';
import { Sketch } from './Sketch'
import { extrude, flipBufferGeometryNormals } from './extrude'
import { onHover, onPick, clearSelection } from './mouseEvents';
import { _vec2, _vec3, color, awaitSelection, ptObj, setHover } from './shared'
import { _vec2, _vec3, color, awaitSelection, setHover } from './shared'
import { AxesHelper } from './axes'
import { TrackballControls } from '../lib/trackball'
import CSG from "../lib/three-csg"
import { STLExporter } from '../lib/stl'
import { TrackballControls } from '../extlib/trackball'
import CSG from "../extlib/three-csg"
import { STLExporter } from '../extlib/stl'
let stats
if (process.env.NODE_ENV !== 'production') {
const { default: d } = require('../lib/stats.module.js')
const { default: d } = require('../extlib/stats.module.js')
stats = new d();
document.getElementById('stats').appendChild(stats.dom);
}

View File

@ -1,3 +1,5 @@
// https://web.dev/file-system-access/
const link = document.createElement('a');
link.style.display = 'none';
document.body.appendChild(link);

View File

@ -194,62 +194,6 @@ function Extrude(props) {
);
}
function Extrude_master(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 512 512"
{...props}
>
<path
style={{
lineHeight: "normal",
fontVariantLigatures: "normal",
fontVariantPosition: "normal",
fontVariantCaps: "normal",
fontVariantNumeric: "normal",
fontVariantAlternates: "normal",
fontVariantEastAsian: "normal",
fontFeatureSettings: "normal",
fontVariationSettings: "normal",
textIndent: 0,
textAlign: "start",
textDecorationLine: "none",
textDecorationStyle: "solid",
textDecorationColor: "#000",
textTransform: "none",
textOrientation: "mixed",
whiteSpace: "normal",
shapePadding: 0,
shapeMargin: 0,
inlineSize: 0,
isolation: "auto",
mixBlendMode: "normal",
solidColor: "#000",
solidOpacity: 1,
}}
d="M256 0L144 144h64v240h96V144.802l64-1.604z"
color="currentColor"
fontWeight={400}
fontFamily="sans-serif"
overflow="visible"
fillRule="evenodd"
/>
<path
d="M256 288L16 384l240 112 240-112z"
fill="none"
stroke="currentColor"
strokeWidth={32}
strokeLinecap="round"
strokeLinejoin="round"
/>
<path d="M176 223.932h160v158.285H176z" />
</svg>
);
}
function Flip(props) {
return (
<svg
@ -289,40 +233,6 @@ function Horizontal(props) {
);
}
function Icon_text(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 452.459 96"
{...props}
>
<defs>
<path id="prefix__a" d="M645.91 45.978h248.231v71.301H645.91z" />
</defs>
<g
aria-label="three.cad"
fontWeight={400}
fontSize={40}
fontFamily="Ubuntu Mono"
letterSpacing={0}
wordSpacing={0}
>
<path
d="M123.53 39.048h14.207v5.002H123.53v15.656q0 2.537.362 4.132.363 1.594 1.16 2.609.87.942 2.175 1.305 1.304.362 3.189.362 2.61 0 4.204-.435 1.594-.435 3.044-1.16l.87 5.074q-1.015.435-3.262 1.16-2.174.725-5.436.725-3.77 0-6.161-.87-2.392-.87-3.77-2.61-1.304-1.739-1.811-4.276-.508-2.61-.508-6.016V44.05h-7.103v-5.002h7.103v-9.422l5.944-1.015zM147.304 72.68V23.465l6.016-1.015v17.106q1.45-.58 3.262-.87 1.812-.362 3.552-.362 3.841 0 6.378 1.16 2.61 1.087 4.132 3.116 1.522 2.03 2.174 4.856.653 2.827.653 6.234v18.99h-5.944V54.995q0-6.234-1.74-8.77-1.74-2.61-6.233-2.61-1.885 0-3.697.435-1.74.362-2.537.725V72.68zM186.155 72.68V40.86q7.393-2.536 14.931-2.536 2.32 0 4.422.217 2.102.145 4.639.725l-1.088 5.291q-2.319-.652-4.131-.797-1.74-.218-3.842-.218-4.421 0-8.988 1.233V72.68zM233.414 38.251q6.813 0 10.51 4.277 3.696 4.204 3.696 12.829v2.102h-24.064q.362 5.219 3.407 7.973 3.116 2.682 8.698 2.682 3.189 0 5.436-.507 2.247-.508 3.406-1.088l.798 5.074q-1.087.58-3.914 1.232-2.827.653-6.379.653-4.349 0-7.683-1.305-3.262-1.377-5.436-3.697-2.175-2.319-3.262-5.508-1.087-3.262-1.087-7.031 0-4.494 1.377-7.828 1.377-3.334 3.624-5.509 2.247-2.174 5.074-3.262 2.827-1.087 5.799-1.087zm8.118 14.352q0-4.277-2.247-6.741-2.247-2.537-5.944-2.537-2.102 0-3.841.797-1.668.797-2.9 2.102-1.232 1.305-1.957 2.972-.725 1.667-.942 3.407zM269.655 38.251q6.813 0 10.51 4.277 3.697 4.204 3.697 12.829v2.102h-24.065q.363 5.219 3.407 7.973 3.117 2.682 8.698 2.682 3.19 0 5.436-.507 2.247-.508 3.407-1.088l.797 5.074q-1.087.58-3.914 1.232-2.827.653-6.378.653-4.35 0-7.684-1.305-3.261-1.377-5.436-3.697-2.174-2.319-3.262-5.508-1.087-3.262-1.087-7.031 0-4.494 1.377-7.828 1.378-3.334 3.624-5.509 2.247-2.174 5.074-3.262 2.827-1.087 5.799-1.087zm8.118 14.352q0-4.277-2.247-6.741-2.247-2.537-5.944-2.537-2.102 0-3.841.797-1.667.797-2.9 2.102-1.232 1.305-1.957 2.972-.724 1.667-.942 3.407zM310.608 68.042q0 2.174-1.45 3.841-1.45 1.667-3.842 1.667-2.464 0-3.914-1.667-1.45-1.667-1.45-3.841 0-2.247 1.45-3.915 1.45-1.667 3.914-1.667 2.392 0 3.842 1.667 1.45 1.668 1.45 3.915zM326.916 55.937q0-4.567 1.45-7.9 1.45-3.335 3.986-5.51 2.537-2.174 5.871-3.189 3.407-1.087 7.249-1.087 2.464 0 4.856.362 2.465.29 5.219 1.16l-1.377 5.146q-2.392-.87-4.422-1.087-1.957-.29-3.986-.29-2.61 0-4.93.725-2.319.652-4.058 2.175-1.667 1.45-2.682 3.841-1.015 2.32-1.015 5.654 0 3.19.942 5.509.943 2.247 2.61 3.769 1.74 1.45 4.131 2.174 2.392.725 5.292.725 2.32 0 4.421-.217 2.175-.29 4.711-1.16l.87 5.001q-2.537.942-5.146 1.305-2.61.435-5.654.435-4.059 0-7.465-1.088-3.335-1.16-5.8-3.334-2.391-2.174-3.768-5.436-1.305-3.334-1.305-7.683zM378.089 68.404q2.247 0 3.986-.145 1.813-.145 2.972-.362V57.894q-1.16-.362-2.827-.58-1.594-.217-3.406-.217-1.667 0-3.262.29-1.595.217-2.827.87-1.232.652-2.03 1.739-.797 1.015-.797 2.61 0 3.261 2.175 4.566 2.247 1.232 6.016 1.232zm-.58-30.153q3.77 0 6.306.942 2.61.943 4.204 2.61 1.595 1.667 2.247 4.059.652 2.392.652 5.219V72.1q-2.102.362-5.58.87-3.407.507-7.032.507-2.754 0-5.363-.508-2.61-.435-4.64-1.594-2.029-1.232-3.261-3.334-1.232-2.102-1.232-5.364 0-2.9 1.232-4.857 1.305-2.03 3.262-3.261 2.03-1.233 4.566-1.74 2.61-.58 5.219-.58 3.552 0 6.958.798V51.37q0-1.522-.362-2.899-.29-1.45-1.232-2.61-.87-1.159-2.465-1.811-1.522-.725-3.986-.725-3.117 0-5.437.435-2.319.435-3.551.87l-.725-4.93q1.232-.58 4.059-1.014 2.9-.435 6.161-.435zM420.926 46.152q-1.015-.943-2.972-1.74-1.957-.87-4.059-.87-2.392 0-4.131.943-1.667.942-2.755 2.609-1.087 1.595-1.594 3.914-.508 2.247-.508 4.856 0 5.872 2.755 9.06 2.754 3.19 7.176 3.19 2.247 0 3.769-.217 1.594-.218 2.32-.435zm0-22.687l6.016-1.015v49.288q-1.957.58-5.001 1.16-3.044.58-7.103.58-3.625 0-6.596-1.232-2.972-1.233-5.074-3.48-2.102-2.32-3.262-5.58-1.16-3.263-1.16-7.322 0-3.914.943-7.103 1.014-3.262 2.899-5.581 1.885-2.32 4.494-3.624 2.682-1.305 6.089-1.305 2.681 0 4.71.652 2.03.653 3.045 1.378z"
style={{
InkscapeFontSpecification: "'Ubuntu Mono'",
}}
/>
</g>
<g fill="#34d399" fillOpacity={0.698}>
<path d="M27.588 28.931l27.693-15.992L82.973 28.93 55.28 44.923zM86.483 35.097l.004 31.979L58.79 83.06l-.004-31.978zM51.696 83.061L24 67.076l.004-31.979L51.7 51.083z" />
</g>
</svg>
);
}
function Intersect(props) {
return (
<svg
@ -364,47 +274,6 @@ function Intersect(props) {
);
}
function Intersect_thin(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
fill="currentColor"
className="prefix__bi prefix__bi-intersect"
viewBox="0 0 16 16"
{...props}
>
<path
d="M5.11 5.092c-.02.195-.059.384-.059.584a5.244 5.244 0 005.254 5.253c.2 0 .39-.037.583-.059V5.676a.57.57 0 00-.583-.584z"
fill="currentColor"
fillOpacity={0.7}
/>
<rect
width={10}
height={10}
x={1}
y={5}
rx={1}
ry={1}
fill="none"
stroke="currentColor"
strokeWidth={0.6}
strokeLinecap="round"
/>
<circle
cx={10}
cy={6}
r={5}
fill="none"
stroke="currentColor"
strokeWidth={0.6}
strokeLinecap="round"
/>
</svg>
);
}
function Line(props) {
return (
<svg
@ -586,52 +455,6 @@ function Union(props) {
);
}
function Union_thin(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
fill="currentColor"
className="prefix__bi prefix__bi-intersect"
viewBox="0 0 16 16"
{...props}
>
<path
d="M5.383 5.33c-.02.178-.054.352-.054.535a4.81 4.81 0 004.818 4.818c.183 0 .357-.034.535-.054V5.865a.523.523 0 00-.535-.535z"
fill="currentColor"
fillOpacity={0.7}
/>
<path
d="M1.9 4.899a.529.529 0 00-.542.541v8.663c0 .309.232.541.541.541h8.663c.309 0 .541-.232.541-.541v-2.735a5.962 5.962 0 01-.541.028A5.964 5.964 0 014.606 5.44c0-.183.011-.362.028-.541zM9.815 1.317c-2.114 0-3.887 1.351-4.553 3.233h4.553c.887 0 1.617.73 1.617 1.617v4.552c1.882-.666 3.233-2.438 3.233-4.552a4.842 4.842 0 00-4.85-4.85z"
fill="currentColor"
fillOpacity={0.7}
/>
<rect
width={10}
height={10}
x={1}
y={5}
rx={1}
ry={1}
fill="none"
stroke="currentColor"
strokeWidth={0.9}
strokeLinecap="round"
/>
<circle
cx={10}
cy={6}
r={5}
fill="none"
stroke="currentColor"
strokeWidth={0.9}
strokeLinecap="round"
/>
</svg>
);
}
function Vertical(props) {
return (
<svg
@ -652,4 +475,4 @@ function Vertical(props) {
</svg>
);
}
export { Arc, Coincident, Dimension, Extrude, Extrude_master, Flip, Horizontal, Icon_text, Intersect, Intersect_thin, Line, Logo, Stl, Subtract, Tangent, Union, Union_thin, Vertical };
export { Arc, Coincident, Dimension, Extrude, Flip, Horizontal, Intersect, Line, Logo, Stl, Subtract, Tangent, Union, Vertical };

View File

@ -1,78 +0,0 @@
import React, { useEffect, useRef, useState } from 'react';
export const ToolTip = () => {
/**
* Fires when new element is mouseovered, checks if it has a tooltip attribute
* If it does, updates and unhides tooltip element after a preset timeout.
* The timout is reset if user moves off of the tooltipped element
*
* Unfortunately, new mouseover fires for svg children, which clears the
* tooltip state. We add hacky lines labelled svg workaround to bubbleup / ignore
* svg children mouseovers. We use prevTooltip ref check if new svg
* child mouseover is novel. If it's not, we ignore the event
*/
const [text, setText] = useState(null)
const ref = useRef()
const activated = useRef(false)
const timeout = useRef(null)
const prevTooltip = useRef(null) // svg workaround
useEffect(() => {
const svgChildren = ['path', 'g', 'rect', 'circle']; // svg workaround
document.addEventListener('mouseover', (e) => {
let node = e.target;
while (svgChildren.includes(node.nodeName)) { // svg workaround
node = node.parentElement // svg workaround
} // svg workaround
const tooltip = node.getAttribute("tooltip")
if (tooltip == prevTooltip.current) return // svg workaround
prevTooltip.current = tooltip // svg workaround
clearTimeout(timeout.current)
if (tooltip) {
let { left, top, width, height } = node.getBoundingClientRect()
left = left + width / 2 - getTextWidth(tooltip) / 2 - 4 // 4 is padding
top = top + height + 6 // 6 is arrow height/width
setText(tooltip)
if (activated.current) {
ref.current.setAttribute('style', `left:${left}px; top:${top}px; visibility:visible`)
} else {
timeout.current = setTimeout(() => {
ref.current.setAttribute('style', `left:${left}px; top:${top}px; visibility:visible`)
activated.current = true
}, 1000);
}
} else {
ref.current.setAttribute('style', `visibility:hidden`)
activated.current = false
}
})
}, [])
return <div className="absolute drop-down-top p-1 rounded invisible bg-gray-700 text-gray-200" ref={ref}>
{text}
<div className="arrow"></div>
</div>
}
function getTextWidth(text, font = "16px sans-serif") {
// https://stackoverflow.com/a/21015393
// re-use canvas object for better performance
let canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas"));
let context = canvas.getContext("2d");
context.font = font;
let metrics = context.measureText(text);
return metrics.width;
}

View File

@ -1,8 +1,8 @@
import React, { useReducer, useState, useRef } from 'react';
import React, { useReducer, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux'
import { MdVisibilityOff, MdVisibility, MdDelete, MdRefresh } from 'react-icons/md'
import { MdVisibilityOff, MdVisibility, MdDelete } from 'react-icons/md'
import { FaCube, FaEdit } from 'react-icons/fa'

View File

@ -1,144 +0,0 @@
emcc ./wasm/solver.c ./wasm/libslvs.a -L./wasm/ -lslvs -o ./dist/solver.js -s TOTAL_MEMORY=134217728 -s EXPORTED_FUNCTIONS='[_main, _solver, _free]'
int solver(int nLines, float *ptr)
{
// for (int i=0; i<nLines ;i++) {
// printf("%f\n",*ptr++);
// }
float *buf_pt_start = ptr;
Slvs_hGroup g;
double qw, qx, qy, qz;
g = 1;
/* First, we create our workplane. Its origin corresponds to the origin
* of our base frame (x y z) = (0 0 0) */
sys.param[sys.params++] = Slvs_MakeParam(1, g, 0.0);
sys.param[sys.params++] = Slvs_MakeParam(2, g, 0.0);
sys.param[sys.params++] = Slvs_MakeParam(3, g, 0.0);
sys.entity[sys.entities++] = Slvs_MakePoint3d(101, g, 1, 2, 3);
/* and it is parallel to the xy plane, so it has basis vectors (1 0 0)
* and (0 1 0). */
Slvs_MakeQuaternion(1, 0, 0,
0, 1, 0, &qw, &qx, &qy, &qz);
sys.param[sys.params++] = Slvs_MakeParam(4, g, qw);
sys.param[sys.params++] = Slvs_MakeParam(5, g, qx);
sys.param[sys.params++] = Slvs_MakeParam(6, g, qy);
sys.param[sys.params++] = Slvs_MakeParam(7, g, qz);
sys.entity[sys.entities++] = Slvs_MakeNormal3d(102, g, 4, 5, 6, 7);
sys.entity[sys.entities++] = Slvs_MakeWorkplane(200, g, 101, 102);
/* Now create a second group. We'll solve group 2, while leaving group 1
* constant; so the workplane that we've created will be locked down,
* and the solver can't move it. */
g = 2;
/* These points are represented by their coordinates (u v) within the
* workplane, so they need only two parameters each. */
Slvs_hParam h = 8;
Slvs_hParam pt_id = 301;
Slvs_hParam line_id = 400;
Slvs_hParam con_id = 0;
int ptStart = sys.params;
for (int i = 0; i < nLines; i++)
{
sys.param[sys.params++] = Slvs_MakeParam(h++, g, (float)*ptr++);
sys.param[sys.params++] = Slvs_MakeParam(h++, g, (float)*ptr++);
sys.entity[sys.entities++] = Slvs_MakePoint2d(pt_id++, g, 200, h - 2, h - 1);
if (i > 0)
{
sys.constraint[sys.constraints++] = Slvs_MakeConstraint(
con_id++, g,
SLVS_C_POINTS_COINCIDENT,
200,
0.0,
pt_id - 1, pt_id - 2, 0, 0);
}
else
{
sys.constraint[sys.constraints++] = Slvs_MakeConstraint(
con_id++, g,
SLVS_C_POINTS_COINCIDENT,
200,
0.0,
pt_id - 1, 101, 0, 0);
}
printf("h:%i\n", h);
sys.param[sys.params++] = Slvs_MakeParam(h++, g, (float)*ptr++);
sys.param[sys.params++] = Slvs_MakeParam(h++, g, (float)*ptr++);
sys.entity[sys.entities++] = Slvs_MakePoint2d(pt_id++, g, 200, h - 2, h - 1);
sys.entity[sys.entities++] = Slvs_MakeLineSegment(line_id++, g,
200, pt_id - 1, pt_id - 2);
sys.constraint[sys.constraints++] = Slvs_MakeConstraint(
con_id++, g,
SLVS_C_PT_PT_DISTANCE,
200,
30.0,
pt_id - 1, pt_id - 2, 0, 0);
sys.constraint[sys.constraints++] = Slvs_MakeConstraint(
con_id++, g,
SLVS_C_VERTICAL,
200,
0.0,
0, 0, line_id-1, 0);
}
/* If the solver fails, then ask it to report which constraints caused
* the problem. */
sys.calculateFaileds = 1;
sys.dragged[0] = 10;
sys.dragged[1] = 11;
sys.dragged[2] = 14;
sys.dragged[3] = 15;
/* And solve. */
Slvs_Solve(&sys, g);
// printf("%i,wtf\n", sys.result);
if (sys.result == SLVS_RESULT_OKAY)
{
printf("solved okay\n");
for (int i = 0; i < nLines * 4; i++)
{
// *buf_pt_start++ = (float)sys.param[ptStart++].val;
printf("%f\n", sys.param[ptStart++].val);
}
}
else
{
int i;
printf("solve failed: problematic constraints are:");
for (i = 0; i < sys.faileds; i++)
{
printf(" %d", sys.failed[i]);
}
printf("\n");
if (sys.result == SLVS_RESULT_INCONSISTENT)
{
printf("system inconsistent\n");
}
else
{
printf("system nonconvergent\n");
}
}
sys.params = sys.constraints = sys.entities = 0;
return 0;
}

2
wasm/readme.md Normal file
View File

@ -0,0 +1,2 @@
this wasm backend is based on the SolveSpace geometric constraint solver:
https://github.com/solvespace/solvespace

View File

@ -5,18 +5,16 @@ const path = require('path');
const fs = require('fs');
module.exports = merge(common, {
mode: 'development',
devtool: 'inline-source-map',
devServer: {
contentBase: path.join(__dirname, 'dist'),
compress: true,
port: 9000,
https: {
key: fs.readFileSync('./localhost-key.pem'),
cert: fs.readFileSync('./localhost.pem'),
ca: fs.readFileSync('/home/howard/.local/share/mkcert/rootCA.pem'),
key: fs.readFileSync('./https/localhost-key.pem'),
cert: fs.readFileSync('./https/localhost.pem'),
ca: fs.readFileSync('./https/rootCA.pem'),
},
},