提交 c3a6b0e9 编写于 作者: M Mr.doob

Updated builds.

上级 23cb3c77
......@@ -16134,46 +16134,61 @@ THREE.Audio = function ( listener ) {
this.source.onended = this.onEnded.bind( this );
this.gain = this.context.createGain();
this.gain.connect( this.context.destination );
this.panner = this.context.createPanner();
this.panner.connect( this.gain );
this.gain.connect( listener.getOutputNode());
this.autoplay = false;
this.startTime = 0;
this.playbackRate = 1;
this.isPlaying = false;
this.hasPlaybackControl = true;
this.sourceType = 'empty';
};
THREE.Audio.prototype = Object.create( THREE.Object3D.prototype );
THREE.Audio.prototype.constructor = THREE.Audio;
THREE.Audio.prototype.load = function ( file ) {
var scope = this;
THREE.Audio.prototype.load = function ( fileName ) {
var request = new XMLHttpRequest();
request.open( 'GET', file, true );
request.responseType = 'arraybuffer';
request.onload = function ( e ) {
var audioBuffer = new THREE.AudioBuffer(this.context);
audioBuffer.load(fileName);
this.setBuffer(audioBuffer);
return this;
scope.context.decodeAudioData( this.response, function ( buffer ) {
};
scope.source.buffer = buffer;
if ( scope.autoplay ) scope.play();
THREE.Audio.prototype.setNodeSource = function ( audioNode ) {
} );
this.hasPlaybackControl = false;
this.sourceType = 'audioNode';
this.source = audioNode;
this.connect();
return this;
};
request.send();
};
THREE.Audio.prototype.setBuffer = function ( audioBuffer ) {
var scope = this;
audioBuffer.onReady(function(buffer) {
scope.source.buffer = buffer;
scope.sourceType = 'buffer';
if ( scope.autoplay ) scope.play();
});
return this;
};
THREE.Audio.prototype.play = function () {
if ( this.isPlaying === true ) {
......@@ -16182,6 +16197,14 @@ THREE.Audio.prototype.play = function () {
return;
}
if ( this.hasPlaybackControl === false ) {
console.warn( 'THREE.Audio: this Audio has no playback control.' );
return;
}
var source = this.context.createBufferSource();
......@@ -16201,6 +16224,13 @@ THREE.Audio.prototype.play = function () {
THREE.Audio.prototype.pause = function () {
if (this.hasPlaybackControl === false) {
console.warn( 'THREE.Audio: this Audio has no playback control.' );
return;
}
this.source.stop();
this.startTime = this.context.currentTime;
......@@ -16208,6 +16238,13 @@ THREE.Audio.prototype.pause = function () {
THREE.Audio.prototype.stop = function () {
if (this.hasPlaybackControl === false) {
console.warn( 'THREE.Audio: this Audio has no playback control.' );
return;
}
this.source.stop();
this.startTime = 0;
......@@ -16218,11 +16255,11 @@ THREE.Audio.prototype.connect = function () {
if ( this.filter !== undefined ) {
this.source.connect( this.filter );
this.filter.connect( this.panner );
this.filter.connect( this.gain );
} else {
this.source.connect( this.panner );
this.source.connect( this.gain );
}
......@@ -16233,11 +16270,11 @@ THREE.Audio.prototype.disconnect = function () {
if ( this.filter !== undefined ) {
this.source.disconnect( this.filter );
this.filter.disconnect( this.panner );
this.filter.disconnect( this.gain );
} else {
this.source.disconnect( this.panner );
this.source.disconnect( this.gain );
}
......@@ -16267,6 +16304,13 @@ THREE.Audio.prototype.getFilter = function () {
THREE.Audio.prototype.setPlaybackRate = function ( value ) {
if (this.hasPlaybackControl === false) {
console.warn( 'THREE.Audio: this Audio has no playback control.' );
return;
}
this.playbackRate = value;
if ( this.isPlaying === true ) {
......@@ -16291,53 +16335,220 @@ THREE.Audio.prototype.onEnded = function() {
THREE.Audio.prototype.setLoop = function ( value ) {
if (this.hasPlaybackControl === false) {
console.warn( 'THREE.Audio: this Audio has no playback control.' );
return;
}
this.source.loop = value;
};
THREE.Audio.prototype.getLoop = function () {
if (this.hasPlaybackControl === false) {
console.warn( 'THREE.Audio: this Audio has no playback control.' );
return false;
}
return this.source.loop;
};
THREE.Audio.prototype.setRefDistance = function ( value ) {
THREE.Audio.prototype.setVolume = function ( value ) {
this.gain.gain.value = value;
};
THREE.Audio.prototype.getVolume = function () {
return this.gain.gain.value;
};
// File:src/audio/AudioBuffer.js
/**
* @author mrdoob / http://mrdoob.com/
*/
THREE.AudioBuffer = function ( context ) {
this.context = context;
this.ready = false;
this.readyCallbacks = [];
};
THREE.AudioBuffer.prototype.load = function ( file ) {
var scope = this;
var request = new XMLHttpRequest();
request.open( 'GET', file, true );
request.responseType = 'arraybuffer';
request.onload = function ( e ) {
scope.context.decodeAudioData( this.response, function ( buffer ) {
scope.buffer = buffer;
scope.ready = true;
for (var i = 0; i < scope.readyCallbacks.length; i++) {
scope.readyCallbacks[i](scope.buffer);
}
scope.readyCallbacks = [];
} );
};
request.send();
return this;
};
THREE.AudioBuffer.prototype.onReady = function ( callback ) {
if (this.ready) {
callback(this.buffer);
}
else {
this.readyCallbacks.push(callback);
}
};
// File:src/audio/PositionalAudio.js
/**
* @author mrdoob / http://mrdoob.com/
*/
THREE.PositionalAudio = function ( listener ) {
THREE.Audio.call( this, listener );
this.panner = this.context.createPanner();
this.panner.connect( this.gain );
};
THREE.PositionalAudio.prototype = Object.create( THREE.Audio.prototype );
THREE.PositionalAudio.prototype.constructor = THREE.PositionalAudio;
THREE.PositionalAudio.prototype.connect = function () {
if ( this.filter !== undefined ) {
this.source.connect( this.filter );
this.filter.connect( this.panner );
} else {
this.source.connect( this.panner );
}
};
THREE.PositionalAudio.prototype.disconnect = function () {
if ( this.filter !== undefined ) {
this.source.disconnect( this.filter );
this.filter.disconnect( this.panner );
} else {
this.source.disconnect( this.panner );
}
};
THREE.PositionalAudio.prototype.setFilter = function ( value ) {
if ( this.isPlaying === true ) {
this.disconnect();
this.filter = value;
this.connect();
} else {
this.filter = value;
}
};
THREE.PositionalAudio.prototype.getFilter = function () {
return this.filter;
};
THREE.PositionalAudio.prototype.setRefDistance = function ( value ) {
this.panner.refDistance = value;
};
THREE.Audio.prototype.getRefDistance = function () {
THREE.PositionalAudio.prototype.getRefDistance = function () {
return this.panner.refDistance;
};
THREE.Audio.prototype.setRolloffFactor = function ( value ) {
THREE.PositionalAudio.prototype.setRolloffFactor = function ( value ) {
this.panner.rolloffFactor = value;
};
THREE.Audio.prototype.getRolloffFactor = function () {
THREE.PositionalAudio.prototype.getRolloffFactor = function () {
return this.panner.rolloffFactor;
};
THREE.Audio.prototype.setVolume = function ( value ) {
THREE.PositionalAudio.prototype.setDistanceModel = function ( value ) {
this.gain.gain.value = value;
this.panner.distanceModel = value;
};
THREE.Audio.prototype.getVolume = function () {
THREE.PositionalAudio.prototype.getDistanceModel = function () {
return this.gain.gain.value;
return this.panner.distanceModel;
};
THREE.PositionalAudio.prototype.setMaxDistance = function ( value ) {
this.panner.maxDistance = value;
};
THREE.Audio.prototype.updateMatrixWorld = ( function () {
THREE.PositionalAudio.prototype.getMaxDistance = function () {
return this.panner.maxDistance;
};
THREE.PositionalAudio.prototype.updateMatrixWorld = ( function () {
var position = new THREE.Vector3();
......@@ -16366,12 +16577,71 @@ THREE.AudioListener = function () {
this.type = 'AudioListener';
this.context = new ( window.AudioContext || window.webkitAudioContext )();
this.masterGain = this.context.createGain();
this.masterGain.connect(this.context.destination);
this.filter = null;
};
THREE.AudioListener.prototype = Object.create( THREE.Object3D.prototype );
THREE.AudioListener.prototype.constructor = THREE.AudioListener;
THREE.AudioListener.prototype.getOutputNode = function () {
return this.masterGain;
};
THREE.AudioListener.prototype.removeFilter = function ( ) {
if (this.filter !== null) {
this.masterGain.disconnect(this.filter);
this.filter.disconnect(this.context.destination);
this.masterGain.connect(this.context.destination);
this.filter = null;
}
}
THREE.AudioListener.prototype.setFilter = function ( value ) {
if (this.filter !== null) {
this.masterGain.disconnect(this.filter);
this.filter.disconnect(this.context.destination);
} else {
this.masterGain.disconnect(this.context.destination);
}
this.filter = value;
this.masterGain.connect(this.filter);
this.filter.connect(this.context.destination);
};
THREE.AudioListener.prototype.getFilter = function () {
return this.filter;
};
THREE.AudioListener.prototype.setMasterVolume = function ( value ) {
this.masterGain.gain.value = value;
};
THREE.AudioListener.prototype.getMasterVolume = function () {
return this.masterGain.gain.value;
};
THREE.AudioListener.prototype.updateMatrixWorld = ( function () {
var position = new THREE.Vector3();
......@@ -27763,9 +28033,11 @@ THREE.WebGLRenderer = function ( parameters ) {
var renderTargetProperties = properties.get( renderTarget );
var isCube = ( renderTarget instanceof THREE.WebGLRenderTargetCube );
if ( isCube ) {
renderTargetProperties.__webglDepthbuffer = [];
for ( var i = 0; i < 6; i ++ ) {
_gl.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] );
......@@ -27774,17 +28046,17 @@ THREE.WebGLRenderer = function ( parameters ) {
}
}
else {
} else {
_gl.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );
renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();
setupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget );
}
_gl.bindFramebuffer( _gl.FRAMEBUFFER, null );
};
}
// Set up GL resources for the render target
function setupRenderTarget( renderTarget ) {
......
......@@ -327,14 +327,21 @@ THREE.NumberKeyframeTrack.prototype=Object.assign(Object.create(THREE.KeyframeTr
THREE.QuaternionKeyframeTrack.prototype=Object.assign(Object.create(THREE.KeyframeTrack.prototype),{constructor:THREE.QuaternionKeyframeTrack,ValueTypeName:"quaternion",DefaultInterpolation:THREE.InterpolateLinear,InterpolantFactoryMethodLinear:function(a){return new THREE.QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});THREE.StringKeyframeTrack=function(a,b,c,d){THREE.KeyframeTrack.call(this,a,b,c,d)};
THREE.StringKeyframeTrack.prototype=Object.assign(Object.create(THREE.KeyframeTrack.prototype),{constructor:THREE.StringKeyframeTrack,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:THREE.IntepolateDiscrete,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});THREE.VectorKeyframeTrack=function(a,b,c,d){THREE.KeyframeTrack.call(this,a,b,c,d)};
THREE.VectorKeyframeTrack.prototype=Object.assign(Object.create(THREE.KeyframeTrack.prototype),{constructor:THREE.VectorKeyframeTrack,ValueTypeName:"vector"});
THREE.Audio=function(a){THREE.Object3D.call(this);this.type="Audio";this.context=a.context;this.source=this.context.createBufferSource();this.source.onended=this.onEnded.bind(this);this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.panner=this.context.createPanner();this.panner.connect(this.gain);this.autoplay=!1;this.startTime=0;this.playbackRate=1;this.isPlaying=!1};THREE.Audio.prototype=Object.create(THREE.Object3D.prototype);
THREE.Audio.prototype.constructor=THREE.Audio;THREE.Audio.prototype.load=function(a){var b=this,c=new XMLHttpRequest;c.open("GET",a,!0);c.responseType="arraybuffer";c.onload=function(a){b.context.decodeAudioData(this.response,function(a){b.source.buffer=a;b.autoplay&&b.play()})};c.send();return this};
THREE.Audio.prototype.play=function(){if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else{var a=this.context.createBufferSource();a.buffer=this.source.buffer;a.loop=this.source.loop;a.onended=this.source.onended;a.start(0,this.startTime);a.playbackRate.value=this.playbackRate;this.isPlaying=!0;this.source=a;this.connect()}};THREE.Audio.prototype.pause=function(){this.source.stop();this.startTime=this.context.currentTime};
THREE.Audio.prototype.stop=function(){this.source.stop();this.startTime=0};THREE.Audio.prototype.connect=function(){void 0!==this.filter?(this.source.connect(this.filter),this.filter.connect(this.panner)):this.source.connect(this.panner)};THREE.Audio.prototype.disconnect=function(){void 0!==this.filter?(this.source.disconnect(this.filter),this.filter.disconnect(this.panner)):this.source.disconnect(this.panner)};
THREE.Audio.prototype.setFilter=function(a){!0===this.isPlaying?(this.disconnect(),this.filter=a,this.connect()):this.filter=a};THREE.Audio.prototype.getFilter=function(){return this.filter};THREE.Audio.prototype.setPlaybackRate=function(a){this.playbackRate=a;!0===this.isPlaying&&(this.source.playbackRate.value=this.playbackRate)};THREE.Audio.prototype.getPlaybackRate=function(){return this.playbackRate};THREE.Audio.prototype.onEnded=function(){this.isPlaying=!1};
THREE.Audio.prototype.setLoop=function(a){this.source.loop=a};THREE.Audio.prototype.getLoop=function(){return this.source.loop};THREE.Audio.prototype.setRefDistance=function(a){this.panner.refDistance=a};THREE.Audio.prototype.getRefDistance=function(){return this.panner.refDistance};THREE.Audio.prototype.setRolloffFactor=function(a){this.panner.rolloffFactor=a};THREE.Audio.prototype.getRolloffFactor=function(){return this.panner.rolloffFactor};
THREE.Audio.prototype.setVolume=function(a){this.gain.gain.value=a};THREE.Audio.prototype.getVolume=function(){return this.gain.gain.value};THREE.Audio.prototype.updateMatrixWorld=function(){var a=new THREE.Vector3;return function(b){THREE.Object3D.prototype.updateMatrixWorld.call(this,b);a.setFromMatrixPosition(this.matrixWorld);this.panner.setPosition(a.x,a.y,a.z)}}();THREE.AudioListener=function(){THREE.Object3D.call(this);this.type="AudioListener";this.context=new (window.AudioContext||window.webkitAudioContext)};
THREE.AudioListener.prototype=Object.create(THREE.Object3D.prototype);THREE.AudioListener.prototype.constructor=THREE.AudioListener;
THREE.Audio=function(a){THREE.Object3D.call(this);this.type="Audio";this.context=a.context;this.source=this.context.createBufferSource();this.source.onended=this.onEnded.bind(this);this.gain=this.context.createGain();this.gain.connect(a.getOutputNode());this.autoplay=!1;this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty"};THREE.Audio.prototype=Object.create(THREE.Object3D.prototype);THREE.Audio.prototype.constructor=THREE.Audio;
THREE.Audio.prototype.load=function(a){var b=new THREE.AudioBuffer(this.context);b.load(a);this.setBuffer(b);return this};THREE.Audio.prototype.setNodeSource=function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=a;this.connect();return this};THREE.Audio.prototype.setBuffer=function(a){var b=this;a.onReady(function(a){b.source.buffer=a;b.sourceType="buffer";b.autoplay&&b.play()});return this};
THREE.Audio.prototype.play=function(){if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else{var a=this.context.createBufferSource();a.buffer=this.source.buffer;a.loop=this.source.loop;a.onended=this.source.onended;a.start(0,this.startTime);a.playbackRate.value=this.playbackRate;this.isPlaying=!0;this.source=a;this.connect()}};
THREE.Audio.prototype.pause=function(){!1===this.hasPlaybackControl?console.warn("THREE.Audio: this Audio has no playback control."):(this.source.stop(),this.startTime=this.context.currentTime)};THREE.Audio.prototype.stop=function(){!1===this.hasPlaybackControl?console.warn("THREE.Audio: this Audio has no playback control."):(this.source.stop(),this.startTime=0)};THREE.Audio.prototype.connect=function(){void 0!==this.filter?(this.source.connect(this.filter),this.filter.connect(this.gain)):this.source.connect(this.gain)};
THREE.Audio.prototype.disconnect=function(){void 0!==this.filter?(this.source.disconnect(this.filter),this.filter.disconnect(this.gain)):this.source.disconnect(this.gain)};THREE.Audio.prototype.setFilter=function(a){!0===this.isPlaying?(this.disconnect(),this.filter=a,this.connect()):this.filter=a};THREE.Audio.prototype.getFilter=function(){return this.filter};
THREE.Audio.prototype.setPlaybackRate=function(a){!1===this.hasPlaybackControl?console.warn("THREE.Audio: this Audio has no playback control."):(this.playbackRate=a,!0===this.isPlaying&&(this.source.playbackRate.value=this.playbackRate))};THREE.Audio.prototype.getPlaybackRate=function(){return this.playbackRate};THREE.Audio.prototype.onEnded=function(){this.isPlaying=!1};
THREE.Audio.prototype.setLoop=function(a){!1===this.hasPlaybackControl?console.warn("THREE.Audio: this Audio has no playback control."):this.source.loop=a};THREE.Audio.prototype.getLoop=function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.source.loop};THREE.Audio.prototype.setVolume=function(a){this.gain.gain.value=a};THREE.Audio.prototype.getVolume=function(){return this.gain.gain.value};
THREE.AudioBuffer=function(a){this.context=a;this.ready=!1;this.readyCallbacks=[]};THREE.AudioBuffer.prototype.load=function(a){var b=this,c=new XMLHttpRequest;c.open("GET",a,!0);c.responseType="arraybuffer";c.onload=function(a){b.context.decodeAudioData(this.response,function(a){b.buffer=a;b.ready=!0;for(a=0;a<b.readyCallbacks.length;a++)b.readyCallbacks[a](b.buffer);b.readyCallbacks=[]})};c.send();return this};THREE.AudioBuffer.prototype.onReady=function(a){this.ready?a(this.buffer):this.readyCallbacks.push(a)};
THREE.PositionalAudio=function(a){THREE.Audio.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)};THREE.PositionalAudio.prototype=Object.create(THREE.Audio.prototype);THREE.PositionalAudio.prototype.constructor=THREE.PositionalAudio;THREE.PositionalAudio.prototype.connect=function(){void 0!==this.filter?(this.source.connect(this.filter),this.filter.connect(this.panner)):this.source.connect(this.panner)};
THREE.PositionalAudio.prototype.disconnect=function(){void 0!==this.filter?(this.source.disconnect(this.filter),this.filter.disconnect(this.panner)):this.source.disconnect(this.panner)};THREE.PositionalAudio.prototype.setFilter=function(a){!0===this.isPlaying?(this.disconnect(),this.filter=a,this.connect()):this.filter=a};THREE.PositionalAudio.prototype.getFilter=function(){return this.filter};THREE.PositionalAudio.prototype.setRefDistance=function(a){this.panner.refDistance=a};
THREE.PositionalAudio.prototype.getRefDistance=function(){return this.panner.refDistance};THREE.PositionalAudio.prototype.setRolloffFactor=function(a){this.panner.rolloffFactor=a};THREE.PositionalAudio.prototype.getRolloffFactor=function(){return this.panner.rolloffFactor};THREE.PositionalAudio.prototype.setDistanceModel=function(a){this.panner.distanceModel=a};THREE.PositionalAudio.prototype.getDistanceModel=function(){return this.panner.distanceModel};
THREE.PositionalAudio.prototype.setMaxDistance=function(a){this.panner.maxDistance=a};THREE.PositionalAudio.prototype.getMaxDistance=function(){return this.panner.maxDistance};THREE.PositionalAudio.prototype.updateMatrixWorld=function(){var a=new THREE.Vector3;return function(b){THREE.Object3D.prototype.updateMatrixWorld.call(this,b);a.setFromMatrixPosition(this.matrixWorld);this.panner.setPosition(a.x,a.y,a.z)}}();
THREE.AudioListener=function(){THREE.Object3D.call(this);this.type="AudioListener";this.context=new (window.AudioContext||window.webkitAudioContext);this.masterGain=this.context.createGain();this.masterGain.connect(this.context.destination);this.filter=null};THREE.AudioListener.prototype=Object.create(THREE.Object3D.prototype);THREE.AudioListener.prototype.constructor=THREE.AudioListener;THREE.AudioListener.prototype.getOutputNode=function(){return this.masterGain};
THREE.AudioListener.prototype.removeFilter=function(){null!==this.filter&&(this.masterGain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.masterGain.connect(this.context.destination),this.filter=null)};THREE.AudioListener.prototype.setFilter=function(a){null!==this.filter?(this.masterGain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.masterGain.disconnect(this.context.destination);this.filter=a;this.masterGain.connect(this.filter);this.filter.connect(this.context.destination)};
THREE.AudioListener.prototype.getFilter=function(){return this.filter};THREE.AudioListener.prototype.setMasterVolume=function(a){this.masterGain.gain.value=a};THREE.AudioListener.prototype.getMasterVolume=function(){return this.masterGain.gain.value};
THREE.AudioListener.prototype.updateMatrixWorld=function(){var a=new THREE.Vector3,b=new THREE.Quaternion,c=new THREE.Vector3,d=new THREE.Vector3;return function(e){THREE.Object3D.prototype.updateMatrixWorld.call(this,e);e=this.context.listener;var f=this.up;this.matrixWorld.decompose(a,b,c);d.set(0,0,-1).applyQuaternion(b);e.setPosition(a.x,a.y,a.z);e.setOrientation(d.x,d.y,d.z,f.x,f.y,f.z)}}();
THREE.Camera=function(){THREE.Object3D.call(this);this.type="Camera";this.matrixWorldInverse=new THREE.Matrix4;this.projectionMatrix=new THREE.Matrix4};THREE.Camera.prototype=Object.create(THREE.Object3D.prototype);THREE.Camera.prototype.constructor=THREE.Camera;THREE.Camera.prototype.getWorldDirection=function(){var a=new THREE.Quaternion;return function(b){b=b||new THREE.Vector3;this.getWorldQuaternion(a);return b.set(0,0,-1).applyQuaternion(a)}}();
THREE.Camera.prototype.lookAt=function(){var a=new THREE.Matrix4;return function(b){a.lookAt(this.position,b,this.up);this.quaternion.setFromRotationMatrix(a)}}();THREE.Camera.prototype.clone=function(){return(new this.constructor).copy(this)};THREE.Camera.prototype.copy=function(a){THREE.Object3D.prototype.copy.call(this,a);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);return this};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册