| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /**
- * @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.getOutput = function () {
- return this.panner;
- };
- THREE.PositionalAudio.prototype.setRefDistance = function ( value ) {
- this.panner.refDistance = value;
- };
- THREE.PositionalAudio.prototype.getRefDistance = function () {
- return this.panner.refDistance;
- };
- THREE.PositionalAudio.prototype.setRolloffFactor = function ( value ) {
- this.panner.rolloffFactor = value;
- };
- THREE.PositionalAudio.prototype.getRolloffFactor = function () {
- return this.panner.rolloffFactor;
- };
- THREE.PositionalAudio.prototype.setDistanceModel = function ( value ) {
- this.panner.distanceModel = value;
- };
- THREE.PositionalAudio.prototype.getDistanceModel = function () {
- return this.panner.distanceModel;
- };
- THREE.PositionalAudio.prototype.setMaxDistance = function ( value ) {
- this.panner.maxDistance = value;
- };
- THREE.PositionalAudio.prototype.getMaxDistance = function () {
- return this.panner.maxDistance;
- };
- THREE.PositionalAudio.prototype.updateMatrixWorld = ( function () {
- var position = new THREE.Vector3();
- return function updateMatrixWorld( force ) {
- THREE.Object3D.prototype.updateMatrixWorld.call( this, force );
- position.setFromMatrixPosition( this.matrixWorld );
- this.panner.setPosition( position.x, position.y, position.z );
- };
- } )();
|