Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
iBase.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define IBASE_VERSION_MAJOR   1
 Compile time version number digits.
#define IBASE_VERSION_MINOR   4
#define IBASE_VERSION_PATCH   1
#define IBASE_VERSION_GE(Maj, Min, Pat)
 Version Comparison.
#define IBASE_VERSION_STRING___(I, X, Y, Z)   #I "_Version_" #X "." #Y "." #Z
 Compose compile-time string represention of the version number.
#define IBASE_VERSION_STRING__(I, X, Y, Z)   IBASE_VERSION_STRING___( I, X, Y, Z )
#define IBASE_VERSION_STRING_(I)   IBASE_VERSION_STRING__( I, IBASE_VERSION_MAJOR, IBASE_VERSION_MINOR, IBASE_VERSION_PATCH )
#define IBASE_VERSION_STRING   IBASE_VERSION_STRING_( iBase )
#define IBASE_VERSION_TAG__(I, X, Y, Z)   I##_Version_##X##_##Y##_##Z
 Compose compile-time symbol name derived from the version number.
#define IBASE_VERSION_TAG_(I, X, Y, Z)   IBASE_VERSION_TAG__( I, X, Y, Z )
#define IBASE_VERSION_TAG(I)   IBASE_VERSION_TAG_( I, IBASE_VERSION_MAJOR, IBASE_VERSION_MINOR, IBASE_VERSION_PATCH )
#define ITAPS_VERSION_MAJOR   IBASE_VERSION_MAJOR
 ITAPS-wide (across all ITAPS APIs) version handling.
#define ITAPS_VERSION_MINOR   IBASE_VERSION_MINOR
#define ITAPS_VERSION_PATCH   IBASE_VERSION_PATCH
#define ITAPS_VERSION_GE(Maj, Min, Pat)   IBASE_VERSION_GE( Maj, Min, Pat )
#define ITAPS_VERSION_STRING_(I)   IBASE_VERSION_STRING_( I )
#define ITAPS_VERSION_STRING   ITAPS_VERSION_STRING_( ITAPS )
#define ITAPS_VERSION_TAG_(I)   IBASE_VERSION_TAG( I )
#define ITAPS_VERSION_TAG   ITAPS_VERSION_TAG_( I )
#define IBASE_MINENUM(enumName)   enumName##_MIN
#define IBASE_MAXENUM(enumName)   enumName##_MAX
#define IBASE_NUMENUM(enumName)   ( (int)IBASE_MAXENUM( enumName ) - (int)IBASE_MINENUM( enumName ) + 1 )
#define IBASE_INCENUM(enumName, I)   ( ( I ) = ( enum( enumName ) )( (int)( I ) + 1 ) )

Typedefs

typedef void * iBase_Instance
typedef struct
iBase_EntityHandle_Private * 
iBase_EntityHandle
typedef struct
iBase_EntitySetHandle_Private * 
iBase_EntitySetHandle
typedef struct
iBase_TagHandle_Private * 
iBase_TagHandle
typedef struct
iBase_EntityIterator_Private * 
iBase_EntityIterator
typedef struct
iBase_EntityArrIterator_Private
iBase_EntityArrIterator

Enumerations

enum  iBase_EntityType {
  iBase_EntityType_MIN = 0, iBase_VERTEX = iBase_EntityType_MIN, iBase_EDGE, iBase_FACE,
  iBase_REGION, iBase_ALL_TYPES, iBase_EntityType_MAX = iBase_ALL_TYPES
}
enum  iBase_AdjacencyCost {
  iBase_AdjacencyCost_MIN = 0, iBase_UNAVAILABLE = iBase_AdjacencyCost_MIN, iBase_ALL_ORDER_1, iBase_ALL_ORDER_LOGN,
  iBase_ALL_ORDER_N, iBase_SOME_ORDER_1, iBase_SOME_ORDER_LOGN, iBase_SOME_ORDER_N,
  iBase_AVAILABLE, iBase_AdjacencyCost_MAX = iBase_AVAILABLE
}
enum  iBase_CreationStatus {
  iBase_CreationStatus_MIN = 0, iBase_NEW = iBase_CreationStatus_MIN, iBase_ALREADY_EXISTED, iBase_CREATED_DUPLICATE,
  iBase_CREATION_FAILED, iBase_CreationStatus_MAX = iBase_CREATION_FAILED
}
enum  iBase_ErrorType {
  iBase_ErrorType_MIN = 0, iBase_SUCCESS = iBase_ErrorType_MIN, iBase_MESH_ALREADY_LOADED, iBase_FILE_NOT_FOUND,
  iBase_FILE_WRITE_ERROR, iBase_NIL_ARRAY, iBase_BAD_ARRAY_SIZE, iBase_BAD_ARRAY_DIMENSION,
  iBase_INVALID_ENTITY_HANDLE, iBase_INVALID_ENTITY_COUNT, iBase_INVALID_ENTITY_TYPE, iBase_INVALID_ENTITY_TOPOLOGY,
  iBase_BAD_TYPE_AND_TOPO, iBase_ENTITY_CREATION_ERROR, iBase_INVALID_TAG_HANDLE, iBase_TAG_NOT_FOUND,
  iBase_TAG_ALREADY_EXISTS, iBase_TAG_IN_USE, iBase_INVALID_ENTITYSET_HANDLE, iBase_INVALID_ITERATOR_HANDLE,
  iBase_INVALID_ARGUMENT, iBase_MEMORY_ALLOCATION_FAILED, iBase_NOT_SUPPORTED, iBase_FAILURE,
  iBase_ErrorType_MAX = iBase_FAILURE
}
enum  iBase_StorageOrder { iBase_StorageOrder_MIN = 0, iBase_BLOCKED = iBase_StorageOrder_MIN, iBase_INTERLEAVED, iBase_StorageOrder_MAX = iBase_INTERLEAVED }
enum  iBase_TagValueType {
  iBase_TagValueType_MIN = 0, iBase_BYTES = iBase_TagValueType_MIN, iBase_INTEGER, iBase_DOUBLE,
  iBase_ENTITY_HANDLE, iBase_ENTITY_SET_HANDLE, iBase_TagValueType_MAX = iBase_ENTITY_SET_HANDLE
}

Define Documentation

#define IBASE_INCENUM (   enumName,
 
)    ( ( I ) = ( enum( enumName ) )( (int)( I ) + 1 ) )

EnumIterators

Definition at line 167 of file iBase.h.

#define IBASE_MAXENUM (   enumName)    enumName##_MAX

EnumIterators

Definition at line 165 of file iBase.h.

#define IBASE_MINENUM (   enumName)    enumName##_MIN

EnumIterators

Definition at line 164 of file iBase.h.

#define IBASE_NUMENUM (   enumName)    ( (int)IBASE_MAXENUM( enumName ) - (int)IBASE_MINENUM( enumName ) + 1 )

EnumIterators

Definition at line 166 of file iBase.h.

#define IBASE_VERSION_GE (   Maj,
  Min,
  Pat 
)
Value:
( ( ( IBASE_VERSION_MAJOR == ( Maj ) ) && ( IBASE_VERSION_MINOR == ( Min ) ) &&  \
        ( IBASE_VERSION_PATCH >= ( Pat ) ) ) ||                                      \
      ( ( IBASE_VERSION_MAJOR == ( Maj ) ) && ( IBASE_VERSION_MINOR > ( Min ) ) ) || \
      ( IBASE_VERSION_MAJOR > ( Maj ) ) )

Version Comparison.

VersionNumbers Evaluates to true at CPP time if the version of iBase currently being compiled is greater than or equal to the version specified.

Definition at line 68 of file iBase.h.

#define IBASE_VERSION_MAJOR   1

Compile time version number digits.

VersionNumbers iBase maintains a major, minor and patch digit in its version number. Technically speaking, there is not much practical value in patch digit for an interface specification. A patch release is typically only used for bug fix releases. Although it is rare, sometimes a bug fix necessitates an API change. So, we define a patch digit for iBase.

Although each interface in ITAPS has been designed to support its own unique version numbers, apart from other ITAPS interfaces, as currently used, we require all ITAPS interfaces to use the same ITAPS-wide version number derived from the version number defined by these three digits.

Definition at line 50 of file iBase.h.

#define IBASE_VERSION_MINOR   4

Definition at line 51 of file iBase.h.

#define IBASE_VERSION_PATCH   1

Definition at line 52 of file iBase.h.

Definition at line 86 of file iBase.h.

#define IBASE_VERSION_STRING__ (   I,
  X,
  Y,
 
)    IBASE_VERSION_STRING___( I, X, Y, Z )

Definition at line 83 of file iBase.h.

#define IBASE_VERSION_STRING___ (   I,
  X,
  Y,
 
)    #I "_Version_" #X "." #Y "." #Z

Compose compile-time string represention of the version number.

VersionNumbers

Definition at line 82 of file iBase.h.

#define IBASE_VERSION_TAG_ (   I,
  X,
  Y,
 
)    IBASE_VERSION_TAG__( I, X, Y, Z )

Definition at line 97 of file iBase.h.

#define IBASE_VERSION_TAG__ (   I,
  X,
  Y,
 
)    I##_Version_##X##_##Y##_##Z

Compose compile-time symbol name derived from the version number.

VersionNumbers

Definition at line 96 of file iBase.h.

#define ITAPS_VERSION_GE (   Maj,
  Min,
  Pat 
)    IBASE_VERSION_GE( Maj, Min, Pat )

Definition at line 111 of file iBase.h.

ITAPS-wide (across all ITAPS APIs) version handling.

VersionNumbers

Definition at line 108 of file iBase.h.

Definition at line 109 of file iBase.h.

Definition at line 110 of file iBase.h.

Definition at line 113 of file iBase.h.

#define ITAPS_VERSION_STRING_ (   I)    IBASE_VERSION_STRING_( I )

Definition at line 112 of file iBase.h.

Definition at line 115 of file iBase.h.

#define ITAPS_VERSION_TAG_ (   I)    IBASE_VERSION_TAG( I )

Definition at line 114 of file iBase.h.


Typedef Documentation

Definition at line 179 of file iBase.h.

typedef struct iBase_EntityHandle_Private* iBase_EntityHandle

Definition at line 175 of file iBase.h.

typedef struct iBase_EntityIterator_Private* iBase_EntityIterator

Definition at line 178 of file iBase.h.

typedef struct iBase_EntitySetHandle_Private* iBase_EntitySetHandle

Definition at line 176 of file iBase.h.

typedef void* iBase_Instance

Definition at line 174 of file iBase.h.

typedef struct iBase_TagHandle_Private* iBase_TagHandle

Definition at line 177 of file iBase.h.


Enumeration Type Documentation

Enumerator:
iBase_AdjacencyCost_MIN 

facilitates iteration over all values

iBase_UNAVAILABLE 

Adjacency information not supported

iBase_ALL_ORDER_1 

No more than local mesh traversal required (i!=j)

iBase_ALL_ORDER_LOGN 

Global tree search (i!=j)

iBase_ALL_ORDER_N 

Global exhaustive search (i!=j)

iBase_SOME_ORDER_1 

Only some adjacency info, local (i!=j)

iBase_SOME_ORDER_LOGN 

Only some adjacency info, tree (i!=j)

iBase_SOME_ORDER_N 

Only some adjacency info, exhaustive (i!=j)

iBase_AVAILABLE 

ALL (intermediate) entities available. (i==j)

iBase_AdjacencyCost_MAX 

facilitates iteration over all values

Definition at line 199 of file iBase.h.

{
    iBase_AdjacencyCost_MIN = 0,
    /**< facilitates iteration over all values */
    iBase_UNAVAILABLE = iBase_AdjacencyCost_MIN,
    /**< Adjacency information not supported */
    iBase_ALL_ORDER_1,
    /**< No more than local mesh traversal required (i!=j) */
    iBase_ALL_ORDER_LOGN,
    /**< Global tree search (i!=j) */
    iBase_ALL_ORDER_N,
    /**< Global exhaustive search (i!=j) */
    iBase_SOME_ORDER_1,
    /**< Only some adjacency info, local (i!=j) */
    iBase_SOME_ORDER_LOGN,
    /**< Only some adjacency info, tree (i!=j) */
    iBase_SOME_ORDER_N,
    /**< Only some adjacency info, exhaustive (i!=j) */
    iBase_AVAILABLE,
    /**< ALL (intermediate) entities available. (i==j) */
    iBase_AdjacencyCost_MAX = iBase_AVAILABLE
    /**< facilitates iteration over all values */
};
Enumerator:
iBase_CreationStatus_MIN 

facilitates iteration over all values

iBase_NEW 

The entity was newly created

iBase_ALREADY_EXISTED 

The entity already existed and the handle for that already existing handle was returned

iBase_CREATED_DUPLICATE 

The entity already existed but a new, duplicate entity was nevertheless created

iBase_CREATION_FAILED 

Creation of the entity did not succeed

iBase_CreationStatus_MAX 

facilitates iteration over all values

Definition at line 223 of file iBase.h.

{
    iBase_CreationStatus_MIN = 0,
    /**< facilitates iteration over all values */
    iBase_NEW = iBase_CreationStatus_MIN,
    /**< The entity was newly created */
    iBase_ALREADY_EXISTED,
    /**< The entity already existed and the handle for that
         already existing handle was returned */
    iBase_CREATED_DUPLICATE,
    /**< The entity already existed but a new, duplicate entity was
         nevertheless created */
    iBase_CREATION_FAILED,
    /**< Creation of the entity did not succeed */
    iBase_CreationStatus_MAX = iBase_CREATION_FAILED
    /**< facilitates iteration over all values */
};
Enumerator:
iBase_EntityType_MIN 

facilitates iteration over all values

iBase_VERTEX 

A topological dimension 0 entity

iBase_EDGE 

A topological dimension 1 entity

iBase_FACE 

A topological dimension 2 entity

iBase_REGION 

A topological dimension 3 entity

iBase_ALL_TYPES 

used only in queries to request information about all types

iBase_EntityType_MAX 

facilitates iteration over all values

Definition at line 181 of file iBase.h.

{
    iBase_EntityType_MIN = 0,
    /**< facilitates iteration over all values */
    iBase_VERTEX = iBase_EntityType_MIN,
    /**< A topological dimension 0 entity */
    iBase_EDGE,
    /**< A topological dimension 1 entity */
    iBase_FACE,
    /**< A topological dimension 2 entity */
    iBase_REGION,
    /**< A topological dimension 3 entity */
    iBase_ALL_TYPES,
    /**< used only in queries to request information about all types */
    iBase_EntityType_MAX = iBase_ALL_TYPES
    /**< facilitates iteration over all values */
};
Enumerator:
iBase_ErrorType_MIN 

facilitates iteration over all values

iBase_SUCCESS 
iBase_MESH_ALREADY_LOADED 
iBase_FILE_NOT_FOUND 
iBase_FILE_WRITE_ERROR 
iBase_NIL_ARRAY 
iBase_BAD_ARRAY_SIZE 
iBase_BAD_ARRAY_DIMENSION 
iBase_INVALID_ENTITY_HANDLE 
iBase_INVALID_ENTITY_COUNT 
iBase_INVALID_ENTITY_TYPE 
iBase_INVALID_ENTITY_TOPOLOGY 
iBase_BAD_TYPE_AND_TOPO 
iBase_ENTITY_CREATION_ERROR 
iBase_INVALID_TAG_HANDLE 
iBase_TAG_NOT_FOUND 
iBase_TAG_ALREADY_EXISTS 
iBase_TAG_IN_USE 
iBase_INVALID_ENTITYSET_HANDLE 
iBase_INVALID_ITERATOR_HANDLE 
iBase_INVALID_ARGUMENT 
iBase_MEMORY_ALLOCATION_FAILED 
iBase_NOT_SUPPORTED 
iBase_FAILURE 
iBase_ErrorType_MAX 

facilitates iteration over all values

Definition at line 241 of file iBase.h.

Many of the functions in iMesh can return arrays of tuples; that is, arrays of multi-valued type. For example, the function iMesh_getVtxArrCoords, returns an array of xyz coordinate 3-tuples (or, perhaps for geometrically 2D meshes, xy 2-tuples). In these situations, there are multiple ways the data can be organized in memory. For example, it could be stored xyz,xyz,xyz or xxx...,yyy...,zzz.... These two different storage orders are referred to as INTERLEAVED and BLOCKED, respectively. For some functions in iMesh, the storage order is explicitly specified as an argument to the function. For other functions, the storage order is not explicitly specified. And, in these cases, it shall always be implicitly assumed to be INTERLEAVED. This fact will be mentioned in the documentation for each specific function where it applies. For example, in case of iMesh_getEntArrAdj, the returned array of adjacent entities is multi-valued in that it stores for each entity queried, all its adjacent entities. Such an array will be stored INTERLEAVED with all adjacent entities for the first entity in the query followed by all adjacent entities for the second entity in the query and so forth.

Enumerator:
iBase_StorageOrder_MIN 

facilitates iteration over all values

iBase_BLOCKED 

xxx...yyy...zzz...

iBase_INTERLEAVED 

xyzxyzxyz...

iBase_StorageOrder_MAX 

facilitates iteration over all values

Definition at line 344 of file iBase.h.

{
    iBase_StorageOrder_MIN = 0,
    /**< facilitates iteration over all values */
    iBase_BLOCKED = iBase_StorageOrder_MIN,
    /**< xxx...yyy...zzz... */
    iBase_INTERLEAVED,
    /**< xyzxyzxyz... */
    iBase_StorageOrder_MAX = iBase_INTERLEAVED
    /**< facilitates iteration over all values */
};
Enumerator:
iBase_TagValueType_MIN 

facilitates iteration over all values

iBase_BYTES 

An opaque sequence of bytes, size always measured in bytes

iBase_INTEGER 

A value of type int

iBase_DOUBLE 

A value of type double

iBase_ENTITY_HANDLE 

A value of type iBase_EntityHandle

iBase_ENTITY_SET_HANDLE 

A value of type iBase_EntitySetHandle

iBase_TagValueType_MAX 

facilitates iteration over all values

Definition at line 356 of file iBase.h.

{
    iBase_TagValueType_MIN = 0,
    /**< facilitates iteration over all values */
    iBase_BYTES = iBase_TagValueType_MIN,
    /**< An opaque sequence of bytes, size always measured in bytes */
    iBase_INTEGER,
    /**< A value of type \c int */
    iBase_DOUBLE,
    /**< A value of type \c double */
    iBase_ENTITY_HANDLE,
    /**< A value of type \c iBase_EntityHandle */
    iBase_ENTITY_SET_HANDLE,
    /**< A value of type \c iBase_EntitySetHandle */
    iBase_TagValueType_MAX = iBase_ENTITY_SET_HANDLE
    /**< facilitates iteration over all values */
};
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines