13 #ifndef smtk_mesh_moab_MergeMeshVertices_h
14 #define smtk_mesh_moab_MergeMeshVertices_h
16 #include "smtk/common/CompilerInformation.h"
18 SMTK_THIRDPARTY_PRE_INCLUDE
19 #include "moab/AdaptiveKDTree.hpp"
20 SMTK_THIRDPARTY_POST_INCLUDE
22 #include "smtk/mesh/core/Handle.h"
40 ::moab::ErrorCode merge_entities(const ::moab::Range& meshsets,
double merge_tol = 1.0e-6);
45 ::moab::ErrorCode find_merged_to(
46 ::moab::EntityHandle& tree_root,
47 ::moab::AdaptiveKDTree& tree,
48 ::moab::Tag merged_to);
51 ::moab::ErrorCode map_dead_to_alive(::moab::Tag merged_to);
54 ::moab::ErrorCode delete_dead_entities(::moab::Tag merged_to);
58 ::moab::ErrorCode correct_vertex_merge(const ::moab::Range& meshsets);
62 ::moab::ErrorCode update_connectivity();
65 ::moab::ErrorCode merge_higher_dimensions(::moab::Range& elems);
70 ::moab::Tag mbMergeTag;
73 ::moab::Range deadEnts;
76 ::moab::Range mergedToVertices;
79 std::map<::moab::EntityHandle, ::moab::EntityHandle> mappingFromDeadToAlive;
81 double mergeTol, mergeTolSq;