Struct sourcing_geometry_t

Struct Documentation

struct sourcing_geometry_t

Beam sourcing geometry.

Public Functions

inline auto phase_space_extent() const noexcept

Computes the phase-space extent of this sourcing geometry.

inline auto envelope(const ray_t &ray, length_t &self_intersection_distance) const noexcept

Computes the beam envelope (elliptic cone) for this sourcing geometry.

Public Members

dir3_t x = {1, 0, 0}
pqvec2_t initial_spatial_lengths
f_t tan_alpha
const intersection_surface_t *surface = nullptr
wavenumber_t k

Public Static Functions

static inline auto source_mub_from(const f_t tan_alpha, const Wavenumber auto k) noexcept

Source an isotropic minimum-uncertainty beam (MUB) into a solid angle.

static inline auto source_mub_from(const length_t initial_spatial_length, const Wavenumber auto k) noexcept

Source an isotropic minimum-uncertainty beam (MUB) from a spatial footprint.

static inline auto source_mub_from(const pqvec2_t initial_spatial_lengths, const dir3_t x, const Wavenumber auto k) noexcept

Source a minimum-uncertainty beam (MUB) from a spatial footprint.

Parameters:

x – tangent direction for the largest spatial dimension

static inline auto source_mub_from(const intersection_surface_t *surface, const Wavenumber auto k) noexcept

Source a minimum-uncertainty beam (MUB) from a surface.

static inline auto source(const length_t initial_spatial_length, const f_t tan_alpha, const Wavenumber auto k) noexcept

Source a beam with explicitly defined spatial footprint and tan opening half angle. This can be used to specify a beam that is not strictly physical (not fulfilling the uncertainty relation); this is useful for not-strictly-physical sensors, like virtual cameras.

static inline auto source(const phase_space_extent_t &extent) noexcept

Source an isotropic beam with an explicitly defined phase-space extent. This can be used to specify a beam that is not strictly physical (not fulfilling the uncertainty relation); this is useful for not-strictly-physical sensors, like virtual cameras.

static inline auto source(const intersection_surface_t *surface, const phase_space_extent_t &extent) noexcept

Source an isotropic beam with an explicitly defined phase-space extent. This can be used to specify a beam that is not strictly physical (not fulfilling the uncertainty relation); this is useful for not-strictly-physical sensors, like virtual cameras.