1#ifndef _BBM_BSDF_BASE_H_
2#define _BBM_BSDF_BASE_H_
53 template<
typename CONF>
requires concepts::config<CONF>
All includes and helpers needed for declaring new bsdfmodels.
BSDF implementation of a BSDF model.
Definition: bsdf.h:30
Definition: vector_util.h:27
bsdf concept
Definition: bsdf.h:29
bsdf contract: virtual interface wrapper around bsdfmodels
Definition: aggregatebsdf.h:29
std::ostream & operator<<(std::ostream &s, const BSDF &bsdf)
Definition: bsdf_base.h:138
std::string toString(const T &)
toString alias
Definition: stringconvert.h:594
bsdf_attr
Attribute Property Flags.
Definition: bsdf_attr_flag.h:17
unit_t
Light Unit.
Definition: unit.h:21
Forward declaration.
Definition: bsdf_base.h:55
virtual bbm::vector< Value > parameter_lower_bound(bsdf_attr flags=bsdf_attr::All) const =0
virtual Spectrum eval(const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0
Evaluate the BSDF given an in and out direction.
BBM_BSDF_FORWARD
Definition: bsdf_base.h:59
virtual BsdfSample sample(const Vec3d &out, const Vec2d &xi, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0
Samples the BSDF given an out direction and 2 random variables.
virtual bbm::vector< Value & > parameter_values(bsdf_attr flags=bsdf_attr::All)=0
virtual bbm::vector< const Value & > parameter_values(bsdf_attr flags=bsdf_attr::All) const =0
virtual Value pdf(const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0
The pdf of the in-out direction combination.
virtual Spectrum reflectance(const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const =0
the (approximate) hemispherical reflectance of the BSDF
virtual ~bsdf_base(void)
empty virtual destructor
Definition: bsdf_base.h:62
static constexpr string_literal name
Definition: bsdf_base.h:58
virtual bbm::vector< Value > parameter_upper_bound(bsdf_attr flags=bsdf_attr::All) const =0
virtual std::string toString(void) const =0
Fancy print the BSDF to a string.
virtual bbm::vector< Value > parameter_default_values(bsdf_attr flags=bsdf_attr::All) const =0
Definition: string_literal.h:16
Extensions for the STL vector class.