6#include <Common/primitive_type.h>
32static_assert(std::is_signed_v<SurfaceElemental>,
33 "Type of `SurfaceElemental` must be signed, as special meanings are "
34 "defined with negative values.");
#define PH_DEFINE_INLINE_ENUM_FLAG_OPERATORS(EnumType)
Defines operator | and operator & for EnumType.
Definition TBitFlags.h:146
Describes how light interacts with a surface.
Definition SurfaceOptics.h:17
Manipulate a value type where each bit is a binary flag.
Definition TBitFlags.h:17
Miscellaneous math utilities.
consteval UIntType flag_bit()
Definition math.h:537
The root for all renderer implementations.
Definition EEngineProject.h:6
constexpr ESurfacePhenomenon DELTA_SURFACE_PHENOMENA
Definition surface_optics_fwd.h:48
ESurfacePhenomenon
Available surface phenomena.
Definition surface_optics_fwd.h:16
@ NearDiffuseTransmission
int SurfaceElemental
Definition surface_optics_fwd.h:30
constexpr ESurfacePhenomenon GLOSSY_SURFACE_PHENOMENA
Definition surface_optics_fwd.h:53
constexpr ESurfacePhenomenon DIFFUSE_SURFACE_PHENOMENA
Definition surface_optics_fwd.h:43
constexpr ESurfacePhenomenon ALL_SURFACE_PHENOMENA
Definition surface_optics_fwd.h:38
constexpr SurfaceElemental ALL_SURFACE_ELEMENTALS
Definition surface_optics_fwd.h:58