From 14d3de4ece82ae2078ab67d3464942d2a556ea01 Mon Sep 17 00:00:00 2001 From: Poovizhi99 Date: Fri, 11 Apr 2025 14:10:35 +0530 Subject: [PATCH] refactor: removed rigged arm when not needed --- app/src/modules/simulation/ik/ArmReplace.tsx | 2 +- .../simulation/ik/MultiGLTFInstances.tsx | 24 ++++++++++--------- .../ik/functions/findLinkObjects.ts | 7 ++++-- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/app/src/modules/simulation/ik/ArmReplace.tsx b/app/src/modules/simulation/ik/ArmReplace.tsx index df6e37b..df4cdde 100644 --- a/app/src/modules/simulation/ik/ArmReplace.tsx +++ b/app/src/modules/simulation/ik/ArmReplace.tsx @@ -46,7 +46,7 @@ const ArmReplace: React.FC = () => { modelUrl={armModel} position={positions[i]} rotation={rotations[i]} - visibility={activeModule === "simulation" ? false : true} + visibility={activeModule === "simulation" ? true : false} /> ))} diff --git a/app/src/modules/simulation/ik/MultiGLTFInstances.tsx b/app/src/modules/simulation/ik/MultiGLTFInstances.tsx index 264d77b..92fe228 100644 --- a/app/src/modules/simulation/ik/MultiGLTFInstances.tsx +++ b/app/src/modules/simulation/ik/MultiGLTFInstances.tsx @@ -1,7 +1,7 @@ import { useLoader } from "@react-three/fiber"; import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; - +import { clone } from "three/examples/jsm/utils/SkeletonUtils"; interface MultiGLTFInstancesProps { index: number; modelUrl: string; @@ -15,8 +15,9 @@ export const MultiGLTFInstances: React.FC = ({ modelUrl, position, rotation, - visibility + visibility, }) => { + console.log("position: ", position); const originalGltf = useLoader(GLTFLoader, modelUrl, (loader) => { const draco = new DRACOLoader(); draco.setDecoderPath( @@ -25,18 +26,19 @@ export const MultiGLTFInstances: React.FC = ({ loader.setDRACOLoader(draco); }); const cloned = originalGltf.scene.clone(); - cloned.name = `rigged_arm_${index}`; // Set the name of the cloned object console.log(index); return ( <> - + {visibility && ( + + )} ); }; diff --git a/app/src/modules/simulation/ik/functions/findLinkObjects.ts b/app/src/modules/simulation/ik/functions/findLinkObjects.ts index 9e62a3d..780b087 100644 --- a/app/src/modules/simulation/ik/functions/findLinkObjects.ts +++ b/app/src/modules/simulation/ik/functions/findLinkObjects.ts @@ -17,9 +17,12 @@ export const findLinkObjects = ( const count: string[] = []; let i = 0; + let name = scene.getObjectByName("rigged_arm"); + console.log(name); + scene.traverse((object) => { if (object.name === "link_0") { - if (object.parent) { + if (object.parent && object.type !== "SkinnedMesh") { // count count[i] = object.uuid; i++; @@ -40,4 +43,4 @@ export const findLinkObjects = ( setPositions(positions); setRotations(rotations); setCount(count); -}; \ No newline at end of file +};