vrDeviceOrientationArcRotateCamera.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { Camera } from "../../Cameras/camera.js";
  2. import { ArcRotateCamera } from "../../Cameras/arcRotateCamera.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. import "../Inputs/arcRotateCameraVRDeviceOrientationInput.js";
  8. Node.AddNodeConstructor("VRDeviceOrientationArcRotateCamera", (name, scene) => {
  9. return () => new VRDeviceOrientationArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), scene);
  10. });
  11. /**
  12. * Camera used to simulate VR rendering (based on ArcRotateCamera)
  13. * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras
  14. */
  15. export class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {
  16. /**
  17. * Creates a new VRDeviceOrientationArcRotateCamera
  18. * @param name defines camera name
  19. * @param alpha defines the camera rotation along the longitudinal axis
  20. * @param beta defines the camera rotation along the latitudinal axis
  21. * @param radius defines the camera distance from its target
  22. * @param target defines the camera target
  23. * @param scene defines the scene the camera belongs to
  24. * @param compensateDistortion defines if the camera needs to compensate the lens distortion
  25. * @param vrCameraMetrics defines the vr metrics associated to the camera
  26. */
  27. constructor(name, alpha, beta, radius, target, scene, compensateDistortion = true, vrCameraMetrics = VRCameraMetrics.GetDefault()) {
  28. super(name, alpha, beta, radius, target, scene);
  29. this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);
  30. vrCameraMetrics.compensateDistortion = compensateDistortion;
  31. this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });
  32. this.inputs.addVRDeviceOrientation();
  33. }
  34. /**
  35. * Gets camera class name
  36. * @returns VRDeviceOrientationArcRotateCamera
  37. */
  38. getClassName() {
  39. return "VRDeviceOrientationArcRotateCamera";
  40. }
  41. }
  42. //# sourceMappingURL=vrDeviceOrientationArcRotateCamera.js.map