|
| template<typename PA , typename RESOLVER , typename PTARRAY > |
| void | surfaceInterpOffsetsFromResolver (UT_IntArray &primptstarts, PTARRAY &ptcapture, UT_FloatArray &ptweights, const PA &positions, const GU_Detail &surfacegdp, const RESOLVER &resolve) |
| |
| template<typename PA , typename PTARRAY > |
| void | surfaceInterpOffsets (UT_IntArray &primptstarts, PTARRAY &ptcapture, UT_FloatArray &ptweights, const PA &positions, const GU_Detail &surfacegdp, const GU_RayIntersect &rayintersect) |
| |
| GU_API void | computeFrames (const GU_Detail &gdp, const GA_ROHandleV3 &poshandle, GA_AttributeUPtr &nmlowner, GA_AttributeUPtr &tanowner) |
| |
| template<typename OUTPOS , typename INPOS , typename DEFRESTPOS , typename DEFANIMPOS > |
| void | deform (OUTPOS &newposdata, const INPOS &points, const DEFRESTPOS &constrestpos, const DEFANIMPOS &constanimpos, const GU_Detail &defgdp, const GA_ROHandleV3 restnmlattrib, const GA_ROHandleV3 resttanattrib, const GA_ROHandleV3 animnmlattrib, const GA_ROHandleV3 animtanattrib, const UT_IntArray &primptstarts, const GA_OffsetArray &ptoffsets, const UT_FloatArray &ptweights) |
| |
| GU_API void | computeWeightedXform (CE_Context &context, bool recompile, int nprims, CE_Array< float > &surfacexform, const cl::Buffer &surfacePtStarts, const cl::Buffer &surfacePtIndices, const cl::Buffer &surfacePtWeights, const cl::Buffer &restPos, const cl::Buffer &restNml, const cl::Buffer &restTan, const cl::Buffer &animPos, const cl::Buffer &animNml, const cl::Buffer &animTan, const cl::Buffer *grp=nullptr) |
| |
| GU_API void | computeXform (CE_Context &context, bool recompile, int nprims, CE_Array< float > &surfacexform, const cl::Buffer &restPos, const cl::Buffer &restNml, const cl::Buffer &restTan, const cl::Buffer &animPos, const cl::Buffer &animNml, const cl::Buffer &animTan, const cl::Buffer *grp=nullptr) |
| |
| GU_API void | indexedXform (CE_Context &context, bool recompile, int npts, const cl::Buffer &outPos, const cl::Buffer &inPos, const cl::Buffer &surfacexform, const cl::Buffer &pointPrimsIndex, const cl::Buffer &pointPrims, const cl::Buffer *grp=nullptr, const cl::Buffer *mask=nullptr) |
| |
| GU_API void | xform (CE_Context &context, bool recompile, int npts, const cl::Buffer &outPos, const cl::Buffer &inPos, const cl::Buffer &surfacexform, const cl::Buffer *grp=nullptr) |
| |
template<typename PA , typename RESOLVER , typename PTARRAY >
| void GU_SurfaceDeform::surfaceInterpOffsetsFromResolver |
( |
UT_IntArray & |
primptstarts, |
|
|
PTARRAY & |
ptcapture, |
|
|
UT_FloatArray & |
ptweights, |
|
|
const PA & |
positions, |
|
|
const GU_Detail & |
surfacegdp, |
|
|
const RESOLVER & |
resolve |
|
) |
| |
As surfaceInterpOffsets(), but the caller decides which intersector each position is projected against: resolve(i, pos, mininfo) fills in mininfo, leaving it untouched to drop position i from the capture. Used to restrict a capture to the surface pieces matching the position's id.
ptcapture picks its own point form: a GA_OffsetArray takes the surface offsets, a UT_IntArray the point indices the GPU kernels index by.
Definition at line 95 of file GU_SurfaceDeform.h.