vrDeviceOrientationGamepadCamera.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { VRDeviceOrientationFreeCamera } from "./vrDeviceOrientationFreeCamera.js";
  2. import { VRCameraMetrics } from "./vrCameraMetrics.js";
  3. import { Vector3 } from "../../Maths/math.vector.js";
  4. import { Node } from "../../node.js";
  5. import { setVRRigMode } from "../RigModes/vrRigMode.js";
  6. import "../../Gamepads/gamepadSceneComponent.js";
  7. Node.AddNodeConstructor("VRDeviceOrientationGamepadCamera", (name, scene) => {
  8. return () => new VRDeviceOrientationGamepadCamera(name, Vector3.Zero(), scene);
  9. });
  10. /**
  11. * Camera used to simulate VR rendering (based on VRDeviceOrientationFreeCamera)
  12. * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#vr-device-orientation-cameras
  13. */
  14. export class VRDeviceOrientationGamepadCamera extends VRDeviceOrientationFreeCamera {
  15. /**
  16. * Creates a new VRDeviceOrientationGamepadCamera
  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, compensateDistortion, vrCameraMetrics);
  25. this._setRigMode = (rigParams) => setVRRigMode(this, rigParams);
  26. this.inputs.addGamepad();
  27. }
  28. /**
  29. * Gets camera class name
  30. * @returns VRDeviceOrientationGamepadCamera
  31. */
  32. getClassName() {
  33. return "VRDeviceOrientationGamepadCamera";
  34. }
  35. }
  36. //# sourceMappingURL=vrDeviceOrientationGamepadCamera.js.map