From 0ab53a7825ee1a761820e20d4f0a0d17142d5fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 2 Feb 2024 18:10:43 -0600 Subject: [PATCH] feat: apply quaternion rotation --- .../ArmorMesh/components/Armor/index.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/ArmorMesh/components/Armor/index.tsx b/src/components/ArmorMesh/components/Armor/index.tsx index a5a8c41cf..783f3a9e3 100644 --- a/src/components/ArmorMesh/components/Armor/index.tsx +++ b/src/components/ArmorMesh/components/Armor/index.tsx @@ -1,8 +1,14 @@ import { MeshProps, useFrame, useThree } from '@react-three/fiber'; import { useEffect, useRef } from 'react'; -import { IUniform, Mesh, ShaderMaterial, Vector2, Vector3 } from 'three'; +import { + IUniform, + Mesh, + Quaternion, + ShaderMaterial, + Vector2, + Vector3, +} from 'three'; import { degToRad } from 'three/src/math/MathUtils'; -import { I_HAT } from '../../../../constants/axis'; import { canSplash } from '../../../../core/blitz/canSplash'; import { isExplosive } from '../../../../core/blitz/isExplosive'; import { resolveNearPenetration } from '../../../../core/blitz/resolveNearPenetration'; @@ -139,7 +145,9 @@ export function ArmorMesh({ shellNormal.copy( cameraNormal.copy(camera.position).sub(event.point).normalize(), ); - surfaceNormal.copy(event.normal!).applyAxisAngle(I_HAT, -Math.PI / 2); + surfaceNormal + .copy(event.normal!) + .applyQuaternion(event.object.getWorldQuaternion(new Quaternion())); const angle = Math.acos(surfaceNormal.dot(shellNormal)); const shell = useDuel.getState().antagonist!.shell; const intersections = event.intersections