CadQuery MVP integration #281
@@ -50,7 +50,7 @@ const IdeToolbarNew = ({ cadPackage }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<IdeContext.Provider value={{ state, thunkDispatch: thunkDispatch }}>
|
<IdeContext.Provider value={{ state, thunkDispatch }}>
|
||||||
<div className="h-full flex flex-col">
|
<div className="h-full flex flex-col">
|
||||||
<nav className="flex">
|
<nav className="flex">
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -14,19 +14,19 @@ import { requestRender } from 'src/helpers/hooks/useIdeState'
|
|||||||
|
|
|||||||
|
|
||||||
extend({ OrbitControls })
|
extend({ OrbitControls })
|
||||||
|
|
||||||
function Asset({ url }) {
|
function Asset({ stlData }) {
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
const [loadedGeometry, setLoadedGeometry] = useState()
|
const [loadedGeometry, setLoadedGeometry] = useState()
|
||||||
const mesh = useRef()
|
const mesh = useRef()
|
||||||
const ref = useUpdate((geometry) => {
|
const ref = useUpdate((geometry) => {
|
||||||
geometry.attributes = loadedGeometry.attributes
|
geometry.attributes = loadedGeometry.attributes
|
||||||
})
|
})
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (url) {
|
if (stlData) {
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
const decoded = atob(url)
|
const decoded = atob(stlData)
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
const loader = new STLLoader()
|
const loader = new STLLoader()
|
||||||
setLoadedGeometry(loader.parse(decoded))
|
setLoadedGeometry(loader.parse(decoded))
|
||||||
}
|
}
|
||||||
}, [url])
|
}, [stlData])
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
if (!loadedGeometry) return null
|
if (!loadedGeometry) return null
|
||||||
return (
|
return (
|
||||||
<mesh ref={mesh} scale={[1, 1, 1]}>
|
<mesh ref={mesh} scale={[1, 1, 1]}>
|
||||||
@@ -228,7 +228,11 @@ const IdeViewer = () => {
|
|||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{state.ideType === 'cadQuery' && (
|
{state.ideType === 'cadQuery' && (
|
||||||
<Asset url={state.objectData?.data} />
|
<Asset
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
|
stlData={
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
|
state.objectData?.type === 'stl' && state.objectData?.data
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
|
}
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
|
/>
|
||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
)}
|
)}
|
||||||
</Canvas>
|
</Canvas>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
|
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery. This is where the stl is loaded in for CadQuery.
|
|||||||
This is where the stl is loaded in for CadQuery.
This is where the stl is loaded in for CadQuery.