Template Struct beam_radiometric_data_t< transport_e::backward, Q >

Struct Documentation

template<Quantity Q>
struct beam_radiometric_data_t<transport_e::backward, Q>

Public Types

using stokes_t = stokes_parameters_t<spectral_radiant_flux_t>

Public Functions

inline auto mean_intensity() const noexcept
inline auto isfinite() const noexcept
inline auto isnan() const noexcept
inline void apply_bsdf(const mueller_operator_t &mueller_op, const dir3_t &wo, const intersection_surface_t &surface, const frame_t &frame_after_interaction) noexcept

For a surface interaction: composes a Mueller operator to the right of current operator mueller_op. Frames are assumed to be the SP surface frames.

inline void apply_bsdf(const mueller_operator_t &mueller_op, const dir3_t &wo, const intersection_edge_t &edge, const frame_t &frame_after_interaction) noexcept

For an edge interaction: composes a Mueller operator to the right of current operator mueller_op. Frames are assumed to be the SH surface frames.

template<Quantity Q2>
inline operator beam_radiometric_data_t<transport, Q2>() const noexcept
inline auto &operator+=(const beam_radiometric_data_t &o) noexcept
inline auto operator+(const beam_radiometric_data_t &o) const noexcept
inline auto &operator*=(const f_t scale) noexcept
inline auto &operator/=(const f_t scale) noexcept

Public Members

mueller_operator_t M

Mueller operator.

frame_t frame

Incident frame of M.

Q scale = {}

Public Static Attributes

static constexpr auto transport = transport_e::backward

Friends

template<ScalarOrUnit SQ>
inline friend auto operator*(const beam_radiometric_data_t &data, const SQ scale) noexcept
template<ScalarOrUnit SQ>
inline friend auto operator*(const SQ scale, const beam_radiometric_data_t &data) noexcept
template<ScalarOrUnit SQ>
inline friend auto operator/(const beam_radiometric_data_t &data, const SQ scale) noexcept