11 #ifndef __CE_OSDPatchEval__
12 #define __CE_OSDPatchEval__
33 swap(myBuffer, o.myBuffer);
34 UTswap(myElemSize, o.myElemSize);
40 return myElemSize ? myBuffer.size() / myElemSize : 0;
53 myElemSize =
sizeof(
T);
54 myBuffer.initFromData(
55 reinterpret_cast<const uint8 *>(src.
data()),
56 src.
size() *
sizeof(
T));
64 namespace CE_OSDPatchEval
CE_API bool evaluate(const CE_OSDRefinement &topo, const CE_OSDEvaluator &eval, const cl::Buffer &coarse, const CE_OSDPatchCoords &patch_coords, const CE_FloatArray *refined_data, cl::Buffer &out, cl::Buffer *du, cl::Buffer *dv)
void initFromArray(const UT_Array< T > &src)
CE_API bool buildPatchCoords(const CE_OSDRefinement &topo, UT_Span< const int > faces, UT_Span< const float > u, UT_Span< const float > v, CE_OSDPatchCoords &patch_coords)
void swap(T &lhs, T &rhs)
CE_API bool refine(const CE_OSDRefinement &topo, const CE_OSDEvaluator &eval, const cl::Buffer &coarse, CE_FloatArray &refined_data)
HUSD_API bool eval(VtValue &val, T &ret_val)
const cl::Buffer & buffer() const
CE_OSDPatchCoords & operator=(CE_OSDPatchCoords &&o) noexcept