vrDeviceOrientationFreeCamera.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { Camera } from "../../Cameras/camera.js";
  2. import { DeviceOrientationCamera } from "../../Cameras/deviceOrientationCamera.js";
  3. import { VRCameraMetrics } from "./vrCameraMetrics.js";
  4. import { Vector3 } from "../../Maths/math.vector.js";
  5. import { Node } from "../../node.js";
  6. import { setVRRigMode } from "../RigModes/vrRigMode.js";
  7. Node.AddNodeConstructor("VRDeviceOrientationFreeCamera", (name, scene) => {
  8. return () => new VRDeviceOrientationFreeCamera(name, Vector3.Zero(), scene);
  9. });
  10. /**
  11. * Camera used to simulate VR rendering (based on FreeCamera)
  12. * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras
  13. */
  14. export class VRDeviceOrientationFreeCamera extends DeviceOrientationCamera {
  15. /**
  16. * Creates a new VRDeviceOrientationFreeCamera
  17. * @param name defines camera name
  18. * @param position defines the start position of the camera
  19. * @param scene defines the scene the camera belongs to
  20. * @param compensateDistortion defines if the camera needs to compensate the lens distortion
  21. * @param vrCameraMetrics defines the vr metrics associated to the camera
  22. */
  23. constructor(name, position, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {
  24. super(name, position, scene);
  25. this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);
  26. vrCameraMetrics.compensateDistortion = compensateDistortion;
  27. this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });
  28. }
  29. /**
  30. * Gets camera class name
  31. * @returns VRDeviceOrientationFreeCamera
  32. */
  33. getClassName() {
  34. return "VRDeviceOrientationFreeCamera";
  35. }
  36. }
  37. //# sourceMappingURL=vrDeviceOrientationFreeCamera.js.map