Update framework
This commit is contained in:
40
framework/resonator/scenes/resonance-scene.js
Normal file
40
framework/resonator/scenes/resonance-scene.js
Normal file
@@ -0,0 +1,40 @@
|
||||
// The code that deals with 3d audio
|
||||
import ResonanceAudio from '../vendor/resonance-es6/main';
|
||||
import EventEmitter from 'eventemitter3';
|
||||
import vec3 from '../../tsm/vec3';
|
||||
export default class Scene extends EventEmitter {
|
||||
constructor(context) {
|
||||
super();
|
||||
this.context = context;
|
||||
this.scene = new ResonanceAudio(this.context.getContext(), {
|
||||
ambisonicOrder: 3
|
||||
});
|
||||
this.listener = this.context.getContext().listener;
|
||||
this.init();
|
||||
}
|
||||
init() {
|
||||
// this.scene.output.connect(this.context.getOutputDestination());
|
||||
}
|
||||
createSource() {
|
||||
const source = this.scene.createSource();
|
||||
return Object.assign(Object.assign({}, source), { getInput: () => source.input });
|
||||
}
|
||||
getOutput() {
|
||||
return this.scene.output;
|
||||
}
|
||||
getInput() {
|
||||
return this.scene.input;
|
||||
}
|
||||
setListenerPosition(x, y, z) {
|
||||
this.scene.setListenerPosition(x, y, z);
|
||||
}
|
||||
setListenerOrientation(forward, rawup) {
|
||||
let fwd = new vec3([forward.x, forward.y, forward.z]);
|
||||
let up = fwd.copy();
|
||||
vec3.cross(up, new vec3([rawup.x, rawup.y, rawup.z]), up);
|
||||
vec3.cross(up, fwd, up);
|
||||
fwd.normalize();
|
||||
up.normalize();
|
||||
this.scene.setListenerOrientation(forward.x, forward.y, forward.z, rawup.x, rawup.y, rawup.z);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user