cgma
iGeom.h
Go to the documentation of this file.
00001 #ifndef _ITAPS_iBase
00002 #define _ITAPS_iBase
00003 
00004 /***************************************************************************/
00019 #define IBASE_VERSION_MAJOR 1
00020 #define IBASE_VERSION_MINOR 4
00021 #define IBASE_VERSION_PATCH 1
00022 
00023 /***************************************************************************/
00030 #define IBASE_VERSION_GE(Maj,Min,Pat) \
00031     (((IBASE_VERSION_MAJOR==(Maj)) && (IBASE_VERSION_MINOR==(Min)) && (IBASE_VERSION_PATCH>=(Pat))) || \
00032      ((IBASE_VERSION_MAJOR==(Maj)) && (IBASE_VERSION_MINOR>(Min))) || \
00033       (IBASE_VERSION_MAJOR>(Maj)))
00034 
00035 /***************************************************************************/
00039 #define IBASE_VERSION_STRING___(I,X,Y,Z) #I "_Version_" #X "." #Y "." #Z
00040 #define IBASE_VERSION_STRING__(I,X,Y,Z) IBASE_VERSION_STRING___(I,X,Y,Z)
00041 #define IBASE_VERSION_STRING_(I) IBASE_VERSION_STRING__(I,IBASE_VERSION_MAJOR,IBASE_VERSION_MINOR,IBASE_VERSION_PATCH)
00042 #define IBASE_VERSION_STRING IBASE_VERSION_STRING_(iBase)
00043 
00044 /***************************************************************************/
00048 #define IBASE_VERSION_TAG__(I,X,Y,Z) I##_Version_##X##_##Y##_##Z
00049 #define IBASE_VERSION_TAG_(I,X,Y,Z) IBASE_VERSION_TAG__(I,X,Y,Z)
00050 #define IBASE_VERSION_TAG(I) IBASE_VERSION_TAG_(I,IBASE_VERSION_MAJOR,IBASE_VERSION_MINOR,IBASE_VERSION_PATCH)
00051 
00052 /***************************************************************************/
00056 #define ITAPS_VERSION_MAJOR IBASE_VERSION_MAJOR
00057 #define ITAPS_VERSION_MINOR IBASE_VERSION_MINOR
00058 #define ITAPS_VERSION_PATCH IBASE_VERSION_PATCH
00059 #define ITAPS_VERSION_GE(Maj,Min,Pat) IBASE_VERSION_GE(Maj,Min,Pat)
00060 #define ITAPS_VERSION_STRING_(I) IBASE_VERSION_STRING_(I)
00061 #define ITAPS_VERSION_STRING ITAPS_VERSION_STRING_(ITAPS)
00062 #define ITAPS_VERSION_TAG_(I) IBASE_VERSION_TAG(I)
00063 #define ITAPS_VERSION_TAG ITAPS_VERSION_TAG_(I)
00064 
00065 /***************************************************************************/
00084 /***************************************************************************/
00088 #define IBASE_MINENUM(enumName) enumName ## _MIN
00089 #define IBASE_MAXENUM(enumName) enumName ## _MAX
00090 #define IBASE_NUMENUM(enumName) ((int)IBASE_MAXENUM(enumName) - (int)IBASE_MINENUM(enumName) + 1)
00091 #define IBASE_INCENUM(enumName,I) (I = (enum enumName)((int)I+1))
00092 
00094 #ifdef __cplusplus
00095 extern "C" {
00096 #endif
00097 
00098 typedef void* iBase_Instance;
00099 typedef struct iBase_EntityHandle_Private* iBase_EntityHandle;
00100 typedef struct iBase_EntitySetHandle_Private* iBase_EntitySetHandle;
00101 typedef struct iBase_TagHandle_Private* iBase_TagHandle;
00102 typedef struct iBase_EntityIterator_Private* iBase_EntityIterator;
00103 typedef struct iBase_EntityArrIterator_Private* iBase_EntityArrIterator;
00104 
00105 struct iBase_Error
00106 {
00107     int error_type;
00108     char description[120];
00109 };
00110 
00111 enum iBase_EntityType {
00112     iBase_EntityType_MIN = 0,
00114     iBase_VERTEX = iBase_EntityType_MIN,
00116     iBase_EDGE,
00118     iBase_FACE,
00120     iBase_REGION,
00122     iBase_ALL_TYPES,
00124     iBase_EntityType_MAX = iBase_ALL_TYPES
00126 };
00127 
00128 enum iBase_AdjacencyCost {
00129     iBase_AdjacencyCost_MIN = 0,
00131     iBase_UNAVAILABLE = iBase_AdjacencyCost_MIN,
00133     iBase_ALL_ORDER_1,
00135     iBase_ALL_ORDER_LOGN,
00137     iBase_ALL_ORDER_N,
00139     iBase_SOME_ORDER_1,
00141     iBase_SOME_ORDER_LOGN,
00143     iBase_SOME_ORDER_N,
00145     iBase_AVAILABLE,
00147     iBase_AdjacencyCost_MAX = iBase_AVAILABLE
00149 };
00150 
00151 enum iBase_CreationStatus {
00152     iBase_CreationStatus_MIN = 0,
00154     iBase_NEW = iBase_CreationStatus_MIN,
00156     iBase_ALREADY_EXISTED,
00159     iBase_CREATED_DUPLICATE,
00162     iBase_CREATION_FAILED,
00164     iBase_CreationStatus_MAX = iBase_CREATION_FAILED
00166 };
00167 
00168 enum iBase_ErrorType {
00169     iBase_ErrorType_MIN = 0,
00171     iBase_SUCCESS = iBase_ErrorType_MIN,
00172     iBase_MESH_ALREADY_LOADED,
00173     iBase_FILE_NOT_FOUND,
00174     iBase_FILE_WRITE_ERROR,
00175     iBase_NIL_ARRAY,
00176     iBase_BAD_ARRAY_SIZE,
00177     iBase_BAD_ARRAY_DIMENSION,
00178     iBase_INVALID_ENTITY_HANDLE,
00179     iBase_INVALID_ENTITY_COUNT,
00180     iBase_INVALID_ENTITY_TYPE,
00181     iBase_INVALID_ENTITY_TOPOLOGY,
00182     iBase_BAD_TYPE_AND_TOPO,
00183     iBase_ENTITY_CREATION_ERROR,
00184     iBase_INVALID_TAG_HANDLE,
00185     iBase_TAG_NOT_FOUND,
00186     iBase_TAG_ALREADY_EXISTS,
00187     iBase_TAG_IN_USE,
00188     iBase_INVALID_ENTITYSET_HANDLE,
00189     iBase_INVALID_ITERATOR_HANDLE,
00190     iBase_INVALID_ARGUMENT,
00191     iBase_MEMORY_ALLOCATION_FAILED,
00192     iBase_NOT_SUPPORTED,
00193     iBase_FAILURE,
00194     iBase_ErrorType_MAX = iBase_FAILURE
00196   };
00197 
00198 /***************************************************************************/
00218 enum iBase_StorageOrder {
00219     iBase_StorageOrder_MIN = 0,
00221     iBase_BLOCKED = iBase_StorageOrder_MIN,
00223     iBase_INTERLEAVED,
00225     iBase_StorageOrder_MAX = iBase_INTERLEAVED
00227 };
00228 
00229 enum iBase_TagValueType {
00230     iBase_TagValueType_MIN = 0,
00232     iBase_BYTES = iBase_TagValueType_MIN,
00234     iBase_INTEGER,
00236     iBase_DOUBLE,
00238     iBase_ENTITY_HANDLE,
00240     iBase_ENTITY_SET_HANDLE,
00242     iBase_TagValueType_MAX = iBase_ENTITY_SET_HANDLE
00244 };
00245 
00246 /***************************************************************************/
00250 /***************************************************************************/
00254 /***************************************************************************/
00259 /***************************************************************************/
00264 /***************************************************************************/
00269 /***************************************************************************/
00417 #ifdef __cplusplus
00418 }
00419 #endif
00420 
00421 #endif /* #ifndef _ITAPS_iBase */
00422 
00423 /* iGeom interface */
00424 #ifndef _ITAPS_iGeom
00425 #define _ITAPS_iGeom
00426 
00483 #include "iGeom_protos.h"
00484 #include "CGMIGeomConfigure.h"
00485 
00486 #ifdef __cplusplus
00487 extern "C" {
00488 #endif
00489 
00494   typedef struct iGeom_Instance_Private* iGeom_Instance;
00495 
00504   CGMA_IGEOM_EXPORT
00505   void iGeom_getDescription( iGeom_Instance instance,
00506                              char* descr,
00507                              int descr_len );
00508 
00516   CGMA_IGEOM_EXPORT
00517   void iGeom_getErrorType( iGeom_Instance instance,
00518                            /*out*/ int *error_type );
00519 
00528   CGMA_IGEOM_EXPORT
00529   void iGeom_newGeom( char const* options,
00530                       iGeom_Instance* instance_out,
00531                       int* err,
00532                       int options_len );
00533 
00540   CGMA_IGEOM_EXPORT
00541   void iGeom_dtor( iGeom_Instance instance,
00542                    int* err );
00543 
00544 
00558   CGMA_IGEOM_EXPORT
00559   void iGeom_load( iGeom_Instance instance,
00560                    char const* name,
00561                    char const* options,
00562                    int* err,
00563                    int name_len,
00564                    int options_len );
00565 
00578   CGMA_IGEOM_EXPORT
00579   void iGeom_save( iGeom_Instance instance,
00580                    char const* name,
00581                    char const* options,
00582                    int* err,
00583                    int name_len,
00584                    int options_len );
00585 
00594   CGMA_IGEOM_EXPORT
00595   void iGeom_getRootSet( iGeom_Instance instance,
00596                          iBase_EntitySetHandle* root_set,
00597                          int* err );
00598 
00611   CGMA_IGEOM_EXPORT
00612   void iGeom_getBoundBox( iGeom_Instance instance,
00613                           double* min_x,
00614                           double* min_y,
00615                           double* min_z,
00616                           double* max_x,
00617                           double* max_y,
00618                           double* max_z,
00619                           int* err );
00620 
00638   CGMA_IGEOM_EXPORT
00639   void iGeom_getEntities( iGeom_Instance instance,
00640                           iBase_EntitySetHandle set_handle,
00641                           int entity_type,
00642                           iBase_EntityHandle** entity_handles,
00643                           int* entity_handles_allococated,
00644                           int* entity_handles_size,
00645                           int* err );
00646 
00661   CGMA_IGEOM_EXPORT
00662   void iGeom_getNumOfType( iGeom_Instance instance,
00663                            iBase_EntitySetHandle set_handle,
00664                            int entity_type,
00665                            int* num_out,
00666                            int* err );
00667 
00677   CGMA_IGEOM_EXPORT
00678   void iGeom_getEntType( iGeom_Instance instance,
00679                          iBase_EntityHandle entity_handle,
00680                          int* type,
00681                          int* err );
00682 
00695   CGMA_IGEOM_EXPORT
00696   void iGeom_getArrType( iGeom_Instance instance,
00697                          iBase_EntityHandle const* entity_handles,
00698                          int entity_handles_size,
00699                          int** type,
00700                          int* type_allocated,
00701                          int* type_size,
00702                          int* err );
00703 
00719   CGMA_IGEOM_EXPORT
00720   void iGeom_getEntAdj( iGeom_Instance instance,
00721                         iBase_EntityHandle entity_handle,
00722                         int to_dimension,
00723                         iBase_EntityHandle** adj_entities,
00724                         int* adj_entities_allocated,
00725                         int* adj_entities_size,
00726                         int* err );
00727 
00749   CGMA_IGEOM_EXPORT
00750   void iGeom_getArrAdj( iGeom_Instance instance,
00751                         iBase_EntityHandle const* entity_handles,
00752                         int entity_handles_size,
00753                         int requested_entity_type,
00754                         iBase_EntityHandle** adj_entity_handles,
00755                         int* adj_entity_handles_allocated,
00756                         int* adj_entity_handles_size,
00757                         int** offset,
00758                         int* offset_allocated,
00759                         int* offset_size,
00760                         int* err );
00761 
00776   CGMA_IGEOM_EXPORT
00777   void iGeom_getEnt2ndAdj( iGeom_Instance instance,
00778                            iBase_EntityHandle entity_handle,
00779                            int bridge_dimension,
00780                            int to_dimension,
00781                            iBase_EntityHandle** adjacent_entities,
00782                            int* adjacent_entities_allocated,
00783                            int* adjacent_entities_size,
00784                            int* err );
00785 
00806   CGMA_IGEOM_EXPORT
00807   void iGeom_getArr2ndAdj( iGeom_Instance instance,
00808                            iBase_EntityHandle const* entity_handles,
00809                            int entity_handles_size,
00810                            int order_adjacent_key,
00811                            int requested_entity_type,
00812                            iBase_EntityHandle** adj_entity_handles,
00813                            int* adj_entity_handles_allocated,
00814                            int* adj_entity_handles_size,
00815                            int** offset,
00816                            int* offset_allocated,
00817                            int* offset_size,
00818                            int* err );
00819 
00830   CGMA_IGEOM_EXPORT
00831   void iGeom_isEntAdj( iGeom_Instance instance,
00832                        iBase_EntityHandle entity_handle1,
00833                        iBase_EntityHandle entity_handle2,
00834                        int* are_adjacent,
00835                        int* err );
00836 
00852   CGMA_IGEOM_EXPORT
00853   void iGeom_isArrAdj( iGeom_Instance instance,
00854                        iBase_EntityHandle const* entity_handles_1,
00855                        int entity_handles_1_size,
00856                        iBase_EntityHandle const* entity_handles_2,
00857                        int entity_handles_2_size,
00858                        int** is_adjacent_info,
00859                        int* is_adjacent_info_allocated,
00860                        int* is_adjacent_info_size,
00861                        int* err );
00862 
00871   CGMA_IGEOM_EXPORT
00872   void iGeom_getTopoLevel( iGeom_Instance instance,
00873                            int* topo_level_out,
00874                            int* err );
00875 
00889   CGMA_IGEOM_EXPORT
00890   void iGeom_getEntClosestPt( iGeom_Instance instance,
00891                               iBase_EntityHandle entity_handle,
00892                               double near_x, 
00893                               double near_y,
00894                               double near_z,
00895                               double* on_x,
00896                               double* on_y,
00897                               double* on_z,
00898                               int* err );
00899 
00919   CGMA_IGEOM_EXPORT
00920   void iGeom_getEntClosestPtTrimmed( iGeom_Instance instance,
00921                                      iBase_EntityHandle entity_handle,
00922                                      double near_x,
00923                                      double near_y,
00924                                      double near_z,
00925                                      double* on_x,
00926                                      double* on_y,
00927                                      double* on_z,
00928                                      int* err );
00929 
00948   CGMA_IGEOM_EXPORT
00949   void iGeom_getArrClosestPt( iGeom_Instance instance,
00950                               iBase_EntityHandle const* entity_handles,
00951                               int entity_handles_size,
00952                               int storage_order,
00953                               double const* near_coordinates,
00954                               int near_coordinates_size,
00955                               double** on_coordinates,
00956                               int* on_coordinates_allocated,
00957                               int* on_coordinates_size,
00958                               int* err );
00959 
00972   CGMA_IGEOM_EXPORT
00973   void iGeom_getEntNrmlXYZ( iGeom_Instance instance,
00974                             iBase_EntityHandle entity_handle,
00975                             double x,
00976                             double y,
00977                             double z,
00978                             double* nrml_i,
00979                             double* nrml_j,
00980                             double* nrml_k,
00981                             int* err );
00982 
01001   CGMA_IGEOM_EXPORT
01002   void iGeom_getArrNrmlXYZ( iGeom_Instance instance,
01003                             iBase_EntityHandle const* entity_handles,
01004                             int entity_handles_size,
01005                             int storage_order,
01006                             double const* coordinates,
01007                             int coordinates_size,
01008                             double** normals,
01009                             int* normals_allocated,
01010                             int* normals_size,
01011                             int* err );
01012 
01030   CGMA_IGEOM_EXPORT
01031   void iGeom_getEntNrmlPlXYZ( iGeom_Instance instance,
01032                               iBase_EntityHandle entity_handle,
01033                               double x,
01034                               double y,
01035                               double z,
01036                               double* pt_x,
01037                               double* pt_y,
01038                               double* pt_z,
01039                               double* nrml_i,
01040                               double* nrml_j,
01041                               double* nrml_k,
01042                               int* err );
01043 
01066   CGMA_IGEOM_EXPORT
01067   void iGeom_getArrNrmlPlXYZ( iGeom_Instance instance,
01068                               iBase_EntityHandle const* entity_handles,
01069                               int entity_handles_size,
01070                               int storage_order,
01071                               double const* near_coordinates,
01072                               int near_coordinates_size,
01073                               double** on_coordinates,
01074                               int* on_coordinates_allocated,
01075                               int* on_coordinates_size,
01076                               double** normals,
01077                               int* normals_allocated,
01078                               int* normals_size,
01079                               int* err );
01080 
01094   CGMA_IGEOM_EXPORT
01095   void iGeom_getEntTgntXYZ( iGeom_Instance instance,
01096                             iBase_EntityHandle entity_handle,
01097                             double x,
01098                             double y,
01099                             double z,
01100                             double* tgnt_i,
01101                             double* tgnt_j,
01102                             double* tgnt_k,
01103                             int* err );
01104 
01123   CGMA_IGEOM_EXPORT
01124   void iGeom_getArrTgntXYZ( iGeom_Instance instance,
01125                             iBase_EntityHandle const* entity_handles,
01126                             int entity_handles_size,
01127                             int storage_order,
01128                             double const* coordinates,
01129                             int coordinates_size,
01130                             double** tangents,
01131                             int* tangents_allocated,
01132                             int* tangents_size,
01133                             int* err );
01134 
01153   CGMA_IGEOM_EXPORT
01154   void iGeom_getFcCvtrXYZ( iGeom_Instance instance,
01155                            iBase_EntityHandle face_handle,
01156                            double x,
01157                            double y,
01158                            double z,
01159                            double* cvtr1_i,
01160                            double* cvtr1_j,
01161                            double* cvtr1_k,
01162                            double* cvtr2_i,
01163                            double* cvtr2_j,
01164                            double* cvtr2_k,
01165                            int* err );
01166 
01181   CGMA_IGEOM_EXPORT
01182   void iGeom_getEgCvtrXYZ( iGeom_Instance instance,
01183                            iBase_EntityHandle edge_handle,
01184                            double x,
01185                            double y,
01186                            double z,
01187                            double* cvtr_i,
01188                            double* cvtr_j,
01189                            double* cvtr_k,
01190                            int* err );
01191 
01213   CGMA_IGEOM_EXPORT
01214   void iGeom_getEntArrCvtrXYZ( iGeom_Instance instance,
01215                                iBase_EntityHandle const* entity_handles,
01216                                int entity_handles_size,
01217                                int storage_order,
01218                                double const* coords,
01219                                int coords_size,
01220                                double** cvtr_1,
01221                                int* cvtr_1_allocated,
01222                                int* cvtr_1_size,
01223                                double** cvtr_2,
01224                                int* cvtr_2_allocated,
01225                                int* cvtr_2_size,
01226                                int* err );
01227 
01247   CGMA_IGEOM_EXPORT
01248   void iGeom_getEgEvalXYZ( iGeom_Instance instance,
01249                            iBase_EntityHandle edge_handle,
01250                            double x,
01251                            double y,
01252                            double z,
01253                            double* on_x,
01254                            double* on_y,
01255                            double* on_z,
01256                            double* tgnt_i,
01257                            double* tgnt_j,
01258                            double* tgnt_k,
01259                            double* cvtr_i,
01260                            double* cvtr_j,
01261                            double* cvtr_k,
01262                            int* err );
01263 
01287   CGMA_IGEOM_EXPORT
01288   void iGeom_getFcEvalXYZ( iGeom_Instance instance,
01289                            iBase_EntityHandle face_handle,
01290                            double x,
01291                            double y,
01292                            double z,
01293                            double* on_x,
01294                            double* on_y,
01295                            double* on_z,
01296                            double* nrml_i,
01297                            double* nrml_j,
01298                            double* nrml_k,
01299                            double* cvtr1_i,
01300                            double* cvtr1_j,
01301                            double* cvtr1_k,
01302                            double* cvtr2_i,
01303                            double* cvtr2_j,
01304                            double* cvtr2_k,
01305                            int* err );
01306 
01333   CGMA_IGEOM_EXPORT
01334   void iGeom_getArrEgEvalXYZ( iGeom_Instance instance,
01335                               iBase_EntityHandle const* edge_handles,
01336                               int edge_handles_size,
01337                               int storage_order,
01338                               double const* coords,
01339                               int coords_size,
01340                               double** on_coords,
01341                               int* on_coords_allocated,
01342                               int* on_coords_size,
01343                               double** tangent,
01344                               int* tangent_allocated,
01345                               int* tangent_size,
01346                               double** cvtr,
01347                               int* cvtr_allocated,
01348                               int* cvtr_size,
01349                               int* err );
01350 
01380   CGMA_IGEOM_EXPORT
01381   void iGeom_getArrFcEvalXYZ( iGeom_Instance instance,
01382                               iBase_EntityHandle const* face_handles,
01383                               int face_handles_size,
01384                               int storage_order,
01385                               double const* coords,
01386                               int coords_size,
01387                               double** on_coords,
01388                               int* on_coords_allocated,
01389                               int* on_coords_size,
01390                               double** normal,
01391                               int* normal_allocated,
01392                               int* normal_size,
01393                               double** cvtr1,
01394                               int* cvtr1_allocated,
01395                               int* cvtr1_size,
01396                               double** cvtr2,
01397                               int* cvtr2_allocated,
01398                               int* cvtr2_size,
01399                               int* err );
01400 
01414   CGMA_IGEOM_EXPORT
01415   void iGeom_getEntBoundBox( iGeom_Instance instance,
01416                              iBase_EntityHandle entity_handle,
01417                              double* min_x,
01418                              double* min_y,
01419                              double* min_z,
01420                              double* max_x,
01421                              double* max_y,
01422                              double* max_z,
01423                              int* err );
01424 
01441   CGMA_IGEOM_EXPORT
01442   void iGeom_getArrBoundBox( iGeom_Instance instance,
01443                              iBase_EntityHandle const* entity_handles,
01444                              int entity_handles_size,
01445                              int storage_order,
01446                              double** min_corner,
01447                              int* min_corner_allocated,
01448                              int* min_corner_size,
01449                              double** max_corner,
01450                              int* max_corner_allocated,
01451                              int* max_corner_size,
01452                              int* err );
01453 
01464   CGMA_IGEOM_EXPORT
01465   void iGeom_getVtxCoord( iGeom_Instance instance,
01466                           iBase_EntityHandle vertex_handle,
01467                           double* x,
01468                           double* y,
01469                           double* z,
01470                           int* err );
01471 
01489   CGMA_IGEOM_EXPORT
01490   void iGeom_getVtxArrCoords( iGeom_Instance instance,
01491                               iBase_EntityHandle const* entity_handles,
01492                               int entity_handles_size,
01493                               int storage_order,
01494                               double** coordinates,
01495                               int* coordinates_allocated,
01496                               int* coordinates_size,
01497                               int* err );
01498 
01523   CGMA_IGEOM_EXPORT
01524   void iGeom_getPntRayIntsct( iGeom_Instance instance,
01525                               double x,
01526                               double y,
01527                               double z,
01528                               double dir_x,
01529                               double dir_y,
01530                               double dir_z,
01531                               iBase_EntityHandle** intersect_entity_handles,
01532                               int* intersect_entity_handles_allocated,
01533                               int* intersect_entity_hangles_size,
01534                               int storage_order,
01535                               double** intersect_coords,
01536                               int* intersect_coords_allocated,
01537                               int* intersect_coords_size,
01538                               double** param_coords,
01539                               int* param_coords_allocated,
01540                               int* param_coords_size,
01541                               int* err );
01542 
01570   CGMA_IGEOM_EXPORT
01571   void iGeom_getPntArrRayIntsct( iGeom_Instance instance,
01572                                  int storage_order,
01573                                  const double* coords,
01574                                  int coords_size,
01575                                  const double* directions,
01576                                  int directions_size,
01577                                  iBase_EntityHandle** intersect_entity_handles,
01578                                  int* intersect_entity_handles_allocated,
01579                                  int* intersect_entity_hangles_size,
01580                                  int** offset,
01581                                  int* offset_allocated,
01582                                  int* offset_size,
01583                                  double** intersect_coords,
01584                                  int* intersect_coords_allocated,
01585                                  int* intersect_coords_size,
01586                                  double** param_coords,
01587                                  int* param_coords_allocated,
01588                                  int* param_coords_size,
01589                                  int* err );
01590 
01601   CGMA_IGEOM_EXPORT
01602   void iGeom_getPntClsf( iGeom_Instance instance,
01603                          double x,
01604                          double y,
01605                          double z,
01606                          iBase_EntityHandle* entity_handle,
01607                          int* err );
01608 
01622   CGMA_IGEOM_EXPORT
01623   void iGeom_getPntArrClsf( iGeom_Instance instance,
01624                             int storage_order,
01625                             double const* coords,
01626                             int coords_size,
01627                             iBase_EntityHandle** entity_handles,
01628                             int* entity_handles_allocated,
01629                             int* entity_handles_size,
01630                             int* err );
01631 
01643   CGMA_IGEOM_EXPORT
01644   void iGeom_getEntNrmlSense( iGeom_Instance instance,
01645                               iBase_EntityHandle face,
01646                               iBase_EntityHandle region,
01647                               int* sense_out,
01648                               int* err );
01649 
01667   CGMA_IGEOM_EXPORT
01668   void iGeom_getArrNrmlSense( iGeom_Instance instance,
01669                               iBase_EntityHandle const* face_handles,
01670                               int face_handles_size,
01671                               iBase_EntityHandle const* region_handles,
01672                               int region_handles_size,
01673                               int** sense,
01674                               int* sense_allocated,
01675                               int* sense_size,
01676                               int* err );
01677 
01689   CGMA_IGEOM_EXPORT
01690   void iGeom_getEgFcSense( iGeom_Instance,
01691                            iBase_EntityHandle edge,
01692                            iBase_EntityHandle face,
01693                            int* sense_out,
01694                            int* err );
01695 
01713   CGMA_IGEOM_EXPORT
01714   void iGeom_getEgFcArrSense( iGeom_Instance instance,
01715                               iBase_EntityHandle const* edge_handles,
01716                               int edge_handles_size,
01717                               iBase_EntityHandle const* face_handles,
01718                               int face_handles_size,
01719                               int** sense,
01720                               int* sense_allocated,
01721                               int* sense_size,
01722                               int* err );
01723 
01737   CGMA_IGEOM_EXPORT
01738   void iGeom_getEgVtxSense( iGeom_Instance instance,
01739                             iBase_EntityHandle edge,
01740                             iBase_EntityHandle vertex1,
01741                             iBase_EntityHandle vertex2,
01742                             int* sense_out,
01743                             int* err );
01744 
01763   CGMA_IGEOM_EXPORT
01764   void iGeom_getEgVtxArrSense( iGeom_Instance instance,
01765                                iBase_EntityHandle const* edge_handles,
01766                                int edge_handles_size,
01767                                iBase_EntityHandle const* vertex_handles_1,
01768                                int veretx_handles_1_size,
01769                                iBase_EntityHandle const* vertex_handles_2,
01770                                int vertex_handles_2_size,
01771                                int** sense,
01772                                int* sense_allocated,
01773                                int* sense_size,
01774                                int* err );
01775 
01787   CGMA_IGEOM_EXPORT
01788   void iGeom_measure( iGeom_Instance instance,
01789                       iBase_EntityHandle const* entity_handles,
01790                       int entity_handles_size,
01791                       double** measures,
01792                       int* measures_allocated,
01793                       int* measures_size,
01794                       int* err );
01795 
01805   CGMA_IGEOM_EXPORT
01806   void iGeom_getFaceType( iGeom_Instance instance,
01807                           iBase_EntityHandle face_handle,
01808                           char* face_type,
01809                           int* err,
01810                           int* face_type_length);
01811 
01821   CGMA_IGEOM_EXPORT
01822   void iGeom_getParametric( iGeom_Instance instance,
01823                             int* is_parametric,
01824                             int* err );
01825 
01834   CGMA_IGEOM_EXPORT
01835   void iGeom_isEntParametric( iGeom_Instance instance,
01836                               iBase_EntityHandle entity_handle,
01837                               int* parametric,
01838                               int* err );
01839 
01852   CGMA_IGEOM_EXPORT
01853   void iGeom_isArrParametric( iGeom_Instance instance,
01854                               iBase_EntityHandle const* entity_handles,
01855                               int entity_handles_size,
01856                               int** is_parametric,
01857                               int* is_parametric_allocated,
01858                               int* is_parametric_size,
01859                               int* err );
01860 
01874   CGMA_IGEOM_EXPORT
01875   void iGeom_getEntUVtoXYZ( iGeom_Instance instance,
01876                             iBase_EntityHandle entity_handle,
01877                             double u,
01878                             double v,
01879                             double* x,
01880                             double* y,
01881                             double* z,
01882                             int* err );
01883 
01905   CGMA_IGEOM_EXPORT
01906   void iGeom_getArrUVtoXYZ( iGeom_Instance instance,
01907                             iBase_EntityHandle const* entity_handles,
01908                             int entity_handles_size,
01909                             int storage_order,
01910                             double const* uv,
01911                             int uv_size,
01912                             double** coordinates,
01913                             int* coordinates_allocated,
01914                             int* coordinates_size,
01915                             int* err );
01916 
01929   CGMA_IGEOM_EXPORT
01930   void iGeom_getEntUtoXYZ( iGeom_Instance instance,
01931                            iBase_EntityHandle entity_handle,
01932                            double u,
01933                            double* x, 
01934                            double* y,
01935                            double* z,
01936                            int* err );
01937 
01958   CGMA_IGEOM_EXPORT
01959   void iGeom_getArrUtoXYZ( iGeom_Instance instance,
01960                            iBase_EntityHandle const* entity_handles,
01961                            int entity_handles_size,
01962                            double const* u,
01963                            int u_size,
01964                            int storage_order,
01965                            double** on_coords,
01966                            int* on_coords_allocated,
01967                            int* on_coords_size,
01968                            int* err );
01969 
01983   CGMA_IGEOM_EXPORT
01984   void iGeom_getEntXYZtoUV( iGeom_Instance instance,
01985                             iBase_EntityHandle entity_handle,
01986                             double x,
01987                             double y,
01988                             double z,
01989                             double* u,
01990                             double* v, 
01991                             int* err );
01992 
02005   CGMA_IGEOM_EXPORT
02006   void iGeom_getEntXYZtoU( iGeom_Instance instance,
02007                            iBase_EntityHandle entity_handle,
02008                            double x,
02009                            double y,
02010                            double z,
02011                            double* u,
02012                            int* err );
02013 
02033   CGMA_IGEOM_EXPORT
02034   void iGeom_getArrXYZtoUV( iGeom_Instance instance,
02035                             iBase_EntityHandle const* entity_handles,
02036                             int entity_handles_size,
02037                             int storage_order,
02038                             double const* coordinates,
02039                             int coordinates_size,
02040                             double** uv,
02041                             int* uv_allocated,
02042                             int* uv_size,
02043                             int* err );
02044 
02065   CGMA_IGEOM_EXPORT
02066   void iGeom_getArrXYZtoU( iGeom_Instance instance,
02067                            iBase_EntityHandle const* entity_handles,
02068                            int entity_handles_size,
02069                            int storage_order,
02070                            double const* coordinates,
02071                            int coordinates_size,
02072                            double** u,
02073                            int* u_allocated,
02074                            int* u_size,
02075                            int* err );
02076 
02093   CGMA_IGEOM_EXPORT
02094   void iGeom_getEntXYZtoUVHint( iGeom_Instance instance,
02095                                 iBase_EntityHandle entity_handle,
02096                                 double x,
02097                                 double y,
02098                                 double z,
02099                                 double* u,
02100                                 double* v,
02101                                 int* err );
02102 
02122   CGMA_IGEOM_EXPORT
02123   void iGeom_getArrXYZtoUVHint( iGeom_Instance instance,
02124                                 iBase_EntityHandle const* entity_handles,
02125                                 int entity_handles_size,
02126                                 int storage_order,
02127                                 double const* coords,
02128                                 int coords_size,
02129                                 double** uv,
02130                                 int* uv_allocated,
02131                                 int* uv_size,
02132                                 int* err );
02133 
02145   CGMA_IGEOM_EXPORT
02146   void iGeom_getEntUVRange( iGeom_Instance instance,
02147                             iBase_EntityHandle entity_handle,
02148                             double* u_min,
02149                             double* v_min,
02150                             double* u_max,
02151                             double* v_max,
02152                             int* err );
02153 
02163   CGMA_IGEOM_EXPORT
02164   void iGeom_getEntURange( iGeom_Instance instance,
02165                            iBase_EntityHandle entity_handle,
02166                            double* u_min,
02167                            double* u_max,
02168                            int* err );
02169 
02188   CGMA_IGEOM_EXPORT
02189   void iGeom_getArrUVRange( iGeom_Instance instance,
02190                             iBase_EntityHandle const* entity_handles,
02191                             int entity_handles_size,
02192                             int storage_order,
02193                             double** uv_min,
02194                             int* uv_min_allocated,
02195                             int* uv_min_size,
02196                             double** uv_max,
02197                             int* uv_max_allocated,
02198                             int* uv_max_size,
02199                             int* err );
02200 
02219   CGMA_IGEOM_EXPORT
02220   void iGeom_getArrURange( iGeom_Instance instance,
02221                            iBase_EntityHandle const* entity_handles,
02222                            int entity_handles_size,
02223                            double** u_min,
02224                            int* u_min_allocated,
02225                            int* u_min_size,
02226                            double** u_max,
02227                            int* u_max_allocated,
02228                            int* u_max_size,
02229                            int* err );
02230 
02244   CGMA_IGEOM_EXPORT
02245   void iGeom_getEntUtoUV( iGeom_Instance instance,
02246                           iBase_EntityHandle edge_handle,
02247                           iBase_EntityHandle face_handle,
02248                           double in_u,
02249                           double* u,
02250                           double* v,
02251                           int* err );
02252 
02263   CGMA_IGEOM_EXPORT
02264   void iGeom_getVtxToUV( iGeom_Instance instance,
02265                          iBase_EntityHandle vertex_handle,
02266                          iBase_EntityHandle face_handle,
02267                          double* u,
02268                          double* v,
02269                          int* err );
02270 
02280   CGMA_IGEOM_EXPORT
02281   void iGeom_getVtxToU( iGeom_Instance instance,
02282                         iBase_EntityHandle vertex_handle,
02283                         iBase_EntityHandle edge_handle,
02284                         double* u,
02285                         int* err );
02286 
02305   CGMA_IGEOM_EXPORT
02306   void iGeom_getArrUtoUV( iGeom_Instance instance,
02307                           iBase_EntityHandle const* edge_handles,
02308                           int edge_handles_size,
02309                           iBase_EntityHandle const* face_handles,
02310                           int face_handles_size,
02311                           double const* u_in,
02312                           int u_in_size,
02313                           int storage_order,
02314                           double** uv,
02315                           int* uv_allocated,
02316                           int* uv_size,
02317                           int* err );
02318 
02333   CGMA_IGEOM_EXPORT
02334   void iGeom_getVtxArrToUV( iGeom_Instance instance,
02335                             iBase_EntityHandle const* vertex_handles,
02336                             int vertex_handles_size,
02337                             iBase_EntityHandle const* face_handles,
02338                             int face_handles_size,
02339                             int storage_order,
02340                             double** uv,
02341                             int* uv_allocated,
02342                             int* uv_size,
02343                             int* err );
02344 
02358   CGMA_IGEOM_EXPORT
02359   void iGeom_getVtxArrToU( iGeom_Instance instance,
02360                            iBase_EntityHandle const* vertex_handles,
02361                            int vertex_handles_size,
02362                            iBase_EntityHandle const* edge_handles,
02363                            int edge_handles_size,
02364                            double** u,
02365                            int* u_allocated,
02366                            int* u_size,
02367                            int* err );
02368 
02381   CGMA_IGEOM_EXPORT
02382   void iGeom_getEntNrmlUV( iGeom_Instance instance,
02383                            iBase_EntityHandle entity_handle,
02384                            double u,
02385                            double v,
02386                            double* nrml_i,
02387                            double* nrml_j,
02388                            double* nrml_k,
02389                            int* err );
02390 
02409   CGMA_IGEOM_EXPORT
02410   void iGeom_getArrNrmlUV( iGeom_Instance instance,
02411                            iBase_EntityHandle const* face_handles,
02412                            int face_handles_size,
02413                            int storage_order,
02414                            double const* parameters,
02415                            int parameters_size,
02416                            double** normals,
02417                            int* normals_allocated,
02418                            int* normals_size,
02419                            int* err );
02420 
02432   CGMA_IGEOM_EXPORT
02433   void iGeom_getEntTgntU( iGeom_Instance instance,
02434                           iBase_EntityHandle entity_handle,
02435                           double u,
02436                           double* tgnt_i,
02437                           double* tgnt_j,
02438                           double* tgnt_k,
02439                           int* err );
02440 
02459   CGMA_IGEOM_EXPORT
02460   void iGeom_getArrTgntU( iGeom_Instance instance,
02461                           iBase_EntityHandle const* edge_handles,
02462                           int edge_handles_size,
02463                           int storage_order,
02464                           double const* parameters,
02465                           int parameters_size,
02466                           double** tangents,
02467                           int* tangents_allocated,
02468                           int* tangents_size,
02469                           int* err );
02470 
02489   CGMA_IGEOM_EXPORT
02490   void iGeom_getEnt1stDrvt( iGeom_Instance instance,
02491                             iBase_EntityHandle entity_handle,
02492                             double u,
02493                             double v,
02494                             double** drvt_u,
02495                             int* drvt_u_allocated,
02496                             int* drvt_u_size,
02497                             double** drvt_v,
02498                             int* dvrt_v_allocated,
02499                             int* dvrt_v_size,
02500                             int* err );
02501 
02531   CGMA_IGEOM_EXPORT
02532   void iGeom_getArr1stDrvt( iGeom_Instance instance,
02533                             iBase_EntityHandle const* entity_handles,
02534                             int entity_handles_size,
02535                             int storage_order,
02536                             double const* uv,
02537                             int uv_size,
02538                             double** dvrt_u,
02539                             int* dvrt_u_allocated,
02540                             int* dvrt_u_size,
02541                             int** u_offset,
02542                             int* u_offset_allocated,
02543                             int* u_offset_size,
02544                             double** dvrt_v,
02545                             int* dvrt_v_allocated,
02546                             int* dvrt_v_size,
02547                             int** v_offset,
02548                             int* v_offset_allocated,
02549                             int* v_offset_size,
02550                             int* err );
02551 
02574   CGMA_IGEOM_EXPORT
02575   void iGeom_getEnt2ndDrvt( iGeom_Instance instance,
02576                             iBase_EntityHandle entity_handle,
02577                             double u,
02578                             double v,
02579                             double** drvt_uu,
02580                             int* drvt_uu_allocated,
02581                             int* drvt_uu_size,
02582                             double** drvt_vv,
02583                             int* dvrt_vv_allocated,
02584                             int* dvrt_vv_size,
02585                             double** drvt_uv,
02586                             int* dvrt_uv_allocated,
02587                             int* dvrt_uv_size,
02588                             int* err );
02589 
02627   CGMA_IGEOM_EXPORT
02628   void iGeom_getArr2ndDrvt( iGeom_Instance instance,
02629                             iBase_EntityHandle const* entity_handles,
02630                             int entity_handles_size,
02631                             int storage_order,
02632                             double const* uv,
02633                             int uv_size,
02634                             double** dvtr_uu,
02635                             int* dvrt_uu_allocated,
02636                             int* dvrt_uu_size,
02637                             int** uu_offset,
02638                             int* uu_offset_allocated,
02639                             int* uu_offset_size,
02640                             double** dvtr_vv,
02641                             int* dvrt_vv_allocated,
02642                             int* dvrt_vv_size,
02643                             int** vv_offset,
02644                             int* vv_offset_allocated,
02645                             int* vv_offset_size,
02646                             double** dvrt_uv,
02647                             int* dvrt_uv_allocated,
02648                             int* dvrt_uv_size,
02649                             int** uv_offset,
02650                             int* uv_offset_allocated,
02651                             int* uv_offset_size,
02652                             int* err );
02653 
02672   CGMA_IGEOM_EXPORT
02673   void iGeom_getFcCvtrUV( iGeom_Instance instance,
02674                           iBase_EntityHandle face_handle,
02675                           double u,
02676                           double v,
02677                           double* cvtr1_i,
02678                           double* cvtr1_j,
02679                           double* cvtr1_k,
02680                           double* cvtr2_i,
02681                           double* cvtr2_j,
02682                           double* cvtr2_k,
02683                           int* err );
02684 
02706   CGMA_IGEOM_EXPORT
02707   void iGeom_getFcArrCvtrUV( iGeom_Instance instance,
02708                              iBase_EntityHandle const* face_handles,
02709                              int face_handles_size,
02710                              int storage_order,
02711                              double const* uv,
02712                              int uv_size,
02713                              double** cvtr_1,
02714                              int* cvtr_1_allocated,
02715                              int* cvtr_1_size,
02716                              double** cvtr_2,
02717                              int* cvtr_2_allocated,
02718                              int* cvtr_2_size,
02719                              int* err );
02720 
02731   CGMA_IGEOM_EXPORT
02732   void iGeom_isEntPeriodic( iGeom_Instance instance,
02733                             iBase_EntityHandle entity_handle,
02734                             int* in_u,
02735                             int* in_v,
02736                             int* err );
02737 
02752   CGMA_IGEOM_EXPORT
02753   void iGeom_isArrPeriodic( iGeom_Instance instance,
02754                             iBase_EntityHandle const* entity_handles,
02755                             int entity_handles_size,
02756                             int** in_uv,
02757                             int* in_uv_allocated,
02758                             int* in_uv_size,
02759                             int* err );
02760 
02769   CGMA_IGEOM_EXPORT
02770   void iGeom_isFcDegenerate( iGeom_Instance instance,
02771                              iBase_EntityHandle face_handle,
02772                              int* is_degenerate,
02773                              int* err );
02774 
02786   CGMA_IGEOM_EXPORT
02787   void iGeom_isFcArrDegenerate( iGeom_Instance instance,
02788                                 iBase_EntityHandle const* face_handles,
02789                                 int face_handles_size,
02790                                 int** degenerate,
02791                                 int* degenerate_allocated,
02792                                 int* degenerate_size,
02793                                 int* err );
02794 
02807   CGMA_IGEOM_EXPORT
02808   void iGeom_getTolerance( iGeom_Instance instance,
02809                            int* type,
02810                            double* tolerance,
02811                            int* err );
02812 
02821   CGMA_IGEOM_EXPORT
02822   void iGeom_getEntTolerance( iGeom_Instance instance,
02823                               iBase_EntityHandle entity_handle,
02824                               double* tolerance,
02825                               int* err );
02826 
02838   CGMA_IGEOM_EXPORT
02839   void iGeom_getArrTolerance( iGeom_Instance instance,
02840                               iBase_EntityHandle const* entity_handles,
02841                               int entity_handles_size,
02842                               double** tolerances,
02843                               int* tolerances_allocated,
02844                               int* tolerances_size,
02845                               int* err );
02846 
02860   CGMA_IGEOM_EXPORT
02861   void iGeom_initEntIter( iGeom_Instance instance,
02862                           iBase_EntitySetHandle entity_set_handle,
02863                           int requested_entity_type,
02864                           iBase_EntityIterator* entity_iterator,
02865                           int* err );
02866 
02882   CGMA_IGEOM_EXPORT
02883   void iGeom_initEntArrIter( iGeom_Instance instance,
02884                              iBase_EntitySetHandle entity_set_handle,
02885                              int requested_entity_type,
02886                              int requested_array_size,
02887                              iBase_EntityArrIterator* entArr_iterator,
02888                              int* err );
02889 
02905   CGMA_IGEOM_EXPORT
02906   void iGeom_getNextEntIter( iGeom_Instance instance,
02907                              iBase_EntityIterator entity_iterator,
02908                              iBase_EntityHandle* entity_handle,
02909                              int* has_data,
02910                              int* err );
02911 
02932   CGMA_IGEOM_EXPORT
02933   void iGeom_getNextEntArrIter( iGeom_Instance instance,
02934                                 iBase_EntityArrIterator entArr_iterator,
02935                                 iBase_EntityHandle** entity_handles,
02936                                 int* entity_handles_allocated,
02937                                 int* entity_handles_size,
02938                                 int* has_data,
02939                                 int* err );
02940 
02948   CGMA_IGEOM_EXPORT
02949   void iGeom_resetEntIter( iGeom_Instance instance,
02950                            iBase_EntityIterator entity_iterator,
02951                            int* err );
02952 
02960   CGMA_IGEOM_EXPORT
02961   void iGeom_resetEntArrIter( iGeom_Instance instance,
02962                               iBase_EntityArrIterator entArr_iterator,
02963                               int* err );
02964 
02972   CGMA_IGEOM_EXPORT
02973   void iGeom_endEntIter( iGeom_Instance instance,
02974                          iBase_EntityIterator entity_iterator,
02975                          int* err );
02976 
02984   CGMA_IGEOM_EXPORT
02985   void iGeom_endEntArrIter( iGeom_Instance instance,
02986                             iBase_EntityArrIterator entArr_iterator,
02987                             int* err );
02988 
02997   CGMA_IGEOM_EXPORT
02998   void iGeom_copyEnt( iGeom_Instance instance,
02999                       iBase_EntityHandle source,
03000                       iBase_EntityHandle* copy,
03001                       int* err );
03002 
03016   CGMA_IGEOM_EXPORT
03017   void iGeom_sweepEntAboutAxis( iGeom_Instance instance,
03018                                 iBase_EntityHandle geom_entity,
03019                                 double angle,
03020                                 double axis_x,
03021                                 double axis_y,
03022                                 double axis_z,
03023                                 iBase_EntityHandle* geom_entity2,
03024                                 int* err );
03025 
03032   CGMA_IGEOM_EXPORT
03033   void iGeom_deleteAll( iGeom_Instance instance,
03034                         int* err );
03035 
03043   CGMA_IGEOM_EXPORT
03044   void iGeom_deleteEnt( iGeom_Instance instance,
03045                         iBase_EntityHandle entity_handle,
03046                         int* err );
03047 
03056   CGMA_IGEOM_EXPORT
03057   void iGeom_createSphere( iGeom_Instance instance,
03058                            double radius,
03059                            iBase_EntityHandle* geom_entity,
03060                            int* err );
03061 
03074   CGMA_IGEOM_EXPORT
03075   void iGeom_createPrism( iGeom_Instance instance,
03076                           double height,
03077                           int n_sides,
03078                           double major_rad,
03079                           double minor_rad,
03080                           iBase_EntityHandle* geom_entity,
03081                           int* err );
03082 
03094   CGMA_IGEOM_EXPORT
03095   void iGeom_createBrick( iGeom_Instance instance,
03096                           double x,
03097                           double y,
03098                           double z,
03099                           iBase_EntityHandle* geom_entity,
03100                           int* err );
03101 
03114   CGMA_IGEOM_EXPORT
03115   void iGeom_createCylinder( iGeom_Instance instance,
03116                              double height,
03117                              double major_rad,
03118                              double minor_rad,
03119                              iBase_EntityHandle* geom_entity,
03120                              int* err );
03121 
03140   CGMA_IGEOM_EXPORT
03141   void iGeom_createCone( iGeom_Instance instance,
03142                          double height,
03143                          double major_rad_base,
03144                          double minor_rad_base,
03145                          double rad_top,
03146                          iBase_EntityHandle* geom_entity,
03147                          int* err );
03148 
03159   CGMA_IGEOM_EXPORT
03160   void iGeom_createTorus( iGeom_Instance instance,
03161                           double major_rad,
03162                           double minor_rad,
03163                           iBase_EntityHandle* geom_entity,
03164                           int* err );
03165 
03176   CGMA_IGEOM_EXPORT
03177   void iGeom_moveEnt( iGeom_Instance instance,
03178                       iBase_EntityHandle geom_entity,
03179                       double x,
03180                       double y,
03181                       double z,
03182                       int* err );
03183 
03195   CGMA_IGEOM_EXPORT
03196   void iGeom_rotateEnt( iGeom_Instance instance,
03197                         iBase_EntityHandle geom_entity,
03198                         double angle,
03199                         double axis_x,
03200                         double axis_y,
03201                         double axis_z,
03202                         int* err );
03203 
03219   CGMA_IGEOM_EXPORT
03220   void iGeom_reflectEnt( iGeom_Instance instance,
03221                          iBase_EntityHandle geom_entity,
03222                          double point_x,
03223                          double point_y,
03224                          double point_z,
03225                          double plane_normal_x,
03226                          double plane_normal_y,
03227                          double plane_normal_z,
03228                          int* err );
03229 
03243   CGMA_IGEOM_EXPORT
03244   void iGeom_scaleEnt( iGeom_Instance instance,
03245                        iBase_EntityHandle geom_entity,
03246                        double point_x,
03247                        double point_y,
03248                        double point_z,
03249                        double scale_x,
03250                        double scale_y,
03251                        double scale_z,
03252                        int* err );
03253 
03263   CGMA_IGEOM_EXPORT
03264   void iGeom_uniteEnts( iGeom_Instance instace,
03265                         iBase_EntityHandle const* geom_entities,
03266                         int geom_entities_size,
03267                         iBase_EntityHandle* geom_entity,
03268                         int* err );
03269 
03279   CGMA_IGEOM_EXPORT
03280   void iGeom_subtractEnts( iGeom_Instance instance,
03281                            iBase_EntityHandle blank,
03282                            iBase_EntityHandle tool,
03283                            iBase_EntityHandle* geom_entity,
03284                            int* err );
03285 
03295   CGMA_IGEOM_EXPORT
03296   void iGeom_intersectEnts( iGeom_Instance instance,
03297                             iBase_EntityHandle entity2,
03298                             iBase_EntityHandle entity1,
03299                             iBase_EntityHandle* geom_entity,
03300                             int* err );
03301 
03316   CGMA_IGEOM_EXPORT
03317   void iGeom_sectionEnt( iGeom_Instance instance,
03318                          iBase_EntityHandle geom_entity,
03319                          double plane_normal_x,
03320                          double plane_normal_y,
03321                          double plane_normal_z,
03322                          double offset,
03323                          int reverse,
03324                          iBase_EntityHandle* geom_entity2,
03325                          int* err );
03326 
03335   CGMA_IGEOM_EXPORT
03336   void iGeom_imprintEnts( iGeom_Instance instance,
03337                           iBase_EntityHandle const* geom_entities,
03338                           int geom_entities_size,
03339                           int* err );
03340 
03351   CGMA_IGEOM_EXPORT
03352   void iGeom_mergeEnts( iGeom_Instance instance,
03353                         iBase_EntityHandle const* geom_entities,
03354                         int geom_entities_size,
03355                         double tolerance,
03356                         int* err );
03357 
03369   CGMA_IGEOM_EXPORT
03370   void iGeom_createEntSet( iGeom_Instance instance,
03371                            int isList,
03372                            iBase_EntitySetHandle* entity_set_created, 
03373                            int *err );
03374 
03382   CGMA_IGEOM_EXPORT
03383   void iGeom_destroyEntSet( iGeom_Instance instance,
03384                             iBase_EntitySetHandle entity_set, 
03385                             int *err );
03386 
03396   CGMA_IGEOM_EXPORT
03397   void iGeom_isList( iGeom_Instance instance,
03398                      iBase_EntitySetHandle entity_set,
03399                      int *is_list, 
03400                      int *err );
03401 
03415   CGMA_IGEOM_EXPORT
03416   void iGeom_getNumEntSets( iGeom_Instance instance,
03417                             iBase_EntitySetHandle entity_set_handle,
03418                             int num_hops,
03419                             int *num_sets, 
03420                             int *err );
03421 
03440   CGMA_IGEOM_EXPORT
03441   void iGeom_getEntSets( iGeom_Instance instance,
03442                          iBase_EntitySetHandle entity_set_handle,
03443                          int num_hops,
03444                          iBase_EntitySetHandle** contained_set_handles,
03445                          int* contained_set_handles_allocated,
03446                          int* contained_set_handles_size, 
03447                          int *err );
03448 
03457   CGMA_IGEOM_EXPORT
03458   void iGeom_addEntToSet( iGeom_Instance instance,
03459                           iBase_EntityHandle entity_handle,
03460                           iBase_EntitySetHandle entity_set, 
03461                           int *err );
03462 
03472   CGMA_IGEOM_EXPORT
03473   void iGeom_rmvEntFromSet( iGeom_Instance instance,
03474                             iBase_EntityHandle entity_handle,
03475                             iBase_EntitySetHandle entity_set, 
03476                             int *err );
03477 
03487   CGMA_IGEOM_EXPORT
03488   void iGeom_addEntArrToSet( iGeom_Instance instance,
03489                              const iBase_EntityHandle* entity_handles,
03490                              int entity_handles_size,
03491                              iBase_EntitySetHandle entity_set, 
03492                              int *err );
03493 
03503   CGMA_IGEOM_EXPORT
03504   void iGeom_rmvEntArrFromSet( iGeom_Instance instance,
03505                                const iBase_EntityHandle* entity_handles,
03506                                int entity_handles_size,
03507                                iBase_EntitySetHandle entity_set,
03508                                int *err );
03509 
03518   CGMA_IGEOM_EXPORT
03519   void iGeom_addEntSet( iGeom_Instance instance,
03520                         iBase_EntitySetHandle entity_set_to_add,
03521                         iBase_EntitySetHandle entity_set_handle, 
03522                         int *err);
03523 
03532   CGMA_IGEOM_EXPORT
03533   void iGeom_rmvEntSet( iGeom_Instance instance,
03534                         iBase_EntitySetHandle entity_set_to_remove,
03535                         iBase_EntitySetHandle entity_set_handle, 
03536                         int *err );
03537 
03549   CGMA_IGEOM_EXPORT
03550   void iGeom_isEntContained( iGeom_Instance instance,
03551                              iBase_EntitySetHandle containing_entity_set,
03552                              iBase_EntityHandle contained_entity,
03553                              int *is_contained, 
03554                              int *err );
03555 
03566   CGMA_IGEOM_EXPORT
03567   void iGeom_isEntArrContained( iGeom_Instance instance,
03568                                 /*in*/ iBase_EntitySetHandle containing_set,
03569                                 /*in*/ const iBase_EntityHandle* entity_handles,
03570                                 /*in*/ int num_entity_handles,
03571                                 /*inout*/ int** is_contained,
03572                                 /*inout*/ int* is_contained_allocated,
03573                                 /*out*/ int* is_contained_size,
03574                                 /*out*/ int* err );
03575 
03587   CGMA_IGEOM_EXPORT
03588   void iGeom_isEntSetContained( iGeom_Instance instance,
03589                                 iBase_EntitySetHandle containing_entity_set,
03590                                 iBase_EntitySetHandle contained_entity_set,
03591                                 int *is_contained, 
03592                                 int *err );
03593 
03603   CGMA_IGEOM_EXPORT
03604   void iGeom_addPrntChld( iGeom_Instance instance,
03605                           iBase_EntitySetHandle parent_entity_set,
03606                           iBase_EntitySetHandle child_entity_set, 
03607                           int *err );
03608 
03617   CGMA_IGEOM_EXPORT
03618   void iGeom_rmvPrntChld( iGeom_Instance instance,
03619                           iBase_EntitySetHandle parent_entity_set,
03620                           iBase_EntitySetHandle child_entity_set, 
03621                           int *err );
03622 
03633   CGMA_IGEOM_EXPORT
03634   void iGeom_isChildOf( iGeom_Instance instance,
03635                         iBase_EntitySetHandle parent_entity_set,
03636                         iBase_EntitySetHandle child_entity_set,
03637                         int *is_child, 
03638                         int *err );
03639 
03652   CGMA_IGEOM_EXPORT
03653   void iGeom_getNumChld( iGeom_Instance instance,
03654                          iBase_EntitySetHandle entity_set,
03655                          int num_hops,
03656                          int *num_child, 
03657                          int *err );
03658 
03671   CGMA_IGEOM_EXPORT
03672   void iGeom_getNumPrnt( iGeom_Instance instance,
03673                          iBase_EntitySetHandle entity_set,
03674                          int num_hops,
03675                          int *num_parent, 
03676                          int *err );
03677 
03695   CGMA_IGEOM_EXPORT
03696   void iGeom_getChldn( iGeom_Instance instance,
03697                        iBase_EntitySetHandle from_entity_set,
03698                        int num_hops,
03699                        iBase_EntitySetHandle** entity_set_handles,
03700                        int* entity_set_handles_allocated,
03701                        int* entity_set_handles_size, 
03702                        int *err );
03703 
03721   CGMA_IGEOM_EXPORT
03722   void iGeom_getPrnts( iGeom_Instance instance,
03723                        iBase_EntitySetHandle from_entity_set,
03724                        int num_hops,
03725                        iBase_EntitySetHandle** entity_set_handles,
03726                        int* entity_set_handles_allocated,
03727                        int* entity_set_handles_size, 
03728                        int *err );
03729 
03744   CGMA_IGEOM_EXPORT
03745   void iGeom_createTag( iGeom_Instance instance,
03746                         const char* tag_name,
03747                         int tag_size,
03748                         int tag_type,
03749                         iBase_TagHandle* tag_handle, 
03750                         int *err,
03751                         int tag_name_len );
03752 
03753 
03765   CGMA_IGEOM_EXPORT
03766   void iGeom_destroyTag( iGeom_Instance instance,
03767                          iBase_TagHandle tag_handle,
03768                          int forced, 
03769                          int *err);
03770 
03781   CGMA_IGEOM_EXPORT
03782   void iGeom_getTagName( iGeom_Instance instance,
03783                          iBase_TagHandle tag_handle,
03784                          char *name, 
03785                          int* err,
03786                          int name_len );
03787 
03796   CGMA_IGEOM_EXPORT
03797   void iGeom_getTagSizeValues( iGeom_Instance instance,
03798                                iBase_TagHandle tag_handle,
03799                                int *tag_size, 
03800                                int *err );
03801 
03810   CGMA_IGEOM_EXPORT
03811   void iGeom_getTagSizeBytes( iGeom_Instance instance,
03812                               iBase_TagHandle tag_handle,
03813                               int *tag_size, 
03814                               int *err );
03815 
03825   CGMA_IGEOM_EXPORT
03826   void iGeom_getTagHandle( iGeom_Instance instance,
03827                            const char* tag_name,
03828                            iBase_TagHandle *tag_handle, 
03829                            int *err,
03830                            int tag_name_len );
03831 
03841   CGMA_IGEOM_EXPORT
03842   void iGeom_getTagType( iGeom_Instance instance,
03843                          iBase_TagHandle tag_handle,
03844                          int *tag_type, 
03845                          int *err );
03846 
03863   CGMA_IGEOM_EXPORT
03864   void iGeom_setEntSetData( iGeom_Instance instance,
03865                             iBase_EntitySetHandle entity_set_handle,
03866                             const iBase_TagHandle tag_handle,
03867                             const void* tag_value,
03868                             const int tag_value_size,
03869                             int *err );
03870 
03880   CGMA_IGEOM_EXPORT
03881   void iGeom_setEntSetIntData( iGeom_Instance instance,
03882                                iBase_EntitySetHandle entity_set,
03883                                iBase_TagHandle tag_handle,
03884                                int tag_value, 
03885                                int *err );
03886 
03896   CGMA_IGEOM_EXPORT
03897   void iGeom_setEntSetDblData( iGeom_Instance instance,
03898                                iBase_EntitySetHandle entity_set,
03899                                iBase_TagHandle tag_handle,
03900                                double tag_value, 
03901                                int *err );
03902 
03912   CGMA_IGEOM_EXPORT
03913   void iGeom_setEntSetEHData( iGeom_Instance instance,
03914                               iBase_EntitySetHandle entity_set,
03915                               iBase_TagHandle tag_handle,
03916                               iBase_EntityHandle tag_value, 
03917                               int *err );
03918 
03928   CGMA_IGEOM_EXPORT
03929   void iGeom_setEntSetESHData( iGeom_Instance instance,
03930                                iBase_EntitySetHandle entity_set,
03931                                iBase_TagHandle tag_handle,
03932                                iBase_EntitySetHandle tag_value, 
03933                                int *err );
03934 
03954   CGMA_IGEOM_EXPORT
03955   void iGeom_getEntSetData( iGeom_Instance instance,
03956                             iBase_EntitySetHandle entity_set_handle,
03957                             iBase_TagHandle tag_handle,
03958                             void** tag_value,
03959                             int* tag_value_allocated,
03960                             int* tag_value_size, 
03961                             int *err );
03962 
03972   CGMA_IGEOM_EXPORT
03973   void iGeom_getEntSetIntData( iGeom_Instance instance,
03974                                iBase_EntitySetHandle entity_set,
03975                                iBase_TagHandle tag_handle,
03976                                int *out_data, 
03977                                int *err );
03978 
03988   CGMA_IGEOM_EXPORT
03989   void iGeom_getEntSetDblData( iGeom_Instance instance,
03990                                iBase_EntitySetHandle entity_set,
03991                                iBase_TagHandle tag_handle,
03992                                double *out_data, 
03993                                int *err );
03994 
04004   CGMA_IGEOM_EXPORT
04005   void iGeom_getEntSetEHData( iGeom_Instance instance,
04006                               iBase_EntitySetHandle entity_set,
04007                               iBase_TagHandle tag_handle,
04008                               iBase_EntityHandle *out_data, 
04009                               int *err );
04010 
04020   CGMA_IGEOM_EXPORT
04021   void iGeom_getEntSetESHData( iGeom_Instance instance,
04022                               iBase_EntitySetHandle entity_set,
04023                               iBase_TagHandle tag_handle,
04024                               iBase_EntitySetHandle *out_data, 
04025                               int *err );
04026 
04039   CGMA_IGEOM_EXPORT
04040   void iGeom_getAllEntSetTags( iGeom_Instance instance,
04041                                iBase_EntitySetHandle entity_set_handle,
04042                                iBase_TagHandle** tag_handles,
04043                                int* tag_handles_allocated,
04044                                int* tag_handles_size, 
04045                                int *err );
04046 
04055   CGMA_IGEOM_EXPORT
04056   void iGeom_rmvEntSetTag( iGeom_Instance instance,
04057                            iBase_EntitySetHandle entity_set_handle,
04058                            iBase_TagHandle tag_handle, 
04059                            int *err );
04060 
04083   CGMA_IGEOM_EXPORT
04084   void iGeom_getArrData( iGeom_Instance instance,
04085                          const iBase_EntityHandle* entity_handles,
04086                          int entity_handles_size,
04087                          iBase_TagHandle tag_handle,
04088                          void** tag_values,
04089                          int* tag_values_allocated,
04090                          int* tag_values_size, 
04091                          int *err );
04092 
04106   CGMA_IGEOM_EXPORT
04107   void iGeom_getIntArrData( iGeom_Instance instance,
04108                             const iBase_EntityHandle* entity_handles,
04109                             int entity_handles_size,
04110                             iBase_TagHandle tag_handle,
04111                             int** tag_values,
04112                             int* tag_values_allocated,
04113                             int* tag_values_size, 
04114                             int *err );
04115 
04129   CGMA_IGEOM_EXPORT
04130   void iGeom_getDblArrData( iGeom_Instance instance,
04131                             const iBase_EntityHandle* entity_handles,
04132                             int entity_handles_size,
04133                             iBase_TagHandle tag_handle,
04134                             double** tag_values,
04135                             int* tag_values_allocated,
04136                             int* tag_values_size, 
04137                             int *err );
04138 
04152   CGMA_IGEOM_EXPORT
04153   void iGeom_getEHArrData( iGeom_Instance instance,
04154                            const iBase_EntityHandle* entity_handles,
04155                            int entity_handles_size,
04156                            iBase_TagHandle tag_handle,
04157                            iBase_EntityHandle** tag_value,
04158                            int* tag_value_allocated,
04159                            int* tag_value_size, 
04160                            int *err );
04161 
04175   CGMA_IGEOM_EXPORT
04176   void iGeom_getESHArrData( iGeom_Instance instance,
04177                             const iBase_EntityHandle* entity_handles,
04178                             int entity_handles_size,
04179                             iBase_TagHandle tag_handle,
04180                             iBase_EntitySetHandle** tag_value,
04181                             int* tag_value_allocated,
04182                             int* tag_value_size, 
04183                             int *err );
04184 
04185 
04206   CGMA_IGEOM_EXPORT
04207   void iGeom_setArrData( iGeom_Instance instance,
04208                          const iBase_EntityHandle* entity_handles,
04209                          int entity_handles_size,
04210                          iBase_TagHandle tag_handle,
04211                          const void* tag_values,
04212                          int tag_values_size, 
04213                          int *err );
04214 
04226   CGMA_IGEOM_EXPORT
04227   void iGeom_setIntArrData( iGeom_Instance instance,
04228                             const iBase_EntityHandle* entity_handles,
04229                             int entity_handles_size,
04230                             iBase_TagHandle tag_handle,
04231                             const int* tag_values,
04232                             int tag_values_size, 
04233                             int *err );
04234 
04246   CGMA_IGEOM_EXPORT
04247   void iGeom_setDblArrData( iGeom_Instance instance,
04248                             const iBase_EntityHandle* entity_handles,
04249                             int entity_handles_size,
04250                             iBase_TagHandle tag_handle,
04251                             const double* tag_values,
04252                             const int tag_values_size, 
04253                             int *err );
04254 
04267   CGMA_IGEOM_EXPORT
04268   void iGeom_setEHArrData( iGeom_Instance instance,
04269                            const iBase_EntityHandle* entity_handles,
04270                            int entity_handles_size,
04271                            iBase_TagHandle tag_handle,
04272                            const iBase_EntityHandle* tag_values,
04273                            int tag_values_size, 
04274                            int *err );
04275 
04288   CGMA_IGEOM_EXPORT
04289   void iGeom_setESHArrData( iGeom_Instance instance,
04290                             const iBase_EntityHandle* entity_handles,
04291                             int entity_handles_size,
04292                             iBase_TagHandle tag_handle,
04293                             const iBase_EntitySetHandle* tag_values,
04294                             int tag_values_size, 
04295                             int *err );
04296 
04306   CGMA_IGEOM_EXPORT
04307   void iGeom_rmvArrTag( iGeom_Instance instance,
04308                         const iBase_EntityHandle* entity_handles,
04309                         int entity_handles_size,
04310                         iBase_TagHandle tag_handle, 
04311                         int *err );
04312 
04332   CGMA_IGEOM_EXPORT
04333   void iGeom_getData( iGeom_Instance instance,
04334                       iBase_EntityHandle entity_handle,
04335                       iBase_TagHandle tag_handle,
04336                       void** tag_value,
04337                       int *tag_value_allocated,
04338                       int *tag_value_size, 
04339                       int *err );
04340 
04350   CGMA_IGEOM_EXPORT
04351   void iGeom_getIntData( iGeom_Instance instance,
04352                          iBase_EntityHandle entity_handle,
04353                          iBase_TagHandle tag_handle,
04354                          int *out_data, 
04355                          int *err );
04356 
04366   CGMA_IGEOM_EXPORT
04367   void iGeom_getDblData( iGeom_Instance instance,
04368                          /*in*/ const iBase_EntityHandle entity_handle,
04369                          /*in*/ const iBase_TagHandle tag_handle,
04370                          double *out_data,
04371                          int *err );
04372 
04382   CGMA_IGEOM_EXPORT
04383   void iGeom_getEHData( iGeom_Instance instance,
04384                         iBase_EntityHandle entity_handle,
04385                         iBase_TagHandle tag_handle,
04386                         iBase_EntityHandle *out_data, 
04387                         int *err );
04388 
04398   CGMA_IGEOM_EXPORT
04399   void iGeom_getESHData( iGeom_Instance instance,
04400                          iBase_EntityHandle entity_handle,
04401                          iBase_TagHandle tag_handle,
04402                          iBase_EntitySetHandle *out_data, 
04403                          int *err );
04404 
04422   CGMA_IGEOM_EXPORT
04423   void iGeom_setData( iGeom_Instance instance,
04424                       iBase_EntityHandle entity_handle,
04425                       iBase_TagHandle tag_handle,
04426                       const void* tag_value,
04427                       int tag_value_size, 
04428                       int *err );
04429 
04439   CGMA_IGEOM_EXPORT
04440   void iGeom_setIntData( iGeom_Instance instance,
04441                          iBase_EntityHandle entity_handle,
04442                          iBase_TagHandle tag_handle,
04443                          int tag_value, 
04444                          int *err );
04445 
04455   CGMA_IGEOM_EXPORT
04456   void iGeom_setDblData( iGeom_Instance instance,
04457                          iBase_EntityHandle entity_handle,
04458                          iBase_TagHandle tag_handle,
04459                          double tag_value, 
04460                          int *err );
04461 
04471   CGMA_IGEOM_EXPORT
04472   void iGeom_setEHData( iGeom_Instance instance,
04473                         iBase_EntityHandle entity_handle,
04474                         iBase_TagHandle tag_handle,
04475                         iBase_EntityHandle tag_value, 
04476                         int *err );
04477 
04487   CGMA_IGEOM_EXPORT
04488   void iGeom_setESHData( iGeom_Instance instance,
04489                          iBase_EntityHandle entity_handle,
04490                          iBase_TagHandle tag_handle,
04491                          iBase_EntitySetHandle tag_value, 
04492                          int *err );
04493 
04506   CGMA_IGEOM_EXPORT
04507   void iGeom_getAllTags( iGeom_Instance instance,
04508                          iBase_EntityHandle entity_handle,
04509                          iBase_TagHandle** tag_handles,
04510                          int* tag_handles_allocated,
04511                          int* tag_handles_size, 
04512                          int *err );
04513 
04522   CGMA_IGEOM_EXPORT
04523   void iGeom_rmvTag( iGeom_Instance instance,
04524                      iBase_EntityHandle entity_handle,
04525                      iBase_TagHandle tag_handle, 
04526                      int *err );
04527 
04537   CGMA_IGEOM_EXPORT
04538   void iGeom_subtract( iGeom_Instance instance,
04539                        iBase_EntitySetHandle entity_set_1,
04540                        iBase_EntitySetHandle entity_set_2,
04541                        iBase_EntitySetHandle* result_entity_set, 
04542                        int *err );
04543 
04553   CGMA_IGEOM_EXPORT
04554   void iGeom_intersect( iGeom_Instance instance,
04555                         iBase_EntitySetHandle entity_set_1,
04556                         iBase_EntitySetHandle entity_set_2,
04557                         iBase_EntitySetHandle* result_entity_set, 
04558                         int *err );
04559 
04569   CGMA_IGEOM_EXPORT
04570   void iGeom_unite( iGeom_Instance instance,
04571                     iBase_EntitySetHandle entity_set_1,
04572                     iBase_EntitySetHandle entity_set_2,
04573                     iBase_EntitySetHandle* result_entity_set, 
04574                     int *err );
04575 
04590   CGMA_IGEOM_EXPORT
04591   void iGeom_getFacets(iGeom_Instance instance,
04592                        iBase_EntityHandle entity,
04593                        double dist_tolerance,
04594                        double **points, int *points_allocated, int *points_size,
04595                        int **facets, int *facets_allocated, int *facets_size,
04596                        int *err);
04597 
04598   /* checks if a point is on a surface or a curve or a body*/
04599   CGMA_IGEOM_EXPORT
04600   void iGeom_isPositionOn(iGeom_Instance instance,
04601                           iBase_EntityHandle entity,
04602                           double x,
04603                           double y,
04604                           double z,
04605                           int *isOn); 
04606 #ifdef __cplusplus
04607 } /* extern "C" */
04608 #endif
04609 
04610 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines