UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

94 lines 3.09 kB
/** This file must only contain pure code and pure imports */ import { FreeCamera } from "./freeCamera.pure.js"; import { Vector3 } from "../Maths/math.vector.pure.js"; import { Node } from "../node.js"; /** * This represents a FPS type of camera controlled by touch. * This is like a universal camera minus the Gamepad controls. * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera */ export class TouchCamera extends FreeCamera { /** * Defines the touch sensibility for rotation. * The higher the faster. */ get touchAngularSensibility() { const touch = this.inputs.attached["touch"]; if (touch) { return touch.touchAngularSensibility; } return 0; } set touchAngularSensibility(value) { const touch = this.inputs.attached["touch"]; if (touch) { touch.touchAngularSensibility = value; } } /** * Defines the touch sensibility for move. * The higher the faster. */ get touchMoveSensibility() { const touch = this.inputs.attached["touch"]; if (touch) { return touch.touchMoveSensibility; } return 0; } set touchMoveSensibility(value) { const touch = this.inputs.attached["touch"]; if (touch) { touch.touchMoveSensibility = value; } } /** * Instantiates a new touch camera. * This represents a FPS type of camera controlled by touch. * This is like a universal camera minus the Gamepad controls. * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#universal-camera * @param name Define the name of the camera in the scene * @param position Define the start position of the camera in the scene * @param scene Define the scene the camera belongs to */ constructor(name, position, scene) { super(name, position, scene); this.inputs.addTouch(); this._setupInputs(); } /** * Gets the current object class name. * @returns the class name */ getClassName() { return "TouchCamera"; } /** @internal */ _setupInputs() { const touch = this.inputs.attached["touch"]; const mouse = this.inputs.attached["mouse"]; if (mouse) { // enable touch in mouse input if touch module is not enabled mouse.touchEnabled = !touch; } else if (touch) { // allow mouse in touch input if mouse module is not available touch.allowMouse = !mouse; } } } let _Registered = false; /** * Register side effects for touchCamera. * Safe to call multiple times; only the first call has an effect. */ export function RegisterTouchCamera() { if (_Registered) { return; } _Registered = true; Node.AddNodeConstructor("TouchCamera", (name, scene) => { return () => new TouchCamera(name, Vector3.Zero(), scene); }); } //# sourceMappingURL=touchCamera.pure.js.map