RenderMan  26.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RixBXLobeWeights Struct Reference

#include <RixBxdfLobe.h>

Public Member Functions

PRMAN_INLINE RixBXLobeWeights ()
 Constructor; sets the number of diffuse, specular, and user lobes to zero. More...
 
PRMAN_INLINE RixBXLobeWeights (int numPoints, int numDiffuseLobes, int numSpecularLobes, int numUserLobes, RtColorRGB *diffuseLobes[], RtColorRGB *specularLobes[], RtColorRGB *userLobes[], int offset=0)
 Constructor; sets all fields to the values given. More...
 
PRMAN_INLINE RixBXLobeWeights (RixBXLobeWeights const &that)
 Copy constructor. More...
 
PRMAN_INLINE RixBXLobeWeightsoperator= (RixBXLobeWeights const &that)
 Assignment. More...
 
PRMAN_INLINE RtColorRGB const * GetDiffuseLobe (int i) const
 
PRMAN_INLINE RtColorRGB const * GetSpecularLobe (int i) const
 
PRMAN_INLINE RtColorRGB const * GetUserLobe (int i) const
 
PRMAN_INLINE RtColorRGB * GetDiffuseLobe (int i)
 
PRMAN_INLINE RtColorRGB * GetSpecularLobe (int i)
 
PRMAN_INLINE RtColorRGB * GetUserLobe (int i)
 
PRMAN_INLINE int GetNumPoints () const
 
PRMAN_INLINE void SetNumPoints (int numPoints)
 
PRMAN_INLINE int GetOffset () const
 
PRMAN_INLINE void SetOffset (int offset)
 
PRMAN_INLINE RixBXLobeTraits GetActiveLobeTraits () const
 
PRMAN_INLINE void SetActiveLobeTraits (RixBXLobeTraits lobes)
 
PRMAN_INLINE void AddActiveLobeTraits (RixBXLobeTraits lobes)
 
PRMAN_INLINE int GetNumDiffuseLobes () const
 
PRMAN_INLINE int GetNumSpecularLobes () const
 
PRMAN_INLINE int GetNumUserLobes () const
 
PRMAN_INLINE RtColorRGB * AddActiveLobe (RixBXLobeSampled lobe, bool doInitializeWeights=true)
 Add a particular lobe to the set of active lobes, and also optionally zero out all of the weights. More...
 
PRMAN_INLINE void GetActiveLobes (RixBXActiveLobeWeights &r) const
 Return just the active lobes in the provided RixBXActiveLobeWeights. More...
 
PRMAN_INLINE void GetActiveLobesIntersection (RixBXLobeWeights const &rhs, RixBXActiveLobeWeights &activeLhs, RixBXActiveLobeWeights &activeRhs) const
 Return the intersection of the active lobes for both this and another RixBXLobeWeights. More...
 
PRMAN_INLINE void CopyWeightAtIndex (int index, RixBXActiveLobeWeights const &src, bool includeUserLobes=false)
 
PRMAN_INLINE void AddWeightAtIndex (int index, RixBXActiveLobeWeights const &src, bool includeUserLobes=false)
 

Constructor & Destructor Documentation

PRMAN_INLINE RixBXLobeWeights::RixBXLobeWeights ( )

Constructor; sets the number of diffuse, specular, and user lobes to zero.

PRMAN_INLINE RixBXLobeWeights::RixBXLobeWeights ( int  numPoints,
int  numDiffuseLobes,
int  numSpecularLobes,
int  numUserLobes,
RtColorRGB *  diffuseLobes[],
RtColorRGB *  specularLobes[],
RtColorRGB *  userLobes[],
int  offset = 0 
)

Constructor; sets all fields to the values given.

PRMAN_INLINE RixBXLobeWeights::RixBXLobeWeights ( RixBXLobeWeights const &  that)

Copy constructor.

Member Function Documentation

PRMAN_INLINE RtColorRGB * RixBXLobeWeights::AddActiveLobe ( RixBXLobeSampled  lobe,
bool  doInitializeWeights = true 
)

Add a particular lobe to the set of active lobes, and also optionally zero out all of the weights.

Returns a pointer into the lobe weights.

References RixBXLobeSampled::GetDiffuse(), RixBXLobeTraits::GetDiffuse(), RixBXLobeSampled::GetLpeId(), RixBXLobeTraits::GetSpecular(), RixBXLobeSampled::GetUser(), RixBXLobeTraits::GetUser(), and RixBXLobeSampled::GetValid().

PRMAN_INLINE void RixBXLobeWeights::AddActiveLobeTraits ( RixBXLobeTraits  lobes)
PRMAN_INLINE void RixBXLobeWeights::GetActiveLobes ( RixBXActiveLobeWeights r) const
PRMAN_INLINE void RixBXLobeWeights::GetActiveLobesIntersection ( RixBXLobeWeights const &  rhs,
RixBXActiveLobeWeights activeLhs,
RixBXActiveLobeWeights activeRhs 
) const

Return the intersection of the active lobes for both this and another RixBXLobeWeights.

References RixBXLobeTraits::GetDiffuse(), RixBXLobeTraits::GetSpecular(), RixBXLobeTraits::GetUser(), and RixFindFirstSetBit().

PRMAN_INLINE RixBXLobeTraits RixBXLobeWeights::GetActiveLobeTraits ( ) const
PRMAN_INLINE RtColorRGB const * RixBXLobeWeights::GetDiffuseLobe ( int  i) const
PRMAN_INLINE RtColorRGB * RixBXLobeWeights::GetDiffuseLobe ( int  i)
PRMAN_INLINE int RixBXLobeWeights::GetNumDiffuseLobes ( ) const
PRMAN_INLINE int RixBXLobeWeights::GetNumPoints ( ) const
PRMAN_INLINE int RixBXLobeWeights::GetNumSpecularLobes ( ) const
PRMAN_INLINE int RixBXLobeWeights::GetNumUserLobes ( ) const
PRMAN_INLINE int RixBXLobeWeights::GetOffset ( ) const
PRMAN_INLINE RtColorRGB const * RixBXLobeWeights::GetSpecularLobe ( int  i) const
PRMAN_INLINE RtColorRGB * RixBXLobeWeights::GetSpecularLobe ( int  i)
PRMAN_INLINE RtColorRGB const * RixBXLobeWeights::GetUserLobe ( int  i) const
PRMAN_INLINE RtColorRGB * RixBXLobeWeights::GetUserLobe ( int  i)
PRMAN_INLINE RixBXLobeWeights & RixBXLobeWeights::operator= ( RixBXLobeWeights const &  that)

Assignment.

PRMAN_INLINE void RixBXLobeWeights::SetActiveLobeTraits ( RixBXLobeTraits  lobes)
PRMAN_INLINE void RixBXLobeWeights::SetNumPoints ( int  numPoints)
PRMAN_INLINE void RixBXLobeWeights::SetOffset ( int  offset)

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