RenderManAPI  24.0
RixVolumeServices Class Referenceabstract

The RixVolumeServices interface allow the renderer to provide services that are useful for volume integration. More...

#include <RixVolume.h>

Inherits RixInterface.

Public Types

enum  Type {
  k_Float, k_Integer, k_StringV, k_Color,
  k_Normal, k_Vector, k_Point, k_HPoint,
  k_MPoint, k_Matrix
}
 

Public Member Functions

 RixVolumeServices ()
 
virtual void Begin (RixShadingContext const *sCtx)=0
 
virtual void End ()=0
 
virtual int GetDensityRanges (const RtPoint3 &pt0, const RtPoint3 &pt1, float length, float maxDensity, float **dist, float **minDensities, float **maxDensities, float *minTrans, float *maxTrans) const =0
 When invoked on a shading context bound to RiVolume geometry, GetDensityRanges returns information about the minimum and maximum densities encountered on a straight line between two points in the volume. More...
 
virtual RixSCDetail EvalTemporalParam (int paramId, int arrayIndex, float const **result, float const *dflt) const =0
 
virtual RixSCDetail EvalTemporalParam (int paramId, int arrayIndex, RtColorRGB const **result, RtColorRGB const *dflt) const =0
 
virtual RixSCDetail EvalTemporalParam (int paramId, int arrayIndex, RtFloat3 const **result, RtFloat3 const *dflt) const =0
 
virtual RixVolumeAggregateGetAggregate (RtUString const name, int numRays, RtRayGeometry const *rays, RtUString const subset=US_NULL, RtUString const excludeSubset=US_NULL) const =0
 
virtual bool HasAggregate (RtUString const name, bool &hasMatte) const =0
 
virtual int GetVersion () const
 Get the version number of this interface. More...
 

Protected Member Functions

 ~RixVolumeServices () override
 

Protected Attributes

RixShadingContext const * shadingCtx
 
int m_version
 Version number of this interface. More...
 

Detailed Description

The RixVolumeServices interface allow the renderer to provide services that are useful for volume integration.

Currently, these include services that bound the minimum and maximum density of a RiVolume.

Member Enumeration Documentation

◆ Type

enum RixInterface::Type
inherited
Enumerator
k_Float 
k_Integer 
k_StringV 
k_Color 
k_Normal 
k_Vector 
k_Point 
k_HPoint 
k_MPoint 
k_Matrix 

Constructor & Destructor Documentation

◆ RixVolumeServices()

RixVolumeServices::RixVolumeServices ( )
inline

◆ ~RixVolumeServices()

RixVolumeServices::~RixVolumeServices ( )
inlineoverrideprotected

Member Function Documentation

◆ Begin()

virtual void RixVolumeServices::Begin ( RixShadingContext const *  sCtx)
pure virtual

◆ End()

virtual void RixVolumeServices::End ( )
pure virtual

◆ EvalTemporalParam() [1/3]

virtual RixSCDetail RixVolumeServices::EvalTemporalParam ( int  paramId,
int  arrayIndex,
float const **  result,
float const *  dflt 
) const
pure virtual

◆ EvalTemporalParam() [2/3]

virtual RixSCDetail RixVolumeServices::EvalTemporalParam ( int  paramId,
int  arrayIndex,
RtColorRGB const **  result,
RtColorRGB const *  dflt 
) const
pure virtual

◆ EvalTemporalParam() [3/3]

virtual RixSCDetail RixVolumeServices::EvalTemporalParam ( int  paramId,
int  arrayIndex,
RtFloat3 const **  result,
RtFloat3 const *  dflt 
) const
pure virtual

◆ GetAggregate()

virtual RixVolumeAggregate* RixVolumeServices::GetAggregate ( RtUString const  name,
int  numRays,
RtRayGeometry const *  rays,
RtUString const  subset = US_NULL,
RtUString const  excludeSubset = US_NULL 
) const
pure virtual

◆ GetDensityRanges()

virtual int RixVolumeServices::GetDensityRanges ( const RtPoint3 pt0,
const RtPoint3 pt1,
float  length,
float  maxDensity,
float **  dist,
float **  minDensities,
float **  maxDensities,
float *  minTrans,
float *  maxTrans 
) const
pure virtual

When invoked on a shading context bound to RiVolume geometry, GetDensityRanges returns information about the minimum and maximum densities encountered on a straight line between two points in the volume.

pt0 and pt1 are points in the RiVolume that must be in UVW space. length is the distance between the two points; this can be measured in any convenient space. maxDensity is a value that overrides the actual maximum density reported by the volume (the minimum of both will be used).

The return value is the number of ranges that divide the interval, implicitly starting at the first point. The output arrays are allocated by the shading context, and are all sized to the number of return ranges. dist contains the endpoint of each interval, relative to the input length. minDensities and maxDensities contain the minimum and maximum densities of each interval. minTrans and maxTrans contain lower and upper bounds on the transmissivity over the entire interval.

◆ GetVersion()

virtual int RixInterface::GetVersion ( ) const
inlinevirtualinherited

Get the version number of this interface.

Different interfaces might have different version numbers in a given release.

References RixInterface::m_version.

◆ HasAggregate()

virtual bool RixVolumeServices::HasAggregate ( RtUString const  name,
bool &  hasMatte 
) const
pure virtual

Member Data Documentation

◆ m_version

int RixInterface::m_version
protectedinherited

Version number of this interface.

Referenced by RixInterface::GetVersion().

◆ shadingCtx

RixShadingContext const* RixVolumeServices::shadingCtx
protected

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