moab
|
00001 #ifndef IMESH_REC_CBIND_H__ 00002 #define IMESH_REC_CBIND_H__ 00003 00004 #include "iMesh.h" 00005 #include "iMesh_extensions_protos.h" 00006 #ifdef USE_MPI 00007 #include "iMeshP.h" 00008 #include "moab_mpi.h" 00009 #endif 00010 00011 #ifdef __cplusplus 00012 extern "C" { 00013 #endif 00014 00035 void iMesh_getEntitiesRec(iMesh_Instance instance, 00036 /*in*/ const iBase_EntitySetHandle entity_set_handle, 00037 /*in*/ const int entity_type, 00038 /*in*/ const int entity_topology, 00039 /*in*/ const int recursive, 00040 /*out*/ iBase_EntityHandle** entity_handles, 00041 /*out*/ int* entity_handles_allocated, 00042 /*out*/ int* entity_handles_size, 00043 /*out*/ int *err); 00044 00060 void iMesh_getNumOfTypeRec(iMesh_Instance instance, 00061 /*in*/ const iBase_EntitySetHandle entity_set_handle, 00062 /*in*/ const int entity_type, 00063 /*in*/ const int recursive, 00064 /*out*/ int *num_type, 00065 /*out*/ int *err); 00066 00082 void iMesh_getNumOfTopoRec(iMesh_Instance instance, 00083 /*in*/ const iBase_EntitySetHandle entity_set_handle, 00084 /*in*/ const int entity_topology, 00085 /*in*/ const int recursive, 00086 /*out*/ int *num_topo, 00087 /*out*/ int *err); 00088 00089 00110 void iMesh_getEntsByTagsRec(iMesh_Instance instance, 00111 /*in*/ const iBase_EntitySetHandle entity_set_handle, 00112 /*in*/ const int entity_type, 00113 /*in*/ const int entity_topology, 00114 /*in*/ const iBase_TagHandle *tag_handles, 00115 /*in*/ const char * const *tag_vals, 00116 /*in*/ const int num_tags_vals, 00117 /*in*/ const int recursive, 00118 /*out*/ iBase_EntityHandle** entity_handles, 00119 /*out*/ int* entity_handles_allocated, 00120 /*out*/ int* entity_handles_size, 00121 /*out*/ int *err); 00122 00141 void iMesh_getEntSetsByTagsRec(iMesh_Instance instance, 00142 /*in*/ const iBase_EntitySetHandle entity_set_handle, 00143 /*in*/ const iBase_TagHandle *tag_handles, 00144 /*in*/ const char * const *tag_vals, 00145 /*in*/ const int num_tags_vals, 00146 /*in*/ const int recursive, 00147 /*out*/ iBase_EntitySetHandle** set_handles, 00148 /*out*/ int* set_handles_allocated, 00149 /*out*/ int* set_handles_size, 00150 /*out*/ int *err); 00151 00161 void iMesh_MBCNType(/*in*/ const int imesh_entity_topology, 00162 /*out*/ int *mbcn_type); 00163 00164 00185 void iMesh_tagIterate(iMesh_Instance instance, 00187 const iBase_TagHandle tag_handle, 00189 iBase_EntityArrIterator entArr_iterator, 00191 void* tag_value, 00193 int* count, 00195 int* err 00197 ); 00198 00205 void iMesh_connectIterate(iMesh_Instance instance, 00207 iBase_EntityArrIterator entArr_iterator, 00209 iBase_EntityHandle **connect, 00211 int* verts_per_entity, 00213 int* count, 00215 int* err 00217 ); 00218 00225 void iMesh_coordsIterate(iMesh_Instance instance, 00227 iBase_EntityArrIterator entArr_iterator, 00229 double **coordsx, 00231 double **coordsy, 00233 double **coordsz, 00235 int* count, 00237 int* err 00239 ); 00240 00241 /***************************************************************************/ 00250 void iMesh_stepEntIter( 00251 iMesh_Instance instance, 00253 iBase_EntityIterator ent_iterator, 00255 int step_length, 00257 int* at_end, 00259 int* err 00261 ); 00262 00263 void iMesh_stepEntArrIter( 00264 iMesh_Instance instance, 00266 iBase_EntityArrIterator entArr_iterator, 00268 int step_length, 00270 int* at_end, 00272 int* err 00274 ); 00275 00276 /***************************************************************************/ 00291 void iMesh_initEntArrIterRec( 00292 iMesh_Instance instance, 00294 const iBase_EntitySetHandle entity_set_handle, 00296 const int requested_entity_type, 00298 const int requested_entity_topology, 00300 const int requested_array_size, 00303 const int resilient, 00306 const int recursive, 00308 iBase_EntityArrIterator* entArr_iterator, 00310 int* err 00312 ); 00313 00314 /***************************************************************************/ 00321 void iMesh_getAllIfaceTags(iMesh_Instance instance, 00322 /*inout*/ iBase_TagHandle **tag_handles, 00323 /*inout*/ int *tag_handles_allocated, 00324 /*out*/ int *tag_handles_size, 00325 /*out*/ int *err 00326 ); 00327 00328 /***************************************************************************/ 00338 void iMesh_createTagWithOptions(iMesh_Instance instance, 00340 /*in*/ const char* tag_name, 00342 /*in*/ const char* tmp_tag_options, 00344 /*in*/ const int tag_size, 00346 /*in*/ const int tag_type, 00348 /*out*/ iBase_TagHandle* tag_handle, 00350 /*out*/ int *err, 00352 /*in*/ const int tag_name_len, 00354 /*in*/ const int tag_options_len); 00357 /***************************************************************************/ 00367 void iMesh_createStructuredMesh( 00368 iMesh_Instance instance, 00370 int *local_dims, 00373 int *global_dims, 00376 double *i_vals, 00378 double *j_vals, 00380 double *k_vals, 00382 int resolve_shared, 00384 int ghost_dim, 00386 int bridge_dim, 00388 int num_layers, 00390 int addl_ents, 00392 int vert_gids, 00394 int elem_gids, 00396 iBase_EntitySetHandle* set_handle, 00399 int *err 00401 ); 00402 /***************************************************************************/ 00407 void iMesh_freeMemory( 00408 iMesh_Instance instance, 00410 void ** ptrToMem); 00411 00412 /***************************************************************************/ 00417 /***************************************************************************/ 00422 #ifdef __cplusplus 00423 } 00424 #endif 00425 00426 #endif