38 #ifndef IMPLICITFIELD_H 39 #define IMPLICITFIELD_H 47 #define IMPLICIT_VER 7 103 for (
int i = 0; i < neval; ++i)
106 result += resultstride;
127 for (
int i = 0; i < neval; ++i)
130 result += resultstride;
208 virtual float Eval(
const RtPoint p) = 0;
236 for (
int i = 0; i < neval; ++i)
238 *result = Eval(*p++);
239 result += resultstride;
260 EvalMultiple(neval, result, resultstride, p);
280 GradientEval(result, p);
291 for (
int i = 0; i < neval; ++i)
293 GradientEval(*result++, *p++);
312 GradientEvalMultiple(neval, result, p);
344 virtual void Split(std::vector<ImplicitField*>& children)
384 for (
int i = 0; i < neval; ++i)
386 Motion(*result++, *p++);
404 MotionMultiple(neval, result, p);
414 for (
int i = 0; i < 6; i++)
500 *motioncorners = NULL;
513 #define FIELDCREATE \ 514 extern "C" const PRMANEXPORT int ImplicitFieldVersion = IMPLICIT_VER; \ 515 extern "C" PRMANEXPORT ImplicitField* ImplicitFieldNew( \ 516 int nfloat, const float* float0, const float* float1, \ 517 int nstring, const RtString* string) 519 #define FIELDCREATE_ARGUSED \ 520 PIXAR_ARGUSED(nfloat); \ 521 PIXAR_ARGUSED(float0); \ 522 PIXAR_ARGUSED(float1); \ 523 PIXAR_ARGUSED(nstring); \ 524 PIXAR_ARGUSED(string); virtual void Range(RtInterval result, const RtPoint corners[8], const RtVolumeHandle h)
virtual ImplicitVertexValue * CreateVertexValue(const RtUString name, int nvalue)
virtual void MotionFiltered(RtPoint result, const RtPoint p, const RtPoint dPdu, const RtPoint dPdv, const RtPoint dPdw)
virtual void EvalMultipleFiltered(int neval, float *result, int resultstride, const RtPoint *p, const RtPoint *dPdu, const RtPoint *dPdv, const RtPoint *dPdw)
virtual ~ImplicitVertexValue()
virtual void GetVertexValueMultipleTemporalFiltered(int neval, float *result, int resultstride, const RtPoint *p, const RtPoint *dPdu, const RtPoint *dPdv, const RtPoint *dPdw, const float *time)
virtual void GetVertexValueMultiple(int neval, float *result, int resultstride, const RtPoint *p)
virtual void GetVertexValueMultipleFiltered(int neval, float *result, int resultstride, const RtPoint *p, const RtPoint *dPdu, const RtPoint *dPdv, const RtPoint *dPdw)
virtual void Split(std::vector< ImplicitField *> &children)
virtual void GradientEvalFiltered(RtPoint result, const RtPoint p, const RtPoint dPdu, const RtPoint dPdv, const RtPoint dPdw)
virtual void GradientEvalMultipleFiltered(int neval, RtPoint *result, const RtPoint *p, const RtPoint *dPdu, const RtPoint *dPdv, const RtPoint *dPdw)
virtual size_t MemoryUsage()
virtual void HullCorners(RtPoint **corners, int *ncorners)
virtual void GetVertexValueFiltered(float *result, const RtPoint p, const RtPoint dPdu, const RtPoint dPdv, const RtPoint dPdw)
virtual bool ShouldSplit()
Returns true if the DSO requires splitting into children DSOs.
virtual float MinimumVoxelSize(const RtPoint corners[8])
virtual void EvalMultiple(int neval, float *result, int resultstride, const RtPoint *p)
pxrcore::UString RtUString
virtual float EvalFiltered(const RtPoint p, const RtPoint dPdu, const RtPoint dPdv, const RtPoint dPdw)
virtual void GetVertexValueMultipleTemporal(int neval, float *result, int resultstride, const RtPoint *p, const float *time)
virtual void MotionMultiple(int neval, RtPoint *result, const RtPoint *p)
virtual size_t MemoryUsage()
virtual void GradientEvalMultiple(int neval, RtPoint *result, const RtPoint *p)
virtual void BoxMotion(RtBound result, const RtBound b)
virtual void MotionMultipleFiltered(int neval, RtPoint *result, const RtPoint *p, const RtPoint *dPdu, const RtPoint *dPdv, const RtPoint *dPdw)
virtual void Motion(RtPoint result, const RtPoint p)
virtual void HullCornersMotion(RtPoint *corners, int ncorners, RtPoint **motioncorners, int *nmotioncorners)
virtual void GetVertexValue(float *result, const RtPoint p)=0
virtual void VolumeCompleted(const RtVolumeHandle h)