moab
iBase.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 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 */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines