Template Struct path_walk_data_t

Struct Documentation

template<beam::Beam BeamType>
struct path_walk_data_t

Public Functions

inline void transform_surface_interaction(const intersection_surface_t &intersection, const dir3_t &woworld, const f_t scale, const bsdf::bsdf_result_t &bsdf, const f_t eta, const solid_angle_sampling_pd_t pdf_fwd) noexcept
inline void transform_region_interaction(const pqvec3_t &p, const length_t beam_z_dist, const dir3_t &woworld, const f_t weight, const solid_angle_sampling_pd_t pdf_fwd) noexcept
inline void transform_fsd_interaction(const pqvec3_t &wp, const length_t beam_z_dist, const dir3_t &woworld, const f_t weight, const solid_angle_sampling_pd_t pdf_fwd) noexcept
inline void set_fsd_bsdf(std::unique_ptr<free_space_diffraction_t> fsd_bsdf_ptr) noexcept
inline bool continue_walk(std::uint32_t depth, bool allow_RR) noexcept

Public Members

BeamType beam
vertex_geo_variant_t prev_vert_geo
std::optional<BeamType> prev_vert_beam
bool sampled_fsd = false
const plt_path_t::options_t &opts
solid_angle_sampling_pd_t from_previous_dpd = solid_angle_sampling_pd_t::discrete(0)
std::unique_ptr<free_space_diffraction_t> fsd_bsdf
f_t throughput = 1
const integrator_context_t &ctx

Public Static Attributes

static constexpr transport_e transport = BeamType::transport
static sampler::uniform_t sampler = sampler::uniform_t{}