Template Class film_storage_t

Inheritance Relationships

Base Type

Class Documentation

template<bool polarimetric, std::size_t Dims>
class film_storage_t : public wt::sensor::film_storage_handle_t

Film storage responsible for accumulating samples and developing the final result.

Public Types

using T = std::conditional_t<polarimetric, vec4_t, f_t>
using WeightT = f_t
using StorageT = std::conditional_t<polarimetric, vec4<FilmStoragePixelT>, FilmStoragePixelT>
using StorageWeightT = FilmStoragePixelT
using element_t = sensor_element_t<T, WeightT>
using storage_element_t = sensor_element_t<StorageT, StorageWeightT>
using image_block_t = padded_block_t<element_t, Dims>
using image_t = bitmap::bitmap_t<storage_element_t, Dims>
using light_image_t = bitmap::bitmap_t<StorageT, Dims>
using index_t = vec<Dims, std::int32_t>
using size_t = image_t::size_t
using bvec_t = bvec<Dims>

Public Functions

inline film_storage_t(const wt_context_t &ctx, size_t size, bvec_t flip, bitmap::pixel_layout_t pixel_layout, const element_t &fill, sensor_write_flags_e flags, std::shared_ptr<response::tonemap_t> sensor_tonemap)
inline film_storage_t(film_storage_t &&o) noexcept
inline size_t dimensions() const noexcept
inline virtual vec3u32_t film_size() const noexcept override
inline virtual int dimensions_count() const noexcept override
inline virtual bitmap::pixel_layout_t pixel_layout() const noexcept override
inline virtual const response::tonemap_t *get_tonemap() const noexcept override
inline virtual sensor_write_flags_e get_write_flags() const noexcept override
inline virtual bool is_polarimetric() const noexcept override
inline bool has_light_images() const noexcept
inline virtual void write_block(const block_handle_t &block_handle, const f_t scale = 1) noexcept override

Writes a block to this film. (not thread safe)

Parameters:
  • storage_ptr – film storage to splat to

  • block_handle – image block

inline void write_light_splat(const vec3u32_t &pos3, const std::uint8_t comp, const T &value, const int radius, const f_t *weights, const f_t scale = 1) noexcept

Splat a value to a light image in this film. (thread safe)

inline virtual bitmap::colour_encoding_t get_colour_encoding_of_developed_tonemapped_film() const noexcept override

Colour encoding of the tonemapped developed film.

inline auto develop(const f_t scale_light = 1) const noexcept
template<bool develop_I_only = false>
inline auto develop(const f_t scale_light = 1) const noexcept
inline virtual developed_scalar_film_t<2> develop_lin_d2(const std::size_t samples_per_element) const override

Develops the film (no tonemapping). For two-dimensional films.

Parameters:

samples_per_elements – samples per element written (used for scale factor for light images)

inline virtual developed_polarimetric_film_t<2> develop_lin_stokes_d2(const std::size_t samples_per_element) const override

Develops the film (no tonemapping). For two-dimensional polarimetric films. Returns an array of 4 developed images, one for each of the Stokes parameters.

Parameters:

samples_per_elements – samples per element written (used for scale factor for light images)

inline virtual developed_scalar_film_t<2> develop_d2(const std::size_t samples_per_element) const override

Develops the film. For two-dimensional films.

Parameters:

samples_per_elements – samples per element written (used for scale factor for light images)

inline virtual developed_polarimetric_film_t<2> develop_stokes_d2(const std::size_t samples_per_element) const override

Develops the film. For two-dimensional polarimetric films. Returns an array of 4 developed images, one for each of the Stokes parameters.

Parameters:

samples_per_elements – samples per element written (used for scale factor for light images)