Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
Internals.hpp File Reference
#include "moab/Types.hpp"
#include <cassert>
+ Include dependency graph for Internals.hpp:

Go to the source code of this file.

Namespaces

 moab
 Class representing axis-aligned bounding box.
 

Macros

#define MB_TYPE_WIDTH   4
 
#define MB_ID_WIDTH   ( 8 * sizeof( EntityHandle ) - MB_TYPE_WIDTH )
 
#define MB_TYPE_MASK   ( (EntityHandle)0xF << MB_ID_WIDTH )
 
#define MB_START_ID   ( (EntityID)1 )
 All entity id's currently start at 1. More...
 
#define MB_END_ID   ( (EntityID)MB_ID_MASK )
 Last id is the complement of the MASK. More...
 
#define MB_ID_MASK   ( ~MB_TYPE_MASK )
 

Functions

EntityHandle moab::CREATE_HANDLE (const unsigned type, const EntityID id, int &err)
 Given a type and an id create a handle. More...
 
EntityHandle moab::CREATE_HANDLE (const unsigned type, const EntityID id)
 
EntityHandle moab::FIRST_HANDLE (unsigned type)
 
EntityHandle moab::LAST_HANDLE (unsigned type)
 
EntityID moab::ID_FROM_HANDLE (EntityHandle handle)
 Get the entity id out of the handle. More...
 
EntityType moab::TYPE_FROM_HANDLE (EntityHandle handle)
 Get the type out of the handle. Can do a simple shift because handles are unsigned (therefore shifting fills with zero's) More...
 

Macro Definition Documentation

◆ MB_END_ID

#define MB_END_ID   ( (EntityID)MB_ID_MASK )

Last id is the complement of the MASK.

Definition at line 51 of file Internals.hpp.

◆ MB_ID_MASK

#define MB_ID_MASK   ( ~MB_TYPE_MASK )

Definition at line 52 of file Internals.hpp.

◆ MB_ID_WIDTH

#define MB_ID_WIDTH   ( 8 * sizeof( EntityHandle ) - MB_TYPE_WIDTH )

Definition at line 46 of file Internals.hpp.

◆ MB_START_ID

#define MB_START_ID   ( (EntityID)1 )

All entity id's currently start at 1.

Definition at line 50 of file Internals.hpp.

◆ MB_TYPE_MASK

#define MB_TYPE_MASK   ( (EntityHandle)0xF << MB_ID_WIDTH )

Definition at line 47 of file Internals.hpp.

◆ MB_TYPE_WIDTH

#define MB_TYPE_WIDTH   4

Define EntityHandle for both 32 bit and 64 bit systems. The decision to use 64 bit handles must be made at compile time.

EntityHandle format: 0xXYYYYYYY (assuming a 32-bit handle. Top 4 bits reserved on a 64 bit system) X - reserved for entity type. This system can only handle 15 different types Y - Entity id space. Max id is over 200M

Note that for specialized databases (such as all hex) 16 bits are not required for the entity type and the id space can be increased to over 2B.

Definition at line 45 of file Internals.hpp.