RenderMan API
23.0
|
#include <RixBxdfLobe.h>
Classes | |
struct | Bitfield |
union | Converter |
Public Member Functions | |
PRMAN_INLINE | RixBXLobeTraits () |
Constructor; initializes all fields to zero. More... | |
PRMAN_INLINE | RixBXLobeTraits (unsigned serialized) |
Constructor; initializes from serialization as unsigned short. More... | |
PRMAN_INLINE | RixBXLobeTraits (bool discrete, bool solidAngle, bool reflect, bool transmit, unsigned short D, unsigned short S, unsigned short U) |
Constructor; sets all fields. More... | |
PRMAN_INLINE | RixBXLobeTraits (RixBXLobeSampled lobe) |
Constructor; sets all fields from a RixBXLobeSampled struct. More... | |
PRMAN_INLINE bool | GetDiscrete () const |
PRMAN_INLINE bool | GetSolidAngle () const |
PRMAN_INLINE bool | GetReflect () const |
PRMAN_INLINE bool | GetTransmit () const |
PRMAN_INLINE bool | GetContinuation () const |
PRMAN_INLINE unsigned short | GetDiffuse () const |
PRMAN_INLINE unsigned short | GetSpecular () const |
PRMAN_INLINE unsigned short | GetUser () const |
PRMAN_INLINE bool | GetValid () const |
PRMAN_INLINE bool | GetMaxSpecularDepth () const |
PRMAN_INLINE bool | GetMaxDiffuseDepth () const |
PRMAN_INLINE void | SetValid (bool val) |
PRMAN_INLINE void | SetDiscrete (bool val) |
PRMAN_INLINE void | SetSolidAngle (bool val) |
PRMAN_INLINE void | SetReflect (bool val) |
PRMAN_INLINE void | SetTransmit (bool val) |
PRMAN_INLINE void | SetContinuation (bool val) |
PRMAN_INLINE void | SetMaxSpecularDepth (bool val) |
PRMAN_INLINE void | SetMaxDiffuseDepth (bool val) |
PRMAN_INLINE void | SetDiffuse (unsigned short bits) |
PRMAN_INLINE void | SetSpecular (unsigned short bits) |
PRMAN_INLINE void | SetUser (unsigned short bits) |
PRMAN_INLINE void | SetNone () |
Zero all fields. More... | |
PRMAN_INLINE void | SetAll () |
PRMAN_INLINE bool | HasAny () const |
PRMAN_INLINE bool | HasAnyDiffSpec () const |
PRMAN_INLINE bool | HasAnyDiffuse () const |
PRMAN_INLINE bool | HasAnySpecular () const |
PRMAN_INLINE bool | HasAnyUser () const |
Returns true if any user bits are set. More... | |
PRMAN_INLINE unsigned | Serialize () const |
PRMAN_INLINE RixBXLobeTraits const & | operator &= (RixBXLobeTraits const &rhs) |
Bitwise AND all fields with the right-hand-side. More... | |
PRMAN_INLINE RixBXLobeTraits const & | operator|= (RixBXLobeTraits const &rhs) |
Bitwise OR all fields with the right-hand-side. More... | |
This struct represents the characteristics of potentially several lobes of a bxdf in aggregate.
Definition at line 177 of file RixBxdfLobe.h.
PRMAN_INLINE RixBXLobeTraits::RixBXLobeTraits | ( | ) |
Constructor; initializes all fields to zero.
Definition at line 885 of file RixBxdfLobe.h.
PRMAN_INLINE RixBXLobeTraits::RixBXLobeTraits | ( | unsigned | serialized | ) |
Constructor; initializes from serialization as unsigned short.
Definition at line 893 of file RixBxdfLobe.h.
PRMAN_INLINE RixBXLobeTraits::RixBXLobeTraits | ( | bool | discrete, |
bool | solidAngle, | ||
bool | reflect, | ||
bool | transmit, | ||
unsigned short | D, | ||
unsigned short | S, | ||
unsigned short | U | ||
) |
Constructor; sets all fields.
Definition at line 900 of file RixBxdfLobe.h.
|
explicit |
Constructor; sets all fields from a RixBXLobeSampled struct.
Definition at line 924 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetContinuation | ( | ) | const |
Definition at line 1003 of file RixBxdfLobe.h.
PRMAN_INLINE unsigned short RixBXLobeTraits::GetDiffuse | ( | ) | const |
Definition at line 1009 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetDiscrete | ( | ) | const |
Definition at line 979 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetMaxDiffuseDepth | ( | ) | const |
Definition at line 1033 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetMaxSpecularDepth | ( | ) | const |
Definition at line 1027 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetReflect | ( | ) | const |
Definition at line 991 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetSolidAngle | ( | ) | const |
Definition at line 985 of file RixBxdfLobe.h.
PRMAN_INLINE unsigned short RixBXLobeTraits::GetSpecular | ( | ) | const |
Definition at line 1015 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetTransmit | ( | ) | const |
Definition at line 997 of file RixBxdfLobe.h.
PRMAN_INLINE unsigned short RixBXLobeTraits::GetUser | ( | ) | const |
Definition at line 1021 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::GetValid | ( | ) | const |
Returns true if this is a valid sample Note this is different from HasAny because a sample could be valid while HasAny returns false. An example could be a diffuse black bxdf being evaluated: we will not evaluate any lobe because its not necessary, but its nevertheless a valid sample Integrators should use this function to test again invalid samples as opposed to HasAny()
Definition at line 973 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::HasAny | ( | ) | const |
Returns true if any diffuse, specular, or user bits are set, and either the reflect, transmit, or continuation bits are set.
Definition at line 1142 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::HasAnyDiffSpec | ( | ) | const |
Returns true if any diffuse or specular bits are set, and either the reflect, transmit, or continuation bits are set.
Definition at line 1148 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::HasAnyDiffuse | ( | ) | const |
Returns true if any diffuse bits are set, and either the reflect or transmit bits are set.
Definition at line 1156 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::HasAnySpecular | ( | ) | const |
Returns true if any specular bits are set, and either the reflect or transmit bits are set.
Definition at line 1163 of file RixBxdfLobe.h.
PRMAN_INLINE bool RixBXLobeTraits::HasAnyUser | ( | ) | const |
Returns true if any user bits are set.
Definition at line 1170 of file RixBxdfLobe.h.
PRMAN_INLINE RixBXLobeTraits const& RixBXLobeTraits::operator&= | ( | RixBXLobeTraits const & | rhs | ) |
Bitwise AND all fields with the right-hand-side.
PRMAN_INLINE RixBXLobeTraits const & RixBXLobeTraits::operator|= | ( | RixBXLobeTraits const & | rhs | ) |
Bitwise OR all fields with the right-hand-side.
Definition at line 1205 of file RixBxdfLobe.h.
PRMAN_INLINE unsigned RixBXLobeTraits::Serialize | ( | ) | const |
Definition at line 1176 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetAll | ( | ) |
Set all bits to true (except for the discreteSubset and continuationSubset which are both set to zero; use SetDiscrete() / SetContinuation() to explicitly set the discreteSubset and continuationSubset bits).
Definition at line 1126 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetContinuation | ( | bool | val | ) |
Definition at line 1069 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetDiffuse | ( | unsigned short | bits | ) |
Definition at line 1075 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetDiscrete | ( | bool | val | ) |
Definition at line 1045 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetMaxDiffuseDepth | ( | bool | val | ) |
Definition at line 1099 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetMaxSpecularDepth | ( | bool | val | ) |
Definition at line 1093 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetNone | ( | ) |
Zero all fields.
Definition at line 1105 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetReflect | ( | bool | val | ) |
Definition at line 1057 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetSolidAngle | ( | bool | val | ) |
Definition at line 1051 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetSpecular | ( | unsigned short | bits | ) |
Definition at line 1081 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetTransmit | ( | bool | val | ) |
Definition at line 1063 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetUser | ( | unsigned short | bits | ) |
Definition at line 1087 of file RixBxdfLobe.h.
PRMAN_INLINE void RixBXLobeTraits::SetValid | ( | bool | val | ) |
Definition at line 1039 of file RixBxdfLobe.h.