Refactor action handling in simulation components for improved clarity and efficiency

This commit is contained in:
2025-07-28 12:23:22 +05:30
parent 06e4d516ba
commit 10e7f2f8c4
7 changed files with 92 additions and 118 deletions

View File

@@ -174,12 +174,14 @@ function RotateControls3D({
);
const angleDelta = prevAngle - currentAngle;
const rotationMatrix = new THREE.Matrix4().makeRotationY(angleDelta);
rotatedObjects.forEach((obj: THREE.Object3D) => {
if (obj.userData.modelUuid) {
const relativePos = new THREE.Vector3().subVectors(obj.position, center);
relativePos.applyAxisAngle(new THREE.Vector3(0, 1, 0), angleDelta);
obj.position.copy(center).add(relativePos);
obj.rotation.y += angleDelta;
const relativePosition = new THREE.Vector3().subVectors(obj.position, center);
relativePosition.applyMatrix4(rotationMatrix);
obj.position.copy(center).add(relativePosition);
obj.rotateOnWorldAxis(new THREE.Vector3(0, 1, 0), angleDelta);
}
});