JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::SpecularPathCache< Vec3 > Class Template Reference

A very experimental specular path cache. More...

#include <JPLSpatial/PathTracing/SpecularPathCache.h>

Public Types

using Scene = SceneInterface
 
using SPMap = std::pmr::unordered_map< SpecularPathId, SpecularPathData< Vec3 > >
 
using SPEntry = std::pair< SpecularPathId, SpecularPathData< Vec3 > >
 
using SPArray = std::pmr::vector< SPEntry >
 

Public Member Functions

 SpecularPathCache ()=default
 
 ~SpecularPathCache () noexcept
 
JPL_INLINE std::size_t GetNumPaths () const
 
JPL_INLINE std::size_t GetNumValidPaths () const
 
JPL_INLINE std::size_t GetNumInvalidPaths () const
 
JPL_INLINE bool Contains (SpecularPathId pathId) const
 
void Add (SpecularPathId path, std::span< const int > nodes, const Vec3 &imageSource, const EnergyBands &energy, bool isPathValid)
 
template<class SceneType >
void Validate (const SceneType &scene)
 
JPL_INLINE std::span< const SPEntryGetValidPaths () const
 
JPL_INLINE std::span< const SPEntryGetInvalidPaths () const
 
JPL_INLINE void Clear ()
 

Static Public Attributes

static constexpr std::size_t cMaxOrder = 16
 

Detailed Description

template<class Vec3>
class JPL::SpecularPathCache< Vec3 >

A very experimental specular path cache.

Member Typedef Documentation

◆ Scene

template<class Vec3 >
using JPL::SpecularPathCache< Vec3 >::Scene = SceneInterface

◆ SPArray

template<class Vec3 >
using JPL::SpecularPathCache< Vec3 >::SPArray = std::pmr::vector<SPEntry>

◆ SPEntry

template<class Vec3 >
using JPL::SpecularPathCache< Vec3 >::SPEntry = std::pair<SpecularPathId, SpecularPathData<Vec3> >

◆ SPMap

template<class Vec3 >
using JPL::SpecularPathCache< Vec3 >::SPMap = std::pmr::unordered_map<SpecularPathId, SpecularPathData<Vec3> >

Constructor & Destructor Documentation

◆ SpecularPathCache()

template<class Vec3 >
JPL::SpecularPathCache< Vec3 >::SpecularPathCache ( )
default

◆ ~SpecularPathCache()

template<class Vec3 >
JPL::SpecularPathCache< Vec3 >::~SpecularPathCache ( )
inlinenoexcept

Member Function Documentation

◆ Add()

template<class Vec3 >
void JPL::SpecularPathCache< Vec3 >::Add ( SpecularPathId  path,
std::span< const int nodes,
const Vec3 &  imageSource,
const EnergyBands energy,
bool  isPathValid 
)
inline

◆ Clear()

template<class Vec3 >
JPL_INLINE void JPL::SpecularPathCache< Vec3 >::Clear ( )
inline

◆ Contains()

template<class Vec3 >
JPL_INLINE bool JPL::SpecularPathCache< Vec3 >::Contains ( SpecularPathId  pathId) const

◆ GetInvalidPaths()

template<class Vec3 >
JPL_INLINE std::span< const SPEntry > JPL::SpecularPathCache< Vec3 >::GetInvalidPaths ( ) const
inline

◆ GetNumInvalidPaths()

template<class Vec3 >
JPL_INLINE std::size_t JPL::SpecularPathCache< Vec3 >::GetNumInvalidPaths ( ) const
inline

◆ GetNumPaths()

template<class Vec3 >
JPL_INLINE std::size_t JPL::SpecularPathCache< Vec3 >::GetNumPaths ( ) const
inline

◆ GetNumValidPaths()

template<class Vec3 >
JPL_INLINE std::size_t JPL::SpecularPathCache< Vec3 >::GetNumValidPaths ( ) const
inline

◆ GetValidPaths()

template<class Vec3 >
JPL_INLINE std::span< const SPEntry > JPL::SpecularPathCache< Vec3 >::GetValidPaths ( ) const
inline

◆ Validate()

template<class Vec3 >
template<class SceneType >
void JPL::SpecularPathCache< Vec3 >::Validate ( const SceneType scene)
inline

Member Data Documentation

◆ cMaxOrder

template<class Vec3 >
constexpr std::size_t JPL::SpecularPathCache< Vec3 >::cMaxOrder = 16
staticconstexpr

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