• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Data Structures
  • Files

GLOBAL.h

Go to the documentation of this file.
00001 /* CORE SOURCE CODE REMOVED */
00002 
00003 /*
00004 ******************************************************************
00005 ******************************************************************
00006 *******                                                   ********
00007 ******  (C) 1988-2008 Tecplot, Inc.                        *******
00008 *******                                                   ********
00009 ******************************************************************
00010 ******************************************************************
00011 */
00012 
00013 #ifndef _GLOBAL_H
00014 
00015 #if defined EXTERN
00016 #undef EXTERN
00017 #endif
00018 #if defined Q_MAINMODULE && defined TECPLOTKERNEL
00019 #define EXTERN
00020 #else
00021 #define EXTERN extern
00022 #endif
00023 
00024 #define EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
00025 /* CORE SOURCE CODE REMOVED */
00026 
00027 
00028 /****************************************************************
00029  *                                                              *
00030  *                          MACROS                              *
00031  *                                                              *
00032  ****************************************************************/
00033 #if defined TRUE
00034 #undef TRUE
00035 #endif
00036 #if defined FALSE
00037 #undef FALSE
00038 #endif
00039 #if defined MIN
00040 #undef MIN
00041 #endif
00042 #if defined MAX
00043 #undef MAX
00044 #endif
00045 #if defined ROUND
00046 #undef ROUND
00047 #endif
00048 #if defined ROUND2
00049 #undef ROUND2
00050 #endif
00051 #if defined TRUNC
00052 #undef TRUNC
00053 #endif
00054 
00055 #define TRUE                  ((Boolean_t)1)
00056 #define FALSE                 ((Boolean_t)0)
00057 
00058 /****************************************************************
00059  *                                                              *
00060  *                           MACROS                             *
00061  *                                                              *
00062  ****************************************************************/
00063 #define ABS(X)                ((X) >= 0 ? (X) : -(X) )
00064 #define MAX(X,Y)              ((X) > (Y) ? (X) : (Y) )
00065 #define MIN(X,Y)              ((X) < (Y) ? (X) : (Y) )
00066 #define BESTSHOWCOLOR(X)      ((X) == White_C ? Black_C : White_C)
00067 #define ROUND_TO_BYTE(X)      ((BYTE)((X)+0.499))
00068 #define ROUNDS(X)             ((short)((X)+0.499))
00069 #define ROUNDL(X)             ((LgIndex_t)((X)+0.499))
00070 #define ROUND2(X)             ((X) >= 0 ? ((int)((X)+0.499)) : ((int)((X)-0.499)))
00071 #define TRUNC(X)              ((short) (X))
00072 #define RAD_TO_DEG(rad)       (180.*(rad)/PI)
00073 #define DEG_TO_RAD(deg)       (PI*(deg)/180.)
00074 
00075 # define CAPITAL(C) ( ('a'<=(C)&&(C)<='z') ? ((C)+('A'-'a')) : (C) ) /* okay for UNICODE */
00076 
00077 #include "TASSERT.h"
00078 
00079 #if defined TECPLOTKERNEL && defined MSWIN
00080   #define ISEMPTYSTRING(S)      tecplot::strutil::IsEmptyString(S) 
00081 #else
00082   #define ISEMPTYSTRING(S)      ( ((const char*)(S))[0] == '\0' )
00083 #endif
00084 
00085 #define ISWHITESPACE(C)       ((C == ' ') || (C == '\t') || (C == '\n'))
00086 #define ISSEPARATOR(C)        ((C == ' ') || (C == '\t') || (C == ','))
00087 /* clamp the input to the specified range */
00088 #define CLAMP(value,low,high) ((value)<(low) ? (low) : (value) > (high) ? (high) : (value))
00089 /* integer division rounds any fraction up (for example n=16,d=3 results in 6) */
00090 #define INTEGER_DIVIDE_AND_ROUND_UP(n, d) (((int)(n)+(int)(d)-1)/(int)(d))
00091 
00092 /* CORE SOURCE CODE REMOVED */
00093 
00094 /* */
00095 #define SWITCH(Type,A,B)      do {Type T = (A); (A) = (B); (B) = T;} while (FALSE)
00096 #define SWITCH_DOUBLES(A,B)   SWITCH(double, (A), (B))
00097 #define FPRINTFOK(x)          (Boolean_t)((x) > 0)
00098 #define GRAPHICSARE3D(F)      ((F->PlotType == PlotType_Cartesian3D))
00099 
00100 /* convenience macros for implication, P -> Q, and equivalence, P <-> Q. */
00101 #define IMPLICATION(P,Q) (!(P) || (Q))
00102 #define EQUIVALENCE(P,Q) ((P) == (Q))
00103 
00104 /* suppress compiler warnings about unused parameters */
00105 #if defined UNUSED
00106   #undef UNUSED
00107 #endif
00108 #define UNUSED(param) (void)param
00109 
00116 #define CONVERT_DOUBLE_TO_FLOAT(val) \
00117   ( (val) >= SMALLFLOAT \
00118     ? ( (val) < LARGEFLOAT \
00119         ? (float)(val) \
00120         : (float)LARGEFLOAT \
00121       ) \
00122     : ( (val) <= -SMALLFLOAT  \
00123         ? ( (val) > -LARGEFLOAT \
00124             ? (float)(val) \
00125             : (float)-LARGEFLOAT \
00126           ) \
00127         : (float)0.0 \
00128       ) \
00129   )
00130 
00131 
00138 #define CLAMP_DOUBLE(val) \
00139   ( (val) >= SMALLDOUBLE \
00140     ? ( (val) < LARGEDOUBLE \
00141         ? (double)(val) \
00142         : (double)LARGEDOUBLE \
00143       ) \
00144     : ( (val) <= -SMALLDOUBLE  \
00145         ? ( (val) > -LARGEDOUBLE \
00146             ? (double)(val) \
00147             : (double)-LARGEDOUBLE \
00148           ) \
00149         : (double)0.0 \
00150       ) \
00151   )
00152 
00153 
00160 #define CONVERT_DOUBLE_TO_INT32(val) \
00161   ( (val) >= 1.0 \
00162     ? ( (val) < MAXINT32 \
00163         ? (Int32_t)(val) \
00164         : (Int32_t)MAXINT32 \
00165       ) \
00166     : ( (val) <= -1.0  \
00167         ? ( (val) > (Int32_t)-MAXINT32 \
00168             ? (Int32_t)(val) \
00169             : (Int32_t)-MAXINT32 \
00170           ) \
00171         : (Int32_t)0.0 \
00172       ) \
00173   )
00174 
00175 
00182 #define CONVERT_DOUBLE_TO_INT16(val) \
00183   ( (val) >= 1.0 \
00184     ? ( (val) < MAXINT16 \
00185         ? (Int16_t)(val) \
00186         : (Int16_t)MAXINT16 \
00187       ) \
00188     : ( (val) <= -1.0  \
00189         ? ( (val) > (Int16_t)-MAXINT16 \
00190             ? (Int16_t)(val) \
00191             : (Int16_t)-MAXINT16 \
00192           ) \
00193         : (Int16_t)0.0 \
00194       ) \
00195   )
00196 
00206 #define COPY_2_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
00207         do { \
00208           /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
00209           /* most likely single byte pointers into unaligned blocks of data */ \
00210           ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \
00211           ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \
00212         } while (FALSE)
00213 
00223 #define COPY_AND_REVERSE_2_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
00224         do { \
00225           /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
00226           /* most likely single byte pointers into unaligned blocks of data */ \
00227           ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[1]; \
00228           ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[0]; \
00229         } while (FALSE)
00230 
00240 #define COPY_4_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
00241         do { \
00242           /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
00243           /* most likely single byte pointers into unaligned blocks of data */ \
00244           ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \
00245           ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \
00246           ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[2]; \
00247           ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[3]; \
00248         } while (FALSE)
00249 
00259 #define COPY_AND_REVERSE_4_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
00260         do { \
00261           /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
00262           /* most likely single byte pointers into unaligned blocks of data */ \
00263           ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[3]; \
00264           ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[2]; \
00265           ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[1]; \
00266           ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[0]; \
00267         } while (FALSE)
00268 
00278 #define COPY_8_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
00279         do { \
00280           /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
00281           /* most likely single byte pointers into unaligned blocks of data */ \
00282           ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \
00283           ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \
00284           ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[2]; \
00285           ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[3]; \
00286           ((Byte_t *)(DstBuffer))[4] = ((Byte_t *)(SrcBuffer))[4]; \
00287           ((Byte_t *)(DstBuffer))[5] = ((Byte_t *)(SrcBuffer))[5]; \
00288           ((Byte_t *)(DstBuffer))[6] = ((Byte_t *)(SrcBuffer))[6]; \
00289           ((Byte_t *)(DstBuffer))[7] = ((Byte_t *)(SrcBuffer))[7]; \
00290         } while (FALSE)
00291 
00301 #define COPY_AND_REVERSE_8_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
00302         do { \
00303           /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
00304           /* most likely single byte pointers into unaligned blocks of data */ \
00305           ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[7]; \
00306           ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[6]; \
00307           ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[5]; \
00308           ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[4]; \
00309           ((Byte_t *)(DstBuffer))[4] = ((Byte_t *)(SrcBuffer))[3]; \
00310           ((Byte_t *)(DstBuffer))[5] = ((Byte_t *)(SrcBuffer))[2]; \
00311           ((Byte_t *)(DstBuffer))[6] = ((Byte_t *)(SrcBuffer))[1]; \
00312           ((Byte_t *)(DstBuffer))[7] = ((Byte_t *)(SrcBuffer))[0]; \
00313         } while (FALSE)
00314 
00321 #define REVERSE_2_BYTES_1_AT_A_TIME(Buffer) \
00322           do { \
00323             Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \
00324             CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==2); \
00325             ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[1]; \
00326             ((Byte_t *)(Buffer))[1] = Byte0; \
00327           } while (FALSE)
00328 
00329 #define REVERSE_2_BYTES_2_AT_A_TIME(Buffer) \
00330           do { \
00331             UInt16_t data_bits = ((UInt16_t *)(Buffer))[0]; \
00332             CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==2); \
00333             ((UInt16_t *)(Buffer))[0] = (((data_bits)<<8) | \
00334                                          ((data_bits&0xff))); \
00335           } while (FALSE)
00336 
00337 /* REVERSE_2_BYTES_2_AT_A_TIME may actually be slower, needs testing. */
00338 #define REVERSE_2_BYTES REVERSE_2_BYTES_1_AT_A_TIME
00339 
00365 #define REVERSE_4_BYTES_1_AT_A_TIME(Buffer) \
00366           do { \
00367             Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \
00368             Byte_t Byte1 = ((Byte_t *)(Buffer))[1]; \
00369             CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==4); \
00370             ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[3]; \
00371             ((Byte_t *)(Buffer))[1] = ((Byte_t *)(Buffer))[2]; \
00372             ((Byte_t *)(Buffer))[2] = Byte1; \
00373             ((Byte_t *)(Buffer))[3] = Byte0; \
00374           } while (FALSE)
00375 
00376 #define REVERSE_4_BYTES_4_AT_A_TIME(Buffer) \
00377           do { \
00378             UInt32_t data_bits = *((UInt32_t *)(Buffer)); \
00379             CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==4); \
00380             *((UInt32_t *)(Buffer)) = (((data_bits)<<24)            | \
00381                                        ((data_bits&0x0000ff00)<<8)  | \
00382                                        ((data_bits&0x00ff0000)>>8)  | \
00383                                        ((data_bits)>>24)); \
00384           } while (FALSE)
00385 
00386 #if defined MSWIN
00387   /*
00388    * The DevStuido compiler seems to be the only one that can truly handle this
00389    * when optimization is turned on.
00390    */
00391   #define REVERSE_4_BYTES REVERSE_4_BYTES_4_AT_A_TIME
00392 #else
00393   #define REVERSE_4_BYTES REVERSE_4_BYTES_1_AT_A_TIME
00394 #endif
00395 
00402 #define REVERSE_8_BYTES_1_AT_A_TIME(Buffer) \
00403         do { \
00404             Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \
00405             Byte_t Byte1 = ((Byte_t *)(Buffer))[1]; \
00406             Byte_t Byte2 = ((Byte_t *)(Buffer))[2]; \
00407             Byte_t Byte3 = ((Byte_t *)(Buffer))[3]; \
00408             CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
00409             ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[7]; \
00410             ((Byte_t *)(Buffer))[1] = ((Byte_t *)(Buffer))[6]; \
00411             ((Byte_t *)(Buffer))[2] = ((Byte_t *)(Buffer))[5]; \
00412             ((Byte_t *)(Buffer))[3] = ((Byte_t *)(Buffer))[4]; \
00413             ((Byte_t *)(Buffer))[4] = Byte3; \
00414             ((Byte_t *)(Buffer))[5] = Byte2; \
00415             ((Byte_t *)(Buffer))[6] = Byte1; \
00416             ((Byte_t *)(Buffer))[7] = Byte0; \
00417         } while (FALSE)
00418 
00419 #define REVERSE_8_BYTES_2_AT_A_TIME(Buffer) \
00420         do { \
00421           UInt16_t data_bits_0 = ((UInt16_t *)(Buffer))[0]; \
00422           UInt16_t data_bits_1 = ((UInt16_t *)(Buffer))[1]; \
00423           UInt16_t data_bits_2 = ((UInt16_t *)(Buffer))[2]; \
00424           UInt16_t data_bits_3 = ((UInt16_t *)(Buffer))[3]; \
00425           CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
00426           ((UInt16_t *)(Buffer))[0] = (((data_bits_3)<<8) | \
00427                                        ((data_bits_3&0xff))); \
00428           ((UInt16_t *)(Buffer))[1] = (((data_bits_2)<<8) | \
00429                                        ((data_bits_2&0xff))); \
00430           ((UInt16_t *)(Buffer))[2] = (((data_bits_1)<<8) | \
00431                                        ((data_bits_1&0xff))); \
00432           ((UInt16_t *)(Buffer))[3] = (((data_bits_0)<<8) | \
00433                                        ((data_bits_0&0xff))); \
00434         } while (FALSE)
00435 
00436 #define REVERSE_8_BYTES_4_AT_A_TIME(Buffer) \
00437         do { \
00438           UInt32_t data_bits_0 = ((UInt32_t *)(Buffer))[0]; \
00439           UInt32_t data_bits_1 = ((UInt32_t *)(Buffer))[1]; \
00440           CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
00441           ((UInt32_t *)(Buffer))[0] = (((data_bits_1)<<24)           | \
00442                                        ((data_bits_1&0x0000ff00)<<8) | \
00443                                        ((data_bits_1&0x00ff0000)>>8) | \
00444                                        ((data_bits_1)>>24)); \
00445           ((UInt32_t *)(Buffer))[1] = (((data_bits_0)<<24)           | \
00446                                        ((data_bits_0&0x0000ff00)<<8) | \
00447                                        ((data_bits_0&0x00ff0000)>>8) | \
00448                                        ((data_bits_0)>>24)); \
00449         } while (FALSE)
00450 
00451 #define REVERSE_8_BYTES_8_AT_A_TIME(Buffer) \
00452         do { \
00453           UInt64_t data_bits = *((UInt64_t *)(Buffer)); \
00454           CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
00455           *((UInt64_t *)(Buffer)) = (((data_bits)<<56) | \
00456                                      ((data_bits&0x000000000000ff00)<<40) | \
00457                                      ((data_bits&0x0000000000ff0000)<<24) | \
00458                                      ((data_bits&0x00000000ff000000)<<8)  | \
00459                                      ((data_bits&0x000000ff00000000)>>8)  | \
00460                                      ((data_bits&0x0000ff0000000000)>>24) | \
00461                                      ((data_bits&0x00ff000000000000)>>40) | \
00462                                      ((data_bits)>>56)); \
00463         } while (FALSE)
00464 
00465 
00466 #if defined MSWIN
00467   /*
00468    * The DevStuido compiler seems to be the only one that can truly handle this
00469    * when optimization is turned on.
00470    */
00471   #define REVERSE_8_BYTES REVERSE_8_BYTES_4_AT_A_TIME
00472 #else
00473   #define REVERSE_8_BYTES REVERSE_8_BYTES_1_AT_A_TIME
00474 #endif
00475 
00476 
00477 /****************************************************************
00478  *                                                              *
00479  *             ADD-ON MSWIN IMPORT/EXPORT DEFINITIONS            *
00480  *                                                              *
00481  ****************************************************************/
00482 #if defined MSWIN
00483 #else
00484 #  define STDCALL
00485 #endif /* MSWIN */
00486 
00487 #if defined (__cplusplus)
00488 # define EXTERNC extern "C"
00489 #else
00490 # define EXTERNC
00491 #endif /* __cplusplus */
00492 
00493 #if defined MSWIN
00494 #if defined _OOSTYLE_DLLAPI || defined AMTEC_INTERNAL_MAKELIBTEC || defined TECPLOTKERNEL
00495 #    define OOSTYLE_DLLAPI _declspec ( dllexport )
00496 #  else
00497 #    define OOSTYLE_DLLAPI _declspec ( dllimport )
00498 #  endif
00499 #else
00500 #  define OOSTYLE_DLLAPI
00501 #endif
00502 
00503 #define EXTERNC OOSTYLE_DLLAPI
00504 
00505 
00506 /*
00507  *
00508  * Usage:
00509  * EXPORTFROMADDON void InitTecAddOn(void) { ... }
00510  *
00511  */
00512 #if defined MSWIN
00513 # define EXPORTFROMADDON EXTERNC _declspec ( dllexport )
00514 #else
00515 # define EXPORTFROMADDON EXTERNC
00516 #endif /* MSWIN */
00517 
00518 #define EXPORTFROMDLL EXPORTFROMADDON
00519 
00520 #define InitTecAddOn           InitTecAddOn113
00521 #define TEC_INIT_FUNCTION_NAME "InitTecAddOn113"
00522 
00523 /* CORE SOURCE CODE REMOVED */
00524 
00525 
00526 /* CORE SOURCE CODE REMOVED */
00527 
00528 
00529 /****************************************************************
00530  *                                                              *
00531  *                       HARD CONSTANTS                         *
00532  *                                                              *
00533  ****************************************************************/
00534 #define MAXINDEX                 (LgIndex_t)2147483646
00535 #define MAXZONEMAP               MAXINDEX
00536 #define LARGEDOUBLE              1.0e+150
00537 #define SMALLDOUBLE              1.0e-150
00538 #define LARGESTEXPONENT          150
00539 #define SMALLESTEXPONENT         -150
00540 
00541 #define SMALLESTDOUBLE           SMALLDOUBLE
00542 
00543 #define LARGESTDOUBLEEXPONENT     308
00544 #define SMALLESTDOUBLEEXPONENT    -307
00545 #define LARGESTDOUBLE             1.0e+308
00546 #define LARGEFLOAT                3.40282347E+38
00547 #define SMALLFLOAT                1.17549435E-38
00548 #define SMALLSTDOUBLE             1.0e-307
00549 
00550 #define LARGELONG                MAXINDEX
00551 #define LARGESHORT               32766
00552 #define MAXINT32                 LARGELONG
00553 #define MAXINT16                 LARGESHORT
00554 #define ETX                      3
00555 #define LN2                      0.69314718055994530942
00556 #define LN10                     2.30258509299404568402
00557 #define PIOVER2                  1.57079632679489661923
00558 #define TWOPI                    6.28318530717958647692
00559 #if defined PI
00560 #undef PI
00561 #endif
00562 #define PI                       3.14159265358979323846
00563 #define ANGLEEPSILON             1.0e-10
00564 #define LARGESTANGLE             (4*PI+ANGLEEPSILON)
00565 #define DEGPERRADIANS            57.295779513082323
00566 #define CMPERINCH                2.54
00567 #define POINTSPERINCH            72.0
00568 #define FONTMOVEMARK             192
00569 #define FONTDECISIONMARK         128
00570 #define FONTLINEMARK             64
00571 #define BAD_SET_VALUE            ((SetIndex_t)-1)
00572 #define MENU_POSITION_FIRST      (0)
00573 #define MENU_POSITION_LAST       (-1)
00574 #define INVALID_UNIQUE_ID        0
00575 
00576 #define BADSETVALUE              BAD_SET_VALUE
00577 #define SOLID_TRANSLUCENCY       0
00578 #define BAD_DISTANCE             (-1.0)
00579 /* MIN_CIRCUMFERENTIAL_INDEX is the min J dimension for circular zones */
00580 #define MIN_CIRCUMFERENTIAL_INDEX  4
00581 
00582 #define VALID_STRAND_ID(StrandID) (0 <= (StrandID) && (StrandID) < MAXZONEMAP)
00583 #define STRAND_ID_STATIC          (-1)
00584 #define STRAND_ID_PENDING         (-2)
00585 
00586 /* CORE SOURCE CODE REMOVED */
00587 
00588 
00589 #define TecplotBinaryFileVersion    112   /* NOTE: MUST also change this define symbol in preplot.cpp */
00590 /* Also change version number in the data file format in the comments in preplot.cpp */
00591 /* And the version number of Preplot itself in preplot.cpp */
00592 #define TecplotInterfaceVersion     113
00593 #define TecplotInterfaceVersionStr  "113" /* stay in lockstep with TecplotInterfaceVersion */
00594 #define TecplotLicenseVersion       112   /* may vary from TecplotInterfaceVersion */
00595 #define TecplotLicenseVersionStr   "11.2"  /* stay in lockstep with TecplotLicenseVersion */
00596 /* Also change the macro version number in COMMAND.MASTER.h */
00597 
00598 #define    MaxNumZonesOrVars         MAXZONEMAP
00599 #define    MaxXAxes                  5
00600 #define    MaxYAxes                  5
00601 #define    MaxGeoSegments            50
00602 #define    MaxPtsCircleOrEllipse     720
00603 #define    MaxFrames                 2048
00604 #define    MaxCustomLabelSets        10
00605 #define    MaxFontMoves              20000
00606 #define    MaxColorMapOverrides      16
00607 #define    MaxValueBlankConstraints  8
00608 #define    MaxContourGroups          8
00609 #define    MaxIsoSurfaceGroups       8
00610 #define    MaxSliceGroups            8
00611 
00612 #define    MaxColorMapGroups         8
00613 #define    DefaultNumContLevels      15
00614 
00615 
00616 #define    DefaultColorMapGroup      ((SmInteger_t)0)
00617 #define    BADGROUPNUMBER            ((SmInteger_t)-1)
00618 #define    UNUSEDGROUPNUMBER         ((SmInteger_t)0)
00619 
00620 #define VALID_ISOSURFACE_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxIsoSurfaceGroups)))
00621 #define VALID_SLICE_GROUP(Group)      (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxSliceGroups)))
00622 #define VALID_COLORMAP_GROUP(Group)   (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxColorMapGroups)))
00623 
00624 
00625 
00626 /*
00627  * If any of these values changes it's corresponding value in preplot.c must
00628  * change to match it so that files created by preplot and Tecplot are
00629  * consistent.
00630  */
00631 #define    MaxChrsDatasetTitle       256
00632 #define    MaxChrsZnTitle            128
00633 #define    MaxChrsVarName            128
00634 #define    MaxChrsZnOrVarName        128
00635 /* currently limited to MaxLineIndex in preplot.c */
00636 #define    MaxChrsAuxValueString     32000
00637 
00638 #define    MaxNumViews               16
00639 #define    MaxBasicSizes             5
00640 #define    MaxColorMapControlPoints  50
00641 #define    MaxRawColorMapEntries     800
00642 #define    MaxDataSetReaders         100
00643 #define    MaxExtendedCurveFits      100
00644 #define    MaxColorMapCycles         20
00645 
00646 
00647 /* Dimension Limits */
00648 
00649 #define    MinPaperDimInWorkArea     0.5
00650 #define    MinFrameWidth             0.25
00651 #define    MinFrameHeight            0.25
00652 #define    MinAxisLength             0.1
00653 
00654 
00655 #define    BadEnumValue              255
00656 
00657 /* CORE SOURCE CODE REMOVED */
00658 
00659 /*
00660  * Floating point values are written to layouts with a certain precision.
00661  * A high precision is necessary in some cases (like streamtrace starting locations)
00662  * This used to be set to 12 which was not high enough.   It is now set to 16 which
00663  * appears to be sufficient.   This also seems to jive with the number of digits of
00664  * precision that are found in "ieee double precision" values which is 53 bits or 
00665  * equivalent to approximately 16 digits. -bdp
00666  *
00667  */
00668 #define STYLE_FLOAT_PRECISION 16
00669 
00670 
00671 /*
00672  * Auxiliary data common names.
00673  *
00674  *      Define Name                                 Data Name                               Data Type    Data Location
00675  *      ------------------------------------------  ------------------------------------    ---------    -------------
00676  */
00677 #define AuxData_Common_Incompressible               "Common.Incompressible"              /* Boolean_t    Dataset */
00678 #define AuxData_Common_Density                      "Common.Density"                     /* double       Dataset */
00679 #define AuxData_Common_SpecificHeat                 "Common.SpecificHeat"                /* double       Dataset */
00680 #define AuxData_Common_SpecificHeatVar              "Common.SpecificHeatVar"             /* int          Dataset */
00681 #define AuxData_Common_GasConstant                  "Common.GasConstant"                 /* double       Dataset */
00682 #define AuxData_Common_GasConstantVar               "Common.GasConstantVar"              /* int          Dataset */
00683 #define AuxData_Common_Gamma                        "Common.Gamma"                       /* double       Dataset */
00684 #define AuxData_Common_GammaVar                     "Common.GammaVar"                    /* int          Dataset */
00685 #define AuxData_Common_Viscosity                    "Common.Viscosity"                   /* double       Dataset */
00686 #define AuxData_Common_ViscosityVar                 "Common.ViscosityVar"                /* int          Dataset */
00687 #define AuxData_Common_Conductivity                 "Common.Conductivity"                /* double       Dataset */
00688 #define AuxData_Common_ConductivityVar              "Common.ConductivityVar"             /* int          Dataset */
00689 #define AuxData_Common_AngleOfAttack                "Common.AngleOfAttack"               /* double       Dataset */
00690 #define AuxData_Common_SpeedOfSound                 "Common.SpeedOfSound"                /* double       Dataset */
00691 #define AuxData_Common_ReferenceU                   "Common.ReferenceU"                  /* double       Dataset */
00692 #define AuxData_Common_ReferenceV                   "Common.ReferenceV"                  /* double       Dataset */
00693 #define AuxData_Common_XVar                         "Common.XVar"                        /* int          Dataset */
00694 #define AuxData_Common_YVar                         "Common.YVar"                        /* int          Dataset */
00695 #define AuxData_Common_ZVar                         "Common.ZVar"                        /* int          Dataset */
00696 #define AuxData_Common_CVar                         "Common.CVar"                        /* int          Dataset */
00697 #define AuxData_Common_UVar                         "Common.UVar"                        /* int          Dataset */
00698 #define AuxData_Common_VVar                         "Common.VVar"                        /* int          Dataset */
00699 #define AuxData_Common_WVar                         "Common.WVar"                        /* int          Dataset */
00700 #define AuxData_Common_VectorVarsAreVelocity        "Common.VectorVarsAreVelocity"       /* Boolean_t    Dataset */
00701 #define AuxData_Common_PressureVar                  "Common.PressureVar"                 /* int          Dataset */
00702 #define AuxData_Common_TemperatureVar               "Common.TemperatureVar"              /* int          Dataset */
00703 #define AuxData_Common_DensityVar                   "Common.DensityVar"                  /* int          Dataset */
00704 #define AuxData_Common_StagnationEnergyVar          "Common.StagnationEnergyVar"         /* int          Dataset */
00705 #define AuxData_Common_MachNumberVar                "Common.MachNumberVar"               /* int          Dataset */
00706 #define AuxData_Common_ReferenceMachNumber          "Common.ReferenceMachNumber"         /* double       Dataset */
00707 #define AuxData_Common_ReferenceW                   "Common.ReferenceW"                  /* double       Dataset */
00708 #define AuxData_Common_PrandtlNumber                "Common.PrandtlNumber"               /* double       DataSet */
00709 #define AuxData_Common_Axisymmetric                 "Common.Axisymmetric"                /* Boolean_t    Dataset */
00710 #define AuxData_Common_AxisOfSymmetryVarAssignment  "Common.AxisOfSymmetryVarAssignment" /* int          Dataset */
00711 #define AuxData_Common_AxisValue                    "Common.AxisValue"                   /* double       Dataset */
00712 #define AuxData_Common_SteadyState                  "Common.SteadyState"                 /* Boolean_t    Dataset */
00713 #define AuxData_Common_TurbulentKineticEnergyVar    "Common.TurbulentKineticEnergyVar"   /* int          Dataset */
00714 #define AuxData_Common_TurbulentDissipationRateVar  "Common.TurbulentDissipationRateVar" /* int          Dataset */
00715 #define AuxData_Common_TurbulentViscosityVar        "Common.TurbulentViscosityVar"       /* int          Dataset */
00716 #define AuxData_Common_TurbulentFrequencyVar        "Common.TurbulentFrequencyVar"       /* int          Dataset */
00717 #define AuxData_Common_Gravity                      "Common.Gravity"                     /* double       Dataset */
00718 #define AuxData_Common_IsBoundaryZone               "Common.IsBoundaryZone"              /* Boolean_t    Zone */
00719 #define AuxData_Common_BoundaryCondition            "Common.BoundaryCondition"           /* BCondition   Zone */
00720 #define AuxData_Common_Time                         "Common.Time"                        /* double       Zone */
00721 #define AuxData_Common_Mean                         "Common.Mean"                        /* double       Variable */
00722 #define AuxData_Common_Median                       "Common.Median"                      /* double       Variable */
00723 #define AuxData_Common_Variance                     "Common.Variance"                    /* double       Variable */
00724 #define AuxData_Common_StdDev                       "Common.StdDev"                      /* double       Variable */
00725 #define AuxData_Common_AvgDev                       "Common.AvgDev"                      /* double       Variable */
00726 #define AuxData_Common_GeoMean                      "Common.GeoMean"                     /* double       Variable */
00727 #define AuxData_Common_ChiSqre                      "Common.ChiSqre"                     /* double       Variable */
00728 
00729 
00730 
00731 
00732 
00733 
00734 
00735 /* CORE SOURCE CODE REMOVED */
00736 
00737 /* Tecplot Add-on Custom Products */
00738 
00739 /* CORE SOURCE CODE REMOVED */
00740 
00741 #define    Black_C           ((ColorIndex_t)0)
00742 #define    Red_C             ((ColorIndex_t)1)
00743 #define    Green_C           ((ColorIndex_t)2)
00744 #define    Blue_C            ((ColorIndex_t)3)
00745 #define    Cyan_C            ((ColorIndex_t)4)
00746 #define    Yellow_C          ((ColorIndex_t)5)
00747 #define    Purple_C          ((ColorIndex_t)6)
00748 #define    White_C           ((ColorIndex_t)7)
00749 
00750 #define    Custom1_C         ((ColorIndex_t)8)
00751 #define    Custom2_C         ((ColorIndex_t)9)
00752 #define    Custom3_C         ((ColorIndex_t)10)
00753 #define    Custom4_C         ((ColorIndex_t)11)
00754 #define    Custom5_C         ((ColorIndex_t)12)
00755 #define    Custom6_C         ((ColorIndex_t)13)
00756 #define    Custom7_C         ((ColorIndex_t)14)
00757 #define    Custom8_C         ((ColorIndex_t)15)
00758 #define    Custom9_C         ((ColorIndex_t)16)
00759 
00760 #define    Custom10_C         ((ColorIndex_t)17)
00761 #define    Custom11_C         ((ColorIndex_t)18)
00762 #define    Custom12_C         ((ColorIndex_t)19)
00763 #define    Custom13_C         ((ColorIndex_t)20)
00764 #define    Custom14_C         ((ColorIndex_t)21)
00765 #define    Custom15_C         ((ColorIndex_t)22)
00766 #define    Custom16_C         ((ColorIndex_t)23)
00767 #define    Custom17_C         ((ColorIndex_t)24)
00768 #define    Custom18_C         ((ColorIndex_t)25)
00769 #define    Custom19_C         ((ColorIndex_t)26)
00770 
00771 #define    Custom20_C         ((ColorIndex_t)27)
00772 #define    Custom21_C         ((ColorIndex_t)28)
00773 #define    Custom22_C         ((ColorIndex_t)29)
00774 #define    Custom23_C         ((ColorIndex_t)30)
00775 #define    Custom24_C         ((ColorIndex_t)31)
00776 #define    Custom25_C         ((ColorIndex_t)32)
00777 #define    Custom26_C         ((ColorIndex_t)33)
00778 #define    Custom27_C         ((ColorIndex_t)34)
00779 #define    Custom28_C         ((ColorIndex_t)35)
00780 #define    Custom29_C         ((ColorIndex_t)36)
00781 
00782 #define    Custom30_C         ((ColorIndex_t)37)
00783 #define    Custom31_C         ((ColorIndex_t)38)
00784 #define    Custom32_C         ((ColorIndex_t)39)
00785 #define    Custom33_C         ((ColorIndex_t)40)
00786 #define    Custom34_C         ((ColorIndex_t)41)
00787 #define    Custom35_C         ((ColorIndex_t)42)
00788 #define    Custom36_C         ((ColorIndex_t)43)
00789 #define    Custom37_C         ((ColorIndex_t)44)
00790 #define    Custom38_C         ((ColorIndex_t)45)
00791 #define    Custom39_C         ((ColorIndex_t)46)
00792 
00793 #define    Custom40_C         ((ColorIndex_t)47)
00794 #define    Custom41_C         ((ColorIndex_t)48)
00795 #define    Custom42_C         ((ColorIndex_t)49)
00796 #define    Custom43_C         ((ColorIndex_t)50)
00797 #define    Custom44_C         ((ColorIndex_t)51)
00798 #define    Custom45_C         ((ColorIndex_t)52)
00799 #define    Custom46_C         ((ColorIndex_t)53)
00800 #define    Custom47_C         ((ColorIndex_t)54)
00801 #define    Custom48_C         ((ColorIndex_t)55)
00802 #define    Custom49_C         ((ColorIndex_t)56)
00803 
00804 #define    Custom50_C         ((ColorIndex_t)57)
00805 #define    Custom51_C         ((ColorIndex_t)58)
00806 #define    Custom52_C         ((ColorIndex_t)59)
00807 #define    Custom53_C         ((ColorIndex_t)60)
00808 #define    Custom54_C         ((ColorIndex_t)61)
00809 #define    Custom55_C         ((ColorIndex_t)62)
00810 #define    Custom56_C         ((ColorIndex_t)63)
00811 
00812 #define    MultiColor_C      ((ColorIndex_t)(-1))
00813 #define    NoColor_C         ((ColorIndex_t)(-2))
00814 #define    MultiColor2_C     ((ColorIndex_t)(-3))
00815 #define    MultiColor3_C     ((ColorIndex_t)(-4))
00816 #define    MultiColor4_C     ((ColorIndex_t)(-5))
00817 #define    RGBColor_C        ((ColorIndex_t)(-6))
00818 #define    MultiColor5_C     ((ColorIndex_t)(-7))
00819 #define    MultiColor6_C     ((ColorIndex_t)(-8))
00820 #define    MultiColor7_C     ((ColorIndex_t)(-9))
00821 #define    MultiColor8_C     ((ColorIndex_t)(-10))
00822 #define    InvalidColor_C    ((ColorIndex_t)(-255))
00823 
00824 #define    FirstCustomColor  Custom1_C
00825 #define    LastCustomColor   Custom56_C
00826 #define    NumCustomColors   (LastCustomColor-FirstCustomColor+1)
00827 
00828 #define    FirstBasicColor   Black_C
00829 #define    LastBasicColor    LastCustomColor
00830 #define    NumBasicColors    (LastBasicColor-FirstBasicColor+1)
00831 
00832 /* CORE SOURCE CODE REMOVED */
00833 
00834 /* CORE SOURCE CODE REMOVED */
00835 
00836 /****************************************************************
00837  *                                                              *
00838  *                          SIMPLE TYPEDEFS                     *
00839  *                                                              *
00840  ****************************************************************/
00841 
00842 
00843 
00844 #if defined DECALPHA   || \
00845     defined LINUXALPHA || \
00846     defined LINUXI64   || \
00847     defined LINUX64    || \
00848     defined COMPAQALPHA
00849 #define LONGIS64
00850 #endif
00851 
00852 
00853 /* How to define UInt64_t/Int64_t is platform specific, but they are always 8-bytes */
00854 #if defined MSWIN
00855   typedef    unsigned __int64     UInt64_t;
00856   typedef    __int64              Int64_t;
00857 #else
00858   #if defined CRAY
00859     typedef    unsigned int       UInt64_t;
00860     typedef    int                Int64_t;
00861   #else
00862     #if defined LONGIS64
00863       typedef unsigned long      UInt64_t;
00864       typedef long               Int64_t;
00865     #else
00866       typedef unsigned long long UInt64_t;
00867       typedef long long          Int64_t;
00868     #endif
00869   #endif
00870 #endif
00871 
00872 #if defined LONGIS64
00873   typedef    unsigned int    UInt32_t;
00874   typedef    int             Int32_t;
00875   typedef    int             LgInteger_t;
00876 #else
00877   typedef    unsigned int    UInt32_t;
00878   typedef    int             Int32_t;
00879   typedef    int             LgInteger_t;
00880 #endif
00881 
00882 typedef    short           Int16_t;
00883 typedef    unsigned short  UInt16_t;
00884 
00885 typedef    int             LgIndex_t;
00886 typedef    LgIndex_t       NodeMap_t;
00887 typedef    LgIndex_t       ScreenDim_t;
00888 
00894 #if defined CRAY
00895   typedef char *ArbParam_t;
00896 #elif defined LONGIS64
00897   typedef long ArbParam_t;
00898 #elif defined MSWIN && (defined _M_IA64 || defined _M_AMD64)
00899    typedef INT_PTR ArbParam_t;
00900 #else
00901    typedef LgIndex_t  ArbParam_t;
00902 #endif
00903 
00904 typedef    ArbParam_t      UniqueID_t;
00905 
00906 /* 64 bit offset used to hold file offset and size values. */
00907 typedef Int64_t FileOffset_t;
00908 
00912 typedef UInt64_t MemMapOffset_t;
00913 
00914 /*
00915  *  SmInteger must be at least a short....
00916  */
00917 
00918 typedef    unsigned char    Byte_t;
00919 typedef    short            SmInteger_t;
00920 typedef    SmInteger_t      ColorIndex_t;
00921 typedef    Int32_t          EntIndex_t;
00922 
00923 typedef    char             Boolean_t;
00924 typedef    char            *ZoneName_t;
00925 typedef    char            *VarName_t;
00926 typedef    char            *LString_t;
00927 
00928 typedef    LgIndex_t        Strand_t;
00929 typedef    LgIndex_t        HeapLength_t;
00930 typedef    LgIndex_t        SegPtsArray_t[MaxGeoSegments];
00931 typedef    double           BasicSize_t[MaxBasicSizes];
00932 typedef    double          *VarList_t;
00933 
00934 typedef    long             SetIndex_t;
00935 
00936 typedef    unsigned long    SetData_t;
00937 typedef    SetData_t       *SetData_pt;
00938 
00939 /* CORE SOURCE CODE REMOVED */
00940 
00941 typedef    char             SymbolChar_t[3];
00942 
00947 typedef LgIndex_t FaceNodeOffset_t;
00948 
00953 typedef LgIndex_t ElemFaceOffset_t;
00954 
00959 typedef LgIndex_t FaceBndryItemOffset_t;
00960 
00961 
00962 
00963 
00964 /****************************************************************
00965  *                                                              *
00966  *                     ENUMERATED TYPEDEFS                      *
00967  *                                                              *
00968  ****************************************************************/
00969 typedef enum
00970 {
00971   PlacementPlaneOrientation_X,
00972   PlacementPlaneOrientation_Y,
00973   PlacementPlaneOrientation_Z,
00974   END_PlacementPlaneOrientation_e,
00975   PlacementPlaneOrientation_Invalid = BadEnumValue
00976 } PlacementPlaneOrientation_e;
00977 
00978 typedef enum
00979 {
00980   StringMode_ASCII,
00981   StringMode_UTF8,
00982   StringMode_Blend,
00983   END_StringMode_e,
00984   StringMode_Invalid = BadEnumValue
00985 
00986 } StringMode_e;
00987 
00988 typedef enum
00989 {
00990    SidebarSizing_MaxOfAll,
00991    SidebarSizing_Dynamic,
00992    END_SidebarSizing_e,
00993    SidebarSizing_Invalid = BadEnumValue
00994 
00995 } SidebarSizing_e;
00996 
00997 typedef enum
00998 {
00999    SidebarLocation_Left,
01000    SidebarLocation_Right,  /* Not allowed at this time */
01001    SidebarLocation_Top,    /* Not allowed at this time */
01002    SidebarLocation_Bottom, /* Not allowed at this time */
01003    END_SidebarLocation_e,
01004    SidebarLocation_Invalid = BadEnumValue
01005 
01006 } SidebarLocation_e;
01007 
01008 typedef enum
01009   {
01010     MenuItem_Option,
01011     MenuItem_Toggle,
01012     MenuItem_Separator,
01013     MenuItem_SubMenu,
01014     END_MenuItem_e,
01015     MenuItem_Invalid = BadEnumValue
01016   } MenuItem_e;
01017 
01018 typedef enum
01019   {
01020     StandardMenu_File,
01021