summit/frontend/node_modules/three-stdlib/controls/TransformControls.cjs.map

1 line
87 KiB
Plaintext
Raw Normal View History

2025-12-08 16:31:30 +00:00
{"version":3,"file":"TransformControls.cjs","sources":["../../src/controls/TransformControls.ts"],"sourcesContent":["import {\n BoxGeometry,\n BufferGeometry,\n Color,\n CylinderGeometry,\n DoubleSide,\n Euler,\n Float32BufferAttribute,\n Line,\n LineBasicMaterial,\n Material,\n Matrix4,\n Mesh,\n MeshBasicMaterial,\n Object3D,\n OctahedronGeometry,\n OrthographicCamera,\n PerspectiveCamera,\n PlaneGeometry,\n Quaternion,\n Raycaster,\n SphereGeometry,\n Intersection,\n TorusGeometry,\n Vector3,\n Camera,\n Vector2,\n} from 'three'\n\nexport interface TransformControlsPointerObject {\n x: number\n y: number\n button: number\n}\n\nclass TransformControls<TCamera extends Camera = Camera> extends Object3D {\n public readonly isTransformControls = true\n\n public visible = false\n\n private domElement: HTMLElement | undefined\n\n private raycaster = new Raycaster()\n\n private gizmo: TransformControlsGizmo\n private plane: TransformControlsPlane\n\n private tempVector = new Vector3()\n private tempVector2 = new Vector3()\n private tempQuaternion = new Quaternion()\n private unit = {\n X: new Vector3(1, 0, 0),\n Y: new Vector3(0, 1, 0),\n Z: new Vector3(0, 0, 1),\n }\n\n private pointStart = new Vector3()\n private pointEnd = new Vector3()\n private offset = new Vector3()\n private rotationAxis = new Vector3()\n private startNorm = new Vector3()\n private endNorm = new Vector3()\n private rotationAngle = 0\n\n private cameraPosition = new Vector3()\n private cameraQuaternion = new Quaternion()\n private cameraScale = new Vector3()\n\n private parentPosition = new Vector3()\n private parentQuaternion = new Quaternion()\n private parentQuaternionInv = new Quaternion()\n private parentScale = new Vector3()\n\n private worldPositionStart = new Vector3()\n private worldQuaternionStart = new Quaternion()\n private worldScaleStart = new Vector3()\n\n private worldPosition = new Vector3()\n private worldQuaternion = new Quaternion()\n private worldQuaternionInv = new Quaternion()\n private worldScale = new Vector3()\n\n private eye = new Vector3()\n\n private positionStart = new Vector3()\n private quaternionStart = new Quaternion()\n private scaleStart = new Vector3()\n\n private camera: TCamera\n private object: Object3D | undefined\n private enabled = true\n private axis: string | null = null\n private mode: 'translate' | 'rotate' | 'scale' = 'translate'\n private translationSnap: number | null = null\n private rotationSnap: number | null = null\n private scaleSnap: number | null = null\n private space = 'world'\n private size = 1\n private dragging = false\n private showX = true\n private showY = true\n private showZ = true\n\n // events\n private changeEvent = { type: 'change' }\n private mouseDownEvent = { type: 'mouseDown', mode: this.mode }\n private mouseUpEvent = { type: 'mouseUp', mode: this.mode }\n private objectChangeEvent = { type: 'objectChange' }\n\n constructor(camera: TCamera, domElement: HTMLElement | undefined) {\n super()\n\n this.domElement = domElement\n this.camera = camera\n\n this.gizmo = new TransformControlsGizmo()\n this.add(this.gizmo)\n\n this.plane = new TransformControlsPlane()\n this.add(this.plane)\n\n // Defined getter, setter and store for a property\n const defineProperty = <TValue>(propName: string, defaultValue: TValue): void => {\n let propValue = defaultValue\n\n Object.defineProperty(this, propName, {\n get: function () {\n return propValue !== undefined ? propValue : defaultValue\n },\n\n set: function (value) {\n if (propValue !== value) {\n propValue = value\n this.plane[propName] = value\n this.gizmo[propName] = value\n\n this.dispatchEvent({ type: propName + '-changed', value: value })\n this.dispatchEvent(this.changeEvent)\n }\n },\n })\n\n //@ts-ignore\n this[propName] = defaultValue\n // @ts-ignore\n this.plane[propName]