|  |  | 
 |  |  |     [ | 
 |  |  |         { | 
 |  |  |             no: 1, | 
 |  |  |             position: [0, 0, 0], | 
 |  |  |             position: [3300, 0, 100], | 
 |  |  |             theta: 0, | 
 |  |  |             height: 0, | 
 |  |  |             height: 2320, | 
 |  |  |             loaderTheta: 0, | 
 |  |  |             forkLength: 0, | 
 |  |  |             forkLength: -500, | 
 |  |  |             trayList: [ | 
 |  |  |                 { | 
 |  |  |                     no: 1, | 
 |  |  | 
 |  |  |                     hasBox: false | 
 |  |  |                 }, | 
 |  |  |             ], | 
 |  |  |             hasBox: false | 
 |  |  |             hasBox: true, | 
 |  |  |             finger1: true, | 
 |  |  |             finger2: true, | 
 |  |  |             finger3: true, | 
 |  |  |             finger4: true, | 
 |  |  |         } | 
 |  |  |     ], | 
 |  |  |     [ | 
 
 |  |  | 
 |  |  | const Agv = (props) => { | 
 |  |  |     const { agvNo, position, trayList, hasBox, finger1, finger2, finger3, finger4 } = props; | 
 |  |  |     const theta = -props.theta; | 
 |  |  |     const height = props.height * 0.06; | 
 |  |  |     const height = props.height * 0.0655; | 
 |  |  |     const forkLength = props.forkLength * 0.1; | 
 |  |  |     // console.log(props.forkLength); | 
 |  |  |     const loaderTheta = Number(props.loaderTheta?.toFixed(1)); | 
 |  |  |  | 
 |  |  |     const [groupPos, setGroupPos] = useState({ x: 0, y: 0, z: 0 }); | 
 |  |  | 
 |  |  |         if (!fbx.castShadow) { | 
 |  |  |             Common.setShadow(fbx); | 
 |  |  |         } | 
 |  |  |         fbx.scale.set(MODEL_AGV_SCALE, MODEL_AGV_SCALE, MODEL_AGV_SCALE); | 
 |  |  |         fbx.scale.set(MODEL_AGV_SCALE, MODEL_AGV_SCALE * 0.97, MODEL_AGV_SCALE); | 
 |  |  |         return fbx.clone(); | 
 |  |  |     }, []) | 
 |  |  |  | 
 |  |  | 
 |  |  |                     position-y={loaderHeight} | 
 |  |  |                     rotation-y={Common.rotationParseNum(loaderAngle)} | 
 |  |  |                 > | 
 |  |  |                     <primitive object={loaderModel} castShadow position={[0, 20, 0]} /> | 
 |  |  |                     <primitive object={loaderModel} castShadow position={[0, 0, 0]} /> | 
 |  |  |                     <group position-z={forkDis}> | 
 |  |  |                         <primitive object={forkModel} castShadow position={[0, 25, 0]} /> | 
 |  |  |                         {(hasBox || getLoaderHasBox(loaderAngle, finger1, finger2, finger3, finger4)) && <Box position={[0, 26, 0]} />} | 
 |  |  |                         <primitive object={forkModel} castShadow position={[0, 6, 0]} /> | 
 |  |  |                         {(hasBox || getLoaderHasBox(loaderAngle, finger1, finger2, finger3, finger4)) && <Box position={[0, 6, 0]} />} | 
 |  |  |                     </group> | 
 |  |  |                 </group> | 
 |  |  |                 <group> |