26 #ifndef __GLTF_REFINER_h__
27 #define __GLTF_REFINER_h__
61 const int32 NOT_IN_SUBMESH = -1;
86 bool output_custom_attribs =
false;
88 bool exporting_skin =
false;
90 std::function<exint(exint)> boneCapture_index_to_joint = {};
91 bool blendshape =
false;
99 CachedData* base_shape_cached_data =
nullptr;
126 Refine_Options options,
130 void setAddingSubsequentFrames(
bool use);
134 void animateInstanceXforms(
138 void setBlendShapeInfo(BlendShapeInfo info);
172 struct Attrib_CopyResult
181 template <
typename T,
typename FUNC_CAST>
193 template <
typename T =
void>
199 bool ExportAttribute(
206 GLTF_Primitive& prim,
209 bool addBoneCaptureAttribs(
215 GLTF_ExportRoot &myRoot;
218 std::function<GLTF_Handle(UT_StringHolder, UT_Options &)> myCreateMaterial;
219 const Refine_Options myOptions;
221 CachedData myCachedData;
223 bool myAddingSubsequentFrames;
225 GLTF_BaseErrorManager* myErrorManager;
228 CachedData* myPolygonMeshCachedData;
229 BlendShapeInfo myBlendShapeInfo;
251 template <
typename T>
255 for (
exint idx = 0; idx < tuple_size; idx++)
259 if (
SYSabs(attr_arr[of1] - attr_arr[of2]) > myTol)
268 template <
typename T>
273 int arr_size1 = arr_sizes[pt_1];
274 int arr_size2 = arr_sizes[pt_2];
276 if (arr_size1 != arr_size2)
284 for (
exint arr_idx = 0; arr_idx < arr_size1; arr_idx++)
286 if (
SYSabs(vals[off1+arr_idx] - vals[off2+arr_idx]) > myTol)
295 template <
typename T>
303 template <
typename T>
A reference counter base class for use with UT_IntrusivePtr.
GA_API const UT_StringHolder trans
GLsizei GLenum const void * indices
A mesh of unconnected points.
bool allowThreading() const override
Return true if the refinement allows threaded refinement of primitives.
UT_IntrusivePtr< GLTF_Refiner > GLTF_RefinerHandle
Processes primitives generated by refinement process.
Container for a GU packed primitive.
A map of string to various well defined value types.
An array of numeric values (int32, int64, fpreal16, fpreal32, fpreal64)
getOption("OpenEXR.storage") storage
GLint GLenum GLboolean GLsizei stride