00001 #ifndef COMMON_H_INCLUDED
00002 #define COMMON_H_INCLUDED
00003
00004
00005
00006
00007
00008
00009 #include <limits>
00010
00011
00012
00013
00014
00015 #include <cassert>
00016 #include <sstream>
00017
00018 #include "uth_log.h"
00019
00026
00027
00028 #ifndef IN
00029 #define IN
00030 #endif
00031
00032 #ifndef OUT
00033 #define OUT
00034 #endif
00035
00036 #ifndef NULL
00037 #define NULL 0
00038 #endif
00039
00040
00041
00042
00043
00044
00045
00046
00047 typedef unsigned char BYTE;
00048 #ifdef _WIN32
00049 #ifndef __int8_t_defined
00050 # define __int8_t_defined
00051 typedef signed char int8_t;
00052 #endif
00053
00054
00055 #ifndef __uint8_t_defined
00056 # define __uint8_t_defined
00057 typedef unsigned char uint8_t;
00058 #endif
00059
00060 #else
00061
00062 #include <stdint.h>
00063 #endif
00064
00065 typedef BYTE Tsmall;
00066 typedef int Tind;
00067 typedef unsigned int uTind;
00068 typedef double Tval;
00069 typedef uTind ID;
00070 typedef long int Tlong;
00071 typedef unsigned long int uTlong;
00072
00073
00074 const Tind UNKNOWN_INT = std::numeric_limits<Tind>::min();
00075
00076 const uTind UNKNOWN = std::numeric_limits<uTind>::max();
00077 const uTind FIRST=1;
00078 const int X=0;
00079 const int Y=1;
00080 const int Z=2;
00081 const double SMALL=1e-10;
00082
00083 enum eFlagIdx
00084 {
00085 GROUP_ID = 0,
00086 B_COND = 0,
00087 F_TYPE = 1,
00088 REFINEMENT = 1,
00089 EL_TYPE = 2
00090 };
00091
00092 enum eFaceFlag
00093 {
00094 F_IN = -1,
00095 F_OUT = 1,
00096 F_NORMAL=0,
00097 F_FLIPPED=4
00098 };
00099
00100
00101
00102 enum eElemFlag
00103 {
00104 EL_TYPEI=5,
00105 EL_TYPEII=12,
00106 EL_TYPE0=1,
00107 EL_TYPE1=2,
00108 EL_TYPE2=4,
00109 EL_TYPE3=8,
00110 EL_T4_ALLIN=15,
00111 EL_TYPE4=16,
00112 EL_TYPE00=0,
00113
00114 EL_TYPE_PI=9,
00115 EL_TYPE_PII=25
00116 };
00117
00118 enum eMMC
00119 {
00120 ACTIVE=1,
00121 INACTIVE=-1,
00122 REF_ISO=8,
00123 UNREFINED=0
00124 };
00125
00126 enum eKind
00127 {
00128 eVertex,
00129 eEdge,
00130 eFace,
00131 eElement
00132 };
00133
00134
00135 template <typename T> class FirstGeometryModule;
00136 typedef FirstGeometryModule < double > GeometryModule;
00137
00138 template<class T>
00139 inline void safeDelete (T*& p)
00140 {
00141 if ( p != NULL ) {
00142 delete p;
00143 p = NULL;
00144 }
00145 }
00146
00147 template<class T>
00148 inline void safeDeleteArray (T*& p)
00149 {
00150 if ( p != NULL ) {
00151 delete [] p;
00152 p = NULL;
00153 }
00154 }
00155
00156 extern std::ostringstream& mmv_out_stream;
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00193 #endif // COMMON_H_INCLUDED