Template Class beam_t¶
Defined in File beam.hpp
Inheritance Relationships¶
Base Type¶
public wt::beam::beam_generic_t
(Class beam_generic_t)
Class Documentation¶
-
template<beam::transport_e Transport, Quantity Q>
class beam_t : public wt::beam::beam_generic_t¶ Beam paired with radiometric data: see
wt::beam::beam_radiometric_data_t
.Public Functions
-
inline beam_t(const ray_t &ray, const data_t::stokes_t &S, const frame_t &frame, const wavenumber_t k, const beam::sourcing_geometry_t &sourcing_geometry) noexcept¶
-
inline beam_t(const elliptic_cone_t &envelope, const data_t::stokes_t &S, const frame_t &frame, const wavenumber_t k) noexcept¶
-
inline beam_t(const ray_t &ray, const Q &s, const wavenumber_t k, const beam::sourcing_geometry_t &sourcing_geometry) noexcept¶
-
inline beam_t(const elliptic_cone_t &envelope, const Q &s, const wavenumber_t k) noexcept¶
-
inline beam_t(const ray_t &ray, const mueller_operator_t &M, const Q &scale, const frame_t &Mframe, const wavenumber_t k, const beam::sourcing_geometry_t &sourcing_geometry) noexcept¶
-
inline beam_t(const elliptic_cone_t &envelope, const mueller_operator_t &M, const Q &scale, const frame_t &Mframe, const wavenumber_t k) noexcept¶
-
inline beam_t(const ray_t &ray, const Q &scale, const wavenumber_t k, const beam::sourcing_geometry_t &sourcing_geometry) noexcept
-
inline beam_t(const elliptic_cone_t &envelope, const Q &scale, const wavenumber_t k) noexcept
-
inline const auto &radiometric_data() const noexcept¶
-
inline auto intensity() const noexcept¶
Returns the intensity of the beam radiometric data.
-
inline auto isfinite() const noexcept¶
-
inline auto isnan() const noexcept¶
-
inline virtual wavenumber_t k() const noexcept override¶
Returns the beam’s wavenumber.
-
inline void transform_surface_interaction(const intersection_surface_t &surface, const dir3_t &wo, const bsdf::bsdf_result_t &bsdf, const f_t weight) noexcept¶
Interact with a surface and scatter into direction wo.
- Parameters:
bsdf – the interaction BSDF
weight – interaction sampling weight and other scaling factors
-
inline void transform_region_interaction(const pqvec3_t &wp, const length_t dist, const dir3_t &wo, const f_t weight) noexcept¶
Interact at a region around a point (volumetric scattering, fsd, etc.) and scatter into direction wo. TODO: polarimetric volumetric interactions.
- Parameters:
wp – interaction point
dist – distance of propagation from previous interaction
weight – interaction sampling weight and other scaling factors
-
inline void transform_edge_interaction(const intersection_edge_t &intersection, const pqvec3_t &interaction_centre_wp, const pqvec3_t &edge_interaction_wp, const length_t dist, const dir3_t &wo, const f_t weight) noexcept¶
Interact at an edge, and scatter into direction wo. TODO: polarimetric edge interactions.
- Parameters:
interaction_centre_wp – centre of interaction
edge_interaction_wp – interation point on edge interaction
dist – distance of propagation from previous interaction
weight – interaction sampling weight and other scaling factors
Public Static Functions
-
static inline constexpr auto beam_transport() noexcept¶
Friends
-
inline beam_t(const ray_t &ray, const data_t::stokes_t &S, const frame_t &frame, const wavenumber_t k, const beam::sourcing_geometry_t &sourcing_geometry) noexcept¶