From 9121586a22ea00ec4a3ef873c621dab8840508e4 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 26 四月 2024 15:16:39 +0800 Subject: [PATCH] # --- src/components/box.jsx | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/components/box.jsx b/src/components/box.jsx index 42ab356..a3dd4dc 100644 --- a/src/components/box.jsx +++ b/src/components/box.jsx @@ -6,10 +6,28 @@ import * as Common from '../utils/common'; import { useStore } from '@/store'; +const getShelfRow = (row) => { + return row; +} + +const getShelfBay = (bay) => { + return bay - (bay - 1) % 3; +} + +const getShelfLev = (lev) => { + return 1; +} + +const getShelfNo = (row, bay, lev) => { + return getShelfRow(row) + '-' + getShelfBay(bay) + '-' + getShelfLev(lev); +} + const Box = (props) => { - const { position = [0, 300, 0], rotationY = 0 } = props; + const { row, bay, lev, position = [0, 300, 0], rotationY = 0 } = props; const state = useStore(); - + + const [pos, setPos] = useState([]); + const boxModel = useMemo(() => { const fbx = useFBX('/models/box/box.fbx'); if (!fbx.castShadow) { @@ -20,12 +38,20 @@ }, []) useEffect(() => { - console.log(state.shelfList['1-1-1']); + if (row && bay && lev) { + // from shelf + const shelfNo = getShelfNo(row, bay, lev); + const shelfPos = state.shelfList[shelfNo]; + setPos(shelfPos); + } else { + // from agv + setPos(position); + } }, [props]); return ( <> - <group rotation-y={rotationY} position={position}> + <group rotation-y={rotationY} position={pos}> <primitive object={boxModel} castShadow /> </group> </> -- Gitblit v1.9.1