7 #ifndef VOLUMETRIC_HANDLER_H
8 #define VOLUMETRIC_HANDLER_H
65 const int illuminate(LWItemID light,
const LWDVector position, LWDVector direction, LWDVector color)
const
67 return access->illuminate(light, position, direction, color);
70 const double rayTrace(
const LWDVector position,
const LWDVector direction, LWDVector color)
const
72 return access->rayTrace(position, direction, color);
75 const double rayCast(
const LWDVector position,
const LWDVector direction)
const
77 return access->rayCast(position, direction);
82 return access->rayShade(position, direction, &shaderaccess);
85 const double rayTraceMode(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta,
const int rtmode )
const
87 return access->rayTraceMode(position, direction, color, eta, rtmode);
90 const double rayTraceReflection(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
95 const double rayTraceRefraction(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
100 const double rayTraceDistance(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
105 const double rayTraceDissolve(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
110 const double rayTraceShadow(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
115 const double rayTraceOcclusion(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
120 const double rayTraceBackdrop(
const LWDVector position,
const LWDVector direction, LWDVector color,
const double eta )
const
127 return access->illuminateSample(light, position, direction, &sampler, &data);
152 virtual unsigned int Flags() {
return 0;}
159 template <
class T,
int min,
int max>
168 static int Activate (
int version, GlobalFunc *global, LWInstance inst,
void *serverData)
172 if ( version != LWVOLUMETRIC_VERSION )
return AFUNC_BADVERSION;
176 LWVolumetricHandler *plugin =
static_cast<LWVolumetricHandler *
>(inst);
181 plugin->evaluate = VolumetricAdaptor::Evaluate;
182 plugin->flags = VolumetricAdaptor::Flags;
186 catch (std::exception &e)
194 static double Evaluate (LWInstance instance, LWVolumeAccess *lw_voa)
198 T *plugin = (T *) instance;
201 catch (std::exception &e)
208 static unsigned int Flags (LWInstance instance)
212 T *plugin = (T *) instance;
213 return plugin->Flags();
215 catch (std::exception &e)
241 #endif // VOLUMETRIC_HANDLER_H