From 9fce7ce7b76b859c5b70cc622d885cd9d6c1579f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 23 四月 2024 10:58:30 +0800
Subject: [PATCH] #
---
src/components/agv.jsx | 61 +++++++++++++++++++-----------
1 files changed, 39 insertions(+), 22 deletions(-)
diff --git a/src/components/agv.jsx b/src/components/agv.jsx
index 6544d6e..ebe1451 100644
--- a/src/components/agv.jsx
+++ b/src/components/agv.jsx
@@ -7,31 +7,53 @@
import * as TWEEN from "@tweenjs/tween.js";
import { INTERVAL_TIME } from '@/config/setting'
-let coords = { x: 0, y: 0, z: 0 };
-
const Agv = (props) => {
- const { position, theta } = props;
+ const { position, theta, height, loaderTheta, forkLength, trayList, hasBox } = props;
const [groupPos, setGroupPos] = useState({ x: 0, y: 0, z: 0 });
+ const [groupTheta, setGroupTheta] = useState(0);
useEffect(() => {
if (!props || Object.keys(props).length === 0) {
return;
}
- console.log(props);
+ // group position
const pos = {
- x: props.position[0],
- y: 0,
- z: props.position[2],
+ x: position?.[0],
+ y: position?.[1],
+ z: position?.[2],
}
- // new TWEEN.Tween(coords)
- // .to(pos, INTERVAL_TIME)
- // .easing(TWEEN.Easing.Linear.None)
- // .onUpdate((e) => {
- // coords = e;
- // console.log(e);
- // })
- // .start();
+ if (!Common.deepEqual(groupPos, pos)) {
+ new TWEEN.Tween(groupPos)
+ .to({
+ x: position[0],
+ y: position[1],
+ z: position[2]
+ }, INTERVAL_TIME)
+ .easing(TWEEN.Easing.Linear.None)
+ .onUpdate((e) => {
+ setGroupPos({ ...e });
+ })
+ .onComplete((e) => {
+ setGroupPos({ ...e });
+ }).start();
+ }
+
+ // group theta
+ if (groupTheta !== theta) {
+ new TWEEN.Tween({ value: groupTheta })
+ .to({ value: theta }, INTERVAL_TIME)
+ .easing(TWEEN.Easing.Linear.None)
+ .onUpdate((e) => {
+ setGroupTheta(e.value)
+ })
+ .onComplete((e) => {
+ setGroupTheta(e.value)
+ }).start();
+ }
+
+
+
}, [props]);
useFrame((state, delta) => {
@@ -62,17 +84,12 @@
return fbx.clone();
}, [])
- useEffect(() => {
-
-
- }, []);
-
return (
<>
<group
- rotation-y={Common.rotationParseNum(theta)}
+ rotation-y={Common.rotationParseNum(groupTheta)}
scale={0.5}
- position={position}
+ position={[groupPos.x, groupPos.y, groupPos.z]}
>
<primitive object={bodyModel} castShadow />
<primitive object={loaderModel} castShadow position={[0, 100, 0]} />
--
Gitblit v1.9.1