copper3d 1.15.5 → 1.15.7
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/dist/Controls/Copper3dTrackballControls.js +77 -155
- package/dist/Controls/Copper3dTrackballControls.js.map +1 -1
- package/dist/Scene/copperScene.d.ts +2 -2
- package/dist/Scene/copperScene.js +2 -2
- package/dist/Scene/copperScene.js.map +1 -1
- package/dist/bundle.esm.js +101 -716
- package/dist/bundle.umd.js +101 -716
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/types/Scene/copperScene.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/Controls/Copper3dTrackballControls1.d.ts +0 -45
- package/dist/Controls/Copper3dTrackballControls1.js +0 -539
- package/dist/Controls/Copper3dTrackballControls1.js.map +0 -1
- package/dist/types/Controls/Copper3dTrackballControls1.d.ts +0 -45
package/dist/bundle.esm.js
CHANGED
|
@@ -45209,9 +45209,9 @@ class OBJLoader extends Loader {
|
|
|
45209
45209
|
|
|
45210
45210
|
const objLoader = new OBJLoader();
|
|
45211
45211
|
|
|
45212
|
-
const _changeEvent$
|
|
45213
|
-
const _startEvent$
|
|
45214
|
-
const _endEvent$
|
|
45212
|
+
const _changeEvent$2 = { type: "change" };
|
|
45213
|
+
const _startEvent$2 = { type: "start" };
|
|
45214
|
+
const _endEvent$2 = { type: "end" };
|
|
45215
45215
|
class Copper3dTrackballControls extends EventDispatcher {
|
|
45216
45216
|
constructor(object, domElement) {
|
|
45217
45217
|
super();
|
|
@@ -45244,7 +45244,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45244
45244
|
this.maxDistance = Infinity;
|
|
45245
45245
|
this.minZoom = 0;
|
|
45246
45246
|
this.maxZoom = Infinity;
|
|
45247
|
-
this.keys = ["KeyA"
|
|
45247
|
+
this.keys = ["KeyA" /*A*/, "KeyS" /*S*/, "KeyD" /*D*/];
|
|
45248
45248
|
this.mouseButtons = {
|
|
45249
45249
|
LEFT: MOUSE.ROTATE,
|
|
45250
45250
|
MIDDLE: MOUSE.DOLLY,
|
|
@@ -45262,11 +45262,10 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45262
45262
|
this.position0 = this.object.position.clone();
|
|
45263
45263
|
this.up0 = this.object.up.clone();
|
|
45264
45264
|
this.zoom0 = this.object.zoom;
|
|
45265
|
-
//
|
|
45265
|
+
// methods
|
|
45266
45266
|
this.handleResize = function () {
|
|
45267
45267
|
const box = scope.domElement.getBoundingClientRect();
|
|
45268
|
-
// adjustments come from similar code in the jquery
|
|
45269
|
-
// get root element
|
|
45268
|
+
// adjustments come from similar code in the jquery offset() function
|
|
45270
45269
|
const d = scope.domElement.ownerDocument.documentElement;
|
|
45271
45270
|
scope.screen.left = box.left + window.pageXOffset - d.clientLeft;
|
|
45272
45271
|
scope.screen.top = box.top + window.pageYOffset - d.clientTop;
|
|
@@ -45281,18 +45280,11 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45281
45280
|
};
|
|
45282
45281
|
})();
|
|
45283
45282
|
const getMouseOnCircle = (function () {
|
|
45284
|
-
/**
|
|
45285
|
-
* convert screen coordinates to threejs coordinates ratio
|
|
45286
|
-
*/
|
|
45287
45283
|
const vector = new Vector2();
|
|
45288
|
-
return function
|
|
45289
|
-
vector.set(
|
|
45290
|
-
|
|
45291
|
-
|
|
45292
|
-
(scope.screen.width * 0.5),
|
|
45293
|
-
// the height radius of the circle diameter
|
|
45294
|
-
(scope.screen.height + 2 * (scope.screen.top - pageY)) /
|
|
45295
|
-
scope.screen.width //screen.width intentional
|
|
45284
|
+
return function getMouseOnCircle(pageX, pageY) {
|
|
45285
|
+
vector.set((pageX - scope.screen.width * 0.5 - scope.screen.left) /
|
|
45286
|
+
(scope.screen.width * 0.5), (scope.screen.height + 2 * (scope.screen.top - pageY)) /
|
|
45287
|
+
scope.screen.width // screen.width intentional
|
|
45296
45288
|
);
|
|
45297
45289
|
return vector;
|
|
45298
45290
|
};
|
|
@@ -45301,26 +45293,20 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45301
45293
|
const axis = new Vector3(), quaternion = new Quaternion(), eyeDirection = new Vector3(), objectUpDirection = new Vector3(), objectSidewaysDirection = new Vector3(), moveDirection = new Vector3();
|
|
45302
45294
|
return function rotateCamera() {
|
|
45303
45295
|
moveDirection.set(_moveCurr.x - _movePrev.x, _moveCurr.y - _movePrev.y, 0);
|
|
45304
|
-
// Computes the Euclidean length (straight-line length) from (0, 0, 0) to (x, y, z).
|
|
45305
45296
|
let angle = moveDirection.length();
|
|
45306
45297
|
if (angle) {
|
|
45307
|
-
// .sub Subtracts v from this vector.
|
|
45308
45298
|
_eye.copy(scope.object.position).sub(scope.target);
|
|
45309
|
-
// .normalize() Convert this vector to a unit vector - that is, sets it equal to a vector with the same direction as this one, but length 1.
|
|
45310
45299
|
eyeDirection.copy(_eye).normalize();
|
|
45311
45300
|
objectUpDirection.copy(scope.object.up).normalize();
|
|
45312
|
-
// .crossVectors Sets this vector to cross product of a and b.
|
|
45313
45301
|
objectSidewaysDirection
|
|
45314
45302
|
.crossVectors(objectUpDirection, eyeDirection)
|
|
45315
45303
|
.normalize();
|
|
45316
|
-
// .setLength Set this vector to a vector with the same direction as this one, but length l.
|
|
45317
45304
|
objectUpDirection.setLength(_moveCurr.y - _movePrev.y);
|
|
45318
45305
|
objectSidewaysDirection.setLength(_moveCurr.x - _movePrev.x);
|
|
45319
45306
|
moveDirection.copy(objectUpDirection.add(objectSidewaysDirection));
|
|
45320
45307
|
axis.crossVectors(moveDirection, _eye).normalize();
|
|
45321
45308
|
angle *= scope.rotateSpeed;
|
|
45322
45309
|
quaternion.setFromAxisAngle(axis, angle);
|
|
45323
|
-
// Applies a Quaternion transform to this vector.
|
|
45324
45310
|
_eye.applyQuaternion(quaternion);
|
|
45325
45311
|
scope.object.up.applyQuaternion(quaternion);
|
|
45326
45312
|
_lastAxis.copy(axis);
|
|
@@ -45375,15 +45361,15 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45375
45361
|
const mouseChange = new Vector2(), objectUp = new Vector3(), pan = new Vector3();
|
|
45376
45362
|
return function panCamera() {
|
|
45377
45363
|
mouseChange.copy(_panEnd).sub(_panStart);
|
|
45378
|
-
// .lengthSq() Computes the squared length of this vector. If you are comparing the lengths of vectors, you should compare the length squared instead as it is slightly more efficient to calculate.
|
|
45379
45364
|
if (mouseChange.lengthSq()) {
|
|
45380
45365
|
if (scope.object.isOrthographicCamera) {
|
|
45381
|
-
const
|
|
45382
|
-
|
|
45383
|
-
|
|
45366
|
+
const scale_x = (scope.object.right -
|
|
45367
|
+
scope.object.left) /
|
|
45368
|
+
scope.object.zoom /
|
|
45384
45369
|
scope.domElement.clientWidth;
|
|
45385
|
-
const scale_y = (
|
|
45386
|
-
|
|
45370
|
+
const scale_y = (scope.object.top -
|
|
45371
|
+
scope.object.bottom) /
|
|
45372
|
+
scope.object.zoom /
|
|
45387
45373
|
scope.domElement.clientWidth;
|
|
45388
45374
|
mouseChange.x *= scale_x;
|
|
45389
45375
|
mouseChange.y *= scale_y;
|
|
@@ -45432,7 +45418,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45432
45418
|
scope.checkDistances();
|
|
45433
45419
|
scope.object.lookAt(scope.target);
|
|
45434
45420
|
if (lastPosition.distanceToSquared(scope.object.position) > EPS) {
|
|
45435
|
-
scope.dispatchEvent(_changeEvent$
|
|
45421
|
+
scope.dispatchEvent(_changeEvent$2);
|
|
45436
45422
|
lastPosition.copy(scope.object.position);
|
|
45437
45423
|
}
|
|
45438
45424
|
}
|
|
@@ -45440,7 +45426,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45440
45426
|
scope.object.lookAt(scope.target);
|
|
45441
45427
|
if (lastPosition.distanceToSquared(scope.object.position) > EPS ||
|
|
45442
45428
|
lastZoom !== scope.object.zoom) {
|
|
45443
|
-
scope.dispatchEvent(_changeEvent$
|
|
45429
|
+
scope.dispatchEvent(_changeEvent$2);
|
|
45444
45430
|
lastPosition.copy(scope.object.position);
|
|
45445
45431
|
lastZoom = scope.object.zoom;
|
|
45446
45432
|
}
|
|
@@ -45459,7 +45445,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45459
45445
|
scope.object.updateProjectionMatrix();
|
|
45460
45446
|
_eye.subVectors(scope.object.position, scope.target);
|
|
45461
45447
|
scope.object.lookAt(scope.target);
|
|
45462
|
-
scope.dispatchEvent(_changeEvent$
|
|
45448
|
+
scope.dispatchEvent(_changeEvent$2);
|
|
45463
45449
|
lastPosition.copy(scope.object.position);
|
|
45464
45450
|
lastZoom = scope.object.zoom;
|
|
45465
45451
|
};
|
|
@@ -45469,9 +45455,10 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45469
45455
|
return;
|
|
45470
45456
|
if (_pointers.length === 0) {
|
|
45471
45457
|
scope.domElement.setPointerCapture(event.pointerId);
|
|
45472
|
-
scope.domElement.addEventListener("pointermove", onPointerMove
|
|
45473
|
-
scope.domElement.addEventListener("pointerup", onPointerUp
|
|
45458
|
+
scope.domElement.addEventListener("pointermove", onPointerMove);
|
|
45459
|
+
scope.domElement.addEventListener("pointerup", onPointerUp);
|
|
45474
45460
|
}
|
|
45461
|
+
//
|
|
45475
45462
|
addPointer(event);
|
|
45476
45463
|
if (event.pointerType === "touch") {
|
|
45477
45464
|
onTouchStart(event);
|
|
@@ -45499,11 +45486,12 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45499
45486
|
else {
|
|
45500
45487
|
onMouseUp();
|
|
45501
45488
|
}
|
|
45489
|
+
//
|
|
45502
45490
|
removePointer(event);
|
|
45503
45491
|
if (_pointers.length === 0) {
|
|
45504
45492
|
scope.domElement.releasePointerCapture(event.pointerId);
|
|
45505
|
-
scope.domElement.removeEventListener("pointermove", onPointerMove
|
|
45506
|
-
scope.domElement.removeEventListener("pointerup", onPointerUp
|
|
45493
|
+
scope.domElement.removeEventListener("pointermove", onPointerMove);
|
|
45494
|
+
scope.domElement.removeEventListener("pointerup", onPointerUp);
|
|
45507
45495
|
}
|
|
45508
45496
|
}
|
|
45509
45497
|
function onPointerCancel(event) {
|
|
@@ -45526,11 +45514,11 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45526
45514
|
_keyState = STATE.PAN;
|
|
45527
45515
|
}
|
|
45528
45516
|
}
|
|
45529
|
-
function keyup(
|
|
45517
|
+
function keyup() {
|
|
45530
45518
|
if (scope.enabled === false)
|
|
45531
45519
|
return;
|
|
45532
45520
|
_keyState = STATE.NONE;
|
|
45533
|
-
window.addEventListener("keydown", keydown
|
|
45521
|
+
window.addEventListener("keydown", keydown);
|
|
45534
45522
|
}
|
|
45535
45523
|
function onMouseDown(event) {
|
|
45536
45524
|
if (_state === STATE.NONE) {
|
|
@@ -45559,7 +45547,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45559
45547
|
_panStart.copy(getMouseOnScreen(event.pageX, event.pageY));
|
|
45560
45548
|
_panEnd.copy(_panStart);
|
|
45561
45549
|
}
|
|
45562
|
-
scope.dispatchEvent(_startEvent$
|
|
45550
|
+
scope.dispatchEvent(_startEvent$2);
|
|
45563
45551
|
}
|
|
45564
45552
|
function onMouseMove(event) {
|
|
45565
45553
|
const state = _keyState !== STATE.NONE ? _keyState : _state;
|
|
@@ -45574,9 +45562,9 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45574
45562
|
_panEnd.copy(getMouseOnScreen(event.pageX, event.pageY));
|
|
45575
45563
|
}
|
|
45576
45564
|
}
|
|
45577
|
-
function onMouseUp(
|
|
45565
|
+
function onMouseUp() {
|
|
45578
45566
|
_state = STATE.NONE;
|
|
45579
|
-
scope.dispatchEvent(_endEvent$
|
|
45567
|
+
scope.dispatchEvent(_endEvent$2);
|
|
45580
45568
|
}
|
|
45581
45569
|
function onMouseWheel(event) {
|
|
45582
45570
|
if (scope.enabled === false)
|
|
@@ -45598,8 +45586,8 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45598
45586
|
_zoomStart.y -= event.deltaY * 0.00025;
|
|
45599
45587
|
break;
|
|
45600
45588
|
}
|
|
45601
|
-
scope.dispatchEvent(_startEvent$
|
|
45602
|
-
scope.dispatchEvent(_endEvent$
|
|
45589
|
+
scope.dispatchEvent(_startEvent$2);
|
|
45590
|
+
scope.dispatchEvent(_endEvent$2);
|
|
45603
45591
|
}
|
|
45604
45592
|
function onTouchStart(event) {
|
|
45605
45593
|
trackPointer(event);
|
|
@@ -45609,7 +45597,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45609
45597
|
_moveCurr.copy(getMouseOnCircle(_pointers[0].pageX, _pointers[0].pageY));
|
|
45610
45598
|
_movePrev.copy(_moveCurr);
|
|
45611
45599
|
break;
|
|
45612
|
-
|
|
45600
|
+
case 2:
|
|
45613
45601
|
_state = STATE.TOUCH_ZOOM_PAN;
|
|
45614
45602
|
const dx = _pointers[0].pageX - _pointers[1].pageX;
|
|
45615
45603
|
const dy = _pointers[0].pageY - _pointers[1].pageY;
|
|
@@ -45619,25 +45607,47 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45619
45607
|
_panStart.copy(getMouseOnScreen(x, y));
|
|
45620
45608
|
_panEnd.copy(_panStart);
|
|
45621
45609
|
break;
|
|
45610
|
+
case 3:
|
|
45611
|
+
_state = STATE.TOUCH_PAN;
|
|
45612
|
+
const centerX = (_pointers[0].pageX + _pointers[1].pageX + _pointers[2].pageX) / 3;
|
|
45613
|
+
const centerY = (_pointers[0].pageY + _pointers[1].pageY + _pointers[2].pageY) / 3;
|
|
45614
|
+
_panStart.copy(getMouseOnScreen(centerX, centerY));
|
|
45615
|
+
_panEnd.copy(_panStart);
|
|
45616
|
+
break;
|
|
45622
45617
|
}
|
|
45623
|
-
scope.dispatchEvent(_startEvent$
|
|
45618
|
+
scope.dispatchEvent(_startEvent$2);
|
|
45624
45619
|
}
|
|
45625
45620
|
function onTouchMove(event) {
|
|
45626
45621
|
trackPointer(event);
|
|
45622
|
+
let position, x, y;
|
|
45627
45623
|
switch (_pointers.length) {
|
|
45628
45624
|
case 1:
|
|
45625
|
+
if (_state != STATE.TOUCH_ROTATE)
|
|
45626
|
+
return;
|
|
45629
45627
|
_movePrev.copy(_moveCurr);
|
|
45630
45628
|
_moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
45631
45629
|
break;
|
|
45632
|
-
|
|
45633
|
-
|
|
45630
|
+
case 2:
|
|
45631
|
+
if (_state != STATE.TOUCH_ZOOM_PAN)
|
|
45632
|
+
return;
|
|
45633
|
+
position = getSecondPointerPosition(event);
|
|
45634
45634
|
const dx = event.pageX - position.x;
|
|
45635
45635
|
const dy = event.pageY - position.y;
|
|
45636
45636
|
_touchZoomDistanceEnd = Math.sqrt(dx * dx + dy * dy);
|
|
45637
|
-
|
|
45638
|
-
|
|
45637
|
+
x = (event.pageX + position.x) / 2;
|
|
45638
|
+
y = (event.pageY + position.y) / 2;
|
|
45639
45639
|
_panEnd.copy(getMouseOnScreen(x, y));
|
|
45640
45640
|
break;
|
|
45641
|
+
case 3:
|
|
45642
|
+
if (_state != STATE.TOUCH_PAN)
|
|
45643
|
+
return;
|
|
45644
|
+
const point_1 = _pointerPositions[_pointers[0].pointerId];
|
|
45645
|
+
const point_2 = _pointerPositions[_pointers[1].pointerId];
|
|
45646
|
+
const point_3 = _pointerPositions[_pointers[2].pointerId];
|
|
45647
|
+
const centerX = (point_1.x + point_2.x + point_3.x) / 3;
|
|
45648
|
+
const centerY = (point_1.y + point_2.y + point_3.y) / 3;
|
|
45649
|
+
_panEnd.copy(getMouseOnScreen(centerX, centerY));
|
|
45650
|
+
break;
|
|
45641
45651
|
}
|
|
45642
45652
|
}
|
|
45643
45653
|
function onTouchEnd(event) {
|
|
@@ -45655,114 +45665,26 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45655
45665
|
for (let i = 0; i < _pointers.length; i++) {
|
|
45656
45666
|
if (_pointers[i].pointerId !== event.pointerId) {
|
|
45657
45667
|
const position = _pointerPositions[_pointers[i].pointerId];
|
|
45658
|
-
_moveCurr.copy(
|
|
45668
|
+
_moveCurr.copy(getMouseOnScreen(position.x, position.y));
|
|
45669
|
+
_movePrev.copy(_moveCurr);
|
|
45670
|
+
break;
|
|
45671
|
+
}
|
|
45672
|
+
}
|
|
45673
|
+
break;
|
|
45674
|
+
case 3:
|
|
45675
|
+
_state = STATE.TOUCH_PAN;
|
|
45676
|
+
for (let i = 0; i < _pointers.length; i++) {
|
|
45677
|
+
if (_pointers[i].pointerId !== event.pointerId) {
|
|
45678
|
+
const position = _pointerPositions[_pointers[i].pointerId];
|
|
45679
|
+
_moveCurr.copy(getMouseOnScreen(position.x, position.y));
|
|
45659
45680
|
_movePrev.copy(_moveCurr);
|
|
45660
45681
|
break;
|
|
45661
45682
|
}
|
|
45662
45683
|
}
|
|
45663
45684
|
break;
|
|
45664
45685
|
}
|
|
45665
|
-
scope.dispatchEvent(_endEvent$
|
|
45686
|
+
scope.dispatchEvent(_endEvent$2);
|
|
45666
45687
|
}
|
|
45667
|
-
// function onTouchStart(event: PointerEvent) {
|
|
45668
|
-
// trackPointer(event);
|
|
45669
|
-
// switch (_pointers.length) {
|
|
45670
|
-
// case 1:
|
|
45671
|
-
// _state = STATE.TOUCH_ROTATE;
|
|
45672
|
-
// _moveCurr.copy(
|
|
45673
|
-
// getMouseOnCircle(_pointers[0].pageX, _pointers[0].pageY)
|
|
45674
|
-
// );
|
|
45675
|
-
// _movePrev.copy(_moveCurr);
|
|
45676
|
-
// break;
|
|
45677
|
-
// case 2:
|
|
45678
|
-
// _state = STATE.TOUCH_ZOOM_PAN;
|
|
45679
|
-
// const dx: number = _pointers[0].pageX - _pointers[1].pageX;
|
|
45680
|
-
// const dy: number = _pointers[0].pageY - _pointers[1].pageY;
|
|
45681
|
-
// _touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt(
|
|
45682
|
-
// dx * dx + dy * dy
|
|
45683
|
-
// );
|
|
45684
|
-
// const x = (_pointers[0].pageX + _pointers[1].pageX) / 2;
|
|
45685
|
-
// const y = (_pointers[0].pageY + _pointers[1].pageY) / 2;
|
|
45686
|
-
// _panStart.copy(getMouseOnScreen(x, y));
|
|
45687
|
-
// _panEnd.copy(_panStart);
|
|
45688
|
-
// break;
|
|
45689
|
-
// case 3:
|
|
45690
|
-
// _state = STATE.TOUCH_PAN;
|
|
45691
|
-
// const centerX =
|
|
45692
|
-
// (_pointers[0].pageX + _pointers[1].pageX + _pointers[2].pageX) / 3;
|
|
45693
|
-
// const centerY =
|
|
45694
|
-
// (_pointers[0].pageY + _pointers[1].pageY + _pointers[2].pageY) / 3;
|
|
45695
|
-
// _panStart.copy(getMouseOnScreen(centerX, centerY));
|
|
45696
|
-
// _panEnd.copy(_panStart);
|
|
45697
|
-
// break;
|
|
45698
|
-
// }
|
|
45699
|
-
// scope.dispatchEvent(_startEvent);
|
|
45700
|
-
// }
|
|
45701
|
-
// function onTouchMove(event: PointerEvent) {
|
|
45702
|
-
// trackPointer(event);
|
|
45703
|
-
// let position: Vector2, x: number, y: number;
|
|
45704
|
-
// switch (_pointers.length) {
|
|
45705
|
-
// case 1:
|
|
45706
|
-
// if (_state != STATE.TOUCH_ROTATE) return;
|
|
45707
|
-
// _movePrev.copy(_moveCurr);
|
|
45708
|
-
// _moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
45709
|
-
// break;
|
|
45710
|
-
// case 2:
|
|
45711
|
-
// if (_state != STATE.TOUCH_ZOOM_PAN) return;
|
|
45712
|
-
// position = getSecondPointerPosition(event);
|
|
45713
|
-
// const dx: number = event.pageX - position.x;
|
|
45714
|
-
// const dy: number = event.pageY - position.y;
|
|
45715
|
-
// _touchZoomDistanceEnd = Math.sqrt(dx * dx + dy * dy);
|
|
45716
|
-
// x = (event.pageX + position.x) / 2;
|
|
45717
|
-
// y = (event.pageY + position.y) / 2;
|
|
45718
|
-
// _panEnd.copy(getMouseOnScreen(x, y));
|
|
45719
|
-
// break;
|
|
45720
|
-
// case 3:
|
|
45721
|
-
// if (_state != STATE.TOUCH_PAN) return;
|
|
45722
|
-
// const point_1 = _pointerPositions[_pointers[0].pointerId];
|
|
45723
|
-
// const point_2 = _pointerPositions[_pointers[1].pointerId];
|
|
45724
|
-
// const point_3 = _pointerPositions[_pointers[2].pointerId];
|
|
45725
|
-
// const centerX = (point_1.x + point_2.x + point_3.x) / 3;
|
|
45726
|
-
// const centerY = (point_1.y + point_2.y + point_3.y) / 3;
|
|
45727
|
-
// _panEnd.copy(getMouseOnScreen(centerX, centerY));
|
|
45728
|
-
// break;
|
|
45729
|
-
// }
|
|
45730
|
-
// }
|
|
45731
|
-
// function onTouchEnd(event: PointerEvent) {
|
|
45732
|
-
// switch (_pointers.length) {
|
|
45733
|
-
// case 0:
|
|
45734
|
-
// _state = STATE.NONE;
|
|
45735
|
-
// break;
|
|
45736
|
-
// case 1:
|
|
45737
|
-
// _state = STATE.TOUCH_ROTATE;
|
|
45738
|
-
// _moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
45739
|
-
// _movePrev.copy(_moveCurr);
|
|
45740
|
-
// break;
|
|
45741
|
-
// case 2:
|
|
45742
|
-
// _state = STATE.TOUCH_ZOOM_PAN;
|
|
45743
|
-
// for (let i = 0; i < _pointers.length; i++) {
|
|
45744
|
-
// if (_pointers[i].pointerId !== event.pointerId) {
|
|
45745
|
-
// const position = _pointerPositions[_pointers[i].pointerId];
|
|
45746
|
-
// _moveCurr.copy(getMouseOnScreen(position.x, position.y));
|
|
45747
|
-
// _movePrev.copy(_moveCurr);
|
|
45748
|
-
// break;
|
|
45749
|
-
// }
|
|
45750
|
-
// }
|
|
45751
|
-
// break;
|
|
45752
|
-
// case 3:
|
|
45753
|
-
// _state = STATE.TOUCH_PAN;
|
|
45754
|
-
// for (let i = 0; i < _pointers.length; i++) {
|
|
45755
|
-
// if (_pointers[i].pointerId !== event.pointerId) {
|
|
45756
|
-
// const position = _pointerPositions[_pointers[i].pointerId];
|
|
45757
|
-
// _moveCurr.copy(getMouseOnScreen(position.x, position.y));
|
|
45758
|
-
// _movePrev.copy(_moveCurr);
|
|
45759
|
-
// break;
|
|
45760
|
-
// }
|
|
45761
|
-
// }
|
|
45762
|
-
// break;
|
|
45763
|
-
// }
|
|
45764
|
-
// scope.dispatchEvent(_endEvent);
|
|
45765
|
-
// }
|
|
45766
45688
|
function contextmenu(event) {
|
|
45767
45689
|
if (scope.enabled === false)
|
|
45768
45690
|
return;
|
|
@@ -45774,7 +45696,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45774
45696
|
function removePointer(event) {
|
|
45775
45697
|
delete _pointerPositions[event.pointerId];
|
|
45776
45698
|
for (let i = 0; i < _pointers.length; i++) {
|
|
45777
|
-
if (_pointers[i].pointerId
|
|
45699
|
+
if (_pointers[i].pointerId == event.pointerId) {
|
|
45778
45700
|
_pointers.splice(i, 1);
|
|
45779
45701
|
return;
|
|
45780
45702
|
}
|
|
@@ -45786,7 +45708,7 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45786
45708
|
position = new Vector2();
|
|
45787
45709
|
_pointerPositions[event.pointerId] = position;
|
|
45788
45710
|
}
|
|
45789
|
-
position.set(event.
|
|
45711
|
+
position.set(event.pageX, event.pageY);
|
|
45790
45712
|
}
|
|
45791
45713
|
function getSecondPointerPosition(event) {
|
|
45792
45714
|
const pointer = event.pointerId === _pointers[0].pointerId
|
|
@@ -45795,21 +45717,21 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45795
45717
|
return _pointerPositions[pointer.pointerId];
|
|
45796
45718
|
}
|
|
45797
45719
|
this.dispose = function () {
|
|
45798
|
-
scope.domElement.removeEventListener("contextmenu", contextmenu
|
|
45799
|
-
scope.domElement.removeEventListener("pointerdown", onPointerDown
|
|
45800
|
-
scope.domElement.removeEventListener("pointercancel", onPointerCancel
|
|
45801
|
-
scope.domElement.removeEventListener("wheel", onMouseWheel
|
|
45802
|
-
scope.domElement.removeEventListener("pointermove", onPointerMove
|
|
45803
|
-
scope.domElement.removeEventListener("pointerup", onPointerUp
|
|
45804
|
-
window.removeEventListener("keydown", keydown
|
|
45805
|
-
window.removeEventListener("keyup", keyup
|
|
45720
|
+
scope.domElement.removeEventListener("contextmenu", contextmenu);
|
|
45721
|
+
scope.domElement.removeEventListener("pointerdown", onPointerDown);
|
|
45722
|
+
scope.domElement.removeEventListener("pointercancel", onPointerCancel);
|
|
45723
|
+
scope.domElement.removeEventListener("wheel", onMouseWheel);
|
|
45724
|
+
scope.domElement.removeEventListener("pointermove", onPointerMove);
|
|
45725
|
+
scope.domElement.removeEventListener("pointerup", onPointerUp);
|
|
45726
|
+
window.removeEventListener("keydown", keydown);
|
|
45727
|
+
window.removeEventListener("keyup", keyup);
|
|
45806
45728
|
};
|
|
45807
|
-
this.domElement.addEventListener("contextmenu", contextmenu
|
|
45808
|
-
this.domElement.addEventListener("pointerdown", onPointerDown
|
|
45809
|
-
this.domElement.addEventListener("pointercancel", onPointerCancel
|
|
45729
|
+
this.domElement.addEventListener("contextmenu", contextmenu);
|
|
45730
|
+
this.domElement.addEventListener("pointerdown", onPointerDown);
|
|
45731
|
+
this.domElement.addEventListener("pointercancel", onPointerCancel);
|
|
45810
45732
|
this.domElement.addEventListener("wheel", onMouseWheel, { passive: false });
|
|
45811
|
-
window.addEventListener("keydown", keydown
|
|
45812
|
-
window.addEventListener("keyup", keyup
|
|
45733
|
+
window.addEventListener("keydown", keydown);
|
|
45734
|
+
window.addEventListener("keyup", keyup);
|
|
45813
45735
|
this.handleResize();
|
|
45814
45736
|
// force an update at start
|
|
45815
45737
|
this.update();
|
|
@@ -45823,9 +45745,9 @@ class Copper3dTrackballControls extends EventDispatcher {
|
|
|
45823
45745
|
// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish
|
|
45824
45746
|
// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move
|
|
45825
45747
|
|
|
45826
|
-
const _changeEvent$
|
|
45827
|
-
const _startEvent$
|
|
45828
|
-
const _endEvent$
|
|
45748
|
+
const _changeEvent$1 = { type: 'change' };
|
|
45749
|
+
const _startEvent$1 = { type: 'start' };
|
|
45750
|
+
const _endEvent$1 = { type: 'end' };
|
|
45829
45751
|
|
|
45830
45752
|
class OrbitControls extends EventDispatcher {
|
|
45831
45753
|
|
|
@@ -45954,7 +45876,7 @@ class OrbitControls extends EventDispatcher {
|
|
|
45954
45876
|
scope.object.zoom = scope.zoom0;
|
|
45955
45877
|
|
|
45956
45878
|
scope.object.updateProjectionMatrix();
|
|
45957
|
-
scope.dispatchEvent( _changeEvent$
|
|
45879
|
+
scope.dispatchEvent( _changeEvent$1 );
|
|
45958
45880
|
|
|
45959
45881
|
scope.update();
|
|
45960
45882
|
|
|
@@ -46088,7 +46010,7 @@ class OrbitControls extends EventDispatcher {
|
|
|
46088
46010
|
lastPosition.distanceToSquared( scope.object.position ) > EPS ||
|
|
46089
46011
|
8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) {
|
|
46090
46012
|
|
|
46091
|
-
scope.dispatchEvent( _changeEvent$
|
|
46013
|
+
scope.dispatchEvent( _changeEvent$1 );
|
|
46092
46014
|
|
|
46093
46015
|
lastPosition.copy( scope.object.position );
|
|
46094
46016
|
lastQuaternion.copy( scope.object.quaternion );
|
|
@@ -46702,7 +46624,7 @@ class OrbitControls extends EventDispatcher {
|
|
|
46702
46624
|
|
|
46703
46625
|
}
|
|
46704
46626
|
|
|
46705
|
-
scope.dispatchEvent( _endEvent$
|
|
46627
|
+
scope.dispatchEvent( _endEvent$1 );
|
|
46706
46628
|
|
|
46707
46629
|
state = STATE.NONE;
|
|
46708
46630
|
|
|
@@ -46799,7 +46721,7 @@ class OrbitControls extends EventDispatcher {
|
|
|
46799
46721
|
|
|
46800
46722
|
if ( state !== STATE.NONE ) {
|
|
46801
46723
|
|
|
46802
|
-
scope.dispatchEvent( _startEvent$
|
|
46724
|
+
scope.dispatchEvent( _startEvent$1 );
|
|
46803
46725
|
|
|
46804
46726
|
}
|
|
46805
46727
|
|
|
@@ -46843,11 +46765,11 @@ class OrbitControls extends EventDispatcher {
|
|
|
46843
46765
|
|
|
46844
46766
|
event.preventDefault();
|
|
46845
46767
|
|
|
46846
|
-
scope.dispatchEvent( _startEvent$
|
|
46768
|
+
scope.dispatchEvent( _startEvent$1 );
|
|
46847
46769
|
|
|
46848
46770
|
handleMouseWheel( event );
|
|
46849
46771
|
|
|
46850
|
-
scope.dispatchEvent( _endEvent$
|
|
46772
|
+
scope.dispatchEvent( _endEvent$1 );
|
|
46851
46773
|
|
|
46852
46774
|
}
|
|
46853
46775
|
|
|
@@ -46937,7 +46859,7 @@ class OrbitControls extends EventDispatcher {
|
|
|
46937
46859
|
|
|
46938
46860
|
if ( state !== STATE.NONE ) {
|
|
46939
46861
|
|
|
46940
|
-
scope.dispatchEvent( _startEvent$
|
|
46862
|
+
scope.dispatchEvent( _startEvent$1 );
|
|
46941
46863
|
|
|
46942
46864
|
}
|
|
46943
46865
|
|
|
@@ -48356,543 +48278,6 @@ class baseRenderer {
|
|
|
48356
48278
|
}
|
|
48357
48279
|
}
|
|
48358
48280
|
|
|
48359
|
-
const _changeEvent$1 = { type: "change" };
|
|
48360
|
-
const _startEvent$1 = { type: "start" };
|
|
48361
|
-
const _endEvent$1 = { type: "end" };
|
|
48362
|
-
class Copper3dTrackballControls1 extends EventDispatcher {
|
|
48363
|
-
constructor(object, domElement) {
|
|
48364
|
-
super();
|
|
48365
|
-
const scope = this;
|
|
48366
|
-
const STATE = {
|
|
48367
|
-
NONE: -1,
|
|
48368
|
-
ROTATE: 0,
|
|
48369
|
-
ZOOM: 1,
|
|
48370
|
-
PAN: 2,
|
|
48371
|
-
TOUCH_ROTATE: 3,
|
|
48372
|
-
TOUCH_ZOOM: 4,
|
|
48373
|
-
TOUCH_PAN: 5,
|
|
48374
|
-
TOUCH_ZOOM_PAN: 6,
|
|
48375
|
-
};
|
|
48376
|
-
this.object = object;
|
|
48377
|
-
this.domElement = domElement;
|
|
48378
|
-
this.domElement.style.touchAction = "none"; // disable touch scroll
|
|
48379
|
-
// API
|
|
48380
|
-
this.enabled = true;
|
|
48381
|
-
this.screen = { left: 0, top: 0, width: 0, height: 0 };
|
|
48382
|
-
this.rotateSpeed = 1.0;
|
|
48383
|
-
this.zoomSpeed = 1.2;
|
|
48384
|
-
this.panSpeed = 0.3;
|
|
48385
|
-
this.noRotate = false;
|
|
48386
|
-
this.noZoom = false;
|
|
48387
|
-
this.noPan = false;
|
|
48388
|
-
this.staticMoving = false;
|
|
48389
|
-
this.dynamicDampingFactor = 0.2;
|
|
48390
|
-
this.minDistance = 0;
|
|
48391
|
-
this.maxDistance = Infinity;
|
|
48392
|
-
this.minZoom = 0;
|
|
48393
|
-
this.maxZoom = Infinity;
|
|
48394
|
-
this.keys = ["KeyA" /*A*/, "KeyS" /*S*/, "KeyD" /*D*/];
|
|
48395
|
-
this.mouseButtons = {
|
|
48396
|
-
LEFT: MOUSE.ROTATE,
|
|
48397
|
-
MIDDLE: MOUSE.DOLLY,
|
|
48398
|
-
RIGHT: MOUSE.PAN,
|
|
48399
|
-
};
|
|
48400
|
-
// internals
|
|
48401
|
-
this.target = new Vector3();
|
|
48402
|
-
const EPS = 0.000001;
|
|
48403
|
-
const lastPosition = new Vector3();
|
|
48404
|
-
let lastZoom = 1;
|
|
48405
|
-
let _state = STATE.NONE, _keyState = STATE.NONE, _touchZoomDistanceStart = 0, _touchZoomDistanceEnd = 0, _lastAngle = 0;
|
|
48406
|
-
const _eye = new Vector3(), _movePrev = new Vector2(), _moveCurr = new Vector2(), _lastAxis = new Vector3(), _zoomStart = new Vector2(), _zoomEnd = new Vector2(), _panStart = new Vector2(), _panEnd = new Vector2(), _pointers = [], _pointerPositions = {};
|
|
48407
|
-
// for reset
|
|
48408
|
-
this.target0 = this.target.clone();
|
|
48409
|
-
this.position0 = this.object.position.clone();
|
|
48410
|
-
this.up0 = this.object.up.clone();
|
|
48411
|
-
this.zoom0 = this.object.zoom;
|
|
48412
|
-
// methods
|
|
48413
|
-
this.handleResize = function () {
|
|
48414
|
-
const box = scope.domElement.getBoundingClientRect();
|
|
48415
|
-
// adjustments come from similar code in the jquery offset() function
|
|
48416
|
-
const d = scope.domElement.ownerDocument.documentElement;
|
|
48417
|
-
scope.screen.left = box.left + window.pageXOffset - d.clientLeft;
|
|
48418
|
-
scope.screen.top = box.top + window.pageYOffset - d.clientTop;
|
|
48419
|
-
scope.screen.width = box.width;
|
|
48420
|
-
scope.screen.height = box.height;
|
|
48421
|
-
};
|
|
48422
|
-
const getMouseOnScreen = (function () {
|
|
48423
|
-
const vector = new Vector2();
|
|
48424
|
-
return function getMouseOnScreen(pageX, pageY) {
|
|
48425
|
-
vector.set((pageX - scope.screen.left) / scope.screen.width, (pageY - scope.screen.top) / scope.screen.height);
|
|
48426
|
-
return vector;
|
|
48427
|
-
};
|
|
48428
|
-
})();
|
|
48429
|
-
const getMouseOnCircle = (function () {
|
|
48430
|
-
const vector = new Vector2();
|
|
48431
|
-
return function getMouseOnCircle(pageX, pageY) {
|
|
48432
|
-
vector.set((pageX - scope.screen.width * 0.5 - scope.screen.left) /
|
|
48433
|
-
(scope.screen.width * 0.5), (scope.screen.height + 2 * (scope.screen.top - pageY)) /
|
|
48434
|
-
scope.screen.width // screen.width intentional
|
|
48435
|
-
);
|
|
48436
|
-
return vector;
|
|
48437
|
-
};
|
|
48438
|
-
})();
|
|
48439
|
-
this.rotateCamera = (function () {
|
|
48440
|
-
const axis = new Vector3(), quaternion = new Quaternion(), eyeDirection = new Vector3(), objectUpDirection = new Vector3(), objectSidewaysDirection = new Vector3(), moveDirection = new Vector3();
|
|
48441
|
-
return function rotateCamera() {
|
|
48442
|
-
moveDirection.set(_moveCurr.x - _movePrev.x, _moveCurr.y - _movePrev.y, 0);
|
|
48443
|
-
let angle = moveDirection.length();
|
|
48444
|
-
if (angle) {
|
|
48445
|
-
_eye.copy(scope.object.position).sub(scope.target);
|
|
48446
|
-
eyeDirection.copy(_eye).normalize();
|
|
48447
|
-
objectUpDirection.copy(scope.object.up).normalize();
|
|
48448
|
-
objectSidewaysDirection
|
|
48449
|
-
.crossVectors(objectUpDirection, eyeDirection)
|
|
48450
|
-
.normalize();
|
|
48451
|
-
objectUpDirection.setLength(_moveCurr.y - _movePrev.y);
|
|
48452
|
-
objectSidewaysDirection.setLength(_moveCurr.x - _movePrev.x);
|
|
48453
|
-
moveDirection.copy(objectUpDirection.add(objectSidewaysDirection));
|
|
48454
|
-
axis.crossVectors(moveDirection, _eye).normalize();
|
|
48455
|
-
angle *= scope.rotateSpeed;
|
|
48456
|
-
quaternion.setFromAxisAngle(axis, angle);
|
|
48457
|
-
_eye.applyQuaternion(quaternion);
|
|
48458
|
-
scope.object.up.applyQuaternion(quaternion);
|
|
48459
|
-
_lastAxis.copy(axis);
|
|
48460
|
-
_lastAngle = angle;
|
|
48461
|
-
}
|
|
48462
|
-
else if (!scope.staticMoving && _lastAngle) {
|
|
48463
|
-
_lastAngle *= Math.sqrt(1.0 - scope.dynamicDampingFactor);
|
|
48464
|
-
_eye.copy(scope.object.position).sub(scope.target);
|
|
48465
|
-
quaternion.setFromAxisAngle(_lastAxis, _lastAngle);
|
|
48466
|
-
_eye.applyQuaternion(quaternion);
|
|
48467
|
-
scope.object.up.applyQuaternion(quaternion);
|
|
48468
|
-
}
|
|
48469
|
-
_movePrev.copy(_moveCurr);
|
|
48470
|
-
};
|
|
48471
|
-
})();
|
|
48472
|
-
this.zoomCamera = function () {
|
|
48473
|
-
let factor;
|
|
48474
|
-
if (_state === STATE.TOUCH_ZOOM_PAN) {
|
|
48475
|
-
factor = _touchZoomDistanceStart / _touchZoomDistanceEnd;
|
|
48476
|
-
_touchZoomDistanceStart = _touchZoomDistanceEnd;
|
|
48477
|
-
if (scope.object.isPerspectiveCamera) {
|
|
48478
|
-
_eye.multiplyScalar(factor);
|
|
48479
|
-
}
|
|
48480
|
-
else if (scope.object.isOrthographicCamera) {
|
|
48481
|
-
scope.object.zoom = MathUtils.clamp(scope.object.zoom / factor, scope.minZoom, scope.maxZoom);
|
|
48482
|
-
if (lastZoom !== scope.object.zoom) {
|
|
48483
|
-
scope.object.updateProjectionMatrix();
|
|
48484
|
-
}
|
|
48485
|
-
}
|
|
48486
|
-
else {
|
|
48487
|
-
console.warn("THREE.TrackballControls: Unsupported camera type");
|
|
48488
|
-
}
|
|
48489
|
-
}
|
|
48490
|
-
else {
|
|
48491
|
-
factor = 1.0 + (_zoomEnd.y - _zoomStart.y) * scope.zoomSpeed;
|
|
48492
|
-
if (factor !== 1.0 && factor > 0.0) {
|
|
48493
|
-
if (scope.object.isPerspectiveCamera) {
|
|
48494
|
-
_eye.multiplyScalar(factor);
|
|
48495
|
-
}
|
|
48496
|
-
else if (scope.object.isOrthographicCamera) {
|
|
48497
|
-
scope.object.zoom = MathUtils.clamp(scope.object.zoom / factor, scope.minZoom, scope.maxZoom);
|
|
48498
|
-
if (lastZoom !== scope.object.zoom) {
|
|
48499
|
-
scope.object.updateProjectionMatrix();
|
|
48500
|
-
}
|
|
48501
|
-
}
|
|
48502
|
-
else {
|
|
48503
|
-
console.warn("THREE.TrackballControls: Unsupported camera type");
|
|
48504
|
-
}
|
|
48505
|
-
}
|
|
48506
|
-
if (scope.staticMoving) {
|
|
48507
|
-
_zoomStart.copy(_zoomEnd);
|
|
48508
|
-
}
|
|
48509
|
-
else {
|
|
48510
|
-
_zoomStart.y +=
|
|
48511
|
-
(_zoomEnd.y - _zoomStart.y) * this.dynamicDampingFactor;
|
|
48512
|
-
}
|
|
48513
|
-
}
|
|
48514
|
-
};
|
|
48515
|
-
this.panCamera = (function () {
|
|
48516
|
-
const mouseChange = new Vector2(), objectUp = new Vector3(), pan = new Vector3();
|
|
48517
|
-
return function panCamera() {
|
|
48518
|
-
mouseChange.copy(_panEnd).sub(_panStart);
|
|
48519
|
-
if (mouseChange.lengthSq()) {
|
|
48520
|
-
if (scope.object.isOrthographicCamera) {
|
|
48521
|
-
const scale_x = (scope.object.right -
|
|
48522
|
-
scope.object.left) /
|
|
48523
|
-
scope.object.zoom /
|
|
48524
|
-
scope.domElement.clientWidth;
|
|
48525
|
-
const scale_y = (scope.object.top -
|
|
48526
|
-
scope.object.bottom) /
|
|
48527
|
-
scope.object.zoom /
|
|
48528
|
-
scope.domElement.clientWidth;
|
|
48529
|
-
mouseChange.x *= scale_x;
|
|
48530
|
-
mouseChange.y *= scale_y;
|
|
48531
|
-
}
|
|
48532
|
-
mouseChange.multiplyScalar(_eye.length() * scope.panSpeed);
|
|
48533
|
-
pan.copy(_eye).cross(scope.object.up).setLength(mouseChange.x);
|
|
48534
|
-
pan.add(objectUp.copy(scope.object.up).setLength(mouseChange.y));
|
|
48535
|
-
scope.object.position.add(pan);
|
|
48536
|
-
scope.target.add(pan);
|
|
48537
|
-
if (scope.staticMoving) {
|
|
48538
|
-
_panStart.copy(_panEnd);
|
|
48539
|
-
}
|
|
48540
|
-
else {
|
|
48541
|
-
_panStart.add(mouseChange
|
|
48542
|
-
.subVectors(_panEnd, _panStart)
|
|
48543
|
-
.multiplyScalar(scope.dynamicDampingFactor));
|
|
48544
|
-
}
|
|
48545
|
-
}
|
|
48546
|
-
};
|
|
48547
|
-
})();
|
|
48548
|
-
this.checkDistances = function () {
|
|
48549
|
-
if (!scope.noZoom || !scope.noPan) {
|
|
48550
|
-
if (_eye.lengthSq() > scope.maxDistance * scope.maxDistance) {
|
|
48551
|
-
scope.object.position.addVectors(scope.target, _eye.setLength(scope.maxDistance));
|
|
48552
|
-
_zoomStart.copy(_zoomEnd);
|
|
48553
|
-
}
|
|
48554
|
-
if (_eye.lengthSq() < scope.minDistance * scope.minDistance) {
|
|
48555
|
-
scope.object.position.addVectors(scope.target, _eye.setLength(scope.minDistance));
|
|
48556
|
-
_zoomStart.copy(_zoomEnd);
|
|
48557
|
-
}
|
|
48558
|
-
}
|
|
48559
|
-
};
|
|
48560
|
-
this.update = function () {
|
|
48561
|
-
_eye.subVectors(scope.object.position, scope.target);
|
|
48562
|
-
if (!scope.noRotate) {
|
|
48563
|
-
scope.rotateCamera();
|
|
48564
|
-
}
|
|
48565
|
-
if (!scope.noZoom) {
|
|
48566
|
-
scope.zoomCamera();
|
|
48567
|
-
}
|
|
48568
|
-
if (!scope.noPan) {
|
|
48569
|
-
scope.panCamera();
|
|
48570
|
-
}
|
|
48571
|
-
scope.object.position.addVectors(scope.target, _eye);
|
|
48572
|
-
if (scope.object.isPerspectiveCamera) {
|
|
48573
|
-
scope.checkDistances();
|
|
48574
|
-
scope.object.lookAt(scope.target);
|
|
48575
|
-
if (lastPosition.distanceToSquared(scope.object.position) > EPS) {
|
|
48576
|
-
scope.dispatchEvent(_changeEvent$1);
|
|
48577
|
-
lastPosition.copy(scope.object.position);
|
|
48578
|
-
}
|
|
48579
|
-
}
|
|
48580
|
-
else if (scope.object.isOrthographicCamera) {
|
|
48581
|
-
scope.object.lookAt(scope.target);
|
|
48582
|
-
if (lastPosition.distanceToSquared(scope.object.position) > EPS ||
|
|
48583
|
-
lastZoom !== scope.object.zoom) {
|
|
48584
|
-
scope.dispatchEvent(_changeEvent$1);
|
|
48585
|
-
lastPosition.copy(scope.object.position);
|
|
48586
|
-
lastZoom = scope.object.zoom;
|
|
48587
|
-
}
|
|
48588
|
-
}
|
|
48589
|
-
else {
|
|
48590
|
-
console.warn("THREE.TrackballControls: Unsupported camera type");
|
|
48591
|
-
}
|
|
48592
|
-
};
|
|
48593
|
-
this.reset = function () {
|
|
48594
|
-
_state = STATE.NONE;
|
|
48595
|
-
_keyState = STATE.NONE;
|
|
48596
|
-
scope.target.copy(scope.target0);
|
|
48597
|
-
scope.object.position.copy(scope.position0);
|
|
48598
|
-
scope.object.up.copy(scope.up0);
|
|
48599
|
-
scope.object.zoom = scope.zoom0;
|
|
48600
|
-
scope.object.updateProjectionMatrix();
|
|
48601
|
-
_eye.subVectors(scope.object.position, scope.target);
|
|
48602
|
-
scope.object.lookAt(scope.target);
|
|
48603
|
-
scope.dispatchEvent(_changeEvent$1);
|
|
48604
|
-
lastPosition.copy(scope.object.position);
|
|
48605
|
-
lastZoom = scope.object.zoom;
|
|
48606
|
-
};
|
|
48607
|
-
// listeners
|
|
48608
|
-
function onPointerDown(event) {
|
|
48609
|
-
if (scope.enabled === false)
|
|
48610
|
-
return;
|
|
48611
|
-
if (_pointers.length === 0) {
|
|
48612
|
-
scope.domElement.setPointerCapture(event.pointerId);
|
|
48613
|
-
scope.domElement.addEventListener("pointermove", onPointerMove);
|
|
48614
|
-
scope.domElement.addEventListener("pointerup", onPointerUp);
|
|
48615
|
-
}
|
|
48616
|
-
//
|
|
48617
|
-
addPointer(event);
|
|
48618
|
-
if (event.pointerType === "touch") {
|
|
48619
|
-
onTouchStart(event);
|
|
48620
|
-
}
|
|
48621
|
-
else {
|
|
48622
|
-
onMouseDown(event);
|
|
48623
|
-
}
|
|
48624
|
-
}
|
|
48625
|
-
function onPointerMove(event) {
|
|
48626
|
-
if (scope.enabled === false)
|
|
48627
|
-
return;
|
|
48628
|
-
if (event.pointerType === "touch") {
|
|
48629
|
-
onTouchMove(event);
|
|
48630
|
-
}
|
|
48631
|
-
else {
|
|
48632
|
-
onMouseMove(event);
|
|
48633
|
-
}
|
|
48634
|
-
}
|
|
48635
|
-
function onPointerUp(event) {
|
|
48636
|
-
if (scope.enabled === false)
|
|
48637
|
-
return;
|
|
48638
|
-
if (event.pointerType === "touch") {
|
|
48639
|
-
onTouchEnd(event);
|
|
48640
|
-
}
|
|
48641
|
-
else {
|
|
48642
|
-
onMouseUp();
|
|
48643
|
-
}
|
|
48644
|
-
//
|
|
48645
|
-
removePointer(event);
|
|
48646
|
-
if (_pointers.length === 0) {
|
|
48647
|
-
scope.domElement.releasePointerCapture(event.pointerId);
|
|
48648
|
-
scope.domElement.removeEventListener("pointermove", onPointerMove);
|
|
48649
|
-
scope.domElement.removeEventListener("pointerup", onPointerUp);
|
|
48650
|
-
}
|
|
48651
|
-
}
|
|
48652
|
-
function onPointerCancel(event) {
|
|
48653
|
-
removePointer(event);
|
|
48654
|
-
}
|
|
48655
|
-
function keydown(event) {
|
|
48656
|
-
if (scope.enabled === false)
|
|
48657
|
-
return;
|
|
48658
|
-
window.removeEventListener("keydown", keydown);
|
|
48659
|
-
if (_keyState !== STATE.NONE) {
|
|
48660
|
-
return;
|
|
48661
|
-
}
|
|
48662
|
-
else if (event.code === scope.keys[STATE.ROTATE] && !scope.noRotate) {
|
|
48663
|
-
_keyState = STATE.ROTATE;
|
|
48664
|
-
}
|
|
48665
|
-
else if (event.code === scope.keys[STATE.ZOOM] && !scope.noZoom) {
|
|
48666
|
-
_keyState = STATE.ZOOM;
|
|
48667
|
-
}
|
|
48668
|
-
else if (event.code === scope.keys[STATE.PAN] && !scope.noPan) {
|
|
48669
|
-
_keyState = STATE.PAN;
|
|
48670
|
-
}
|
|
48671
|
-
}
|
|
48672
|
-
function keyup() {
|
|
48673
|
-
if (scope.enabled === false)
|
|
48674
|
-
return;
|
|
48675
|
-
_keyState = STATE.NONE;
|
|
48676
|
-
window.addEventListener("keydown", keydown);
|
|
48677
|
-
}
|
|
48678
|
-
function onMouseDown(event) {
|
|
48679
|
-
if (_state === STATE.NONE) {
|
|
48680
|
-
switch (event.button) {
|
|
48681
|
-
case scope.mouseButtons.LEFT:
|
|
48682
|
-
_state = STATE.ROTATE;
|
|
48683
|
-
break;
|
|
48684
|
-
case scope.mouseButtons.MIDDLE:
|
|
48685
|
-
_state = STATE.ZOOM;
|
|
48686
|
-
break;
|
|
48687
|
-
case scope.mouseButtons.RIGHT:
|
|
48688
|
-
_state = STATE.PAN;
|
|
48689
|
-
break;
|
|
48690
|
-
}
|
|
48691
|
-
}
|
|
48692
|
-
const state = _keyState !== STATE.NONE ? _keyState : _state;
|
|
48693
|
-
if (state === STATE.ROTATE && !scope.noRotate) {
|
|
48694
|
-
_moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
48695
|
-
_movePrev.copy(_moveCurr);
|
|
48696
|
-
}
|
|
48697
|
-
else if (state === STATE.ZOOM && !scope.noZoom) {
|
|
48698
|
-
_zoomStart.copy(getMouseOnScreen(event.pageX, event.pageY));
|
|
48699
|
-
_zoomEnd.copy(_zoomStart);
|
|
48700
|
-
}
|
|
48701
|
-
else if (state === STATE.PAN && !scope.noPan) {
|
|
48702
|
-
_panStart.copy(getMouseOnScreen(event.pageX, event.pageY));
|
|
48703
|
-
_panEnd.copy(_panStart);
|
|
48704
|
-
}
|
|
48705
|
-
scope.dispatchEvent(_startEvent$1);
|
|
48706
|
-
}
|
|
48707
|
-
function onMouseMove(event) {
|
|
48708
|
-
const state = _keyState !== STATE.NONE ? _keyState : _state;
|
|
48709
|
-
if (state === STATE.ROTATE && !scope.noRotate) {
|
|
48710
|
-
_movePrev.copy(_moveCurr);
|
|
48711
|
-
_moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
48712
|
-
}
|
|
48713
|
-
else if (state === STATE.ZOOM && !scope.noZoom) {
|
|
48714
|
-
_zoomEnd.copy(getMouseOnScreen(event.pageX, event.pageY));
|
|
48715
|
-
}
|
|
48716
|
-
else if (state === STATE.PAN && !scope.noPan) {
|
|
48717
|
-
_panEnd.copy(getMouseOnScreen(event.pageX, event.pageY));
|
|
48718
|
-
}
|
|
48719
|
-
}
|
|
48720
|
-
function onMouseUp() {
|
|
48721
|
-
_state = STATE.NONE;
|
|
48722
|
-
scope.dispatchEvent(_endEvent$1);
|
|
48723
|
-
}
|
|
48724
|
-
function onMouseWheel(event) {
|
|
48725
|
-
if (scope.enabled === false)
|
|
48726
|
-
return;
|
|
48727
|
-
if (scope.noZoom === true)
|
|
48728
|
-
return;
|
|
48729
|
-
event.preventDefault();
|
|
48730
|
-
switch (event.deltaMode) {
|
|
48731
|
-
case 2:
|
|
48732
|
-
// Zoom in pages
|
|
48733
|
-
_zoomStart.y -= event.deltaY * 0.025;
|
|
48734
|
-
break;
|
|
48735
|
-
case 1:
|
|
48736
|
-
// Zoom in lines
|
|
48737
|
-
_zoomStart.y -= event.deltaY * 0.01;
|
|
48738
|
-
break;
|
|
48739
|
-
default:
|
|
48740
|
-
// undefined, 0, assume pixels
|
|
48741
|
-
_zoomStart.y -= event.deltaY * 0.00025;
|
|
48742
|
-
break;
|
|
48743
|
-
}
|
|
48744
|
-
scope.dispatchEvent(_startEvent$1);
|
|
48745
|
-
scope.dispatchEvent(_endEvent$1);
|
|
48746
|
-
}
|
|
48747
|
-
function onTouchStart(event) {
|
|
48748
|
-
trackPointer(event);
|
|
48749
|
-
switch (_pointers.length) {
|
|
48750
|
-
case 1:
|
|
48751
|
-
_state = STATE.TOUCH_ROTATE;
|
|
48752
|
-
_moveCurr.copy(getMouseOnCircle(_pointers[0].pageX, _pointers[0].pageY));
|
|
48753
|
-
_movePrev.copy(_moveCurr);
|
|
48754
|
-
break;
|
|
48755
|
-
case 2:
|
|
48756
|
-
_state = STATE.TOUCH_ZOOM_PAN;
|
|
48757
|
-
const dx = _pointers[0].pageX - _pointers[1].pageX;
|
|
48758
|
-
const dy = _pointers[0].pageY - _pointers[1].pageY;
|
|
48759
|
-
_touchZoomDistanceEnd = _touchZoomDistanceStart = Math.sqrt(dx * dx + dy * dy);
|
|
48760
|
-
const x = (_pointers[0].pageX + _pointers[1].pageX) / 2;
|
|
48761
|
-
const y = (_pointers[0].pageY + _pointers[1].pageY) / 2;
|
|
48762
|
-
_panStart.copy(getMouseOnScreen(x, y));
|
|
48763
|
-
_panEnd.copy(_panStart);
|
|
48764
|
-
break;
|
|
48765
|
-
case 3:
|
|
48766
|
-
_state = STATE.TOUCH_PAN;
|
|
48767
|
-
const centerX = (_pointers[0].pageX + _pointers[1].pageX + _pointers[2].pageX) / 3;
|
|
48768
|
-
const centerY = (_pointers[0].pageY + _pointers[1].pageY + _pointers[2].pageY) / 3;
|
|
48769
|
-
_panStart.copy(getMouseOnScreen(centerX, centerY));
|
|
48770
|
-
_panEnd.copy(_panStart);
|
|
48771
|
-
break;
|
|
48772
|
-
}
|
|
48773
|
-
scope.dispatchEvent(_startEvent$1);
|
|
48774
|
-
}
|
|
48775
|
-
function onTouchMove(event) {
|
|
48776
|
-
trackPointer(event);
|
|
48777
|
-
let position, x, y;
|
|
48778
|
-
switch (_pointers.length) {
|
|
48779
|
-
case 1:
|
|
48780
|
-
if (_state != STATE.TOUCH_ROTATE)
|
|
48781
|
-
return;
|
|
48782
|
-
_movePrev.copy(_moveCurr);
|
|
48783
|
-
_moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
48784
|
-
break;
|
|
48785
|
-
case 2:
|
|
48786
|
-
if (_state != STATE.TOUCH_ZOOM_PAN)
|
|
48787
|
-
return;
|
|
48788
|
-
position = getSecondPointerPosition(event);
|
|
48789
|
-
const dx = event.pageX - position.x;
|
|
48790
|
-
const dy = event.pageY - position.y;
|
|
48791
|
-
_touchZoomDistanceEnd = Math.sqrt(dx * dx + dy * dy);
|
|
48792
|
-
x = (event.pageX + position.x) / 2;
|
|
48793
|
-
y = (event.pageY + position.y) / 2;
|
|
48794
|
-
_panEnd.copy(getMouseOnScreen(x, y));
|
|
48795
|
-
break;
|
|
48796
|
-
case 3:
|
|
48797
|
-
if (_state != STATE.TOUCH_PAN)
|
|
48798
|
-
return;
|
|
48799
|
-
const point_1 = _pointerPositions[_pointers[0].pointerId];
|
|
48800
|
-
const point_2 = _pointerPositions[_pointers[1].pointerId];
|
|
48801
|
-
const point_3 = _pointerPositions[_pointers[2].pointerId];
|
|
48802
|
-
const centerX = (point_1.x + point_2.x + point_3.x) / 3;
|
|
48803
|
-
const centerY = (point_1.y + point_2.y + point_3.y) / 3;
|
|
48804
|
-
_panEnd.copy(getMouseOnScreen(centerX, centerY));
|
|
48805
|
-
break;
|
|
48806
|
-
}
|
|
48807
|
-
}
|
|
48808
|
-
function onTouchEnd(event) {
|
|
48809
|
-
switch (_pointers.length) {
|
|
48810
|
-
case 0:
|
|
48811
|
-
_state = STATE.NONE;
|
|
48812
|
-
break;
|
|
48813
|
-
case 1:
|
|
48814
|
-
_state = STATE.TOUCH_ROTATE;
|
|
48815
|
-
_moveCurr.copy(getMouseOnCircle(event.pageX, event.pageY));
|
|
48816
|
-
_movePrev.copy(_moveCurr);
|
|
48817
|
-
break;
|
|
48818
|
-
case 2:
|
|
48819
|
-
_state = STATE.TOUCH_ZOOM_PAN;
|
|
48820
|
-
for (let i = 0; i < _pointers.length; i++) {
|
|
48821
|
-
if (_pointers[i].pointerId !== event.pointerId) {
|
|
48822
|
-
const position = _pointerPositions[_pointers[i].pointerId];
|
|
48823
|
-
_moveCurr.copy(getMouseOnScreen(position.x, position.y));
|
|
48824
|
-
_movePrev.copy(_moveCurr);
|
|
48825
|
-
break;
|
|
48826
|
-
}
|
|
48827
|
-
}
|
|
48828
|
-
break;
|
|
48829
|
-
case 3:
|
|
48830
|
-
_state = STATE.TOUCH_PAN;
|
|
48831
|
-
for (let i = 0; i < _pointers.length; i++) {
|
|
48832
|
-
if (_pointers[i].pointerId !== event.pointerId) {
|
|
48833
|
-
const position = _pointerPositions[_pointers[i].pointerId];
|
|
48834
|
-
_moveCurr.copy(getMouseOnScreen(position.x, position.y));
|
|
48835
|
-
_movePrev.copy(_moveCurr);
|
|
48836
|
-
break;
|
|
48837
|
-
}
|
|
48838
|
-
}
|
|
48839
|
-
break;
|
|
48840
|
-
}
|
|
48841
|
-
scope.dispatchEvent(_endEvent$1);
|
|
48842
|
-
}
|
|
48843
|
-
function contextmenu(event) {
|
|
48844
|
-
if (scope.enabled === false)
|
|
48845
|
-
return;
|
|
48846
|
-
event.preventDefault();
|
|
48847
|
-
}
|
|
48848
|
-
function addPointer(event) {
|
|
48849
|
-
_pointers.push(event);
|
|
48850
|
-
}
|
|
48851
|
-
function removePointer(event) {
|
|
48852
|
-
delete _pointerPositions[event.pointerId];
|
|
48853
|
-
for (let i = 0; i < _pointers.length; i++) {
|
|
48854
|
-
if (_pointers[i].pointerId == event.pointerId) {
|
|
48855
|
-
_pointers.splice(i, 1);
|
|
48856
|
-
return;
|
|
48857
|
-
}
|
|
48858
|
-
}
|
|
48859
|
-
}
|
|
48860
|
-
function trackPointer(event) {
|
|
48861
|
-
let position = _pointerPositions[event.pointerId];
|
|
48862
|
-
if (position === undefined) {
|
|
48863
|
-
position = new Vector2();
|
|
48864
|
-
_pointerPositions[event.pointerId] = position;
|
|
48865
|
-
}
|
|
48866
|
-
position.set(event.pageX, event.pageY);
|
|
48867
|
-
}
|
|
48868
|
-
function getSecondPointerPosition(event) {
|
|
48869
|
-
const pointer = event.pointerId === _pointers[0].pointerId
|
|
48870
|
-
? _pointers[1]
|
|
48871
|
-
: _pointers[0];
|
|
48872
|
-
return _pointerPositions[pointer.pointerId];
|
|
48873
|
-
}
|
|
48874
|
-
this.dispose = function () {
|
|
48875
|
-
scope.domElement.removeEventListener("contextmenu", contextmenu);
|
|
48876
|
-
scope.domElement.removeEventListener("pointerdown", onPointerDown);
|
|
48877
|
-
scope.domElement.removeEventListener("pointercancel", onPointerCancel);
|
|
48878
|
-
scope.domElement.removeEventListener("wheel", onMouseWheel);
|
|
48879
|
-
scope.domElement.removeEventListener("pointermove", onPointerMove);
|
|
48880
|
-
scope.domElement.removeEventListener("pointerup", onPointerUp);
|
|
48881
|
-
window.removeEventListener("keydown", keydown);
|
|
48882
|
-
window.removeEventListener("keyup", keyup);
|
|
48883
|
-
};
|
|
48884
|
-
this.domElement.addEventListener("contextmenu", contextmenu);
|
|
48885
|
-
this.domElement.addEventListener("pointerdown", onPointerDown);
|
|
48886
|
-
this.domElement.addEventListener("pointercancel", onPointerCancel);
|
|
48887
|
-
this.domElement.addEventListener("wheel", onMouseWheel, { passive: false });
|
|
48888
|
-
window.addEventListener("keydown", keydown);
|
|
48889
|
-
window.addEventListener("keyup", keyup);
|
|
48890
|
-
this.handleResize();
|
|
48891
|
-
// force an update at start
|
|
48892
|
-
this.update();
|
|
48893
|
-
}
|
|
48894
|
-
}
|
|
48895
|
-
|
|
48896
48281
|
/**
|
|
48897
48282
|
* @param {BufferGeometry} geometry
|
|
48898
48283
|
* @param {number} drawMode
|
|
@@ -56871,7 +56256,7 @@ class copperScene extends baseScene {
|
|
|
56871
56256
|
this.controls = new OrbitControls(this.camera, this.renderer.domElement);
|
|
56872
56257
|
}
|
|
56873
56258
|
else {
|
|
56874
|
-
this.controls = new
|
|
56259
|
+
this.controls = new Copper3dTrackballControls(this.camera, this.renderer.domElement);
|
|
56875
56260
|
}
|
|
56876
56261
|
this.controls.panSpeed = 3;
|
|
56877
56262
|
this.controls.rotateSpeed = 3;
|
|
@@ -70374,7 +69759,7 @@ class nrrd_tools {
|
|
|
70374
69759
|
}
|
|
70375
69760
|
|
|
70376
69761
|
// import * as kiwrious from "copper3d_plugin_heart_k";
|
|
70377
|
-
const REVISION = "v1.15.
|
|
70378
|
-
console.log("%cCopper3D Visualisation %cBeta:v1.15.
|
|
69762
|
+
const REVISION = "v1.15.7";
|
|
69763
|
+
console.log("%cCopper3D Visualisation %cBeta:v1.15.7", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
|
|
70379
69764
|
|
|
70380
69765
|
export { CameraViewPoint, Copper3dTrackballControls, REVISION, addBoxHelper, addLabelToScene, configKiwriousHeart, convert3DPostoScreenPos, convertScreenPosto3DPos, copperMScene, copperMSceneRenderer, copperRenderer, copperRendererOnDemond, copperScene, copperSceneOnDemond, createTexture2D_NRRD, fullScreenListenner, kiwrious, loading, nrrd_tools, setHDRFilePath };
|