moab
|
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 enum iBase_EntityType { 00106 iBase_EntityType_MIN = 0, 00108 iBase_VERTEX = iBase_EntityType_MIN, 00110 iBase_EDGE, 00112 iBase_FACE, 00114 iBase_REGION, 00116 iBase_ALL_TYPES, 00118 iBase_EntityType_MAX = iBase_ALL_TYPES 00120 }; 00121 00122 enum iBase_AdjacencyCost { 00123 iBase_AdjacencyCost_MIN = 0, 00125 iBase_UNAVAILABLE = iBase_AdjacencyCost_MIN, 00127 iBase_ALL_ORDER_1, 00129 iBase_ALL_ORDER_LOGN, 00131 iBase_ALL_ORDER_N, 00133 iBase_SOME_ORDER_1, 00135 iBase_SOME_ORDER_LOGN, 00137 iBase_SOME_ORDER_N, 00139 iBase_AVAILABLE, 00141 iBase_AdjacencyCost_MAX = iBase_AVAILABLE 00143 }; 00144 00145 enum iBase_CreationStatus { 00146 iBase_CreationStatus_MIN = 0, 00148 iBase_NEW = iBase_CreationStatus_MIN, 00150 iBase_ALREADY_EXISTED, 00153 iBase_CREATED_DUPLICATE, 00156 iBase_CREATION_FAILED, 00158 iBase_CreationStatus_MAX = iBase_CREATION_FAILED 00160 }; 00161 00162 enum iBase_ErrorType { 00163 iBase_ErrorType_MIN = 0, 00165 iBase_SUCCESS = iBase_ErrorType_MIN, 00166 iBase_MESH_ALREADY_LOADED, 00167 iBase_FILE_NOT_FOUND, 00168 iBase_FILE_WRITE_ERROR, 00169 iBase_NIL_ARRAY, 00170 iBase_BAD_ARRAY_SIZE, 00171 iBase_BAD_ARRAY_DIMENSION, 00172 iBase_INVALID_ENTITY_HANDLE, 00173 iBase_INVALID_ENTITY_COUNT, 00174 iBase_INVALID_ENTITY_TYPE, 00175 iBase_INVALID_ENTITY_TOPOLOGY, 00176 iBase_BAD_TYPE_AND_TOPO, 00177 iBase_ENTITY_CREATION_ERROR, 00178 iBase_INVALID_TAG_HANDLE, 00179 iBase_TAG_NOT_FOUND, 00180 iBase_TAG_ALREADY_EXISTS, 00181 iBase_TAG_IN_USE, 00182 iBase_INVALID_ENTITYSET_HANDLE, 00183 iBase_INVALID_ITERATOR_HANDLE, 00184 iBase_INVALID_ARGUMENT, 00185 iBase_MEMORY_ALLOCATION_FAILED, 00186 iBase_NOT_SUPPORTED, 00187 iBase_FAILURE, 00188 iBase_ErrorType_MAX = iBase_FAILURE 00190 }; 00191 00192 /***************************************************************************/ 00212 enum iBase_StorageOrder { 00213 iBase_StorageOrder_MIN = 0, 00215 iBase_BLOCKED = iBase_StorageOrder_MIN, 00217 iBase_INTERLEAVED, 00219 iBase_StorageOrder_MAX = iBase_INTERLEAVED 00221 }; 00222 00223 enum iBase_TagValueType { 00224 iBase_TagValueType_MIN = 0, 00226 iBase_BYTES = iBase_TagValueType_MIN, 00228 iBase_INTEGER, 00230 iBase_DOUBLE, 00232 iBase_ENTITY_HANDLE, 00234 iBase_ENTITY_SET_HANDLE, 00236 iBase_TagValueType_MAX = iBase_ENTITY_SET_HANDLE 00238 }; 00239 00240 /***************************************************************************/ 00244 /***************************************************************************/ 00248 /***************************************************************************/ 00253 /***************************************************************************/ 00258 /***************************************************************************/ 00263 /***************************************************************************/ 00560 #ifdef __cplusplus 00561 } 00562 #endif 00563 00564 #endif /* #ifndef _ITAPS_iBase */