diff options
Diffstat (limited to 'intern/opensubdiv/internal/opensubdiv_evaluator_internal.h')
-rw-r--r-- | intern/opensubdiv/internal/opensubdiv_evaluator_internal.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/intern/opensubdiv/internal/opensubdiv_evaluator_internal.h b/intern/opensubdiv/internal/opensubdiv_evaluator_internal.h index 7c963227d17..392633944c6 100644 --- a/intern/opensubdiv/internal/opensubdiv_evaluator_internal.h +++ b/intern/opensubdiv/internal/opensubdiv_evaluator_internal.h @@ -26,6 +26,7 @@ #include <opensubdiv/far/patchMap.h> #include <opensubdiv/far/patchTable.h> +struct OpenSubdiv_PatchCoord; struct OpenSubdiv_TopologyRefiner; namespace opensubdiv_capi { @@ -114,6 +115,18 @@ class CpuEvalOutputAPI { float face_v, float face_varying[2]); + // Batched evaluation of multiple input coordinates. + + // Evaluate given ptex face at given bilinear coordinate. + // If derivatives are NULL, they will not be evaluated. + // + // NOTE: Output arrays must point to a memory of size float[3]*num_patch_coords. + void evaluatePatchesLimit(const OpenSubdiv_PatchCoord *patch_coords, + const int num_patch_coords, + float *P, + float *dPdu, + float *dPdv); + protected: CpuEvalOutput *implementation_; OpenSubdiv::Far::PatchMap *patch_map_; |