00001 #ifndef __iRel_LASSO_HPP__
00002 #define __iRel_LASSO_HPP__
00003
00078 #include "iGeom.h"
00079 #include "iMesh.h"
00080 #include "iRel_protos.h"
00081
00082 #ifdef __cplusplus
00083
00084 extern "C"
00085 {
00086 #endif
00087
00089
00091 typedef void* iRel_Instance;
00092
00094
00096 typedef void* iRel_RelationHandle;
00097
00099
00104 enum IfaceType
00105 {iRel_IBASE_IFACE = 0,
00106 iRel_IGEOM_IFACE,
00107 iRel_IMESH_IFACE,
00108 iRel_IFIELD_IFACE,
00109 iRel_IREL_IFACE};
00110
00111 extern struct iBase_Error iRel_LAST_ERROR;
00112
00114
00118 void iRel_dtor(iRel_Instance instance, int *ierr);
00119
00121
00137 void iRel_createAssociation (
00138 iRel_Instance instance,
00139 iBase_Instance iface1,
00140 const int ent_or_set1,
00141 const int iface_type1,
00142 iBase_Instance iface2,
00143 const int ent_or_set2,
00144 const int iface_type2,
00145 iRel_RelationHandle *rel,
00146 int *ierr);
00147
00149
00154 void iRel_destroyAssociation (
00155 iRel_Instance instance,
00156 iRel_RelationHandle rel,
00157 int *ierr);
00158
00160
00169 void iRel_getAssociatedInterfaces (
00170 iRel_Instance instance,
00171 iBase_Instance iface,
00172 iBase_Instance **interfaces,
00173 int *interfaces_allocated,
00174 int *interfaces_size,
00175 int *ierr);
00176
00178
00187 void iRel_setEntEntAssociation (
00188 iRel_Instance instance,
00189 iRel_RelationHandle rel,
00190 iBase_EntityHandle ent1,
00191 int is_set1,
00192 iBase_EntityHandle ent2,
00193 int is_set2,
00194 int *ierr);
00195
00197
00212 void iRel_setEntArrAssociation (
00213 iRel_Instance instance,
00214 iRel_RelationHandle rel,
00215 iBase_EntityHandle ent1,
00216 int is_set1,
00217 int switch_order,
00218 iBase_EntityHandle *ent_array_2,
00219 int num_entities,
00220 int is_set2,
00221 int *ierr);
00222
00225
00239 void iRel_setArrAssociation (
00240 iRel_Instance instance,
00241 iRel_RelationHandle rel,
00242 iBase_EntityHandle *ent_array_1,
00243 int num_ent1,
00244 int is_set1,
00245 iBase_EntityHandle *ent_array_2,
00246 int num_ent2,
00247 int is_set2,
00248 int *ierr);
00249
00251
00264 void iRel_getEntEntAssociation (
00265 iRel_Instance instance,
00266 iRel_RelationHandle rel,
00267 iBase_EntityHandle ent1,
00268 int is_set1,
00269 int switch_order,
00270 iBase_EntityHandle *ent2,
00271 int *is_set2,
00272 int *ierr);
00273
00275
00292 void iRel_getEntArrAssociation (
00293 iRel_Instance instance,
00294 iRel_RelationHandle rel,
00295 iBase_EntityHandle ent1,
00296 int is_set1,
00297 int return_sets,
00298 int switch_order,
00299 iBase_EntityHandle **ent_array_2,
00300 int *ent_array_2_allocated,
00301 int *ent_array_2_size,
00302 int *ierr);
00303
00305
00327 void iRel_getArrAssociation (
00328 iRel_Instance instance,
00329 iRel_RelationHandle rel,
00330 iBase_EntityHandle *ent_array_1,
00331 int ent_array_1_size,
00332 int is_set1,
00333 int return_sets,
00334 int switch_order,
00335 iBase_EntityHandle **ent_array_2,
00336 int *ent_array_2_allocated,
00337 int *ent_array_2_size,
00338 int **offset,
00339 int *offset_allocated,
00340 int *offset_size,
00341 int *ierr);
00342
00344
00355 void iRel_createVtxAndAssociate (
00356 iRel_Instance instance,
00357 double x,
00358 double y,
00359 double z,
00360 iBase_EntityHandle associatedGeomEnt,
00361 iBase_EntityHandle *new_entity_handle,
00362 int *ierr);
00363
00365
00381 void iRel_createEntAndAssociate (
00382 iRel_Instance instance,
00383 int new_entity_topology,
00384 iBase_EntityHandle *lower_order_entity_handles,
00385 int lower_order_entity_handles_size,
00386 iBase_EntityHandle associatedGeomEnt,
00387 iBase_EntityHandle *new_entity_handle,
00388 int *creation_status,
00389 int *ierr);
00390
00392
00413 void iRel_createVtxArrAndAssociate (
00414 iRel_Instance instance,
00415 int num_verts,
00416 int storage_order,
00417 double *new_coords,
00418 int new_coords_size,
00419 iBase_EntityHandle *associatedGeomEnts,
00420 int num_geom_ents,
00421 iBase_EntityHandle **new_vertex_handles,
00422 int *new_vertex_handles_allocated,
00423 int *new_vertex_handles_size,
00424 int *ierr);
00425
00427
00458 void iRel_createEntArrAndAssociate (
00459 iRel_Instance instance,
00460 int new_entity_topology,
00461 iBase_EntityHandle *lower_order_entity_handles,
00462 int lower_order_entity_handles_size,
00463 int *offsets,
00464 int offsets_size,
00465 iBase_EntityHandle *associatedGeomEnts,
00466 int num_geom_ents,
00467 iBase_EntityHandle **new_entity_handles,
00468 int *new_entity_handles_allocated,
00469 int *new_entity_handles_size,
00470 int **status,
00471 int *status_allocated,
00472 int *status_size,
00473 int *ierr);
00474
00476
00484 void iRel_inferAllAssociations (
00485 iRel_Instance instance,
00486 iRel_RelationHandle rel,
00487 int *ierr);
00488
00490
00502 void iRel_inferEntAssociations (
00503 iRel_Instance instance,
00504 iRel_RelationHandle rel,
00505 iBase_EntityHandle entity,
00506 int is_set,
00507 int iface_no,
00508 int *ierr);
00509
00511
00524 void iRel_inferArrAssociations (
00525 iRel_Instance instance,
00526 iRel_RelationHandle rel,
00527 iBase_EntityHandle *entities,
00528 int entities_size,
00529 int is_set,
00530 int iface_no,
00531 int *ierr);
00532
00535
00546 void iRel_moveTo(iRel_Instance instance,
00547 iGeom_Instance geom, iMesh_Instance mesh,
00548 iBase_EntityHandle geom_entity_handle,
00549 int *ierr);
00550
00552
00558 void iRel_newAssoc(const char *options,
00559 iRel_Instance *instance,
00560 int *ierr,
00561 const int options_len);
00562
00563 #ifdef __cplusplus
00564 }
00565 #endif
00566
00567 #endif // #ifndef __iRel_LASSO_HPP__
00568