|
virtual bool | IsEnabled (void const *instance, void **instanceData) const =0 |
| Determine whether or not the given instance of a light filter is active. More...
|
|
virtual void | GetBuiltinVar (RixShadingContext::BuiltinVar, int const **var) const =0 |
| Retrieve built-in variables from the underlying shading context. More...
|
|
virtual void | GetBuiltinVar (RixShadingContext::BuiltinVar, float const **var) const =0 |
|
virtual void | GetBuiltinVar (RixShadingContext::BuiltinVar, RtFloat3 const **var) const =0 |
|
virtual void | GetBuiltinVar (RixShadingContext::BuiltinVar, RixLPEState *const **var) const =0 |
|
virtual RixSCDetail | GetPrimVar (RtUString const name, float fill, float const **var, float const **radius=NULL) const =0 |
| Retrieve primitive variables from the underlying shading context. More...
|
|
virtual RixSCDetail | GetPrimVar (RtUString const name, RtFloat2 fill, RtFloat2 const **var, float const **radius=NULL) const =0 |
|
virtual RixSCDetail | GetPrimVar (RtUString const name, RtFloat3 fill, RtFloat3 const **var, float const **radius=NULL) const =0 |
|
virtual RixSCDetail | GetPrimVar (RtUString const name, RtUString const **var) const =0 |
|
virtual RixSCDetail | GetPrimVar (RtUString const name, RtMatrix4x4 const &fill, RtMatrix4x4 const **var) const =0 |
|
virtual int | Transform (RixShadingContext::TransformInterpretation interp, RtUString const fromSpace, RtUString const toSpace, RtFloat3 *var, float *width=NULL) const =0 |
| Transform an array of RtFloat3 (and optional width) the same size as the numPts in the RixLightFilterContext. More...
|
|
virtual int | Transform (RixShadingContext::TransformInterpretation interp, RtUString const fromSpace, RtUString const toSpace, RtFloat3 const *srcVar, RtFloat3 *dstVar, float const *srcWidth, float *dstWidth) const =0 |
|
virtual int | Transform (RixShadingContext::TransformInterpretation interp, RtUString const fromSpace, RtUString const toSpace, int numPts, int const *shadingCtxIndex, RtFloat3 const *srcVar, RtFloat3 *dstVar, float const *srcWidth, float *dstWidth) const =0 |
| Transform an array of RtFloat3 (and optional width) of size numPts, with a shadingCtxIndex array of that size. More...
|
|
virtual void * | Allocate (size_t n, size_t size) const =0 |
| Allocate: fast memory allocation support from a memory pool tailored to light modifier plugins. More...
|
|
template<class T > |
T * | New (size_t nObjs) const |
| New is a utility (fully inlined) non-virtual method to assist with tedious memory allocation tasks. More...
|
|
virtual RixShadingContext * | CreateMutableContext (RixLightFilter const *filter, void *instanceData) const =0 |
| Creates a mutable shading context that can be used to re-evaluate connected inputs to the lightfilter by invoking RixShadingContext::EvalParam(). More...
|
|
virtual void | EndMutableContext (RixShadingContext *ctx) const =0 |
| Terminates the mutable shading context created by CreateMutableContext(). More...
|
|
virtual RixLight * | GetCurrentLight () const =0 |
| Get the current light associated with the context of execution. More...
|
|
virtual RixInterface * | GetRixInterface (RixInterfaceId id) const =0 |
| Get the specified interface from this context. More...
|
|
The RixLightFilterContext provides limited access to data from the shading context associated with a light filter invocation.
Pattern generation is not supported (EvalParam is not present). Primvars and built-in vars may be accessed and transformed. The shadingCtxIndex parameter to Filter() should be used to index into these arrays retrieved from the light filter context. A special form of the Transform() call (which takes the shadingCtxIndex) is provided that does this indexing automatically.
Creates a mutable shading context that can be used to re-evaluate connected inputs to the lightfilter by invoking RixShadingContext::EvalParam().
This is typically done after changing builtins of the shading context with RixShadingContext::SetBuiltinVar(). The filter and instanceData inputs must be those associated with the lightfilter associated with the inputs. The shading context returned by this method must be terminated with a call to EndMutableContext().
Patterns that execute as a result of EvalParam() calls on this mutable shading context will execute with object space being the space of the geometry to which the lightfilter is bound, not the space of the lightfilter itself, because the lightfilter transform is only available via the RixLightFilterContext::Transform() methods - which aren't available to the upstream patterns.