This completely changes the RLRAudioPropagation API to make many improvements to the capabilities and ABI compatibility.
Adds C API, which improves the ABI compatibility, future-proofing, and ability to bind to other languages.
Deprecates old C++ API. This C++ API should not be used and will be removed at some point. It's advisable to switch to the C API.
Improved documentation in the header file.
Adds support for loading custom HRTFs in AES SOFA format.
Adds ray tracing API which can be used to make simple ray intersection queries in the audio scene.
Adds ability to write the scene as a Wavefront OBJ file, for debugging purposes.
Adds ability to load mesh files in OBJ or PLY format. These will have just 1 material for the whole mesh.
Cleans up API for defining raw mesh geometry with multiple materials.
Adds API for easily defining a box-shaped room with different material for each face. No mesh required.
Adds ability to write simulated IRs as .wav files, or to access the data directly.
Adds ability to automatically calculate acoustic parameters like RT60, DRR, C80, D50, TS, from the simulated IRs and write these to a text file.
Adds support for multiple audio sources and listeners, whereas the old API was limited to one of each. Sources and listeners are referred to by their index (the order they were added to the scene).
API functions are more orthogonal now, whereas the old API combined operations together (e.g. the old AddSource() adds a source to the scene but also changes the position if a source is already added). Now, adding a source is separated from changing the position.
No longer leaks mesh memory when simulator/context is destroyed.
Adds API for querying the "ray efficiency" of the simulation. (a value in [0,1] indicating what fraction of the rays hit something, which can be used as a measure of how open or outdoor a scene is. This can be used to detect meshes with problems (e.g. holes from 3D reconstruction errors).
Sources and listeners can have a radius to the sound emitter. This is treated like a spherical area source. HRTF fidelity is reduced for area sources (radius > 0) due to using a different IR construction approach.
This completely changes the RLRAudioPropagation API to make many improvements to the capabilities and ABI compatibility.