37 #ifndef RixLightFilter_h 38 #define RixLightFilter_h 77 int const numSamples,
int const* shadingCtxIndex,
78 RtVector3 const* directions,
float const* distances,
113 void const** result)
const = 0;
124 #define RIX_LIGHTFILTERPLUGINCREATE \ 125 extern "C" PRMANEXPORT RixLightFilter* CreateRixLightFilter(const char* hint) 127 #define RIX_LIGHTFILTERPLUGINDESTROY \ 128 extern "C" PRMANEXPORT void DestroyRixLightFilter(RixLightFilter* modifier) 158 float const** radius = NULL)
const = 0;
160 float const** radius = NULL)
const = 0;
162 float const** radius = NULL)
const = 0;
173 float* width = NULL)
const = 0;
179 float* dstWidth)
const = 0;
191 float const* srcWidth,
float* dstWidth)
const = 0;
199 virtual void* Allocate(
size_t n,
size_t size)
const = 0;
209 T*
New(
size_t nObjs)
const 211 T* mem =
static_cast<T*
>(Allocate(nObjs,
sizeof(T)));
212 return new (mem) T[nObjs];
231 template <
typename T>
234 if (num == 0)
return NULL;
235 return (T*)m_lfCtx->Allocate(num,
sizeof(T));
virtual void Filter(RixLightFilterContext const *lfCtx, RtPointer instanceData, int const numSamples, int const *shadingCtxIndex, RtVector3 const *directions, float const *distances, float const *lightPdfsDirect, RixBXLobeWeights *contribution)=0
The amount by which a light's radiance is multiplied.
virtual ~RixLightFilter()
FilterRadianceModifierProperty
virtual RixSCDetail GetProperty(RtConstPointer instanceData, LightFilterProperty prop, void const **result) const =0
Allocator(RixLightFilterContext const *lfCtx)
T * New(size_t nObjs) const
virtual ~RixLightFilterContext()
pxrcore::UString RtUString
#define k_RixShadingVersion
pxrcore::Matrix4x4 RtMatrix4x4
void const * RtConstPointer
virtual bool GetRadianceModifier(FilterRadianceModifierProperty property, RixLightFilterContext const *lfCtx, RtConstPointer instanceData, float *result) const =0
virtual int GetInterface() const override