Loading...
Searching...
No Matches
bsdf_symmetry.h
Go to the documentation of this file.
1#ifndef _BBM_BSDF_SYMMETRY_H_
2#define _BBM_BSDF_SYMMETRY_H_
3
4/************************************************************************/
5/*! \file bsdf_symmetry.h
6
7 \brief Enum for passing Isotropic or Anisotropic options to a BSDF.
8
9*************************************************************************/
10
11namespace bbm {
12
13 /*********************************************************************/
14 /*! \brief symmetry variants.
15
16 symmetry_type = value type of isotropic and anisotropic roughness/sharpness
17 **********************************************************************/
18 enum struct symmetry_v
19 {
20 Isotropic = 0x0001,
21 Anisotropic = 0x0002,
22 };
23
24 /**********************************************************************/
25 /*! \brief Determine the data type for storing isotropic or anisotropic reflectance parameters.
26 **********************************************************************/
27 template<symmetry_v V, typename Value>
28 using symmetry_t = std::conditional_t<(V == symmetry_v::Isotropic), Value, vec2d<Value> >;
29
30} // end bbm namespace
31
32#endif /* _BBM_BSDF_SYMMETRY_H_ */
Definition: aggregatebsdf.h:29
symmetry_v
symmetry variants.
Definition: bsdf_symmetry.h:19
std::conditional_t<(V==symmetry_v::Isotropic), Value, vec2d< Value > > symmetry_t
Determine the data type for storing isotropic or anisotropic reflectance parameters.
Definition: bsdf_symmetry.h:28