diff --git a/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx b/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx
index 611ded5..6db275f 100644
--- a/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx
+++ b/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx
@@ -91,7 +91,7 @@ function RoboticArmAnimator({
const bone = ikSolver.mesh.skeleton.bones.find(
(b: any) => b.name === targetBone
);
- bone.position.copy(restPosition);
+ // bone.position.copy(restPosition);
ikSolver.update();
};
@@ -100,7 +100,7 @@ function RoboticArmAnimator({
return (
<>
{/* {currentPath.length > 0 && (
- <>
+
{currentPath.map((point, index) => (
@@ -108,8 +108,33 @@ function RoboticArmAnimator({
))}
- >
+
)} */}
+ {curvePoints && (
+
+ [p.x, p.y, p.z])}
+ color="green"
+ lineWidth={5}
+ dashed={false}
+ />
+ {currentPath.length >= 1 && (
+ <>
+ {/* First point */}
+
+
+
+
+
+ {/* Last point */}
+
+
+
+
+ >
+ )}
+
+ )}
>
);
}
diff --git a/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx b/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx
index e49f5bf..d818777 100644
--- a/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx
+++ b/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx
@@ -3,18 +3,19 @@ import * as THREE from "three";
import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import { clone } from "three/examples/jsm/utils/SkeletonUtils";
-import { useLoader, useThree } from "@react-three/fiber";
+import { useLoader, useThree } from "@react-three/fiber";
import { CCDIKSolver, CCDIKHelper, } from "three/examples/jsm/animation/CCDIKSolver";
+import { TransformControls } from '@react-three/drei';
type IKInstanceProps = {
modelUrl: string;
ikSolver: any;
setIkSolver: any
armBot: any;
- groupRef: React.RefObject;
+ groupRef: any;
};
-function IKInstance({ modelUrl, setIkSolver, ikSolver, armBot, groupRef}: IKInstanceProps) {
- const {scene}=useThree()
+function IKInstance({ modelUrl, setIkSolver, ikSolver, armBot, groupRef }: IKInstanceProps) {
+ const { scene } = useThree()
const gltf = useLoader(GLTFLoader, modelUrl, (loader) => {
const draco = new DRACOLoader();
draco.setDecoderPath("https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/libs/draco/");
@@ -23,6 +24,7 @@ function IKInstance({ modelUrl, setIkSolver, ikSolver, armBot, groupRef}: IKInst
const cloned = useMemo(() => clone(gltf?.scene), [gltf]);
const targetBoneName = "Target";
const skinnedMeshName = "link_0";
+ const [selectedArm, setSelectedArm] = useState();
useEffect(() => {
if (!gltf) return;
@@ -65,6 +67,9 @@ function IKInstance({ modelUrl, setIkSolver, ikSolver, armBot, groupRef}: IKInst
setIkSolver(solver);
const helper = new CCDIKHelper(OOI.Skinned_Mesh, iks, 0.05)
+ groupRef.current.add(helper);
+ console.log('OOI.Target_Bone: ', OOI.Target_Bone);
+ setSelectedArm(OOI.Target_Bone);
scene.add(helper)
@@ -73,7 +78,10 @@ function IKInstance({ modelUrl, setIkSolver, ikSolver, armBot, groupRef}: IKInst
return (
<>
-
+ {
+ setSelectedArm(groupRef.current?.getObjectByName(targetBoneName))
+ }
+ }>
+ {/* {selectedArm && } */}
>
)
}