Skip to content

Commit 7bca458

Browse files
Update SimCameraRenderer
1 parent 42918a4 commit 7bca458

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

fission/src/systems/simulation/wpilib_brain/SimCameraRenderer.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,26 @@ export class SimCameraRenderer {
4545

4646
if (!robotBody) return
4747

48-
// Position camera relative to robot
4948
const robotPos = robotBody.GetPosition()
5049
const robotRot = robotBody.GetRotation()
5150

52-
// Convert Jolt to Three.js
5351
const robotPosition = new THREE.Vector3(robotPos.GetX(), robotPos.GetY(), robotPos.GetZ())
5452
const robotQuaternion = new THREE.Quaternion(robotRot.GetX(), robotRot.GetY(), robotRot.GetZ(), robotRot.GetW())
5553

56-
// Apply camera offset
5754
const worldCameraPos = this._cameraPosition.clone()
5855
worldCameraPos.applyQuaternion(robotQuaternion)
5956
worldCameraPos.add(robotPosition)
6057

58+
const cameraRotation = new THREE.Quaternion()
59+
cameraRotation.copy(robotQuaternion)
60+
61+
const forwardFix = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 1, 0), Math.PI)
62+
const upFix = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 0, 1), Math.PI)
63+
64+
cameraRotation.multiply(forwardFix).multiply(upFix)
65+
6166
this._camera.position.copy(worldCameraPos)
62-
this._camera.quaternion.copy(robotQuaternion)
67+
this._camera.quaternion.copy(cameraRotation)
6368
this._camera.updateMatrixWorld()
6469
}
6570

0 commit comments

Comments
 (0)