Template Struct beam_radiometric_data_t< transport_e::forward, Q >

Struct Documentation

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

Public Types

using stokes_t = stokes_parameters_t<Q>

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: transforms S using a Mueller operator mueller_op. Frames of M 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: transforms S using a Mueller operator mueller_op. Frames of M 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

stokes_t S

Stokes parameter vector.

frame_t frame

Frame of S.

Public Static Attributes

static constexpr auto transport = transport_e::forward

Friends

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