27 bool read_par =
false;
28 if( argc < 2 || !strcmp( argv[1],
"-h" ) )
30 std::cout <<
"Usage: " << argv[0] <<
" <filename> [-p]" << std::endl;
38 if( argc > 2 && !strcmp( argv[2],
"-p" ) ) read_par =
true;
44 iMesh_newMesh( NULL, &mesh, &err, 0 );
ERRORR(
"Error creating new mesh.\n" );
46 iBase_EntitySetHandle root_set;
47 iMesh_getRootSet( mesh, &root_set, &err );
ERRORR(
"Couldn't get root set." );
52 const char* opt =
" moab:PARALLEL=READ_PART moab:PARTITION=PARALLEL_PARTITION moab:PARTITION_DISTRIBUTE "
53 "moab:PARALLEL_RESOLVE_SHARED_ENTS moab:DEBUG_PIO=2 moab:DEBUG_IO=2 moab:SETS=SETS ";
54 iMesh_load( mesh, root_set, filename, opt, &err, strlen( filename ), strlen( opt ) );
57 iMesh_load( mesh, root_set, filename, NULL, &err, strlen( filename ), 0 );
ERRORR(
"Couldn't load mesh." );
60 iBase_EntitySetHandle* sets = NULL;
61 int sets_alloc = 0, sets_size;
62 iMesh_getEntSets( mesh, root_set, 1, &sets, &sets_alloc, &sets_size, &err );
ERRORR(
"Couldn't get all sets." );
65 iBase_TagHandle* tags = NULL;
66 int tags_alloc = 0, tags_size;
68 for( i = 0; i < sets_size; i++ )
71 iMesh_getAllEntSetTags( mesh, sets[i], &tags, &tags_alloc, &tags_size, &err );
ERRORR(
"Failed to get ent set tags." );
75 std::cout <<
"Set " << sets[i] <<
"; Tags:" << std::endl;
78 for( j = 0; j < tags_size; j++ )
81 std::vector< int > int_val;
82 std::vector< double > dbl_val;
83 iMesh_getTagName( mesh, tags[j], tname, &err,
sizeof( tname ) );
84 tname[
sizeof( tname ) - 1] =
'\0';
85 int tag_type, tag_size;
86 iMesh_getTagType( mesh, tags[j], &tag_type, &err );
ERRORR(
"Failed to get tag type." );
87 iMesh_getTagType( mesh, tags[j], &tag_size, &err );
ERRORR(
"Failed to get tag size." );
88 if( iBase_INTEGER == tag_type )
90 int_val.resize( tag_size );
91 iMesh_getEntSetIntData( mesh, sets[i], tags[j], &int_val[0], &err );
ERRORR(
"Failed to get int data type." );
92 std::cout << tname <<
" = " << int_val[0];
94 for(
int k = 1; k < tag_size; i++ )
95 std::cout <<
", " << int_val[k];
96 std::cout << std::endl;
98 else if( iBase_DOUBLE == tag_type )
100 dbl_val.resize( tag_size );
101 iMesh_getEntSetDblData( mesh, sets[i], tags[j], &dbl_val[0], &err );
102 std::cout << tname <<
" = " << dbl_val[0];
104 for(
int k = 1; k < tag_size; i++ )
105 std::cout <<
", " << dbl_val[k];
106 std::cout << std::endl;
109 std::cout << tname <<
" (opaque) " << std::endl;
112 std::cout << std::endl;
121 iMesh_dtor( mesh, &err );
ERRORR(
"Failed to destruct interface." );