34 template<auto GetChannelVectorFunction>
50 mDummyIndices.push_back(
static_cast<uint32>(mVectors.size() - 1));
61 return std::find(mDummyIndices.begin(), mDummyIndices.end(), index) != mDummyIndices.end();
80 std::pmr::vector<Vec3Type>& mVectors;
81 std::pmr::vector<uint32> mDummyIndices;
Definition ChannelMap.h:150
constexpr bool Has(EChannel channel) const noexcept
Definition ChannelMap.h:157
Utility class to encapsulate dummy speaker handling while building a LUT.
Definition DummySpeakers.h:36
std::remove_cvref_t< decltype(GetChannelVectorFunction(EChannel{}))> Vec3Type
Definition DummySpeakers.h:38
JPL_INLINE constexpr void AddIfChannelNotPresent(EChannel channel)
Definition DummySpeakers.h:53
JPL_INLINE constexpr DummySpeakers(ChannelMap channelMap, std::pmr::vector< Vec3Type > &speakerVectors) noexcept
Definition DummySpeakers.h:40
JPL_INLINE constexpr ChannelMap GetChannelMap() const noexcept
Definition DummySpeakers.h:76
JPL_INLINE constexpr bool Contains(uint32 index) const
Definition DummySpeakers.h:59
JPL_INLINE constexpr uint32 GetNumDummies() const noexcept
Definition DummySpeakers.h:75
JPL_INLINE constexpr bool HasDummyAt(const Vec3Type &direction, float tolerance) const noexcept
Definition DummySpeakers.h:64
JPL_INLINE constexpr void AddDummy(const Vec3Type &speakerVector)
Definition DummySpeakers.h:47
JPL_INLINE constexpr bool IsNearlyEqual(T a, T b, T tolerance=JPL_FLOAT_EPS_V< T >) noexcept
Definition Math.h:152
Forward declaration.
Definition DummySpeakers.h:31
std::uint32_t uint32
Definition Core.h:311
std::pmr::memory_resource * GetDefaultMemoryResource() noexcept
Definition Memory.h:42
EChannel
Definition ChannelMap.h:39
JPL_INLINE simd min(const simd &a, const simd &b) noexcept
Element-wise min.
Definition SIMD.h:1813