RixParameterList Class Reference

RixParameterList Class Referenceabstract

#include <RixShading.h>

Public Member Functions

virtual RtInt GetNumParams () const =0
 
virtual RtInt GetParamId (char const *name, RtInt *paramid) const =0
 
virtual RtInt GetParamId (int plistIndex, RtInt *paramid) const =0
 
virtual RtInt GetParamInfo (RtInt paramid, RixSCType *type, RixSCConnectionInfo *cinfo, int *arraylength=NULL) const =0
 
RtInt GetParamInfo (RtInt paramid, RixSCType *type, bool *isconnected, int *arraylength=NULL) const
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RtInt *result) const =0
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RtFloat *result) const =0
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RtColorRGB *result) const =0
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RtFloat3 *result) const =0
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RtMatrix4x4 *result) const =0
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RtConstString *result) const =0
 
virtual RixSCDetail EvalParam (RtInt paramid, RtInt arrayindex, RixLightFilter **result, RtConstPointer *instance) const =0
 

Detailed Description

RixParameterList exposes the non-varying values that are associated with the definition or editing of a shading plugin instance. Parameters arrive via the RenderMan Interface and can be queried through this interface. Values that aren't provided in the parameterlist cannot be queried as the plugin is expected to know its default values.

Member Function Documentation

virtual RixSCDetail RixParameterList::EvalParam ( RtInt  paramid,
RtInt  arrayindex,
RtInt *  result 
) const
pure virtual

EvalParam fills the provided result with the value of the parameter. See GetParamId() for discussion on the nature of paramid. Since all results values are scalar we copy out by value. Caller owns and can overwrite/reuse result.

k_RixSCInvalidDetail is returned if:

  • the parameters isn't present in the RIB stream
  • types don't match or can't be coerced
  • parameter is "networked".. Since varying values aren't supported by this interface no default fill value is passed in.
virtual RtInt RixParameterList::GetParamId ( char const *  name,
RtInt *  paramid 
) const
pure virtual

GetParamId maps a string name to a more efficient integer reference. The resulting paramid may be negative to support dynamic inputs. Non-negative values are indices into the plugin's parameter table, while negative values are interpretted as indices into the parameterlist of a RIB instance. Returns 0 on success, returns nonzero if named parameter is not found.

virtual RtInt RixParameterList::GetParamId ( int  plistIndex,
RtInt *  paramid 
) const
pure virtual

This version of GetParamId maps the parameterlist index (between 0 and GetNumParams()) to a paramId and described above. May be useful when interating over the contents of a parameterlist.

virtual RtInt RixParameterList::GetParamInfo ( RtInt  paramid,
RixSCType *  type,
RixSCConnectionInfo *  cinfo,
int *  arraylength = NULL 
) const
pure virtual

GetParamInfo returns additional details about a parameter. Usually paramid is the index into caller's parameter table. In circumstances where plugin accepts dynamic parameters, the paramid should be obtained via calls to GetParamId.

RtInt RixParameterList::GetParamInfo ( RtInt  paramid,
RixSCType *  type,
bool *  isconnected,
int *  arraylength = NULL 
) const
inline

This version of GetParamInfo is a convenience for use-cases where a bool notion of connection is sufficient.


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