move speed control

This commit is contained in:
2025-07-18 15:11:57 +05:30
parent c309af135d
commit 5ae8d8e273

View File

@@ -116,10 +116,12 @@ function MoveControls3D({
if (pastedObjects.length > 0 || duplicatedObjects.length > 0 || rotatedObjects.length > 0)
return;
if (keyCombination === "Ctrl" || keyCombination === "Ctrl+Shift" || keyCombination === "Shift") {
setKeyEvent(keyCombination);
} else {
setKeyEvent("");
if (keyCombination !== keyEvent) {
if (keyCombination === "Ctrl" || keyCombination === "Ctrl+Shift" || keyCombination === "Shift") {
setKeyEvent(keyCombination);
} else {
setKeyEvent("");
}
}
if (keyCombination === "G") {
@@ -204,11 +206,18 @@ function MoveControls3D({
}
if (dragOffset) {
const baseNewPosition = new THREE.Vector3().addVectors(intersectionPoint, dragOffset);
const rawBasePosition = new THREE.Vector3().addVectors(intersectionPoint, dragOffset);
let moveSpeed = keyEvent === "Shift" || "Ctrl+Shift" ? 0.25 : 1;
let moveSpeed = keyEvent.includes("Shift") ? 0.25 : 1;
if (keyEvent === "Ctrl") {
const initialBasePosition = initialPositions[movedObjects[0].uuid];
const positionDifference = new THREE.Vector3().subVectors(rawBasePosition, initialBasePosition);
const adjustedDifference = positionDifference.multiplyScalar(moveSpeed);
const baseNewPosition = new THREE.Vector3().addVectors(initialBasePosition, adjustedDifference);
if (keyEvent.includes("Ctrl")) {
baseNewPosition.x = snapControls(baseNewPosition.x, "Ctrl");
baseNewPosition.z = snapControls(baseNewPosition.z, "Ctrl");
}