|
@@ -5,11 +5,19 @@
|
|
|
|
|
|
THREE.PointerLockControls = function ( camera, domElement ) {
|
|
|
|
|
|
- var scope = this;
|
|
|
-
|
|
|
this.domElement = domElement || document.body;
|
|
|
this.isLocked = false;
|
|
|
|
|
|
+ //
|
|
|
+ // internals
|
|
|
+ //
|
|
|
+
|
|
|
+ var scope = this;
|
|
|
+
|
|
|
+ var changeEvent = { type: 'change' };
|
|
|
+ var lockEvent = { type: 'lock' };
|
|
|
+ var unlockEvent = { type: 'unlock' };
|
|
|
+
|
|
|
var euler = new THREE.Euler( 0, 0, 0, 'YXZ' );
|
|
|
|
|
|
var PI_2 = Math.PI / 2;
|
|
@@ -30,19 +38,21 @@ THREE.PointerLockControls = function ( camera, domElement ) {
|
|
|
|
|
|
camera.quaternion.setFromEuler( euler );
|
|
|
|
|
|
+ scope.dispatchEvent( changeEvent );
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function onPointerlockChange() {
|
|
|
|
|
|
if ( document.pointerLockElement === scope.domElement ) {
|
|
|
|
|
|
- scope.dispatchEvent( { type: 'lock' } );
|
|
|
+ scope.dispatchEvent( lockEvent );
|
|
|
|
|
|
scope.isLocked = true;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
- scope.dispatchEvent( { type: 'unlock' } );
|
|
|
+ scope.dispatchEvent( unlockEvent );
|
|
|
|
|
|
scope.isLocked = false;
|
|
|
|