diff --git a/resources/views/rd/fire-shutter-drawing/index.blade.php b/resources/views/rd/fire-shutter-drawing/index.blade.php index 6edd5755..8ae460c5 100644 --- a/resources/views/rd/fire-shutter-drawing/index.blade.php +++ b/resources/views/rd/fire-shutter-drawing/index.blade.php @@ -2247,22 +2247,22 @@ function createRailGroup() { // Left rail — Ry(+PI/2): 립→+X(중심), 백월→-X(벽=-W1/2) // Z방향: z'=-x(원본), 폭 0→70이 z' 0→-70으로 매핑 - // wrapper Z=0 → 레일 Z범위 0~-rw (벽면에서 뒤로 확장) + // wrapper Z=+rw/2 → 레일 Z범위 -rw/2 ~ +rw/2 (벽면 중심에 걸침) const railGroupL = createRailGroup(); const wrapperL = new THREE.Group(); wrapperL.add(railGroupL); wrapperL.rotation.y = Math.PI / 2; - wrapperL.position.set(-railPosX, 0, 0); + wrapperL.position.set(-railPosX, 0, rw / 2); meshes.rails.add(wrapperL); // Right rail — Ry(-PI/2): 립→-X(중심), 백월→+X(벽=+W1/2) // Z방향: z'=x(원본), 폭 0→70이 z' 0→70으로 매핑 - // wrapper Z=-rw → 레일 Z범위 -rw~0 (벽면에서 뒤로 확장) + // wrapper Z=-rw/2 → 레일 Z범위 -rw/2 ~ +rw/2 (벽면 중심에 걸침) const railGroupR = createRailGroup(); const wrapperR = new THREE.Group(); wrapperR.add(railGroupR); wrapperR.rotation.y = -Math.PI / 2; - wrapperR.position.set(railPosX, 0, -rw); + wrapperR.position.set(railPosX, 0, -rw / 2); meshes.rails.add(wrapperR); } else { // ====== 철재형: 기존 C채널 방식 (슬랫이 Z방향 슬롯 통과) ======