template<typename BSDFMODEL>
{
{ model.eval(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>(), std::declval<Mask_t<BSDFMODEL>>()) } -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.eval(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>())} -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.eval(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>())} -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.eval(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>()) } -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.sample(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec2d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>(), std::declval<Mask_t<BSDFMODEL>>()) } -> std::same_as<BsdfSample_t<BSDFMODEL>>;
{ model.sample(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec2d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>()) } -> std::same_as<BsdfSample_t<BSDFMODEL>>;
{ model.sample(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec2d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>()) } -> std::same_as<BsdfSample_t<BSDFMODEL>>;
{ model.sample(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec2d_t<BSDFMODEL>>()) } -> std::same_as<BsdfSample_t<BSDFMODEL>>;
{ model.pdf(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>(), std::declval<Mask_t<BSDFMODEL>>()) } -> std::same_as<Value_t<BSDFMODEL>>;
{ model.pdf(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>()) } -> std::same_as<Value_t<BSDFMODEL>>;
{ model.pdf(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>()) } -> std::same_as<Value_t<BSDFMODEL>>;
{ model.pdf(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<Vec3d_t<BSDFMODEL>>()) } -> std::same_as<Value_t<BSDFMODEL>>;
{ model.reflectance(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>(), std::declval<Mask_t<BSDFMODEL>>()) } -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.reflectance(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>(), std::declval<unit_t>()) } -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.reflectance(std::declval<Vec3d_t<BSDFMODEL>>(), std::declval<BsdfFlag_t<BSDFMODEL>>()) } -> std::same_as<Spectrum_t<BSDFMODEL>>;
{ model.reflectance(std::declval<Vec3d_t<BSDFMODEL>>()) } -> std::same_as<Spectrum_t<BSDFMODEL>>;
}
bsdfmodel concept
Definition: bsdfmodel.h:33
has_config
Definition: config.h:53
A named class is a class that contains a static constexpr string_literal name.
Definition: named.h:19