MeshKit  1.0
arc.hpp
Go to the documentation of this file.
00001 #ifndef ARC_HPP
00002 #define ARC_HPP
00003 
00004 #include <vector>
00005 #include "moab/Core.hpp"
00006 #include "gen.hpp"
00007 #include "moab/Skinner.hpp"
00008 #include "MBTagConventions.hpp"
00009 
00010 
00011 namespace arc {
00012 
00015   moab::ErrorCode orient_edge_with_tri( const moab::EntityHandle edge, 
00016                                     const moab::EntityHandle tri );
00017 // checks for degeneracy of edges in the moab::Range edges and deletes degenerates if found
00018   moab::ErrorCode remove_degenerate_edges( moab::Range &edges, const bool debug );
00019 
00022   moab::ErrorCode remove_opposite_pairs_of_edges( moab::Range &edges, const bool debug );
00023   moab::ErrorCode remove_opposite_pairs_of_edges_fast( moab::Range &edges, const bool debug );
00024 
00025   moab::ErrorCode get_next_oriented_edge( const moab::Range edges, 
00026                                       const moab::EntityHandle edge,
00027                                       moab::EntityHandle &next_edge );
00028 
00029   // Given a range of edges and a vertex, find the edge the contains the
00030   // endpoint. Also return the opposite endpoint of the edge. This checks
00031   // to ensure that only one edge is found.
00032   moab::ErrorCode get_next_edge_and_vert_by_edge( const moab::Range edges_in,
00033                                               const moab::EntityHandle edge_in,
00034                                               const moab::EntityHandle vertex_in,
00035                                               moab::EntityHandle &edge_out,
00036                                               moab::EntityHandle &vertex_out       );
00037 
00038   moab::ErrorCode create_loops_from_oriented_edges_fast( moab::Range edges,
00039                                                 std::vector< std::vector<moab::EntityHandle> > &loops_of_edges,
00040                                                 const bool debug );
00041   moab::ErrorCode create_loops_from_oriented_edges( moab::Range edges,
00042                                                 std::vector< std::vector<moab::EntityHandle> > &loops_of_edges,
00043                                                 const bool debug );
00044 
00045   moab::ErrorCode order_verts_by_edge( moab::Range unordered_edges, std::vector<moab::EntityHandle> &ordered_verts );
00046 
00048   moab::ErrorCode get_meshset( const moab::EntityHandle set, std::vector<moab::EntityHandle> &vec);
00049 
00052   moab::ErrorCode set_meshset( const moab::EntityHandle set, const std::vector<moab::EntityHandle> vec );
00053 
00056   moab::ErrorCode merge_curves(moab::Range curve_sets, const double FACET_TOL,
00057                            moab::Tag idTag, moab::Tag merge_tag, const bool debug );
00058 }
00059 
00060 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines