![]() |
Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
00001 #ifndef _ITAPS_FBiGeom
00002 #define _ITAPS_FBiGeom
00003
00004 /** \mainpage The ITAPS Geometry Interface FBiGeom
00005 *
00006 * The ITAPS Geometry Interface FBiGeom provides a common interface for
00007 * accessing geometry and data associated with a mesh. Applications written
00008 * to use this interface can use a variety of implementations, choosing
00009 * the one that best meets its needs. They can also use tools written
00010 * to this interface.
00011 *
00012 * \section ITAPS Data Model
00013 *
00014 * The ITAPS interfaces use a data model composed of four basic data types:\n
00015 * \em Entity: basic topological entities in a model, e.g. vertices,
00016 * edges, faces, regions. \n
00017 * \em Entity \em Set: arbitrary grouping of other entities and sets.
00018 * Entity sets also support parent/child relations with other sets which
00019 * are distinct from entities contained in those sets. Parent/child links
00020 * can be used to embed graph relationships between sets, e.g. to
00021 * represent topological relationships between the sets. \n
00022 * \em Interface: the object with which model is associated and on which
00023 * functions in FBiGeom are called. \n
00024 * \em Tag: application data associated with objects of any of the other
00025 * data types. Each tag has a designated name, size, and data type.
00026 *
00027 * \section JTAPS Entity Type
00028 * Each entity has a specific Entity Type. The Entity
00029 * Type is one of VERTEX, EDGE, FACE, and REGION, and is synonymous with
00030 * the topological dimension of the entity. Entity Type is an enumerated
00031 * type in the iBase_EntityType enumeration.
00032 *
00033 * \section KTAPS Entity-, Array-, and Iterator-Based Access
00034 *
00035 * The FBiGeom interface provides functions for accessing entities
00036 * individually, as arrays of entities, or using iterators. These access
00037 * methods have different memory versus execution time tradeoffs,
00038 * depending on the implementation.
00039 *
00040 * \section LTAPS Lists Passed Through Interface
00041 *
00042 * Many of the functions in FBiGeom have arguments corresponding to lists of
00043 * objects. In-type arguments for lists consist of a pointer to an array and
00044 * a list size. Lists returned from functions are passed in three arguments,
00045 * a pointer to the array representing the list, and pointers to the
00046 * allocated and occupied lengths of the array. These three arguments are
00047 * inout-type arguments, because they can be allocated by the application and
00048 * passed into the interface to hold the results of the function. Lists
00049 * which are pre-allocated must be large enough to hold the results of the
00050 * function; if this is not the case, an error is generated. Otherwise, the
00051 * occupied size is changed to the size output from the function. If a list
00052 * argument is unallocated (the list pointer points to a NULL value) or if
00053 * the incoming value of the allocated size is zero, the list storage will be
00054 * allocated by the implementation. IN ALL CASES, MEMORY ALLOCATED BY ITAPS
00055 * INTERFACE IMPLEMENTATIONS IS DONE USING THE C MALLOC FUNCTION, AND CAN BE
00056 * DE-ALLOCATED USING THE C FREE FUNCTION.
00057 *
00058 */
00059
00060 #include "iBase.h"
00061 #include "FBiGeom_protos.h"
00062
00063 #ifdef __cplusplus
00064 extern "C" {
00065 #endif
00066
00067 /**\brief Type used to store FBiGeom interface handle
00068 *
00069 * Type used to store FBiGeom interface handle
00070 */
00071 typedef struct FBiGeom_Instance_Private* FBiGeom_Instance;
00072
00073 /**\brief Get a description of the error returned from the last FBiGeom call
00074 *
00075 * Get a description of the error returned from the last FBiGeom function
00076 * \param instance FBiGeom instance handle
00077 * \param descr Pointer to a character string to be filled with a
00078 * description of the error from the last FBiGeom function
00079 * \param descr_len Length of the character string pointed to by descr
00080 */
00081 void FBiGeom_getDescription( FBiGeom_Instance instance, char* descr, int descr_len );
00082
00083 /**\brief Get the error type returned from the last FBiGeom function
00084 *
00085 * Get the error type returned from the last FBiGeom function. Value
00086 * returned is a member of the iBase_ErrorType enumeration.
00087 * \param instance FBiGeom instance handle
00088 * \param *error_type Error type returned from last FBiGeom function
00089 */
00090 void FBiGeom_getErrorType( FBiGeom_Instance instance,
00091 /*out*/ int* error_type );
00092
00093 /**\brief Construct a new FBiGeom instance
00094 *
00095 * Construct a new FBiGeom instance, using implementation-specific options
00096 * \param options Pointer to implementation-specific options string
00097 * \param instance Pointer to FBiGeom instance handle returned from function
00098 * \param *err Pointer to error type returned from function
00099 * \param options_len Length of the character string pointed to by options
00100 */
00101 void FBiGeom_newGeom( char const* options, FBiGeom_Instance* instance_out, int* err, int options_len );
00102
00103 /**\brief Construct a new FBiGeom instance
00104 *
00105 * Construct a new FBiGeom instance, using an existing moab iMesh instance
00106 * and a root set that encapsulates the topological model
00107 * \param mesh iMesh_Instance
00108 * \param set root set for the mesh based geometry
00109 * \param options Pointer to implementation-specific options string
00110 * \param instance Pointer to FBiGeom instance handle returned from function
00111 * \param *err Pointer to error type returned from function
00112 * \param options_len Length of the character string pointed to by options
00113 */
00114
00115 /* void FBiGeom_newGeomFromMesh( iMesh_Instance mesh, iBase_EntitySetHandle set,
00116 const char *options, FBiGeom_Instance *geom,
00117 int *err, int options_len);*/
00118 /**\brief Destroy an FBiGeom instance
00119 *
00120 * Destroy an FBiGeom instance
00121 * \param instance FBiGeom instance to be destroyed
00122 * \param *err Pointer to error type returned from function
00123 */
00124 void FBiGeom_dtor( FBiGeom_Instance instance, int* err );
00125
00126 /**\brief Load a geom from a file
00127 *
00128 * Load a geom from a file. If entity set is specified, loaded geom
00129 * is added to that set; specify zero if that is not desired.
00130 * \param instance FBiGeom instance handle
00131 * \param entity_set_handle Set to which loaded geom will be added, zero
00132 * if not desired
00133 * \param name File name from which geom is to be loaded
00134 * \param options Pointer to implementation-specific options string
00135 * \param *err Pointer to error type returned from function
00136 * \param name_len Length of the file name character string
00137 * \param options_len Length of the options character string
00138 */
00139 void FBiGeom_load( FBiGeom_Instance instance,
00140 char const* name,
00141 char const* options,
00142 int* err,
00143 int name_len,
00144 int options_len );
00145
00146 /**\brief Save a geom to a file
00147 *
00148 * Save a geom to a file. If entity set is specified, save only the
00149 * geom contained in that set.
00150 * \param instance FBiGeom instance handle
00151 * \param entity_set_handle Entity set being saved
00152 * \param name File name to which geom is to be saved
00153 * \param options Pointer to implementation-specific options string
00154 * \param *err Pointer to error type returned from function
00155 * \param name_len Length of the file name character string
00156 * \param options_len Length of the options character string
00157 */
00158 void FBiGeom_save( FBiGeom_Instance instance,
00159 char const* name,
00160 char const* options,
00161 int* err,
00162 int name_len,
00163 int options_len );
00164
00165 /**\brief Get handle of the root set for this instance
00166 *
00167 * Get handle of the root set for this instance. All geom in
00168 * this instance can be accessed from this set.
00169 * \param instance FBiGeom instance handle
00170 * \param root_set Pointer to set handle returned from function
00171 * \param *err Pointer to error type returned from function
00172 */
00173 void FBiGeom_getRootSet( FBiGeom_Instance instance, iBase_EntitySetHandle* root_set, int* err );
00174
00175 /**\brief Get the bounding box of the entire model
00176 *
00177 * Get the bounding box of the entire model
00178 * \param instance FBiGeom instance handle
00179 * \param min_x Minimum coordinate of bounding box
00180 * \param min_y Minimum coordinate of bounding box
00181 * \param min_z Minimum coordinate of bounding box
00182 * \param max_x Maximum coordinate of bounding box
00183 * \param max_y Maximum coordinate of bounding box
00184 * \param max_z Maximum coordinate of bounding box
00185 * \param *err Pointer to error type returned from function
00186 */
00187 void FBiGeom_getBoundBox( FBiGeom_Instance instance,
00188 double* min_x,
00189 double* min_y,
00190 double* min_z,
00191 double* max_x,
00192 double* max_y,
00193 double* max_z,
00194 int* err );
00195
00196 /**\brief Get entities of specific type in set or instance
00197 *
00198 * Get entities of specific type in set or instance. All entities are
00199 * requested by specifying iBase_ALL_TYPES. Specified type must be a value
00200 * in the iBase_EntityType enumeration.
00201 * \param instance FBiGeom instance handle
00202 * \param entity_set_handle Entity set being queried
00203 * \param entity_type Type of entities being requested
00204 * \param entity_topology Topology of entities being requested
00205 * \param *entity_handles Pointer to array of entity handles returned
00206 * from function
00207 * \param *entity_handles_allocated Pointer to allocated size of
00208 * entity_handles array
00209 * \param *entity_handles_size Pointer to occupied size of entity_handles
00210 * array
00211 * \param *err Pointer to error type returned from function
00212 */
00213 void FBiGeom_getEntities( FBiGeom_Instance instance,
00214 iBase_EntitySetHandle set_handle,
00215 int entity_type,
00216 iBase_EntityHandle** entity_handles,
00217 int* entity_handles_allococated,
00218 int* entity_handles_size,
00219 int* err );
00220
00221 /**\brief Get the number of entities with the specified type in the
00222 * instance or set
00223 *
00224 * Get the number of entities with the specified type in the instance
00225 * or set. If entity set handle is zero, return information for instance,
00226 * otherwise for set. Value of entity type must be from the
00227 * iBase_EntityType enumeration. If iBase_ALL_TYPES is specified, total
00228 * number of entities (excluding entity sets) is returned.
00229 * \param instance FBiGeom instance handle
00230 * \param entity_set_handle Entity set being queried
00231 * \param entity_type Type of entity requested
00232 * \param num_type Pointer to number of entities, returned from function
00233 * \param *err Pointer to error type returned from function
00234 */
00235 void FBiGeom_getNumOfType( FBiGeom_Instance instance,
00236 iBase_EntitySetHandle set_handle,
00237 int entity_type,
00238 int* num_out,
00239 int* err );
00240
00241 /**\brief Get the entity type for the specified entity
00242 *
00243 * Get the entity type for the specified entity. Type returned is a value
00244 * in the iBase_EntityType enumeration.
00245 * \param instance FBiGeom instance handle
00246 * \param entity_handle entity handle being queried
00247 * \param *type Pointer to location at which to store the returned type
00248 * \param *err Pointer to error type returned from function
00249 */
00250 void FBiGeom_getEntType( FBiGeom_Instance instance, iBase_EntityHandle entity_handle, int* type, int* err );
00251
00252 /**\brief Get the entity type for the specified entities
00253 *
00254 * Get the entity type for the specified entities. Types returned are
00255 * values in the iBase_EntityType enumeration.
00256 * \param instance FBiGeom instance handle
00257 * \param entity_handles Array of entity handles being queried
00258 * \param entity_handles_size Number of entities in entity_handles array
00259 * \param *type Pointer to array of types returned from function
00260 * \param *type_allocated Pointer to allocated size of type array
00261 * \param *type_size Pointer to occupied size of type array
00262 * \param *err Pointer to error type returned from function
00263 */
00264 void FBiGeom_getArrType( FBiGeom_Instance instance,
00265 iBase_EntityHandle const* entity_handles,
00266 int entity_handles_size,
00267 int** type,
00268 int* type_allocated,
00269 int* type_size,
00270 int* err );
00271
00272 /**\brief Get entities of specified type adjacent to an entity
00273 *
00274 * Get entities of specified type adjacent to an entity. Specified type
00275 * must be value in the iBase_EntityType enumeration.
00276 * \param instance FBiGeom instance handle
00277 * \param entity_handle Entity handle being queried
00278 * \param entity_type_requested Type of adjacent entities requested
00279 * \param *adj_entity_handles Pointer to array of adjacent entities
00280 * returned from function
00281 * \param *adj_entity_handles_allocated Pointer to allocated size of
00282 * adj_entity_handles array
00283 * \param *adj_entity_handles_size Pointer to occupied size of
00284 * adj_entity_handles array
00285 * \param *err Pointer to error type returned from function
00286 */
00287 void FBiGeom_getEntAdj( FBiGeom_Instance instance,
00288 iBase_EntityHandle entity_handle,
00289 int to_dimension,
00290 iBase_EntityHandle** adj_entities,
00291 int* adj_entities_allocated,
00292 int* adj_entities_size,
00293 int* err );
00294
00295 /**\brief Get entities of specified type adjacent to entities
00296 *
00297 * Get entities of specified type adjacent to entities. Specified type
00298 * must be value in the iBase_EntityType enumeration. \em offset(i) is
00299 * index of first entity in adjacentEntityHandles array adjacent to
00300 * entity_handles[i].
00301 * \param instance FBiGeom instance handle
00302 * \param entity_handles Array of entity handles being queried
00303 * \param entity_handles_size Number of entities in entity_handles array
00304 * \param entity_type_requested Type of adjacent entities requested
00305 * \param *adjacentEntityHandles Pointer to array of adjacentEntityHandles
00306 * returned from function
00307 * \param *adjacentEntityHandles_allocated Pointer to allocated size of
00308 * adjacentEntityHandles array
00309 * \param *adj_entity_handles_size Pointer to occupied size of
00310 * adjacentEntityHandles array
00311 * \param *offset Pointer to array of offsets returned from function
00312 * \param *offset_allocated Pointer to allocated size of offset array
00313 * \param *offset_size Pointer to occupied size of offset array
00314 * \param *err Pointer to error type returned from function
00315 */
00316 void FBiGeom_getArrAdj( FBiGeom_Instance instance,
00317 iBase_EntityHandle const* entity_handles,
00318 int entity_handles_size,
00319 int requested_entity_type,
00320 iBase_EntityHandle** adj_entity_handles,
00321 int* adj_entity_handles_allocated,
00322 int* adj_entity_handles_size,
00323 int** offset,
00324 int* offset_allocated,
00325 int* offset_size,
00326 int* err );
00327
00328 /**\brief Get "2nd order" adjacencies to an entity
00329 *
00330 * Get "2nd order" adjacencies to an entity, that is, from an entity,
00331 * through other entities of a specified "bridge" dimension, to other
00332 * entities of another specified "to" dimension.
00333 * \param instance FBiGeom instance handle
00334 * \param entity_handle Entity from which adjacencies are requested
00335 * \param bridge_dimension Bridge dimension for 2nd order adjacencies
00336 * \param to_dimension Dimension of adjacent entities returned
00337 * \param adjacent_entities Adjacent entities
00338 * \param adjacent_entities_allocated Allocated size of returned array
00339 * \param adjacent_entities_size Occupied size of returned array
00340 * \param *err Pointer to error type returned from function
00341 */
00342 void FBiGeom_getEnt2ndAdj( FBiGeom_Instance instance,
00343 iBase_EntityHandle entity_handle,
00344 int bridge_dimension,
00345 int to_dimension,
00346 iBase_EntityHandle** adjacent_entities,
00347 int* adjacent_entities_allocated,
00348 int* adjacent_entities_size,
00349 int* err );
00350
00351 /**\brief Get "2nd order" adjacencies to an array of entities
00352 *
00353 * Get "2nd order" adjacencies to an array of entities, that is, from each
00354 * entity, through other entities of a specified "bridge" dimension, to
00355 * other entities of another specified "to" dimension.
00356 * \param instance FBiGeom instance handle
00357 * \param entity_handles Entities from which adjacencies are requested
00358 * \param entity_handles_size Number of entities whose adjacencies are
00359 * requested
00360 * \param bridge_dimension Bridge dimension for 2nd order adjacencies
00361 * \param to_dimension Dimension of adjacent entities returned
00362 * \param adj_entity_handles Adjacent entities
00363 * \param adj_entity_handles_allocated Allocated size of returned array
00364 * \param adj_entity_handles_size Occupied size of returned array
00365 * \param offset Offset[i] is offset into adj_entity_handles of 2nd order
00366 * adjacencies of ith entity in entity_handles
00367 * \param offset_allocated Allocated size of offset array
00368 * \param offset_size Occupied size of offset array
00369 * \param *err Pointer to error type returned from function
00370 */
00371 void FBiGeom_getArr2ndAdj( FBiGeom_Instance instance,
00372 iBase_EntityHandle const* entity_handles,
00373 int entity_handles_size,
00374 int order_adjacent_key,
00375 int requested_entity_type,
00376 iBase_EntityHandle** adj_entity_handles,
00377 int* adj_entity_handles_allocated,
00378 int* adj_entity_handles_size,
00379 int** offset,
00380 int* offset_allocated,
00381 int* offset_size,
00382 int* err );
00383
00384 /**\brief Return whether two entities are adjacent
00385 *
00386 * Return whether two entities are adjacent.
00387 * \param instance FBiGeom instance handle
00388 * \param entity_handle1 First entity queried
00389 * \param entity_handle2 Second entity queried
00390 * \param are_adjacent If returned non-zero, entities are adjacent,
00391 * otherwise they are not
00392 * \param *err Pointer to error type returned from function
00393 */
00394 void FBiGeom_isEntAdj( FBiGeom_Instance instance,
00395 iBase_EntityHandle entity_handle1,
00396 iBase_EntityHandle entity_handle2,
00397 int* are_adjacent,
00398 int* err );
00399
00400 /**\brief Return whether entity pairs are adjacent
00401 *
00402 * Return whether entity pairs are adjacent, i.e. if entity_handles_1[i] is
00403 * adjacent to entity_handles_2[i]. This function requires
00404 * entity_handles_1_size and entity_handles_2_size to be equal.
00405 * \param instance FBiGeom instance handle
00406 * \param entity_handles_1 First array of entities
00407 * \param entity_handles_1_size Number of entities in first array
00408 * \param entity_handles_2 Second array of entities
00409 * \param entity_handles_2_size Number of entities in second array
00410 * \param is_adjacent_info Array of flags returned from function
00411 * \param is_adjacent_info_allocated Allocated size of flags array
00412 * \param is_adjacent_info_size Occupied size of flags array
00413 * \param *err Pointer to error type returned from function
00414 */
00415 void FBiGeom_isArrAdj( FBiGeom_Instance instance,
00416 iBase_EntityHandle const* entity_handles_1,
00417 int entity_handles_1_size,
00418 iBase_EntityHandle const* entity_handles_2,
00419 int entity_handles_2_size,
00420 int** is_adjacent_info,
00421 int* is_adjacent_info_allocated,
00422 int* is_adjacent_info_size,
00423 int* err );
00424
00425 /**\brief Return the topology level of the geometry
00426 *
00427 * Return the topology level of the geometry as an integer, where 0 = basic
00428 * entities only, 1 = manifold entities, 2 = non-manifold entities.
00429 * \param instance FBiGeom instance handle
00430 * \param topo_level_out The topology level
00431 * \param *err Pointer to error type returned from function
00432 */
00433 void FBiGeom_getTopoLevel( FBiGeom_Instance instance, int* topo_level_out, int* err );
00434
00435 /**\brief Get closest point to an entity
00436 *
00437 * Get closest point to a specified position on an entity
00438 * \param instance FBiGeom instance handle
00439 * \param entity_handle Entity being queried
00440 * \param near_x Coordinates of starting point
00441 * \param near_y Coordinates of starting point
00442 * \param near_z Coordinates of starting point
00443 * \param on_x Closest point on entity
00444 * \param on_y Closest point on entity
00445 * \param on_z Closest point on entity
00446 * \param *err Pointer to error type returned from function
00447 */
00448 void FBiGeom_getEntClosestPt( FBiGeom_Instance instance,
00449 iBase_EntityHandle entity_handle,
00450 double near_x,
00451 double near_y,
00452 double near_z,
00453 double* on_x,
00454 double* on_y,
00455 double* on_z,
00456 int* err );
00457
00458 /**\brief Get closest point for an array of entities and points
00459 * For surfaces, closest point could be on the void space inside it.
00460 * Get closest point for an array of entities and points. If either the
00461 * number of entities or number of coordinate triples is unity, then all
00462 * points or entities are queried for that entity or point, respectively,
00463 * otherwise each point corresponds to each entity. storage_order should be
00464 * a value in the iBase_StorageOrder enum.
00465 * \param instance FBiGeom instance handle
00466 * \param entity_handles Entity(ies) being queried
00467 * \param entity_handles_size Number of entities being queried
00468 * \param storage_order Storage order of input points
00469 * \param near_coordinates Coordinates of starting point(s)
00470 * \param near_coordinates_size Number of values in near_coordinates array
00471 * \param on_coordinates Coordinates of closest points
00472 * \param on_coordinates_allocated Allocated size of closest point array
00473 * \param on_coordinates_size Occupied size of closest point array
00474 * \param *err Pointer to error type returned from function
00475 */
00476
00477 void FBiGeom_getEntClosestPtTrimmed( FBiGeom_Instance instance,
00478 iBase_EntityHandle entity_handle,
00479 double near_x,
00480 double near_y,
00481 double near_z,
00482 double* on_x,
00483 double* on_y,
00484 double* on_z,
00485 int* err );
00486
00487 /**\brief Get closest point for an array of entities and points
00488 * For surfaces, it made sure the closest point in on surface.
00489 * Get closest point for an array of entities and points. If either the
00490 * number of entities or number of coordinate triples is unity, then all
00491 * points or entities are queried for that entity or point, respectively,
00492 * otherwise each point corresponds to each entity. storage_order should be
00493 * a value in the iBase_StorageOrder enum.
00494 * \param instance FBiGeom instance handle
00495 * \param entity_handles Entity(ies) being queried
00496 * \param entity_handles_size Number of entities being queried
00497 * \param storage_order Storage order of input points
00498 * \param near_coordinates Coordinates of starting point(s)
00499 * \param near_coordinates_size Number of values in near_coordinates array
00500 * \param on_coordinates Coordinates of closest points
00501 * \param on_coordinates_allocated Allocated size of closest point array
00502 * \param on_coordinates_size Occupied size of closest point array
00503 * \param *err Pointer to error type returned from function
00504 */
00505 void FBiGeom_getArrClosestPt( FBiGeom_Instance instance,
00506 iBase_EntityHandle const* entity_handles,
00507 int entity_handles_size,
00508 int storage_order,
00509 double const* near_coordinates,
00510 int near_coordinates_size,
00511 double** on_coordinates,
00512 int* on_coordinates_allocated,
00513 int* on_coordinates_size,
00514 int* err );
00515
00516 /**\brief Get the normal vector on an entity at the given position
00517 * Get the normal vector on an entity at the given position.
00518 * \param instance FBiGeom instance handle
00519 * \param entity_handle Entity being queried
00520 * \param x Coordinates of starting point
00521 * \param y Coordinates of starting point
00522 * \param z Coordinates of starting point
00523 * \param nrml_i Normal vector at starting point
00524 * \param nrml_j Normal vector at starting point
00525 * \param nrml_k Normal vector at starting point
00526 * \param *err Pointer to error type returned from function
00527 */
00528 void FBiGeom_getEntNrmlXYZ( FBiGeom_Instance instance,
00529 iBase_EntityHandle entity_handle,
00530 double x,
00531 double y,
00532 double z,
00533 double* nrml_i,
00534 double* nrml_j,
00535 double* nrml_k,
00536 int* err );
00537
00538 /**\brief Get the normal vector on an entity(ies) at given position(s)
00539 *
00540 * Get the normal vector on an entity(ies) at given position(s). If either
00541 * the number of entities or number of coordinate triples is unity, then all
00542 * points or entities are queried for that entity or point, respectively,
00543 * otherwise each point corresponds to each entity. storage_order should be
00544 * a value in the iBase_StorageOrder enum.
00545 * \param instance FBiGeom instance handle
00546 * \param entity_handles Entity(ies) being queried
00547 * \param entity_handles_size Number of entities being queried
00548 * \param storage_order Storage order of coordinates
00549 * \param coordinates Starting coordinates
00550 * \param coordinates_size Number of values in coordinates array
00551 * \param normals Normal coordinates
00552 * \param normals_allocated Allocated size of normals array
00553 * \param normals_size Occupied size of normals array
00554 * \param *err Pointer to error type returned from function
00555 */
00556 void FBiGeom_getArrNrmlXYZ( FBiGeom_Instance instance,
00557 iBase_EntityHandle const* entity_handles,
00558 int entity_handles_size,
00559 int storage_order,
00560 double const* coordinates,
00561 int coordinates_size,
00562 double** normals,
00563 int* normals_allocated,
00564 int* normals_size,
00565 int* err );
00566
00567 /**\brief Get the normal vector AND closest point on an entity at given
00568 * position
00569 *
00570 * Get the normal vector AND closest point on an entity at a given position.
00571 * \param entity_handle Entity being queried
00572 * \param instance FBiGeom instance handle
00573 * \param x Starting coordinates
00574 * \param y Starting coordinates
00575 * \param z Starting coordinates
00576 * \param pt_x Closest point
00577 * \param pt_y Closest point
00578 * \param pt_z Closest point
00579 * \param nrml_i Normal at closest point
00580 * \param nrml_j Normal at closest point
00581 * \param nrml_k Normal at closest point
00582 * \param *err Pointer to error type returned from function
00583 */
00584 void FBiGeom_getEntNrmlPlXYZ( FBiGeom_Instance instance,
00585 iBase_EntityHandle entity_handle,
00586 double x,
00587 double y,
00588 double z,
00589 double* pt_x,
00590 double* pt_y,
00591 double* pt_z,
00592 double* nrml_i,
00593 double* nrml_j,
00594 double* nrml_k,
00595 int* err );
00596
00597 /**\brief Get the normal vector AND closest point on an entity(ies) at
00598 * given position(s)
00599 *
00600 * Get the normal vector AND closest point on an entity(ies) at given
00601 * position(s). If either the number of entities or number of coordinate
00602 * triples is unity, then all points or entities are queried for that entity
00603 * or point, respectively, otherwise each point corresponds to each entity.
00604 * storage_order should be a value in the iBase_StorageOrder enum.
00605 * \param instance FBiGeom instance handle
00606 * \param entity_handles Entity(ies) being queried
00607 * \param entity_handles_size Number of entity(ies) being queried
00608 * \param storage_order Storage order in near_coordinates array
00609 * \param near_coordinates Starting coordinates
00610 * \param near_coordinates_size Number of values in near_coordinates array
00611 * \param on_coordinates Closest point array
00612 * \param on_coordinates_allocated Allocated size of closest point array
00613 * \param on_coordinates_size Occupied size of closest point array
00614 * \param normals Normal array
00615 * \param normals_allocated Allocated size of normal array
00616 * \param normals_size Occupied size of normal array
00617 * \param *err Pointer to error type returned from function
00618 */
00619 void FBiGeom_getArrNrmlPlXYZ( FBiGeom_Instance instance,
00620 iBase_EntityHandle const* entity_handles,
00621 int entity_handles_size,
00622 int storage_order,
00623 double const* near_coordinates,
00624 int near_coordinates_size,
00625 double** on_coordinates,
00626 int* on_coordinates_allocated,
00627 int* on_coordinates_size,
00628 double** normals,
00629 int* normals_allocated,
00630 int* normals_size,
00631 int* err );
00632
00633 /**\brief Get the tangent vector on an entity at given position
00634 *
00635 * Get the tangent vector on an entity at a given position.
00636 * \param instance FBiGeom instance handle
00637 * \param entity_handle Entity being queried
00638 * \param x Starting coordinates
00639 * \param y Starting coordinates
00640 * \param z Starting coordinates
00641 * \param tgnt_i Tangent at closest point
00642 * \param tgnt_j Tangent at closest point
00643 * \param tgnt_k Tangent at closest point
00644 * \param *err Pointer to error type returned from function
00645 */
00646 void FBiGeom_getEntTgntXYZ( FBiGeom_Instance instance,
00647 iBase_EntityHandle entity_handle,
00648 double x,
00649 double y,
00650 double z,
00651 double* tgnt_i,
00652 double* tgnt_j,
00653 double* tgnt_k,
00654 int* err );
00655
00656 /**\brief Get the tangent vector on an entity(ies) at given position(s)
00657 *
00658 * Get the tangent vector on an entity(ies) at given position(s). If either
00659 * the number of entities or number of coordinate triples is unity, then all
00660 * points or entities are queried for that entity or point, respectively,
00661 * otherwise each point corresponds to each entity. storage_order should be
00662 * a value in the iBase_StorageOrder enum
00663 * \param instance FBiGeom instance handle
00664 * \param entity_handles Entity(ies) being queried
00665 * \param entity_handles_size Number of entities being queried
00666 * \param storage_order Storage order of coordinates
00667 * \param coordinates Starting coordinates
00668 * \param coordinates_size Number of values in coordinates array
00669 * \param tangents Tangent coordinates
00670 * \param tangents_allocated Allocated size of tangents array
00671 * \param tangents_size Occupied size of tangents array
00672 * \param *err Pointer to error type returned from function
00673 */
00674 void FBiGeom_getArrTgntXYZ( FBiGeom_Instance instance,
00675 iBase_EntityHandle const* entity_handles,
00676 int entity_handles_size,
00677 int storage_order,
00678 double const* coordinates,
00679 int coordinates_size,
00680 double** tangents,
00681 int* tangents_allocated,
00682 int* tangents_size,
00683 int* err );
00684
00685 /**\brief Get the two principle curvature vectors for a face at a point
00686 *
00687 * Get the two principle curvature vectors for a face at a point.
00688 * Magnitudes of vectors are curvature, directions are directions of
00689 * principal curvatures.
00690 * \param instance FBiGeom instance handle
00691 * \param face_handle Face being queried
00692 * \param x Position being queried
00693 * \param y Position being queried
00694 * \param z Position being queried
00695 * \param cvtr1_i Maximum curvature vector
00696 * \param cvtr1_j Maximum curvature vector
00697 * \param cvtr1_k Maximum curvature vector
00698 * \param cvtr2_i Minimum curvature vector
00699 * \param cvtr2_j Minimum curvature vector
00700 * \param cvtr2_k Minimum curvature vector
00701 * \param *err Pointer to error type returned from function
00702 */
00703 void FBiGeom_getFcCvtrXYZ( FBiGeom_Instance instance,
00704 iBase_EntityHandle face_handle,
00705 double x,
00706 double y,
00707 double z,
00708 double* cvtr1_i,
00709 double* cvtr1_j,
00710 double* cvtr1_k,
00711 double* cvtr2_i,
00712 double* cvtr2_j,
00713 double* cvtr2_k,
00714 int* err );
00715
00716 /**\brief Get the principle curvature vector for an edge at a point
00717 *
00718 * Get the principle curvature vector for an edge at a point. Magnitude of
00719 * vector is the curvature, direction is direction of principal curvature.
00720 * \param instance FBiGeom instance handle
00721 * \param edge_handle Edge being queried
00722 * \param x Position being queried
00723 * \param y Position being queried
00724 * \param z Position being queried
00725 * \param cvtr_i Maximum curvature vector
00726 * \param cvtr_j Maximum curvature vector
00727 * \param cvtr_k Maximum curvature vector
00728 * \param *err Pointer to error type returned from function
00729 */
00730 void FBiGeom_getEgCvtrXYZ( FBiGeom_Instance instance,
00731 iBase_EntityHandle edge_handle,
00732 double x,
00733 double y,
00734 double z,
00735 double* cvtr_i,
00736 double* cvtr_j,
00737 double* cvtr_k,
00738 int* err );
00739
00740 /**\brief Get the curvature(s) on an entity(ies) at given position(s)
00741 *
00742 * Get the curvature(s) on an entity(ies) at given position(s). If either
00743 * the number of entities or number of coordinate triples is unity, then all
00744 * points or entities are queried for that entity or point, respectively,
00745 * otherwise each point corresponds to each entity. storage_order should be
00746 * a value in the iBase_StorageOrder enum.
00747 * \param instance FBiGeom instance handle
00748 * \param entity_handles Entity(ies) being queried
00749 * \param entity_handles_size Number of entities being queried
00750 * \param storage_order Storage order of coordinates
00751 * \param coords Starting coordinates
00752 * \param coords_size Number of values in coordinates array
00753 * \param cvtr_1 First principal curvatures
00754 * \param cvtr_1_allocated Allocated size of first curvature array
00755 * \param cvtr_1_size Occupied size of first curvature array
00756 * \param cvtr_2 Second principal curvatures
00757 * \param cvtr_2_allocated Allocated size of second curvature array
00758 * \param cvtr_2_size Occupied size of second curvature array
00759 * \param *err Pointer to error type returned from function
00760 */
00761 void FBiGeom_getEntArrCvtrXYZ( FBiGeom_Instance instance,
00762 iBase_EntityHandle const* entity_handles,
00763 int entity_handles_size,
00764 int storage_order,
00765 double const* coords,
00766 int coords_size,
00767 double** cvtr_1,
00768 int* cvtr_1_allocated,
00769 int* cvtr_1_size,
00770 double** cvtr_2,
00771 int* cvtr_2_allocated,
00772 int* cvtr_2_size,
00773 int* err );
00774
00775 /**\brief Get closest point, tangent, and curvature of edge
00776 *
00777 * Get closest point, tangent, and curvature of edge.
00778 * \param instance FBiGeom instance handle
00779 * \param edge_handle Edge being queried
00780 * \param x Point at which entity is being queried
00781 * \param y Point at which entity is being queried
00782 * \param z Point at which entity is being queried
00783 * \param on_x Closest point at point being queried
00784 * \param on_y Closest point at point being queried
00785 * \param on_z Closest point at point being queried
00786 * \param tgnt_i Tangent at point being queried
00787 * \param tgnt_j Tangent at point being queried
00788 * \param tgnt_k Tangent at point being queried
00789 * \param cvtr_i Curvature at point being queried
00790 * \param cvtr_j Curvature at point being queried
00791 * \param cvtr_k Curvature at point being queried
00792 * \param *err Pointer to error type returned from function
00793 */
00794 void FBiGeom_getEgEvalXYZ( FBiGeom_Instance instance,
00795 iBase_EntityHandle edge_handle,
00796 double x,
00797 double y,
00798 double z,
00799 double* on_x,
00800 double* on_y,
00801 double* on_z,
00802 double* tgnt_i,
00803 double* tgnt_j,
00804 double* tgnt_k,
00805 double* cvtr_i,
00806 double* cvtr_j,
00807 double* cvtr_k,
00808 int* err );
00809
00810 /**\brief Get closest point, tangent, and curvature of face
00811 *
00812 * Get closest point, tangent, and curvature of face. If any of input
00813 * coordinate pointers are NULL, that value is not returned.
00814 * \param instance FBiGeom instance handle
00815 * \param face_handle Face being queried
00816 * \param x Point at which entity is being queried
00817 * \param y Point at which entity is being queried
00818 * \param z Point at which entity is being queried
00819 * \param on_x Closest point at point being queried
00820 * \param on_y Closest point at point being queried
00821 * \param on_z Closest point at point being queried
00822 * \param nrml_i Normal at point being queried
00823 * \param nrml_j Normal at point being queried
00824 * \param nrml_k Normal at point being queried
00825 * \param cvtr1_i First principal curvature at point being queried
00826 * \param cvtr1_j First principal curvature at point being queried
00827 * \param cvtr1_k First principal curvature at point being queried
00828 * \param cvtr2_i Second principal curvature at point being queried
00829 * \param cvtr2_j Second principal curvature at point being queried
00830 * \param cvtr2_k Second principal curvature at point being queried
00831 * \param *err Pointer to error type returned from function
00832 */
00833 void FBiGeom_getFcEvalXYZ( FBiGeom_Instance instance,
00834 iBase_EntityHandle face_handle,
00835 double x,
00836 double y,
00837 double z,
00838 double* on_x,
00839 double* on_y,
00840 double* on_z,
00841 double* nrml_i,
00842 double* nrml_j,
00843 double* nrml_k,
00844 double* cvtr1_i,
00845 double* cvtr1_j,
00846 double* cvtr1_k,
00847 double* cvtr2_i,
00848 double* cvtr2_j,
00849 double* cvtr2_k,
00850 int* err );
00851
00852 /**\brief Get the closest point(s), tangent(s), and curvature(s) on an
00853 * entity(ies) at given position(s)
00854 *
00855 * Get the closest point(s), tangent(s), and curvature(s) on an entity(ies)
00856 * at given position(s). If either the number of entities or number of
00857 * coordinate triples is unity, then all points or entities are queried for
00858 * that entity or point, respectively, otherwise each point corresponds to
00859 * each entity. storage_order should be a value in the iBase_StorageOrder
00860 * enum.
00861 * \param instance FBiGeom instance handle
00862 * \param edge_handles Edge(s) being queried
00863 * \param edge_handles_size Number of edges being queried
00864 * \param storage_order Storage order of coordinates
00865 * \param coords Starting coordinates
00866 * \param coords_size Number of values in coordinates array
00867 * \param on_coords Closest point array
00868 * \param on_coords_allocated Allocated size of closest point array
00869 * \param on_coords_size Occupied size of closest point array
00870 * \param tangent Tangent array
00871 * \param tangent_allocated Allocated size of tangent array
00872 * \param tangent_size Occupied size of tangent array
00873 * \param cvtr First principal curvatures
00874 * \param cvtr_allocated Allocated size of first curvature array
00875 * \param cvtr_size Occupied size of first curvature array
00876 * \param *err Pointer to error type returned from function
00877 */
00878 void FBiGeom_getArrEgEvalXYZ( FBiGeom_Instance instance,
00879 iBase_EntityHandle const* edge_handles,
00880 int edge_handles_size,
00881 int storage_order,
00882 double const* coords,
00883 int coords_size,
00884 double** on_coords,
00885 int* on_coords_allocated,
00886 int* on_coords_size,
00887 double** tangent,
00888 int* tangent_allocated,
00889 int* tangent_size,
00890 double** cvtr,
00891 int* cvtr_allocated,
00892 int* cvtr_size,
00893 int* err );
00894
00895 /**\brief Get the closest point(s), tangent(s), and curvature(s) on an
00896 * entity(ies) at given position(s)
00897 *
00898 * Get the closest point(s), tangent(s), and curvature(s) on an entity(ies)
00899 * at given position(s). If either the number of entities or number of
00900 * coordinate triples is unity, then all points or entities are queried for
00901 * that entity or point, respectively, otherwise each point corresponds to
00902 * each entity. storage_order should be a value in the iBase_StorageOrder
00903 * enum.
00904 * \param instance FBiGeom instance handle
00905 * \param edge_handles Edge(s) being queried
00906 * \param edge_handles_size Number of edges being queried
00907 * \param storage_order Storage order of coordinates
00908 * \param coords Starting coordinates
00909 * \param coords_size Number of values in coordinates array
00910 * \param on_coords Closest point array
00911 * \param on_coords_allocated Allocated size of closest point array
00912 * \param on_coords_size Occupied size of closest point array
00913 * \param normal Normal array
00914 * \param normal_allocated Allocated size of normal array
00915 * \param normal_size Occupied size of normal array
00916 * \param cvtr_1 First principal curvatures
00917 * \param cvtr_1_allocated Allocated size of first curvature array
00918 * \param cvtr_1_size Occupied size of first curvature array
00919 * \param cvtr_2 Second principal curvatures
00920 * \param cvtr_2_allocated Allocated size of second curvature array
00921 * \param cvtr_2_size Occupied size of second curvature array
00922 * \param *err Pointer to error type returned from function
00923 */
00924 void FBiGeom_getArrFcEvalXYZ( FBiGeom_Instance instance,
00925 iBase_EntityHandle const* face_handles,
00926 int face_handles_size,
00927 int storage_order,
00928 double const* coords,
00929 int coords_size,
00930 double** on_coords,
00931 int* on_coords_allocated,
00932 int* on_coords_size,
00933 double** normal,
00934 int* normal_allocated,
00935 int* normal_size,
00936 double** cvtr1,
00937 int* cvtr1_allocated,
00938 int* cvtr1_size,
00939 double** cvtr2,
00940 int* cvtr2_allocated,
00941 int* cvtr2_size,
00942 int* err );
00943
00944 /**\brief Get the bounding box of the specified entity
00945 *
00946 * Get the bounding box of the specified entity
00947 * \param instance FBiGeom instance handle
00948 * \param entity_handle Entity being queried
00949 * \param min_x Minimum coordinate of bounding box
00950 * \param min_y Minimum coordinate of bounding box
00951 * \param min_z Minimum coordinate of bounding box
00952 * \param max_x Maximum coordinate of bounding box
00953 * \param max_y Maximum coordinate of bounding box
00954 * \param max_z Maximum coordinate of bounding box
00955 * \param *err Pointer to error type returned from function
00956 */
00957 void FBiGeom_getEntBoundBox( FBiGeom_Instance instance,
00958 iBase_EntityHandle entity_handle,
00959 double* min_x,
00960 double* min_y,
00961 double* min_z,
00962 double* max_x,
00963 double* max_y,
00964 double* max_z,
00965 int* err );
00966
00967 /**\brief Get the bounding box of the specified entities
00968 *
00969 * Get the bounding box of the specified entities. Storage order passed in
00970 * should be a member of iBase_StorageOrder enum.
00971 * \param instance FBiGeom instance handle
00972 * \param entity_handles Entity handles being queried
00973 * \param enttiy_handles_size Number of entities being queried
00974 * \param storage_order Storage order of coordinates passed back
00975 * \param min_corner Minimum coordinates of bounding boxes
00976 * \param min_corner_allocated Allocated size of minimum coordinates array
00977 * \param min_corner_size Occupied size of minimum coordinates array
00978 * \param max_corner Maximum coordinates of bounding boxes
00979 * \param max_corner_allocated Allocated size of maximum coordinates array
00980 * \param max_corner_size Occupied size of maximum coordinates array
00981 * \param *err Pointer to error type returned from function
00982 */
00983 void FBiGeom_getArrBoundBox( FBiGeom_Instance instance,
00984 iBase_EntityHandle const* entity_handles,
00985 int entity_handles_size,
00986 int storage_order,
00987 double** min_corner,
00988 int* min_corner_allocated,
00989 int* min_corner_size,
00990 double** max_corner,
00991 int* max_corner_allocated,
00992 int* max_corner_size,
00993 int* err );
00994
00995 /**\brief Get coordinates of specified vertex
00996 *
00997 * Get coordinates of specified vertex.
00998 * \param instance FBiGeom instance handle
00999 * \param vertex_handle Geom vertex being queried
01000 * \param *x Pointer to x coordinate returned from function
01001 * \param *y Pointer to y coordinate returned from function
01002 * \param *z Pointer to z coordinate returned from function
01003 * \param *err Pointer to error type returned from function
01004 */
01005 void FBiGeom_getVtxCoord( FBiGeom_Instance instance,
01006 iBase_EntityHandle vertex_handle,
01007 double* x,
01008 double* y,
01009 double* z,
01010 int* err );
01011
01012 /**\brief Get coordinates of specified vertices
01013 *
01014 * Get coordinates of specified vertices. If storage order is passed in
01015 * with a value other than iBase_UNDETERMINED, coordinates are returned
01016 * in the specified storage order, otherwise storage order is that native
01017 * to the implementation. Storage order of returned coordinates is also
01018 * returned.
01019 * \param instance FBiGeom instance handle
01020 * \param vertex_handles Array of geom vertex handles whose coordinates are
01021 * being requested
01022 * \param vertex_handles_size Number of vertices in vertex_handles array
01023 * \param storage_order Storage order requested for coordinate data
01024 * \param *coords Pointer to array of coordinates returned from function
01025 * \param *coords_allocated Pointer to allocated size of coords array
01026 * \param *coords_size Pointer to occupied size of coords array
01027 * \param *err Pointer to error type returned from function
01028 */
01029 void FBiGeom_getVtxArrCoords( FBiGeom_Instance instance,
01030 iBase_EntityHandle const* entity_handles,
01031 int entity_handles_size,
01032 int storage_order,
01033 double** coordinates,
01034 int* coordinates_allocated,
01035 int* coordinates_size,
01036 int* err );
01037
01038 /**\brief Intersect a ray with the model
01039 *
01040 * Intersect a ray with the model. Storage orders passed in should be a
01041 * member of the iBase_StorageOrder enumeration.
01042 * \param instance FBiGeom instance handle
01043 * \param x Point from which ray is fired
01044 * \param y Point from which ray is fired
01045 * \param z Point from which ray is fired
01046 * \param dir_x Direction in which ray is fired
01047 * \param dir_y Direction in which ray is fired
01048 * \param dir_z Direction in which ray is fired
01049 * \param intersect_entity_handles Entities intersected by ray
01050 * \param intersect_entity_handles_allocated Allocated size of
01051 * intersections array
01052 * \param intersect_entity_hangles_size Occupied size of intersections array
01053 * \param storage_order Storage order of coordinates passed back
01054 * \param intersect_coords Coordinates of intersections
01055 * \param intersect_coords_allocated Allocated size of coordinates array
01056 * \param intersect_coords_size Occupied size of coordinates array
01057 * \param param_coords Distances along ray of intersections
01058 * \param param_coords_allocated Allocated size of param_coords array
01059 * \param param_coords_size Occupied size of param_coords array
01060 * \param *err Pointer to error type returned from function
01061 */
01062 void FBiGeom_getPntRayIntsct( FBiGeom_Instance instance,
01063 double x,
01064 double y,
01065 double z,
01066 double dir_x,
01067 double dir_y,
01068 double dir_z,
01069 iBase_EntityHandle** intersect_entity_handles,
01070 int* intersect_entity_handles_allocated,
01071 int* intersect_entity_hangles_size,
01072 int storage_order,
01073 double** intersect_coords,
01074 int* intersect_coords_allocated,
01075 int* intersect_coords_size,
01076 double** param_coords,
01077 int* param_coords_allocated,
01078 int* param_coords_size,
01079 int* err );
01080
01081 /**\brief Intersect an array of rays with the model
01082 *
01083 * Intersect an array of rays with the model. Storage order passed in is
01084 * a member of the iBase_StorageOrder enumeration.
01085 * \param instance FBiGeom instance handle
01086 * \param storage_order Storage order of input coordinates
01087 * \param coords Points from which rays are fired
01088 * \param coords_size Number of points from which rays are fired
01089 * \param directions Directions in which rays are fired
01090 * \param directions_size Number of coordinates in directions array
01091 * \param intersect_entity_handles Entities intersected by ray
01092 * \param intersect_entity_handles_allocated Allocated size of intersections
01093 * array
01094 * \param intersect_entity_hangles_size Occupied size of intersections array
01095 * \param offset Offset[i] is offset into intersect_entity_handles of ith
01096 * ray
01097 * \param offset_allocated Allocated size of offset array
01098 * \param offset_size Occupied size of offset array
01099 * \param storage_order Storage order of coordinates passed back
01100 * \param intersect_coords Coordinates of intersections
01101 * \param intersect_coords_allocated Allocated size of coordinates array
01102 * \param intersect_coords_size Occupied size of coordinates array
01103 * \param param_coords Distances along ray of intersections
01104 * \param param_coords_allocated Allocated size of param_coords array
01105 * \param param_coords_size Occupied size of param_coords array
01106 * \param *err Pointer to error type returned from function
01107 */
01108 void FBiGeom_getPntArrRayIntsct( FBiGeom_Instance instance,
01109 int storage_order,
01110 const double* coords,
01111 int coords_size,
01112 const double* directions,
01113 int directions_size,
01114 iBase_EntityHandle** intersect_entity_handles,
01115 int* intersect_entity_handles_allocated,
01116 int* intersect_entity_hangles_size,
01117 int** offset,
01118 int* offset_allocated,
01119 int* offset_size,
01120 double** intersect_coords,
01121 int* intersect_coords_allocated,
01122 int* intersect_coords_size,
01123 double** param_coords,
01124 int* param_coords_allocated,
01125 int* param_coords_size,
01126 int* err );
01127
01128 /**\brief Get the entity on which a point is located
01129 *
01130 * Get the entity on which a point is located
01131 * \param instance FBiGeom instance handle
01132 * \param x Point being queried
01133 * \param y Point being queried
01134 * \param z Point being queried
01135 * \param entity_handle Entity on which point is located
01136 * \param *err Pointer to error type returned from function
01137 */
01138 void FBiGeom_getPntClsf( FBiGeom_Instance instance,
01139 double x,
01140 double y,
01141 double z,
01142 iBase_EntityHandle* entity_handle,
01143 int* err );
01144
01145 /**\brief Get the entities on which points are located
01146 *
01147 * Get the entities on which points are located. Storage orders should be
01148 * members of the iBase_StorageOrder enumeration.
01149 * \param instance FBiGeom instance handle
01150 * \param storage_order Storage order of coordinates in coords
01151 * \param coords Points being queried
01152 * \param coords_size Number of entries in coords array
01153 * \param entity_handles Entities on which points are located
01154 * \param entity_handles_allocated Allocated size of entity_handles array
01155 * \param entity_handles_size Occupied size of entity_handles array
01156 * \param *err Pointer to error type returned from function
01157 */
01158 void FBiGeom_getPntArrClsf( FBiGeom_Instance instance,
01159 int storage_order,
01160 double const* coords,
01161 int coords_size,
01162 iBase_EntityHandle** entity_handles,
01163 int* entity_handles_allocated,
01164 int* entity_handles_size,
01165 int* err );
01166
01167 /**\brief Get the sense of a face with respect to a region
01168 *
01169 * Get the sense of a face with respect to a region. Sense returned is -1,
01170 * 0, or 1, representing "reversed", "both", or "forward". "both" sense
01171 * indicates that face bounds the region once with each sense.
01172 * \param instance FBiGeom instance handle
01173 * \param face Face being queried
01174 * \param region Region being queried
01175 * \param sense_out Sense of face with respect to region
01176 * \param *err Pointer to error type returned from function
01177 */
01178 void FBiGeom_getEntNrmlSense( FBiGeom_Instance instance,
01179 iBase_EntityHandle face,
01180 iBase_EntityHandle region,
01181 int* sense_out,
01182 int* err );
01183
01184 /**\brief Get the senses of an array of faces with respect to an array of
01185 * regions
01186 *
01187 * Get the senses of an array of faces with respect to an array of regions.
01188 * Sense returned is -1, 0, or 1, representing "reversed", "both", or
01189 * "forward". "both" sense indicates that face bounds the region once with
01190 * each sense.
01191 * \param instance FBiGeom instance handle
01192 * \param face_handles Faces being queried
01193 * \param face_handles_size Size of face handles array
01194 * \param region_handles Regions being queried
01195 * \param region_handles_size Size of region handles array
01196 * \param sense Senses of faces with respect to regions
01197 * \param sense_allocated Allocated size of senses array
01198 * \param sense_size Occupied size of senses array
01199 * \param *err Pointer to error type returned from function
01200 */
01201 void FBiGeom_getArrNrmlSense( FBiGeom_Instance instance,
01202 iBase_EntityHandle const* face_handles,
01203 int face_handles_size,
01204 iBase_EntityHandle const* region_handles,
01205 int region_handles_size,
01206 int** sense,
01207 int* sense_allocated,
01208 int* sense_size,
01209 int* err );
01210
01211 /**\brief Get the sense of an edge with respect to a face
01212 *
01213 * Get the sense of an edge with respect to a face. Sense returned is -1,
01214 * 0, or 1, representing "reversed", "both", or "forward". "both" sense
01215 * indicates that edge bounds the face once with each sense.
01216 * \param instance FBiGeom instance handle
01217 * \param edge Edge being queried
01218 * \param face Face being queried
01219 * \param sense_out Sense of edge with respect to face
01220 * \param *err Pointer to error type returned from function
01221 */
01222 void FBiGeom_getEgFcSense( FBiGeom_Instance,
01223 iBase_EntityHandle edge,
01224 iBase_EntityHandle face,
01225 int* sense_out,
01226 int* err );
01227
01228 /**\brief Get the senses of an array of edges with respect to an array of
01229 * faces
01230 *
01231 * Get the senses of an array of edges with respect to an array of faces.
01232 * Sense returned is -1, 0, or 1, representing "reversed", "both", or
01233 * "forward". "both" sense indicates that edge bounds the face once with
01234 * each sense.
01235 * \param instance FBiGeom instance handle
01236 * \param edge_handles Edges being queried
01237 * \param edge_handles_size Size of edge handles array
01238 * \param face_handles Faces being queried
01239 * \param face_handles_size Size of face handles array
01240 * \param sense Senses of faces with respect to regions
01241 * \param sense_allocated Allocated size of senses array
01242 * \param sense_size Occupied size of senses array
01243 * \param *err Pointer to error type returned from function
01244 */
01245 void FBiGeom_getEgFcArrSense( FBiGeom_Instance instance,
01246 iBase_EntityHandle const* edge_handles,
01247 int edge_handles_size,
01248 iBase_EntityHandle const* face_handles,
01249 int face_handles_size,
01250 int** sense,
01251 int* sense_allocated,
01252 int* sense_size,
01253 int* err );
01254
01255 /**\brief Get the sense of a vertex pair with respect to an edge
01256 *
01257 * Get the sense of a vertex pair with respect to an edge. Sense returned
01258 * is -1, 0, or 1, representing "reversed", "both", or "forward". "both"
01259 * sense indicates that vertices are identical and that vertex bounds both
01260 * sides of the edge.
01261 * \param instance FBiGeom instance handle
01262 * \param edge Edge being queried
01263 * \param vertex1 First vertex being queried
01264 * \param vertex2 Second vertex being queried
01265 * \param sense_out Sense of vertex pair with respect to edge
01266 * \param *err Pointer to error type returned from function
01267 */
01268 void FBiGeom_getEgVtxSense( FBiGeom_Instance instance,
01269 iBase_EntityHandle edge,
01270 iBase_EntityHandle vertex1,
01271 iBase_EntityHandle vertex2,
01272 int* sense_out,
01273 int* err );
01274
01275 /**\brief Get the senses of vertex pair with respect to a edges
01276 *
01277 * Get the senses of vertex pairs with respect to edges. Sense returned is
01278 * -1, 0, or 1, representing "reversed", "both", or "forward". "both" sense
01279 * indicates that both vertices in pair are identical and that vertex bounds
01280 * both sides of the edge.
01281 * \param instance FBiGeom instance handle
01282 * \param edge_handles Edges being queried
01283 * \param edge_handles_size Number of edges being queried
01284 * \param vertex_handles_1 First vertex being queried
01285 * \param vertex_handles_1_size Number of vertices in vertices array
01286 * \param vertex_handles_2 Second vertex being queried
01287 * \param vertex_handles_2_size Number of vertices in vertices array
01288 * \param sense Sense of vertex pair with respect to edge
01289 * \param sense_allocated Allocated size of sense array
01290 * \param sense_size Occupied size of sense array
01291 * \param *err Pointer to error type returned from function
01292 */
01293 void FBiGeom_getEgVtxArrSense( FBiGeom_Instance instance,
01294 iBase_EntityHandle const* edge_handles,
01295 int edge_handles_size,
01296 iBase_EntityHandle const* vertex_handles_1,
01297 int veretx_handles_1_size,
01298 iBase_EntityHandle const* vertex_handles_2,
01299 int vertex_handles_2_size,
01300 int** sense,
01301 int* sense_allocated,
01302 int* sense_size,
01303 int* err );
01304
01305 /**\brief Return the measure (length, area, or volume) of entities
01306 *
01307 * Return the measure (length, area, or volume) of entities
01308 * \param instance FBiGeom instance handle
01309 * \param entity_handles Array of entities being queried
01310 * \param entity_handles_size Number of entities in entity array
01311 * \param measures Measures of entities being queried
01312 * \param measures_allocated Allocated size of measures array
01313 * \param measures_size Occupied size of measures array
01314 * \param *err Pointer to error type returned from function
01315 */
01316 void FBiGeom_measure( FBiGeom_Instance instance,
01317 iBase_EntityHandle const* entity_handles,
01318 int entity_handles_size,
01319 double** measures,
01320 int* measures_allocated,
01321 int* measures_size,
01322 int* err );
01323
01324 /**\brief Get the geometric type of a face
01325 *
01326 * Get the geometric type of a face. Specific types depend on
01327 * implementation.
01328 * \param instance FBiGeom instance handle
01329 * \param face_handle Face being queried
01330 * \param face_type Face type
01331 * \param face_type_length Length of face type string
01332 */
01333 void FBiGeom_getFaceType( FBiGeom_Instance instance,
01334 iBase_EntityHandle face_handle,
01335 char* face_type,
01336 int* err,
01337 int* face_type_length );
01338
01339 /**\brief Return whether interface has information about parameterization
01340 *
01341 * Return whether an interface has information about parameterization (!=0)
01342 * or not (0)
01343 * \param instance FBiGeom instance handle
01344 * \param is_parametric If non-zero, interface has information about
01345 * parameterization
01346 * \param *err Pointer to error type returned from function
01347 */
01348 void FBiGeom_getParametric( FBiGeom_Instance instance, int* is_parametric, int* err );
01349
01350 /**\brief Return whether an entity has a parameterization
01351 *
01352 * Return whether an entity has a parameterization (=1) or not (=0)
01353 * \param instance FBiGeom instance handle
01354 * \param entity_handle Entity being queried
01355 * \param is_parametric Entity has a parameterization (=1) or not (=0)
01356 * \param *err Pointer to error type returned from function
01357 */
01358 void FBiGeom_isEntParametric( FBiGeom_Instance instance, iBase_EntityHandle entity_handle, int* parametric, int* err );
01359
01360 /**\brief Return whether entities have parameterizations
01361 *
01362 * Return whether entities have parameterizations (=1) or not (=0)
01363 * \param instance FBiGeom instance handle
01364 * \param entity_handles Entities being queried
01365 * \param entity_handles_size Number of entities being queried
01366 * \param is_parametric entity_handles[i] has a parameterization (=1) or
01367 * not (=0)
01368 * \param is_parametric_allocated Allocated size of is_parametric array
01369 * \param is_parametric_size Occupied size of is_parametric array
01370 * \param *err Pointer to error type returned from function
01371 */
01372 void FBiGeom_isArrParametric( FBiGeom_Instance instance,
01373 iBase_EntityHandle const* entity_handles,
01374 int entity_handles_size,
01375 int** is_parametric,
01376 int* is_parametric_allocated,
01377 int* is_parametric_size,
01378 int* err );
01379
01380 /**\brief Return coordinate position at specified parametric position on
01381 * entity
01382 *
01383 * Return coordinate position at specified parametric position on entity.
01384 * \param instance FBiGeom instance handle
01385 * \param entity_handle Entity being queried
01386 * \param u Parametric coordinate being queried
01387 * \param v Parametric coordinate being queried
01388 * \param x Spatial coordinate at parametric position being queried
01389 * \param y Spatial coordinate at parametric position being queried
01390 * \param z Spatial coordinate at parametric position being queried
01391 * \param *err Pointer to error type returned from function
01392 */
01393 void FBiGeom_getEntUVtoXYZ( FBiGeom_Instance instance,
01394 iBase_EntityHandle entity_handle,
01395 double u,
01396 double v,
01397 double* x,
01398 double* y,
01399 double* z,
01400 int* err );
01401
01402 /**\brief Return coordinate positions at specified parametric position(s)
01403 * on entity(ies)
01404 *
01405 * Return coordinate positions at specified parametric position(s) on
01406 * entity(ies). If either the number of entities or number of parametric
01407 * coordinate pairs is unity, then all points or entities are queried for
01408 * that entity or point, respectively, otherwise each point corresponds to
01409 * each entity. storage_order should be a value in the iBase_StorageOrder
01410 * enum.
01411 * \param instance FBiGeom instance handle
01412 * \param entity_handles Entities being queried
01413 * \param entity_handles_size Number of entities being queried
01414 * \param storage_order Storage order of uv coordinates input and xyz
01415 * coordinate output
01416 * \param uv Coordinates being queried
01417 * \param uv_size Number of coordinates in array
01418 * \param coordinates Coordinates of parametric positions
01419 * \param coordinates_allocated Allocated size of coordinates array
01420 * \param coordinates_size Occupied size of coordinates array
01421 * \param *err Pointer to error type returned from function
01422 */
01423 void FBiGeom_getArrUVtoXYZ( FBiGeom_Instance instance,
01424 iBase_EntityHandle const* entity_handles,
01425 int entity_handles_size,
01426 int storage_order,
01427 double const* uv,
01428 int uv_size,
01429 double** coordinates,
01430 int* coordinates_allocated,
01431 int* coordinates_size,
01432 int* err );
01433
01434 /**\brief Return coordinate position at specified parametric position on
01435 * entity
01436 *
01437 * Return coordinate position at specified parametric position on entity.
01438 * \param instance FBiGeom instance handle
01439 * \param entity_handle Entity being queried
01440 * \param u Parametric coordinate being queried
01441 * \param x Spatial coordinate at parametric position being queried
01442 * \param y Spatial coordinate at parametric position being queried
01443 * \param z Spatial coordinate at parametric position being queried
01444 * \param *err Pointer to error type returned from function
01445 */
01446 void FBiGeom_getEntUtoXYZ( FBiGeom_Instance instance,
01447 iBase_EntityHandle entity_handle,
01448 double u,
01449 double* x,
01450 double* y,
01451 double* z,
01452 int* err );
01453
01454 /**\brief Return coordinate positions at specified parametric position(s)
01455 * on entity(ies)
01456 *
01457 * Return coordinate positions at specified parametric position(s) on
01458 * entity(ies). If either the number of entities or number of parametric
01459 * coordinate pairs is unity, then all points or entities are queried for
01460 * that entity or point, respectively, otherwise each point corresponds to
01461 * each entity. storage_order should be a value in the iBase_StorageOrder
01462 * enum.
01463 * \param instance FBiGeom instance handle
01464 * \param entity_handles Entities being queried
01465 * \param entity_handles_size Number of entities being queried
01466 * \param storage_order Storage order of resulting coordinates
01467 * \param uv Coordinates being queried
01468 * \param uv_size Number of coordinates in array
01469 * \param coordinates Coordinates of parametric positions
01470 * \param coordinates_allocated Allocated size of coordinates array
01471 * \param coordinates_size Occupied size of coordinates array
01472 * \param *err Pointer to error type returned from function
01473 */
01474 void FBiGeom_getArrUtoXYZ( FBiGeom_Instance instance,
01475 iBase_EntityHandle const* entity_handles,
01476 int entity_handles_size,
01477 double const* u,
01478 int u_size,
01479 int storage_order,
01480 double** on_coords,
01481 int* on_coords_allocated,
01482 int* on_coords_size,
01483 int* err );
01484
01485 /**\brief Return parametric position at specified spatial position on
01486 * entity
01487 *
01488 * Return parametric position at specified spatial position on entity
01489 * \param instance FBiGeom instance handle
01490 * \param entity_handle Entity being queried
01491 * \param x Spatial coordinate being queried
01492 * \param y Spatial coordinate being queried
01493 * \param z Spatial coordinate being queried
01494 * \param u Parametric coordinate at spatial position being queried
01495 * \param v Parametric coordinate at spatial position being queried
01496 * \param *err Pointer to error type returned from function
01497 */
01498 void FBiGeom_getEntXYZtoUV( FBiGeom_Instance instance,
01499 iBase_EntityHandle entity_handle,
01500 double x,
01501 double y,
01502 double z,
01503 double* u,
01504 double* v,
01505 int* err );
01506
01507 /**\brief Return parametric position at specified spatial position on
01508 * entity
01509 *
01510 * Return parametric position at specified spatial position on entity
01511 * \param instance FBiGeom instance handle
01512 * \param entity_handle Entity being queried
01513 * \param x Spatial coordinate being queried
01514 * \param y Spatial coordinate being queried
01515 * \param z Spatial coordinate being queried
01516 * \param u Parametric coordinate at spatial position being queried
01517 * \param *err Pointer to error type returned from function
01518 */
01519 void FBiGeom_getEntXYZtoU( FBiGeom_Instance instance,
01520 iBase_EntityHandle entity_handle,
01521 double x,
01522 double y,
01523 double z,
01524 double* u,
01525 int* err );
01526
01527 /**\brief Return parametric positions at specified spatial position(s) on
01528 * entity(ies)
01529 * Return parametric positions at specified spatial position(s) on
01530 * entity(ies). If either the number of entities or number of spatial
01531 * coordinate triples is unity, then all points or entities are queried for
01532 * that entity or point, respectively, otherwise each point corresponds to
01533 * each entity. storage_order should be a value in the iBase_StorageOrder
01534 * enum.
01535 * \param instance FBiGeom instance handle
01536 * \param entity_handles Entities being queried
01537 * \param entity_handles_size Number of entities being queried
01538 * \param storage_order Storage order of spatial coordinates input
01539 * \param coordinates Coordinates being queried
01540 * \param coordinates_size Number of coordinates in array
01541 * \param uv Coordinates of parametric positions
01542 * \param uv_allocated Allocated size of coordinates array
01543 * \param uv_size Occupied size of coordinates array
01544 * \param *err Pointer to error type returned from function
01545 */
01546 void FBiGeom_getArrXYZtoUV( FBiGeom_Instance instance,
01547 iBase_EntityHandle const* entity_handles,
01548 int entity_handles_size,
01549 int storage_order,
01550 double const* coordinates,
01551 int coordinates_size,
01552 double** uv,
01553 int* uv_allocated,
01554 int* uv_size,
01555 int* err );
01556
01557 /**\brief Return spatial positions at specified parametric position(s) on
01558 * entity(ies)
01559 *
01560 * Return spatial positions at specified parametric position(s) on
01561 * entity(ies). If either the number of entities or number of spatial
01562 * coordinate triples is unity, then all points or entities are queried for
01563 * that entity or point, respectively, otherwise each point corresponds to
01564 * each entity. storage_order should be a value in the iBase_StorageOrder
01565 * enum.
01566 * \param instance FBiGeom instance handle
01567 * \param entity_handles Entities being queried
01568 * \param entity_handles_size Number of entities being queried
01569 * \param storage_order Storage order of spatial coordinates input
01570 * \param coordinates Coordinates being queried
01571 * \param coordinates_size Number of coordinates in array
01572 * \param u Coordinates of parametric positions
01573 * \param u_allocated Allocated size of coordinates array
01574 * \param u_size Occupied size of coordinates array
01575 * \param *err Pointer to error type returned from function
01576 */
01577 void FBiGeom_getArrXYZtoU( FBiGeom_Instance instance,
01578 iBase_EntityHandle const* entity_handles,
01579 int entity_handles_size,
01580 int storage_order,
01581 double const* coordinates,
01582 int coordinates_size,
01583 double** u,
01584 int* u_allocated,
01585 int* u_size,
01586 int* err );
01587
01588 /**\brief Return parametric position at specified spatial position on
01589 * entity, based on parametric position hint
01590 *
01591 * Return parametric position at specified spatial position on entity,
01592 * based on parametric position hint. For this function, u and v are input
01593 * with parameters from which to start search. Typically this will reduce
01594 * the search time for new parametric coordinates.
01595 * \param instance FBiGeom instance handle
01596 * \param entity_handle Entity being queried
01597 * \param x Spatial coordinate being queried
01598 * \param y Spatial coordinate being queried
01599 * \param z Spatial coordinate being queried
01600 * \param u Parametric coordinate at spatial position being queried
01601 * \param v Parametric coordinate at spatial position being queried
01602 * \param *err Pointer to error type returned from function
01603 */
01604 void FBiGeom_getEntXYZtoUVHint( FBiGeom_Instance instance,
01605 iBase_EntityHandle entity_handle,
01606 double x,
01607 double y,
01608 double z,
01609 double* u,
01610 double* v,
01611 int* err );
01612
01613 /**\brief Return parametric positions at specified spatial position(s) on
01614 * entity(ies), based on parametric position hints
01615 * Return parametric positions at specified spatial position(s) on
01616 * entity(ies), based on parametric position hints. If either the number of
01617 * entities or number of spatial coordinate triples is unity, then all
01618 * points or entities are queried for that entity or point, respectively,
01619 * otherwise each point corresponds to each entity. storage_order should be
01620 * a value in the iBase_StorageOrder enum.
01621 * \param instance FBiGeom instance handle
01622 * \param entity_handles Entities being queried
01623 * \param entity_handles_size Number of entities being queried
01624 * \param storage_order Storage order of spatial coordinates input
01625 * \param coordinates Coordinates being queried
01626 * \param coordinates_size Number of coordinates in array
01627 * \param uv Coordinates of parametric positions
01628 * \param uv_allocated Allocated size of coordinates array
01629 * \param uv_size Occupied size of coordinates array
01630 * \param *err Pointer to error type returned from function
01631 */
01632 void FBiGeom_getArrXYZtoUVHint( FBiGeom_Instance instance,
01633 iBase_EntityHandle const* entity_handles,
01634 int entity_handles_size,
01635 int storage_order,
01636 double const* coords,
01637 int coords_size,
01638 double** uv,
01639 int* uv_allocated,
01640 int* uv_size,
01641 int* err );
01642
01643 /**\brief Get parametric range of entity
01644 *
01645 * Get parametric range of entity
01646 * \param instance FBiGeom instance handle
01647 * \param entity_handle Entity being queried
01648 * \param u_min Minimum parametric coordinate for entity
01649 * \param v_min Minimum parametric coordinate for entity
01650 * \param u_max Maximum parametric coordinate for entity
01651 * \param v_max Maximum parametric coordinate for entity
01652 * \param *err Pointer to error type returned from function
01653 */
01654 void FBiGeom_getEntUVRange( FBiGeom_Instance instance,
01655 iBase_EntityHandle entity_handle,
01656 double* u_min,
01657 double* v_min,
01658 double* u_max,
01659 double* v_max,
01660 int* err );
01661
01662 /**\brief Get parametric range of entity
01663 *
01664 * Get parametric range of entity
01665 * \param instance FBiGeom instance handle
01666 * \param entity_handle Entity being queried
01667 * \param u_min Minimum parametric coordinate for entity
01668 * \param u_max Maximum parametric coordinate for entity
01669 * \param *err Pointer to error type returned from function
01670 */
01671 void FBiGeom_getEntURange( FBiGeom_Instance instance,
01672 iBase_EntityHandle entity_handle,
01673 double* u_min,
01674 double* u_max,
01675 int* err );
01676
01677 /**\brief Get parametric range of entities
01678 *
01679 * Get parametric range of entities
01680 * \param instance FBiGeom instance handle
01681 * \param entity_handles Entities being queried
01682 * \param entity_handles_size Number of entities being queried
01683 * \param storage_order Storage order of parametric coordinates being
01684 * returned
01685 * \param uv_min Minimum parametric coordinate for entities
01686 * \param uv_min_allocated Allocated size of minimum parametric coordinate
01687 * array
01688 * \param uv_min_size Occupied size of minimum parametric coordinate array
01689 * \param uv_max Maximum parametric coordinate for entities
01690 * \param uv_max_allocated Allocated size of maximum parametric coordinate
01691 * array
01692 * \param uv_max_size Occupied size of maximum parametric coordinate array
01693 * \param *err Pointer to error type returned from function
01694 */
01695 void FBiGeom_getArrUVRange( FBiGeom_Instance instance,
01696 iBase_EntityHandle const* entity_handles,
01697 int entity_handles_size,
01698 int storage_order,
01699 double** uv_min,
01700 int* uv_min_allocated,
01701 int* uv_min_size,
01702 double** uv_max,
01703 int* uv_max_allocated,
01704 int* uv_max_size,
01705 int* err );
01706
01707 /**\brief Get parametric range of entities
01708 *
01709 * Get parametric range of entities
01710 * \param instance FBiGeom instance handle
01711 * \param entity_handles Entities being queried
01712 * \param entity_handles_size Number of entities being queried
01713 * \param storage_order Storage order of parametric coordinates being
01714 * returned
01715 * \param u_min Minimum parametric coordinate for entities
01716 * \param u_min_allocated Allocated size of minimum parametric coordinate
01717 * array
01718 * \param u_min_size Occupied size of minimum parametric coordinate array
01719 * \param u_max Maximum parametric coordinate for entities
01720 * \param u_max_allocated Allocated size of maximum parametric coordinate
01721 * array
01722 * \param u_max_size Occupied size of maximum parametric coordinate array
01723 * \param *err Pointer to error type returned from function
01724 */
01725 void FBiGeom_getArrURange( FBiGeom_Instance instance,
01726 iBase_EntityHandle const* entity_handles,
01727 int entity_handles_size,
01728 double** u_min,
01729 int* u_min_allocated,
01730 int* u_min_size,
01731 double** u_max,
01732 int* u_max_allocated,
01733 int* u_max_size,
01734 int* err );
01735
01736 /**\brief Return the face parametric coordinates for a parametric position
01737 * on a bounding edge
01738 *
01739 * Return the face parametric coordinates for a parametric position on a
01740 * bounding edge
01741 * \param instance FBiGeom instance handle
01742 * \param edge_handle Edge being queried
01743 * \param face_handle Face being queried
01744 * \param in_u Parametric position on edge
01745 * \param u Corresponding parametric position on face
01746 * \param v Corresponding parametric position on face
01747 * \param *err Pointer to error type returned from function
01748 */
01749 void FBiGeom_getEntUtoUV( FBiGeom_Instance instance,
01750 iBase_EntityHandle edge_handle,
01751 iBase_EntityHandle face_handle,
01752 double in_u,
01753 double* u,
01754 double* v,
01755 int* err );
01756
01757 /**\brief Return parametric coordinates on face of vertex position
01758 *
01759 * Return parametric coordinates on face of vertex position
01760 * \param instance FBiGeom instance handle
01761 * \param vertex_handle Vertex being queried
01762 * \param face_handle Face being queried
01763 * \param u Corresponding parametric position on face
01764 * \param v Corresponding parametric position on face
01765 * \param *err Pointer to error type returned from function
01766 */
01767 void FBiGeom_getVtxToUV( FBiGeom_Instance instance,
01768 iBase_EntityHandle vertex_handle,
01769 iBase_EntityHandle face_handle,
01770 double* u,
01771 double* v,
01772 int* err );
01773
01774 /**\brief Return parametric coordinates on edge of vertex position
01775 *
01776 * Return parametric coordinates on edge of vertex position
01777 * \param instance FBiGeom instance handle
01778 * \param vertex_handle Vertex being queried
01779 * \param edge_handle Edge being queried
01780 * \param u Corresponding parametric position on face
01781 * \param *err Pointer to error type returned from function
01782 */
01783 void FBiGeom_getVtxToU( FBiGeom_Instance instance,
01784 iBase_EntityHandle vertex_handle,
01785 iBase_EntityHandle edge_handle,
01786 double* u,
01787 int* err );
01788
01789 /**\brief Return the face parametric coordinates for a parametric position
01790 * on bounding edges
01791 *
01792 * Return the face parametric coordinates for a parametric position on
01793 * bounding edges
01794 * \param instance FBiGeom instance handle
01795 * \param edge_handles Edges being queried
01796 * \param edge_handles_size Number of edges being queried
01797 * \param face_handles Faces being queried
01798 * \param face_handles_size Number of faces being queried
01799 * \param u_in Parametric positions on edges
01800 * \param u_in_size Number of parametric positions on edges
01801 * \param storage_order Storage order of coordinates returned
01802 * \param uv Corresponding parametric positions on faces
01803 * \param uv_allocated Allocated size of parameter array
01804 * \param uv_size Occupied size of parameter array
01805 * \param *err Pointer to error type returned from function
01806 */
01807 void FBiGeom_getArrUtoUV( FBiGeom_Instance instance,
01808 iBase_EntityHandle const* edge_handles,
01809 int edge_handles_size,
01810 iBase_EntityHandle const* face_handles,
01811 int face_handles_size,
01812 double const* u_in,
01813 int u_in_size,
01814 int storage_order,
01815 double** uv,
01816 int* uv_allocated,
01817 int* uv_size,
01818 int* err );
01819
01820 /**\brief Return parametric coordinates on faces of vertex positions
01821 *
01822 * Return parametric coordinates on faces of vertex positions
01823 * \param instance FBiGeom instance handle
01824 * \param vertex_handles Vertices being queried
01825 * \param vertex_handles_size Number of vertices being queried
01826 * \param face_handles Faces being queried
01827 * \param face_handles_size Number of faces being queried
01828 * \param storage_order Storage order of coordinates returned
01829 * \param uv Corresponding parametric positions on faces
01830 * \param uv_allocated Allocated size of positions array
01831 * \param uv_size Occupied size of positions array
01832 * \param *err Pointer to error type returned from function
01833 */
01834 void FBiGeom_getVtxArrToUV( FBiGeom_Instance instance,
01835 iBase_EntityHandle const* vertex_handles,
01836 int vertex_handles_size,
01837 iBase_EntityHandle const* face_handles,
01838 int face_handles_size,
01839 int storage_order,
01840 double** uv,
01841 int* uv_allocated,
01842 int* uv_size,
01843 int* err );
01844
01845 /**\brief Return parametric coordinates on edges of vertex positions
01846 *
01847 * Return parametric coordinates on edges of vertex positions
01848 * \param instance FBiGeom instance handle
01849 * \param vertex_handles Vertices being queried
01850 * \param vertex_handles_size Number of vertices being queried
01851 * \param edge_handles Edges being queried
01852 * \param edge_handles_size Number of edges being queried
01853 * \param u Corresponding parametric positions on faces
01854 * \param u_allocated Allocated size of positions array
01855 * \param u_size Occupied size of positions array
01856 * \param *err Pointer to error type returned from function
01857 */
01858 void FBiGeom_getVtxArrToU( FBiGeom_Instance instance,
01859 iBase_EntityHandle const* vertex_handles,
01860 int vertex_handles_size,
01861 iBase_EntityHandle const* edge_handles,
01862 int edge_handles_size,
01863 double** u,
01864 int* u_allocated,
01865 int* u_size,
01866 int* err );
01867
01868 /**\brief Return the normal at a specified parametric position
01869 *
01870 * Return the normal at a specified parametric position
01871 * \param instance FBiGeom instance handle
01872 * \param entity_handle Entity being queried
01873 * \param u Parametric position being queried
01874 * \param v Parametric position being queried
01875 * \param nrml_i Normal at specified position
01876 * \param nrml_j Normal at specified position
01877 * \param nrml_k Normal at specified position
01878 * \param *err Pointer to error type returned from functino
01879 */
01880 void FBiGeom_getEntNrmlUV( FBiGeom_Instance instance,
01881 iBase_EntityHandle entity_handle,
01882 double u,
01883 double v,
01884 double* nrml_i,
01885 double* nrml_j,
01886 double* nrml_k,
01887 int* err );
01888
01889 /**\brief Return the normals at specified parametric positions
01890 *
01891 * Return the normals at specified parametric positions. If either the
01892 * number of entities or number of spatial coordinate pairs is unity, then
01893 * all points or entities are queried for that entity or point,
01894 * respectively, otherwise each point corresponds to each entity.
01895 * storage_order should be a value in the iBase_StorageOrder enum.
01896 * \param instance FBiGeom instance handle
01897 * \param face_handle Faces being queried
01898 * \param face_handles_size Number of faces being queried
01899 * \param storage_order Storage order of coordinates input and output
01900 * \param parameters Parametric coordinates being queried
01901 * \param parameters_size Number of coordinates in array
01902 * \param normals Coordinates of normals at specified positions
01903 * \param normals_allocated Allocated size of normals array
01904 * \param normals_size Occupied size of normals array
01905 * \param *err Pointer to error type returned from function
01906 */
01907 void FBiGeom_getArrNrmlUV( FBiGeom_Instance instance,
01908 iBase_EntityHandle const* face_handles,
01909 int face_handles_size,
01910 int storage_order,
01911 double const* parameters,
01912 int parameters_size,
01913 double** normals,
01914 int* normals_allocated,
01915 int* normals_size,
01916 int* err );
01917
01918 /**\brief Return the tangent at a specified parametric position
01919 *
01920 * Return the tangent at a specified parametric position
01921 * \param instance FBiGeom instance handle
01922 * \param entity_handle Entity being queried
01923 * \param u Parametric position being queried
01924 * \param tgnt_i Tangent at specified position
01925 * \param tgnt_j Tangent at specified position
01926 * \param tgnt_k Tangent at specified position
01927 * \param *err Pointer to error type returned from function
01928 */
01929 void FBiGeom_getEntTgntU( FBiGeom_Instance instance,
01930 iBase_EntityHandle entity_handle,
01931 double u,
01932 double* tgnt_i,
01933 double* tgnt_j,
01934 double* tgnt_k,
01935 int* err );
01936
01937 /**\brief Return the tangents at specified parametric positions
01938 *
01939 * Return the tangents at specified parametric positions. If either the
01940 * number of entities or number of spatial coordinates is unity, then all
01941 * points or entities are queried for that entity or point, respectively,
01942 * otherwise each point corresponds to each entity. storage_order should be
01943 * a value in the iBase_StorageOrder enum.
01944 * \param instance FBiGeom instance handle
01945 * \param edge_handle Edges being queried
01946 * \param edge_handles_size Number of faces being queried
01947 * \param storage_order Storage order of coordinates output
01948 * \param parameters Parametric coordinates being queried
01949 * \param parameters_size Number of coordinates in array
01950 * \param tangents Coordinates of tangents at specified positions
01951 * \param tangents_allocated Allocated size of tangents array
01952 * \param tangents_size Occupied size of tangents array
01953 * \param *err Pointer to error type returned from function
01954 */
01955 void FBiGeom_getArrTgntU( FBiGeom_Instance instance,
01956 iBase_EntityHandle const* edge_handles,
01957 int edge_handles_size,
01958 int storage_order,
01959 double const* parameters,
01960 int parameters_size,
01961 double** tangents,
01962 int* tangents_allocated,
01963 int* tangents_size,
01964 int* err );
01965
01966 /**\brief Get the first derivative of a face at specified parametric
01967 * position
01968 *
01969 * Get the first derivative of a face at specified parametric position.
01970 * \param instance FBiGeom instance handle
01971 * \param entity_handle Entity being queried
01972 * \param u Parametric position being queried
01973 * \param v Parametric position being queried
01974 * \param dvrt_u Pointer to coordinates of derivative with respect to u at
01975 * specified position returned from function
01976 * \param dvrt_u_allocated Allocated size of dvrt_u array
01977 * \param dvrt_u_size Occupied size of dvrt_u array
01978 * \param dvrt_v Pointer to coordinates of derivative with respect to v at
01979 * specified position returned from function
01980 * \param dvrt_v_allocated Allocated size of dvrt_v array
01981 * \param dvrt_v_size Occupied size of dvrt_v array
01982 * \param *err Pointer to error type returned from function
01983 */
01984 void FBiGeom_getEnt1stDrvt( FBiGeom_Instance instance,
01985 iBase_EntityHandle entity_handle,
01986 double u,
01987 double v,
01988 double** drvt_u,
01989 int* drvt_u_allocated,
01990 int* drvt_u_size,
01991 double** drvt_v,
01992 int* dvrt_v_allocated,
01993 int* dvrt_v_size,
01994 int* err );
01995
01996 /**\brief Get the first derivatives of faces at specified parametric
01997 * positions
01998 *
01999 * Get the first derivatives of faces at specified parametric positions.
02000 * storage_order should be a value in the iBase_StorageOrder enum.
02001 * \param instance FBiGeom instance handle
02002 * \param entity_handles Array of entity handles being queried
02003 * \param entity_handles_size Number of entities in entity_handles array
02004 * \param storage_order Storage order of coordinates input and output
02005 * \param uv Parametric coordinates being queried
02006 * \param uv_size Number of coordinates in array
02007 * \param dvrt_u Pointer to array of coordinates of derivative with respect
02008 * to u at specified position returned from function
02009 * \param dvrt_u_allocated Allocated size of dvrt_u array
02010 * \param dvrt_u_size Occupied size of dvrt_u array
02011 * \param u_offset Pointer to array of offsets for dvrt_u returned from
02012 * function
02013 * \param u_offset_allocated Pointer to allocated size of u_offset array
02014 * \param u_offset_size Pointer to occupied size of u_offset array
02015 * \param dvrt_v Pointer to array of coordinates of derivative with respect
02016 * to v at specified position returned from function
02017 * \param dvrt_v_allocated Allocated size of dvrt_v array
02018 * \param dvrt_v_size Occupied size of dvrt_v array
02019 * \param v_offset Pointer to array of offsets for dvrt_v returned from
02020 * function
02021 * \param v_offset_allocated Pointer to allocated size of v_offset array
02022 * \param v_offset_size Pointer to occupied size of v_offset array
02023 * \param *err Pointer to error type returned from function
02024 */
02025 void FBiGeom_getArr1stDrvt( FBiGeom_Instance instance,
02026 iBase_EntityHandle const* entity_handles,
02027 int entity_handles_size,
02028 int storage_order,
02029 double const* uv,
02030 int uv_size,
02031 double** dvrt_u,
02032 int* dvrt_u_allocated,
02033 int* dvrt_u_size,
02034 int** u_offset,
02035 int* u_offset_allocated,
02036 int* u_offset_size,
02037 double** dvrt_v,
02038 int* dvrt_v_allocated,
02039 int* dvrt_v_size,
02040 int** v_offset,
02041 int* v_offset_allocated,
02042 int* v_offset_size,
02043 int* err );
02044
02045 /**\brief Get the second derivative of a face at specified parametric
02046 * position
02047 *
02048 * Get the second derivative of a face at specified parametric position.
02049 * \param instance FBiGeom instance handle
02050 * \param entity_handle Entity being queried
02051 * \param u Parametric position being queried
02052 * \param v Parametric position being queried
02053 * \param dvrt_uu Pointer to coordinates of derivative with respect to u at
02054 * specified position returned from function
02055 * \param dvrt_uu_allocated Allocated size of dvrt_uu array
02056 * \param dvrt_uu_size Occupied size of dvrt_uu array
02057 * \param dvrt_vv Pointer to coordinates of derivative with respect to v at
02058 * specified position returned from function
02059 * \param dvrt_vv_allocated Allocated size of dvrt_vv array
02060 * \param dvrt_vv_size Occupied size of dvrt_vv array
02061 * \param dvrt_uv Pointer to coordinates of derivative with respect to u and
02062 * v at specified position returned from function
02063 * \param dvrt_uv_allocated Allocated size of dvrt_uv array
02064 * \param dvrt_uv_size Occupied size of dvrt_uv array
02065 * \param *err Pointer to error type returned from function
02066 */
02067 void FBiGeom_getEnt2ndDrvt( FBiGeom_Instance instance,
02068 iBase_EntityHandle entity_handle,
02069 double u,
02070 double v,
02071 double** drvt_uu,
02072 int* drvt_uu_allocated,
02073 int* drvt_uu_size,
02074 double** drvt_vv,
02075 int* dvrt_vv_allocated,
02076 int* dvrt_vv_size,
02077 double** drvt_uv,
02078 int* dvrt_uv_allocated,
02079 int* dvrt_uv_size,
02080 int* err );
02081
02082 /**\brief Get the second derivatives of faces at specified parametric
02083 * positions
02084 *
02085 * Get the second derivatives of faces at specified parametric positions.
02086 * storage_order should be a value in the iBase_StorageOrder enum.
02087 * \param instance FBiGeom instance handle
02088 * \param entity_handles Array of entity handles being queried
02089 * \param entity_handles_size Number of entities in entity_handles array
02090 * \param storage_order Storage order of coordinates input and output
02091 * \param uv Parametric coordinates being queried
02092 * \param uv_size Number of coordinates in array
02093 * \param dvrt_uu Pointer to array of coordinates of derivative with respect
02094 * to u at specified position returned from function
02095 * \param dvrt_uu_allocated Allocated size of dvrt_uu array
02096 * \param dvrt_uu_size Occupied size of dvrt_uu array
02097 * \param uu_offset Pointer to array of offsets for dvrt_uu returned from
02098 * function
02099 * \param uu_offset_allocated Pointer to allocated size of uu_offset array
02100 * \param uu_offset_size Pointer to occupied size of uu_offset array
02101 * \param dvrt_vv Pointer to array of coordinates of derivative with respect
02102 * to v at specified position returned from function
02103 * \param dvrt_vv_allocated Allocated size of dvrt_vv array
02104 * \param dvrt_vv_size Occupied size of dvrt_vv array
02105 * \param vv_offset Pointer to array of offsets for dvrt_vv returned from
02106 * function
02107 * \param vv_offset_allocated Pointer to allocated size of vv_offset array
02108 * \param vv_offset_size Pointer to occupied size of vv_offset array
02109 * \param dvrt_uv Pointer to array of coordinates of derivative with respect
02110 * to u and v at specified position returned from function
02111 * \param dvrt_uv_allocated Allocated size of dvrt_uv array
02112 * \param dvrt_uv_size Occupied size of dvrt_uv array
02113 * \param uv_offset Pointer to array of offsets for dvrt_uv returned from
02114 * function
02115 * \param uv_offset_allocated Pointer to allocated size of uv_offset array
02116 * \param uv_offset_size Pointer to occupied size of uv_offset array
02117 * \param *err Pointer to error type returned from function
02118 */
02119 void FBiGeom_getArr2ndDrvt( FBiGeom_Instance instance,
02120 iBase_EntityHandle const* entity_handles,
02121 int entity_handles_size,
02122 int storage_order,
02123 double const* uv,
02124 int uv_size,
02125 double** dvtr_uu,
02126 int* dvrt_uu_allocated,
02127 int* dvrt_uu_size,
02128 int** uu_offset,
02129 int* uu_offset_allocated,
02130 int* uu_offset_size,
02131 double** dvtr_vv,
02132 int* dvrt_vv_allocated,
02133 int* dvrt_vv_size,
02134 int** vv_offset,
02135 int* vv_offset_allocated,
02136 int* vv_offset_size,
02137 double** dvrt_uv,
02138 int* dvrt_uv_allocated,
02139 int* dvrt_uv_size,
02140 int** uv_offset,
02141 int* uv_offset_allocated,
02142 int* uv_offset_size,
02143 int* err );
02144
02145 /**\brief Get the two principle curvature vectors for a face at a
02146 * parametric position
02147 *
02148 * Get the two principle curvature vectors for a face at a parametric
02149 * position. Magnitudes of vectors are curvature, directions are
02150 * directions of principal curvatures.
02151 * \param instance FBiGeom instance handle
02152 * \param face_handle Face being queried
02153 * \param u Parametric position being queried
02154 * \param v Parametric position being queried
02155 * \param cvtr1_i Maximum curvature vector
02156 * \param cvtr1_j Maximum curvature vector
02157 * \param cvtr1_k Maximum curvature vector
02158 * \param cvtr2_i Minimum curvature vector
02159 * \param cvtr2_j Minimum curvature vector
02160 * \param cvtr2_k Minimum curvature vector
02161 * \param *err Pointer to error type returned from function
02162 */
02163 void FBiGeom_getFcCvtrUV( FBiGeom_Instance instance,
02164 iBase_EntityHandle face_handle,
02165 double u,
02166 double v,
02167 double* cvtr1_i,
02168 double* cvtr1_j,
02169 double* cvtr1_k,
02170 double* cvtr2_i,
02171 double* cvtr2_j,
02172 double* cvtr2_k,
02173 int* err );
02174
02175 /**\brief Get the curvature(s) on face(s) at given parametric position(s)
02176 *
02177 * Get the curvature(s) on face(s) at given parametric position(s). If
02178 * either the number of faces or number of coordinate pairs is unity, then
02179 * all points or entities are queried for that entity or point,
02180 * respectively, otherwise each point corresponds to each entity.
02181 * storage_order should be a value in the iBase_StorageOrder enum.
02182 * \param instance FBiGeom instance handle
02183 * \param face_handles Face(s) being queried
02184 * \param face_handles_size Number of entities being queried
02185 * \param storage_order Storage order of uv coordinates
02186 * \param uv Starting parametric coordinates
02187 * \param uv_size Number of values in uv array
02188 * \param cvtr_1 First principal curvatures
02189 * \param cvtr_1_allocated Allocated size of first curvature array
02190 * \param cvtr_1_size Occupied size of first curvature array
02191 * \param cvtr_2 Second principal curvatures
02192 * \param cvtr_2_allocated Allocated size of second curvature array
02193 * \param cvtr_2_size Occupied size of second curvature array
02194 * \param *err Pointer to error type returned from function
02195 */
02196 void FBiGeom_getFcArrCvtrUV( FBiGeom_Instance instance,
02197 iBase_EntityHandle const* face_handles,
02198 int face_handles_size,
02199 int storage_order,
02200 double const* uv,
02201 int uv_size,
02202 double** cvtr_1,
02203 int* cvtr_1_allocated,
02204 int* cvtr_1_size,
02205 double** cvtr_2,
02206 int* cvtr_2_allocated,
02207 int* cvtr_2_size,
02208 int* err );
02209
02210 /**\brief Return whether an entity is periodic
02211 *
02212 * Return whether an entity is periodic (=1) or not (=0) in the u and v
02213 * directions.
02214 * \param instance FBiGeom instance handle
02215 * \param entity_handle Entity being queried
02216 * \param in_u Entity is periodic in u direction (=1) or not (=0)
02217 * \param in_v Entity is periodic in v direction (=1) or not (=0)
02218 * \param *err Pointer to error type returned from function
02219 */
02220 void FBiGeom_isEntPeriodic( FBiGeom_Instance instance,
02221 iBase_EntityHandle entity_handle,
02222 int* in_u,
02223 int* in_v,
02224 int* err );
02225
02226 /**\brief Return whether entities are periodic
02227 *
02228 * Return whether entities are periodic (=1) or not (=0) in the u and v
02229 * directions.
02230 * \param instance FBiGeom instance handle
02231 * \param entity_handles Entities being queried
02232 * \param entity_handles_size Number of entities being queried
02233 * \param in_uv Array of pairs of integers representing whether
02234 * entity_handles[i] is periodic (=1) or not (=0) in u and v
02235 * directions
02236 * \param in_uv_allocated Allocated size of in_uv array
02237 * \param in_uv_size Occupied size of in_uv array
02238 * \param *err Pointer to error type returned from function
02239 */
02240 void FBiGeom_isArrPeriodic( FBiGeom_Instance instance,
02241 iBase_EntityHandle const* entity_handles,
02242 int entity_handles_size,
02243 int** in_uv,
02244 int* in_uv_allocated,
02245 int* in_uv_size,
02246 int* err );
02247
02248 /**\brief Return whether a face is degenerate
02249 *
02250 * Return whether a face is degenerate (=1) or not (=0).
02251 * \param instance FBiGeom instance handle
02252 * \param face_handle Face being queried
02253 * \param is_degenerate Face is degenerate (=1) or not (=0)
02254 * \param *err Pointer to error type returned from function
02255 */
02256 void FBiGeom_isFcDegenerate( FBiGeom_Instance instance, iBase_EntityHandle face_handle, int* is_degenerate, int* err );
02257
02258 /**\brief Return whether faces are degenerate
02259 *
02260 * Return whether faces are degenerate (=1) or not (=0).
02261 * \param instance FBiGeom instance handle
02262 * \param face_handles Faces being queried
02263 * \param face_handles_size Number of faces being queried
02264 * \param degenerate face_handles[i] is degenerate (=1) or not (=0)
02265 * \param degenerate_allocated Allocated size of degenerate array
02266 * \param degenerate_size Occupied size of degenerate array
02267 * \param *err Pointer to error type returned from function
02268 */
02269 void FBiGeom_isFcArrDegenerate( FBiGeom_Instance instance,
02270 iBase_EntityHandle const* face_handles,
02271 int face_handles_size,
02272 int** degenerate,
02273 int* degenerate_allocated,
02274 int* degenerate_size,
02275 int* err );
02276
02277 /**\brief Get the tolerance of the instance
02278 *
02279 * Get the tolerance at the modeler level. type is an integer representing
02280 * the type of the tolerance, where 0 = no tolerance information,
02281 * 1 = modeler-level tolerance, 2 = entity-level tolerances. If type is 1,
02282 * tolerance returns the modeler-level tolerance. If type is 2, use
02283 * FBiGeom_getEntTolerance to query the tolerance on a per-entity basis.
02284 * \param instance FBiGeom instance handle
02285 * \param type Type of tolerance used by the modeler
02286 * \param tolerance Modeler-level tolerance, if any
02287 * \param *err Pointer to error type returned from function
02288 */
02289 void FBiGeom_getTolerance( FBiGeom_Instance instance, int* type, double* tolerance, int* err );
02290
02291 /**\brief Get the tolerance of the specified entity
02292 *
02293 * Get the tolerance of the specified entity.
02294 * \param instance FBiGeom instance handle
02295 * \param entity_handle Entity handle being queried
02296 * \param tolerance Pointer to tolerance returned from function
02297 * \param *err Pointer to error type returned from function
02298 */
02299 void FBiGeom_getEntTolerance( FBiGeom_Instance instance,
02300 iBase_EntityHandle entity_handle,
02301 double* tolerance,
02302 int* err );
02303
02304 /**\brief Get the tolerances of the specified entities
02305 *
02306 * Get the tolerances of the specified entities.
02307 * \param instance FBiGeom instance handle
02308 * \param entity_handles Array of entity handles being queried
02309 * \param entity_handles_size Number of entities in entity_handles array
02310 * \param tolerance Pointer to array of tolerances returned from function
02311 * \param tolerance_allocated Pointer to allocated size of tolerance array
02312 * \param tololerance_size Pointer to occupied size of tolerance array
02313 * \param *err Pointer to error type returned from function
02314 */
02315 void FBiGeom_getArrTolerance( FBiGeom_Instance instance,
02316 iBase_EntityHandle const* entity_handles,
02317 int entity_handles_size,
02318 double** tolerances,
02319 int* tolerances_allocated,
02320 int* tolerances_size,
02321 int* err );
02322
02323 /**\brief Initialize an iterator over specified entity type
02324 *
02325 * Initialize an iterator over specified entity type for a specified set or
02326 * instance. Iterator returned can be used as input to functions returning
02327 * the entity for the iterator. If all entities of a specified type are to
02328 * be iterated, specify iBase_ALL_TYPES. Specified type must be a value in
02329 * the iBase_EntityType enumeration.
02330 * \param instance FBiGeom instance handle
02331 * \param entity_set_handle Entity set being iterated
02332 * \param requested_entity_type Type of entity to iterate
02333 * \param entity_iterator Pointer to iterator returned from function
02334 * \param *err Pointer to error type returned from function
02335 */
02336 void FBiGeom_initEntIter( FBiGeom_Instance instance,
02337 iBase_EntitySetHandle entity_set_handle,
02338 int requested_entity_type,
02339 iBase_EntityIterator* entity_iterator,
02340 int* err );
02341
02342 /**\brief Initialize an array iterator over specified entity type and size
02343 *
02344 * Initialize an array iterator over specified entity type and size for a
02345 * specified set or instance. Iterator returned can be used as input to
02346 * functions returning entities for the iterator. If all entities of a
02347 * specified type are to be iterated, specify iBase_ALL_TYPES. Specified
02348 * type must be a value in the iBase_EntityType enumerations.
02349 * \param instance FBiGeom instance handle
02350 * \param entity_set_handle Entity set being iterated
02351 * \param requested_entity_type Type of entity to iterate
02352 * \param requested_array_size Size of chunks of handles returned for each
02353 * value of the iterator
02354 * \param entArr_iterator Pointer to iterator returned from function
02355 * \param *err Pointer to error type returned from function
02356 */
02357 void FBiGeom_initEntArrIter( FBiGeom_Instance instance,
02358 iBase_EntitySetHandle entity_set_handle,
02359 int requested_entity_type,
02360 int requested_array_size,
02361 iBase_EntityArrIterator* entArr_iterator,
02362 int* err );
02363
02364 /**\brief Get entity corresponding to an iterator and increment iterator
02365 *
02366 * Get the entity corresponding to an array iterator, and increment the
02367 * iterator. Also return whether the next value of the iterator has
02368 * an entity (if non-zero, next iterator value is the end of the
02369 * iteration).
02370 * \param instance FBiGeom instance handle
02371 * \param entity_iterator Iterator being queried
02372 * \param entity_handle Pointer to an entity handle corresponding to the
02373 * current value of iterator
02374 * \param has_data Pointer to a flag indicating if the value returned
02375 * in entity_handle is valid. A non-zero value indicates the value
02376 * is valid. A zero value indicates the value is NOT valid.
02377 * \param *err Pointer to error type returned from function
02378 */
02379 void FBiGeom_getNextEntIter( FBiGeom_Instance instance,
02380 iBase_EntityIterator entity_iterator,
02381 iBase_EntityHandle* entity_handle,
02382 int* has_data,
02383 int* err );
02384
02385 /**\brief Get entities contained in array iterator and increment iterator
02386 *
02387 * Get the entities contained in an array iterator, and increment the
02388 * iterator. Also return whether the next value of the iterator has
02389 * any entities (if non-zero, next iterator value is the end of the
02390 * iteration).
02391 * \param instance FBiGeom instance handle
02392 * \param entArr_iterator Iterator being queried
02393 * \param *entity_handles Pointer to array of entity handles contained in
02394 * current value of iterator
02395 * \param *entity_handles_allocated Pointer to allocated size of
02396 * entity_handles array
02397 * \param *entity_handles_size Pointer to occupied size of entity_handles
02398 * array
02399 * \param has_data Pointer to a flag indicating if the value(s) returned
02400 * in entity_handles are valid. A non-zero value indicates the
02401 * value(s) are valid. A zero value indicates the value(s) are NOT
02402 * valid.
02403 * \param *err Pointer to error type returned from function
02404 */
02405 void FBiGeom_getNextEntArrIter( FBiGeom_Instance instance,
02406 iBase_EntityArrIterator entArr_iterator,
02407 iBase_EntityHandle** entity_handles,
02408 int* entity_handles_allocated,
02409 int* entity_handles_size,
02410 int* has_data,
02411 int* err );
02412
02413 /**\brief Reset the iterator
02414 *
02415 * Reset the iterator
02416 * \param instance FBiGeom instance handle
02417 * \param entity_iterator Iterator to reset
02418 * \param *err Pointer to error type returned from function
02419 */
02420 void FBiGeom_resetEntIter( FBiGeom_Instance instance, iBase_EntityIterator entity_iterator, int* err );
02421
02422 /**\brief Reset the array iterator
02423 *
02424 * Reset the array iterator
02425 * \param instance FBiGeom instance handle
02426 * \param entArr_iterator Iterator to reset
02427 * \param *err Pointer to error type returned from function
02428 */
02429 void FBiGeom_resetEntArrIter( FBiGeom_Instance instance, iBase_EntityArrIterator entArr_iterator, int* err );
02430
02431 /**\brief Destroy the specified iterator
02432 *
02433 * Destroy the specified iterator
02434 * \param instance FBiGeom instance handle
02435 * \param entity_iterator Iterator which gets destroyed
02436 * \param *err Pointer to error type returned from function
02437 */
02438 void FBiGeom_endEntIter( FBiGeom_Instance instance, iBase_EntityIterator entity_iterator, int* err );
02439
02440 /**\brief Destroy the specified array iterator
02441 *
02442 * Destroy the specified array iterator
02443 * \param instance FBiGeom instance handle
02444 * \param entArr_iterator Iterator which gets destroyed
02445 * \param *err Pointer to error type returned from function
02446 */
02447 void FBiGeom_endEntArrIter( FBiGeom_Instance instance, iBase_EntityArrIterator entArr_iterator, int* err );
02448
02449 /**\brief Make a copy of the specified entity
02450 *
02451 * Make a copy of the specified entity
02452 * \param instance FBiGeom instance handle
02453 * \param source entity to be copied
02454 * \param copy the newly-created entity
02455 * \param *err Pointer to error type returned from function
02456 */
02457 void FBiGeom_copyEnt( FBiGeom_Instance instance, iBase_EntityHandle source, iBase_EntityHandle* copy, int* err );
02458
02459 /**\brief Sweep (extrude) an entity about an axis
02460 *
02461 * Sweep (extrude) an entity by the given angle about the given axis.
02462 *
02463 * \param instance FBiGeom instance handle
02464 * \param geom_entity the entity to rotate
02465 * \param angle the rotational angle, in degrees
02466 * \param axis_x x coordinate of the axis
02467 * \param axis_y y coordinate of the axis
02468 * \param axis_z z coordinate of the axis
02469 * \param geom_entity2 Pointer to new entity handle returned from function
02470 * \param *err Pointer to error type returned from function
02471 */
02472 void FBiGeom_sweepEntAboutAxis( FBiGeom_Instance instance,
02473 iBase_EntityHandle geom_entity,
02474 double angle,
02475 double axis_x,
02476 double axis_y,
02477 double axis_z,
02478 iBase_EntityHandle* geom_entity2,
02479 int* err );
02480
02481 /**\brief Delete all entities and sets
02482 *
02483 * Delete all entities and sets
02484 * \param instance FBiGeom instance handle
02485 * \param *err Pointer to error type returned from function
02486 */
02487 void FBiGeom_deleteAll( FBiGeom_Instance instance, int* err );
02488
02489 /**\brief Delete specified entity
02490 *
02491 * Delete specified entity
02492 * \param instance FBiGeom instance handle
02493 * \param entity_handle Entity to be deleted
02494 * \param *err Pointer to error type returned from function
02495 */
02496 void FBiGeom_deleteEnt( FBiGeom_Instance instance, iBase_EntityHandle entity_handle, int* err );
02497
02498 /**\brief Create a sphere
02499 *
02500 * Create a sphere of the specified radius centered on the origin.
02501 * \param instance FBiGeom instance handle
02502 * \param radius radius of the sphere
02503 * \param geom_entity Pointer to new entity handle returned from function
02504 * \param *err Pointer to error type returned from function
02505 */
02506 void FBiGeom_createSphere( FBiGeom_Instance instance, double radius, iBase_EntityHandle* geom_entity, int* err );
02507
02508 /**\brief Create a prism
02509 *
02510 * Create a prism parallel to the z-axis and centered at the origin (so
02511 * that its z-coordinate extents are +height/2 and -height/2).
02512 * \param instance FBiGeom instance handle
02513 * \param height height of new prism
02514 * \param n_sides number of sides of new prism
02515 * \param major_rad major radius of new prism
02516 * \param minor_rad minor radius of new prism
02517 * \param geom_entity Pointer to new entity handle returned from function
02518 * \param *err Pointer to error type returned from function
02519 */
02520 void FBiGeom_createPrism( FBiGeom_Instance instance,
02521 double height,
02522 int n_sides,
02523 double major_rad,
02524 double minor_rad,
02525 iBase_EntityHandle* geom_entity,
02526 int* err );
02527
02528 /**\brief Create an axis-oriented box
02529 *
02530 * Create an axis-oriented box of the given dimensions, centered at the
02531 * origin.
02532 * \param instance FBiGeom instance handle
02533 * \param x x dimension of new box
02534 * \param y y dimension of new box
02535 * \param z z dimension of new box
02536 * \param geom_entity Pointer to new entity handle returned from function
02537 * \param *err Pointer to error type returned from function
02538 */
02539 void FBiGeom_createBrick( FBiGeom_Instance instance,
02540 double x,
02541 double y,
02542 double z,
02543 iBase_EntityHandle* geom_entity,
02544 int* err );
02545
02546 /**\brief Create a cylinder
02547 *
02548 * Create a cylinder parallel to the z-axis and centered at the origin (so
02549 * that its z-coordinate extents are +height/2 and -height/2).
02550 * \param instance FBiGeom instance handle
02551 * \param height The height of the cylinder.
02552 * \param major_rad The x-axis radius
02553 * \param minor_rad The y-axis radius. If minor_rad is 0, the cylinder will
02554 * be circular (as if minor_rad == major_rad).
02555 * \param geom_entity Pointer to new entity handle returned from function
02556 * \param *err Pointer to error type returned from function
02557 */
02558 void FBiGeom_createCylinder( FBiGeom_Instance instance,
02559 double height,
02560 double major_rad,
02561 double minor_rad,
02562 iBase_EntityHandle* geom_entity,
02563 int* err );
02564
02565 /**\brief Create a cone or tapered cylinder
02566 *
02567 * Create a cone parallel to the z-axis and centered at the origin (so that
02568 * its z-coordinate extents are +height/2 and -height/2). The 'base' of the
02569 * cylinder is at z = -height/2, and the top is at +height/2.
02570 * \param instance FBiGeom instance handle
02571 * \param height The height of the cone.
02572 * \param major_rad_base The x-axis radius at the base of the cylinder
02573 * \param minor_rad_base The y-axis radius at the base. If minor_rad_base
02574 * is 0, the cylinder will be circular (as if minor_rad_base ==
02575 * major_rad_base)
02576 * \param rad_top The x-axis radius at the top of the cone. The y-axis
02577 * radius at the top of the cone will be inferred to keep the aspect
02578 * ratio of the top of the cone the same as the bottom. If rad_top is
02579 * 0, the cone terminates at a point.
02580 * \param geom_entity Pointer to new entity handle returned from function
02581 * \param *err Pointer to error type returned from function
02582 */
02583 void FBiGeom_createCone( FBiGeom_Instance instance,
02584 double height,
02585 double major_rad_base,
02586 double minor_rad_base,
02587 double rad_top,
02588 iBase_EntityHandle* geom_entity,
02589 int* err );
02590
02591 /**\brief Create a torus
02592 *
02593 * Create a torus centered on the origin and encircling the z-axis.
02594 * \param instance FBiGeom instance handle
02595 * \param major_rad The distance from the origin to the center of the
02596 * torus's circular cross-section.
02597 * \param minor_rad The radius of the cross-section.
02598 * \param geom_entity Pointer to new entity handle returned from function
02599 * \param *err Pointer to error type returned from function
02600 */
02601 void FBiGeom_createTorus( FBiGeom_Instance instance,
02602 double major_rad,
02603 double minor_rad,
02604 iBase_EntityHandle* geom_entity,
02605 int* err );
02606
02607 /**\brief Move an entity by the given vector
02608 *
02609 * Move an entity by translating it along the given vector.
02610 * \param instance FBiGeom instance handle
02611 * \param geom_entity the entity to move
02612 * \param x x coordinate of the vector
02613 * \param y y coordinate of the vector
02614 * \param z z coordinate of the vector
02615 * \param *err Pointer to error type returned from function
02616 */
02617 void FBiGeom_moveEnt( FBiGeom_Instance instance,
02618 iBase_EntityHandle geom_entity,
02619 double x,
02620 double y,
02621 double z,
02622 int* err );
02623
02624 /**\brief Rotate an entity about an axis
02625 *
02626 * Rotate an entity by the given angle about the given axis.
02627 * \param instance FBiGeom instance handle
02628 * \param geom_entity the entity to rotate
02629 * \param angle the rotational angle, in degrees
02630 * \param axis_x x coordinate of the axis
02631 * \param axis_y y coordinate of the axis
02632 * \param axis_z z coordinate of the axis
02633 * \param *err Pointer to error type returned from function
02634 */
02635 void FBiGeom_rotateEnt( FBiGeom_Instance instance,
02636 iBase_EntityHandle geom_entity,
02637 double angle,
02638 double axis_x,
02639 double axis_y,
02640 double axis_z,
02641 int* err );
02642
02643 /**\brief Reflect an entity across a plane
02644 *
02645 * Reflect an entity across the given plane
02646 * \param instance FBiGeom instance handle
02647 * \param geom_entity the entity to reflect,
02648 * \param point_x x coordinate of the point that the reflecting plane goes though
02649 * \param point_y y coordinate of the point that the reflecting plane goes though
02650 * \param point_z z coordinate of the point that the reflecting plane goes though
02651 * \param plane_normal_x x coordinate of the plane's normal
02652 * \param plane_normal_y y coordinate of the plane's normal
02653 * \param plane_normal_z z coordinate of the plane's normal
02654 * \param *err Pointer to error type returned from function
02655 */
02656 void FBiGeom_reflectEnt( FBiGeom_Instance instance,
02657 iBase_EntityHandle geom_entity,
02658 double x,
02659 double y,
02660 double z,
02661 double plane_normal_x,
02662 double plane_normal_y,
02663 double plane_normal_z,
02664 int* err );
02665
02666 /**\brief Scale an entity in the x, y, and z directions
02667 *
02668 * Scale an entity in the x, y, and z directions.
02669 * \param instance FBiGeom instance handle
02670 * \param geom_entity the entity to scale,
02671 * \param point_x x coordinate of the scaling center
02672 * \param point_y y coordinate of the scaling center
02673 * \param point_z z coordinate of the scaling center
02674 * \param scale_x factor to scale by in the x direction
02675 * \param scale_y factor to scale by in the y direction
02676 * \param scale_z factor to scale by in the z direction
02677 * \param *err Pointer to error type returned from function
02678 */
02679 void FBiGeom_scaleEnt( FBiGeom_Instance instance,
02680 iBase_EntityHandle geom_entity,
02681 double x,
02682 double y,
02683 double z,
02684 double scale_x,
02685 double scale_y,
02686 double scale_z,
02687 int* err );
02688
02689 /**\brief Geometrically unite entities
02690 *
02691 * Geometrically unite the specified entities.
02692 * \param instance FBiGeom instance handle
02693 * \param geom_entities Array of entity handles being united
02694 * \param geom_entities_size Number of entities in geom_entities array
02695 * \param geom_entity Pointer to new entity handle returned from function
02696 * \param *err Pointer to error type returned from function
02697 */
02698 void FBiGeom_uniteEnts( FBiGeom_Instance instace,
02699 iBase_EntityHandle const* geom_entities,
02700 int geom_entities_size,
02701 iBase_EntityHandle* geom_entity,
02702 int* err );
02703
02704 /**\brief Geometrically subtract one entity from another
02705 *
02706 * Geometrically subtract the entity tool from the entity blank.
02707 * \param instance FBiGeom instance handle
02708 * \param blank The entity to subtract from
02709 * \param tool The entity to subtract
02710 * \param geom_entity Pointer to new entity handle returned from function
02711 * \param *err Pointer to error type returned from function
02712 */
02713 void FBiGeom_subtractEnts( FBiGeom_Instance instance,
02714 iBase_EntityHandle blank,
02715 iBase_EntityHandle tool,
02716 iBase_EntityHandle* geom_entity,
02717 int* err );
02718
02719 /**\brief Geometrically intersect a pair of entities
02720 *
02721 * Geometrically intersect a pair of entities.
02722 * \param instance FBiGeom instance handle
02723 * \param entity1 The entity to intersect
02724 * \param entity2 The entity to intersect
02725 * \param geom_entity Pointer to new entity handle returned from function
02726 * \param *err Pointer to error type returned from function
02727 */
02728 void FBiGeom_intersectEnts( FBiGeom_Instance instance,
02729 iBase_EntityHandle entity2,
02730 iBase_EntityHandle entity1,
02731 iBase_EntityHandle* geom_entity,
02732 int* err );
02733
02734 /**\brief Section (cut) a region with a plane
02735 *
02736 * Section (cut) a region with a plane, retaining one of the pieces and
02737 * discarding the other.
02738 * \param instance FBiGeom instance handle
02739 * \param geom_entity The entity to section
02740 * \param plane_normal_x x coordinate of the plane's normal
02741 * \param plane_normal_y y coordinate of the plane's normal
02742 * \param plane_normal_z z coordinate of the plane's normal
02743 * \param offset Distance of the plane from the origin
02744 * \param reverse Keep the piece on the normal's side (=0) or not (=1)
02745 * \param geom_entity2 Pointer to new entity handle returned from function
02746 * \param *err Pointer to error type returned from function
02747 */
02748 void FBiGeom_sectionEnt( FBiGeom_Instance instance,
02749 iBase_EntityHandle geom_entity,
02750 double plane_normal_x,
02751 double plane_normal_y,
02752 double plane_normal_z,
02753 double offset,
02754 int reverse,
02755 iBase_EntityHandle* geom_entity2,
02756 int* err );
02757
02758 /**\brief Imprint entities
02759 *
02760 * Imprint entities by merging coincident surfaces.
02761 * \param instance FBiGeom instance handle
02762 * \param geom_entities Array of entity handles being imprinted
02763 * \param geom_entities_size Number of entities in geom_entities array
02764 * \param *err Pointer to error type returned from function
02765 */
02766 void FBiGeom_imprintEnts( FBiGeom_Instance instance,
02767 iBase_EntityHandle const* geom_entities,
02768 int geom_entities_size,
02769 int* err );
02770
02771 /**\brief Merge ents
02772 *
02773 * Merge entities of corresponding topology/geometry within the specified
02774 * tolerance.
02775 * \param instance FBiGeom instance handle
02776 * \param geom_entities Array of entity handles being imprinted
02777 * \param geom_entities_size Number of entities in geom_entities array
02778 * \param tolerance Tolerance within which entities are considered the same
02779 * \param *err Pointer to error type returned from function
02780 */
02781 void FBiGeom_mergeEnts( FBiGeom_Instance instance,
02782 iBase_EntityHandle const* geom_entities,
02783 int geom_entities_size,
02784 double tolerance,
02785 int* err );
02786
02787 /**\brief Create an entity set
02788 *
02789 * Create an entity set, either ordered (isList=1) or unordered
02790 * (isList=0). Unordered entity sets can contain a given entity or
02791 * set only once.
02792 * \param instance FBiGeom instance handle
02793 * \param isList If non-zero, an ordered list is created, otherwise an
02794 * unordered set is created.
02795 * \param entity_set_created Entity set created by function
02796 * \param *err Pointer to error type returned from function
02797 */
02798 void FBiGeom_createEntSet( FBiGeom_Instance instance, int isList, iBase_EntitySetHandle* entity_set_created, int* err );
02799
02800 /**\brief Destroy an entity set
02801 *
02802 * Destroy an entity set
02803 * \param instance FBiGeom instance handle
02804 * \param entity_set Entity set to be destroyed
02805 * \param *err Pointer to error type returned from function
02806 */
02807 void FBiGeom_destroyEntSet( FBiGeom_Instance instance, iBase_EntitySetHandle entity_set, int* err );
02808
02809 /**\brief Return whether a specified set is ordered or unordered
02810 *
02811 * Return whether a specified set is ordered (*is_list=1) or
02812 * unordered (*is_list=0)
02813 * \param instance FBiGeom instance handle
02814 * \param entity_set Entity set being queried
02815 * \param is_list Pointer to flag returned from function
02816 * \param *err Pointer to error type returned from function
02817 */
02818 void FBiGeom_isList( FBiGeom_Instance instance, iBase_EntitySetHandle entity_set, int* is_list, int* err );
02819
02820 /**\brief Get the number of entity sets contained in a set or interface
02821 *
02822 * Get the number of entity sets contained in a set or interface. If
02823 * a set is input which is not the root set, num_hops indicates the
02824 * maximum number of contained sets from entity_set_handle to one of the
02825 * contained sets, not inclusive of the contained set.
02826 * \param instance FBiGeom instance handle
02827 * \param entity_set_handle Entity set being queried
02828 * \param num_hops Maximum hops from entity_set_handle to contained set,
02829 * not inclusive of the contained set
02830 * \param num_sets Pointer to the number of sets returned from function
02831 * \param *err Pointer to error type returned from function
02832 */
02833 void FBiGeom_getNumEntSets( FBiGeom_Instance instance,
02834 iBase_EntitySetHandle entity_set_handle,
02835 int num_hops,
02836 int* num_sets,
02837 int* err );
02838
02839 /**\brief Get the entity sets contained in a set or interface
02840 *
02841 * Get the entity sets contained in a set or interface. If
02842 * a set is input which is not the root set, num_hops indicates the
02843 * maximum number of contained sets from entity_set_handle to one of the
02844 * contained sets, not inclusive of the contained set.
02845 * \param instance FBiGeom instance handle
02846 * \param entity_set_handle Entity set being queried
02847 * \param num_hops Maximum hops from entity_set_handle to contained set,
02848 * not inclusive of the contained set
02849 * \param *contained_set_handles Pointer to array of set handles returned
02850 * from function
02851 * \param contained_set_handles_allocated Pointer to allocated length of
02852 * contained_set_handles array
02853 * \param contained_set_handles_size Pointer to occupied length of
02854 * contained_set_handles array
02855 * \param *err Pointer to error type returned from function
02856 */
02857 void FBiGeom_getEntSets( FBiGeom_Instance instance,
02858 iBase_EntitySetHandle entity_set_handle,
02859 int num_hops,
02860 iBase_EntitySetHandle** contained_set_handles,
02861 int* contained_set_handles_allocated,
02862 int* contained_set_handles_size,
02863 int* err );
02864
02865 /**\brief Add an entity to a set
02866 *
02867 * Add an entity to a set
02868 * \param instance FBiGeom instance handle
02869 * \param entity_handle The entity being added
02870 * \param entity_set Pointer to the set being added to
02871 * \param *err Pointer to error type returned from function
02872 */
02873 void FBiGeom_addEntToSet( FBiGeom_Instance instance,
02874 iBase_EntityHandle entity_handle,
02875 iBase_EntitySetHandle entity_set,
02876 int* err );
02877
02878 /**\brief Remove an entity from a set
02879 *
02880 * Remove an entity from a set
02881 *
02882 * \param instance FBiGeom instance handle
02883 * \param entity_handle The entity being removed
02884 * \param entity_set Pointer to the set being removed from
02885 * \param *err Pointer to error type returned from function
02886 */
02887 void FBiGeom_rmvEntFromSet( FBiGeom_Instance instance,
02888 iBase_EntityHandle entity_handle,
02889 iBase_EntitySetHandle entity_set,
02890 int* err );
02891
02892 /**\brief Add an array of entities to a set
02893 *
02894 * Add an array of entities to a set
02895 * \param instance FBiGeom instance handle
02896 * \param entity_handles Array of entities being added
02897 * \param entity_handles_size Number of entities in entity_handles array
02898 * \param entity_set Pointer to the set being added to
02899 * \param *err Pointer to error type returned from function
02900 */
02901 void FBiGeom_addEntArrToSet( FBiGeom_Instance instance,
02902 const iBase_EntityHandle* entity_handles,
02903 int entity_handles_size,
02904 iBase_EntitySetHandle entity_set,
02905 int* err );
02906
02907 /**\brief Remove an array of entities from a set
02908 *
02909 * Remove an array of entities from a set
02910 * \param instance FBiGeom instance handle
02911 * \param entity_handles Array of entities being remove
02912 * \param entity_handles_size Number of entities in entity_handles array
02913 * \param entity_set Pointer to the set being removed from
02914 * \param *err Pointer to error type returned from function
02915 */
02916 void FBiGeom_rmvEntArrFromSet( FBiGeom_Instance instance,
02917 const iBase_EntityHandle* entity_handles,
02918 int entity_handles_size,
02919 iBase_EntitySetHandle entity_set,
02920 int* err );
02921
02922 /**\brief Add an entity set to a set
02923 *
02924 * Add an entity set to a set
02925 * \param instance FBiGeom instance handle
02926 * \param entity_set_to_add The entity set being added
02927 * \param entity_set_handle Pointer to the set being added to
02928 * \param *err Pointer to error type returned from function
02929 */
02930 void FBiGeom_addEntSet( FBiGeom_Instance instance,
02931 iBase_EntitySetHandle entity_set_to_add,
02932 iBase_EntitySetHandle entity_set_handle,
02933 int* err );
02934
02935 /**\brief Remove an entity set from a set
02936 *
02937 * Remove an entity set from a set
02938 * \param instance FBiGeom instance handle
02939 * \param entity_set_to_remove The entity set being removed
02940 * \param entity_set_handle Pointer to the set being removed from
02941 * \param *err Pointer to error type returned from function
02942 */
02943 void FBiGeom_rmvEntSet( FBiGeom_Instance instance,
02944 iBase_EntitySetHandle entity_set_to_remove,
02945 iBase_EntitySetHandle entity_set_handle,
02946 int* err );
02947
02948 /**\brief Return whether an entity is contained in another set
02949 *
02950 * Return whether an entity is contained (*is_contained=1) or not
02951 * contained (*is_contained=0) in another set
02952 * \param instance FBiGeom instance handle
02953 * \param containing_entity_set Entity set being queried
02954 * \param contained_entity Entity potentially contained in
02955 * containing_entity_set
02956 * \param is_contained Pointer to flag returned from function
02957 * \param *err Pointer to error type returned from function
02958 */
02959 void FBiGeom_isEntContained( FBiGeom_Instance instance,
02960 iBase_EntitySetHandle containing_entity_set,
02961 iBase_EntityHandle contained_entity,
02962 int* is_contained,
02963 int* err );
02964
02965 /**\brief Return whether entities are contained in a set
02966 *
02967 * Return whether each entity is contained in the set.
02968 * \param instance iMesh instance handle
02969 * \param containing_entity_set Entity set being queried
02970 * \param entity_handles List of entities for which to check containment.
02971 * \param is_contained One value for each input entity, 1 if contained
02972 * in set, zero otherwise.
02973 * \param *err Pointer to error type returned from function
02974 */
02975 void FBiGeom_isEntArrContained( FBiGeom_Instance instance,
02976 /*in*/ iBase_EntitySetHandle containing_set,
02977 /*in*/ const iBase_EntityHandle* entity_handles,
02978 /*in*/ int num_entity_handles,
02979 /*inout*/ int** is_contained,
02980 /*inout*/ int* is_contained_allocated,
02981 /*out*/ int* is_contained_size,
02982 /*out*/ int* err );
02983
02984 /**\brief Return whether an entity set is contained in another set
02985 *
02986 * Return whether a set is contained (*is_contained=1) or not contained
02987 * (*is_contained=0) in another set
02988 * \param instance FBiGeom instance handle
02989 * \param containing_entity_set Entity set being queried
02990 * \param contained_entity_set Entity set potentially contained in
02991 * containing_entity_set
02992 * \param is_contained Pointer to flag returned from function
02993 * \param *err Pointer to error type returned from function
02994 */
02995 void FBiGeom_isEntSetContained( FBiGeom_Instance instance,
02996 iBase_EntitySetHandle containing_entity_set,
02997 iBase_EntitySetHandle contained_entity_set,
02998 int* is_contained,
02999 int* err );
03000
03001 /**\brief Add parent/child links between two sets
03002 *
03003 * Add parent/child links between two sets. Makes parent point to child
03004 * and child point to parent.
03005 * \param instance FBiGeom instance handle
03006 * \param parent_entity_set Pointer to parent set
03007 * \param child_entity_set Pointer to child set
03008 * \param *err Pointer to error type returned from function
03009 */
03010 void FBiGeom_addPrntChld( FBiGeom_Instance instance,
03011 iBase_EntitySetHandle parent_entity_set,
03012 iBase_EntitySetHandle child_entity_set,
03013 int* err );
03014
03015 /**\brief Remove parent/child links between two sets
03016 *
03017 * Remove parent/child links between two sets.
03018 * \param instance FBiGeom instance handle
03019 * \param parent_entity_set Pointer to parent set
03020 * \param child_entity_set Pointer to child set
03021 * \param *err Pointer to error type returned from function
03022 */
03023 void FBiGeom_rmvPrntChld( FBiGeom_Instance instance,
03024 iBase_EntitySetHandle parent_entity_set,
03025 iBase_EntitySetHandle child_entity_set,
03026 int* err );
03027
03028 /**\brief Return whether two sets are related by parent/child links
03029 *
03030 * Return whether two sets are related (*is_child=1) or not (*is_child=0)
03031 * by parent/child links
03032 * \param instance FBiGeom instance handle
03033 * \param parent_entity_set Pointer to parent set
03034 * \param child_entity_set Pointer to child set
03035 * \param is_child Pointer to flag returned from function
03036 * \param *err Pointer to error type returned from function
03037 */
03038 void FBiGeom_isChildOf( FBiGeom_Instance instance,
03039 iBase_EntitySetHandle parent_entity_set,
03040 iBase_EntitySetHandle child_entity_set,
03041 int* is_child,
03042 int* err );
03043
03044 /**\brief Get the number of child sets linked from a specified set
03045 *
03046 * Get the number of child sets linked from a specified set. If num_hops
03047 * is not -1, this represents the maximum hops from entity_set to any
03048 * child in the count.
03049 * \param instance FBiGeom instance handle
03050 * \param entity_set Entity set being queried
03051 * \param num_hops Maximum hops from entity_set_handle to child set,
03052 * not inclusive of the child set
03053 * \param num_child Pointer to number of children returned from function
03054 * \param *err Pointer to error type returned from function
03055 */
03056 void FBiGeom_getNumChld( FBiGeom_Instance instance,
03057 iBase_EntitySetHandle entity_set,
03058 int num_hops,
03059 int* num_child,
03060 int* err );
03061
03062 /**\brief Get the number of parent sets linked from a specified set
03063 *
03064 * Get the number of parent sets linked from a specified set. If num_hops
03065 * is not -1, this represents the maximum hops from entity_set to any
03066 * parent in the count.
03067 * \param instance FBiGeom instance handle
03068 * \param entity_set Entity set being queried
03069 * \param num_hops Maximum hops from entity_set_handle to parent set,
03070 * not inclusive of the parent set
03071 * \param num_parent Pointer to number of parents returned from function
03072 * \param *err Pointer to error type returned from function
03073 */
03074 void FBiGeom_getNumPrnt( FBiGeom_Instance instance,
03075 iBase_EntitySetHandle entity_set,
03076 int num_hops,
03077 int* num_parent,
03078 int* err );
03079
03080 /**\brief Get the child sets linked from a specified set
03081 *
03082 * Get the child sets linked from a specified set. If num_hops
03083 * is not -1, this represents the maximum hops from entity_set to any
03084 * child.
03085 * \param instance FBiGeom instance handle
03086 * \param from_entity_set Entity set being queried
03087 * \param num_hops Maximum hops from entity_set_handle to child set,
03088 * not inclusive of the child set
03089 * \param *entity_set_handles Pointer to array of child sets
03090 * returned from function
03091 * \param *entity_set_handles_allocated Pointer to allocated size of
03092 * entity_set_handles array
03093 * \param *entity_set_handles_size Pointer to occupied size of
03094 * entity_set_handles array
03095 * \param *err Pointer to error type returned from function
03096 */
03097 void FBiGeom_getChldn( FBiGeom_Instance instance,
03098 iBase_EntitySetHandle from_entity_set,
03099 int num_hops,
03100 iBase_EntitySetHandle** entity_set_handles,
03101 int* entity_set_handles_allocated,
03102 int* entity_set_handles_size,
03103 int* err );
03104
03105 /**\brief Get the parent sets linked from a specified set
03106 *
03107 * Get the parent sets linked from a specified set. If num_hops
03108 * is not -1, this represents the maximum hops from entity_set to any
03109 * parent.
03110 * \param instance FBiGeom instance handle
03111 * \param from_entity_set Entity set being queried
03112 * \param num_hops Maximum hops from entity_set_handle to parent set,
03113 * not inclusive of the parent set
03114 * \param *entity_set_handles Pointer to array of parent sets
03115 * returned from function
03116 * \param *entity_set_handles_allocated Pointer to allocated size of
03117 * entity_set_handles array
03118 * \param *entity_set_handles_size Pointer to occupied size of
03119 * entity_set_handles array
03120 * \param *err Pointer to error type returned from function
03121 */
03122 void FBiGeom_getPrnts( FBiGeom_Instance instance,
03123 iBase_EntitySetHandle from_entity_set,
03124 int num_hops,
03125 iBase_EntitySetHandle** entity_set_handles,
03126 int* entity_set_handles_allocated,
03127 int* entity_set_handles_size,
03128 int* err );
03129
03130 /**\brief Create a tag with specified name, size, and type
03131 *
03132 * Create a tag with specified name, size, and type. Tag size is in
03133 * units of size of tag_type data types. Value input for tag type must be
03134 * value in iBase_TagType enumeration.
03135 * \param instance FBiGeom instance handle
03136 * \param tag_name Character string indicating tag name
03137 * \param tag_size Size of each tag value, in units of number of tag_type
03138 * entities
03139 * \param tag_type Data type for data stored in this tag
03140 * \param tag_handle Pointer to tag handle returned from function
03141 * \param *err Pointer to error type returned from function
03142 * \param tag_name_len Length of tag name string
03143 */
03144 void FBiGeom_createTag( FBiGeom_Instance instance,
03145 const char* tag_name,
03146 int tag_size,
03147 int tag_type,
03148 iBase_TagHandle* tag_handle,
03149 int* err,
03150 int tag_name_len );
03151
03152 /**\brief Destroy a tag
03153 *
03154 * Destroy a tag. If forced is non-zero and entities still have values
03155 * set for this tag, tag is deleted anyway and those values disappear,
03156 * otherwise tag is not deleted.
03157 * \param instance FBiGeom instance handle
03158 * \param tag_handle Handle of tag to be deleted
03159 * \param forced If non-zero, delete the tag even if entities have values
03160 * set for that tag
03161 * \param *err Pointer to error type returned from function
03162 */
03163 void FBiGeom_destroyTag( FBiGeom_Instance instance, iBase_TagHandle tag_handle, int forced, int* err );
03164
03165 /**\brief Get the name for a given tag handle
03166 *
03167 * Get the name for a given tag handle
03168 * \param instance FBiGeom instance handle
03169 * \param tag_handle Tag handle being queried
03170 * \param name Pointer to character string to store name returned from
03171 * function
03172 * \param *err Pointer to error type returned from function
03173 * \param name_len Length of character string input to function
03174 */
03175 void FBiGeom_getTagName( FBiGeom_Instance instance, iBase_TagHandle tag_handle, char* name, int* err, int name_len );
03176
03177 /**\brief Get size of a tag in units of numbers of tag data type
03178 *
03179 * Get size of a tag in units of numbers of tag data type
03180 * \param instance FBiGeom instance handle
03181 * \param tag_handle Handle of tag being queried
03182 * \param tag_size Pointer to tag size returned from function
03183 * \param *err Pointer to error type returned from function
03184 */
03185 void FBiGeom_getTagSizeValues( FBiGeom_Instance instance, iBase_TagHandle tag_handle, int* tag_size, int* err );
03186
03187 /**\brief Get size of a tag in units of bytes
03188 *
03189 * Get size of a tag in units of bytes
03190 * \param instance FBiGeom instance handle
03191 * \param tag_handle Handle of tag being queried
03192 * \param tag_size Pointer to tag size returned from function
03193 * \param *err Pointer to error type returned from function
03194 */
03195 void FBiGeom_getTagSizeBytes( FBiGeom_Instance instance, iBase_TagHandle tag_handle, int* tag_size, int* err );
03196
03197 /**\brief Get a the handle of an existing tag with the specified name
03198 *
03199 * Get a the handle of an existing tag with the specified name
03200 * \param instance FBiGeom instance handle
03201 * \param tag_name Name of tag being queried
03202 * \param tag_handle Pointer to tag handle returned from function
03203 * \param *err Pointer to error type returned from function
03204 * \param tag_name_len Length of tag name string
03205 */
03206 void FBiGeom_getTagHandle( FBiGeom_Instance instance,
03207 const char* tag_name,
03208 iBase_TagHandle* tag_handle,
03209 int* err,
03210 int tag_name_len );
03211
03212 /**\brief Get the data type of the specified tag handle
03213 *
03214 * Get the data type of the specified tag handle. Tag type is a value in
03215 * the iBase_TagType enumeration.
03216 * \param instance FBiGeom instance handle
03217 * \param tag_handle Handle for the tag being queried
03218 * \param tag_type Pointer to tag type returned from function
03219 * \param *err Pointer to error type returned from function
03220 */
03221 void FBiGeom_getTagType( FBiGeom_Instance instance, iBase_TagHandle tag_handle, int* tag_type, int* err );
03222
03223 /**\brief Set a tag value of arbitrary type on an entity set
03224 *
03225 * Set a tag value of arbitrary type on an entity set. The tag data
03226 * is passed as void*. tag_value_size specifies the size of the memory
03227 * pointed to by tag_value in terms of bytes. Applications are free to
03228 * use this function to set data of any type, not just iBase_BYTES.
03229 * However, in all cases, the size specified by tag_value_size is
03230 * always in terms of bytes.
03231 *
03232 * \param instance FBiGeom instance handle
03233 * \param entity_set_handle Entity set on which tag is being set
03234 * \param tag_handle Tag being set on an entity set
03235 * \param tag_value Pointer to tag data being set on entity set
03236 * \param tag_value_size Size in bytes of tag data
03237 * \param *err Pointer to error type returned from function
03238 */
03239 void FBiGeom_setEntSetData( FBiGeom_Instance instance,
03240 iBase_EntitySetHandle entity_set_handle,
03241 const iBase_TagHandle tag_handle,
03242 const void* tag_value,
03243 const int tag_value_size,
03244 int* err );
03245
03246 /**\brief Set a tag value of integer type on an entity set
03247 *
03248 * Set a tag value of integer type on an entity set.
03249 * \param instance FBiGeom instance handle
03250 * \param entity_set Entity set on which tag is being set
03251 * \param tag_handle Tag being set on an entity set
03252 * \param tag_value Tag value being set on entity set
03253 * \param *err Pointer to error type returned from function
03254 */
03255 void FBiGeom_setEntSetIntData( FBiGeom_Instance instance,
03256 iBase_EntitySetHandle entity_set,
03257 iBase_TagHandle tag_handle,
03258 int tag_value,
03259 int* err );
03260
03261 /**\brief Set a tag value of double type on an entity set
03262 *
03263 * Set a tag value of double type on an entity set.
03264 * \param instance FBiGeom instance handle
03265 * \param entity_set Entity set on which tag is being set
03266 * \param tag_handle Tag being set on an entity set
03267 * \param tag_value Tag value being set on entity set
03268 * \param *err Pointer to error type returned from function
03269 */
03270 void FBiGeom_setEntSetDblData( FBiGeom_Instance instance,
03271 iBase_EntitySetHandle entity_set,
03272 iBase_TagHandle tag_handle,
03273 double tag_value,
03274 int* err );
03275
03276 /**\brief Set a tag value of entity handle type on an entity set
03277 *
03278 * Set a tag value of entity handle type on an entity set.
03279 * \param instance FBiGeom instance handle
03280 * \param entity_set Entity set on which tag is being set
03281 * \param tag_handle Tag being set on an entity set
03282 * \param tag_value Tag value being set on entity set
03283 * \param *err Pointer to error type returned from function
03284 */
03285 void FBiGeom_setEntSetEHData( FBiGeom_Instance instance,
03286 iBase_EntitySetHandle entity_set,
03287 iBase_TagHandle tag_handle,
03288 iBase_EntityHandle tag_value,
03289 int* err );
03290
03291 /**\brief Set a tag value of entity set handle type on an entity set
03292 *
03293 * Set a tag value of entity set handle type on an entity set.
03294 * \param instance FBiGeom instance handle
03295 * \param entity_set Entity set on which tag is being set
03296 * \param tag_handle Tag being set on an entity set
03297 * \param tag_value Tag value being set on entity set
03298 * \param *err Pointer to error type returned from function
03299 */
03300 void FBiGeom_setEntSetESHData( FBiGeom_Instance instance,
03301 iBase_EntitySetHandle entity_set,
03302 iBase_TagHandle tag_handle,
03303 iBase_EntitySetHandle tag_value,
03304 int* err );
03305
03306 /**\brief Get the value of a tag of arbitrary type on an entity set
03307 *
03308 * Get the value of a tag of arbitrary type on an entity set. Tag data
03309 * is returned back as void*. tag_value_size specifies the size of the
03310 * memory pointed to by tag_value in terms of bytes. Applications may
03311 * use this function to get data of any type, not just iBase_BYTES.
03312 * However because this function supports data of arbitrary type,
03313 * in all cases the size specified by tag_value_size is always in terms
03314 * of bytes.
03315 *
03316 * \param instance FBiGeom instance handle
03317 * \param entity_set_handle Entity set on which tag is being set
03318 * \param tag_handle Tag being set on an entity set
03319 * \param *tag_value Pointer to tag data array being queried
03320 * \param *tag_value_allocated Pointer to tag data array allocated size
03321 * \param *tag_value_size Pointer to occupied size in bytes of tag data
03322 * array
03323 * \param *err Pointer to error type returned from function
03324 */
03325 void FBiGeom_getEntSetData( FBiGeom_Instance instance,
03326 iBase_EntitySetHandle entity_set_handle,
03327 iBase_TagHandle tag_handle,
03328 void** tag_value,
03329 int* tag_value_allocated,
03330 int* tag_value_size,
03331 int* err );
03332
03333 /**\brief Get the value of a tag of integer type on an entity set
03334 *
03335 * Get the value of a tag of integer type on an entity set.
03336 * \param instance FBiGeom instance handle
03337 * \param entity_set Entity set on which tag is being set
03338 * \param tag_handle Tag being set on an entity set
03339 * \param *out_data Pointer to tag value returned from function
03340 * \param *err Pointer to error type returned from function
03341 */
03342 void FBiGeom_getEntSetIntData( FBiGeom_Instance instance,
03343 iBase_EntitySetHandle entity_set,
03344 iBase_TagHandle tag_handle,
03345 int* out_data,
03346 int* err );
03347
03348 /**\brief Get the value of a tag of double type on an entity set
03349 *
03350 * Get the value of a tag of double type on an entity set.
03351 * \param instance FBiGeom instance handle
03352 * \param entity_set Entity set on which tag is being set
03353 * \param tag_handle Tag being set on an entity set
03354 * \param *out_data Pointer to tag value returned from function
03355 * \param *err Pointer to error type returned from function
03356 */
03357 void FBiGeom_getEntSetDblData( FBiGeom_Instance instance,
03358 iBase_EntitySetHandle entity_set,
03359 iBase_TagHandle tag_handle,
03360 double* out_data,
03361 int* err );
03362
03363 /**\brief Get the value of a tag of entity handle type on an entity set
03364 *
03365 * Get the value of a tag of entity handle type on an entity set.
03366 * \param instance FBiGeom instance handle
03367 * \param entity_set Entity set on which tag is being set
03368 * \param tag_handle Tag being set on an entity set
03369 * \param *out_data Pointer to tag value returned from function
03370 * \param *err Pointer to error type returned from function
03371 */
03372 void FBiGeom_getEntSetEHData( FBiGeom_Instance instance,
03373 iBase_EntitySetHandle entity_set,
03374 iBase_TagHandle tag_handle,
03375 iBase_EntityHandle* out_data,
03376 int* err );
03377
03378 /**\brief Get the value of a tag of entity set handle type on an entity set
03379 *
03380 * Get the value of a tag of entity set handle type on an entity set.
03381 * \param instance FBiGeom instance handle
03382 * \param entity_set Entity set on which tag is being set
03383 * \param tag_handle Tag being set on an entity set
03384 * \param *out_data Pointer to tag value returned from function
03385 * \param *err Pointer to error type returned from function
03386 */
03387 void FBiGeom_getEntSetESHData( FBiGeom_Instance instance,
03388 iBase_EntitySetHandle entity_set,
03389 iBase_TagHandle tag_handle,
03390 iBase_EntitySetHandle* out_data,
03391 int* err );
03392
03393 /**\brief Get all the tags associated with a specified entity set
03394 *
03395 * Get all the tags associated with a specified entity set
03396 * \param instance FBiGeom instance handle
03397 * \param entity_set_handle Entity being queried
03398 * \param *tag_handles Pointer to array of tag_handles returned from
03399 * function
03400 * \param *tag_handles_allocated Pointer to allocated size of tag_handles
03401 * array
03402 * \param *tag_handles_size Pointer to occupied size of tag_handles array
03403 * \param *err Pointer to error type returned from function
03404 */
03405 void FBiGeom_getAllEntSetTags( FBiGeom_Instance instance,
03406 iBase_EntitySetHandle entity_set_handle,
03407 iBase_TagHandle** tag_handles,
03408 int* tag_handles_allocated,
03409 int* tag_handles_size,
03410 int* err );
03411
03412 /**\brief Remove a tag value from an entity set
03413 *
03414 * Remove a tag value from an entity set
03415 * \param instance FBiGeom instance handle
03416 * \param entity_set_handle Entity set from which tag is being removed
03417 * \param tag_handle Tag handle of tag being removed
03418 * \param *err Pointer to error type returned from function
03419 */
03420 void FBiGeom_rmvEntSetTag( FBiGeom_Instance instance,
03421 iBase_EntitySetHandle entity_set_handle,
03422 iBase_TagHandle tag_handle,
03423 int* err );
03424
03425 /**\brief Get tag values of arbitrary type for an array of entities
03426 *
03427 * Get tag values of arbitrary type for an array of entities. Tag data
03428 * is returned as void*. tag_values_size specifies the size of the
03429 * memory pointed to by tag_values in terms of bytes. Applications may
03430 * use this function to get data of any type, not just iBase_BYTES.
03431 * However, because this function supports data of arbitrary type, in
03432 * all cases the size specified by tag_values_size always in terms of
03433 * bytes.
03434 *
03435 * \param instance FBiGeom instance handle
03436 * \param entity_handles Entity array on which tag is being set
03437 * \param entity_handles_size Number of entities in array
03438 * \param tag_handle Tag being set on an entity
03439 * \param *tag_values Pointer to tag data array being returned from
03440 * function. Note that the implicit INTERLEAVED storage
03441 * order rule applies (see section ITAPS Storage Orders)
03442 * \param tag_values_allocated Pointer to allocated size of tag data array
03443 * \param tag_values_size Pointer to occupied size in bytes of tag data
03444 * array
03445 * \param *err Pointer to error type returned from function
03446 */
03447 void FBiGeom_getArrData( FBiGeom_Instance instance,
03448 const iBase_EntityHandle* entity_handles,
03449 int entity_handles_size,
03450 iBase_TagHandle tag_handle,
03451 void** tag_values,
03452 int* tag_values_allocated,
03453 int* tag_values_size,
03454 int* err );
03455
03456 /**\brief Get tag values of integer type for an array of entities
03457 *
03458 * Get tag values of integer type for an array of entities.
03459 * \param instance FBiGeom instance handle
03460 * \param entity_handles Entity array on which tag is being set
03461 * \param entity_handles_size Number of entities in array
03462 * \param tag_handle Tag being set on an entity
03463 * \param *tag_values Pointer to tag data array being returned from
03464 * function
03465 * \param tag_values_allocated Pointer to allocated size of tag data array
03466 * \param tag_values_size Pointer to occupied size of tag data array
03467 * \param *err Pointer to error type returned from function
03468 */
03469 void FBiGeom_getIntArrData( FBiGeom_Instance instance,
03470 const iBase_EntityHandle* entity_handles,
03471 int entity_handles_size,
03472 iBase_TagHandle tag_handle,
03473 int** tag_values,
03474 int* tag_values_allocated,
03475 int* tag_values_size,
03476 int* err );
03477
03478 /**\brief Get tag values of double type for an array of entities
03479 *
03480 * Get tag values of double type for an array of entities.
03481 * \param instance FBiGeom instance handle
03482 * \param entity_handles Entity array on which tag is being set
03483 * \param entity_handles_size Number of entities in array
03484 * \param tag_handle Tag being set on an entity
03485 * \param *tag_values Pointer to tag data array being returned from
03486 * function
03487 * \param tag_values_allocated Pointer to allocated size of tag data array
03488 * \param tag_values_size Pointer to occupied size of tag data array
03489 * \param *err Pointer to error type returned from function
03490 */
03491 void FBiGeom_getDblArrData( FBiGeom_Instance instance,
03492 const iBase_EntityHandle* entity_handles,
03493 int entity_handles_size,
03494 iBase_TagHandle tag_handle,
03495 double** tag_values,
03496 int* tag_values_allocated,
03497 int* tag_values_size,
03498 int* err );
03499
03500 /**\brief Get tag values of entity handle type for an array of entities
03501 *
03502 * Get tag values of entity handle type for an array of entities.
03503 * \param instance FBiGeom instance handle
03504 * \param entity_handles Entity array on which tag is being set
03505 * \param entity_handles_size Number of entities in array
03506 * \param tag_handle Tag being set on an entity
03507 * \param *tag_value Pointer to tag data array being returned from
03508 * function
03509 * \param tag_value_allocated Pointer to allocated size of tag data array
03510 * \param tag_value_size Pointer to occupied size of tag data array
03511 * \param *err Pointer to error type returned from function
03512 */
03513 void FBiGeom_getEHArrData( FBiGeom_Instance instance,
03514 const iBase_EntityHandle* entity_handles,
03515 int entity_handles_size,
03516 iBase_TagHandle tag_handle,
03517 iBase_EntityHandle** tag_value,
03518 int* tag_value_allocated,
03519 int* tag_value_size,
03520 int* err );
03521
03522 /**\brief Get tag values of entity set handle type for an array of entities
03523 *
03524 * Get tag values of entity set handle type for an array of entities.
03525 * \param instance FBiGeom instance handle
03526 * \param entity_handles Entity array on which tag is being set
03527 * \param entity_handles_size Number of entities in array
03528 * \param tag_handle Tag being set on an entity
03529 * \param *tag_value Pointer to tag data array being returned from
03530 * function
03531 * \param tag_value_allocated Pointer to allocated size of tag data array
03532 * \param tag_value_size Pointer to occupied size of tag data array
03533 * \param *err Pointer to error type returned from function
03534 */
03535 void FBiGeom_getESHArrData( FBiGeom_Instance instance,
03536 const iBase_EntityHandle* entity_handles,
03537 int entity_handles_size,
03538 iBase_TagHandle tag_handle,
03539 iBase_EntitySetHandle** tag_value,
03540 int* tag_value_allocated,
03541 int* tag_value_size,
03542 int* err );
03543
03544 /**\brief Set tag values of arbitrary type on an array of entities
03545 *
03546 * Set tag values of arbitrary type on an array of entities. Tag data
03547 * is passed as void*. tag_values_size specifies the size of the
03548 * memory pointed to by tag_values in terms of bytes. Applications may
03549 * use this function to set data of any type, not just iBase_BYTES.
03550 * However, because this function supports data of arbitrary type, in all
03551 * cases the size specified by tag_values_size is always in terms of
03552 * bytes.
03553 *
03554 * \param instance FBiGeom instance handle
03555 * \param entity_handles Entity array on which tag is being set
03556 * \param entity_handles_size Number of entities in array
03557 * \param tag_handle Tag being set on an entity
03558 * \param tag_values Pointer to tag data being set on entity. Note that
03559 * the implicit INTERLEAVED storage order rule applies (see section
03560 * ITAPS Storage Orders)
03561 * \param tag_values_size Size in bytes of tag data
03562 * \param *err Pointer to error type returned from function
03563 */
03564 void FBiGeom_setArrData( FBiGeom_Instance instance,
03565 const iBase_EntityHandle* entity_handles,
03566 int entity_handles_size,
03567 iBase_TagHandle tag_handle,
03568 const void* tag_values,
03569 int tag_values_size,
03570 int* err );
03571
03572 /**\brief Set tag values of integer type on an array of entities
03573 *
03574 * Set tag values of integer type on an array of entities.
03575 * \param instance FBiGeom instance handle
03576 * \param entity_handles Entity array on which tag is being set
03577 * \param entity_handles_size Number of entities in array
03578 * \param tag_handle Tag being set on an entity
03579 * \param tag_values Pointer to tag data being set on entities
03580 * \param tag_values_size Size in total number of integers of tag data
03581 * \param *err Pointer to error type returned from function
03582 */
03583 void FBiGeom_setIntArrData( FBiGeom_Instance instance,
03584 const iBase_EntityHandle* entity_handles,
03585 int entity_handles_size,
03586 iBase_TagHandle tag_handle,
03587 const int* tag_values,
03588 int tag_values_size,
03589 int* err );
03590
03591 /**\brief Set tag values of double type on an array of entities
03592 *
03593 * Set tag values of double type on an array of entities.
03594 * \param instance FBiGeom instance handle
03595 * \param entity_handles Entity array on which tag is being set
03596 * \param entity_handles_size Number of entities in array
03597 * \param tag_handle Tag being set on an entity
03598 * \param tag_values Pointer to tag data being set on entities
03599 * \param tag_values_size Size in total number of doubles of tag data
03600 * \param *err Pointer to error type returned from function
03601 */
03602 void FBiGeom_setDblArrData( FBiGeom_Instance instance,
03603 const iBase_EntityHandle* entity_handles,
03604 int entity_handles_size,
03605 iBase_TagHandle tag_handle,
03606 const double* tag_values,
03607 const int tag_values_size,
03608 int* err );
03609
03610 /**\brief Set tag values of entity handle type on an array of entities
03611 *
03612 * Set tag values of entity handle type on an array of entities.
03613 * \param instance FBiGeom instance handle
03614 * \param entity_handles Entity array on which tag is being set
03615 * \param entity_handles_size Number of entities in array
03616 * \param tag_handle Tag being set on an entity
03617 * \param tag_values Pointer to tag data being set on entities
03618 * \param tag_values_size Size in total number of entity handles of tag
03619 * data
03620 * \param *err Pointer to error type returned from function
03621 */
03622 void FBiGeom_setEHArrData( FBiGeom_Instance instance,
03623 const iBase_EntityHandle* entity_handles,
03624 int entity_handles_size,
03625 iBase_TagHandle tag_handle,
03626 const iBase_EntityHandle* tag_values,
03627 int tag_values_size,
03628 int* err );
03629
03630 /**\brief Set tag values of entity set handle type on an array of entities
03631 *
03632 * Set tag values of entity set handle type on an array of entities.
03633 * \param instance FBiGeom instance handle
03634 * \param entity_handles Entity array on which tag is being set
03635 * \param entity_handles_size Number of entities in array
03636 * \param tag_handle Tag being set on an entity
03637 * \param tag_values Pointer to tag data being set on entities
03638 * \param tag_values_size Size in total number of entity handles of tag
03639 * data
03640 * \param *err Pointer to error type returned from function
03641 */
03642 void FBiGeom_setESHArrData( FBiGeom_Instance instance,
03643 const iBase_EntityHandle* entity_handles,
03644 int entity_handles_size,
03645 iBase_TagHandle tag_handle,
03646 const iBase_EntitySetHandle* tag_values,
03647 int tag_values_size,
03648 int* err );
03649
03650 /**\brief Remove a tag value from an array of entities
03651 *
03652 * Remove a tag value from an array of entities
03653 * \param instance FBiGeom instance handle
03654 * \param entity_handles Entity from which tag is being removed
03655 * \param entity_handles_size Number of entities in entity array
03656 * \param tag_handle Tag handle of tag being removed
03657 * \param *err Pointer to error type returned from function
03658 */
03659 void FBiGeom_rmvArrTag( FBiGeom_Instance instance,
03660 const iBase_EntityHandle* entity_handles,
03661 int entity_handles_size,
03662 iBase_TagHandle tag_handle,
03663 int* err );
03664
03665 /**\brief Get the value of a tag of arbitrary type on an entity
03666 *
03667 * Get the value of a tag of arbitrary type on an entity. Tag data
03668 * is passed back as void*. tag_value_size specifies the size of the
03669 * memory pointed to by tag_value in terms of bytes. Applications may
03670 * use this function to get data of any type, not just iBase_BYTES.
03671 * However, because this function supports arbitrary type, in all
03672 * cases the size specified by tag_value_size is always in terms of
03673 * bytes.
03674 *
03675 * \param instance FBiGeom instance handle
03676 * \param entity_handle Entity on which tag is being set
03677 * \param tag_handle Tag being set on an entity
03678 * \param *tag_value Pointer to tag data array being queried
03679 * \param *tag_value_allocated Pointer to tag data array allocated size
03680 * \param *tag_value_size Pointer to occupied size in bytes of tag data
03681 * array
03682 * \param *err Pointer to error type returned from function
03683 */
03684 void FBiGeom_getData( FBiGeom_Instance instance,
03685 iBase_EntityHandle entity_handle,
03686 iBase_TagHandle tag_handle,
03687 void** tag_value,
03688 int* tag_value_allocated,
03689 int* tag_value_size,
03690 int* err );
03691
03692 /**\brief Get the value of a tag of integer type on an entity
03693 *
03694 * Get the value of a tag of integer type on an entity.
03695 * \param instance FBiGeom instance handle
03696 * \param entity_handle Entity on which tag is being set
03697 * \param tag_handle Tag being set on an entity
03698 * \param *out_data Pointer to tag value returned from function
03699 * \param *err Pointer to error type returned from function
03700 */
03701 void FBiGeom_getIntData( FBiGeom_Instance instance,
03702 iBase_EntityHandle entity_handle,
03703 iBase_TagHandle tag_handle,
03704 int* out_data,
03705 int* err );
03706
03707 /**\brief Get the value of a tag of double type on an entity
03708 *
03709 * Get the value of a tag of double type on an entity.
03710 * \param instance FBiGeom instance handle
03711 * \param entity_handle Entity on which tag is being set
03712 * \param tag_handle Tag being set on an entity
03713 * \param *out_data Pointer to tag value returned from function
03714 * \param *err Pointer to error type returned from function
03715 */
03716 void FBiGeom_getDblData( FBiGeom_Instance instance,
03717 /*in*/ const iBase_EntityHandle entity_handle,
03718 /*in*/ const iBase_TagHandle tag_handle,
03719 double* out_data,
03720 int* err );
03721
03722 /**\brief Get the value of a tag of entity handle type on an entity
03723 *
03724 * Get the value of a tag of entity handle type on an entity.
03725 * \param instance FBiGeom instance handle
03726 * \param entity_handle Entity on which tag is being set
03727 * \param tag_handle Tag being set on an entity
03728 * \param *out_data Pointer to tag value returned from function
03729 * \param *err Pointer to error type returned from function
03730 */
03731 void FBiGeom_getEHData( FBiGeom_Instance instance,
03732 iBase_EntityHandle entity_handle,
03733 iBase_TagHandle tag_handle,
03734 iBase_EntityHandle* out_data,
03735 int* err );
03736
03737 /**\brief Get the value of a tag of entity set handle type on an entity
03738 *
03739 * Get the value of a tag of entity set handle type on an entity.
03740 * \param instance FBiGeom instance handle
03741 * \param entity_handle Entity on which tag is being set
03742 * \param tag_handle Tag being set on an entity
03743 * \param *out_data Pointer to tag value returned from function
03744 * \param *err Pointer to error type returned from function
03745 */
03746 void FBiGeom_getESHData( FBiGeom_Instance instance,
03747 iBase_EntityHandle entity_handle,
03748 iBase_TagHandle tag_handle,
03749 iBase_EntitySetHandle* out_data,
03750 int* err );
03751
03752 /**\brief Set a tag value of arbitrary type on an entity
03753 *
03754 * Set a tag value of arbitrary type on an entity. Tag data
03755 * is passed as void*. tag_value_size specifies the size of the
03756 * memory pointed to by tag_value in terms of bytes. Applications may
03757 * use this function to set data of any type, not just iBase_BYTES.
03758 * However, because this function supports data of arbitrary type, in
03759 * all cases the size specified by tag_value_size is always in terms
03760 * of bytes.
03761 *
03762 * \param instance FBiGeom instance handle
03763 * \param entity_handle Entity on which tag is being set
03764 * \param tag_handle Tag being set on an entity
03765 * \param tag_value Pointer to tag data being set on entity
03766 * \param tag_value_size Size in bytes of tag data
03767 * \param *err Pointer to error type returned from function
03768 */
03769 void FBiGeom_setData( FBiGeom_Instance instance,
03770 iBase_EntityHandle entity_handle,
03771 iBase_TagHandle tag_handle,
03772 const void* tag_value,
03773 int tag_value_size,
03774 int* err );
03775
03776 /**\brief Set a tag value of integer type on an entity
03777 *
03778 * Set a tag value of integer type on an entity.
03779 * \param instance FBiGeom instance handle
03780 * \param entity_handle Entity on which tag is being set
03781 * \param tag_handle Tag being set on an entity
03782 * \param tag_value Tag value being set on entity
03783 * \param *err Pointer to error type returned from function
03784 */
03785 void FBiGeom_setIntData( FBiGeom_Instance instance,
03786 iBase_EntityHandle entity_handle,
03787 iBase_TagHandle tag_handle,
03788 int tag_value,
03789 int* err );
03790
03791 /**\brief Set a tag value of double type on an entity
03792 *
03793 * Set a tag value of double type on an entity.
03794 * \param instance FBiGeom instance handle
03795 * \param entity_handle Entity on which tag is being set
03796 * \param tag_handle Tag being set on an entity
03797 * \param tag_value Tag value being set on entity
03798 * \param *err Pointer to error type returned from function
03799 */
03800 void FBiGeom_setDblData( FBiGeom_Instance instance,
03801 iBase_EntityHandle entity_handle,
03802 iBase_TagHandle tag_handle,
03803 double tag_value,
03804 int* err );
03805
03806 /**\brief Set a tag value of entity handle type on an entity
03807 *
03808 * Set a tag value of entity handle type on an entity.
03809 * \param instance FBiGeom instance handle
03810 * \param entity_handle Entity on which tag is being set
03811 * \param tag_handle Tag being set on an entity
03812 * \param tag_value Tag value being set on entity
03813 * \param *err Pointer to error type returned from function
03814 */
03815 void FBiGeom_setEHData( FBiGeom_Instance instance,
03816 iBase_EntityHandle entity_handle,
03817 iBase_TagHandle tag_handle,
03818 iBase_EntityHandle tag_value,
03819 int* err );
03820
03821 /**\brief Set a tag value of entity set handle type on an entity
03822 *
03823 * Set a tag value of entity set handle type on an entity.
03824 * \param instance FBiGeom instance handle
03825 * \param entity_handle Entity on which tag is being set
03826 * \param tag_handle Tag being set on an entity
03827 * \param tag_value Tag value being set on entity
03828 * \param *err Pointer to error type returned from function
03829 */
03830 void FBiGeom_setESHData( FBiGeom_Instance instance,
03831 iBase_EntityHandle entity_handle,
03832 iBase_TagHandle tag_handle,
03833 iBase_EntitySetHandle tag_value,
03834 int* err );
03835
03836 /**\brief Get all the tags associated with a specified entity handle
03837 *
03838 * Get all the tags associated with a specified entity handle
03839 * \param instance FBiGeom instance handle
03840 * \param entity_handle Entity being queried
03841 * \param *tag_handles Pointer to array of tag_handles returned from
03842 * function
03843 * \param *tag_handles_allocated Pointer to allocated size of tag_handles
03844 * array
03845 * \param *tag_handles_size Pointer to occupied size of tag_handles array
03846 * \param *err Pointer to error type returned from function
03847 */
03848 void FBiGeom_getAllTags( FBiGeom_Instance instance,
03849 iBase_EntityHandle entity_handle,
03850 iBase_TagHandle** tag_handles,
03851 int* tag_handles_allocated,
03852 int* tag_handles_size,
03853 int* err );
03854
03855 /**\brief Remove a tag value from an entity
03856 *
03857 * Remove a tag value from an entity
03858 * \param instance FBiGeom instance handle
03859 * \param entity_handle Entity from which tag is being removed
03860 * \param tag_handle Tag handle of tag being removed
03861 * \param *err Pointer to error type returned from function
03862 */
03863 void FBiGeom_rmvTag( FBiGeom_Instance instance,
03864 iBase_EntityHandle entity_handle,
03865 iBase_TagHandle tag_handle,
03866 int* err );
03867
03868 /**\brief Subtract contents of one entity set from another
03869 *
03870 * Subtract contents of one entity set from another
03871 * \param instance FBiGeom instance handle
03872 * \param entity_set_1 Entity set from which other set is being subtracted
03873 * \param entity_set_2 Entity set being subtracted from other set
03874 * \param result_entity_set Pointer to entity set returned from function
03875 * \param *err Pointer to error type returned from function
03876 */
03877 void FBiGeom_subtract( FBiGeom_Instance instance,
03878 iBase_EntitySetHandle entity_set_1,
03879 iBase_EntitySetHandle entity_set_2,
03880 iBase_EntitySetHandle* result_entity_set,
03881 int* err );
03882
03883 /**\brief Intersect contents of one entity set with another
03884 *
03885 * Intersect contents of one entity set with another
03886 * \param instance FBiGeom instance handle
03887 * \param entity_set_1 Entity set being intersected with another
03888 * \param entity_set_2 Entity set being intersected with another
03889 * \param result_entity_set Pointer to entity set returned from function
03890 * \param *err Pointer to error type returned from function
03891 */
03892 void FBiGeom_intersect( FBiGeom_Instance instance,
03893 iBase_EntitySetHandle entity_set_1,
03894 iBase_EntitySetHandle entity_set_2,
03895 iBase_EntitySetHandle* result_entity_set,
03896 int* err );
03897
03898 /**\brief Unite contents of one entity set with another
03899 *
03900 * Unite contents of one entity set with another
03901 * \param instance FBiGeom instance handle
03902 * \param entity_set_1 Entity set being united with another
03903 * \param entity_set_2 Entity set being united with another
03904 * \param result_entity_set Pointer to entity set returned from function
03905 * \param *err Pointer to error type returned from function
03906 */
03907 void FBiGeom_unite( FBiGeom_Instance instance,
03908 iBase_EntitySetHandle entity_set_1,
03909 iBase_EntitySetHandle entity_set_2,
03910 iBase_EntitySetHandle* result_entity_set,
03911 int* err );
03912
03913 /**\brief Return facet information from solid modeling engine
03914 *
03915 * Return facet information from solid modeling engine
03916 * \param instance FBiGeom instance handle
03917 * \param entity_handle Entity being queried
03918 * \param dist_tolerance Tolerance guidance for faceting engine
03919 * \param points List of vertices in faceting of curve or surface
03920 * \param points_allocated Allocated size of vertex list array
03921 * \param points_size Occupied size of vertex list array
03922 * \param facets List of facets in faceting of surface
03923 * \param facets_allocated Allocated size of facet list array
03924 * \param facets_size Occupied size of facet list array
03925 * \param *err Pointer to error type returned from function
03926 */
03927 void FBiGeom_getFacets( FBiGeom_Instance instance,
03928 iBase_EntityHandle entity,
03929 double dist_tolerance,
03930 double** points,
03931 int* points_allocated,
03932 int* points_size,
03933 int** facets,
03934 int* facets_allocated,
03935 int* facets_size,
03936 int* err );
03937
03938 #ifdef __cplusplus
03939 } /* extern "C" */
03940 #endif
03941
03942 #endif