JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType > Class Template Reference

Forward declarations. More...

#include <JPLSpatial/Panning/VBAPLUT3D.h>

Public Member Functions

 LUTBuilder (ChannelMap channelMap, LUTType &outLUT)
 
JPL_INLINE uint32 GetNumDummies () const noexcept
 
JPL_INLINE uint32 GetNumRealChannels () const noexcept
 
JPL_INLINE const std::pmr::vector< SpeakerTripletIdx > & GetTris () const noexcept
 
float FindShortestAperture () const
 
SpeakerTripletIdx SanitizeSpeakerIndex (const SpeakerTripletIdx &triplet) const
 
uint8 SanitizeSpeakerIndex (SpeakerIdx speakerIndex) const
 
bool ComputeCellFor (const Vec3Type &direction, int lutIndex)
 
JPL_INLINE bool BuildForAllDirections ()
 Build the entire LUT for all directions.
 

Static Public Attributes

static constexpr bool cLUTHasDynamicData = requires { typename LUTType::DynamicDataType; }
 

Detailed Description

template<auto GetSpeakerVectorFunction, class LUTCodec, CVec3 Vec3Type, CLUT LUTType>
class JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >

Forward declarations.

Helper class to build a LUT for a set of directions and indices.

Constructor & Destructor Documentation

◆ LUTBuilder()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::LUTBuilder ( ChannelMap  channelMap,
LUTType &  outLUT 
)
inline

Member Function Documentation

◆ BuildForAllDirections()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
bool JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::BuildForAllDirections ( )
inline

Build the entire LUT for all directions.

◆ ComputeCellFor()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
bool JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::ComputeCellFor ( const Vec3Type &  direction,
int  lutIndex 
)
inline

This has to be called for each direction the LUT needs to have values for

Parameters
direction: must be a normalized unit vector
lutIndex: index in the LUT at which the values for the 'direction' have to be stored

◆ FindShortestAperture()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
float JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::FindShortestAperture ( ) const
inline

◆ GetNumDummies()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
JPL_INLINE uint32 JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::GetNumDummies ( ) const
inlinenoexcept

◆ GetNumRealChannels()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
JPL_INLINE uint32 JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::GetNumRealChannels ( ) const
inlinenoexcept

◆ GetTris()

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
JPL_INLINE const std::pmr::vector< SpeakerTripletIdx > & JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::GetTris ( ) const
inlinenoexcept

◆ SanitizeSpeakerIndex() [1/2]

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
SpeakerTripletIdx JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::SanitizeSpeakerIndex ( const SpeakerTripletIdx triplet) const
inline

◆ SanitizeSpeakerIndex() [2/2]

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
uint8 JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::SanitizeSpeakerIndex ( SpeakerIdx  speakerIndex) const
inline

Member Data Documentation

◆ cLUTHasDynamicData

template<auto GetSpeakerVectorFunction, class LUTCodec , CVec3 Vec3Type, CLUT LUTType>
constexpr bool JPL::VBAP::LUTBuilder< GetSpeakerVectorFunction, LUTCodec, Vec3Type, LUTType >::cLUTHasDynamicData = requires { typename LUTType::DynamicDataType; }
staticconstexpr

The documentation for this class was generated from the following file: