15#ifndef DRACO_MESH_MESH_SPLITTER_H_
16#define DRACO_MESH_MESH_SPLITTER_H_
23#ifdef DRACO_TRANSCODER_SUPPORTED
35 typedef std::vector<std::unique_ptr<Mesh>> MeshVector;
44 void SetPreserveMaterials(
bool flag) { preserve_materials_ = flag; }
55 void SetRemoveUnusedMaterialIndices(
bool flag) {
56 remove_unused_material_indices_ = flag;
64 void SetPreserveMeshFeatures(
bool flag) { preserve_mesh_features_ = flag; }
73 StatusOr<MeshVector> SplitMesh(
const Mesh &mesh, uint32_t split_attribute_id);
79 StatusOr<MeshVector> SplitMeshToComponents(
80 const Mesh &mesh,
const MeshConnectedComponents &connected_components);
85 std::vector<int> att_id_map;
86 std::vector<int> num_sub_mesh_elements;
87 bool split_by_materials =
false;
90 template <
typename BuilderT>
91 StatusOr<MeshVector> SplitMeshInternal(
const Mesh &mesh,
92 int split_attribute_id);
94 StatusOr<MeshVector> FinalizeMeshes(
const Mesh &mesh,
95 const WorkData &work_data,
96 MeshVector out_meshes)
const;
98 bool preserve_materials_;
99 bool remove_unused_material_indices_;
100 bool preserve_mesh_features_;
102 template <
typename BuilderT>
103 friend class MeshSplitterInternal;
Definition attribute_octahedron_transform.cc:21