Class free_space_diffraction_t¶
Defined in File free_space_diffraction.hpp
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class free_space_diffraction_t¶
Free-space diffraction angular scattering function.
Public Types
-
using eval_ret_t = std::vector<diffracting_edge_t>¶
Public Functions
-
free_space_diffraction_t(const ads::ads_t *ads, const pqvec3_t &interaction_wp, const frame_t &interaction_region_frame, const pqvec3_t &interaction_region_size, const dir3_t &wi, wavenumber_t k, const ads::intersection_record_t::edges_container_t &edges) noexcept¶
Construct a new free space diffraction object.
- Parameters:
k – wavenumber
edges – edges accessor
-
free_space_diffraction_t(free_space_diffraction_t&&) noexcept = default¶
-
inline bool empty() const noexcept¶
Returns TRUE if the aperture is empty.
-
sample_ret_t sample(const ads::ads_t *ads, const pqvec3_t &src, sampler::sampler_t &sampler) const noexcept¶
Samples the free-space diffraction BSDF. Returned position and direction are in world coordinates.
- Parameters:
src – source point in world coordinates
-
eval_ret_t f(const pqvec3_t &src, const pqvec3_t &dst) const noexcept¶
Evaluates the free-space diffraction BSDF.
- Parameters:
src – source point in world coordinates
dst – target point in world coordinates
-
angle_sampling_pd_t pdf(const pqvec3_t &src, const dir3_t &wo) const noexcept¶
Queries the sampling density of the free-space diffraction BSDF.
- Parameters:
src – source point in world coordinates
wo – world direction from interation point
-
struct diffracting_edge_t¶
-
struct sample_ret_t¶
Public Members
-
std::optional<intersection_edge_t> intersection¶
-
bool is_direct¶
-
angle_sampling_pd_t dpd = angle_sampling_pd_t::discrete(0)¶
-
std::optional<intersection_edge_t> intersection¶
-
using eval_ret_t = std::vector<diffracting_edge_t>¶