three.cad/src/app.jsx

68 lines
1.7 KiB
React
Raw Normal View History

2021-03-26 17:25:28 +08:00
2021-03-30 13:13:13 +08:00
import React, { useEffect, useState } from 'react';
2021-03-27 03:18:11 +08:00
import './app.scss'
2021-03-26 17:25:28 +08:00
2021-03-28 20:00:31 +08:00
import { Provider, useDispatch, useSelector } from 'react-redux'
2021-03-29 05:34:55 +08:00
// import { renderInst } from './index'
2021-03-28 20:00:31 +08:00
2021-03-27 03:18:11 +08:00
export const Root = ({ store }) => (
2021-03-26 17:25:28 +08:00
<Provider store={store}>
2021-03-27 03:18:11 +08:00
<App></App>
2021-03-26 17:25:28 +08:00
</Provider>
);
2021-03-27 03:18:11 +08:00
2021-03-30 13:13:13 +08:00
function treeId2Obj(id) {
return renderInst.scene.getObjectById(parseInt(id.slice(1)))
}
2021-03-27 03:18:11 +08:00
const App = () => {
2021-03-28 20:00:31 +08:00
const dispatch = useDispatch()
2021-03-29 18:27:34 +08:00
const treeEntries = useSelector(state => state.treeEntries)
2021-03-30 13:13:13 +08:00
const activeSketch = useSelector(state => state.activeSketch)
// const [state, setState] = useState('x')
// useEffect(()=>{
// console.log('hereeee')
// },[state])
useEffect(() => {
if (!activeSketch) {
renderInst.canvas.addEventListener('pointermove', renderInst.onHover)
return () => renderInst.canvas.removeEventListener('pointermove', renderInst.onHover)
}
}, [activeSketch])
2021-03-27 03:18:11 +08:00
return <>
2021-03-29 02:54:05 +08:00
<div className='buttons-group'>
2021-03-30 13:13:13 +08:00
{activeSketch ?
<button onClick={() => treeId2Obj(activeSketch).deactivate()}>
Exit sketch
</button> :
<button onClick={renderInst.addSketch}> addsketch </button>
}
<button onClick={() => renderInst.extrude(treeId2Obj(activeSketch))}> extrude </button>
{/* <button onClick={() => setState('')}> test </button> */}
2021-03-29 02:54:05 +08:00
</div>
2021-03-28 20:00:31 +08:00
<div className='feature-tree'>
2021-03-29 18:27:34 +08:00
{treeEntries.allIds.map((entId, idx) => (
<div key={idx}
2021-03-30 13:13:13 +08:00
onClick={() => {
if (activeSketch) {
treeId2Obj(activeSketch).deactivate()
}
treeId2Obj(entId).activate()
}
}
2021-03-29 18:27:34 +08:00
>{entId}</div>
2021-03-28 20:00:31 +08:00
))}
</div>
2021-03-27 03:18:11 +08:00
</>
2021-03-28 20:00:31 +08:00
}