56 lines
2.3 KiB
TypeScript
56 lines
2.3 KiB
TypeScript
export default Room;
|
|
/**
|
|
* @class Room
|
|
* @description Model that manages early and late reflections using acoustic
|
|
* properties and listener position relative to a rectangular room.
|
|
* @param {AudioContext} context
|
|
* Associated {@link
|
|
https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext}.
|
|
* @param {Object} options
|
|
* @param {Float32Array} options.listenerPosition
|
|
* The listener's initial position (in meters), where origin is the center of
|
|
* the room. Defaults to {@linkcode Utils.DEFAULT_POSITION DEFAULT_POSITION}.
|
|
* @param {Utils~RoomDimensions} options.dimensions Room dimensions (in meters). Defaults to
|
|
* {@linkcode Utils.DEFAULT_ROOM_DIMENSIONS DEFAULT_ROOM_DIMENSIONS}.
|
|
* @param {Utils~RoomMaterials} options.materials Named acoustic materials per wall.
|
|
* Defaults to {@linkcode Utils.DEFAULT_ROOM_MATERIALS DEFAULT_ROOM_MATERIALS}.
|
|
* @param {Number} options.speedOfSound
|
|
* (in meters/second). Defaults to
|
|
* {@linkcode Utils.DEFAULT_SPEED_OF_SOUND DEFAULT_SPEED_OF_SOUND}.
|
|
*/
|
|
declare class Room {
|
|
constructor(context: any, options: any);
|
|
early: EarlyReflections;
|
|
late: LateReflections;
|
|
speedOfSound: any;
|
|
output: any;
|
|
_merger: any;
|
|
/**
|
|
* Set the room's dimensions and wall materials.
|
|
* @param {Utils~RoomDimensions} dimensions Room dimensions (in meters). Defaults to
|
|
* {@linkcode Utils.DEFAULT_ROOM_DIMENSIONS DEFAULT_ROOM_DIMENSIONS}.
|
|
* @param {Utils~RoomMaterials} materials Named acoustic materials per wall. Defaults to
|
|
* {@linkcode Utils.DEFAULT_ROOM_MATERIALS DEFAULT_ROOM_MATERIALS}.
|
|
*/
|
|
setProperties(dimensions: any, materials: any): void;
|
|
/**
|
|
* Set the listener's position (in meters), where origin is the center of
|
|
* the room.
|
|
* @param {Number} x
|
|
* @param {Number} y
|
|
* @param {Number} z
|
|
*/
|
|
setListenerPosition(x: number, y: number, z: number): void;
|
|
/**
|
|
* Compute distance outside room of provided position (in meters).
|
|
* @param {Number} x
|
|
* @param {Number} y
|
|
* @param {Number} z
|
|
* @return {Number}
|
|
* Distance outside room (in meters). Returns 0 if inside room.
|
|
*/
|
|
getDistanceOutsideRoom(x: number, y: number, z: number): number;
|
|
}
|
|
import EarlyReflections from "./early-reflections.js";
|
|
import LateReflections from "./late-reflections.js";
|