MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Go to the source code of this file.
Functions | |
int | main () |
int main | ( | ) |
Definition at line 37 of file test_adj.cpp.
References moab::Range::begin(), CHECK_EQUAL, CHECK_ERR, moab::CREATE_HANDLE(), moab::Range::end(), moab::error(), ErrorCode, filename, moab::Interface::get_adjacencies(), moab::Interface::get_connectivity(), moab::Interface::get_entities_by_dimension(), moab::ID_FROM_HANDLE(), iface, moab::Interface::load_mesh(), MB_START_ID, and MBQUAD.
{ Interface* iface = new Core; std::string filename; #ifdef MOAB_HAVE_HDF5 filename = TestDir + "unittest/testquad-cyl.h5m"; #else filename = TestDir + "unittest/hexes_mixed.vtk"; #endif ErrorCode err; err = iface->load_mesh( filename.c_str() );CHECK_ERR( err ); Range quads, verts; err = iface->get_entities_by_dimension( 0, 0, verts );CHECK_ERR( err ); err = iface->get_entities_by_dimension( 0, 2, quads );CHECK_ERR( err ); for( Range::iterator it = verts.begin(); it != verts.end(); it++ ) std::cout << "verts[" << ( *it - *verts.begin() ) << "] = " << *it << std::endl; std::vector< EntityHandle > conn; for( Range::iterator it = quads.begin(); it != quads.end(); it++ ) { conn.clear(); err = iface->get_connectivity( &*it, 1, conn );CHECK_ERR( err ); std::cout << "quads[" << ( *it - *quads.begin() ) << "] = " << *it << " :: conn = [" << conn[0] << ", " << conn[1] << ", " << conn[2] << ", " << conn[3] << "]" << std::endl; } std::vector< EntityHandle > nodes; int error; EntityHandle h = CREATE_HANDLE( MBQUAD, MB_START_ID, error ); CHECK_EQUAL( 0, error ); std::cout << "h = " << h << std::endl; err = iface->get_adjacencies( &h, 1, 0, true, nodes );CHECK_ERR( err ); for( int i = 0; i < (int)nodes.size(); i++ ) std::cout << "nodes[" << i << "] = " << nodes[i] << " "; std::cout << std::endl; std::vector< EntityHandle > edgs; err = iface->get_adjacencies( &h, 1, 1, true, edgs );CHECK_ERR( err ); for( int i = 0; i < (int)edgs.size(); i++ ) std::cout << "edgs[" << i << "] = " << edgs[i] << " "; std::cout << std::endl; // faces to nodes for( unsigned int i = 0; i < edgs.size(); i++ ) { nodes.clear(); err = iface->get_adjacencies( &edgs[i], 1, 0, true, nodes );CHECK_ERR( err ); std::cout << "edge " << ID_FROM_HANDLE( edgs[i] ) << std::endl; std::cout << "nodes = "; for( unsigned int j = 0; j < nodes.size(); j++ ) std::cout << nodes[j] << " "; std::cout << std::endl; } delete iface; return 0; }