![]() |
Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
Go to the source code of this file.
Defines | |
#define | CHKERR(e, m) |
Functions | |
int | main (int argc, char *argv[]) |
#define CHKERR | ( | e, | |
m | |||
) |
if( iBase_SUCCESS != ( e ) ) \
{ \
printf( m ); \
return 1; \
}
Definition at line 11 of file TagIterateC.cpp.
Referenced by main().
int main | ( | int | argc, |
char * | argv[] | ||
) |
Definition at line 18 of file TagIterateC.cpp.
References CHKERR, iBase_DOUBLE, iBase_REGION, iMesh_ALL_TOPOLOGIES, iMesh_createTagWithOptions, iMesh_dtor, iMesh_getNumOfType, iMesh_getRootSet, iMesh_initEntArrIter, iMesh_load, iMesh_newMesh, iMesh_stepEntArrIter, iMesh_tagIterate, mesh, and root_set.
{
iMesh_Instance mesh;
iBase_EntitySetHandle root_set;
int err;
const char* filename;
iBase_EntityArrIterator iter;
iBase_TagHandle tagh;
int count, atend;
double* tag_data;
int num_regions;
if( argc == 2 )
{
filename = argv[1];
}
else
{
printf( "Usage: %s \n", argv[0] );
return 0;
}
/* initialize the Mesh */
iMesh_newMesh( NULL, &mesh, &err, 0 );CHKERR( err, "Failed to create a mesh instance.\n" );
iMesh_getRootSet( mesh, &root_set, &err );CHKERR( err, "Failed to return a root set.\n" );
iMesh_load( mesh, root_set, filename, NULL, &err, strlen( filename ), 0 );
/* get the number of regions in the mesh */
iMesh_getNumOfType( mesh, root_set, iBase_REGION, &num_regions, &err );CHKERR( err, "Failed to get number of regions." );
/* get an iterator to all regions in the model */
iMesh_initEntArrIter( mesh, root_set, iBase_REGION, iMesh_ALL_TOPOLOGIES, num_regions, 0, &iter, &err );CHKERR( err, "Failed to create iterator over regions." );
/* create a tag to put on the regions */
iMesh_createTagWithOptions( mesh, "dumtag", "moab:TAG_STORAGE_TYPE=DENSE moab:TAG_DEFAULT_VALUE=0.0", 1,
iBase_DOUBLE, &tagh, &err, 6, 54 );CHKERR( err, "Failed to create a tag.\n" );
atend = 0;
while( !atend )
{
/* get a pointer to that tag data; this will allocate tag storage if it isn't allocated yet
*/
iMesh_tagIterate( mesh, tagh, iter, &tag_data, &count, &err );CHKERR( err, "Failed to create a tag.\n" );
/* step the iterator over count entities */
iMesh_stepEntArrIter( mesh, iter, count, &atend, &err );CHKERR( err, "Failed to step iterator.\n" );
/* operate on tag data, or store it for later */
}
iMesh_dtor( mesh, &err );CHKERR( err, "Failed to destroy iMesh instance.\n" );
return 0;
}