RenderMan API  23.0
RixBXLobeTraits Struct Reference

#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...
 

Detailed Description

This struct represents the characteristics of potentially several lobes of a bxdf in aggregate.

Definition at line 177 of file RixBxdfLobe.h.

Constructor & Destructor Documentation

◆ RixBXLobeTraits() [1/4]

PRMAN_INLINE RixBXLobeTraits::RixBXLobeTraits ( )

Constructor; initializes all fields to zero.

Definition at line 885 of file RixBxdfLobe.h.

◆ RixBXLobeTraits() [2/4]

PRMAN_INLINE RixBXLobeTraits::RixBXLobeTraits ( unsigned  serialized)

Constructor; initializes from serialization as unsigned short.

Definition at line 893 of file RixBxdfLobe.h.

◆ RixBXLobeTraits() [3/4]

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.

◆ RixBXLobeTraits() [4/4]

PRMAN_INLINE RixBXLobeTraits::RixBXLobeTraits ( RixBXLobeSampled  lobe)
explicit

Constructor; sets all fields from a RixBXLobeSampled struct.

Definition at line 924 of file RixBxdfLobe.h.

Member Function Documentation

◆ GetContinuation()

PRMAN_INLINE bool RixBXLobeTraits::GetContinuation ( ) const

Definition at line 1003 of file RixBxdfLobe.h.

◆ GetDiffuse()

PRMAN_INLINE unsigned short RixBXLobeTraits::GetDiffuse ( ) const

Definition at line 1009 of file RixBxdfLobe.h.

◆ GetDiscrete()

PRMAN_INLINE bool RixBXLobeTraits::GetDiscrete ( ) const

Definition at line 979 of file RixBxdfLobe.h.

◆ GetMaxDiffuseDepth()

PRMAN_INLINE bool RixBXLobeTraits::GetMaxDiffuseDepth ( ) const

Definition at line 1033 of file RixBxdfLobe.h.

◆ GetMaxSpecularDepth()

PRMAN_INLINE bool RixBXLobeTraits::GetMaxSpecularDepth ( ) const

Definition at line 1027 of file RixBxdfLobe.h.

◆ GetReflect()

PRMAN_INLINE bool RixBXLobeTraits::GetReflect ( ) const

Definition at line 991 of file RixBxdfLobe.h.

◆ GetSolidAngle()

PRMAN_INLINE bool RixBXLobeTraits::GetSolidAngle ( ) const

Definition at line 985 of file RixBxdfLobe.h.

◆ GetSpecular()

PRMAN_INLINE unsigned short RixBXLobeTraits::GetSpecular ( ) const

Definition at line 1015 of file RixBxdfLobe.h.

◆ GetTransmit()

PRMAN_INLINE bool RixBXLobeTraits::GetTransmit ( ) const

Definition at line 997 of file RixBxdfLobe.h.

◆ GetUser()

PRMAN_INLINE unsigned short RixBXLobeTraits::GetUser ( ) const

Definition at line 1021 of file RixBxdfLobe.h.

◆ GetValid()

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.

◆ HasAny()

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.

◆ HasAnyDiffSpec()

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.

◆ HasAnyDiffuse()

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.

◆ HasAnySpecular()

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.

◆ HasAnyUser()

PRMAN_INLINE bool RixBXLobeTraits::HasAnyUser ( ) const

Returns true if any user bits are set.

Definition at line 1170 of file RixBxdfLobe.h.

◆ operator &=()

PRMAN_INLINE RixBXLobeTraits const& RixBXLobeTraits::operator&= ( RixBXLobeTraits const &  rhs)

Bitwise AND all fields with the right-hand-side.

◆ operator|=()

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.

◆ Serialize()

PRMAN_INLINE unsigned RixBXLobeTraits::Serialize ( ) const

Definition at line 1176 of file RixBxdfLobe.h.

◆ SetAll()

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.

◆ SetContinuation()

PRMAN_INLINE void RixBXLobeTraits::SetContinuation ( bool  val)

Definition at line 1069 of file RixBxdfLobe.h.

◆ SetDiffuse()

PRMAN_INLINE void RixBXLobeTraits::SetDiffuse ( unsigned short  bits)

Definition at line 1075 of file RixBxdfLobe.h.

◆ SetDiscrete()

PRMAN_INLINE void RixBXLobeTraits::SetDiscrete ( bool  val)

Definition at line 1045 of file RixBxdfLobe.h.

◆ SetMaxDiffuseDepth()

PRMAN_INLINE void RixBXLobeTraits::SetMaxDiffuseDepth ( bool  val)

Definition at line 1099 of file RixBxdfLobe.h.

◆ SetMaxSpecularDepth()

PRMAN_INLINE void RixBXLobeTraits::SetMaxSpecularDepth ( bool  val)

Definition at line 1093 of file RixBxdfLobe.h.

◆ SetNone()

PRMAN_INLINE void RixBXLobeTraits::SetNone ( )

Zero all fields.

Definition at line 1105 of file RixBxdfLobe.h.

◆ SetReflect()

PRMAN_INLINE void RixBXLobeTraits::SetReflect ( bool  val)

Definition at line 1057 of file RixBxdfLobe.h.

◆ SetSolidAngle()

PRMAN_INLINE void RixBXLobeTraits::SetSolidAngle ( bool  val)

Definition at line 1051 of file RixBxdfLobe.h.

◆ SetSpecular()

PRMAN_INLINE void RixBXLobeTraits::SetSpecular ( unsigned short  bits)

Definition at line 1081 of file RixBxdfLobe.h.

◆ SetTransmit()

PRMAN_INLINE void RixBXLobeTraits::SetTransmit ( bool  val)

Definition at line 1063 of file RixBxdfLobe.h.

◆ SetUser()

PRMAN_INLINE void RixBXLobeTraits::SetUser ( unsigned short  bits)

Definition at line 1087 of file RixBxdfLobe.h.

◆ SetValid()

PRMAN_INLINE void RixBXLobeTraits::SetValid ( bool  val)

Definition at line 1039 of file RixBxdfLobe.h.


The documentation for this struct was generated from the following file: