| | |
| | | import { useFrame } from '@react-three/fiber'; |
| | | import { useFBX, useAnimations } from '@react-three/drei'; |
| | | import * as THREE from 'three'; |
| | | import { MODEL_BOX_SCALE, SHELF_BAY_GROUP_COUNT } from '@/config/setting' |
| | | import { |
| | | MODEL_BOX_SCALE, |
| | | SHELF_BAY_GROUP_COUNT, |
| | | SHELF_BAY_UNIT_SEPARTE_DISTANCE, |
| | | SHELF_LEV_UNIT_SEPARTE_DISTANCE, |
| | | SHELF_HEIGHT_FROM_GROUND |
| | | } from '@/config/setting' |
| | | import * as Common from '../utils/common'; |
| | | import { useStore } from '@/store'; |
| | | |
| | |
| | | // from shelf |
| | | const shelfNo = getShelfNo(row, bay, lev); |
| | | const shelfPos = state.shelfList[shelfNo]; |
| | | if (!shelfPos) { return } |
| | | const { row: shelfRow, bay: shelfBay, lev: shelfLev } = Common.parseLocNo(shelfNo); |
| | | |
| | | console.log([shelfPos[0], shelfPos[1] + (bay - shelfBay) * 100, shelfPos[2] + (lev - shelfLev) * 100]); |
| | | // cal bay position |
| | | let posZByLev = shelfPos[2]; |
| | | if (bay === shelfBay) { |
| | | posZByLev = shelfPos[2] + SHELF_BAY_UNIT_SEPARTE_DISTANCE; |
| | | } |
| | | if (bay === shelfBay + 1) { |
| | | posZByLev = shelfPos[2]; |
| | | } |
| | | if (bay === shelfBay + 2) { |
| | | posZByLev = shelfPos[2] - SHELF_BAY_UNIT_SEPARTE_DISTANCE; |
| | | } |
| | | |
| | | setPos([shelfPos[0], shelfPos[1] + (bay - shelfBay) * 10, shelfPos[2] + (lev - shelfLev) * 100]); |
| | | setPos([ |
| | | shelfPos[0], |
| | | shelfPos[1] + SHELF_HEIGHT_FROM_GROUND + (lev - shelfLev) * SHELF_LEV_UNIT_SEPARTE_DISTANCE, |
| | | posZByLev |
| | | ]); |
| | | setRotaY(Math.PI / 2); |
| | | } else { |
| | | // from agv |