1#ifndef _BBM_BSDF_ATTRIBUTE_H_
2#define _BBM_BSDF_ATTRIBUTE_H_
36 template<
typename T>
requires concepts::bsdf_attribute<T>
37 inline constexpr auto default_value(T) {
return std::decay_t<T>::prop::default_value(); }
39 template<
typename T>
requires concepts::bsdf_attribute<T>
40 inline constexpr auto lower_bound(T) {
return std::decay_t<T>::prop::lower_bound(); }
42 template<
typename T>
requires concepts::bsdf_attribute<T>
43 inline constexpr auto upper_bound(T) {
return std::decay_t<T>::prop::upper_bound(); }
45 template<
typename T>
requires concepts::bsdf_attribute<T>
46 inline constexpr auto bsdf_attr_flag(T) {
return std::decay_t<T>::prop::flag; }
57 template<
typename T,
bsdf_attr Flag, literal Default=1.0, literal UpperBound = std::numeric_limits<scalar_t<T>>::max(), literal LowerBound=0.0>
70 template<
typename T,
bsdf_attr Flag, literal Default=1.0, literal UpperBound = std::numeric_limits<scalar_t<T>>::max(), literal LowerBound=0.0>
91 template<
typename T, bsdf_attr Flag>
struct bsdf_fresnel_properties<ior::complex_ior<T>, Flag> :
bsdf_properties<ior::complex_ior<T>, Flag, std::array{1.3, 0.0}, std::array{5.0, 10.0}, std::array{0.1, 0.0}> {};
93 template<
typename T, bsdf_attr Flag = bsdf_attr::SpecularParameter>
Flags to mark properties of a bsdf's attribute.
A warpper class to attach a properties to a class via a property struct. The propert expects by defau...
Defines 'ior' and 'reflectance' types.
Tools for making an object:
Definition: aggregatebsdf.h:29
constexpr auto default_value(T)
Definition: bsdf_attribute.h:37
constexpr auto bsdf_attr_flag(T)
Definition: bsdf_attribute.h:46
constexpr auto lower_bound(T)
Definition: bsdf_attribute.h:40
constexpr auto upper_bound(T)
Definition: bsdf_attribute.h:43
bsdf_attr
Attribute Property Flags.
Definition: bsdf_attr_flag.h:17
Base declaration of attribute; further specialized below.
Definition: attribute.h:26
Definition: bsdf_attribute.h:88
bsdf_parameter property
Definition: bsdf_attribute.h:59
static type default_value(void)
Definition: bsdf_attribute.h:62
static type lower_bound(void)
Definition: bsdf_attribute.h:63
static type upper_bound(void)
Definition: bsdf_attribute.h:64
static constexpr bsdf_attr flag
Definition: bsdf_attribute.h:61
T type
Definition: bsdf_attribute.h:60
Definition: constants.h:17