vrDeviceOrientationArcRotateCamera.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { Camera } from "../../Cameras/camera";
  2. import { ArcRotateCamera } from "../../Cameras/arcRotateCamera";
  3. import { VRCameraMetrics } from "./vrCameraMetrics";
  4. import { Scene } from "../../scene";
  5. import { Vector3 } from "../../Maths/math";
  6. import { Node } from "../../node";
  7. Node.AddNodeConstructor("VRDeviceOrientationFreeCamera", (name, scene) => {
  8. return () => new VRDeviceOrientationArcRotateCamera(name, 0, 0, 1.0, Vector3.Zero(), scene);
  9. });
  10. /**
  11. * Camera used to simulate VR rendering (based on ArcRotateCamera)
  12. * @see http://doc.babylonjs.com/babylon101/cameras#vr-device-orientation-cameras
  13. */
  14. export class VRDeviceOrientationArcRotateCamera extends ArcRotateCamera {
  15. /**
  16. * Creates a new VRDeviceOrientationArcRotateCamera
  17. * @param name defines camera name
  18. * @param alpha defines the camera rotation along the logitudinal axis
  19. * @param beta defines the camera rotation along the latitudinal axis
  20. * @param radius defines the camera distance from its target
  21. * @param target defines the camera target
  22. * @param scene defines the scene the camera belongs to
  23. * @param compensateDistortion defines if the camera needs to compensate the lens distorsion
  24. * @param vrCameraMetrics defines the vr metrics associated to the camera
  25. */
  26. constructor(name: string, alpha: number, beta: number, radius: number, target: Vector3, scene: Scene, compensateDistortion = true, vrCameraMetrics: VRCameraMetrics = VRCameraMetrics.GetDefault()) {
  27. super(name, alpha, beta, radius, target, scene);
  28. vrCameraMetrics.compensateDistortion = compensateDistortion;
  29. this.setCameraRigMode(Camera.RIG_MODE_VR, { vrCameraMetrics: vrCameraMetrics });
  30. this.inputs.addVRDeviceOrientation();
  31. }
  32. /**
  33. * Gets camera class name
  34. * @returns VRDeviceOrientationArcRotateCamera
  35. */
  36. public getClassName(): string {
  37. return "VRDeviceOrientationArcRotateCamera";
  38. }
  39. }