three#Clock JavaScript Examples
The following examples show how to use
three#Clock.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: main.js From architect3d with MIT License | 5 votes |
constructor(model, element, canvasElement, opts)
{
super();
var options = {resize: true,pushHref: false,spin: true,spinSpeed: .00002,clickPan: true,canMoveFixedItems: false};
for (var opt in options)
{
if (options.hasOwnProperty(opt) && opts.hasOwnProperty(opt))
{
options[opt] = opts[opt];
}
}
this.pauseRender = true;
this.model = model;
this.scene = model.scene;
this.element = $(element);
this.canvasElement = canvasElement;
this.options = options;
this.domElement = null;
this.orthocamera = null;
this.perspectivecamera = null;
this.camera = null;
this.savedcameraposition = null;
this.fpscamera = null;
this.cameraNear = 10;
this.cameraFar = 10000;
this.controls = null;
this.fpscontrols = null;
this.fpsclock = new Clock(true);
this.firstpersonmode = false;
this.renderer = null;
this.controller = null;
this.needsUpdate = false;
this.lastRender = Date.now();
this.mouseOver = false;
this.hasClicked = false;
this.hud = null;
this.heightMargin = null;
this.widthMargin = null;
this.elementHeight = null;
this.elementWidth = null;
this.itemSelectedCallbacks = $.Callbacks(); // item
this.itemUnselectedCallbacks = $.Callbacks();
this.wallClicked = $.Callbacks(); // wall
this.floorClicked = $.Callbacks(); // floor
this.nothingClicked = $.Callbacks();
this.floorplan = null;
var scope = this;
this.updatedevent = ()=>{scope.centerCamera();};
this.gltfreadyevent = (o)=>{scope.gltfReady(o);};
this.clippingPlaneActive = new Plane(new Vector3(0, 0, 1), 0.0);
this.clippingPlaneActive2 = new Plane(new Vector3(0, 0, -1), 0.0);
this.globalClippingPlane = [this.clippingPlaneActive, this.clippingPlaneActive2];
this.clippingEmpty = Object.freeze([]);
this.clippingEnabled = false;
// console.log('THIS ON MOBILE DEVICE ::: ', isMobile, isTablet);
this.init();
}
Example #2
Source File: EffectComposer.js From threejs-tutorial with MIT License | 5 votes |
EffectComposer = function (renderer, renderTarget) {
this.renderer = renderer;
if (renderTarget === undefined) {
var parameters = {
minFilter: LinearFilter,
magFilter: LinearFilter,
format: RGBAFormat,
stencilBuffer: false,
};
var size = renderer.getSize(new Vector2());
this._pixelRatio = renderer.getPixelRatio();
this._width = size.width;
this._height = size.height;
renderTarget = new WebGLRenderTarget(
this._width * this._pixelRatio,
this._height * this._pixelRatio,
parameters
);
renderTarget.texture.name = "EffectComposer.rt1";
} else {
this._pixelRatio = 1;
this._width = renderTarget.width;
this._height = renderTarget.height;
}
this.renderTarget1 = renderTarget;
this.renderTarget2 = renderTarget.clone();
this.renderTarget2.texture.name = "EffectComposer.rt2";
this.writeBuffer = this.renderTarget1;
this.readBuffer = this.renderTarget2;
this.renderToScreen = true;
this.passes = [];
// dependencies
if (CopyShader === undefined) {
console.error("THREE.EffectComposer relies on CopyShader");
}
if (ShaderPass === undefined) {
console.error("THREE.EffectComposer relies on ShaderPass");
}
this.copyPass = new ShaderPass(CopyShader);
this.clock = new Clock();
}
Example #3
Source File: FlyOrbitControls.js From 3DTilesRendererJS with Apache License 2.0 | 4 votes |
constructor( camera, domElement ) {
// Disable use of shift key so we can use it for acceleration
const disableShiftKeyCallback = e => {
if ( this.enabled ) {
Object.defineProperty( e, 'shiftKey', { get() {
return false;
} } );
}
};
domElement.addEventListener( 'pointerdown', disableShiftKeyCallback );
super( camera, domElement );
this.enableKeys = false;
this.enableFlight = true;
this.baseSpeed = 1;
this.fastSpeed = 4;
this.forwardKey = 'w';
this.backKey = 's';
this.leftKey = 'a';
this.rightKey = 'd';
this.upKey = 'q';
this.downKey = 'e';
this.fastKey = 'shift';
let fastHeld = false;
let forwardHeld = false;
let backHeld = false;
let leftHeld = false;
let rightHeld = false;
let upHeld = false;
let downHeld = false;
let originalDistance = 0;
let originalMinDistance = 0;
let originalMaxDistance = 0;
let rafHandle = - 1;
const originalTarget = new Vector3();
const clock = new Clock();
const endFlight = () => {
if ( rafHandle !== - 1 ) {
// cancel the animation playing
cancelAnimationFrame( rafHandle );
rafHandle = - 1;
// store the original distances for the controls
this.minDistance = originalMinDistance;
this.maxDistance = originalMaxDistance;
const targetDistance = Math.min( originalDistance, camera.position.distanceTo( originalTarget ) );
tempVector
.set( 0, 0, - 1, 0 )
.applyMatrix4( camera.matrixWorld );
this
.target
.copy( camera.position )
.addScaledVector( tempVector, targetDistance );
this.dispatchEvent( endEvent );
}
};
const updateFlight = () => {
if ( ! this.enabled || ! this.enableFlight ) {
return;
}
rafHandle = requestAnimationFrame( updateFlight );
// get the direction
tempVector.set( 0, 0, 0, 0 );
if ( forwardHeld ) tempVector.z -= 1;
if ( backHeld ) tempVector.z += 1;
if ( leftHeld ) tempVector.x -= 1;
if ( rightHeld ) tempVector.x += 1;
if ( upHeld ) tempVector.y += 1;
if ( downHeld ) tempVector.y -= 1;
tempVector.applyMatrix4( camera.matrixWorld );
// apply the movement
const delta = 60 * clock.getDelta();
const speed = fastHeld ? this.fastSpeed : this.baseSpeed;
camera
.position
.addScaledVector( tempVector, speed * delta );
this
.target
.addScaledVector( tempVector, speed * delta );
this.dispatchEvent( changeEvent );
};
const keyDownCallback = e => {
const key = e.key.toLowerCase();
if ( rafHandle === - 1 ) {
originalMaxDistance = this.maxDistance;
originalMinDistance = this.minDistance;
originalDistance = camera.position.distanceTo( this.target );
originalTarget.copy( this.target );
}
switch ( key ) {
case this.forwardKey:
forwardHeld = true;
break;
case this.backKey:
backHeld = true;
break;
case this.leftKey:
leftHeld = true;
break;
case this.rightKey:
rightHeld = true;
break;
case this.upKey:
upHeld = true;
break;
case this.downKey:
downHeld = true;
break;
case this.fastKey:
fastHeld = true;
break;
}
switch ( key ) {
case this.fastKey:
case this.forwardKey:
case this.backKey:
case this.leftKey:
case this.rightKey:
case this.upKey:
case this.downKey:
e.stopPropagation();
e.preventDefault();
}
if ( forwardHeld || backHeld || leftHeld || rightHeld || upHeld || downHeld || fastHeld ) {
this.minDistance = 0.01;
this.maxDistance = 0.01;
// Move the orbit target out to just in front of the camera
tempVector
.set( 0, 0, - 1, 0 )
.applyMatrix4( camera.matrixWorld );
this
.target
.copy( camera.position )
.addScaledVector( tempVector, 0.01 );
if ( rafHandle === - 1 ) {
// start the flight and reset the clock
this.dispatchEvent( startEvent );
clock.getDelta();
updateFlight();
}
}
};
const keyUpCallback = e => {
const key = e.key.toLowerCase();
switch ( key ) {
case this.fastKey:
case this.forwardKey:
case this.backKey:
case this.leftKey:
case this.rightKey:
case this.upKey:
case this.downKey:
e.stopPropagation();
e.preventDefault();
}
switch ( key ) {
case this.forwardKey:
forwardHeld = false;
break;
case this.backKey:
backHeld = false;
break;
case this.leftKey:
leftHeld = false;
break;
case this.rightKey:
rightHeld = false;
break;
case this.upKey:
upHeld = false;
break;
case this.downKey:
downHeld = false;
break;
case this.fastKey:
fastHeld = false;
break;
}
if ( ! ( forwardHeld || backHeld || leftHeld || rightHeld || upHeld || downHeld || fastHeld ) ) {
endFlight();
}
};
const blurCallback = () => {
endFlight();
};
this.blurCallback = blurCallback;
this.keyDownCallback = keyDownCallback;
this.keyUpCallback = keyUpCallback;
this.disableShiftKeyCallback = disableShiftKeyCallback;
this.domElement.addEventListener( 'blur', blurCallback );
this.domElement.addEventListener( 'keydown', keyDownCallback );
this.domElement.addEventListener( 'keyup', keyUpCallback );
}