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-31 07:20:24 +08:00
|
|
|
// import { sc } 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) {
|
2021-03-31 07:20:24 +08:00
|
|
|
// return sc.scene.getObjectById(parseInt(id.slice(1)))
|
|
|
|
return sc.getObjectById(parseInt(id.slice(1)))
|
2021-03-30 13:13:13 +08:00
|
|
|
}
|
|
|
|
|
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) {
|
2021-03-31 07:20:24 +08:00
|
|
|
sc.canvas.addEventListener('pointermove', sc.onHover)
|
|
|
|
sc.canvas.addEventListener('pointerdown', sc.onPick)
|
|
|
|
return () => {
|
|
|
|
sc.canvas.removeEventListener('pointermove', sc.onHover)
|
|
|
|
sc.canvas.removeEventListener('pointerdown', sc.onPick)
|
|
|
|
}
|
2021-03-30 13:13:13 +08:00
|
|
|
}
|
|
|
|
}, [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> :
|
2021-03-31 07:20:24 +08:00
|
|
|
<button onClick={sc.addSketch}> addsketch </button>
|
2021-03-30 13:13:13 +08:00
|
|
|
}
|
2021-03-31 07:20:24 +08:00
|
|
|
<button onClick={() => sc.extrude(treeId2Obj(activeSketch))}> extrude </button>
|
2021-03-30 13:13:13 +08:00
|
|
|
{/* <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
|
|
|
}
|
|
|
|
|