Class virtual_plane_sensor_t

Inheritance Relationships

Base Types

Class Documentation

class virtual_plane_sensor_t : public wt::sensor::film_backed_sensor_t<2>, public wt::sensor::virtual_coverage_sensor_t

A two-dimensional virtual plane sensor. Sensor consists of a virtual plane positioned in space, and the energy that falls upon its front face (as defined by its normal) is recorded on the underlying film’s elements. Useful for signal coverage simulations.

Public Functions

virtual_plane_sensor_t(const wt_context_t &ctx, std::string id, const transform_t &transform, pqvec2_t sensor_extent, film_t film, std::uint32_t samples_per_element, bool ray_trace, std::optional<f_t> requested_tan_alpha) noexcept
virtual_plane_sensor_t(virtual_plane_sensor_t&&) = default
inline const auto &frame() const noexcept
inline const auto &extent() const noexcept

Returns the sensor’s extent.

inline auto area() const noexcept

Returns the sensor’s area.

inline auto element_extent() const noexcept

Returns a sensor element’s extent.

inline auto centre() const noexcept
inline virtual vec3u32_t sensor_elements() const noexcept override

Total number of sensor elements (e.g., pixels), per dimension. Returns 1 for unused dimensions.

inline virtual pqvec3_t position_for_element(const sensor::sensor_element_sample_t &element) const noexcept override

Returns the world position of an element on this virtual sensor.

Parameters:

element – sensor element id and offset

inline virtual sensor::sensor_element_sample_t element_for_position(const pqvec3_t &wp) const noexcept override

Returns the film element for a world position on this virtual sensor.

inline auto sensor_area() const noexcept

Returns the sensor physical area.

inline virtual bool is_delta_position() const noexcept override
inline virtual bool is_delta_direction() const noexcept override
inline beam::sourcing_geometry_t sourcing_geometry(const wavenumber_t k) const noexcept
inline virtual beam::phase_space_extent_t sourcing_beam_extent(const wavenumber_t k) const noexcept override

Returns the beam phase-space extent for sourced beams from this sensor for a given wavenumber.

inline QE_t importance() const noexcept

Sensor importance.

inline importance_beam_t Se(const ray_t &r, const wavenumber_t k) const noexcept
virtual sensor_sample_t sample(sampler::sampler_t &sampler, const vec3u32_t &sensor_element, const wavenumber_t k) const noexcept override

Samples a time-reversed beam (“importance”) around the specified film position.

Parameters:
  • element – sensor pixel to sample from

  • k – wavenumber

virtual sensor_direct_sample_t sample_direct(sampler::sampler_t &sampler, const pqvec3_t &wp, const wavenumber_t k) const noexcept override

Samples a direct connection to a world position.

Parameters:
  • wp – world position

  • k – wavenumber

virtual std::optional<sensor_direct_connection_t> Si(const spectral_radiant_flux_beam_t &beam, const pqrange_t<> &range) const noexcept override

Makes a direct connection to an incident beam.

Parameters:
  • beam – incident beam

  • range – range from beam’s origin over which a connection may be made

virtual area_sampling_pd_t pdf_position(const pqvec3_t &p) const noexcept override

Sampling PDF of a sensor position.

Parameters:

p – position

virtual solid_angle_sampling_pd_t pdf_direction(const pqvec3_t &p, const dir3_t &dir) const noexcept override

Sampling PDF of a direction.

Parameters:
  • p – sensor position

  • dir – direction

virtual scene::element::info_t description() const override

Public Static Functions

static std::shared_ptr<virtual_plane_sensor_t> load(std::string id, scene::loader::loader_t *loader, const scene::loader::node_t &node, const wt::wt_context_t &context)

Friends

friend class wt::scene_t