three-stdlib 2.6.3 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{Nodes-ec4e1143.js → Nodes-894ac9dc.js} +0 -0
- package/{Nodes-427f68b0.js → Nodes-af575af7.js} +0 -0
- package/controls/ArcballControls.cjs.js +1 -1
- package/controls/ArcballControls.d.ts +161 -0
- package/controls/ArcballControls.js +554 -285
- package/controls/OrbitControls.cjs.js +1 -1
- package/controls/OrbitControls.d.ts +1 -0
- package/controls/OrbitControls.js +13 -2
- package/controls/TransformControls.cjs.js +1 -1
- package/controls/TransformControls.d.ts +2 -1
- package/controls/TransformControls.js +25 -26
- package/geometries/TeapotGeometry.js +2 -2
- package/geometries/TextGeometry.cjs.js +1 -0
- package/geometries/TextGeometry.d.ts +16 -0
- package/geometries/TextGeometry.js +26 -0
- package/index.cjs.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/loaders/AMFLoader.js +1 -3
- package/loaders/ColladaLoader.cjs.js +1 -1
- package/loaders/ColladaLoader.js +58 -35
- package/loaders/EXRLoader.cjs.js +1 -1
- package/loaders/EXRLoader.js +197 -262
- package/loaders/FBXLoader.cjs.js +1 -1
- package/loaders/FBXLoader.js +41 -90
- package/loaders/FontLoader.cjs.js +1 -0
- package/loaders/FontLoader.d.ts +32 -0
- package/loaders/FontLoader.js +139 -0
- package/loaders/GLTFLoader.cjs.js +1 -1
- package/loaders/GLTFLoader.js +161 -75
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -1
- package/loaders/HDRCubeTextureLoader.js +2 -2
- package/loaders/NodeMaterialLoader.cjs.js +1 -1
- package/loaders/RGBELoader.cjs.js +1 -1
- package/loaders/RGBELoader.js +10 -9
- package/loaders/RGBMLoader.cjs.js +1 -1
- package/loaders/RGBMLoader.js +181 -257
- package/loaders/STLLoader.js +7 -7
- package/loaders/SVGLoader.cjs.js +1 -1
- package/loaders/SVGLoader.js +46 -30
- package/loaders/VRMLLoader.cjs.js +1 -1
- package/loaders/VRMLLoader.js +2 -1
- package/nodes/accessors/CameraNode.js +12 -12
- package/nodes/accessors/PositionNode.js +3 -3
- package/nodes/accessors/ReflectNode.js +3 -3
- package/nodes/core/FunctionNode.js +3 -3
- package/nodes/core/InputNode.js +3 -3
- package/nodes/core/Node.js +6 -6
- package/nodes/core/TempNode.js +6 -6
- package/nodes/effects/BlurNode.js +3 -3
- package/nodes/math/MathNode.js +3 -3
- package/nodes/utils/VelocityNode.js +6 -6
- package/package.json +2 -2
- package/renderers/nodes/accessors/UVNode.js +1 -3
- package/renderers/nodes/core/AttributeNode.js +1 -3
- package/renderers/nodes/core/Node.js +4 -12
- package/renderers/nodes/core/NodeBuilder.js +6 -18
- package/webxr/ARButton.js +6 -6
- package/webxr/VRButton.js +6 -6
| @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
         | 
| 2 2 | 
             
            import { Matrix4, EventDispatcher, EllipseCurve, BufferGeometry, MathUtils, Vector3, GridHelper, LineBasicMaterial, Line, Raycaster, Vector2, Quaternion, Group, Box3, Sphere } from 'three';
         | 
| 3 3 |  | 
| 4 | 
            +
            //trackball state
         | 
| 4 5 | 
             
            const STATE = {
         | 
| 5 6 | 
             
              IDLE: Symbol(),
         | 
| 6 7 | 
             
              ROTATE: Symbol(),
         | 
| @@ -43,25 +44,211 @@ const _endEvent = { | |
| 43 44 | 
             
            };
         | 
| 44 45 | 
             
            /**
         | 
| 45 46 | 
             
             *
         | 
| 46 | 
            -
             * @param { | 
| 47 | 
            -
             * @param {HTMLElement} domElement Renderer's dom element
         | 
| 48 | 
            -
             * @param {Scene} scene The scene to be rendered
         | 
| 47 | 
            +
             * @param {CamOrthographicCamera | PerspectiveCameraera} camera Virtual camera used in the scene
         | 
| 48 | 
            +
             * @param {HTMLElement=null} domElement Renderer's dom element
         | 
| 49 | 
            +
             * @param {Scene=null} scene The scene to be rendered
         | 
| 49 50 | 
             
             */
         | 
| 50 51 |  | 
| 51 52 | 
             
            class ArcballControls extends EventDispatcher {
         | 
| 52 | 
            -
              constructor(_camera, _domElement, scene = null) {
         | 
| 53 | 
            +
              constructor(_camera, _domElement = null, scene = null) {
         | 
| 53 54 | 
             
                super();
         | 
| 54 55 |  | 
| 56 | 
            +
                _defineProperty(this, "camera", void 0);
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                _defineProperty(this, "domElement", void 0);
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                _defineProperty(this, "scene", void 0);
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                _defineProperty(this, "mouseActions", void 0);
         | 
| 63 | 
            +
             | 
| 64 | 
            +
                _defineProperty(this, "_mouseOp", void 0);
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                _defineProperty(this, "_v2_1", void 0);
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                _defineProperty(this, "_v3_1", void 0);
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                _defineProperty(this, "_v3_2", void 0);
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                _defineProperty(this, "_m4_1", void 0);
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                _defineProperty(this, "_m4_2", void 0);
         | 
| 75 | 
            +
             | 
| 76 | 
            +
                _defineProperty(this, "_quat", void 0);
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                _defineProperty(this, "_translationMatrix", void 0);
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                _defineProperty(this, "_rotationMatrix", void 0);
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                _defineProperty(this, "_scaleMatrix", void 0);
         | 
| 83 | 
            +
             | 
| 84 | 
            +
                _defineProperty(this, "_rotationAxis", void 0);
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                _defineProperty(this, "_cameraMatrixState", void 0);
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                _defineProperty(this, "_cameraProjectionState", void 0);
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                _defineProperty(this, "_fovState", void 0);
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                _defineProperty(this, "_upState", void 0);
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                _defineProperty(this, "_zoomState", void 0);
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                _defineProperty(this, "_nearPos", void 0);
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                _defineProperty(this, "_farPos", void 0);
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                _defineProperty(this, "_gizmoMatrixState", void 0);
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                _defineProperty(this, "_up0", void 0);
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                _defineProperty(this, "_zoom0", void 0);
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                _defineProperty(this, "_fov0", void 0);
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                _defineProperty(this, "_initialNear", void 0);
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                _defineProperty(this, "_nearPos0", void 0);
         | 
| 111 | 
            +
             | 
| 112 | 
            +
                _defineProperty(this, "_initialFar", void 0);
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                _defineProperty(this, "_farPos0", void 0);
         | 
| 115 | 
            +
             | 
| 116 | 
            +
                _defineProperty(this, "_cameraMatrixState0", void 0);
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                _defineProperty(this, "_gizmoMatrixState0", void 0);
         | 
| 119 | 
            +
             | 
| 120 | 
            +
                _defineProperty(this, "_button", void 0);
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                _defineProperty(this, "_touchStart", void 0);
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                _defineProperty(this, "_touchCurrent", void 0);
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                _defineProperty(this, "_input", void 0);
         | 
| 127 | 
            +
             | 
| 128 | 
            +
                _defineProperty(this, "_switchSensibility", void 0);
         | 
| 129 | 
            +
             | 
| 130 | 
            +
                _defineProperty(this, "_startFingerDistance", void 0);
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                _defineProperty(this, "_currentFingerDistance", void 0);
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                _defineProperty(this, "_startFingerRotation", void 0);
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                _defineProperty(this, "_currentFingerRotation", void 0);
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                _defineProperty(this, "_devPxRatio", void 0);
         | 
| 139 | 
            +
             | 
| 140 | 
            +
                _defineProperty(this, "_downValid", void 0);
         | 
| 141 | 
            +
             | 
| 142 | 
            +
                _defineProperty(this, "_nclicks", void 0);
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                _defineProperty(this, "_downEvents", void 0);
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                _defineProperty(this, "_clickStart", void 0);
         | 
| 147 | 
            +
             | 
| 148 | 
            +
                _defineProperty(this, "_maxDownTime", void 0);
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                _defineProperty(this, "_maxInterval", void 0);
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                _defineProperty(this, "_posThreshold", void 0);
         | 
| 153 | 
            +
             | 
| 154 | 
            +
                _defineProperty(this, "_movementThreshold", void 0);
         | 
| 155 | 
            +
             | 
| 156 | 
            +
                _defineProperty(this, "_currentCursorPosition", void 0);
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                _defineProperty(this, "_startCursorPosition", void 0);
         | 
| 159 | 
            +
             | 
| 160 | 
            +
                _defineProperty(this, "_grid", void 0);
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                _defineProperty(this, "_gridPosition", void 0);
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                _defineProperty(this, "_gizmos", void 0);
         | 
| 165 | 
            +
             | 
| 166 | 
            +
                _defineProperty(this, "_curvePts", void 0);
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                _defineProperty(this, "_timeStart", void 0);
         | 
| 169 | 
            +
             | 
| 170 | 
            +
                _defineProperty(this, "_animationId", void 0);
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                _defineProperty(this, "focusAnimationTime", void 0);
         | 
| 173 | 
            +
             | 
| 174 | 
            +
                _defineProperty(this, "_timePrev", void 0);
         | 
| 175 | 
            +
             | 
| 176 | 
            +
                _defineProperty(this, "_timeCurrent", void 0);
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                _defineProperty(this, "_anglePrev", void 0);
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                _defineProperty(this, "_angleCurrent", void 0);
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                _defineProperty(this, "_cursorPosPrev", void 0);
         | 
| 183 | 
            +
             | 
| 184 | 
            +
                _defineProperty(this, "_cursorPosCurr", void 0);
         | 
| 185 | 
            +
             | 
| 186 | 
            +
                _defineProperty(this, "_wPrev", void 0);
         | 
| 187 | 
            +
             | 
| 188 | 
            +
                _defineProperty(this, "_wCurr", void 0);
         | 
| 189 | 
            +
             | 
| 190 | 
            +
                _defineProperty(this, "adjustNearFar", void 0);
         | 
| 191 | 
            +
             | 
| 192 | 
            +
                _defineProperty(this, "scaleFactor", void 0);
         | 
| 193 | 
            +
             | 
| 194 | 
            +
                _defineProperty(this, "dampingFactor", void 0);
         | 
| 195 | 
            +
             | 
| 196 | 
            +
                _defineProperty(this, "wMax", void 0);
         | 
| 197 | 
            +
             | 
| 198 | 
            +
                _defineProperty(this, "enableAnimations", void 0);
         | 
| 199 | 
            +
             | 
| 200 | 
            +
                _defineProperty(this, "enableGrid", void 0);
         | 
| 201 | 
            +
             | 
| 202 | 
            +
                _defineProperty(this, "cursorZoom", void 0);
         | 
| 203 | 
            +
             | 
| 204 | 
            +
                _defineProperty(this, "minFov", void 0);
         | 
| 205 | 
            +
             | 
| 206 | 
            +
                _defineProperty(this, "maxFov", void 0);
         | 
| 207 | 
            +
             | 
| 208 | 
            +
                _defineProperty(this, "enabled", void 0);
         | 
| 209 | 
            +
             | 
| 210 | 
            +
                _defineProperty(this, "enablePan", void 0);
         | 
| 211 | 
            +
             | 
| 212 | 
            +
                _defineProperty(this, "enableRotate", void 0);
         | 
| 213 | 
            +
             | 
| 214 | 
            +
                _defineProperty(this, "enableZoom", void 0);
         | 
| 215 | 
            +
             | 
| 216 | 
            +
                _defineProperty(this, "minDistance", void 0);
         | 
| 217 | 
            +
             | 
| 218 | 
            +
                _defineProperty(this, "maxDistance", void 0);
         | 
| 219 | 
            +
             | 
| 220 | 
            +
                _defineProperty(this, "minZoom", void 0);
         | 
| 221 | 
            +
             | 
| 222 | 
            +
                _defineProperty(this, "maxZoom", void 0);
         | 
| 223 | 
            +
             | 
| 224 | 
            +
                _defineProperty(this, "target", void 0);
         | 
| 225 | 
            +
             | 
| 226 | 
            +
                _defineProperty(this, "_currentTarget", void 0);
         | 
| 227 | 
            +
             | 
| 228 | 
            +
                _defineProperty(this, "_tbRadius", void 0);
         | 
| 229 | 
            +
             | 
| 230 | 
            +
                _defineProperty(this, "_state", void 0);
         | 
| 231 | 
            +
             | 
| 55 232 | 
             
                _defineProperty(this, "onWindowResize", () => {
         | 
| 56 233 | 
             
                  const scale = (this._gizmos.scale.x + this._gizmos.scale.y + this._gizmos.scale.z) / 3;
         | 
| 57 | 
            -
             | 
| 58 | 
            -
                   | 
| 234 | 
            +
             | 
| 235 | 
            +
                  if (this.camera) {
         | 
| 236 | 
            +
                    const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 237 | 
            +
             | 
| 238 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 239 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 240 | 
            +
                    }
         | 
| 241 | 
            +
                  }
         | 
| 242 | 
            +
             | 
| 243 | 
            +
                  const newRadius = this._tbRadius / scale; // @ts-expect-error
         | 
| 244 | 
            +
             | 
| 59 245 | 
             
                  const curve = new EllipseCurve(0, 0, newRadius, newRadius);
         | 
| 60 246 | 
             
                  const points = curve.getPoints(this._curvePts);
         | 
| 61 247 | 
             
                  const curveGeometry = new BufferGeometry().setFromPoints(points);
         | 
| 62 248 |  | 
| 63 249 | 
             
                  for (const gizmo in this._gizmos.children) {
         | 
| 64 | 
            -
                    this._gizmos.children[gizmo] | 
| 250 | 
            +
                    const child = this._gizmos.children[gizmo];
         | 
| 251 | 
            +
                    child.geometry = curveGeometry;
         | 
| 65 252 | 
             
                  }
         | 
| 66 253 |  | 
| 67 254 | 
             
                  this.dispatchEvent(_changeEvent);
         | 
| @@ -94,8 +281,6 @@ class ArcballControls extends EventDispatcher { | |
| 94 281 | 
             
                    this._downValid = true;
         | 
| 95 282 |  | 
| 96 283 | 
             
                    this._downEvents.push(event);
         | 
| 97 | 
            -
             | 
| 98 | 
            -
                    this._downStart = performance.now();
         | 
| 99 284 | 
             
                  } else {
         | 
| 100 285 | 
             
                    this._downValid = false;
         | 
| 101 286 | 
             
                  }
         | 
| @@ -126,7 +311,7 @@ class ArcballControls extends EventDispatcher { | |
| 126 311 | 
             
                      case INPUT.TWO_FINGER:
         | 
| 127 312 | 
             
                        //multipleStart
         | 
| 128 313 | 
             
                        this._input = INPUT.MULT_FINGER;
         | 
| 129 | 
            -
                        this.onTriplePanStart( | 
| 314 | 
            +
                        this.onTriplePanStart();
         | 
| 130 315 | 
             
                        break;
         | 
| 131 316 | 
             
                    }
         | 
| 132 317 | 
             
                  } else if (event.pointerType != 'touch' && this._input == INPUT.NONE) {
         | 
| @@ -140,7 +325,7 @@ class ArcballControls extends EventDispatcher { | |
| 140 325 |  | 
| 141 326 | 
             
                    this._mouseOp = this.getOpFromAction(event.button, modifier);
         | 
| 142 327 |  | 
| 143 | 
            -
                    if (this._mouseOp | 
| 328 | 
            +
                    if (this._mouseOp) {
         | 
| 144 329 | 
             
                      window.addEventListener('pointermove', this.onPointerMove);
         | 
| 145 330 | 
             
                      window.addEventListener('pointerup', this.onPointerUp); //singleStart
         | 
| 146 331 |  | 
| @@ -184,7 +369,7 @@ class ArcballControls extends EventDispatcher { | |
| 184 369 | 
             
                      case INPUT.MULT_FINGER:
         | 
| 185 370 | 
             
                        //multMove
         | 
| 186 371 | 
             
                        this.updateTouchEvent(event);
         | 
| 187 | 
            -
                        this.onTriplePanMove( | 
| 372 | 
            +
                        this.onTriplePanMove();
         | 
| 188 373 | 
             
                        break;
         | 
| 189 374 | 
             
                    }
         | 
| 190 375 | 
             
                  } else if (event.pointerType != 'touch' && this._input == INPUT.CURSOR) {
         | 
| @@ -198,7 +383,7 @@ class ArcballControls extends EventDispatcher { | |
| 198 383 |  | 
| 199 384 | 
             
                    const mouseOpState = this.getOpStateFromAction(this._button, modifier);
         | 
| 200 385 |  | 
| 201 | 
            -
                    if (mouseOpState | 
| 386 | 
            +
                    if (mouseOpState) {
         | 
| 202 387 | 
             
                      this.onSinglePanMove(event, mouseOpState);
         | 
| 203 388 | 
             
                    }
         | 
| 204 389 | 
             
                  } //checkDistance
         | 
| @@ -239,9 +424,9 @@ class ArcballControls extends EventDispatcher { | |
| 239 424 |  | 
| 240 425 | 
             
                      case INPUT.TWO_FINGER:
         | 
| 241 426 | 
             
                        //doubleEnd
         | 
| 242 | 
            -
                        this.onDoublePanEnd( | 
| 243 | 
            -
                        this.onPinchEnd( | 
| 244 | 
            -
                        this.onRotateEnd( | 
| 427 | 
            +
                        this.onDoublePanEnd();
         | 
| 428 | 
            +
                        this.onPinchEnd();
         | 
| 429 | 
            +
                        this.onRotateEnd(); //switching to singleStart
         | 
| 245 430 |  | 
| 246 431 | 
             
                        this._input = INPUT.ONE_FINGER_SWITCHED;
         | 
| 247 432 | 
             
                        break;
         | 
| @@ -311,7 +496,9 @@ class ArcballControls extends EventDispatcher { | |
| 311 496 | 
             
                });
         | 
| 312 497 |  | 
| 313 498 | 
             
                _defineProperty(this, "onWheel", event => {
         | 
| 314 | 
            -
                   | 
| 499 | 
            +
                  var _this$camera3;
         | 
| 500 | 
            +
             | 
| 501 | 
            +
                  if (this.enabled && this.enableZoom && this.domElement) {
         | 
| 315 502 | 
             
                    let modifier = null;
         | 
| 316 503 |  | 
| 317 504 | 
             
                    if (event.ctrlKey || event.metaKey) {
         | 
| @@ -322,7 +509,7 @@ class ArcballControls extends EventDispatcher { | |
| 322 509 |  | 
| 323 510 | 
             
                    const mouseOp = this.getOpFromAction('WHEEL', modifier);
         | 
| 324 511 |  | 
| 325 | 
            -
                    if (mouseOp | 
| 512 | 
            +
                    if (mouseOp) {
         | 
| 326 513 | 
             
                      event.preventDefault();
         | 
| 327 514 | 
             
                      this.dispatchEvent(_startEvent);
         | 
| 328 515 | 
             
                      const notchDeltaY = 125; //distance of one notch of mouse wheel
         | 
| @@ -347,20 +534,28 @@ class ArcballControls extends EventDispatcher { | |
| 347 534 | 
             
                          }
         | 
| 348 535 |  | 
| 349 536 | 
             
                          if (this.cursorZoom && this.enablePan) {
         | 
| 537 | 
            +
                            var _this$camera, _this$camera2;
         | 
| 538 | 
            +
             | 
| 350 539 | 
             
                            let scalePoint;
         | 
| 351 540 |  | 
| 352 | 
            -
                            if (this.camera. | 
| 353 | 
            -
                               | 
| 354 | 
            -
             | 
| 355 | 
            -
                              scalePoint = this.unprojectOnTbPlane(this.camera, event.clientX, event.clientY, this.domElement).applyQuaternion(this.camera.quaternion).add(this._gizmos.position);
         | 
| 541 | 
            +
                            if (((_this$camera = this.camera) === null || _this$camera === void 0 ? void 0 : _this$camera.type) === 'OrthographicCamera') {
         | 
| 542 | 
            +
                              var _this$unprojectOnTbPl;
         | 
| 543 | 
            +
             | 
| 544 | 
            +
                              scalePoint = (_this$unprojectOnTbPl = this.unprojectOnTbPlane(this.camera, event.clientX, event.clientY, this.domElement)) === null || _this$unprojectOnTbPl === void 0 ? void 0 : _this$unprojectOnTbPl.applyQuaternion(this.camera.quaternion).multiplyScalar(1 / this.camera.zoom).add(this._gizmos.position);
         | 
| 545 | 
            +
                            }
         | 
| 546 | 
            +
             | 
| 547 | 
            +
                            if (((_this$camera2 = this.camera) === null || _this$camera2 === void 0 ? void 0 : _this$camera2.type) === 'PerspectiveCamera') {
         | 
| 548 | 
            +
                              var _this$unprojectOnTbPl2;
         | 
| 549 | 
            +
             | 
| 550 | 
            +
                              scalePoint = (_this$unprojectOnTbPl2 = this.unprojectOnTbPlane(this.camera, event.clientX, event.clientY, this.domElement)) === null || _this$unprojectOnTbPl2 === void 0 ? void 0 : _this$unprojectOnTbPl2.applyQuaternion(this.camera.quaternion).add(this._gizmos.position);
         | 
| 356 551 | 
             
                            }
         | 
| 357 552 |  | 
| 358 | 
            -
                            this.applyTransformMatrix(this.applyScale(size, scalePoint));
         | 
| 553 | 
            +
                            if (scalePoint !== undefined) this.applyTransformMatrix(this.applyScale(size, scalePoint));
         | 
| 359 554 | 
             
                          } else {
         | 
| 360 555 | 
             
                            this.applyTransformMatrix(this.applyScale(size, this._gizmos.position));
         | 
| 361 556 | 
             
                          }
         | 
| 362 557 |  | 
| 363 | 
            -
                          if (this._grid | 
| 558 | 
            +
                          if (this._grid) {
         | 
| 364 559 | 
             
                            this.disposeGrid();
         | 
| 365 560 | 
             
                            this.drawGrid();
         | 
| 366 561 | 
             
                          }
         | 
| @@ -371,7 +566,7 @@ class ArcballControls extends EventDispatcher { | |
| 371 566 | 
             
                          break;
         | 
| 372 567 |  | 
| 373 568 | 
             
                        case 'FOV':
         | 
| 374 | 
            -
                          if (this.camera. | 
| 569 | 
            +
                          if (((_this$camera3 = this.camera) === null || _this$camera3 === void 0 ? void 0 : _this$camera3.type) === 'PerspectiveCamera') {
         | 
| 375 570 | 
             
                            this.updateTbState(STATE.FOV, true); //Vertigo effect
         | 
| 376 571 | 
             
                            //	  fov / 2
         | 
| 377 572 | 
             
                            //		|\
         | 
| @@ -419,7 +614,7 @@ class ArcballControls extends EventDispatcher { | |
| 419 614 | 
             
                            this.applyTransformMatrix(this.applyScale(size, this._gizmos.position, false));
         | 
| 420 615 | 
             
                          }
         | 
| 421 616 |  | 
| 422 | 
            -
                          if (this._grid | 
| 617 | 
            +
                          if (this._grid) {
         | 
| 423 618 | 
             
                            this.disposeGrid();
         | 
| 424 619 | 
             
                            this.drawGrid();
         | 
| 425 620 | 
             
                          }
         | 
| @@ -433,28 +628,16 @@ class ArcballControls extends EventDispatcher { | |
| 433 628 | 
             
                  }
         | 
| 434 629 | 
             
                });
         | 
| 435 630 |  | 
| 436 | 
            -
                _defineProperty(this, "onKeyDown", event => {
         | 
| 437 | 
            -
                  if (event.key == 'c') {
         | 
| 438 | 
            -
                    if (event.ctrlKey || event.metaKey) {
         | 
| 439 | 
            -
                      this.copyState();
         | 
| 440 | 
            -
                    }
         | 
| 441 | 
            -
                  } else if (event.key == 'v') {
         | 
| 442 | 
            -
                    if (event.ctrlKey || event.metaKey) {
         | 
| 443 | 
            -
                      this.pasteState();
         | 
| 444 | 
            -
                    }
         | 
| 445 | 
            -
                  }
         | 
| 446 | 
            -
                });
         | 
| 447 | 
            -
             | 
| 448 631 | 
             
                _defineProperty(this, "onSinglePanStart", (event, operation) => {
         | 
| 449 | 
            -
                   | 
| 632 | 
            +
                  var _this$camera4;
         | 
| 633 | 
            +
             | 
| 634 | 
            +
                  if (this.enabled && this.domElement) {
         | 
| 450 635 | 
             
                    this.dispatchEvent(_startEvent);
         | 
| 451 636 | 
             
                    this.setCenter(event.clientX, event.clientY);
         | 
| 452 637 |  | 
| 453 638 | 
             
                    switch (operation) {
         | 
| 454 639 | 
             
                      case 'PAN':
         | 
| 455 | 
            -
                        if (!this.enablePan)  | 
| 456 | 
            -
                          return;
         | 
| 457 | 
            -
                        }
         | 
| 640 | 
            +
                        if (!this.enablePan) return;
         | 
| 458 641 |  | 
| 459 642 | 
             
                        if (this._animationId != -1) {
         | 
| 460 643 | 
             
                          cancelAnimationFrame(this._animationId);
         | 
| @@ -464,21 +647,24 @@ class ArcballControls extends EventDispatcher { | |
| 464 647 | 
             
                          this.dispatchEvent(_changeEvent);
         | 
| 465 648 | 
             
                        }
         | 
| 466 649 |  | 
| 467 | 
            -
                        this. | 
| 650 | 
            +
                        if (this.camera) {
         | 
| 651 | 
            +
                          this.updateTbState(STATE.PAN, true);
         | 
| 652 | 
            +
                          const rayDir = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement);
         | 
| 468 653 |  | 
| 469 | 
            -
             | 
| 654 | 
            +
                          if (rayDir !== undefined) {
         | 
| 655 | 
            +
                            this._startCursorPosition.copy(rayDir);
         | 
| 656 | 
            +
                          }
         | 
| 470 657 |  | 
| 471 | 
            -
             | 
| 472 | 
            -
             | 
| 473 | 
            -
             | 
| 658 | 
            +
                          if (this.enableGrid) {
         | 
| 659 | 
            +
                            this.drawGrid();
         | 
| 660 | 
            +
                            this.dispatchEvent(_changeEvent);
         | 
| 661 | 
            +
                          }
         | 
| 474 662 | 
             
                        }
         | 
| 475 663 |  | 
| 476 664 | 
             
                        break;
         | 
| 477 665 |  | 
| 478 666 | 
             
                      case 'ROTATE':
         | 
| 479 | 
            -
                        if (!this.enableRotate)  | 
| 480 | 
            -
                          return;
         | 
| 481 | 
            -
                        }
         | 
| 667 | 
            +
                        if (!this.enableRotate) return;
         | 
| 482 668 |  | 
| 483 669 | 
             
                        if (this._animationId != -1) {
         | 
| 484 670 | 
             
                          cancelAnimationFrame(this._animationId);
         | 
| @@ -486,52 +672,55 @@ class ArcballControls extends EventDispatcher { | |
| 486 672 | 
             
                          this._timeStart = -1;
         | 
| 487 673 | 
             
                        }
         | 
| 488 674 |  | 
| 489 | 
            -
                        this. | 
| 675 | 
            +
                        if (this.camera) {
         | 
| 676 | 
            +
                          this.updateTbState(STATE.ROTATE, true);
         | 
| 677 | 
            +
                          const rayDir = this.unprojectOnTbSurface(this.camera, _center.x, _center.y, this.domElement, this._tbRadius);
         | 
| 490 678 |  | 
| 491 | 
            -
             | 
| 679 | 
            +
                          if (rayDir !== undefined) {
         | 
| 680 | 
            +
                            this._startCursorPosition.copy(rayDir);
         | 
| 681 | 
            +
                          }
         | 
| 492 682 |  | 
| 493 | 
            -
             | 
| 683 | 
            +
                          this.activateGizmos(true);
         | 
| 494 684 |  | 
| 495 | 
            -
             | 
| 496 | 
            -
             | 
| 497 | 
            -
             | 
| 685 | 
            +
                          if (this.enableAnimations) {
         | 
| 686 | 
            +
                            this._timePrev = this._timeCurrent = performance.now();
         | 
| 687 | 
            +
                            this._angleCurrent = this._anglePrev = 0;
         | 
| 498 688 |  | 
| 499 | 
            -
             | 
| 689 | 
            +
                            this._cursorPosPrev.copy(this._startCursorPosition);
         | 
| 500 690 |  | 
| 501 | 
            -
             | 
| 691 | 
            +
                            this._cursorPosCurr.copy(this._cursorPosPrev);
         | 
| 502 692 |  | 
| 503 | 
            -
             | 
| 504 | 
            -
             | 
| 693 | 
            +
                            this._wCurr = 0;
         | 
| 694 | 
            +
                            this._wPrev = this._wCurr;
         | 
| 695 | 
            +
                          }
         | 
| 505 696 | 
             
                        }
         | 
| 506 697 |  | 
| 507 698 | 
             
                        this.dispatchEvent(_changeEvent);
         | 
| 508 699 | 
             
                        break;
         | 
| 509 700 |  | 
| 510 701 | 
             
                      case 'FOV':
         | 
| 511 | 
            -
                        if (!this. | 
| 512 | 
            -
                          return;
         | 
| 513 | 
            -
                        }
         | 
| 702 | 
            +
                        if (!this.enableZoom) return;
         | 
| 514 703 |  | 
| 515 | 
            -
                        if (this. | 
| 516 | 
            -
                           | 
| 517 | 
            -
             | 
| 518 | 
            -
             | 
| 519 | 
            -
             | 
| 520 | 
            -
             | 
| 521 | 
            -
             | 
| 704 | 
            +
                        if (((_this$camera4 = this.camera) === null || _this$camera4 === void 0 ? void 0 : _this$camera4.type) === 'PerspectiveCamera') {
         | 
| 705 | 
            +
                          if (this._animationId != -1) {
         | 
| 706 | 
            +
                            cancelAnimationFrame(this._animationId);
         | 
| 707 | 
            +
                            this._animationId = -1;
         | 
| 708 | 
            +
                            this._timeStart = -1;
         | 
| 709 | 
            +
                            this.activateGizmos(false);
         | 
| 710 | 
            +
                            this.dispatchEvent(_changeEvent);
         | 
| 711 | 
            +
                          }
         | 
| 522 712 |  | 
| 523 | 
            -
             | 
| 713 | 
            +
                          this.updateTbState(STATE.FOV, true);
         | 
| 524 714 |  | 
| 525 | 
            -
             | 
| 715 | 
            +
                          this._startCursorPosition.setY(this.getCursorNDC(_center.x, _center.y, this.domElement).y * 0.5);
         | 
| 526 716 |  | 
| 527 | 
            -
             | 
| 717 | 
            +
                          this._currentCursorPosition.copy(this._startCursorPosition);
         | 
| 718 | 
            +
                        }
         | 
| 528 719 |  | 
| 529 720 | 
             
                        break;
         | 
| 530 721 |  | 
| 531 722 | 
             
                      case 'ZOOM':
         | 
| 532 | 
            -
                        if (!this.enableZoom)  | 
| 533 | 
            -
                          return;
         | 
| 534 | 
            -
                        }
         | 
| 723 | 
            +
                        if (!this.enableZoom) return;
         | 
| 535 724 |  | 
| 536 725 | 
             
                        if (this._animationId != -1) {
         | 
| 537 726 | 
             
                          cancelAnimationFrame(this._animationId);
         | 
| @@ -553,20 +742,25 @@ class ArcballControls extends EventDispatcher { | |
| 553 742 | 
             
                });
         | 
| 554 743 |  | 
| 555 744 | 
             
                _defineProperty(this, "onSinglePanMove", (event, opState) => {
         | 
| 556 | 
            -
                   | 
| 745 | 
            +
                  var _this$camera5;
         | 
| 746 | 
            +
             | 
| 747 | 
            +
                  if (this.enabled && this.domElement) {
         | 
| 557 748 | 
             
                    const restart = opState != this._state;
         | 
| 558 749 | 
             
                    this.setCenter(event.clientX, event.clientY);
         | 
| 559 750 |  | 
| 560 751 | 
             
                    switch (opState) {
         | 
| 561 752 | 
             
                      case STATE.PAN:
         | 
| 562 | 
            -
                        if (this.enablePan) {
         | 
| 753 | 
            +
                        if (this.enablePan && this.camera) {
         | 
| 563 754 | 
             
                          if (restart) {
         | 
| 564 755 | 
             
                            //switch to pan operation
         | 
| 565 756 | 
             
                            this.dispatchEvent(_endEvent);
         | 
| 566 757 | 
             
                            this.dispatchEvent(_startEvent);
         | 
| 567 758 | 
             
                            this.updateTbState(opState, true);
         | 
| 759 | 
            +
                            const rayDir = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement);
         | 
| 568 760 |  | 
| 569 | 
            -
                             | 
| 761 | 
            +
                            if (rayDir !== undefined) {
         | 
| 762 | 
            +
                              this._startCursorPosition.copy(rayDir);
         | 
| 763 | 
            +
                            }
         | 
| 570 764 |  | 
| 571 765 | 
             
                            if (this.enableGrid) {
         | 
| 572 766 | 
             
                              this.drawGrid();
         | 
| @@ -575,7 +769,11 @@ class ArcballControls extends EventDispatcher { | |
| 575 769 | 
             
                            this.activateGizmos(false);
         | 
| 576 770 | 
             
                          } else {
         | 
| 577 771 | 
             
                            //continue with pan operation
         | 
| 578 | 
            -
                            this. | 
| 772 | 
            +
                            const rayDir = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement);
         | 
| 773 | 
            +
             | 
| 774 | 
            +
                            if (rayDir !== undefined) {
         | 
| 775 | 
            +
                              this._currentCursorPosition.copy(rayDir);
         | 
| 776 | 
            +
                            }
         | 
| 579 777 |  | 
| 580 778 | 
             
                            this.applyTransformMatrix(this.pan(this._startCursorPosition, this._currentCursorPosition));
         | 
| 581 779 | 
             
                          }
         | 
| @@ -584,14 +782,17 @@ class ArcballControls extends EventDispatcher { | |
| 584 782 | 
             
                        break;
         | 
| 585 783 |  | 
| 586 784 | 
             
                      case STATE.ROTATE:
         | 
| 587 | 
            -
                        if (this.enableRotate) {
         | 
| 785 | 
            +
                        if (this.enableRotate && this.camera) {
         | 
| 588 786 | 
             
                          if (restart) {
         | 
| 589 787 | 
             
                            //switch to rotate operation
         | 
| 590 788 | 
             
                            this.dispatchEvent(_endEvent);
         | 
| 591 789 | 
             
                            this.dispatchEvent(_startEvent);
         | 
| 592 790 | 
             
                            this.updateTbState(opState, true);
         | 
| 791 | 
            +
                            const rayDir = this.unprojectOnTbSurface(this.camera, _center.x, _center.y, this.domElement, this._tbRadius);
         | 
| 593 792 |  | 
| 594 | 
            -
                             | 
| 793 | 
            +
                            if (rayDir !== undefined) {
         | 
| 794 | 
            +
                              this._startCursorPosition.copy(rayDir);
         | 
| 795 | 
            +
                            }
         | 
| 595 796 |  | 
| 596 797 | 
             
                            if (this.enableGrid) {
         | 
| 597 798 | 
             
                              this.disposeGrid();
         | 
| @@ -600,7 +801,11 @@ class ArcballControls extends EventDispatcher { | |
| 600 801 | 
             
                            this.activateGizmos(true);
         | 
| 601 802 | 
             
                          } else {
         | 
| 602 803 | 
             
                            //continue with rotate operation
         | 
| 603 | 
            -
                            this. | 
| 804 | 
            +
                            const rayDir = this.unprojectOnTbSurface(this.camera, _center.x, _center.y, this.domElement, this._tbRadius);
         | 
| 805 | 
            +
             | 
| 806 | 
            +
                            if (rayDir !== undefined) {
         | 
| 807 | 
            +
                              this._currentCursorPosition.copy(rayDir);
         | 
| 808 | 
            +
                            }
         | 
| 604 809 |  | 
| 605 810 | 
             
                            const distance = this._startCursorPosition.distanceTo(this._currentCursorPosition);
         | 
| 606 811 |  | 
| @@ -667,7 +872,7 @@ class ArcballControls extends EventDispatcher { | |
| 667 872 | 
             
                        break;
         | 
| 668 873 |  | 
| 669 874 | 
             
                      case STATE.FOV:
         | 
| 670 | 
            -
                        if (this.enableZoom && this.camera. | 
| 875 | 
            +
                        if (this.enableZoom && ((_this$camera5 = this.camera) === null || _this$camera5 === void 0 ? void 0 : _this$camera5.type) === 'PerspectiveCamera') {
         | 
| 671 876 | 
             
                          if (restart) {
         | 
| 672 877 | 
             
                            //switch to fov operation
         | 
| 673 878 | 
             
                            this.dispatchEvent(_endEvent);
         | 
| @@ -776,12 +981,12 @@ class ArcballControls extends EventDispatcher { | |
| 776 981 | 
             
                });
         | 
| 777 982 |  | 
| 778 983 | 
             
                _defineProperty(this, "onDoubleTap", event => {
         | 
| 779 | 
            -
                  if (this.enabled && this.enablePan && this.scene  | 
| 984 | 
            +
                  if (this.enabled && this.enablePan && this.scene && this.camera && this.domElement) {
         | 
| 780 985 | 
             
                    this.dispatchEvent(_startEvent);
         | 
| 781 986 | 
             
                    this.setCenter(event.clientX, event.clientY);
         | 
| 782 987 | 
             
                    const hitP = this.unprojectOnObj(this.getCursorNDC(_center.x, _center.y, this.domElement), this.camera);
         | 
| 783 988 |  | 
| 784 | 
            -
                    if (hitP  | 
| 989 | 
            +
                    if (hitP && this.enableAnimations) {
         | 
| 785 990 | 
             
                      const self = this;
         | 
| 786 991 |  | 
| 787 992 | 
             
                      if (this._animationId != -1) {
         | 
| @@ -793,7 +998,7 @@ class ArcballControls extends EventDispatcher { | |
| 793 998 | 
             
                        self.updateTbState(STATE.ANIMATION_FOCUS, true);
         | 
| 794 999 | 
             
                        self.onFocusAnim(t, hitP, self._cameraMatrixState, self._gizmoMatrixState);
         | 
| 795 1000 | 
             
                      });
         | 
| 796 | 
            -
                    } else if (hitP  | 
| 1001 | 
            +
                    } else if (hitP && !this.enableAnimations) {
         | 
| 797 1002 | 
             
                      this.updateTbState(STATE.FOCUS, true);
         | 
| 798 1003 | 
             
                      this.focus(hitP, this.scaleFactor);
         | 
| 799 1004 | 
             
                      this.updateTbState(STATE.IDLE, false);
         | 
| @@ -805,12 +1010,15 @@ class ArcballControls extends EventDispatcher { | |
| 805 1010 | 
             
                });
         | 
| 806 1011 |  | 
| 807 1012 | 
             
                _defineProperty(this, "onDoublePanStart", () => {
         | 
| 808 | 
            -
                  if (this.enabled && this.enablePan) {
         | 
| 1013 | 
            +
                  if (this.enabled && this.enablePan && this.camera && this.domElement) {
         | 
| 809 1014 | 
             
                    this.dispatchEvent(_startEvent);
         | 
| 810 1015 | 
             
                    this.updateTbState(STATE.PAN, true);
         | 
| 811 1016 | 
             
                    this.setCenter((this._touchCurrent[0].clientX + this._touchCurrent[1].clientX) / 2, (this._touchCurrent[0].clientY + this._touchCurrent[1].clientY) / 2);
         | 
| 1017 | 
            +
                    const rayDir = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement, true);
         | 
| 812 1018 |  | 
| 813 | 
            -
                     | 
| 1019 | 
            +
                    if (rayDir !== undefined) {
         | 
| 1020 | 
            +
                      this._startCursorPosition.copy(rayDir);
         | 
| 1021 | 
            +
                    }
         | 
| 814 1022 |  | 
| 815 1023 | 
             
                    this._currentCursorPosition.copy(this._startCursorPosition);
         | 
| 816 1024 |  | 
| @@ -819,7 +1027,7 @@ class ArcballControls extends EventDispatcher { | |
| 819 1027 | 
             
                });
         | 
| 820 1028 |  | 
| 821 1029 | 
             
                _defineProperty(this, "onDoublePanMove", () => {
         | 
| 822 | 
            -
                  if (this.enabled && this.enablePan) {
         | 
| 1030 | 
            +
                  if (this.enabled && this.enablePan && this.camera && this.domElement) {
         | 
| 823 1031 | 
             
                    this.setCenter((this._touchCurrent[0].clientX + this._touchCurrent[1].clientX) / 2, (this._touchCurrent[0].clientY + this._touchCurrent[1].clientY) / 2);
         | 
| 824 1032 |  | 
| 825 1033 | 
             
                    if (this._state != STATE.PAN) {
         | 
| @@ -828,8 +1036,8 @@ class ArcballControls extends EventDispatcher { | |
| 828 1036 | 
             
                      this._startCursorPosition.copy(this._currentCursorPosition);
         | 
| 829 1037 | 
             
                    }
         | 
| 830 1038 |  | 
| 831 | 
            -
                    this. | 
| 832 | 
            -
             | 
| 1039 | 
            +
                    const rayDir = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement, true);
         | 
| 1040 | 
            +
                    if (rayDir !== undefined) this._currentCursorPosition.copy(rayDir);
         | 
| 833 1041 | 
             
                    this.applyTransformMatrix(this.pan(this._startCursorPosition, this._currentCursorPosition, true));
         | 
| 834 1042 | 
             
                    this.dispatchEvent(_changeEvent);
         | 
| 835 1043 | 
             
                  }
         | 
| @@ -842,12 +1050,14 @@ class ArcballControls extends EventDispatcher { | |
| 842 1050 |  | 
| 843 1051 | 
             
                _defineProperty(this, "onRotateStart", () => {
         | 
| 844 1052 | 
             
                  if (this.enabled && this.enableRotate) {
         | 
| 1053 | 
            +
                    var _this$camera6;
         | 
| 1054 | 
            +
             | 
| 845 1055 | 
             
                    this.dispatchEvent(_startEvent);
         | 
| 846 1056 | 
             
                    this.updateTbState(STATE.ZROTATE, true); //this._startFingerRotation = event.rotation;
         | 
| 847 1057 |  | 
| 848 1058 | 
             
                    this._startFingerRotation = this.getAngle(this._touchCurrent[1], this._touchCurrent[0]) + this.getAngle(this._touchStart[1], this._touchStart[0]);
         | 
| 849 1059 | 
             
                    this._currentFingerRotation = this._startFingerRotation;
         | 
| 850 | 
            -
                    this.camera.getWorldDirection(this._rotationAxis); //rotation axis
         | 
| 1060 | 
            +
                    (_this$camera6 = this.camera) === null || _this$camera6 === void 0 ? void 0 : _this$camera6.getWorldDirection(this._rotationAxis); //rotation axis
         | 
| 851 1061 |  | 
| 852 1062 | 
             
                    if (!this.enablePan && !this.enableZoom) {
         | 
| 853 1063 | 
             
                      this.activateGizmos(true);
         | 
| @@ -856,7 +1066,7 @@ class ArcballControls extends EventDispatcher { | |
| 856 1066 | 
             
                });
         | 
| 857 1067 |  | 
| 858 1068 | 
             
                _defineProperty(this, "onRotateMove", () => {
         | 
| 859 | 
            -
                  if (this.enabled && this.enableRotate) {
         | 
| 1069 | 
            +
                  if (this.enabled && this.enableRotate && this.camera && this.domElement) {
         | 
| 860 1070 | 
             
                    this.setCenter((this._touchCurrent[0].clientX + this._touchCurrent[1].clientX) / 2, (this._touchCurrent[0].clientY + this._touchCurrent[1].clientY) / 2);
         | 
| 861 1071 | 
             
                    let rotationPoint;
         | 
| 862 1072 |  | 
| @@ -870,14 +1080,20 @@ class ArcballControls extends EventDispatcher { | |
| 870 1080 |  | 
| 871 1081 | 
             
                    if (!this.enablePan) {
         | 
| 872 1082 | 
             
                      rotationPoint = new Vector3().setFromMatrixPosition(this._gizmoMatrixState);
         | 
| 873 | 
            -
                    } else {
         | 
| 1083 | 
            +
                    } else if (this.camera) {
         | 
| 1084 | 
            +
                      var _this$unprojectOnTbPl3;
         | 
| 1085 | 
            +
             | 
| 874 1086 | 
             
                      this._v3_2.setFromMatrixPosition(this._gizmoMatrixState);
         | 
| 875 1087 |  | 
| 876 | 
            -
                      rotationPoint = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement).applyQuaternion(this.camera.quaternion).multiplyScalar(1 / this.camera.zoom).add(this._v3_2);
         | 
| 1088 | 
            +
                      rotationPoint = (_this$unprojectOnTbPl3 = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement)) === null || _this$unprojectOnTbPl3 === void 0 ? void 0 : _this$unprojectOnTbPl3.applyQuaternion(this.camera.quaternion).multiplyScalar(1 / this.camera.zoom).add(this._v3_2);
         | 
| 877 1089 | 
             
                    }
         | 
| 878 1090 |  | 
| 879 1091 | 
             
                    const amount = MathUtils.DEG2RAD * (this._startFingerRotation - this._currentFingerRotation);
         | 
| 880 | 
            -
             | 
| 1092 | 
            +
             | 
| 1093 | 
            +
                    if (rotationPoint !== undefined) {
         | 
| 1094 | 
            +
                      this.applyTransformMatrix(this.zRotate(rotationPoint, amount));
         | 
| 1095 | 
            +
                    }
         | 
| 1096 | 
            +
             | 
| 881 1097 | 
             
                    this.dispatchEvent(_changeEvent);
         | 
| 882 1098 | 
             
                  }
         | 
| 883 1099 | 
             
                });
         | 
| @@ -899,7 +1115,7 @@ class ArcballControls extends EventDispatcher { | |
| 899 1115 | 
             
                });
         | 
| 900 1116 |  | 
| 901 1117 | 
             
                _defineProperty(this, "onPinchMove", () => {
         | 
| 902 | 
            -
                  if (this.enabled && this.enableZoom) {
         | 
| 1118 | 
            +
                  if (this.enabled && this.enableZoom && this.domElement) {
         | 
| 903 1119 | 
             
                    this.setCenter((this._touchCurrent[0].clientX + this._touchCurrent[1].clientX) / 2, (this._touchCurrent[0].clientY + this._touchCurrent[1].clientY) / 2);
         | 
| 904 1120 | 
             
                    const minDistance = 12; //minimum distance between fingers (in css pixels)
         | 
| 905 1121 |  | 
| @@ -915,14 +1131,23 @@ class ArcballControls extends EventDispatcher { | |
| 915 1131 | 
             
                    if (!this.enablePan) {
         | 
| 916 1132 | 
             
                      scalePoint = this._gizmos.position;
         | 
| 917 1133 | 
             
                    } else {
         | 
| 918 | 
            -
                       | 
| 919 | 
            -
             | 
| 920 | 
            -
                       | 
| 921 | 
            -
                         | 
| 1134 | 
            +
                      var _this$camera7, _this$camera8;
         | 
| 1135 | 
            +
             | 
| 1136 | 
            +
                      if (((_this$camera7 = this.camera) === null || _this$camera7 === void 0 ? void 0 : _this$camera7.type) === 'OrthographicCamera') {
         | 
| 1137 | 
            +
                        var _this$unprojectOnTbPl4;
         | 
| 1138 | 
            +
             | 
| 1139 | 
            +
                        scalePoint = (_this$unprojectOnTbPl4 = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement)) === null || _this$unprojectOnTbPl4 === void 0 ? void 0 : _this$unprojectOnTbPl4.applyQuaternion(this.camera.quaternion).multiplyScalar(1 / this.camera.zoom).add(this._gizmos.position);
         | 
| 1140 | 
            +
                      } else if (((_this$camera8 = this.camera) === null || _this$camera8 === void 0 ? void 0 : _this$camera8.type) === 'PerspectiveCamera') {
         | 
| 1141 | 
            +
                        var _this$unprojectOnTbPl5;
         | 
| 1142 | 
            +
             | 
| 1143 | 
            +
                        scalePoint = (_this$unprojectOnTbPl5 = this.unprojectOnTbPlane(this.camera, _center.x, _center.y, this.domElement)) === null || _this$unprojectOnTbPl5 === void 0 ? void 0 : _this$unprojectOnTbPl5.applyQuaternion(this.camera.quaternion).add(this._gizmos.position);
         | 
| 922 1144 | 
             
                      }
         | 
| 923 1145 | 
             
                    }
         | 
| 924 1146 |  | 
| 925 | 
            -
                     | 
| 1147 | 
            +
                    if (scalePoint !== undefined) {
         | 
| 1148 | 
            +
                      this.applyTransformMatrix(this.applyScale(amount, scalePoint));
         | 
| 1149 | 
            +
                    }
         | 
| 1150 | 
            +
             | 
| 926 1151 | 
             
                    this.dispatchEvent(_changeEvent);
         | 
| 927 1152 | 
             
                  }
         | 
| 928 1153 | 
             
                });
         | 
| @@ -933,7 +1158,7 @@ class ArcballControls extends EventDispatcher { | |
| 933 1158 | 
             
                });
         | 
| 934 1159 |  | 
| 935 1160 | 
             
                _defineProperty(this, "onTriplePanStart", () => {
         | 
| 936 | 
            -
                  if (this.enabled && this.enableZoom) {
         | 
| 1161 | 
            +
                  if (this.enabled && this.enableZoom && this.domElement) {
         | 
| 937 1162 | 
             
                    this.dispatchEvent(_startEvent);
         | 
| 938 1163 | 
             
                    this.updateTbState(STATE.SCALE, true); //const center = event.center;
         | 
| 939 1164 |  | 
| @@ -955,7 +1180,7 @@ class ArcballControls extends EventDispatcher { | |
| 955 1180 | 
             
                });
         | 
| 956 1181 |  | 
| 957 1182 | 
             
                _defineProperty(this, "onTriplePanMove", () => {
         | 
| 958 | 
            -
                  if (this.enabled && this.enableZoom) {
         | 
| 1183 | 
            +
                  if (this.enabled && this.enableZoom && this.camera && this.domElement) {
         | 
| 959 1184 | 
             
                    //	  fov / 2
         | 
| 960 1185 | 
             
                    //		|\
         | 
| 961 1186 | 
             
                    //		| \
         | 
| @@ -1038,18 +1263,6 @@ class ArcballControls extends EventDispatcher { | |
| 1038 1263 | 
             
                  this.setMouseAction('FOV', 1, 'SHIFT');
         | 
| 1039 1264 | 
             
                });
         | 
| 1040 1265 |  | 
| 1041 | 
            -
                _defineProperty(this, "compareMouseAction", (action1, action2) => {
         | 
| 1042 | 
            -
                  if (action1.operation == action2.operation) {
         | 
| 1043 | 
            -
                    if (action1.mouse == action2.mouse && action1.key == action2.key) {
         | 
| 1044 | 
            -
                      return true;
         | 
| 1045 | 
            -
                    } else {
         | 
| 1046 | 
            -
                      return false;
         | 
| 1047 | 
            -
                    }
         | 
| 1048 | 
            -
                  } else {
         | 
| 1049 | 
            -
                    return false;
         | 
| 1050 | 
            -
                  }
         | 
| 1051 | 
            -
                });
         | 
| 1052 | 
            -
             | 
| 1053 1266 | 
             
                _defineProperty(this, "setMouseAction", (operation, mouse, key = null) => {
         | 
| 1054 1267 | 
             
                  const operationInput = ['PAN', 'ROTATE', 'ZOOM', 'FOV'];
         | 
| 1055 1268 | 
             
                  const mouseInput = [0, 1, 2, 'WHEEL'];
         | 
| @@ -1104,17 +1317,6 @@ class ArcballControls extends EventDispatcher { | |
| 1104 1317 | 
             
                  return true;
         | 
| 1105 1318 | 
             
                });
         | 
| 1106 1319 |  | 
| 1107 | 
            -
                _defineProperty(this, "unsetMouseAction", (mouse, key = null) => {
         | 
| 1108 | 
            -
                  for (let i = 0; i < this.mouseActions.length; i++) {
         | 
| 1109 | 
            -
                    if (this.mouseActions[i].mouse == mouse && this.mouseActions[i].key == key) {
         | 
| 1110 | 
            -
                      this.mouseActions.splice(i, 1);
         | 
| 1111 | 
            -
                      return true;
         | 
| 1112 | 
            -
                    }
         | 
| 1113 | 
            -
                  }
         | 
| 1114 | 
            -
             | 
| 1115 | 
            -
                  return false;
         | 
| 1116 | 
            -
                });
         | 
| 1117 | 
            -
             | 
| 1118 1320 | 
             
                _defineProperty(this, "getOpFromAction", (mouse, key) => {
         | 
| 1119 1321 | 
             
                  let action;
         | 
| 1120 1322 |  | 
| @@ -1126,7 +1328,7 @@ class ArcballControls extends EventDispatcher { | |
| 1126 1328 | 
             
                    }
         | 
| 1127 1329 | 
             
                  }
         | 
| 1128 1330 |  | 
| 1129 | 
            -
                  if (key | 
| 1331 | 
            +
                  if (key) {
         | 
| 1130 1332 | 
             
                    for (let i = 0; i < this.mouseActions.length; i++) {
         | 
| 1131 1333 | 
             
                      action = this.mouseActions[i];
         | 
| 1132 1334 |  | 
| @@ -1150,7 +1352,7 @@ class ArcballControls extends EventDispatcher { | |
| 1150 1352 | 
             
                    }
         | 
| 1151 1353 | 
             
                  }
         | 
| 1152 1354 |  | 
| 1153 | 
            -
                  if (key | 
| 1355 | 
            +
                  if (key) {
         | 
| 1154 1356 | 
             
                    for (let i = 0; i < this.mouseActions.length; i++) {
         | 
| 1155 1357 | 
             
                      action = this.mouseActions[i];
         | 
| 1156 1358 |  | 
| @@ -1218,48 +1420,52 @@ class ArcballControls extends EventDispatcher { | |
| 1218 1420 | 
             
                });
         | 
| 1219 1421 |  | 
| 1220 1422 | 
             
                _defineProperty(this, "focus", (point, size, amount = 1) => {
         | 
| 1221 | 
            -
                   | 
| 1423 | 
            +
                  if (this.camera) {
         | 
| 1424 | 
            +
                    const focusPoint = point.clone(); //move center of camera (along with gizmos) towards point of interest
         | 
| 1222 1425 |  | 
| 1223 | 
            -
             | 
| 1426 | 
            +
                    focusPoint.sub(this._gizmos.position).multiplyScalar(amount);
         | 
| 1224 1427 |  | 
| 1225 | 
            -
             | 
| 1428 | 
            +
                    this._translationMatrix.makeTranslation(focusPoint.x, focusPoint.y, focusPoint.z);
         | 
| 1226 1429 |  | 
| 1227 | 
            -
             | 
| 1430 | 
            +
                    const gizmoStateTemp = this._gizmoMatrixState.clone();
         | 
| 1228 1431 |  | 
| 1229 | 
            -
             | 
| 1432 | 
            +
                    this._gizmoMatrixState.premultiply(this._translationMatrix);
         | 
| 1230 1433 |  | 
| 1231 | 
            -
             | 
| 1434 | 
            +
                    this._gizmoMatrixState.decompose(this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale);
         | 
| 1232 1435 |  | 
| 1233 | 
            -
             | 
| 1436 | 
            +
                    const cameraStateTemp = this._cameraMatrixState.clone();
         | 
| 1234 1437 |  | 
| 1235 | 
            -
             | 
| 1438 | 
            +
                    this._cameraMatrixState.premultiply(this._translationMatrix);
         | 
| 1236 1439 |  | 
| 1237 | 
            -
             | 
| 1440 | 
            +
                    this._cameraMatrixState.decompose(this.camera.position, this.camera.quaternion, this.camera.scale); //apply zoom
         | 
| 1238 1441 |  | 
| 1239 1442 |  | 
| 1240 | 
            -
             | 
| 1241 | 
            -
             | 
| 1242 | 
            -
             | 
| 1443 | 
            +
                    if (this.enableZoom) {
         | 
| 1444 | 
            +
                      this.applyTransformMatrix(this.applyScale(size, this._gizmos.position));
         | 
| 1445 | 
            +
                    }
         | 
| 1243 1446 |  | 
| 1244 | 
            -
             | 
| 1447 | 
            +
                    this._gizmoMatrixState.copy(gizmoStateTemp);
         | 
| 1245 1448 |  | 
| 1246 | 
            -
             | 
| 1449 | 
            +
                    this._cameraMatrixState.copy(cameraStateTemp);
         | 
| 1450 | 
            +
                  }
         | 
| 1247 1451 | 
             
                });
         | 
| 1248 1452 |  | 
| 1249 1453 | 
             
                _defineProperty(this, "drawGrid", () => {
         | 
| 1250 | 
            -
                  if (this.scene | 
| 1454 | 
            +
                  if (this.scene) {
         | 
| 1455 | 
            +
                    var _this$camera9, _this$camera10;
         | 
| 1456 | 
            +
             | 
| 1251 1457 | 
             
                    const color = 0x888888;
         | 
| 1252 1458 | 
             
                    const multiplier = 3;
         | 
| 1253 1459 | 
             
                    let size, divisions, maxLength, tick;
         | 
| 1254 1460 |  | 
| 1255 | 
            -
                    if (this.camera. | 
| 1461 | 
            +
                    if (((_this$camera9 = this.camera) === null || _this$camera9 === void 0 ? void 0 : _this$camera9.type) === 'OrthographicCamera') {
         | 
| 1256 1462 | 
             
                      const width = this.camera.right - this.camera.left;
         | 
| 1257 1463 | 
             
                      const height = this.camera.bottom - this.camera.top;
         | 
| 1258 1464 | 
             
                      maxLength = Math.max(width, height);
         | 
| 1259 1465 | 
             
                      tick = maxLength / 20;
         | 
| 1260 1466 | 
             
                      size = maxLength / this.camera.zoom * multiplier;
         | 
| 1261 1467 | 
             
                      divisions = size / tick * this.camera.zoom;
         | 
| 1262 | 
            -
                    } else if (this.camera. | 
| 1468 | 
            +
                    } else if (((_this$camera10 = this.camera) === null || _this$camera10 === void 0 ? void 0 : _this$camera10.type) === 'PerspectiveCamera') {
         | 
| 1263 1469 | 
             
                      const distance = this.camera.position.distanceTo(this._gizmos.position);
         | 
| 1264 1470 | 
             
                      const halfFovV = MathUtils.DEG2RAD * this.camera.fov * 0.5;
         | 
| 1265 1471 | 
             
                      const halfFovH = Math.atan(this.camera.aspect * Math.tan(halfFovV));
         | 
| @@ -1269,7 +1475,7 @@ class ArcballControls extends EventDispatcher { | |
| 1269 1475 | 
             
                      divisions = size / tick;
         | 
| 1270 1476 | 
             
                    }
         | 
| 1271 1477 |  | 
| 1272 | 
            -
                    if (this._grid == null) {
         | 
| 1478 | 
            +
                    if (this._grid == null && this.camera) {
         | 
| 1273 1479 | 
             
                      this._grid = new GridHelper(size, divisions, color, color);
         | 
| 1274 1480 |  | 
| 1275 1481 | 
             
                      this._grid.position.copy(this._gizmos.position);
         | 
| @@ -1286,35 +1492,42 @@ class ArcballControls extends EventDispatcher { | |
| 1286 1492 | 
             
                });
         | 
| 1287 1493 |  | 
| 1288 1494 | 
             
                _defineProperty(this, "connect", domElement => {
         | 
| 1289 | 
            -
                   | 
| 1495 | 
            +
                  // https://github.com/mrdoob/three.js/issues/20575
         | 
| 1496 | 
            +
                  if (domElement === document) {
         | 
| 1497 | 
            +
                    console.error('THREE.ArcballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.');
         | 
| 1498 | 
            +
                  }
         | 
| 1499 | 
            +
             | 
| 1500 | 
            +
                  this.domElement = domElement; // disables touch scroll
         | 
| 1501 | 
            +
                  // touch-action needs to be defined for pointer events to work on mobile
         | 
| 1502 | 
            +
                  // https://stackoverflow.com/a/48254578
         | 
| 1503 | 
            +
             | 
| 1290 1504 | 
             
                  this.domElement.style.touchAction = 'none';
         | 
| 1291 1505 | 
             
                  this.domElement.addEventListener('contextmenu', this.onContextMenu);
         | 
| 1292 | 
            -
                  this.domElement.addEventListener('wheel', this.onWheel);
         | 
| 1293 1506 | 
             
                  this.domElement.addEventListener('pointerdown', this.onPointerDown);
         | 
| 1294 1507 | 
             
                  this.domElement.addEventListener('pointercancel', this.onPointerCancel);
         | 
| 1295 | 
            -
                   | 
| 1296 | 
            -
                  window.addEventListener('resize', this.onWindowResize);
         | 
| 1508 | 
            +
                  this.domElement.addEventListener('wheel', this.onWheel);
         | 
| 1297 1509 | 
             
                });
         | 
| 1298 1510 |  | 
| 1299 1511 | 
             
                _defineProperty(this, "dispose", () => {
         | 
| 1512 | 
            +
                  var _this$domElement, _this$domElement2, _this$domElement3, _this$domElement4, _this$scene;
         | 
| 1513 | 
            +
             | 
| 1300 1514 | 
             
                  if (this._animationId != -1) {
         | 
| 1301 1515 | 
             
                    window.cancelAnimationFrame(this._animationId);
         | 
| 1302 1516 | 
             
                  }
         | 
| 1303 1517 |  | 
| 1304 | 
            -
                  this.domElement.removeEventListener('pointerdown', this.onPointerDown);
         | 
| 1305 | 
            -
                  this.domElement.removeEventListener('pointercancel', this.onPointerCancel);
         | 
| 1306 | 
            -
                  this.domElement.removeEventListener('wheel', this.onWheel);
         | 
| 1307 | 
            -
                  this.domElement.removeEventListener('contextmenu', this.onContextMenu);
         | 
| 1518 | 
            +
                  (_this$domElement = this.domElement) === null || _this$domElement === void 0 ? void 0 : _this$domElement.removeEventListener('pointerdown', this.onPointerDown);
         | 
| 1519 | 
            +
                  (_this$domElement2 = this.domElement) === null || _this$domElement2 === void 0 ? void 0 : _this$domElement2.removeEventListener('pointercancel', this.onPointerCancel);
         | 
| 1520 | 
            +
                  (_this$domElement3 = this.domElement) === null || _this$domElement3 === void 0 ? void 0 : _this$domElement3.removeEventListener('wheel', this.onWheel);
         | 
| 1521 | 
            +
                  (_this$domElement4 = this.domElement) === null || _this$domElement4 === void 0 ? void 0 : _this$domElement4.removeEventListener('contextmenu', this.onContextMenu);
         | 
| 1308 1522 | 
             
                  window.removeEventListener('pointermove', this.onPointerMove);
         | 
| 1309 1523 | 
             
                  window.removeEventListener('pointerup', this.onPointerUp);
         | 
| 1310 1524 | 
             
                  window.removeEventListener('resize', this.onWindowResize);
         | 
| 1311 | 
            -
                   | 
| 1312 | 
            -
                  if (this.scene) this.scene.remove(this._gizmos);
         | 
| 1525 | 
            +
                  (_this$scene = this.scene) === null || _this$scene === void 0 ? void 0 : _this$scene.remove(this._gizmos);
         | 
| 1313 1526 | 
             
                  this.disposeGrid();
         | 
| 1314 1527 | 
             
                });
         | 
| 1315 1528 |  | 
| 1316 1529 | 
             
                _defineProperty(this, "disposeGrid", () => {
         | 
| 1317 | 
            -
                  if (this._grid  | 
| 1530 | 
            +
                  if (this._grid && this.scene) {
         | 
| 1318 1531 | 
             
                    this.scene.remove(this._grid);
         | 
| 1319 1532 | 
             
                    this._grid = null;
         | 
| 1320 1533 | 
             
                  }
         | 
| @@ -1325,29 +1538,9 @@ class ArcballControls extends EventDispatcher { | |
| 1325 1538 | 
             
                });
         | 
| 1326 1539 |  | 
| 1327 1540 | 
             
                _defineProperty(this, "activateGizmos", isActive => {
         | 
| 1328 | 
            -
                  const  | 
| 1329 | 
            -
             | 
| 1330 | 
            -
             | 
| 1331 | 
            -
             | 
| 1332 | 
            -
                  if (isActive) {
         | 
| 1333 | 
            -
                    gizmoX.material.setValues({
         | 
| 1334 | 
            -
                      opacity: 1
         | 
| 1335 | 
            -
                    });
         | 
| 1336 | 
            -
                    gizmoY.material.setValues({
         | 
| 1337 | 
            -
                      opacity: 1
         | 
| 1338 | 
            -
                    });
         | 
| 1339 | 
            -
                    gizmoZ.material.setValues({
         | 
| 1340 | 
            -
                      opacity: 1
         | 
| 1341 | 
            -
                    });
         | 
| 1342 | 
            -
                  } else {
         | 
| 1343 | 
            -
                    gizmoX.material.setValues({
         | 
| 1344 | 
            -
                      opacity: 0.6
         | 
| 1345 | 
            -
                    });
         | 
| 1346 | 
            -
                    gizmoY.material.setValues({
         | 
| 1347 | 
            -
                      opacity: 0.6
         | 
| 1348 | 
            -
                    });
         | 
| 1349 | 
            -
                    gizmoZ.material.setValues({
         | 
| 1350 | 
            -
                      opacity: 0.6
         | 
| 1541 | 
            +
                  for (const gizmo of this._gizmos.children) {
         | 
| 1542 | 
            +
                    gizmo.material.setValues({
         | 
| 1543 | 
            +
                      opacity: isActive ? 1 : 0.6
         | 
| 1351 1544 | 
             
                    });
         | 
| 1352 1545 | 
             
                  }
         | 
| 1353 1546 | 
             
                });
         | 
| @@ -1363,49 +1556,62 @@ class ArcballControls extends EventDispatcher { | |
| 1363 1556 | 
             
                });
         | 
| 1364 1557 |  | 
| 1365 1558 | 
             
                _defineProperty(this, "getCursorPosition", (cursorX, cursorY, canvas) => {
         | 
| 1559 | 
            +
                  var _this$camera11;
         | 
| 1560 | 
            +
             | 
| 1366 1561 | 
             
                  this._v2_1.copy(this.getCursorNDC(cursorX, cursorY, canvas));
         | 
| 1367 1562 |  | 
| 1368 | 
            -
                   | 
| 1369 | 
            -
             | 
| 1563 | 
            +
                  if (((_this$camera11 = this.camera) === null || _this$camera11 === void 0 ? void 0 : _this$camera11.type) === 'OrthographicCamera') {
         | 
| 1564 | 
            +
                    this._v2_1.x *= (this.camera.right - this.camera.left) * 0.5;
         | 
| 1565 | 
            +
                    this._v2_1.y *= (this.camera.top - this.camera.bottom) * 0.5;
         | 
| 1566 | 
            +
                  }
         | 
| 1567 | 
            +
             | 
| 1370 1568 | 
             
                  return this._v2_1.clone();
         | 
| 1371 1569 | 
             
                });
         | 
| 1372 1570 |  | 
| 1373 1571 | 
             
                _defineProperty(this, "setCamera", camera => {
         | 
| 1374 | 
            -
                  camera | 
| 1375 | 
            -
             | 
| 1572 | 
            +
                  if (camera) {
         | 
| 1573 | 
            +
                    camera.lookAt(this.target);
         | 
| 1574 | 
            +
                    camera.updateMatrix(); //setting state
         | 
| 1376 1575 |  | 
| 1377 | 
            -
             | 
| 1378 | 
            -
             | 
| 1379 | 
            -
             | 
| 1380 | 
            -
             | 
| 1576 | 
            +
                    if ((camera === null || camera === void 0 ? void 0 : camera.type) == 'PerspectiveCamera') {
         | 
| 1577 | 
            +
                      this._fov0 = camera.fov;
         | 
| 1578 | 
            +
                      this._fovState = camera.fov;
         | 
| 1579 | 
            +
                    }
         | 
| 1580 | 
            +
             | 
| 1581 | 
            +
                    this._cameraMatrixState0.copy(camera.matrix);
         | 
| 1582 | 
            +
             | 
| 1583 | 
            +
                    this._cameraMatrixState.copy(this._cameraMatrixState0);
         | 
| 1381 1584 |  | 
| 1382 | 
            -
             | 
| 1585 | 
            +
                    this._cameraProjectionState.copy(camera.projectionMatrix);
         | 
| 1383 1586 |  | 
| 1384 | 
            -
             | 
| 1587 | 
            +
                    this._zoom0 = camera.zoom;
         | 
| 1588 | 
            +
                    this._zoomState = this._zoom0;
         | 
| 1589 | 
            +
                    this._initialNear = camera.near;
         | 
| 1590 | 
            +
                    this._nearPos0 = camera.position.distanceTo(this.target) - camera.near;
         | 
| 1591 | 
            +
                    this._nearPos = this._initialNear;
         | 
| 1592 | 
            +
                    this._initialFar = camera.far;
         | 
| 1593 | 
            +
                    this._farPos0 = camera.position.distanceTo(this.target) - camera.far;
         | 
| 1594 | 
            +
                    this._farPos = this._initialFar;
         | 
| 1385 1595 |  | 
| 1386 | 
            -
             | 
| 1596 | 
            +
                    this._up0.copy(camera.up);
         | 
| 1387 1597 |  | 
| 1388 | 
            -
             | 
| 1389 | 
            -
                  this._zoomState = this._zoom0;
         | 
| 1390 | 
            -
                  this._initialNear = camera.near;
         | 
| 1391 | 
            -
                  this._nearPos0 = camera.position.distanceTo(this.target) - camera.near;
         | 
| 1392 | 
            -
                  this._nearPos = this._initialNear;
         | 
| 1393 | 
            -
                  this._initialFar = camera.far;
         | 
| 1394 | 
            -
                  this._farPos0 = camera.position.distanceTo(this.target) - camera.far;
         | 
| 1395 | 
            -
                  this._farPos = this._initialFar;
         | 
| 1598 | 
            +
                    this._upState.copy(camera.up);
         | 
| 1396 1599 |  | 
| 1397 | 
            -
             | 
| 1600 | 
            +
                    this.camera = camera;
         | 
| 1601 | 
            +
                    this.camera.updateProjectionMatrix(); //making gizmos
         | 
| 1398 1602 |  | 
| 1399 | 
            -
             | 
| 1603 | 
            +
                    const tbRadius = this.calculateTbRadius(camera);
         | 
| 1400 1604 |  | 
| 1401 | 
            -
             | 
| 1402 | 
            -
             | 
| 1605 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 1606 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 1607 | 
            +
                    }
         | 
| 1403 1608 |  | 
| 1404 | 
            -
             | 
| 1405 | 
            -
                   | 
| 1609 | 
            +
                    this.makeGizmos(this.target, this._tbRadius);
         | 
| 1610 | 
            +
                  }
         | 
| 1406 1611 | 
             
                });
         | 
| 1407 1612 |  | 
| 1408 1613 | 
             
                _defineProperty(this, "makeGizmos", (tbCenter, tbRadius) => {
         | 
| 1614 | 
            +
                  // @ts-expect-error
         | 
| 1409 1615 | 
             
                  const curve = new EllipseCurve(0, 0, tbRadius, tbRadius);
         | 
| 1410 1616 | 
             
                  const points = curve.getPoints(this._curvePts); //geometry
         | 
| 1411 1617 |  | 
| @@ -1441,7 +1647,7 @@ class ArcballControls extends EventDispatcher { | |
| 1441 1647 |  | 
| 1442 1648 | 
             
                  this._gizmoMatrixState.copy(this._gizmoMatrixState0);
         | 
| 1443 1649 |  | 
| 1444 | 
            -
                  if (this.camera.zoom != 1) {
         | 
| 1650 | 
            +
                  if (this.camera && this.camera.zoom != 1) {
         | 
| 1445 1651 | 
             
                    //adapt gizmos size to camera zoom
         | 
| 1446 1652 | 
             
                    const size = 1 / this.camera.zoom;
         | 
| 1447 1653 |  | 
| @@ -1550,60 +1756,72 @@ class ArcballControls extends EventDispatcher { | |
| 1550 1756 | 
             
                });
         | 
| 1551 1757 |  | 
| 1552 1758 | 
             
                _defineProperty(this, "pan", (p0, p1, adjust = false) => {
         | 
| 1553 | 
            -
                   | 
| 1759 | 
            +
                  if (this.camera) {
         | 
| 1760 | 
            +
                    const movement = p0.clone().sub(p1);
         | 
| 1554 1761 |  | 
| 1555 | 
            -
             | 
| 1556 | 
            -
             | 
| 1557 | 
            -
             | 
| 1558 | 
            -
             | 
| 1559 | 
            -
                    //adjust movement amount
         | 
| 1560 | 
            -
                    this._v3_1.setFromMatrixPosition(this._cameraMatrixState0); //camera's initial position
         | 
| 1762 | 
            +
                    if (this.camera.type === 'OrthographicCamera') {
         | 
| 1763 | 
            +
                      //adjust movement amount
         | 
| 1764 | 
            +
                      movement.multiplyScalar(1 / this.camera.zoom);
         | 
| 1765 | 
            +
                    }
         | 
| 1561 1766 |  | 
| 1767 | 
            +
                    if (this.camera.type === 'PerspectiveCamera' && adjust) {
         | 
| 1768 | 
            +
                      //adjust movement amount
         | 
| 1769 | 
            +
                      this._v3_1.setFromMatrixPosition(this._cameraMatrixState0); //camera's initial position
         | 
| 1562 1770 |  | 
| 1563 | 
            -
                    this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0); //gizmo's initial position
         | 
| 1564 1771 |  | 
| 1772 | 
            +
                      this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0); //gizmo's initial position
         | 
| 1565 1773 |  | 
| 1566 | 
            -
                    const distanceFactor = this._v3_1.distanceTo(this._v3_2) / this.camera.position.distanceTo(this._gizmos.position);
         | 
| 1567 | 
            -
                    movement.multiplyScalar(1 / distanceFactor);
         | 
| 1568 | 
            -
                  }
         | 
| 1569 1774 |  | 
| 1570 | 
            -
             | 
| 1775 | 
            +
                      const distanceFactor = this._v3_1.distanceTo(this._v3_2) / this.camera.position.distanceTo(this._gizmos.position);
         | 
| 1776 | 
            +
                      movement.multiplyScalar(1 / distanceFactor);
         | 
| 1777 | 
            +
                    }
         | 
| 1778 | 
            +
             | 
| 1779 | 
            +
                    this._v3_1.set(movement.x, movement.y, 0).applyQuaternion(this.camera.quaternion);
         | 
| 1571 1780 |  | 
| 1572 | 
            -
             | 
| 1781 | 
            +
                    this._m4_1.makeTranslation(this._v3_1.x, this._v3_1.y, this._v3_1.z);
         | 
| 1782 | 
            +
             | 
| 1783 | 
            +
                    this.setTransformationMatrices(this._m4_1, this._m4_1);
         | 
| 1784 | 
            +
                  }
         | 
| 1573 1785 |  | 
| 1574 | 
            -
                  this.setTransformationMatrices(this._m4_1, this._m4_1);
         | 
| 1575 1786 | 
             
                  return _transformation;
         | 
| 1576 1787 | 
             
                });
         | 
| 1577 1788 |  | 
| 1578 1789 | 
             
                _defineProperty(this, "reset", () => {
         | 
| 1579 | 
            -
                  this.camera | 
| 1790 | 
            +
                  if (this.camera) {
         | 
| 1791 | 
            +
                    this.camera.zoom = this._zoom0;
         | 
| 1580 1792 |  | 
| 1581 | 
            -
             | 
| 1582 | 
            -
             | 
| 1583 | 
            -
             | 
| 1793 | 
            +
                    if (this.camera.type === 'PerspectiveCamera') {
         | 
| 1794 | 
            +
                      this.camera.fov = this._fov0;
         | 
| 1795 | 
            +
                    }
         | 
| 1584 1796 |  | 
| 1585 | 
            -
             | 
| 1586 | 
            -
             | 
| 1797 | 
            +
                    this.camera.near = this._nearPos;
         | 
| 1798 | 
            +
                    this.camera.far = this._farPos;
         | 
| 1587 1799 |  | 
| 1588 | 
            -
             | 
| 1800 | 
            +
                    this._cameraMatrixState.copy(this._cameraMatrixState0);
         | 
| 1589 1801 |  | 
| 1590 | 
            -
             | 
| 1802 | 
            +
                    this._cameraMatrixState.decompose(this.camera.position, this.camera.quaternion, this.camera.scale);
         | 
| 1591 1803 |  | 
| 1592 | 
            -
             | 
| 1593 | 
            -
             | 
| 1594 | 
            -
             | 
| 1804 | 
            +
                    this.camera.up.copy(this._up0);
         | 
| 1805 | 
            +
                    this.camera.updateMatrix();
         | 
| 1806 | 
            +
                    this.camera.updateProjectionMatrix();
         | 
| 1595 1807 |  | 
| 1596 | 
            -
             | 
| 1808 | 
            +
                    this._gizmoMatrixState.copy(this._gizmoMatrixState0);
         | 
| 1597 1809 |  | 
| 1598 | 
            -
             | 
| 1810 | 
            +
                    this._gizmoMatrixState0.decompose(this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale);
         | 
| 1599 1811 |  | 
| 1600 | 
            -
             | 
| 1812 | 
            +
                    this._gizmos.updateMatrix();
         | 
| 1601 1813 |  | 
| 1602 | 
            -
             | 
| 1603 | 
            -
             | 
| 1604 | 
            -
             | 
| 1605 | 
            -
             | 
| 1606 | 
            -
             | 
| 1814 | 
            +
                    const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 1815 | 
            +
             | 
| 1816 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 1817 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 1818 | 
            +
                    }
         | 
| 1819 | 
            +
             | 
| 1820 | 
            +
                    this.makeGizmos(this._gizmos.position, this._tbRadius);
         | 
| 1821 | 
            +
                    this.camera.lookAt(this._gizmos.position);
         | 
| 1822 | 
            +
                    this.updateTbState(STATE.IDLE, false);
         | 
| 1823 | 
            +
                    this.dispatchEvent(_changeEvent);
         | 
| 1824 | 
            +
                  }
         | 
| 1607 1825 | 
             
                });
         | 
| 1608 1826 |  | 
| 1609 1827 | 
             
                _defineProperty(this, "rotate", (axis, angle) => {
         | 
| @@ -1625,10 +1843,10 @@ class ArcballControls extends EventDispatcher { | |
| 1625 1843 | 
             
                });
         | 
| 1626 1844 |  | 
| 1627 1845 | 
             
                _defineProperty(this, "copyState", () => {
         | 
| 1628 | 
            -
                   | 
| 1846 | 
            +
                  if (this.camera) {
         | 
| 1847 | 
            +
                    var _this$camera12;
         | 
| 1629 1848 |  | 
| 1630 | 
            -
             | 
| 1631 | 
            -
                    state = JSON.stringify({
         | 
| 1849 | 
            +
                    const state = JSON.stringify(((_this$camera12 = this.camera) === null || _this$camera12 === void 0 ? void 0 : _this$camera12.type) === 'OrthographicCamera' ? {
         | 
| 1632 1850 | 
             
                      arcballState: {
         | 
| 1633 1851 | 
             
                        cameraFar: this.camera.far,
         | 
| 1634 1852 | 
             
                        cameraMatrix: this.camera.matrix,
         | 
| @@ -1637,9 +1855,7 @@ class ArcballControls extends EventDispatcher { | |
| 1637 1855 | 
             
                        cameraZoom: this.camera.zoom,
         | 
| 1638 1856 | 
             
                        gizmoMatrix: this._gizmos.matrix
         | 
| 1639 1857 | 
             
                      }
         | 
| 1640 | 
            -
                    } | 
| 1641 | 
            -
                  } else if (this.camera.isPerspectiveCamera) {
         | 
| 1642 | 
            -
                    state = JSON.stringify({
         | 
| 1858 | 
            +
                    } : {
         | 
| 1643 1859 | 
             
                      arcballState: {
         | 
| 1644 1860 | 
             
                        cameraFar: this.camera.far,
         | 
| 1645 1861 | 
             
                        cameraFov: this.camera.fov,
         | 
| @@ -1650,9 +1866,8 @@ class ArcballControls extends EventDispatcher { | |
| 1650 1866 | 
             
                        gizmoMatrix: this._gizmos.matrix
         | 
| 1651 1867 | 
             
                      }
         | 
| 1652 1868 | 
             
                    });
         | 
| 1869 | 
            +
                    navigator.clipboard.writeText(state);
         | 
| 1653 1870 | 
             
                  }
         | 
| 1654 | 
            -
             | 
| 1655 | 
            -
                  navigator.clipboard.writeText(state);
         | 
| 1656 1871 | 
             
                });
         | 
| 1657 1872 |  | 
| 1658 1873 | 
             
                _defineProperty(this, "pasteState", () => {
         | 
| @@ -1663,6 +1878,8 @@ class ArcballControls extends EventDispatcher { | |
| 1663 1878 | 
             
                });
         | 
| 1664 1879 |  | 
| 1665 1880 | 
             
                _defineProperty(this, "saveState", () => {
         | 
| 1881 | 
            +
                  if (!this.camera) return;
         | 
| 1882 | 
            +
             | 
| 1666 1883 | 
             
                  this._cameraMatrixState0.copy(this.camera.matrix);
         | 
| 1667 1884 |  | 
| 1668 1885 | 
             
                  this._gizmoMatrixState0.copy(this._gizmos.matrix);
         | 
| @@ -1673,16 +1890,17 @@ class ArcballControls extends EventDispatcher { | |
| 1673 1890 |  | 
| 1674 1891 | 
             
                  this._up0.copy(this.camera.up);
         | 
| 1675 1892 |  | 
| 1676 | 
            -
                  if (this.camera. | 
| 1893 | 
            +
                  if (this.camera.type === 'PerspectiveCamera') {
         | 
| 1677 1894 | 
             
                    this._fov0 = this.camera.fov;
         | 
| 1678 1895 | 
             
                  }
         | 
| 1679 1896 | 
             
                });
         | 
| 1680 1897 |  | 
| 1681 1898 | 
             
                _defineProperty(this, "applyScale", (size, point, scaleGizmos = true) => {
         | 
| 1899 | 
            +
                  if (!this.camera) return;
         | 
| 1682 1900 | 
             
                  const scalePoint = point.clone();
         | 
| 1683 1901 | 
             
                  let sizeInverse = 1 / size;
         | 
| 1684 1902 |  | 
| 1685 | 
            -
                  if (this.camera. | 
| 1903 | 
            +
                  if (this.camera.type === 'OrthographicCamera') {
         | 
| 1686 1904 | 
             
                    //camera zoom
         | 
| 1687 1905 | 
             
                    this.camera.zoom = this._zoomState;
         | 
| 1688 1906 | 
             
                    this.camera.zoom *= size; //check min and max zoom
         | 
| @@ -1720,7 +1938,9 @@ class ArcballControls extends EventDispatcher { | |
| 1720 1938 |  | 
| 1721 1939 | 
             
                    this.setTransformationMatrices(this._m4_1, this._m4_2);
         | 
| 1722 1940 | 
             
                    return _transformation;
         | 
| 1723 | 
            -
                  } | 
| 1941 | 
            +
                  }
         | 
| 1942 | 
            +
             | 
| 1943 | 
            +
                  if (this.camera.type === 'PerspectiveCamera') {
         | 
| 1724 1944 | 
             
                    this._v3_1.setFromMatrixPosition(this._cameraMatrixState);
         | 
| 1725 1945 |  | 
| 1726 1946 | 
             
                    this._v3_2.setFromMatrixPosition(this._gizmoMatrixState); //move camera
         | 
| @@ -1773,12 +1993,32 @@ class ArcballControls extends EventDispatcher { | |
| 1773 1993 | 
             
                });
         | 
| 1774 1994 |  | 
| 1775 1995 | 
             
                _defineProperty(this, "setFov", value => {
         | 
| 1776 | 
            -
                   | 
| 1996 | 
            +
                  var _this$camera13;
         | 
| 1997 | 
            +
             | 
| 1998 | 
            +
                  if (((_this$camera13 = this.camera) === null || _this$camera13 === void 0 ? void 0 : _this$camera13.type) === 'PerspectiveCamera') {
         | 
| 1777 1999 | 
             
                    this.camera.fov = MathUtils.clamp(value, this.minFov, this.maxFov);
         | 
| 1778 2000 | 
             
                    this.camera.updateProjectionMatrix();
         | 
| 1779 2001 | 
             
                  }
         | 
| 1780 2002 | 
             
                });
         | 
| 1781 2003 |  | 
| 2004 | 
            +
                _defineProperty(this, "setTarget", (x, y, z) => {
         | 
| 2005 | 
            +
                  if (this.camera) {
         | 
| 2006 | 
            +
                    this.target.set(x, y, z);
         | 
| 2007 | 
            +
             | 
| 2008 | 
            +
                    this._gizmos.position.set(x, y, z); //for correct radius calculation
         | 
| 2009 | 
            +
             | 
| 2010 | 
            +
             | 
| 2011 | 
            +
                    const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 2012 | 
            +
             | 
| 2013 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 2014 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 2015 | 
            +
                    }
         | 
| 2016 | 
            +
             | 
| 2017 | 
            +
                    this.makeGizmos(this.target, this._tbRadius);
         | 
| 2018 | 
            +
                    this.camera.lookAt(this.target);
         | 
| 2019 | 
            +
                  }
         | 
| 2020 | 
            +
                });
         | 
| 2021 | 
            +
             | 
| 1782 2022 | 
             
                _defineProperty(this, "zRotate", (point, angle) => {
         | 
| 1783 2023 | 
             
                  this._rotationMatrix.makeRotationAxis(this._rotationAxis, angle);
         | 
| 1784 2024 |  | 
| @@ -1805,6 +2045,7 @@ class ArcballControls extends EventDispatcher { | |
| 1805 2045 | 
             
                });
         | 
| 1806 2046 |  | 
| 1807 2047 | 
             
                _defineProperty(this, "unprojectOnObj", (cursor, camera) => {
         | 
| 2048 | 
            +
                  if (!this.scene) return null;
         | 
| 1808 2049 | 
             
                  const raycaster = new Raycaster();
         | 
| 1809 2050 | 
             
                  raycaster.near = camera.near;
         | 
| 1810 2051 | 
             
                  raycaster.far = camera.far;
         | 
| @@ -1812,7 +2053,7 @@ class ArcballControls extends EventDispatcher { | |
| 1812 2053 | 
             
                  const intersect = raycaster.intersectObjects(this.scene.children, true);
         | 
| 1813 2054 |  | 
| 1814 2055 | 
             
                  for (let i = 0; i < intersect.length; i++) {
         | 
| 1815 | 
            -
                    if (intersect[i].object.uuid != this._gizmos.uuid && intersect[i].face | 
| 2056 | 
            +
                    if (intersect[i].object.uuid != this._gizmos.uuid && intersect[i].face) {
         | 
| 1816 2057 | 
             
                      return intersect[i].point.clone();
         | 
| 1817 2058 | 
             
                    }
         | 
| 1818 2059 | 
             
                  }
         | 
| @@ -1839,7 +2080,9 @@ class ArcballControls extends EventDispatcher { | |
| 1839 2080 | 
             
                    }
         | 
| 1840 2081 |  | 
| 1841 2082 | 
             
                    return this._v3_1;
         | 
| 1842 | 
            -
                  } | 
| 2083 | 
            +
                  }
         | 
| 2084 | 
            +
             | 
| 2085 | 
            +
                  if (camera.type == 'PerspectiveCamera') {
         | 
| 1843 2086 | 
             
                    //unproject cursor on the near plane
         | 
| 1844 2087 | 
             
                    this._v2_1.copy(this.getCursorNDC(cursorX, cursorY, canvas));
         | 
| 1845 2088 |  | 
| @@ -1934,7 +2177,9 @@ class ArcballControls extends EventDispatcher { | |
| 1934 2177 | 
             
                    this._v3_1.set(this._v2_1.x, this._v2_1.y, 0);
         | 
| 1935 2178 |  | 
| 1936 2179 | 
             
                    return this._v3_1.clone();
         | 
| 1937 | 
            -
                  } | 
| 2180 | 
            +
                  }
         | 
| 2181 | 
            +
             | 
| 2182 | 
            +
                  if (camera.type == 'PerspectiveCamera') {
         | 
| 1938 2183 | 
             
                    this._v2_1.copy(this.getCursorNDC(cursorX, cursorY, canvas)); //unproject cursor on the near plane
         | 
| 1939 2184 |  | 
| 1940 2185 |  | 
| @@ -1989,17 +2234,20 @@ class ArcballControls extends EventDispatcher { | |
| 1989 2234 | 
             
                });
         | 
| 1990 2235 |  | 
| 1991 2236 | 
             
                _defineProperty(this, "updateMatrixState", () => {
         | 
| 1992 | 
            -
                  //update camera and gizmos state
         | 
| 2237 | 
            +
                  if (!this.camera) return; //update camera and gizmos state
         | 
| 2238 | 
            +
             | 
| 1993 2239 | 
             
                  this._cameraMatrixState.copy(this.camera.matrix);
         | 
| 1994 2240 |  | 
| 1995 2241 | 
             
                  this._gizmoMatrixState.copy(this._gizmos.matrix);
         | 
| 1996 2242 |  | 
| 1997 | 
            -
                  if (this.camera. | 
| 2243 | 
            +
                  if (this.camera.type === 'OrthographicCamera') {
         | 
| 1998 2244 | 
             
                    this._cameraProjectionState.copy(this.camera.projectionMatrix);
         | 
| 1999 2245 |  | 
| 2000 2246 | 
             
                    this.camera.updateProjectionMatrix();
         | 
| 2001 2247 | 
             
                    this._zoomState = this.camera.zoom;
         | 
| 2002 | 
            -
                  } | 
| 2248 | 
            +
                  }
         | 
| 2249 | 
            +
             | 
| 2250 | 
            +
                  if (this.camera.type === 'PerspectiveCamera') {
         | 
| 2003 2251 | 
             
                    this._fovState = this.camera.fov;
         | 
| 2004 2252 | 
             
                  }
         | 
| 2005 2253 | 
             
                });
         | 
| @@ -2015,24 +2263,32 @@ class ArcballControls extends EventDispatcher { | |
| 2015 2263 | 
             
                _defineProperty(this, "update", () => {
         | 
| 2016 2264 | 
             
                  const EPS = 0.000001; // Update target and gizmos state
         | 
| 2017 2265 |  | 
| 2018 | 
            -
                  if (!this.target.equals(this._currentTarget)) {
         | 
| 2266 | 
            +
                  if (!this.target.equals(this._currentTarget) && this.camera) {
         | 
| 2019 2267 | 
             
                    this._gizmos.position.set(this.target.x, this.target.y, this.target.z); //for correct radius calculation
         | 
| 2020 2268 |  | 
| 2021 2269 |  | 
| 2022 | 
            -
                     | 
| 2270 | 
            +
                    const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 2271 | 
            +
             | 
| 2272 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 2273 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 2274 | 
            +
                    }
         | 
| 2275 | 
            +
             | 
| 2023 2276 | 
             
                    this.makeGizmos(this.target, this._tbRadius);
         | 
| 2024 2277 |  | 
| 2025 2278 | 
             
                    this._currentTarget.copy(this.target);
         | 
| 2026 | 
            -
                  } | 
| 2279 | 
            +
                  }
         | 
| 2027 2280 |  | 
| 2281 | 
            +
                  if (!this.camera) return; //check min/max parameters
         | 
| 2028 2282 |  | 
| 2029 | 
            -
                  if (this.camera. | 
| 2283 | 
            +
                  if (this.camera.type === 'OrthographicCamera') {
         | 
| 2030 2284 | 
             
                    //check zoom
         | 
| 2031 2285 | 
             
                    if (this.camera.zoom > this.maxZoom || this.camera.zoom < this.minZoom) {
         | 
| 2032 2286 | 
             
                      const newZoom = MathUtils.clamp(this.camera.zoom, this.minZoom, this.maxZoom);
         | 
| 2033 2287 | 
             
                      this.applyTransformMatrix(this.applyScale(newZoom / this.camera.zoom, this._gizmos.position, true));
         | 
| 2034 2288 | 
             
                    }
         | 
| 2035 | 
            -
                  } | 
| 2289 | 
            +
                  }
         | 
| 2290 | 
            +
             | 
| 2291 | 
            +
                  if (this.camera.type === 'PerspectiveCamera') {
         | 
| 2036 2292 | 
             
                    //check distance
         | 
| 2037 2293 | 
             
                    const distance = this.camera.position.distanceTo(this._gizmos.position);
         | 
| 2038 2294 |  | 
| @@ -2049,17 +2305,23 @@ class ArcballControls extends EventDispatcher { | |
| 2049 2305 | 
             
                    }
         | 
| 2050 2306 |  | 
| 2051 2307 | 
             
                    const oldRadius = this._tbRadius;
         | 
| 2052 | 
            -
                     | 
| 2308 | 
            +
                    const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 2309 | 
            +
             | 
| 2310 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 2311 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 2312 | 
            +
                    }
         | 
| 2053 2313 |  | 
| 2054 2314 | 
             
                    if (oldRadius < this._tbRadius - EPS || oldRadius > this._tbRadius + EPS) {
         | 
| 2055 2315 | 
             
                      const scale = (this._gizmos.scale.x + this._gizmos.scale.y + this._gizmos.scale.z) / 3;
         | 
| 2056 | 
            -
                      const newRadius = this._tbRadius / scale;
         | 
| 2316 | 
            +
                      const newRadius = this._tbRadius / scale; // @ts-expect-error
         | 
| 2317 | 
            +
             | 
| 2057 2318 | 
             
                      const curve = new EllipseCurve(0, 0, newRadius, newRadius);
         | 
| 2058 2319 | 
             
                      const points = curve.getPoints(this._curvePts);
         | 
| 2059 2320 | 
             
                      const curveGeometry = new BufferGeometry().setFromPoints(points);
         | 
| 2060 2321 |  | 
| 2061 2322 | 
             
                      for (const gizmo in this._gizmos.children) {
         | 
| 2062 | 
            -
                        this._gizmos.children[gizmo] | 
| 2323 | 
            +
                        const child = this._gizmos.children[gizmo];
         | 
| 2324 | 
            +
                        child.geometry = curveGeometry;
         | 
| 2063 2325 | 
             
                      }
         | 
| 2064 2326 | 
             
                    }
         | 
| 2065 2327 | 
             
                  }
         | 
| @@ -2070,7 +2332,7 @@ class ArcballControls extends EventDispatcher { | |
| 2070 2332 | 
             
                _defineProperty(this, "setStateFromJSON", json => {
         | 
| 2071 2333 | 
             
                  const state = JSON.parse(json);
         | 
| 2072 2334 |  | 
| 2073 | 
            -
                  if (state.arcballState  | 
| 2335 | 
            +
                  if (state.arcballState && this.camera) {
         | 
| 2074 2336 | 
             
                    this._cameraMatrixState.fromArray(state.arcballState.cameraMatrix.elements);
         | 
| 2075 2337 |  | 
| 2076 2338 | 
             
                    this._cameraMatrixState.decompose(this.camera.position, this.camera.quaternion, this.camera.scale);
         | 
| @@ -2080,7 +2342,7 @@ class ArcballControls extends EventDispatcher { | |
| 2080 2342 | 
             
                    this.camera.far = state.arcballState.cameraFar;
         | 
| 2081 2343 | 
             
                    this.camera.zoom = state.arcballState.cameraZoom;
         | 
| 2082 2344 |  | 
| 2083 | 
            -
                    if (this.camera. | 
| 2345 | 
            +
                    if (this.camera.type === 'PerspectiveCamera') {
         | 
| 2084 2346 | 
             
                      this.camera.fov = state.arcballState.cameraFov;
         | 
| 2085 2347 | 
             
                    }
         | 
| 2086 2348 |  | 
| @@ -2093,7 +2355,12 @@ class ArcballControls extends EventDispatcher { | |
| 2093 2355 |  | 
| 2094 2356 | 
             
                    this._gizmos.updateMatrix();
         | 
| 2095 2357 |  | 
| 2096 | 
            -
                     | 
| 2358 | 
            +
                    const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 2359 | 
            +
             | 
| 2360 | 
            +
                    if (tbRadius !== undefined) {
         | 
| 2361 | 
            +
                      this._tbRadius = tbRadius;
         | 
| 2362 | 
            +
                    }
         | 
| 2363 | 
            +
             | 
| 2097 2364 | 
             
                    const gizmoTmp = new Matrix4().copy(this._gizmoMatrixState0);
         | 
| 2098 2365 | 
             
                    this.makeGizmos(this._gizmos.position, this._tbRadius);
         | 
| 2099 2366 |  | 
| @@ -2106,6 +2373,7 @@ class ArcballControls extends EventDispatcher { | |
| 2106 2373 | 
             
                });
         | 
| 2107 2374 |  | 
| 2108 2375 | 
             
                this.camera = null;
         | 
| 2376 | 
            +
                this.domElement = _domElement;
         | 
| 2109 2377 | 
             
                this.scene = scene;
         | 
| 2110 2378 | 
             
                this.mouseActions = [];
         | 
| 2111 2379 | 
             
                this._mouseOp = null; //global vectors and matrices that are used in some operations to avoid creating new objects every time (e.g. every time cursor moves)
         | 
| @@ -2163,8 +2431,6 @@ class ArcballControls extends EventDispatcher { | |
| 2163 2431 | 
             
                this._downValid = true;
         | 
| 2164 2432 | 
             
                this._nclicks = 0;
         | 
| 2165 2433 | 
             
                this._downEvents = [];
         | 
| 2166 | 
            -
                this._downStart = 0; //pointerDown time
         | 
| 2167 | 
            -
             | 
| 2168 2434 | 
             
                this._clickStart = 0; //first click time
         | 
| 2169 2435 |  | 
| 2170 2436 | 
             
                this._maxDownTime = 250;
         | 
| @@ -2224,7 +2490,6 @@ class ArcballControls extends EventDispatcher { | |
| 2224 2490 | 
             
                this.enablePan = true;
         | 
| 2225 2491 | 
             
                this.enableRotate = true;
         | 
| 2226 2492 | 
             
                this.enableZoom = true;
         | 
| 2227 | 
            -
                this.enableGizmos = true;
         | 
| 2228 2493 | 
             
                this.minDistance = 0;
         | 
| 2229 2494 | 
             
                this.maxDistance = Infinity;
         | 
| 2230 2495 | 
             
                this.minZoom = 0;
         | 
| @@ -2237,14 +2502,14 @@ class ArcballControls extends EventDispatcher { | |
| 2237 2502 | 
             
                this._state = STATE.IDLE;
         | 
| 2238 2503 | 
             
                this.setCamera(_camera);
         | 
| 2239 2504 |  | 
| 2240 | 
            -
                if (this.scene | 
| 2505 | 
            +
                if (this.scene) {
         | 
| 2241 2506 | 
             
                  this.scene.add(this._gizmos);
         | 
| 2242 | 
            -
                } | 
| 2243 | 
            -
             | 
| 2507 | 
            +
                }
         | 
| 2244 2508 |  | 
| 2245 | 
            -
                if (_domElement !== undefined) this.connect(_domElement);
         | 
| 2246 2509 | 
             
                this._devPxRatio = window.devicePixelRatio;
         | 
| 2247 2510 | 
             
                this.initializeMouseActions();
         | 
| 2511 | 
            +
                if (this.domElement) this.connect(this.domElement);
         | 
| 2512 | 
            +
                window.addEventListener('resize', this.onWindowResize);
         | 
| 2248 2513 | 
             
              } //listeners
         | 
| 2249 2514 |  | 
| 2250 2515 |  | 
| @@ -2253,7 +2518,7 @@ class ArcballControls extends EventDispatcher { | |
| 2253 2518 | 
             
               * @param {Object} transformation Object containing matrices to apply to camera and gizmos
         | 
| 2254 2519 | 
             
               */
         | 
| 2255 2520 | 
             
              applyTransformMatrix(transformation) {
         | 
| 2256 | 
            -
                if (transformation.camera  | 
| 2521 | 
            +
                if (transformation !== null && transformation !== void 0 && transformation.camera && this.camera) {
         | 
| 2257 2522 | 
             
                  this._m4_1.copy(this._cameraMatrixState).premultiply(transformation.camera);
         | 
| 2258 2523 |  | 
| 2259 2524 | 
             
                  this._m4_1.decompose(this.camera.position, this.camera.quaternion, this.camera.scale);
         | 
| @@ -2265,7 +2530,7 @@ class ArcballControls extends EventDispatcher { | |
| 2265 2530 | 
             
                  }
         | 
| 2266 2531 | 
             
                }
         | 
| 2267 2532 |  | 
| 2268 | 
            -
                if (transformation | 
| 2533 | 
            +
                if (transformation !== null && transformation !== void 0 && transformation.gizmos) {
         | 
| 2269 2534 | 
             
                  this._m4_1.copy(this._gizmoMatrixState).premultiply(transformation.gizmos);
         | 
| 2270 2535 |  | 
| 2271 2536 | 
             
                  this._m4_1.decompose(this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale);
         | 
| @@ -2273,8 +2538,12 @@ class ArcballControls extends EventDispatcher { | |
| 2273 2538 | 
             
                  this._gizmos.updateMatrix();
         | 
| 2274 2539 | 
             
                }
         | 
| 2275 2540 |  | 
| 2276 | 
            -
                if (this._state == STATE.SCALE || this._state == STATE.FOCUS || this._state == STATE.ANIMATION_FOCUS) {
         | 
| 2277 | 
            -
                   | 
| 2541 | 
            +
                if ((this._state == STATE.SCALE || this._state == STATE.FOCUS || this._state == STATE.ANIMATION_FOCUS) && this.camera) {
         | 
| 2542 | 
            +
                  const tbRadius = this.calculateTbRadius(this.camera);
         | 
| 2543 | 
            +
             | 
| 2544 | 
            +
                  if (tbRadius !== undefined) {
         | 
| 2545 | 
            +
                    this._tbRadius = tbRadius;
         | 
| 2546 | 
            +
                  }
         | 
| 2278 2547 |  | 
| 2279 2548 | 
             
                  if (this.adjustNearFar) {
         | 
| 2280 2549 | 
             
                    const cameraDistance = this.camera.position.distanceTo(this._gizmos.position);
         | 
| @@ -2340,8 +2609,8 @@ class ArcballControls extends EventDispatcher { | |
| 2340 2609 | 
             
               * @param {Matrix4} gizmos Transformation to be applied to gizmos
         | 
| 2341 2610 | 
             
               */
         | 
| 2342 2611 | 
             
              setTransformationMatrices(camera = null, gizmos = null) {
         | 
| 2343 | 
            -
                if (camera | 
| 2344 | 
            -
                  if (_transformation.camera | 
| 2612 | 
            +
                if (camera) {
         | 
| 2613 | 
            +
                  if (_transformation.camera) {
         | 
| 2345 2614 | 
             
                    _transformation.camera.copy(camera);
         | 
| 2346 2615 | 
             
                  } else {
         | 
| 2347 2616 | 
             
                    _transformation.camera = camera.clone();
         | 
| @@ -2350,8 +2619,8 @@ class ArcballControls extends EventDispatcher { | |
| 2350 2619 | 
             
                  _transformation.camera = null;
         | 
| 2351 2620 | 
             
                }
         | 
| 2352 2621 |  | 
| 2353 | 
            -
                if (gizmos | 
| 2354 | 
            -
                  if (_transformation.gizmos | 
| 2622 | 
            +
                if (gizmos) {
         | 
| 2623 | 
            +
                  if (_transformation.gizmos) {
         | 
| 2355 2624 | 
             
                    _transformation.gizmos.copy(gizmos);
         | 
| 2356 2625 | 
             
                  } else {
         | 
| 2357 2626 | 
             
                    _transformation.gizmos = gizmos.clone();
         |