notice plane transparency artifact

master
howard 2021-04-08 01:48:29 -07:00
parent 1314d7cc1a
commit deb8e6566c
12 changed files with 540 additions and 15 deletions

View File

@ -13,6 +13,7 @@ const names = []
try { try {
const files = await fs.promises.readdir(dir); const files = await fs.promises.readdir(dir);
for (const file of files) { for (const file of files) {
console.log(file)
const res = await fs.promises.readFile(dir+file, 'utf-8') const res = await fs.promises.readFile(dir+file, 'utf-8')
let name = file.split('.')[0] let name = file.split('.')[0]
name = name[0].toUpperCase() + name.slice(1) name = name[0].toUpperCase() + name.slice(1)
@ -28,7 +29,7 @@ try {
output.push(`export { ${names.join(', ')} };`) output.push(`export { ${names.join(', ')} };`)
const data = fs.writeFileSync('../src/icons.jsx', output.join('')) const data = fs.writeFileSync('../src/react/icons.jsx', output.join(''))
} catch (err) { } catch (err) {

View File

@ -0,0 +1,73 @@
<?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>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,81 @@
<?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>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -164,6 +164,7 @@ class Sketch {
this.canvas.removeEventListener('pointermove', this.onHover) this.canvas.removeEventListener('pointermove', this.onHover)
this.store.dispatch({ type: 'exit-sketch' }) this.store.dispatch({ type: 'exit-sketch' })
this.labelContainer.innerHTML = "" this.labelContainer.innerHTML = ""
this.scene.axes.visible = false
} }

View File

@ -23,7 +23,7 @@ class AxesHelper extends THREE.Object3D {
new THREE.Vector3(...dir), // dir new THREE.Vector3(...dir), // dir
new THREE.Vector3(0, 0, 0), // origin new THREE.Vector3(0, 0, 0), // origin
this.length[i], //length this.length[i], //length
0x0000ff, 0xcc1f1a,
this.headLength, this.headLength,
this.headWidth this.headWidth
) )

276
src/icons.jsx Normal file
View File

@ -0,0 +1,276 @@
import * as React from "react";
function Arc(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 16 16"
{...props}
>
<g stroke="currentColor" strokeLinecap="round">
<path
d="M7.75 2.35a13 13 0 016.5 11.281"
fill="none"
strokeWidth={1.5}
/>
<path
fill="#fff"
d="M.75 12.631h2v2h-2zM6.75 1.35h2v2h-2zM13.25 12.631h2v2h-2z"
/>
</g>
</svg>
);
}
function Dimension(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}
>
<defs>
<marker
id="prefix__a"
refX={0}
refY={0}
orient="auto"
overflow="visible"
>
<path
d="M-1.154 0l1.73-1v2l-1.73-1z"
fillRule="evenodd"
stroke="currentColor"
strokeWidth=".2pt"
fill="currentColor"
/>
</marker>
<marker
id="prefix__b"
refX={0}
refY={0}
orient="auto"
overflow="visible"
>
<path
d="M1.154 0l-1.73 1v-2l1.73 1z"
fillRule="evenodd"
stroke="currentColor"
strokeWidth=".2pt"
fill="currentColor"
/>
</marker>
</defs>
<path
d="M4.009 10.009l6-6"
fill="none"
stroke="currentColor"
strokeWidth={2}
markerStart="url(#prefix__a)"
markerEnd="url(#prefix__b)"
/>
<path
d="M15.485 4.516l-4-4M4.516 15.485l-4-4"
fill="none"
stroke="currentColor"
strokeWidth={0.893}
/>
</svg>
);
}
function Intersect(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.55 5.5c-.018.166-.05.329-.05.5 0 2.491 2.009 4.5 4.5 4.5.171 0 .334-.032.5-.05V6c0-.286-.214-.5-.5-.5z"
fill="currentColor"
fillOpacity={0.7}
/>
<rect
width={10}
height={10}
x={1}
y={5}
rx={1}
ry={1}
fill="none"
stroke="currentColor"
strokeWidth={1.5}
strokeLinecap="round"
/>
<circle
cx={10}
cy={6}
r={5}
fill="none"
stroke="currentColor"
strokeWidth={1.5}
strokeLinecap="round"
/>
</svg>
);
}
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.4}
strokeLinecap="round"
/>
<circle
cx={10}
cy={6}
r={5}
fill="none"
stroke="currentColor"
strokeWidth={0.4}
strokeLinecap="round"
/>
</svg>
);
}
function Line(props) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="1em"
height="1em"
viewBox="0 0 16 16"
{...props}
>
<g stroke="currentColor">
<path d="M2 14l3-6h6l3-6" fill="none" strokeWidth={1.5} />
<path
fill="#fff"
strokeLinecap="round"
d="M1 13h2v2H1zM4 7h2v2H4zM10 7h2v2h-2zM13 1h2v2h-2z"
/>
</g>
</svg>
);
}
function Subtract(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="M2 5.5c-.286 0-.5.214-.5.5v8c0 .286.214.5.5.5h8c.286 0 .5-.214.5-.5v-2.525a5.504 5.504 0 01-.5.025A5.508 5.508 0 014.5 6c0-.169.01-.335.025-.5z"
fill="currentColor"
fillOpacity={0.7}
/>
<rect
width={10}
height={10}
x={1}
y={5}
rx={1}
ry={1}
fill="none"
stroke="currentColor"
strokeWidth={1.5}
strokeLinecap="round"
/>
<circle
cx={10}
cy={6}
r={5}
fill="none"
stroke="currentColor"
strokeWidth={1.5}
strokeLinecap="round"
/>
</svg>
);
}
function Union(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.55 5.5c-.018.166-.05.329-.05.5 0 2.491 2.009 4.5 4.5 4.5.171 0 .334-.032.5-.05V6c0-.286-.214-.5-.5-.5z"
fill="currentColor"
fillOpacity={0.7}
/>
<path
d="M2 5.5c-.286 0-.5.214-.5.5v8c0 .286.214.5.5.5h8c.286 0 .5-.214.5-.5v-2.525a5.504 5.504 0 01-.5.025A5.508 5.508 0 014.5 6c0-.169.01-.335.025-.5zM10 1.5a4.477 4.477 0 00-4.225 3H10c.822 0 1.5.678 1.5 1.5v4.225A4.477 4.477 0 0014.5 6c0-2.491-2.009-4.5-4.5-4.5z"
fill="currentColor"
fillOpacity={0.7}
/>
<rect
width={10}
height={10}
x={1}
y={5}
rx={1}
ry={1}
fill="none"
stroke="currentColor"
strokeWidth={1.5}
strokeLinecap="round"
/>
<circle
cx={10}
cy={6}
r={5}
fill="none"
stroke="currentColor"
strokeWidth={1.5}
strokeLinecap="round"
/>
</svg>
);
}
export { Arc, Dimension, Intersect, Intersect_thin, Line, Subtract, Union };

View File

@ -48,8 +48,15 @@ body {
.btn { .btn {
cursor: pointer; cursor: pointer;
@apply fill-current @apply fill-current
bg-gray-100 text-green-600 bg-transparent text-gray-200
hover:bg-gray-200 hover:text-green-700; hover:bg-gray-600 hover:text-gray-200;
}
.btn-light {
cursor: pointer;
@apply fill-current
bg-transparent text-gray-700
hover:bg-gray-300 hover:text-gray-700;
} }

View File

@ -125,6 +125,47 @@ 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) { function Line(props) {
return ( return (
<svg <svg
@ -232,4 +273,50 @@ function Union(props) {
</svg> </svg>
); );
} }
export { Arc, Dimension, Intersect, Line, Subtract, Union };
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>
);
}
export { Arc, Dimension, Intersect, Intersect_thin, Line, Subtract, Union, Union_thin };

View File

@ -58,10 +58,10 @@ export const NavBar = () => {
const [_, forceUpdate] = useReducer(x => x + 1, 0); const [_, forceUpdate] = useReducer(x => x + 1, 0);
return <div className='topNav flex justify-center items-center'> return <div className='topNav flex justify-center items-center bg-gray-800'>
{ {
btnz.map(([Icon, fcn, txt], idx) => ( btnz.map(([Icon, fcn, txt], idx) => (
<Icon className="btn w-auto h-full p-2" tooltip={txt} <Icon className="btn w-auto h-full p-3" tooltip={txt}
onClick={fcn} key={idx} onClick={fcn} key={idx}
/> />
)) ))

View File

@ -39,7 +39,7 @@ const TreeEntry = ({ entId }) => {
const vis = obj3d.visible const vis = obj3d.visible
return <div className='bg-gray-50 flex justify-between w-full'> return <div className='bg-gray-50 flex justify-between w-full'>
<div className="btn" <div className="btn-light"
onPointerEnter={() => { onPointerEnter={() => {
if (entId[0] == 'm') { if (entId[0] == 'm') {
// entry.material.color.set(color.hover) // entry.material.color.set(color.hover)
@ -65,7 +65,7 @@ const TreeEntry = ({ entId }) => {
{entId} {entId}
</div> </div>
<div className='flex'> <div className='flex'>
<div className='btn' <div className='btn-light'
onClick={() => { onClick={() => {
activeSketchId && treeEntries[activeSketchId].deactivate() activeSketchId && treeEntries[activeSketchId].deactivate()
entry.activate() entry.activate()
@ -76,7 +76,7 @@ const TreeEntry = ({ entId }) => {
<MdEdit /> <MdEdit />
</div> </div>
<div className='btn' <div className='btn-light'
onClick={() => { onClick={() => {
dispatch({ type: 'delete-node', id: entId }) dispatch({ type: 'delete-node', id: entId })
}} }}
@ -85,7 +85,7 @@ const TreeEntry = ({ entId }) => {
</div> </div>
{ {
vis ? vis ?
<div className='btn' <div className='btn-light'
onClick={() => { onClick={() => {
obj3d.visible = false; obj3d.visible = false;
sc.render() sc.render()
@ -95,7 +95,7 @@ const TreeEntry = ({ entId }) => {
<MdVisibility /> <MdVisibility />
</div> </div>
: :
<div className='btn' <div className='btn-light'
onClick={() => { onClick={() => {
obj3d.visible = true; obj3d.visible = true;
sc.render() sc.render()

View File

@ -12,7 +12,7 @@ raycaster.params.Points.threshold = 0.1;
const color = { const color = {
background:0xbbbbbb, background:0xdae1e7,
lighting: 0xFFFFFF, lighting: 0xFFFFFF,
emissive: 0x072534, emissive: 0x072534,

View File

@ -1,6 +1,7 @@
fix css on design tree (a lot of work) \ fix css on design tree (a lot of work) \
clear dim on exit exit sketch / rehydrate when back or after loading \\\ done clear dim on exit exit sketch / rehydrate when back or after loading \\\ done
dimension to origin // done
- select sketch for extrusion - select sketch for extrusion
@ -21,8 +22,6 @@ extrude edit dialog. directio and magnitude
fix extrusion loop find fix extrusion loop find
dimension to origin
file save file save
stl export stl export