Hello, all. First, I apologize for being slower than I'd promised in getting these out. Second, I apologize for an earlier miscount: by the time we clone getNumOfType/Topo (twice each) and the global entity query functions and both sets of iterator functions (once each), there are a total of sixteen new functions, of which the whole-partition getNumOf* funcs are already mandated elsewhere. Here they are; let the debate begin. :-) Carl -- ------------------------------------------------------------------------ Dr. Carl Ollivier-Gooch, P.Eng. Voice: +1-604-822-1854 Associate Professor Fax: +1-604-822-2403 Department of Mechanical Engineering email: [email protected] University of British Columbia http://www.mech.ubc.ca/~cfog Vancouver, BC V6T 1Z4 http://tetra.mech.ubc.ca/ANSLab/ ------------------------------------------------------------------------ Serial: void iMesh_getNumOfType(iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, const int entity_type, int *num_type, int *err); void iMesh_getNumOfTopo(iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, const int entity_topology, int *num_topo, int *err); Per part: void prefix_getNumOfType(iMesh_Instance instance, const prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, const int entity_type, int *num_type, int *err); void prefix_getNumOfTopo(iMesh_Instance instance, const prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, const int entity_topology, int *num_topo, int *err); Whole partition: void prefix_getNumOfTypePar(const prefix_PartitionHandle partition_handle, const iBase_EntitySetHandle entity_set_handle, const int entity_type, int *num_type, int *err); void prefix_getNumOfTopoPar(const prefix_PartitionHandle partition_handle, const iBase_EntitySetHandle entity_set_handle, const int entity_topology, int *num_topo, int *err); Entity queries: Serial: void iMesh_getAllVtxCoords (iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, n double** coordinates, int* coordinates_allocated, int* coordinates_size, int** in_entity_set, int* in_entity_set_allocated, int* in_entity_set_size, int* storage_order, int *err); void iMesh_getVtxCoordIndex (iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, const int requested_entity_type, const int requested_entity_topology, const int entity_adjacency_type, int** offset, int* offset_allocated, int* offset_size, int** index, int* index_allocated, int* index_size, int** entity_topologies, int* entity_topologies_allocated, int* entity_topologies_size, int *err); void iMesh_getEntities(iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, const int entity_type, const int entity_topology, iBase_EntityHandle** entity_handles, int* entity_handles_allocated, int* entity_handles_size, int *err); void iMesh_getAdjEntities(iMesh_Instance instance, const iBase_EntityHandle entity_set_handle, const int entity_type_requestor, const int entity_topology_requestor, const int entity_type_requested, iBase_EntityHandle** adj_entity_handles, int* adj_entity_handles_allocated, int* adj_entity_handles_size, int** offset, int* offset_allocated, int* offset_size, int** in_entity_set, int* in_entity_set_allocated, int* in_entity_set_size, int *err); Per part: void prefix_getAllVtxCoords (iMesh_Instance instance, prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, double** coordinates, int* coordinates_allocated, int* coordinates_size, int** in_entity_set, int* in_entity_set_allocated, int* in_entity_set_size, int* storage_order, int *err); void prefix_getVtxCoordIndex (iMesh_Instance instance, prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, const int requested_entity_type, const int requested_entity_topology, const int entity_adjacency_type, int** offset, int* offset_allocated, int* offset_size, int** index, int* index_allocated, int* index_size, int** entity_topologies, int* entity_topologies_allocated, int* entity_topologies_size, int *err); void prefix_getEntities(iMesh_Instance instance, prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, const int entity_type, const int entity_topology, iBase_EntityHandle** entity_handles, int* entity_handles_allocated, int* entity_handles_size, int *err); void prefix_getAdjEntities(iMesh_Instance instance, prefix_PartHandle part_handle, const iBase_EntityHandle entity_set_handle, const int entity_type_requestor, const int entity_topology_requestor, const int entity_type_requested, iBase_EntityHandle** adj_entity_handles, int* adj_entity_handles_allocated, int* adj_entity_handles_size, int** offset, int* offset_allocated, int* offset_size, int** in_entity_set, int* in_entity_set_allocated, int* in_entity_set_size, int *err); Entity iterators: Serial: void iMesh_initEntIter(iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, const int requested_entity_type, const int requested_entity_topology, iMesh_EntityIterator* entity_iterator, int *err); void iMesh_getNextEntIter(iMesh_Instance instance, iMesh_EntityIterator entity_iterator, iBase_EntityHandle* entity_handle, int *has_data, int *err); void iMesh_resetEntIter(iMesh_Instance instance, iMesh_EntityIterator entity_iterator, int *err); void iMesh_endEntIter(iMesh_Instance instance, iMesh_EntityIterator entity_iterator, int *err); Per part: void prefix_initEntIter(iMesh_Instance instance, prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, const int requested_entity_type, const int requested_entity_topology, iMesh_EntityIterator* entity_iterator, int *err); void prefix_getNextEntIter(iMesh_Instance instance, prefix_PartHandle part_handle, iMesh_EntityIterator entity_iterator, iBase_EntityHandle* entity_handle, int *has_data, int *err); void prefix_resetEntIter(iMesh_Instance instance, prefix_PartHandle part_handle, iMesh_EntityIterator entity_iterator, int *err); void prefix_endEntIter(iMesh_Instance instance, prefix_PartHandle part_handle, iMesh_EntityIterator entity_iterator, int *err); Array iterators Serial: void iMesh_initEntArrIter(iMesh_Instance instance, const iBase_EntitySetHandle entity_set_handle, const int requested_entity_type, const int requested_entity_topology, const int requested_array_size, iMesh_EntityArrIterator* entArr_iterator, int *err); void iMesh_getNextEntArrIter(iMesh_Instance instance, iMesh_EntityArrIterator entArr_iterator, iBase_EntityHandle** entity_handles, int* entity_handles_allocated, int* entity_handles_size, int *has_data, int *err); void iMesh_resetEntArrIter(iMesh_Instance instance, iMesh_EntityArrIterator entArr_iterator, int *err); void iMesh_endEntArrIter(iMesh_Instance instance, iMesh_EntityArrIterator entArr_iterator, int *err); Per part: void prefix_initEntArrIter(iMesh_Instance instance, prefix_PartHandle part_handle, const iBase_EntitySetHandle entity_set_handle, const int requested_entity_type, const int requested_entity_topology, const int requested_array_size, iMesh_EntityArrIterator* entArr_iterator, int *err); void prefix_getNextEntArrIter(iMesh_Instance instance, prefix_PartHandle part_handle, iMesh_EntityArrIterator entArr_iterator, iBase_EntityHandle** entity_handles, int* entity_handles_allocated, int* entity_handles_size, int *has_data, int *err); void prefix_resetEntArrIter(iMesh_Instance instance, prefix_PartHandle part_handle, iMesh_EntityArrIterator entArr_iterator, int *err); void prefix_endEntArrIter(iMesh_Instance instance, prefix_PartHandle part_handle, iMesh_EntityArrIterator entArr_iterator, int *err);