moab
|
00001 #ifndef SPHERE_DECOMP_HPP 00002 #define SPHERE_DECOMP_HPP 00003 00004 #include "moab/Interface.hpp" 00005 00006 class SphereDecomp 00007 { 00008 public: 00009 SphereDecomp(moab::Interface *impl); 00010 00011 moab::ErrorCode build_sphere_mesh(const char *sphere_radii_tag_name, 00012 moab::EntityHandle *hex_set = NULL); 00013 00014 private: 00015 00017 moab::ErrorCode compute_nodes(const int dim); 00018 00021 moab::ErrorCode build_hexes(std::vector<moab::EntityHandle> &sphere_hexes, 00022 std::vector<moab::EntityHandle> &interstic_hexes); 00023 00025 moab::ErrorCode subdivide_tet(moab::EntityHandle tet, 00026 std::vector<moab::EntityHandle> &sphere_hexes, 00027 std::vector<moab::EntityHandle> &interstic_hexes); 00028 00031 moab::ErrorCode retrieve_subdiv_verts(moab::EntityHandle tet, moab::EntityHandle this_ent, 00032 const moab::EntityHandle *tet_conn, 00033 const int dim, moab::EntityHandle *subdiv_verts); 00034 00036 moab::Tag sphereRadiiTag; 00037 00039 moab::Tag subdivVerticesTag; 00040 00042 moab::Interface *mbImpl; 00043 00044 }; 00045 #endif