19 const char*
ent_names[] = {
"Vertex",
"Edge",
"Face",
"Region" };
21 int main(
int argc,
char** argv )
25 std::cout <<
"Usage: " << argv[0] <<
" <filename>" << std::endl;
36 "Failed to get geometric dimension tag" );
37 gid_tag =
mb->globalId_tag();
38 assert( NULL != gid_tag );
42 std::vector< moab::EntityHandle > sense_ents;
43 std::vector< int > senses;
50 for( dim = 3; dim >= 0; dim-- )
55 "Failed to get entities by type and tag" );
59 for( ch_it = chsets.
begin(); ch_it != chsets.
end(); ++ch_it )
63 MB_CHK_SET_ERR(
mb->get_parent_meshsets( *ch_it, psets ),
"Failed to get parent meshsets" );
65 MB_CHK_SET_ERR(
mb->tag_get_data( gid_tag, &( *ch_it ), 1, &chgid ),
"Failed to get tag data" );
68 std::cout <<
ent_names[dim] <<
" " << chgid <<
" has " << psets.
size() <<
" parents." << std::endl;
72 for( p_it = psets.
begin(); p_it != psets.
end(); ++p_it )
74 MB_CHK_SET_ERR(
mb->tag_get_data( gid_tag, &( *p_it ), 1, &pgid ),
"Failed to get tag data" );
75 rval = gt.
get_sense( *ch_it, *p_it, sense );
77 std::cout <<
ent_names[dim + 1] <<
" " << pgid <<
", " <<
ent_names[dim] <<
" " << chgid
80 std::cout <<
"FORWARD" << std::endl;
82 std::cout <<
"REVERSE" << std::endl;
89 rval = gt.
get_senses( *ch_it, sense_ents, senses );
91 for(
unsigned int i = 0; i < sense_ents.size(); i++ )
93 MB_CHK_SET_ERR(
mb->tag_get_data( gid_tag, &sense_ents[i], 1, &pgid ),
"Failed to get tag data" );
94 std::cout <<
ent_names[dim + 1] <<
" " << pgid <<
", " <<
ent_names[dim] <<
" " << chgid
97 std::cout <<
"REVERSED" << std::endl;
98 else if( 0 == senses[i] )
99 std::cout <<
"BOTH" << std::endl;
100 else if( 1 == senses[i] )
101 std::cout <<
"FORWARD" << std::endl;
103 std::cout <<
"(invalid)" << std::endl;