summit/frontend/node_modules/three-stdlib/controls/experimental/CameraControls.cjs.map

1 line
46 KiB
Plaintext
Raw Normal View History

2025-12-08 16:31:30 +00:00
{"version":3,"file":"CameraControls.cjs","sources":["../../../src/controls/experimental/CameraControls.ts"],"sourcesContent":["import {\n MOUSE,\n Matrix4,\n OrthographicCamera,\n PerspectiveCamera,\n Quaternion,\n Spherical,\n TOUCH,\n Vector2,\n Vector3,\n} from 'three'\nimport { EventDispatcher } from '../EventDispatcher'\n\nexport type CHANGE_EVENT = {\n type: 'change' | 'start' | 'end'\n}\n\nexport const STATE = {\n NONE: -1,\n ROTATE: 0,\n DOLLY: 1,\n PAN: 2,\n TOUCH_ROTATE: 3,\n TOUCH_PAN: 4,\n TOUCH_DOLLY_PAN: 5,\n TOUCH_DOLLY_ROTATE: 6,\n}\n\nclass CameraControls extends EventDispatcher<Record<string, {}>> {\n object: PerspectiveCamera | OrthographicCamera\n domElement: HTMLElement\n\n /** Set to false to disable this control */\n enabled = true\n\n /** \"target\" sets the location of focus, where the object orbits around */\n target = new Vector3()\n\n /** Set to true to enable trackball behavior */\n trackball = false\n\n /** How far you can dolly in ( PerspectiveCamera only ) */\n minDistance = 0\n /** How far you can dolly out ( PerspectiveCamera only ) */\n maxDistance = Infinity\n\n // How far you can zoom in and out ( OrthographicCamera only )\n minZoom = 0\n maxZoom = Infinity\n\n // How far you can orbit vertically, upper and lower limits.\n // Range is 0 to Math.PI radians.\n minPolarAngle = 0\n maxPolarAngle = Math.PI\n\n // How far you can orbit horizontally, upper and lower limits.\n // If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ].\n minAzimuthAngle = -Infinity // radians\n maxAzimuthAngle = Infinity // radians\n\n // Set to true to enable damping (inertia)\n // If damping is enabled, you must call controls.update() in your animation loop\n enableDamping = false\n dampingFactor = 0.05\n\n /**\n * This option enables dollying in and out; property named as \"zoom\" for backwards compatibility\n * Set to false to disable zooming\n */\n enableZoom = true\n zoomSpeed = 1.0\n\n /** Set to false to disable rotating */\n enableRotate = true\n rotateSpeed = 1.0\n\n /** Set to false to disable panning */\n enablePan = true\n panSpeed = 1.0\n /** if true, pan in screen-space */\n screenSpacePanning = false\n /** pixels moved per arrow key push */\n keyPanSpeed = 7.0\n\n /**\n * Set to true to automatically rotate around the target\n * If auto-rotate is enabled, you must call controls.update() in your animation loop\n * auto-rotate is not supported for trackball behavior\n */\n autoRotate = false\n autoRotateSpeed = 2.0 // 30 seconds per round when fps is 60\n\n /** Set to false to disable use of the keys */\n enableKeys = true\n\n /** The four arrow keys */\n keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' }\n\n mouseButtons: {\n LEFT: MOUSE\n MIDDLE?: MOUSE\n RIGHT: MOUSE\n }\n\n /** Touch fingers */\n touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN }\n\n // for reset\n target0: Vector3\n position0: Vector3\n quaternion0: Quaternion\n zoom0: number\n\n // current position in spherical coordinates\n spherical = new Spherical()\n sphericalDelta = new Spherical()\n\n private changeEvent = { type: 'change' }\n private startEvent = { type: 'start' }\n private endEvent = { type: 'end' }\n private state = STATE.NONE\n\n private EPS = 0.000001\n\n private scale = 1\n private panOffset = new Vector3()\n private zoomChanged = false\n\n private rotateStart = new Vector2()\n private rotateEnd = new Vector2()\n private rotateDelta = new Vector2()\n\n private panStart = new Vector2()\n private panEnd = new Vector2()\n private panDelta = new Vector2()\n\n private dollyStart = new Vector2()\n private dollyEnd = new Vector2()\n private dollyDelta = new Vector2()\n\n private offset = new Vector3()\n\n private lastPosition = new Vector3()\n private lastQuaternion = new Quaternion()\n\n private q = new Quaternion()\n private v = new Vector3()\n private vec = new Vector3()\n\n private quat: Quaternion\n private quatInverse: Quaternion\n\n co