37 #ifndef RixLightFilter_h
38 #define RixLightFilter_h
46 #include "RiTypesHelper.h"
78 int const numSamples,
int const* shadingCtxIndex,
79 RtVector3
const* directions,
float const* distances,
100 void* instanceData,
float* result)
const = 0;
119 void const** result)
const = 0;
134 int const numSamples,
int const* shadingCtxIndex,
135 RtVector3
const* directions,
float const* distances,
137 RtColorRGB* transmissions)
139 PIXAR_ARGUSED(lfCtx);
140 PIXAR_ARGUSED(instanceData);
141 PIXAR_ARGUSED(numSamples);
142 PIXAR_ARGUSED(shadingCtxIndex);
143 PIXAR_ARGUSED(directions);
144 PIXAR_ARGUSED(distances);
145 PIXAR_ARGUSED(incidentLobeSampled);
146 PIXAR_ARGUSED(transmissions);
151 #define RIX_LIGHTFILTERPLUGINCREATE \
152 extern "C" PRMANEXPORT RixLightFilter* CreateRixLightFilter(const char* hint)
154 #define RIX_LIGHTFILTERPLUGINDESTROY \
155 extern "C" PRMANEXPORT void DestroyRixLightFilter(RixLightFilter* modifier)
175 virtual bool IsEnabled(
void const* instance,
void** instanceData)
const = 0;
185 float const** radius = NULL)
const = 0;
187 float const** radius = NULL)
const = 0;
189 float const** radius = NULL)
const = 0;
192 RtMatrix4x4
const** var)
const = 0;
199 RtUString
const fromSpace, RtUString
const toSpace, RtFloat3* var,
200 float* width = NULL)
const = 0;
204 RtUString
const fromSpace, RtUString
const toSpace,
205 RtFloat3
const* srcVar, RtFloat3* dstVar,
float const* srcWidth,
206 float* dstWidth)
const = 0;
216 RtUString
const fromSpace, RtUString
const toSpace,
int numPts,
217 int const* shadingCtxIndex, RtFloat3
const* srcVar, RtFloat3* dstVar,
218 float const* srcWidth,
float* dstWidth)
const = 0;
226 virtual void*
Allocate(
size_t n,
size_t size)
const = 0;
236 T*
New(
size_t nObjs)
const
238 T* mem =
static_cast<T*
>(
Allocate(nObjs,
sizeof(T)));
239 return new (mem) T[nObjs];
258 template <
typename T>
261 if (num == 0)
return NULL;
262 return (T*)m_lfCtx->
Allocate(num,
sizeof(T));
292 void* instanceData)
const = 0;