three-stdlib 2.16.1 → 2.16.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/controls/FlyControls.cjs.js +1 -1
- package/controls/FlyControls.d.ts +5 -4
- package/controls/FlyControls.js +25 -25
- package/index.cjs.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@babel/runtime/helpers/defineProperty"),e=require("three");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=o(t);function s(t){t.preventDefault()}class a extends e.EventDispatcher{constructor(t,o){super(),i.default(this,"object",void 0),i.default(this,"domElement",
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@babel/runtime/helpers/defineProperty"),e=require("three");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=o(t);function s(t){t.preventDefault()}class a extends e.EventDispatcher{constructor(t,o){super(),i.default(this,"object",void 0),i.default(this,"domElement",null),i.default(this,"movementSpeed",1),i.default(this,"rollSpeed",.005),i.default(this,"dragToLook",!1),i.default(this,"autoForward",!1),i.default(this,"changeEvent",{type:"change"}),i.default(this,"EPS",1e-6),i.default(this,"tmpQuaternion",new e.Quaternion),i.default(this,"mouseStatus",0),i.default(this,"movementSpeedMultiplier",1),i.default(this,"moveState",{up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0}),i.default(this,"moveVector",new e.Vector3(0,0,0)),i.default(this,"rotationVector",new e.Vector3(0,0,0)),i.default(this,"keydown",(t=>{if(!t.altKey){switch(t.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}})),i.default(this,"keyup",(t=>{switch(t.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()})),i.default(this,"pointerdown",(t=>{if(this.dragToLook)this.mouseStatus++;else{switch(t.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}})),i.default(this,"pointermove",(t=>{if(!this.dragToLook||this.mouseStatus>0){const e=this.getContainerDimensions(),o=e.size[0]/2,i=e.size[1]/2;this.moveState.yawLeft=-(t.pageX-e.offset[0]-o)/o,this.moveState.pitchDown=(t.pageY-e.offset[1]-i)/i,this.updateRotationVector()}})),i.default(this,"pointerup",(t=>{if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(t.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()})),i.default(this,"lastQuaternion",new e.Quaternion),i.default(this,"lastPosition",new e.Vector3),i.default(this,"update",(t=>{const e=t*this.movementSpeed,o=t*this.rollSpeed;this.object.translateX(this.moveVector.x*e),this.object.translateY(this.moveVector.y*e),this.object.translateZ(this.moveVector.z*e),this.tmpQuaternion.set(this.rotationVector.x*o,this.rotationVector.y*o,this.rotationVector.z*o,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastQuaternion.copy(this.object.quaternion),this.lastPosition.copy(this.object.position))})),i.default(this,"updateMovementVector",(()=>{const t=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-t+this.moveState.back})),i.default(this,"updateRotationVector",(()=>{this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft})),i.default(this,"getContainerDimensions",(()=>this.domElement==document||this.domElement instanceof Document?{size:[window.innerWidth,window.innerHeight],offset:[0,0]}:{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]})),i.default(this,"connect",(t=>{this.domElement=t,!t||t instanceof Document||t.setAttribute("tabindex",-1),this.domElement.addEventListener("contextmenu",s),this.domElement.addEventListener("pointermove",this.pointermove),this.domElement.addEventListener("pointerdown",this.pointerdown),this.domElement.addEventListener("pointerup",this.pointerup),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup)})),i.default(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",s),this.domElement.removeEventListener("pointermove",this.pointermove),this.domElement.removeEventListener("pointerdown",this.pointerdown),this.domElement.removeEventListener("pointerup",this.pointerup),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup)})),this.object=t,void 0!==o&&this.connect(o),this.updateMovementVector(),this.updateRotationVector()}}exports.FlyControls=a;
|
|
@@ -14,18 +14,19 @@ declare class FlyControls extends EventDispatcher {
|
|
|
14
14
|
private moveState;
|
|
15
15
|
private moveVector;
|
|
16
16
|
private rotationVector;
|
|
17
|
-
constructor(object: Camera, domElement
|
|
17
|
+
constructor(object: Camera, domElement?: HTMLElement | Document);
|
|
18
18
|
private keydown;
|
|
19
19
|
private keyup;
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
private
|
|
20
|
+
private pointerdown;
|
|
21
|
+
private pointermove;
|
|
22
|
+
private pointerup;
|
|
23
23
|
private lastQuaternion;
|
|
24
24
|
private lastPosition;
|
|
25
25
|
update: (delta: number) => void;
|
|
26
26
|
private updateMovementVector;
|
|
27
27
|
private updateRotationVector;
|
|
28
28
|
private getContainerDimensions;
|
|
29
|
+
connect: (domElement: HTMLElement | Document) => void;
|
|
29
30
|
dispose: () => void;
|
|
30
31
|
}
|
|
31
32
|
export { FlyControls };
|
package/controls/FlyControls.js
CHANGED
|
@@ -6,12 +6,12 @@ function contextmenu(event) {
|
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
class FlyControls extends EventDispatcher {
|
|
9
|
-
constructor(object,
|
|
9
|
+
constructor(object, _domElement) {
|
|
10
10
|
super();
|
|
11
11
|
|
|
12
12
|
_defineProperty(this, "object", void 0);
|
|
13
13
|
|
|
14
|
-
_defineProperty(this, "domElement",
|
|
14
|
+
_defineProperty(this, "domElement", null);
|
|
15
15
|
|
|
16
16
|
_defineProperty(this, "movementSpeed", 1.0);
|
|
17
17
|
|
|
@@ -176,7 +176,7 @@ class FlyControls extends EventDispatcher {
|
|
|
176
176
|
this.updateRotationVector();
|
|
177
177
|
});
|
|
178
178
|
|
|
179
|
-
_defineProperty(this, "
|
|
179
|
+
_defineProperty(this, "pointerdown", event => {
|
|
180
180
|
if (this.dragToLook) {
|
|
181
181
|
this.mouseStatus++;
|
|
182
182
|
} else {
|
|
@@ -194,7 +194,7 @@ class FlyControls extends EventDispatcher {
|
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
196
|
|
|
197
|
-
_defineProperty(this, "
|
|
197
|
+
_defineProperty(this, "pointermove", event => {
|
|
198
198
|
if (!this.dragToLook || this.mouseStatus > 0) {
|
|
199
199
|
const container = this.getContainerDimensions();
|
|
200
200
|
const halfWidth = container.size[0] / 2;
|
|
@@ -205,7 +205,7 @@ class FlyControls extends EventDispatcher {
|
|
|
205
205
|
}
|
|
206
206
|
});
|
|
207
207
|
|
|
208
|
-
_defineProperty(this, "
|
|
208
|
+
_defineProperty(this, "pointerup", event => {
|
|
209
209
|
if (this.dragToLook) {
|
|
210
210
|
this.mouseStatus--;
|
|
211
211
|
this.moveState.yawLeft = this.moveState.pitchDown = 0;
|
|
@@ -273,33 +273,33 @@ class FlyControls extends EventDispatcher {
|
|
|
273
273
|
}
|
|
274
274
|
});
|
|
275
275
|
|
|
276
|
+
_defineProperty(this, "connect", domElement => {
|
|
277
|
+
this.domElement = domElement;
|
|
278
|
+
|
|
279
|
+
if (domElement && !(domElement instanceof Document)) {
|
|
280
|
+
domElement.setAttribute('tabindex', -1);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
this.domElement.addEventListener('contextmenu', contextmenu);
|
|
284
|
+
this.domElement.addEventListener('pointermove', this.pointermove);
|
|
285
|
+
this.domElement.addEventListener('pointerdown', this.pointerdown);
|
|
286
|
+
this.domElement.addEventListener('pointerup', this.pointerup);
|
|
287
|
+
window.addEventListener('keydown', this.keydown);
|
|
288
|
+
window.addEventListener('keyup', this.keyup);
|
|
289
|
+
});
|
|
290
|
+
|
|
276
291
|
_defineProperty(this, "dispose", () => {
|
|
277
292
|
this.domElement.removeEventListener('contextmenu', contextmenu);
|
|
278
|
-
this.domElement.removeEventListener('
|
|
279
|
-
this.domElement.removeEventListener('
|
|
280
|
-
this.domElement.removeEventListener('
|
|
293
|
+
this.domElement.removeEventListener('pointermove', this.pointermove);
|
|
294
|
+
this.domElement.removeEventListener('pointerdown', this.pointerdown);
|
|
295
|
+
this.domElement.removeEventListener('pointerup', this.pointerup);
|
|
281
296
|
window.removeEventListener('keydown', this.keydown);
|
|
282
297
|
window.removeEventListener('keyup', this.keyup);
|
|
283
298
|
});
|
|
284
299
|
|
|
285
|
-
|
|
286
|
-
console.warn('THREE.FlyControls: The second parameter "domElement" is now mandatory.');
|
|
287
|
-
domElement = document;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
this.object = object;
|
|
291
|
-
this.domElement = domElement;
|
|
292
|
-
|
|
293
|
-
if (domElement && !(domElement instanceof Document)) {
|
|
294
|
-
domElement.setAttribute('tabindex', -1);
|
|
295
|
-
}
|
|
300
|
+
this.object = object; // connect events
|
|
296
301
|
|
|
297
|
-
this.
|
|
298
|
-
this.domElement.addEventListener('mousemove', this.mousemove);
|
|
299
|
-
this.domElement.addEventListener('mousedown', this.mousedown);
|
|
300
|
-
this.domElement.addEventListener('mouseup', this.mouseup);
|
|
301
|
-
window.addEventListener('keydown', this.keydown);
|
|
302
|
-
window.addEventListener('keyup', this.keyup);
|
|
302
|
+
if (_domElement !== undefined) this.connect(_domElement);
|
|
303
303
|
this.updateMovementVector();
|
|
304
304
|
this.updateRotationVector();
|
|
305
305
|
}
|