Forward compatibility: flex
[foam-extend-3.2.git] / applications / utilities / postProcessing / dataConversion / foamToTecplot360 / tecio / tecsrc / GLOBAL.h
blob6c467de123140a5ffe8a2d9cb577a313c0527f4e
1 /*
2 * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM
4 * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide.
6 * Tecplot hereby grants OpenCFD limited authority to distribute without
7 * alteration the source code to the Tecplot Input/Output library, known
8 * as TecIO, as part of its distribution of OpenFOAM and the
9 * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby
10 * granted access to the TecIO source code, and may redistribute it for the
11 * purpose of maintaining the converter. However, no authority is granted
12 * to alter the TecIO source code in any form or manner.
14 * This limited grant of distribution does not supersede Tecplot, Inc.'s
15 * copyright in TecIO. Contact Tecplot, Inc. for further information.
17 * Tecplot, Inc.
18 * 3535 Factoria Blvd, Ste. 550
19 * Bellevue, WA 98006, USA
20 * Phone: +1 425 653 1200
21 * http://www.tecplot.com/
24 /* BEGINREMOVEFROMADDON */
25 /* NOTE: All code contained between comments that look like
26 * BEGINREMOVEFROMADDON
27 * ENDREMOVEFROMADDON
28 * are pulled out to create the GLOBAL.h file used in addons.
30 /* ENDREMOVEFROMADDON */
33 ******************************************************************
34 ******************************************************************
35 ******* ********
36 ****** (C) 1988-2008 Tecplot, Inc. *******
37 ******* ********
38 ******************************************************************
39 ******************************************************************
42 #ifndef _GLOBAL_H
43 #define _GLOBAL_H
45 #if defined EXTERN
46 #undef EXTERN
47 #endif
48 #if defined Q_MAINMODULE && defined TECPLOTKERNEL
49 /* CORE SOURCE CODE REMOVED */
50 #else
51 #define EXTERN extern
52 #endif
54 #define EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
55 /* BEGINREMOVEFROMADDON */
57 * The reason for wrapping this test with "begin and end remove from addon" key
58 * words is so that the ADK users doesn't have to see this mess.
60 #if !defined COREAPI && \
61 !defined TECUTILMMODULE && \
62 !defined TECUTILOMODULE && \
63 !defined TECUTILQMODULE && \
64 !defined TECUTILSMODULE
65 /* we don't want Tecplot internals using deprecated interfaces */
66 # undef EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
67 #endif
68 /* ENDREMOVEFROMADDON */
71 /****************************************************************
72 * *
73 * MACROS *
74 * *
75 ****************************************************************/
76 #if defined TRUE
77 #undef TRUE
78 #endif
79 #if defined FALSE
80 #undef FALSE
81 #endif
82 #if defined MIN
83 #undef MIN
84 #endif
85 #if defined MAX
86 #undef MAX
87 #endif
88 #if defined ROUND
89 #undef ROUND
90 #endif
91 #if defined ROUND2
92 #undef ROUND2
93 #endif
94 #if defined TRUNC
95 #undef TRUNC
96 #endif
98 #define TRUE ((Boolean_t)1)
99 #define FALSE ((Boolean_t)0)
101 /****************************************************************
103 * MACROS *
105 ****************************************************************/
106 #define ABS(X) ((X) >= 0 ? (X) : -(X) )
107 #define MAX(X,Y) ((X) > (Y) ? (X) : (Y) )
108 #define MIN(X,Y) ((X) < (Y) ? (X) : (Y) )
109 #define BESTSHOWCOLOR(X) ((X) == White_C ? Black_C : White_C)
110 #define ROUND_TO_BYTE(X) ((BYTE)((X)+0.499))
111 #define ROUNDS(X) ((short)((X)+0.499))
112 #define ROUNDL(X) ((LgIndex_t)((X)+0.499))
113 #define ROUND2(X) ((X) >= 0 ? ((int)((X)+0.499)) : ((int)((X)-0.499)))
114 #define TRUNC(X) ((short) (X))
115 #define RAD_TO_DEG(rad) (180.*(rad)/PI)
116 #define DEG_TO_RAD(deg) (PI*(deg)/180.)
118 # define CAPITAL(C) ( ('a'<=(C)&&(C)<='z') ? ((C)+('A'-'a')) : (C) ) /* okay for UNICODE */
120 #include "TASSERT.h"
122 #if defined TECPLOTKERNEL && defined MSWIN
123 /* CORE SOURCE CODE REMOVED */
124 #else
125 #define ISEMPTYSTRING(S) ( ((const char*)(S))[0] == '\0' )
126 #endif
128 #define ISWHITESPACE(C) ((C == ' ') || (C == '\t') || (C == '\n'))
129 #define ISSEPARATOR(C) ((C == ' ') || (C == '\t') || (C == ','))
130 /* clamp the input to the specified range */
131 #define CLAMP(value,low,high) ((value)<(low) ? (low) : (value) > (high) ? (high) : (value))
132 /* integer division rounds any fraction up (for example n=16,d=3 results in 6) */
133 #define INTEGER_DIVIDE_AND_ROUND_UP(n, d) (((int)(n)+(int)(d)-1)/(int)(d))
135 /* BEGINREMOVEFROMADDON */
137 * Calcualtes the cell's primary corner or cell centered index from the I, J,
138 * and K indices.
140 * Consider this IJ zone dimensioned 4 by 3:
141 * @verbatim
142 +-------+-------+-------+-------+
143 | | | | |
144 | <8> | <9> | <10> | <11> | <--- ghost cells
145 | | | | |
146 |8 |9 |10 |11 |
147 +-------+-------+-------+-------+
148 | | | | |
149 | <4> | <5> | <6> | <7> |
150 | | | | |
151 |4 |5 |6 |7 |
152 +-------+-------+-------+-------+
153 | | | | |
154 | <0> | <1> | <2> | <3> |
155 | | | | |
156 |0 |1 |2 |3 |
157 +-------+-------+-------+-------+
162 ghost cells
163 @endverbatim
165 #define IJKINDEX(CZData,I,J,K) ((I) + \
166 ((J)*(CZData)->NumIPts) + \
167 ((K)*(CZData)->NumIJPts))
170 * Calculates the I indice from the cell's primary corner or cell centered
171 * index. See IJKINDEX() for a picture.
173 #define IINDEX(CZData,N) ((N) % (CZData)->NumIPts)
176 * Calculates the J indice from the cell's primary corner or cell centered
177 * index. See IJKINDEX() for a picture.
179 #define JINDEX(CZData,N) (((N) % (CZData)->NumIJPts)/(CZData)->NumIPts)
182 * Calculates the K indice from the cell's primary corner or cell centered
183 * index. See IJKINDEX() for a picture.
185 #define KINDEX(CZData,N) ((N)/(CZData)->NumIJPts)
186 /* ENDREMOVEFROMADDON */
188 /* */
189 #define SWITCH(Type,A,B) do {Type T = (A); (A) = (B); (B) = T;} while (FALSE)
190 #define SWITCH_DOUBLES(A,B) SWITCH(double, (A), (B))
191 #define FPRINTFOK(x) (Boolean_t)((x) > 0)
192 #define GRAPHICSARE3D(F) ((F->PlotType == PlotType_Cartesian3D))
194 /* convenience macros for implication, P -> Q, and equivalence, P <-> Q. */
195 #define IMPLICATION(P,Q) (!(P) || (Q))
196 #define EQUIVALENCE(P,Q) ((P) == (Q))
198 /* suppress compiler warnings about unused parameters */
199 #if defined UNUSED
200 #undef UNUSED
201 #endif
202 #define UNUSED(param) (void)param
205 * Converts a double into a float value
207 * param val
208 * double value to be converted
210 #define CONVERT_DOUBLE_TO_FLOAT(val) \
211 ( (val) >= SMALLFLOAT \
212 ? ( (val) < LARGEFLOAT \
213 ? (float)(val) \
214 : (float)LARGEFLOAT \
216 : ( (val) <= -SMALLFLOAT \
217 ? ( (val) > -LARGEFLOAT \
218 ? (float)(val) \
219 : (float)-LARGEFLOAT \
221 : (float)0.0 \
227 * Clamps a double at the limits of Tecplot's precision
229 * param val
230 * double value to be clamped
232 #define CLAMP_DOUBLE(val) \
233 ( (val) >= SMALLDOUBLE \
234 ? ( (val) < LARGEDOUBLE \
235 ? (double)(val) \
236 : (double)LARGEDOUBLE \
238 : ( (val) <= -SMALLDOUBLE \
239 ? ( (val) > -LARGEDOUBLE \
240 ? (double)(val) \
241 : (double)-LARGEDOUBLE \
243 : (double)0.0 \
249 * Converts a double into a 4-byte (signed) integer value
251 * param val
252 * double value to be converted
254 #define CONVERT_DOUBLE_TO_INT32(val) \
255 ( (val) >= 1.0 \
256 ? ( (val) < MAXINT32 \
257 ? (Int32_t)(val) \
258 : (Int32_t)MAXINT32 \
260 : ( (val) <= -1.0 \
261 ? ( (val) > (Int32_t)-MAXINT32 \
262 ? (Int32_t)(val) \
263 : (Int32_t)-MAXINT32 \
265 : (Int32_t)0.0 \
271 * Converts a double into a 2-byte (signed) integer value
273 * param val
274 * double value to be converted
276 #define CONVERT_DOUBLE_TO_INT16(val) \
277 ( (val) >= 1.0 \
278 ? ( (val) < MAXINT16 \
279 ? (Int16_t)(val) \
280 : (Int16_t)MAXINT16 \
282 : ( (val) <= -1.0 \
283 ? ( (val) > (Int16_t)-MAXINT16 \
284 ? (Int16_t)(val) \
285 : (Int16_t)-MAXINT16 \
287 : (Int16_t)0.0 \
292 * Copies two bytes from SrcBuffer to DstBuffer without causing a page
293 * fault due to misaligned words.
295 * param DstBuffer
296 * Pointer the buffer to send the two bytes to
297 * param SrcBuffer
298 * Pointer the buffer to get the two bytes from
300 #define COPY_2_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
301 do { \
302 /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
303 /* most likely single byte pointers into unaligned blocks of data */ \
304 ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \
305 ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \
306 } while (FALSE)
309 * Copies two bytes from SrcBuffer to DstBuffer swapping the bytes
310 * as it copies. Will not cause a page fault due to misaligned words.
312 * param DstBuffer
313 * Pointer the buffer to send the two bytes to
314 * param SrcBuffer
315 * Pointer the buffer to get the two bytes from
317 #define COPY_AND_REVERSE_2_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
318 do { \
319 /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
320 /* most likely single byte pointers into unaligned blocks of data */ \
321 ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[1]; \
322 ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[0]; \
323 } while (FALSE)
326 * Copies four bytes from SrcBuffer to DstBuffer without causing a page
327 * fault due to misaligned words.
329 * param DstBuffer
330 * Pointer the buffer to send the four bytes to
331 * param SrcBuffer
332 * Pointer the buffer to get the four bytes from
334 #define COPY_4_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
335 do { \
336 /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
337 /* most likely single byte pointers into unaligned blocks of data */ \
338 ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \
339 ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \
340 ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[2]; \
341 ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[3]; \
342 } while (FALSE)
345 * Copies four bytes from SrcBuffer to DstBuffer swapping the bytes
346 * as it copies. Will not cause a page fault due to misaligned words.
348 * param DstBuffer
349 * Pointer the buffer to send the four bytes to
350 * param SrcBuffer
351 * Pointer the buffer to get the four bytes from
353 #define COPY_AND_REVERSE_4_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
354 do { \
355 /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
356 /* most likely single byte pointers into unaligned blocks of data */ \
357 ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[3]; \
358 ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[2]; \
359 ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[1]; \
360 ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[0]; \
361 } while (FALSE)
364 * Copies four bytes from SrcBuffer to DstBuffer without causing a page
365 * fault due to misaligned words.
367 * param DstBuffer
368 * Pointer the buffer to send the four bytes to
369 * param SrcBuffer
370 * Pointer the buffer to get the four bytes from
372 #define COPY_8_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
373 do { \
374 /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
375 /* most likely single byte pointers into unaligned blocks of data */ \
376 ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \
377 ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \
378 ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[2]; \
379 ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[3]; \
380 ((Byte_t *)(DstBuffer))[4] = ((Byte_t *)(SrcBuffer))[4]; \
381 ((Byte_t *)(DstBuffer))[5] = ((Byte_t *)(SrcBuffer))[5]; \
382 ((Byte_t *)(DstBuffer))[6] = ((Byte_t *)(SrcBuffer))[6]; \
383 ((Byte_t *)(DstBuffer))[7] = ((Byte_t *)(SrcBuffer))[7]; \
384 } while (FALSE)
387 * Copies eight bytes from SrcBuffer to DstBuffer swapping the bytes
388 * as it copies. Will not cause a page fault due to misaligned words.
390 * param DstBuffer
391 * Pointer the buffer to send the four bytes to
392 * param SrcBuffer
393 * Pointer the buffer to get the four bytes from
395 #define COPY_AND_REVERSE_8_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \
396 do { \
397 /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \
398 /* most likely single byte pointers into unaligned blocks of data */ \
399 ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[7]; \
400 ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[6]; \
401 ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[5]; \
402 ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[4]; \
403 ((Byte_t *)(DstBuffer))[4] = ((Byte_t *)(SrcBuffer))[3]; \
404 ((Byte_t *)(DstBuffer))[5] = ((Byte_t *)(SrcBuffer))[2]; \
405 ((Byte_t *)(DstBuffer))[6] = ((Byte_t *)(SrcBuffer))[1]; \
406 ((Byte_t *)(DstBuffer))[7] = ((Byte_t *)(SrcBuffer))[0]; \
407 } while (FALSE)
410 * Reverses the byte order of the specified 2 byte buffer.
412 * param Buffer
413 * Pointer to the 2 bytes needing byte order reversal.
415 #define REVERSE_2_BYTES_1_AT_A_TIME(Buffer) \
416 do { \
417 Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \
418 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==2); \
419 ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[1]; \
420 ((Byte_t *)(Buffer))[1] = Byte0; \
421 } while (FALSE)
423 #define REVERSE_2_BYTES_2_AT_A_TIME(Buffer) \
424 do { \
425 UInt16_t data_bits = ((UInt16_t *)(Buffer))[0]; \
426 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==2); \
427 ((UInt16_t *)(Buffer))[0] = (((data_bits)<<8) | \
428 ((data_bits&0xff))); \
429 } while (FALSE)
431 /* REVERSE_2_BYTES_2_AT_A_TIME may actually be slower, needs testing. */
432 #define REVERSE_2_BYTES REVERSE_2_BYTES_1_AT_A_TIME
435 * Reverses the byte order of the specified 4 byte buffer.
437 * param Buffer
438 * Pointer to the 4 bytes needing byte order reversal.
440 * How this works:
442 * ABCD
443 * D--- <<24 (1)
445 * ABCD
446 * --C- &0x0000ff00
447 * -C-- <<8 (2)
449 * ABCD
450 * -B-- &0x00ff0000
451 * --B- >>8 (3)
453 * ABCD
454 * ---A >>24 (4)
456 * (1) | (2) | (3) | (4) = DCBA.
459 #define REVERSE_4_BYTES_1_AT_A_TIME(Buffer) \
460 do { \
461 Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \
462 Byte_t Byte1 = ((Byte_t *)(Buffer))[1]; \
463 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==4); \
464 ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[3]; \
465 ((Byte_t *)(Buffer))[1] = ((Byte_t *)(Buffer))[2]; \
466 ((Byte_t *)(Buffer))[2] = Byte1; \
467 ((Byte_t *)(Buffer))[3] = Byte0; \
468 } while (FALSE)
470 #define REVERSE_4_BYTES_4_AT_A_TIME(Buffer) \
471 do { \
472 UInt32_t data_bits = *((UInt32_t *)(Buffer)); \
473 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==4); \
474 *((UInt32_t *)(Buffer)) = (((data_bits)<<24) | \
475 ((data_bits&0x0000ff00)<<8) | \
476 ((data_bits&0x00ff0000)>>8) | \
477 ((data_bits)>>24)); \
478 } while (FALSE)
480 #if defined MSWIN
482 * The DevStuido compiler seems to be the only one that can truly handle this
483 * when optimization is turned on.
485 #define REVERSE_4_BYTES REVERSE_4_BYTES_4_AT_A_TIME
486 #else
487 #define REVERSE_4_BYTES REVERSE_4_BYTES_1_AT_A_TIME
488 #endif
491 * Reverses the byte order of the specified 8 byte buffer.
493 * param Buffer
494 * Pointer to the 8 bytes needing byte order reversal.
496 #define REVERSE_8_BYTES_1_AT_A_TIME(Buffer) \
497 do { \
498 Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \
499 Byte_t Byte1 = ((Byte_t *)(Buffer))[1]; \
500 Byte_t Byte2 = ((Byte_t *)(Buffer))[2]; \
501 Byte_t Byte3 = ((Byte_t *)(Buffer))[3]; \
502 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
503 ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[7]; \
504 ((Byte_t *)(Buffer))[1] = ((Byte_t *)(Buffer))[6]; \
505 ((Byte_t *)(Buffer))[2] = ((Byte_t *)(Buffer))[5]; \
506 ((Byte_t *)(Buffer))[3] = ((Byte_t *)(Buffer))[4]; \
507 ((Byte_t *)(Buffer))[4] = Byte3; \
508 ((Byte_t *)(Buffer))[5] = Byte2; \
509 ((Byte_t *)(Buffer))[6] = Byte1; \
510 ((Byte_t *)(Buffer))[7] = Byte0; \
511 } while (FALSE)
513 #define REVERSE_8_BYTES_2_AT_A_TIME(Buffer) \
514 do { \
515 UInt16_t data_bits_0 = ((UInt16_t *)(Buffer))[0]; \
516 UInt16_t data_bits_1 = ((UInt16_t *)(Buffer))[1]; \
517 UInt16_t data_bits_2 = ((UInt16_t *)(Buffer))[2]; \
518 UInt16_t data_bits_3 = ((UInt16_t *)(Buffer))[3]; \
519 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
520 ((UInt16_t *)(Buffer))[0] = (((data_bits_3)<<8) | \
521 ((data_bits_3&0xff))); \
522 ((UInt16_t *)(Buffer))[1] = (((data_bits_2)<<8) | \
523 ((data_bits_2&0xff))); \
524 ((UInt16_t *)(Buffer))[2] = (((data_bits_1)<<8) | \
525 ((data_bits_1&0xff))); \
526 ((UInt16_t *)(Buffer))[3] = (((data_bits_0)<<8) | \
527 ((data_bits_0&0xff))); \
528 } while (FALSE)
530 #define REVERSE_8_BYTES_4_AT_A_TIME(Buffer) \
531 do { \
532 UInt32_t data_bits_0 = ((UInt32_t *)(Buffer))[0]; \
533 UInt32_t data_bits_1 = ((UInt32_t *)(Buffer))[1]; \
534 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
535 ((UInt32_t *)(Buffer))[0] = (((data_bits_1)<<24) | \
536 ((data_bits_1&0x0000ff00)<<8) | \
537 ((data_bits_1&0x00ff0000)>>8) | \
538 ((data_bits_1)>>24)); \
539 ((UInt32_t *)(Buffer))[1] = (((data_bits_0)<<24) | \
540 ((data_bits_0&0x0000ff00)<<8) | \
541 ((data_bits_0&0x00ff0000)>>8) | \
542 ((data_bits_0)>>24)); \
543 } while (FALSE)
545 #define REVERSE_8_BYTES_8_AT_A_TIME(Buffer) \
546 do { \
547 UInt64_t data_bits = *((UInt64_t *)(Buffer)); \
548 CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \
549 *((UInt64_t *)(Buffer)) = (((data_bits)<<56) | \
550 ((data_bits&0x000000000000ff00)<<40) | \
551 ((data_bits&0x0000000000ff0000)<<24) | \
552 ((data_bits&0x00000000ff000000)<<8) | \
553 ((data_bits&0x000000ff00000000)>>8) | \
554 ((data_bits&0x0000ff0000000000)>>24) | \
555 ((data_bits&0x00ff000000000000)>>40) | \
556 ((data_bits)>>56)); \
557 } while (FALSE)
560 #if defined MSWIN
562 * The DevStuido compiler seems to be the only one that can truly handle this
563 * when optimization is turned on.
565 #define REVERSE_8_BYTES REVERSE_8_BYTES_4_AT_A_TIME
566 #else
567 #define REVERSE_8_BYTES REVERSE_8_BYTES_1_AT_A_TIME
568 #endif
571 /****************************************************************
573 * ADD-ON MSWIN IMPORT/EXPORT DEFINITIONS *
575 ****************************************************************/
576 #if defined MSWIN
577 # define STDCALL __stdcall
578 #else
579 # define STDCALL
580 #endif /* MSWIN */
582 #if defined (__cplusplus)
583 # define EXTERNC extern "C"
584 #else
585 # define EXTERNC
586 #endif /* __cplusplus */
588 #if defined MSWIN
589 #if defined AMTEC_INTERNAL_MAKELIBTEC || defined TECPLOTKERNEL
590 /* CORE SOURCE CODE REMOVED */
591 # else
592 # define TECPLOT_DLLAPI _declspec ( dllimport )
593 # endif
594 #else
595 # define TECPLOT_DLLAPI
596 #endif
598 #define LINKTOADDON EXTERNC TECPLOT_DLLAPI
603 * Usage:
604 * EXPORTFROMADDON void STDCALL InitTecAddOn(void) { ... }
607 #if defined MSWIN
608 # define EXPORTFROMADDON EXTERNC _declspec ( dllexport )
609 #else
610 # define EXPORTFROMADDON EXTERNC
611 #endif /* MSWIN */
613 #define EXPORTFROMDLL EXPORTFROMADDON
615 #define InitTecAddOn InitTecAddOn113
616 #define TEC_INIT_FUNCTION_NAME "InitTecAddOn113"
618 /* BEGINREMOVEFROMADDON */
619 /* Use INLINE for static functions that could be optimized as inline. */
620 #if defined (__cplusplus) && !defined _DEBUG
621 # define INLINE inline
622 #else
623 # define INLINE static
624 #endif /* __cplusplus */
625 /* ENDREMOVEFROMADDON */
628 /* BEGINREMOVEFROMADDON */
629 #if defined (MSWIN) ||\
630 defined (INTERX) ||\
631 defined (LINUX) ||\
632 defined (SUNSOLARIS86X) ||\
633 defined (COMPAQALPHA) ||\
634 defined (DEC) ||\
635 defined (__LITTLE_ENDIAN__)
636 #define MACHINE_DOES_INTEL_ORDER
637 #endif
639 #if defined( MACHINE_DOES_INTEL_ORDER )
640 # define SwapBytes(IntelOrder) (!(IntelOrder))
641 #else
642 # define SwapBytes(IntelOrder) (IntelOrder)
643 #endif
644 /* ENDREMOVEFROMADDON */
646 #if defined DECALPHA || \
647 defined LINUXALPHA || \
648 defined LINUXI64 || \
649 defined LINUX64 || \
650 defined MAC64 || \
651 defined COMPAQALPHA || \
652 defined darwin
653 #define LONGIS64
654 #endif
656 /****************************************************************
658 * HARD CONSTANTS *
660 ****************************************************************/
661 #define LARGEMEMORY ((size_t)-1)
663 /* BEGINREMOVEFROMADDON */
664 /* Tclinterp add-on barfs on these huge integer constants */
665 /* Note: Tecplot is conservative by one on LARGEINTs max */
666 #define LARGEINT64 9223372036854775806LL
667 /* ENDREMOVEFROMADDON */
668 #define LARGEINT32 2147483646
669 #define LARGEINT16 32766
670 #define LARGEINT8 126
672 /* BEGINREMOVEFROMADDON */
673 #define LARGEUINT64 18446744073709551614ULL
674 /* ENDREMOVEFROMADDON */
675 #define LARGEUINT32 4294967294
676 #define LARGEUINT16 65534
677 #define LARGEUINT8 254
679 #ifdef INDEX_16_BIT
680 #define MAXINDEX ((LgIndex_t)LARGEINT16)
681 #else
682 #define MAXINDEX ((LgIndex_t)LARGEINT32)
683 #endif
684 #define MAXZONEMAP MAXINDEX
685 #define LARGEDOUBLE 1.0e+150
686 #define SMALLDOUBLE 1.0e-150
687 #define LARGESTEXPONENT 150
688 #define SMALLESTEXPONENT -150
690 #define SMALLESTDOUBLE SMALLDOUBLE
692 #define LARGESTDOUBLEEXPONENT 308
693 #define SMALLESTDOUBLEEXPONENT -307
694 #define LARGESTDOUBLE 1.0e+308
695 #define LARGEFLOAT 3.40282347E+38
696 #define SMALLFLOAT 1.17549435E-38
697 #define SMALLSTDOUBLE 1.0e-307
699 /* Visual Studio 2008 defines MAXINT32, MAXINT16 which collide with ours */
700 #if defined MAXINT32
701 #undef MAXINT32
702 #endif
703 #if defined MAXINT16
704 #undef MAXINT16
705 #endif
707 #define MAXINT32 LARGEINT32
708 #define MAXINT16 LARGEINT16
709 #define ETX 3
710 #define LN2 0.69314718055994530942
711 #define LN10 2.30258509299404568402
712 #define PIOVER2 1.57079632679489661923
713 #define TWOPI 6.28318530717958647692
714 #if defined PI
715 #undef PI
716 #endif
717 #define PI 3.14159265358979323846
718 #define ANGLEEPSILON 1.0e-10
719 #define LARGESTANGLE (4*PI+ANGLEEPSILON)
720 #define DEGPERRADIANS 57.295779513082323
721 #define CMPERINCH 2.54
722 #define POINTSPERINCH 72.0
723 #define FONTMOVEMARK 192
724 #define FONTDECISIONMARK 128
725 #define FONTLINEMARK 64
726 #define BAD_SET_VALUE ((SetIndex_t)-1)
727 #define MENU_POSITION_FIRST (0)
728 #define MENU_POSITION_LAST (-1)
729 #define INVALID_UNIQUE_ID 0
731 #define BADSETVALUE BAD_SET_VALUE
732 #define SOLID_TRANSLUCENCY 0
733 #define BAD_DISTANCE (-1.0)
734 /* MIN_CIRCUMFERENTIAL_INDEX is the min J dimension for circular zones */
735 #define MIN_CIRCUMFERENTIAL_INDEX 4
737 #define VALID_STRAND_ID(StrandID) (0 <= (StrandID) && (StrandID) < MAXZONEMAP)
738 #define STRAND_ID_STATIC (-1)
739 #define STRAND_ID_PENDING (-2)
742 * Need 3 passes for "Rest of pie" method but can only use 3 clip planes
743 * Need only 1 pass for "Piece of pie" method and can use 6 clip planes
745 #define MAX_ALLOWABLE_CLIPPASSES 1
746 #define MAX_ALLOWABLE_CLIPPLANES 6
748 /* BEGINREMOVEFROMADDON */
749 #if defined TECPLOTKERNEL
750 /* CORE SOURCE CODE REMOVED */
751 #if defined _DEBUG
752 #else
753 #endif
754 #if 0 /* NOTUSED */
755 #endif
756 #endif /* TECPLOTKERNEL */
757 /* ENDREMOVEFROMADDON */
761 * NOTE: If you change TecplotBinaryFileVersion, you MUST also:
763 * 1. Update preplot:
764 * - Change this define symbol in preplot.cpp
765 * - Change version number in the data file format in the comments in preplot.cpp
766 * - Change the version number of Preplot itself in preplot.cpp
767 * 2. Maintain the ability to write the old plt file format:
768 * - Add a new entry to BinaryFileVersion_e
769 * - Add a concrete class of the VersionWriterInterface, and update
770 * VersionWriterAbstractFactory to return the correct instance for the previous and
771 * new BinaryFileVersion_e
772 * - Abstract away the difference in the two versions behind an interface (if one does
773 * not yet exist) and create concrete implementations that can write the old and the
774 * new versions. For a trivial example of this, see FileTypeWriterInterface and its
775 * associated factory and concrete classes.
777 #define TecplotBinaryFileVersion 112
778 #define TecplotInterfaceVersion 120
779 #define TecplotInterfaceVersionStr "120" /* stay in lockstep with TecplotInterfaceVersion */
780 #if defined FLEXLM
781 #define TecplotLicenseVersion 119 /* may vary from TecplotInterfaceVersion */
782 #define TecplotLicenseVersionStr "11.9" /* stay in lockstep with TecplotLicenseVersion */
783 #else /* FLEXLM */
784 #define TecplotLicenseVersion 120 /* may vary from TecplotInterfaceVersion */
785 #define TecplotLicenseVersionStr "12.0" /* stay in lockstep with TecplotLicenseVersion */
786 #endif /* FLEXLM */
787 /* Also change the macro version number in COMMAND.MASTER.h */
789 #define MaxNumZonesOrVars MAXZONEMAP
790 #define MaxXAxes 5
791 #define MaxYAxes 5
792 #define MaxGeoSegments 50
793 #define MaxPtsCircleOrEllipse 720
794 #define MaxFrames 2048
795 #define MaxCustomLabelSets 10
796 #define MaxFontMoves 20000
797 #define MaxColorMapOverrides 16
798 #define MaxValueBlankConstraints 8
799 #define MaxContourGroups 8
800 #define MaxIsoSurfaceGroups 8
801 #define MaxSliceGroups 8
803 #define MaxColorMapGroups 8
804 #define DefaultNumContLevels 15
807 #define DefaultColorMapGroup ((SmInteger_t)0)
808 #define BADGROUPNUMBER ((SmInteger_t)-1)
809 #define UNUSEDGROUPNUMBER ((SmInteger_t)0)
811 #define VALID_ISOSURFACE_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxIsoSurfaceGroups)))
812 #define VALID_SLICE_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxSliceGroups)))
813 #define VALID_COLORMAP_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxColorMapGroups)))
818 * If any of these values changes its corresponding value in preplot.c must
819 * change to match it so that files created by preplot and Tecplot are
820 * consistent.
822 #define MaxChrsDatasetTitle 256
823 #define MaxChrsZnTitle 128
824 #define MaxChrsVarName 128
825 #define MaxChrsZnOrVarName 128
826 /* currently limited to MaxLineIndex in preplot.c */
827 #define MaxChrsAuxValueString 32000
829 #define MaxNumViews 16
830 #define MaxBasicSizes 5
831 #define MaxColorMapControlPoints 50
832 #define MaxRawColorMapEntries 800
833 #define MaxDataSetReaders 100
834 #define MaxExtendedCurveFits 100
835 #define MaxColorMapCycles 20
838 /* Dimension Limits */
840 #define MinPaperDimInWorkArea 0.5
841 #define MinFrameWidth 0.25
842 #define MinFrameHeight 0.25
843 #define MinAxisLength 0.1
846 #define BadEnumValue 255
848 /* BEGINREMOVEFROMADDON */
849 /* define class element limits */
850 #if defined TECPLOTKERNEL
851 /* CORE SOURCE CODE REMOVED */
852 #endif
853 /* ENDREMOVEFROMADDON */
856 * Floating point values are written to layouts with a certain precision.
857 * A high precision is necessary in some cases (like streamtrace starting locations)
858 * This used to be set to 12 which was not high enough. It is now set to 16 which
859 * appears to be sufficient. This also seems to jive with the number of digits of
860 * precision that are found in "ieee double precision" values which is 53 bits or
861 * equivalent to approximately 16 digits. -bdp
864 #define STYLE_FLOAT_PRECISION 16
868 * Auxiliary data common names.
870 * Define Name Data Name Data Type Data Location
871 * ------------------------------------------ ------------------------------------ --------- -------------
873 #define AuxData_Common_Incompressible "Common.Incompressible" /* Boolean_t Dataset */
874 #define AuxData_Common_Density "Common.Density" /* double Dataset */
875 #define AuxData_Common_SpecificHeat "Common.SpecificHeat" /* double Dataset */
876 #define AuxData_Common_SpecificHeatVar "Common.SpecificHeatVar" /* int Dataset */
877 #define AuxData_Common_GasConstant "Common.GasConstant" /* double Dataset */
878 #define AuxData_Common_GasConstantVar "Common.GasConstantVar" /* int Dataset */
879 #define AuxData_Common_Gamma "Common.Gamma" /* double Dataset */
880 #define AuxData_Common_GammaVar "Common.GammaVar" /* int Dataset */
881 #define AuxData_Common_Viscosity "Common.Viscosity" /* double Dataset */
882 #define AuxData_Common_ViscosityVar "Common.ViscosityVar" /* int Dataset */
883 #define AuxData_Common_Conductivity "Common.Conductivity" /* double Dataset */
884 #define AuxData_Common_ConductivityVar "Common.ConductivityVar" /* int Dataset */
885 #define AuxData_Common_AngleOfAttack "Common.AngleOfAttack" /* double Dataset */
886 #define AuxData_Common_SpeedOfSound "Common.SpeedOfSound" /* double Dataset */
887 #define AuxData_Common_ReferenceU "Common.ReferenceU" /* double Dataset */
888 #define AuxData_Common_ReferenceV "Common.ReferenceV" /* double Dataset */
889 #define AuxData_Common_XVar "Common.XVar" /* int Dataset */
890 #define AuxData_Common_YVar "Common.YVar" /* int Dataset */
891 #define AuxData_Common_ZVar "Common.ZVar" /* int Dataset */
892 #define AuxData_Common_CVar "Common.CVar" /* int Dataset */
893 #define AuxData_Common_UVar "Common.UVar" /* int Dataset */
894 #define AuxData_Common_VVar "Common.VVar" /* int Dataset */
895 #define AuxData_Common_WVar "Common.WVar" /* int Dataset */
896 #define AuxData_Common_VectorVarsAreVelocity "Common.VectorVarsAreVelocity" /* Boolean_t Dataset */
897 #define AuxData_Common_PressureVar "Common.PressureVar" /* int Dataset */
898 #define AuxData_Common_TemperatureVar "Common.TemperatureVar" /* int Dataset */
899 #define AuxData_Common_DensityVar "Common.DensityVar" /* int Dataset */
900 #define AuxData_Common_StagnationEnergyVar "Common.StagnationEnergyVar" /* int Dataset */
901 #define AuxData_Common_MachNumberVar "Common.MachNumberVar" /* int Dataset */
902 #define AuxData_Common_ReferenceMachNumber "Common.ReferenceMachNumber" /* double Dataset */
903 #define AuxData_Common_ReferenceW "Common.ReferenceW" /* double Dataset */
904 #define AuxData_Common_PrandtlNumber "Common.PrandtlNumber" /* double DataSet */
905 #define AuxData_Common_Axisymmetric "Common.Axisymmetric" /* Boolean_t Dataset */
906 #define AuxData_Common_AxisOfSymmetryVarAssignment "Common.AxisOfSymmetryVarAssignment" /* int Dataset */
907 #define AuxData_Common_AxisValue "Common.AxisValue" /* double Dataset */
908 #define AuxData_Common_SteadyState "Common.SteadyState" /* Boolean_t Dataset */
909 #define AuxData_Common_TurbulentKineticEnergyVar "Common.TurbulentKineticEnergyVar" /* int Dataset */
910 #define AuxData_Common_TurbulentDissipationRateVar "Common.TurbulentDissipationRateVar" /* int Dataset */
911 #define AuxData_Common_TurbulentViscosityVar "Common.TurbulentViscosityVar" /* int Dataset */
912 #define AuxData_Common_TurbulentFrequencyVar "Common.TurbulentFrequencyVar" /* int Dataset */
913 #define AuxData_Common_Gravity "Common.Gravity" /* double Dataset */
914 #define AuxData_Common_IsBoundaryZone "Common.IsBoundaryZone" /* Boolean_t Zone */
915 #define AuxData_Common_BoundaryCondition "Common.BoundaryCondition" /* BCondition Zone */
916 #define AuxData_Common_Time "Common.Time" /* double Zone */
917 #define AuxData_Common_Mean "Common.Mean" /* double Variable */
918 #define AuxData_Common_Median "Common.Median" /* double Variable */
919 #define AuxData_Common_Variance "Common.Variance" /* double Variable */
920 #define AuxData_Common_StdDev "Common.StdDev" /* double Variable */
921 #define AuxData_Common_AvgDev "Common.AvgDev" /* double Variable */
922 #define AuxData_Common_GeoMean "Common.GeoMean" /* double Variable */
923 #define AuxData_Common_ChiSqre "Common.ChiSqre" /* double Variable */
931 /* BEGINREMOVEFROMADDON */
932 #if defined TECPLOTKERNEL
933 /* CORE SOURCE CODE REMOVED */
934 #if defined THREED
935 #endif
936 #endif /* TECPLOTKERNEL */
937 /* ENDREMOVEFROMADDON */
939 /* Tecplot Add-on Custom Products */
941 /* BEGINREMOVEFROMADDON */
942 /* In activeX, the color constants are an enum type,
943 so the activeX source code parser handles these as
944 a special case, and the types do not need to be
945 indicated as with the other hard #define constants */
946 /* ENDREMOVEFROMADDON */
948 #define Black_C ((ColorIndex_t)0)
949 #define Red_C ((ColorIndex_t)1)
950 #define Green_C ((ColorIndex_t)2)
951 #define Blue_C ((ColorIndex_t)3)
952 #define Cyan_C ((ColorIndex_t)4)
953 #define Yellow_C ((ColorIndex_t)5)
954 #define Purple_C ((ColorIndex_t)6)
955 #define White_C ((ColorIndex_t)7)
957 #define Custom1_C ((ColorIndex_t)8)
958 #define Custom2_C ((ColorIndex_t)9)
959 #define Custom3_C ((ColorIndex_t)10)
960 #define Custom4_C ((ColorIndex_t)11)
961 #define Custom5_C ((ColorIndex_t)12)
962 #define Custom6_C ((ColorIndex_t)13)
963 #define Custom7_C ((ColorIndex_t)14)
964 #define Custom8_C ((ColorIndex_t)15)
965 #define Custom9_C ((ColorIndex_t)16)
967 #define Custom10_C ((ColorIndex_t)17)
968 #define Custom11_C ((ColorIndex_t)18)
969 #define Custom12_C ((ColorIndex_t)19)
970 #define Custom13_C ((ColorIndex_t)20)
971 #define Custom14_C ((ColorIndex_t)21)
972 #define Custom15_C ((ColorIndex_t)22)
973 #define Custom16_C ((ColorIndex_t)23)
974 #define Custom17_C ((ColorIndex_t)24)
975 #define Custom18_C ((ColorIndex_t)25)
976 #define Custom19_C ((ColorIndex_t)26)
978 #define Custom20_C ((ColorIndex_t)27)
979 #define Custom21_C ((ColorIndex_t)28)
980 #define Custom22_C ((ColorIndex_t)29)
981 #define Custom23_C ((ColorIndex_t)30)
982 #define Custom24_C ((ColorIndex_t)31)
983 #define Custom25_C ((ColorIndex_t)32)
984 #define Custom26_C ((ColorIndex_t)33)
985 #define Custom27_C ((ColorIndex_t)34)
986 #define Custom28_C ((ColorIndex_t)35)
987 #define Custom29_C ((ColorIndex_t)36)
989 #define Custom30_C ((ColorIndex_t)37)
990 #define Custom31_C ((ColorIndex_t)38)
991 #define Custom32_C ((ColorIndex_t)39)
992 #define Custom33_C ((ColorIndex_t)40)
993 #define Custom34_C ((ColorIndex_t)41)
994 #define Custom35_C ((ColorIndex_t)42)
995 #define Custom36_C ((ColorIndex_t)43)
996 #define Custom37_C ((ColorIndex_t)44)
997 #define Custom38_C ((ColorIndex_t)45)
998 #define Custom39_C ((ColorIndex_t)46)
1000 #define Custom40_C ((ColorIndex_t)47)
1001 #define Custom41_C ((ColorIndex_t)48)
1002 #define Custom42_C ((ColorIndex_t)49)
1003 #define Custom43_C ((ColorIndex_t)50)
1004 #define Custom44_C ((ColorIndex_t)51)
1005 #define Custom45_C ((ColorIndex_t)52)
1006 #define Custom46_C ((ColorIndex_t)53)
1007 #define Custom47_C ((ColorIndex_t)54)
1008 #define Custom48_C ((ColorIndex_t)55)
1009 #define Custom49_C ((ColorIndex_t)56)
1011 #define Custom50_C ((ColorIndex_t)57)
1012 #define Custom51_C ((ColorIndex_t)58)
1013 #define Custom52_C ((ColorIndex_t)59)
1014 #define Custom53_C ((ColorIndex_t)60)
1015 #define Custom54_C ((ColorIndex_t)61)
1016 #define Custom55_C ((ColorIndex_t)62)
1017 #define Custom56_C ((ColorIndex_t)63)
1019 #define MultiColor_C ((ColorIndex_t)(-1))
1020 #define NoColor_C ((ColorIndex_t)(-2))
1021 #define MultiColor2_C ((ColorIndex_t)(-3))
1022 #define MultiColor3_C ((ColorIndex_t)(-4))
1023 #define MultiColor4_C ((ColorIndex_t)(-5))
1024 #define RGBColor_C ((ColorIndex_t)(-6))
1025 #define MultiColor5_C ((ColorIndex_t)(-7))
1026 #define MultiColor6_C ((ColorIndex_t)(-8))
1027 #define MultiColor7_C ((ColorIndex_t)(-9))
1028 #define MultiColor8_C ((ColorIndex_t)(-10))
1029 #define InvalidColor_C ((ColorIndex_t)(-255))
1031 #define FirstCustomColor Custom1_C
1032 #define LastCustomColor Custom56_C
1033 #define NumCustomColors (LastCustomColor-FirstCustomColor+1)
1035 #define FirstBasicColor Black_C
1036 #define LastBasicColor LastCustomColor
1037 #define NumBasicColors (LastBasicColor-FirstBasicColor+1)
1039 /* BEGINREMOVEFROMADDON */
1042 * V8 and earlier used this for MultiColor_C. We adjust this
1043 * to the new value in the SetValue layer so old addons work.
1045 #define OldMultiColor_C ((ColorIndex_t)255)
1047 * Gray is only used in the interface for workspace background and
1048 * for insensitive buttons in Motif.
1049 * True Black and True White are also interface only. They draw
1050 * true black or true white - regardless of what the user has set
1051 * the RGB values for the black and white basic colors.
1052 * XOrColor_C is also for interface only.
1054 #define Gray_C (LastBasicColor+1)
1055 #define DarkGray_C (LastBasicColor+2) /* Used for inactive frame border color */
1056 #define XOrColor_C (LastBasicColor+3)
1057 #define FirstInterfaceColor Gray_C
1058 #define LastInterfaceColor XOrColor_C
1060 #define NumInterfaceColors (LastInterfaceColor-FirstInterfaceColor+1)
1061 #define NumContourShades (GeneralBase.Limits.MaxNumContourLevels+1)
1062 #define NumColorsInColorTable (NumBasicColors+NumInterfaceColors+NumContourShades)
1063 #define BasicColorOffset (0)
1064 #define InterfaceColorOffset (NumBasicColors)
1065 #define ContourColorOffset (NumBasicColors+NumInterfaceColors)
1067 #define BadKey (short)31
1068 #define Plus (short)43
1069 #define Minus (short)45
1070 #define RetKey (short)13
1071 #define DeleteKey (short)127
1072 #define ShiftDelete (short)128
1073 #define BackSpace (short)8
1074 #define LeftArrow (short)29
1075 #define RightArrow (short)30
1076 #define UpArrow (short)11
1077 #define DownArrow (short)10
1078 #define Toggle (short)19
1079 #define Esc (short)27
1080 #define RegFrame (short)18
1081 #define DoBitDump (short)2
1084 /* File Markers */
1085 #define ZoneMarker 299.0
1086 #define GeomMarker 399.0
1087 #define TextMarker 499.0
1088 #define CustomLabelMarker 599.0
1089 #define UserRecMarker 699.0
1090 #define DataSetAuxMarker 799.0
1091 #define VarAuxMarker 899.0
1092 #define EndHeaderMarker 357.0
1096 * Additional objects that have plotter
1097 * pens assigned to them.
1099 #define AxisPen Custom8_C+1
1100 #define MajGridPen Custom8_C+2
1101 #define MinGridPen Custom8_C+3
1102 #define StreamlinePen Custom8_C+4
1103 #define ColoredLinePen Custom8_C+5
1104 #define BoundaryPen Custom8_C+6
1105 #define LabelPen Custom8_C+7
1106 #define NumPlotterPens Custom8_C+8
1107 /* AutoSelectPen will select the correct pen from Black_C thru Custom8_C or ColoredLinePen */
1108 #define AutoSelectPen Custom8_C+9
1109 #define InvalidPen Custom8_C+99
1111 #define FirstObjectPen AxisPen
1112 #define LastObjectPen LabelPen
1114 #define DelZFactor 0.0001
1116 #define BadBaseValue NULL
1120 * NOTES ON TYPEDEFS:
1122 * TYPEDEF TYPE Suffix
1123 * ------------ ------
1124 * simple _t
1125 * enumerated _e
1126 * structure _s
1127 * union _u
1128 * abstract _a
1129 * pointer to simple _pt
1130 * pointer to enumerated _pe
1131 * pointer to structure _ps
1132 * pointer to union _pu
1133 * pointer to abstract _pa
1134 * pointer to function _pf
1137 * The only execption is char * typedef's these use _t
1139 * Abstract types are intentionally made to be
1140 * obscure. The programmer should not have to know
1141 * what the underlying structure really is for abstract
1142 * types.
1147 #ifdef MSWIN
1148 # define DIR_SEPARATOR "\\"
1149 #else
1150 # define DIR_SEPARATOR "/"
1151 #endif
1153 /* ENDREMOVEFROMADDON */
1155 /* BEGINREMOVEFROMADDON */
1156 #if defined MSWIN
1157 #define TP_FWRITE fwrite
1158 #define TP_FFLUSH fflush
1159 #define TP_FCLOSE fclose
1161 #if defined TECPLOTKERNEL
1162 /* CORE SOURCE CODE REMOVED */
1163 #else
1164 #define TP_UNLINK remove
1165 #define TP_RMDIR _rmdir
1166 #define TP_FREAD ::fread
1167 #define TP_FOPEN ::fopen
1168 #define TP_FREOPEN ::freopen
1169 #define TP_STAT ::_stat
1170 #define TP_GETENV ::getenv
1171 #endif /* TECPLOTKERNEL */
1173 #if defined _WIN64
1174 #define TP_FSEEK(stream,offset,whence) _fseeki64((stream),(__int64)(offset),(whence))
1175 #define TP_FTELL _ftelli64
1176 #else
1177 #define TP_FSEEK(stream, offset, whence) fseek((stream), (long)(offset), (whence))
1178 #define TP_FTELL ftell
1179 #endif
1181 #else
1182 #define TP_RMDIR rmdir
1183 #define TP_UNLINK unlink
1184 #define TP_FOPEN fopen
1185 #define TP_FREOPEN freopen
1186 #define TP_FCLOSE fclose
1187 #define TP_FREAD fread
1188 #define TP_FWRITE fwrite
1189 #define TP_FFLUSH fflush
1190 #define TP_FSEEK fseeko
1191 #define TP_FTELL ftello
1192 #define TP_STAT stat
1193 #define _stat stat // ...make the UNIXX and MSWIN platforms have the same syntax to use "struct _stat"
1194 #define TP_GETENV getenv
1195 #endif
1196 /* ENDREMOVEFROMADDON */
1198 /****************************************************************
1200 * SIMPLE TYPEDEFS *
1202 ****************************************************************/
1206 /* How to define UInt64_t/Int64_t is platform specific, but they are always 8-bytes */
1207 #if defined MSWIN
1208 typedef unsigned __int64 UInt64_t;
1209 typedef __int64 Int64_t;
1210 #else
1211 #if defined CRAY
1212 typedef unsigned int UInt64_t;
1213 typedef int Int64_t;
1214 #else
1215 #if defined LONGIS64
1216 typedef unsigned long UInt64_t;
1217 typedef long Int64_t;
1218 #else
1219 typedef unsigned long long UInt64_t;
1220 typedef long long Int64_t;
1221 #endif
1222 #endif
1223 #endif
1225 #if defined LONGIS64
1226 typedef unsigned int UInt32_t;
1227 typedef int Int32_t;
1228 typedef int LgInteger_t;
1229 #else
1230 typedef unsigned int UInt32_t;
1231 typedef int Int32_t;
1232 typedef int LgInteger_t;
1233 #endif
1235 typedef short Int16_t;
1236 typedef unsigned short UInt16_t;
1237 typedef signed char Int8_t;
1238 typedef unsigned char UInt8_t;
1240 #ifdef INDEX_16_BIT
1241 typedef Int16_t LgIndex_t;
1242 #else
1243 typedef Int32_t LgIndex_t;
1244 #endif
1245 typedef LgIndex_t NodeMap_t;
1246 typedef LgIndex_t ScreenDim_t;
1249 * ArbParam_t type is used for passing arbitrary integers or pointers in
1250 * parameters. HgIndex_t is used for counting node maps and other things that
1251 * may individually be LgIndex_t, but in total exceed 32-bit.
1252 * The general rule is that these are 4 bytes on "32-bit" machines
1253 * and 8 bytes on "64-bit" machines.
1255 #if defined CRAY
1256 typedef char *ArbParam_t;
1257 typedef long HgIndex_t;
1258 #elif defined LONGIS64
1259 typedef long ArbParam_t;
1260 typedef long HgIndex_t;
1261 #elif defined MSWIN && (defined _M_IA64 || defined _M_AMD64)
1262 typedef INT_PTR ArbParam_t;
1263 typedef INT_PTR HgIndex_t;
1264 #else
1265 typedef int ArbParam_t;
1266 typedef int HgIndex_t;
1267 #endif
1269 typedef ArbParam_t UniqueID_t;
1271 /* 64 bit offset used to hold file offset and size values. */
1272 typedef Int64_t FileOffset_t;
1275 * 64 bit offset for memory mapped I/O.
1277 typedef UInt64_t MemMapOffset_t;
1280 * SmInteger must be at least a short....
1283 typedef unsigned char Byte_t;
1284 typedef short SmInteger_t;
1285 typedef SmInteger_t ColorIndex_t;
1286 #ifdef INDEX_16_BIT
1287 typedef Int16_t EntIndex_t;
1288 #else
1289 typedef Int32_t EntIndex_t;
1290 #endif
1291 typedef Int16_t SubZoneIndex_t;
1293 typedef char Boolean_t;
1294 typedef char *ZoneName_t;
1295 typedef char *VarName_t;
1296 typedef char *LString_t;
1298 typedef LgIndex_t Strand_t;
1299 typedef LgIndex_t HeapLength_t;
1300 typedef LgIndex_t SegPtsArray_t[MaxGeoSegments];
1301 typedef double BasicSize_t[MaxBasicSizes];
1302 typedef double *VarList_t;
1304 typedef long SetIndex_t;
1306 typedef unsigned long SetData_t;
1307 typedef SetData_t *SetData_pt;
1309 /* BEGINREMOVEFROMADDON */
1310 #if defined TECPLOTKERNEL
1311 /* CORE SOURCE CODE REMOVED */
1312 #endif /* TECPLOTKERNEL */
1314 /* The following list identifies items that can be inhibited. */
1315 #define FEATURE_3D (1L << 0)
1316 #define FEATURE_3DVOLUME (1L << 1)
1317 #define FEATURE_2D (1L << 2)
1318 #define FEATURE_XY (1L << 3)
1319 #define FEATURE_DATAALTER (1L << 4)
1320 #define FEATURE_UNSTRUCTUREDDATA (1L << 5)
1321 #define FEATURE_MULTIPLEFRAMES1 (1L << 6)
1322 #define FEATURE_MULTIPLEZONES1 (1L << 7)
1323 #define FEATURE_MULTIPLEFRAMES5 (1L << 8)
1324 #define FEATURE_MULTIPLEZONES5 (1L << 9)
1325 #define FEATURE_MULTIPLEFRAMES10 (1L << 10)
1326 #define FEATURE_MULTIPLEZONES10 (1L << 11)
1327 #define FEATURE_READNONOEMDATA (1L << 12) /* Added 07/22/2000 */
1328 #define FEATURE_DATALOADERS (1L << 13) /* Added 07/22/2000 */
1329 #define FEATURE_DATALOADERS_EXCEPTONE (1L << 14) /* Added 11/26/2001 */
1330 #define FEATURE_LOADONDEMAND (1L << 15) /* Added 09/13/2007 */
1331 #define FEATURE_MULTIPLEWORKERTHREADS (1L << 16) /* Added 09/13/2007 */
1332 #define FEATURE_ISOSURFACEGROUPS (1L << 17) /* Added 09/21/2007 */
1333 #define FEATURE_SLICEGROUPS (1L << 18) /* Added 09/21/2007 */
1334 #define FEATURE_STREAMTRACEGROUPS (1L << 19) /* Added 09/25/2007 not used yet */
1335 #define FEATURE_FEPOLYHEDRON (1L << 20) /* Added 09/25/2007 */
1336 #define FEATURE_FEPOLYGON (1L << 21) /* Added 09/25/2007 */
1339 * KnowFeaturesToInhibit must be updated whenever a new
1340 * item is added above.
1342 #define KnownFeaturesToInhibit (FEATURE_3D |\
1343 FEATURE_3DVOLUME |\
1344 FEATURE_2D |\
1345 FEATURE_XY |\
1346 FEATURE_DATAALTER |\
1347 FEATURE_UNSTRUCTUREDDATA |\
1348 FEATURE_MULTIPLEFRAMES1 |\
1349 FEATURE_MULTIPLEZONES1 |\
1350 FEATURE_MULTIPLEFRAMES5 |\
1351 FEATURE_MULTIPLEZONES5 |\
1352 FEATURE_MULTIPLEFRAMES10 |\
1353 FEATURE_MULTIPLEZONES10 |\
1354 FEATURE_READNONOEMDATA |\
1355 FEATURE_DATALOADERS |\
1356 FEATURE_DATALOADERS_EXCEPTONE |\
1357 FEATURE_LOADONDEMAND |\
1358 FEATURE_MULTIPLEWORKERTHREADS |\
1359 FEATURE_ISOSURFACEGROUPS |\
1360 FEATURE_SLICEGROUPS |\
1361 FEATURE_STREAMTRACEGROUPS |\
1362 FEATURE_FEPOLYHEDRON |\
1363 FEATURE_FEPOLYGON)
1365 #define VALID_FEATURE_INHIBIT_FLAG(feature) (((feature) & KnownFeaturesToInhibit) != 0)
1366 #define VALID_FEATURE_INHIBIT_MASK(mask) (((mask) & ~KnownFeaturesToInhibit)==0)
1370 /* The following are used by the OEM libs, so they need
1371 to be outside of TECPLOTKERNEL */
1372 typedef unsigned long FeatureFlag_t;
1373 typedef unsigned long FeatureMask_t;
1375 /* ENDREMOVEFROMADDON */
1377 typedef char SymbolChar_t[3];
1380 * Face node offset used for identifying which node of a polytope face is
1381 * desired.
1383 typedef LgIndex_t FaceNodeOffset_t;
1386 * Element face offset used for identifying which face of a polytope element is
1387 * desired.
1389 typedef LgIndex_t ElemFaceOffset_t;
1392 * Face boundary item offset used for identifying which boundary item of a
1393 * polytope face is desired.
1395 typedef LgIndex_t FaceBndryItemOffset_t;
1397 /****************************************************************
1399 * ENUMERATED TYPEDEFS *
1401 ****************************************************************/
1403 typedef enum
1405 PlacementPlaneOrientation_X,
1406 PlacementPlaneOrientation_Y,
1407 PlacementPlaneOrientation_Z,
1408 END_PlacementPlaneOrientation_e,
1409 PlacementPlaneOrientation_Invalid = BadEnumValue
1410 } PlacementPlaneOrientation_e;
1412 typedef enum
1414 StringMode_ASCII,
1415 StringMode_UTF8,
1416 StringMode_Blend,
1417 END_StringMode_e,
1418 StringMode_Invalid = BadEnumValue
1420 } StringMode_e;
1422 typedef enum
1424 SidebarSizing_MaxOfAll,
1425 SidebarSizing_Dynamic,
1426 END_SidebarSizing_e,
1427 SidebarSizing_Invalid = BadEnumValue
1429 } SidebarSizing_e;
1431 typedef enum
1433 SidebarLocation_Left,
1434 SidebarLocation_Right, /* Not allowed at this time */
1435 SidebarLocation_Top, /* Not allowed at this time */
1436 SidebarLocation_Bottom, /* Not allowed at this time */
1437 END_SidebarLocation_e,
1438 SidebarLocation_Invalid = BadEnumValue
1440 } SidebarLocation_e;
1442 typedef enum
1444 MenuItem_Option,
1445 MenuItem_Toggle,
1446 MenuItem_Separator,
1447 MenuItem_SubMenu,
1448 END_MenuItem_e,
1449 MenuItem_Invalid = BadEnumValue
1450 } MenuItem_e;
1452 typedef enum
1454 StandardMenu_File,
1455 StandardMenu_Edit,
1456 StandardMenu_View,
1457 StandardMenu_Plot,
1458 StandardMenu_Insert,
1459 StandardMenu_Data,
1460 StandardMenu_Frame,
1461 StandardMenu_Workspace, /* deprecated: use Options instead */
1462 StandardMenu_Tools,
1463 StandardMenu_Help,
1464 StandardMenu_Animate,
1465 StandardMenu_Options,
1466 StandardMenu_Scripting,
1467 END_StandardMenu_e,
1468 StandardMenu_Invalid = BadEnumValue
1469 } StandardMenu_e;
1471 typedef enum
1473 FieldProbeDialogPage_NodalValues,
1474 FieldProbeDialogPage_CellCenteredValues,
1475 FieldProbeDialogPage_ZoneCellInfo,
1476 FieldProbeDialogPage_FaceNeighbors,
1477 END_FieldProbeDialogPage_e,
1478 FieldProbeDialogPage_Invalid = BadEnumValue
1479 } FieldProbeDialogPage_e;
1481 /* BEGINREMOVEFROMADDON */
1483 /* used for caches of boolean type */
1484 typedef enum
1486 BooleanCache_False, /* Value is cached and is FALSE */
1487 BooleanCache_True, /* Value is cached and is TRUE */
1488 BooleanCache_Uncached, /* Value is not cached. Value is unknown. */
1489 END_BooleanCache_e,
1490 BooleanCache_Invalid = BadEnumValue
1491 } BooleanCache_e;
1494 * For determining pick location along a line
1496 typedef enum
1498 LinePickLocation_None,
1499 LinePickLocation_StartHandle,
1500 LinePickLocation_MidLineOnHandle,
1501 LinePickLocation_MidLineOffHandles,
1502 LinePickLocation_EndHandle,
1503 END_LinePickLocation_e,
1504 LinePickLocation_Invalid = BadEnumValue
1505 } LinePickLocation_e;
1509 * Defines destination for setting up views: hardware (ie, OpenGL) or
1510 * software (ie, internal transformation matrices).
1512 typedef enum
1514 ViewDest_Hardware,
1515 ViewDest_Software,
1516 END_ViewDest_e,
1517 ViewDest_Invalid = BadEnumValue
1518 } ViewDest_e;
1520 /* used for identifying the origin of the dataset reader */
1521 typedef enum
1523 DataSetReaderOrigin_Native, /* created by Tecplot */
1524 DataSetReaderOrigin_Foreign, /* created by an add-on */
1525 END_DataSetReaderOrigin_e,
1526 DataSetReaderOrigin_Invalid = BadEnumValue
1527 } DataSetReaderOrigin_e;
1529 /* used for identifying the origin of the extended curve fit */
1530 typedef enum
1532 ExtendedCurveFitOrigin_Native, /* created by Tecplot */
1533 ExtendedCurveFitOrigin_Foreign, /* created by an add-on */
1534 END_ExtendedCurveFitOrigin_e,
1535 ExtendedCurveFitOrigin_Invalid = BadEnumValue
1536 } ExtendedCurveFitOrigin_e;
1538 typedef enum
1540 CollapsedStatus_NotCollapsed,
1541 CollapsedStatus_CollapsedToPoint,
1542 CollapsedStatus_CollapsedToLine,
1543 CollapsedStatus_CollapsedToSegmentedLine,
1544 CollapsedStatus_CollapsedToTriangle,
1545 END_CollapsedStatus_e,
1546 CollapsedStatus_Invalid = BadEnumValue
1547 } CollapsedStatus_e;
1548 /* ENDREMOVEFROMADDON */
1552 typedef enum
1554 UndoStateCategory_Frame,
1555 UndoStateCategory_Picked, /* picked changes, not the pick itself */
1556 UndoStateCategory_Text,
1557 UndoStateCategory_Geom,
1558 UndoStateCategory_View,
1559 UndoStateCategory_WorkspaceView,
1560 UndoStateCategory_Style, /* style less text and geometries */
1561 UndoStateCategory_SpecificStyle, /* meaning that specific undo style will be added by the caller */
1562 UndoStateCategory_Data,
1563 UndoStateCategory_DataAndStyle,
1564 UndoStateCategory_StyleIncTextGeom, /* style including text and geometires */
1565 UndoStateCategory_GlobalStyle, /* style less field, map, text and geometries */
1566 UndoStateCategory_PageAction,
1567 END_UndoStateCategory_e,
1568 UndoStateCategory_Invalid = BadEnumValue
1569 } UndoStateCategory_e;
1573 * Used only for Action_PropagateLinking
1575 typedef enum
1577 LinkType_WithinFrame,
1578 LinkType_BetweenFrames,
1579 END_LinkType_e,
1580 LinkType_Invalid = BadEnumValue
1581 } LinkType_e;
1583 typedef enum
1585 FrameCollection_All,
1586 FrameCollection_Picked,
1587 END_FrameCollection_e,
1588 FrameCollection_Invalid = BadEnumValue
1589 } FrameCollection_e;
1593 typedef enum
1595 LegendProcess_DrawLegend,
1596 LegendProcess_EraseLegend,
1597 LegendProcess_GetExtents,
1598 END_LegendProcess_e,
1599 LegendProcess_Invalid = BadEnumValue
1600 } LegendProcess_e;
1603 typedef enum
1605 RGBLegendOrientation_RGB,
1606 RGBLegendOrientation_GBR,
1607 RGBLegendOrientation_BRG,
1608 RGBLegendOrientation_RBG,
1609 RGBLegendOrientation_GRB,
1610 RGBLegendOrientation_BGR,
1611 END_RGBLegendOrientation_e,
1612 RGBLegendOrientation_Invalid = BadEnumValue
1613 } RGBLegendOrientation_e;
1617 /* BEGINREMOVEFROMADDON */
1618 /* Used by some of the image exporters/animators */
1619 typedef struct
1621 Byte_t R;
1622 Byte_t G;
1623 Byte_t B;
1624 } RGBTriple_s;
1626 typedef RGBTriple_s RGBPalette_t[256];
1628 /* ENDREMOVEFROMADDON */
1630 /* BEGINREMOVEFROMADDON */
1631 /* The tag on the following line is so that the Windows
1632 build script can parse all of the current state changes
1633 out of this file, and compare them to the state changes
1634 found in the main.c template file.
1635 Do not change or delete the line below.*/
1636 /*StateChange_e_BeginDef*/
1637 /* ENDREMOVEFROMADDON */
1639 typedef enum
1641 StateChange_VarsAltered,
1642 StateChange_VarsAdded,
1643 StateChange_ZonesDeleted,
1644 StateChange_ZonesAdded,
1645 StateChange_NodeMapsAltered,
1646 StateChange_FrameDeleted,
1647 StateChange_NewTopFrame, /* deprecated: use NewActiveFrame and/or FrameOrderChange */
1648 StateChange_Style,
1649 StateChange_DataSetReset,
1650 StateChange_NewLayout,
1651 StateChange_CompleteReset, /* deprecated: no longer broadcast */
1652 StateChange_LineMapAssignment, /* was StateChange_XYMapAssignment */
1653 StateChange_ContourLevels,
1654 StateChange_ModalDialogLaunch,
1655 StateChange_ModalDialogDismiss,
1656 StateChange_QuitTecplot,
1657 StateChange_ZoneName,
1658 StateChange_VarName,
1659 StateChange_LineMapName, /* was StateChange_XYMapName */
1660 StateChange_LineMapAddDeleteOrReorder, /* was StateChange_XYMapAddDeleteOrReorder */
1661 StateChange_View,
1662 StateChange_ColorMap,
1663 StateChange_ContourVar,
1664 StateChange_Streamtrace,
1665 StateChange_NewAxisVariables,
1666 StateChange_MouseModeUpdate,
1667 StateChange_PickListCleared,
1668 StateChange_PickListGroupSelect,
1669 StateChange_PickListSingleSelect,
1670 StateChange_PickListStyle,
1671 StateChange_DataSetFileName,
1672 StateChange_UnsuspendInterface, /* was StateChange_DrawGraphicsOn */
1673 StateChange_SuspendInterface, /* was StateChange_DrawGraphicsOff */
1674 StateChange_DataSetLockOn,
1675 StateChange_DataSetLockOff,
1676 StateChange_Text,
1677 StateChange_Geom,
1678 StateChange_DataSetTitle,
1679 StateChange_DrawingInterrupted,
1680 StateChange_PrintPreviewLaunch,
1681 StateChange_PrintPreviewDismiss,
1682 StateChange_AuxDataAdded,
1683 StateChange_AuxDataDeleted,
1684 StateChange_AuxDataAltered,
1685 StateChange_VarsDeleted,
1686 StateChange_TecplotIsInitialized,
1687 StateChange_ImageExported,
1688 StateChange_VariableLockOn,
1689 StateChange_VariableLockOff,
1690 StateChange_PageDeleted,
1691 StateChange_NewTopPage,
1692 StateChange_NewActiveFrame,
1693 StateChange_FrameOrderChanged,
1694 END_StateChange_e,
1695 StateChange_Invalid = BadEnumValue,
1696 /* deprecated values */
1697 StateChange_DrawGraphicsOn = StateChange_UnsuspendInterface,
1698 StateChange_DrawGraphicsOff = StateChange_SuspendInterface,
1699 StateChange_XYMapAssignment = StateChange_LineMapAssignment,
1700 StateChange_XYMapName = StateChange_LineMapName,
1701 StateChange_XYMapAddDeleteOrReorder = StateChange_LineMapAddDeleteOrReorder
1702 } StateChange_e;
1704 typedef enum
1706 StateChangeMode_v75,
1707 StateChangeMode_v80,
1708 StateChangeMode_v100,
1709 StateChangeMode_v113,
1710 END_StateChangeMode_e,
1711 StateChangeMode_Invalid = BadEnumValue
1712 } StateChangeMode_e;
1714 typedef enum
1716 StateChangeCallbackAPI_Classic,
1717 StateChangeCallbackAPI_ChangeOnly,
1718 StateChangeCallbackAPI_ChangePlusClient,
1719 END_StateChangeCallbackAPI_e,
1720 StateChangeCallbackAPI_Invalid = BadEnumValue
1721 } StateChangeCallbackAPI_e;
1723 typedef enum
1725 AppMode_Normal,
1726 AppMode_Demo,
1727 AppMode_OEM,
1728 END_AppMode_e,
1729 AppMode_Invalid = BadEnumValue
1730 } AppMode_e;
1732 typedef enum
1734 ProductFlavor_TecplotFocus,
1735 ProductFlavor_Tecplot360,
1736 ProductFlavor_TecplotRS,
1737 ProductFlavor_TecplotSDK,
1738 END_ProductFlavor_e,
1739 ProductFlavor_Invalid = BadEnumValue,
1740 ProductFlavor_Focus = ProductFlavor_TecplotFocus, /* deprecated */
1741 ProductFlavor_360 = ProductFlavor_Tecplot360, /* deprecated */
1742 ProductFlavor_RS = ProductFlavor_TecplotRS, /* deprecated */
1743 ProductFlavor_SDK = ProductFlavor_TecplotSDK /* deprecated */
1744 } ProductFlavor_e;
1746 typedef enum
1748 LayoutPackageObject_Image,
1749 LayoutPackageObject_Layout,
1750 LayoutPackageObject_Data,
1751 END_LayoutPackageObject_e,
1752 LayoutPackageObject_Invalid = BadEnumValue
1753 } LayoutPackageObject_e;
1755 typedef enum
1757 VarLoadMode_ByName,
1758 VarLoadMode_ByPosition,
1759 END_VarLoadMode_e,
1760 VarLoadMode_Invalid = BadEnumValue
1761 } VarLoadMode_e;
1763 typedef enum
1765 ImageSelection_OnePerFrame,
1766 ImageSelection_WorkspaceOnly,
1767 END_ImageSelection_e,
1768 ImageSelection_Invalid = BadEnumValue
1769 } ImageSelection_e;
1771 typedef enum
1773 LibraryType_Foreign,
1774 LibraryType_V7Standard,
1775 LibraryType_V7ActiveX,
1776 END_LibraryType_e,
1777 LibraryType_Invalid = BadEnumValue
1778 } LibraryType_e; /* <help> "Add-on types" */
1781 typedef enum
1783 AssignOp_Equals,
1784 AssignOp_PlusEquals,
1785 AssignOp_MinusEquals,
1786 AssignOp_TimesEquals,
1787 AssignOp_DivideEquals,
1788 AssignOp_ConvertFromCm,
1789 AssignOp_ConvertFromIn,
1790 AssignOp_ConvertFromPt,
1791 AssignOp_ConvertFromPix,
1792 END_AssignOp_e,
1793 AssignOp_Invalid = BadEnumValue
1794 } AssignOp_e;
1796 typedef enum
1798 Dialog_ColorMap,
1799 Dialog_Equation,
1800 Dialog_MacroViewer,
1801 Dialog_ZoneMapStyle, /* was Dialog_PlotAttributes*/
1802 Dialog_QuickEdit,
1803 Dialog_QuickMacroPanel,
1804 Dialog_ValueBlanking,
1805 Dialog_Probe, /* used for dialog positioning only */
1806 Dialog_ProbeAt,
1807 Dialog_NewLayout,
1808 Dialog_OpenLayout,
1809 Dialog_Save,
1810 Dialog_SaveAs,
1811 Dialog_LoadData,
1812 Dialog_WriteData,
1813 Dialog_Print,
1814 Dialog_Import,
1815 Dialog_Export,
1816 Dialog_MacroPlay,
1817 Dialog_MacroRecord,
1818 Dialog_AxisEdit,
1819 Dialog_SpatialVars,
1820 Dialog_Reset3DAxes,
1821 Dialog_ThreeDAxisLimits,
1822 Dialog_ThreeDOrientationAxis,
1823 Dialog_Streamtraces,
1824 Dialog_IsoSurfaces,
1825 Dialog_Slices,
1826 Dialog_Contour,
1827 Dialog_VectorLength,
1828 Dialog_VectorVars,
1829 Dialog_VectorArrowheads,
1830 Dialog_VectorReferenceVector,
1831 Dialog_ScatterSizeAndFont,
1832 Dialog_ScatterLegend,
1833 Dialog_ScatterReferenceSymbol,
1834 Dialog_RGBColorVarsAndRange,
1835 Dialog_RGBColorLegend,
1836 Dialog_LineMapLegend,
1837 Dialog_IJKBlanking,
1838 Dialog_DepthBlanking,
1839 Dialog_LightSource,
1840 Dialog_Advanced3DControl,
1841 Dialog_TwoDDrawOrder,
1842 Dialog_PolarDrawingOptions,
1843 Dialog_DataLabels,
1844 Dialog_StyleLinking,
1845 Dialog_Smooth,
1846 Dialog_TransformCoordinates,
1847 Dialog_Rotate2DData,
1848 Dialog_Create1DLine,
1849 Dialog_CreateRectangularZone,
1850 Dialog_CreateCircularZone,
1851 Dialog_DuplicateZone,
1852 Dialog_MirrorZone,
1853 Dialog_CreateZoneFromPolylines,
1854 Dialog_CreateZoneFromValues,
1855 Dialog_DeleteVariables,
1856 Dialog_DeleteZones,
1857 Dialog_ExtractContourLines,
1858 Dialog_ExtractFEBoundary,
1859 Dialog_ExtractIsoSurfaces,
1860 Dialog_ExtractSlices,
1861 Dialog_ExtractSliceFromPlane,
1862 Dialog_ExtractStreamtraces,
1863 Dialog_ExtractSubZone,
1864 Dialog_ExtractDiscretePoints,
1865 Dialog_ExtractPointsFromPolyline,
1866 Dialog_ExtractPointsFromGeometry,
1867 Dialog_LinearInterpolation,
1868 Dialog_InverseDistanceInterpolation,
1869 Dialog_KrigingInterpolation,
1870 Dialog_Triangulate,
1871 Dialog_DataInfo,
1872 Dialog_CurveInfo,
1873 Dialog_DataSpreadsheet,
1874 Dialog_PaperSetup,
1875 Dialog_OrderFrames,
1876 Dialog_RulerGrid,
1877 Dialog_ThreeDViewRotate,
1878 Dialog_ThreeDViewDetails,
1879 Dialog_TranslateMagnify,
1880 Dialog_PrintPreview,
1881 Dialog_ColorPreferences,
1882 Dialog_MiscPreferences,
1883 Dialog_SizePreferences,
1884 Dialog_SaveConfiguration,
1885 Dialog_SaveColorMap,
1886 Dialog_LoadColorMap,
1887 Dialog_HelpAboutTecplot,
1888 Dialog_HelpAboutAddOns,
1889 Dialog_Publish,
1890 Dialog_EditFrame,
1891 Dialog_CopyToClipboard,
1892 Dialog_ThreeDEdge,
1893 Dialog_TimeDetails,
1894 Dialog_Performance,
1895 END_Dialog_e,
1896 Dialog_Invalid = BadEnumValue,
1897 /* deprecated values */
1898 Dialog_PlotAttributes = Dialog_ZoneMapStyle
1899 } Dialog_e; /* <help> "Tecplot dialog types" */
1901 typedef enum
1903 AnchorAlignment_TopLeft,
1904 AnchorAlignment_TopCenter,
1905 AnchorAlignment_TopRight,
1906 AnchorAlignment_MiddleLeft,
1907 AnchorAlignment_MiddleCenter,
1908 AnchorAlignment_MiddleRight,
1909 AnchorAlignment_BottomLeft,
1910 AnchorAlignment_BottomCenter,
1911 AnchorAlignment_BottomRight,
1912 END_AnchorAlignment_e,
1913 AnchorAlignment_Invalid = BadEnumValue
1914 } AnchorAlignment_e;
1916 /* BEGINREMOVEFROMADDON */
1917 typedef enum
1919 PositionAtAnchor_Never,
1920 PositionAtAnchor_Once,
1921 PositionAtAnchor_Always,
1922 END_PositionAtAnchor_e,
1923 PositionAtAnchor_Invalid = BadEnumValue
1924 } PositionAtAnchor_e;
1925 /* ENDREMOVEFROMADDON */
1927 /* BEGINREMOVEFROMADDON */
1928 typedef struct
1930 AnchorAlignment_e AnchorAlignment;
1931 Boolean_t AnchorHorizontalInside;
1932 Boolean_t AnchorVerticalInside;
1933 SmInteger_t MinVisibilityPercentage;
1934 LgIndex_t IOffset;
1935 LgIndex_t JOffset;
1936 PositionAtAnchor_e PositionAtAnchor;
1937 Boolean_t HasBeenPositioned; /* not persistent */
1938 } DialogPosition_s;
1939 /* ENDREMOVEFROMADDON */
1942 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
1944 * @deprecated
1945 * Please use \ref CurveInfoMode_e instead.
1947 typedef enum
1949 ProcessXYMode_NotUsed1, /* deprecated: do not use */
1950 ProcessXYMode_NotUsed2, /* deprecated: do not use */
1951 ProcessXYMode_NotUsed3, /* deprecated: do not use */
1952 ProcessXYMode_NotUsed4, /* deprecated: do not use */
1953 ProcessXYMode_NotUsed5, /* deprecated: do not use */
1954 ProcessXYMode_NotUsed6, /* deprecated: do not use */
1955 ProcessXYMode_NotUsed7, /* deprecated: do not use */
1956 ProcessXYMode_NotUsed8, /* deprecated: do not use */
1957 ProcessXYMode_NotUsed9, /* deprecated: do not use */
1958 ProcessXYMode_WriteCurveCoef, /* deprecated: use CurveInfoMode_Coefficients */
1959 ProcessXYMode_WriteCurvePoints, /* deprecated: use CurveInfoMode_RawData */
1960 END_ProcessXYMode_e,
1961 ProcessXYMode_Invalid = BadEnumValue
1962 } ProcessXYMode_e;
1963 #endif
1965 typedef enum
1967 CurveInfoMode_Coefficients, /* ProcessXYMode_WriteCurveCoef */
1968 CurveInfoMode_RawData, /* ProcessXYMode_WriteCurvePoints */
1969 CurveInfoMode_Macro, /* ProcessXYMode_WriteCurveCoefMacro */
1970 END_CurveInfoMode_e,
1971 CurveInfoMode_Invalid = BadEnumValue
1972 } CurveInfoMode_e;
1974 /* BEGINREMOVEFROMADDON */
1975 typedef enum
1977 ProcessLineMapMode_Draw,
1978 ProcessLineMapMode_GetXYMinMax,
1979 ProcessLineMapMode_GetDataMinMax,
1980 ProcessLineMapMode_GetSinglePick,
1981 ProcessLineMapMode_CheckOnlyForGroupPick,
1982 ProcessLineMapMode_GetGroupPick,
1983 ProcessLineMapMode_GetFirstValidDataPoint,
1984 ProcessLineMapMode_GetNearestPoint,
1985 ProcessLineMapMode_GetDependentValue,
1986 ProcessLineMapMode_GetRSquaredGoodness,
1987 ProcessLineMapMode_DisplayCurveCoef,
1988 ProcessLineMapMode_WriteCurveCoef,
1989 ProcessLineMapMode_WriteCurvePoints,
1990 ProcessLineMapMode_InsertLabels,
1991 ProcessLineMapMode_GetIndependentValue,
1992 ProcessLineMapMode_WriteCurveCoefMacro,
1993 END_ProcessLineMapMode_e,
1994 ProcessLineMapMode_Invalid = BadEnumValue
1995 } ProcessLineMapMode_e;
1996 /* ENDREMOVEFROMADDON */
1998 typedef enum
2000 StyleBase_Factory,
2001 StyleBase_Config,
2002 END_StyleBase_e,
2003 StyleBase_Invalid = BadEnumValue
2004 } StyleBase_e;
2007 typedef enum
2009 ReadDataOption_NewData,
2010 ReadDataOption_AppendData,
2011 ReadDataOption_ReplaceData,
2012 END_ReadDataOption_e,
2013 ReadDataOption_Invalid = BadEnumValue
2014 } ReadDataOption_e;
2016 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
2018 * @deprecated
2019 * Please use \ref LabelType_e instead.
2021 typedef enum
2023 NodeLabel_Index, /* deprecated: use LabelType_Index */
2024 NodeLabel_VarValue, /* deprecated: use LabelType_VarValue */
2025 NodeLabel_XAndYVarValue, /* deprecated: use LabelType_XAndYVarValue */
2026 END_NodeLabel_e,
2027 NodeLabel_Invalid = BadEnumValue
2028 } NodeLabel_e;
2029 #endif
2031 typedef enum
2033 LabelType_Index, /* NodeLabel_Index */
2034 LabelType_VarValue, /* NodeLabel_VarValue */
2035 LabelType_XAndYVarValue, /* NodeLabel_XAndYVarValue */
2036 END_LabelType_e,
2037 LabelType_Invalid = BadEnumValue
2038 } LabelType_e;
2041 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
2043 * @deprecated
2044 * Please use \ref BorderAction_e instead.
2046 typedef enum
2048 SubBoundaryEditOption_All, /* deprecated: use BorderAction_AddAll */
2049 SubBoundaryEditOption_Add, /* deprecated: use BorderAction_Add */
2050 SubBoundaryEditOption_Remove, /* deprecated: use BorderAction_Remove */
2051 SubBoundaryEditOption_AddOnly, /* deprecated: use BorderAction_AddOnly */
2052 END_SubBoundaryEditOption_e,
2053 SubBoundaryEditOption_Invalid = BadEnumValue
2054 } SubBoundaryEditOption_e;
2055 #endif
2057 typedef enum
2059 BorderAction_AddAll, /* SubBoundaryEditOption_All */
2060 BorderAction_Add, /* SubBoundaryEditOption_Add */
2061 BorderAction_Remove, /* SubBoundaryEditOption_Remove */
2062 BorderAction_AddOnly, /* SubBoundaryEditOption_AddOnly */
2063 END_BorderAction_e,
2064 BorderAction_Invalid = BadEnumValue
2065 } BorderAction_e;
2068 typedef enum
2070 PointerStyle_NotUsed1,
2071 PointerStyle_NotUsed2,
2072 PointerStyle_NotUsed3,
2073 PointerStyle_AllDirections,
2074 PointerStyle_NotUsed4,
2075 PointerStyle_NotUsed5,
2076 PointerStyle_NotUsed6,
2077 PointerStyle_UpperLeftBracket,
2078 PointerStyle_UpperRightBracket,
2079 PointerStyle_LeftBracket,
2080 PointerStyle_LowerLeftBracket,
2081 PointerStyle_LowerRightBracket,
2082 PointerStyle_RightBracket,
2083 PointerStyle_BottomBracket,
2084 PointerStyle_TopBracket,
2085 PointerStyle_UpDown,
2086 PointerStyle_LeftRight,
2087 END_PointerStyle_e,
2088 PointerStyle_Invalid = BadEnumValue
2089 } PointerStyle_e;
2091 typedef enum
2093 CursorStyle_Undefined,
2094 CursorStyle_StandardArrow,
2095 CursorStyle_AdjusterArrow,
2096 CursorStyle_AllDirections,
2097 CursorStyle_Rotate,
2098 CursorStyle_Zoom,
2099 CursorStyle_Locate,
2100 CursorStyle_UpperLeftBracket,
2101 CursorStyle_UpperRightBracket,
2102 CursorStyle_LeftBracket,
2103 CursorStyle_LowerLeftBracket,
2104 CursorStyle_LowerRightBracket,
2105 CursorStyle_RightBracket,
2106 CursorStyle_BottomBracket,
2107 CursorStyle_TopBracket,
2108 CursorStyle_UpDown,
2109 CursorStyle_LeftRight,
2110 CursorStyle_Waiting,
2111 END_CursorStyle_e,
2112 CursorStyle_Invalid = BadEnumValue
2113 } CursorStyle_e;
2116 typedef enum
2118 PickSubPosition_All,
2119 PickSubPosition_Top,
2120 PickSubPosition_Bottom,
2121 PickSubPosition_Left,
2122 PickSubPosition_Right,
2123 PickSubPosition_TopLeft,
2124 PickSubPosition_TopRight,
2125 PickSubPosition_BottomLeft,
2126 PickSubPosition_BottomRight,
2127 PickSubPosition_BottomAndTop,
2128 PickSubPosition_LeftAndRight,
2129 END_PickSubPosition_e,
2130 PickSubPosition_Invalid = BadEnumValue
2131 } PickSubPosition_e;
2133 typedef enum
2135 TecEngInitReturnCode_Ok,
2136 TecEngInitReturnCode_LicenseIsInvalid,
2137 TecEngInitReturnCode_LicenseExpired,
2138 TecEngInitReturnCode_InternalInitializationError,
2139 END_TecEngInitReturnCode_e,
2140 TecEngInitReturnCode_Invalid = BadEnumValue
2141 } TecEngInitReturnCode_e;
2143 typedef enum
2145 GetValueReturnCode_Ok,
2146 GetValueReturnCode_ResultTypeError,
2147 GetValueReturnCode_SyntaxError,
2148 GetValueReturnCode_ContextError,
2149 GetValueReturnCode_DeprecatedError,
2150 END_GetValueReturnCode_e,
2151 GetValueReturnCode_Invalid = BadEnumValue,
2152 /* deprecated values */
2153 GetValue_Ok = GetValueReturnCode_Ok, /* deprecated */
2154 GetValue_ResultTypeError = GetValueReturnCode_ResultTypeError, /* deprecated */
2155 GetValue_SyntaxError = GetValueReturnCode_SyntaxError, /* deprecated */
2156 GetValue_ContextError = GetValueReturnCode_ContextError, /* deprecated */
2157 GetValue_DeprecatedError = GetValueReturnCode_DeprecatedError, /* deprecated */
2158 GetValue_Invalid = GetValueReturnCode_Invalid /* deprecated */
2159 } GetValueReturnCode_e;
2161 typedef enum
2163 SetValueReturnCode_Ok,
2164 SetValueReturnCode_DuplicateValue,
2165 SetValueReturnCode_InvalidCommandOption,
2166 SetValueReturnCode_NoAttachedDatasetError,
2167 SetValueReturnCode_NoAttachedFrameError,
2168 SetValueReturnCode_NotAllowedInConfigError,
2169 SetValueReturnCode_ValueRangeError,
2170 SetValueReturnCode_ValueSyntaxError,
2171 SetValueReturnCode_AssignOpError,
2172 SetValueReturnCode_InvalidVarOrZone,
2173 SetValueReturnCode_InternalMemoryError,
2174 SetValueReturnCode_ContextError1,
2175 SetValueReturnCode_ContextError2,
2176 SetValueReturnCode_OnlyAllowedInConfigError,
2177 SetValueReturnCode_FeatureNotAvailable,
2178 END_SetValueReturnCode_e,
2179 /* BEGINREMOVEFROMADDON */
2180 /* For now this value is only used in Tecplot code.
2181 * the value is here as an option for the future. */
2182 SetValueReturnCode_Ignored = SetValueReturnCode_DuplicateValue,
2183 /* ENDREMOVEFROMADDON */
2184 SetValueReturnCode_Invalid = BadEnumValue,
2185 /* deprecated values */
2186 SetValue_Ok = SetValueReturnCode_Ok, /* deprecated */
2187 SetValue_DuplicateValue = SetValueReturnCode_DuplicateValue, /* deprecated */
2188 SetValue_InvalidCommandOption = SetValueReturnCode_InvalidCommandOption, /* deprecated */
2189 SetValue_NoAttachedDatasetError = SetValueReturnCode_NoAttachedDatasetError, /* deprecated */
2190 SetValue_NoAttachedFrameError = SetValueReturnCode_NoAttachedFrameError, /* deprecated */
2191 SetValue_NotAllowedInConfigError = SetValueReturnCode_NotAllowedInConfigError, /* deprecated */
2192 SetValue_ValueRangeError = SetValueReturnCode_ValueRangeError, /* deprecated */
2193 SetValue_ValueSyntaxError = SetValueReturnCode_ValueSyntaxError, /* deprecated */
2194 SetValue_AssignOpError = SetValueReturnCode_AssignOpError, /* deprecated */
2195 SetValue_InvalidVarOrZone = SetValueReturnCode_InvalidVarOrZone, /* deprecated */
2196 SetValue_InternalMemoryError = SetValueReturnCode_InternalMemoryError, /* deprecated */
2197 SetValue_ContextError1 = SetValueReturnCode_ContextError1, /* deprecated */
2198 SetValue_ContextError2 = SetValueReturnCode_ContextError2, /* deprecated */
2199 SetValue_OnlyAllowedInConfigError = SetValueReturnCode_OnlyAllowedInConfigError, /* deprecated */
2200 SetValue_FeatureNotAvailable = SetValueReturnCode_FeatureNotAvailable, /* deprecated */
2201 /* BEGINREMOVEFROMADDON */
2202 SetValue_Ignored = SetValueReturnCode_Ignored, /* deprecated */
2203 /* ENDREMOVEFROMADDON */
2204 SetValue_Invalid = SetValueReturnCode_Invalid /* deprecated */
2205 } SetValueReturnCode_e;
2208 typedef enum
2210 ObjectAlign_LeftJustify,
2211 ObjectAlign_RightJustify,
2212 ObjectAlign_Center,
2213 ObjectAlign_Top,
2214 ObjectAlign_Bottom,
2215 END_ObjectAlign_e,
2216 ObjectAlign_Invalid = BadEnumValue
2217 } ObjectAlign_e;
2221 * For 3D axis labels only.
2223 typedef enum
2225 LabelAlignment_ByAngle,
2226 LabelAlignment_AlongAxis,
2227 LabelAlignment_PerpendicularToAxis,
2228 END_LabelAlignment_e,
2229 LabelAlignment_Invalid = BadEnumValue
2230 } LabelAlignment_e; /* <help> Label alignment for 3D axis labels only" */
2233 * View_SetMagnification added 02/24/03 so all plot types
2234 * can behave the same way "do a 'centered' magnifacation change".
2235 * Line plots will still accept View_Scale option and zoom towards
2236 * the corner so old macros/addons still work.
2238 typedef enum
2240 View_Fit,
2241 View_DataFit,
2242 View_AxisFit,
2243 View_Scale, /* deprecated, Use SetMagnification */
2244 View_Center,
2245 View_Translate,
2246 View_Zoom,
2247 View_Last,
2248 View_Copy,
2249 View_Paste,
2250 View_Push, /* End of V9 enums */
2251 View_SetMagnification,
2252 View_NiceFit,
2253 View_AxisNiceFit,
2254 View_MakeCurrentViewNice,
2255 View_AxisMakeCurrentValuesNice,
2256 View_AxisResetToEntireCircle,
2257 View_FitSurfaces,
2258 END_View_e,
2259 View_Invalid = BadEnumValue
2260 } View_e;
2264 typedef enum
2266 WorkspaceView_FitSelectedFrames,
2267 WorkspaceView_FitAllFrames,
2268 WorkspaceView_FitPaper,
2269 WorkspaceView_Maximize,
2270 WorkspaceView_LastView,
2271 WorkspaceView_Zoom,
2272 WorkspaceView_Translate,
2273 WorkspaceView_UnMaximize,
2274 END_WorkspaceView_e,
2275 WorkspaceView_Invalid = BadEnumValue
2276 } WorkspaceView_e;
2279 typedef enum
2281 ArrowheadStyle_Plain,
2282 ArrowheadStyle_Filled,
2283 ArrowheadStyle_Hollow,
2284 END_ArrowheadStyle_e,
2285 ArrowheadStyle_Invalid = BadEnumValue,
2286 /* deprecated values */
2287 Arrowhead_Plain = ArrowheadStyle_Plain, /* deprecated */
2288 Arrowhead_Filled = ArrowheadStyle_Filled, /* deprecated */
2289 Arrowhead_Hollow = ArrowheadStyle_Hollow, /* deprecated */
2290 Arrowhead_Invalid = ArrowheadStyle_Invalid /* deprecated */
2291 } ArrowheadStyle_e;
2294 typedef enum
2296 ArrowheadAttachment_None,
2297 ArrowheadAttachment_AtBeginning,
2298 ArrowheadAttachment_AtEnd,
2299 ArrowheadAttachment_AtBothEnds,
2300 END_ArrowheadAttachment_e,
2301 ArrowheadAttachment_Invalid = BadEnumValue,
2302 /* deprecated values */
2303 ArrowheadAttach_None = ArrowheadAttachment_None, /* deprecated */
2304 ArrowheadAttach_AtBeginning = ArrowheadAttachment_AtBeginning, /* deprecated */
2305 ArrowheadAttach_AtEnd = ArrowheadAttachment_AtEnd, /* deprecated */
2306 ArrowheadAttach_AtBothEnds = ArrowheadAttachment_AtBothEnds, /* deprecated */
2307 ArrowheadAttach_Invalid = ArrowheadAttachment_Invalid /* deprecated */
2308 } ArrowheadAttachment_e;
2310 typedef enum
2312 Clipping_ClipToViewport,
2313 Clipping_ClipToFrame,
2314 END_Clipping_e,
2315 Clipping_Invalid = BadEnumValue
2316 } Clipping_e;
2318 typedef enum
2320 StatusInfo_Hover,
2321 StatusInfo_Identify,
2322 StatusInfo_Instruction,
2323 StatusInfo_Working,
2324 StatusInfo_PercentDone,
2325 END_StatusInfo_e,
2326 StatusInfo_Invalid = BadEnumValue
2327 } StatusInfo_e;
2330 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
2332 * @deprecated
2333 * Please use \ref PlotType_e instead.
2335 typedef enum
2337 FrameMode_Empty, /* deprecated: use PlotType_Automatic */
2338 FrameMode_ThreeD, /* deprecated: use PlotType_Cartesian3D */
2339 FrameMode_TwoD, /* deprecated: use PlotType_Cartesian2D */
2340 FrameMode_XY, /* deprecated: use PlotType_XYLine */
2341 FrameMode_Sketch, /* deprecated: use PlotType_Sketch */
2342 END_FrameMode_e,
2343 FrameMode_Invalid = BadEnumValue,
2344 /* deprecated values */
2345 Frame_Empty = FrameMode_Empty, /* deprecated */
2346 Frame_ThreeD = FrameMode_ThreeD, /* deprecated */
2347 Frame_TwoD = FrameMode_TwoD, /* deprecated */
2348 Frame_XY = FrameMode_XY, /* deprecated */
2349 Frame_Sketch = FrameMode_Sketch, /* deprecated */
2350 Frame_Invalid = FrameMode_Invalid /* deprecated */
2351 } FrameMode_e;
2352 #endif
2355 typedef enum
2357 PlotType_Automatic, /* Frame_Empty */
2358 PlotType_Cartesian3D, /* Frame_ThreeD */
2359 PlotType_Cartesian2D, /* Frame_TwoD */
2360 PlotType_XYLine, /* Frame_XY */
2361 PlotType_Sketch, /* Frame_Sketch */
2362 PlotType_PolarLine,
2363 END_PlotType_e,
2364 PlotType_Invalid = BadEnumValue
2365 } PlotType_e;
2368 #define VALID_PLOTTYPE(PlotType) ( VALID_ENUM((PlotType), PlotType_e) && \
2369 ((PlotType) != PlotType_Automatic) )
2370 #define VALID_LINEPLOT_PLOTTYPE(PlotType) ( (PlotType) == PlotType_XYLine || \
2371 (PlotType) == PlotType_PolarLine )
2372 #define VALID_FIELDPLOT_PLOTTYPE(PlotType) ( (PlotType) == PlotType_Cartesian2D || \
2373 (PlotType) == PlotType_Cartesian3D )
2374 #define PLOTTYPE_USES_FIELDZONES(PlotType) VALID_FIELDPLOT_PLOTTYPE((PlotType))
2375 #define PLOTTYPE_USES_LINEMAPS(PlotType) VALID_LINEPLOT_PLOTTYPE((PlotType))
2376 #define VALID_V9_PLOTTYPE(PlotType) ( (PlotType) == PlotType_Sketch || \
2377 (PlotType) == PlotType_XYLine || \
2378 (PlotType) == PlotType_Cartesian2D || \
2379 (PlotType) == PlotType_Cartesian3D )
2382 typedef enum
2384 ContLineCreateMode_OneZonePerContourLevel,
2385 ContLineCreateMode_OneZonePerIndependentPolyline,
2386 END_ContLineCreateMode_e,
2387 ContLineCreateMode_Invalid = BadEnumValue
2388 } ContLineCreateMode_e;
2391 typedef enum
2393 PickObjects_None,
2394 PickObjects_Frame,
2395 PickObjects_Axis,
2396 PickObjects_ThreeDOrientationAxis,
2397 PickObjects_Geom,
2398 PickObjects_Text,
2399 PickObjects_ContourLegend,
2400 PickObjects_ContourLabel,
2401 PickObjects_ScatterLegend,
2402 PickObjects_LineLegend,
2403 PickObjects_ReferenceVector,
2404 PickObjects_ReferenceScatterSymbol,
2405 PickObjects_StreamtracePosition,
2406 PickObjects_StreamtraceTermLine,
2407 PickObjects_Paper,
2408 PickObjects_Zone,
2409 PickObjects_XYMapping, /* deprecated: use PickObject_LineMapping */
2410 PickObjects_StreamtraceCOB,
2411 PickObjects_SliceCOB,
2412 PickObjects_IsoSurfaceCOB,
2413 PickObjects_RGBLegend,
2414 PickObjects_LineMapping,
2415 END_PickObjects_e,
2416 PickObjects_Invalid = BadEnumValue,
2417 /* deprecated values */
2418 PickObject_None = PickObjects_None, /* deprecated */
2419 PickObject_Frame = PickObjects_Frame, /* deprecated */
2420 PickObject_Axis = PickObjects_Axis, /* deprecated */
2421 PickObject_3DOrientationAxis = PickObjects_ThreeDOrientationAxis, /* deprecated */
2422 PickObject_Geom = PickObjects_Geom, /* deprecated */
2423 PickObject_Text = PickObjects_Text, /* deprecated */
2424 PickObject_ContourLegend = PickObjects_ContourLegend, /* deprecated */
2425 PickObject_ContourLabel = PickObjects_ContourLabel, /* deprecated */
2426 PickObject_ScatterLegend = PickObjects_ScatterLegend, /* deprecated */
2427 PickObject_LineLegend = PickObjects_LineLegend, /* deprecated */
2428 PickObject_XYLegend = PickObjects_LineLegend, /* deprecated */
2429 PickObject_ReferenceVector = PickObjects_ReferenceVector, /* deprecated */
2430 PickObject_ReferenceScatterSymbol = PickObjects_ReferenceScatterSymbol, /* deprecated */
2431 PickObject_StreamtracePosition = PickObjects_StreamtracePosition, /* deprecated */
2432 PickObject_StreamtraceTermLine = PickObjects_StreamtraceTermLine, /* deprecated */
2433 PickObject_Paper = PickObjects_Paper, /* deprecated */
2434 PickObject_Zone = PickObjects_Zone, /* deprecated */
2435 PickObject_XYMapping = PickObjects_XYMapping, /* deprecated */
2436 PickObject_StreamtraceCOB = PickObjects_StreamtraceCOB, /* deprecated */
2437 PickObject_SliceCOB = PickObjects_SliceCOB, /* deprecated */
2438 PickObject_IsoSurfaceCOB = PickObjects_IsoSurfaceCOB, /* deprecated */
2439 PickObject_RGBLegend = PickObjects_RGBLegend, /* deprecated */
2440 PickObject_LineMapping = PickObjects_LineMapping, /* deprecated */
2441 PickObject_Invalid = PickObjects_Invalid /* deprecated */
2442 } PickObjects_e;
2445 /* BEGINREMOVEFROMADDON */
2446 typedef enum
2448 SingleEditState_NotEditing,
2449 SingleEditState_ActivelyEditing,
2450 SingleEditState_WasEditing,
2451 END_SingleEditState_e,
2452 EditingInvalid = BadEnumValue
2453 } SingleEditState_e;
2456 typedef enum
2458 AxisSubObject_GridArea,
2459 AxisSubObject_AxisLine,
2460 AxisSubObject_Title,
2461 END_AxisSubObject_e,
2462 AxisSubObject_Invalid = BadEnumValue
2463 } AxisSubObject_e;
2465 typedef enum
2467 AxisSubPosition_GridMinBorder,
2468 AxisSubPosition_GridMaxBorder,
2469 AxisSubPosition_MainAxisLine,
2470 AxisSubPosition_BackAxisLine,
2471 AxisSubPosition_PerpAxisLine,
2472 AxisSubPosition_PerpBackAxisLine,
2473 END_AxisSubPosition_e,
2474 AxisSubPosition_Invalid = BadEnumValue,
2475 AxisSubPosition_2DStart = AxisSubPosition_GridMinBorder,
2476 AxisSubPosition_2DEnd = AxisSubPosition_MainAxisLine,
2477 AxisSubPosition_PolarStart = AxisSubPosition_GridMinBorder,
2478 AxisSubPosition_PolarEnd = AxisSubPosition_PerpBackAxisLine
2479 } AxisSubPosition_e;
2480 /* ENDREMOVEFROMADDON */
2483 * NOTE: The _NoOp value is not at the top so this
2484 * enumeration aligns with the old AltMouseButtonMode_e
2485 * enumeration.
2487 typedef enum
2489 MouseButtonClick_Redraw,
2490 MouseButtonClick_RevertToSelect,
2491 MouseButtonClick_NoOp,
2492 END_MouseButtonClick_e,
2493 MouseButtonClick_Invalid = BadEnumValue
2494 } MouseButtonClick_e;
2497 typedef enum
2499 MouseButtonDrag_NoOp,
2500 MouseButtonDrag_ZoomPaper,
2501 MouseButtonDrag_TranslatePaper,
2502 MouseButtonDrag_ZoomData,
2503 MouseButtonDrag_TranslateData,
2504 MouseButtonDrag_RlrBallRtatData,
2505 MouseButtonDrag_SpherRtatData,
2506 MouseButtonDrag_XRotateData,
2507 MouseButtonDrag_YRotateData,
2508 MouseButtonDrag_ZRotateData,
2509 MouseButtonDrag_TwistRotateData,
2510 MouseButtonDrag_ZoomViewer,
2511 MouseButtonDrag_TranslateViewer,
2512 MouseButtonDrag_RlrBallRtatVwr,
2513 MouseButtonDrag_SpherRotateVwr,
2514 MouseButtonDrag_XRotateViewer,
2515 MouseButtonDrag_YRotateViewer,
2516 MouseButtonDrag_ZRotateViewer,
2517 MouseButtonDrag_TwistRotateViewer,
2518 END_MouseButtonDrag_e,
2519 MouseButtonDrag_Invalid = BadEnumValue
2520 } MouseButtonDrag_e;
2523 /* BEGINREMOVEFROMADDON */
2524 typedef struct
2526 MouseButtonClick_e ButtonClick;
2527 MouseButtonDrag_e SimpleDrag;
2528 MouseButtonDrag_e ControlledDrag;
2529 MouseButtonDrag_e AltedDrag;
2530 MouseButtonDrag_e ShiftedDrag;
2531 MouseButtonDrag_e ControlAltedDrag;
2532 MouseButtonDrag_e ControlShiftedDrag;
2533 MouseButtonDrag_e AltShiftedDrag;
2534 MouseButtonDrag_e ControlAltShiftedDrag;
2535 } MouseButtonAction_s;
2538 typedef struct
2540 MouseButtonAction_s MiddleButton;
2541 MouseButtonAction_s RightButton;
2542 } MouseActions_s;
2543 /* ENDREMOVEFROMADDON */
2546 typedef enum /* deprecated */
2548 AltMouseButtonMode_Regen,
2549 AltMouseButtonMode_RevertToSelect,
2550 END_AltMouseButtonMode_e,
2551 AltMouseButtonMode_Invalid = BadEnumValue
2552 } AltMouseButtonMode_e;
2555 typedef enum
2557 MouseButtonMode_NoMode,
2558 MouseButtonMode_Select,
2559 MouseButtonMode_Adjust,
2560 MouseButtonMode_Zoom,
2561 MouseButtonMode_Translate,
2562 MouseButtonMode_Probe,
2563 MouseButtonMode_Text,
2564 MouseButtonMode_GeomPolyline,
2565 MouseButtonMode_GeomSquare,
2566 MouseButtonMode_GeomCircle,
2567 MouseButtonMode_GeomRectangle,
2568 MouseButtonMode_GeomEllipse,
2569 MouseButtonMode_GeomSpline,
2570 MouseButtonMode_CreateFrame,
2571 MouseButtonMode_RotateSpherical,
2572 MouseButtonMode_RotateRollerBall,
2573 MouseButtonMode_RotateTwist,
2574 MouseButtonMode_RotateXAxis,
2575 MouseButtonMode_RotateYAxis,
2576 MouseButtonMode_RotateZAxis,
2577 MouseButtonMode_ContourLabel,
2578 MouseButtonMode_ContourAdd,
2579 MouseButtonMode_ContourDelete,
2580 MouseButtonMode_StreamPoints,
2581 MouseButtonMode_StreamEndLine,
2582 MouseButtonMode_ExtractPoints,
2583 MouseButtonMode_ExtractLine,
2584 MouseButtonMode_CreateRectangularZone,
2585 MouseButtonMode_CreateCircularZone,
2586 MouseButtonMode_Slice,
2587 MouseButtonMode_LightSource,
2588 MouseButtonMode_User1,
2589 MouseButtonMode_User2,
2590 MouseButtonMode_User3,
2591 MouseButtonMode_User4,
2592 END_MouseButtonMode_e,
2593 MouseButtonMode_Invalid = BadEnumValue,
2594 /* deprecated values */
2595 Mouse_NoMode = MouseButtonMode_NoMode, /* deprecated */
2596 Mouse_Select = MouseButtonMode_Select, /* deprecated */
2597 Mouse_Adjust = MouseButtonMode_Adjust, /* deprecated */
2598 Mouse_Zoom = MouseButtonMode_Zoom, /* deprecated */
2599 Mouse_Translate = MouseButtonMode_Translate, /* deprecated */
2600 Mouse_Probe = MouseButtonMode_Probe, /* deprecated */
2601 Mouse_Text = MouseButtonMode_Text, /* deprecated */
2602 Mouse_GeomPolyline = MouseButtonMode_GeomPolyline, /* deprecated */
2603 Mouse_GeomSquare = MouseButtonMode_GeomSquare, /* deprecated */
2604 Mouse_GeomCircle = MouseButtonMode_GeomCircle, /* deprecated */
2605 Mouse_GeomRectangle = MouseButtonMode_GeomRectangle, /* deprecated */
2606 Mouse_GeomEllipse = MouseButtonMode_GeomEllipse, /* deprecated */
2607 Mouse_GeomSpline = MouseButtonMode_GeomSpline, /* deprecated */
2608 Mouse_CreateFrame = MouseButtonMode_CreateFrame, /* deprecated */
2609 Mouse_RotateSpherical = MouseButtonMode_RotateSpherical, /* deprecated */
2610 Mouse_RotateRollerBall = MouseButtonMode_RotateRollerBall, /* deprecated */
2611 Mouse_RotateTwist = MouseButtonMode_RotateTwist, /* deprecated */
2612 Mouse_RotateXAxis = MouseButtonMode_RotateXAxis, /* deprecated */
2613 Mouse_RotateYAxis = MouseButtonMode_RotateYAxis, /* deprecated */
2614 Mouse_RotateZAxis = MouseButtonMode_RotateZAxis, /* deprecated */
2615 Mouse_ContourLabel = MouseButtonMode_ContourLabel, /* deprecated */
2616 Mouse_ContourAdd = MouseButtonMode_ContourAdd, /* deprecated */
2617 Mouse_ContourDelete = MouseButtonMode_ContourDelete, /* deprecated */
2618 Mouse_StreamPoints = MouseButtonMode_StreamPoints, /* deprecated */
2619 Mouse_StreamEndLine = MouseButtonMode_StreamEndLine, /* deprecated */
2620 Mouse_ExtractPoints = MouseButtonMode_ExtractPoints, /* deprecated */
2621 Mouse_ExtractLine = MouseButtonMode_ExtractLine, /* deprecated */
2622 Mouse_CreateRectangularZone = MouseButtonMode_CreateRectangularZone, /* deprecated */
2623 Mouse_CreateCircularZone = MouseButtonMode_CreateCircularZone, /* deprecated */
2624 Mouse_Slice = MouseButtonMode_Slice, /* deprecated */
2625 Mouse_User1 = MouseButtonMode_User1, /* deprecated */
2626 Mouse_User2 = MouseButtonMode_User2, /* deprecated */
2627 Mouse_User3 = MouseButtonMode_User3, /* deprecated */
2628 Mouse_User4 = MouseButtonMode_User4, /* deprecated */
2629 Mouse_Invalid = MouseButtonMode_Invalid /* deprecated */
2630 } MouseButtonMode_e;
2633 typedef enum
2635 DetailsButtonState_QuickEdit,
2636 DetailsButtonState_ObjectDetails,
2637 DetailsButtonState_ToolDetails,
2638 END_DetailsButtonState_e,
2639 DetailsButtonState_Invalid = BadEnumValue
2640 } DetailsButtonState_e;
2643 typedef enum
2645 Event_ButtonPress,
2646 Event_ButtonRelease,
2647 Event_ButtonDoublePress,
2648 Event_Motion,
2649 Event_Drag,
2650 Event_KeyPress,
2651 END_Event_e,
2652 Event_Invalid = BadEnumValue
2653 } Event_e;
2656 typedef enum
2658 ObjectDrawMode_DrawFirst,
2659 ObjectDrawMode_Move,
2660 ObjectDrawMode_Remove,
2661 ObjectDrawMode_Place,
2662 END_ObjectDrawMode_e,
2663 ObjectDrawMode_Invalid = BadEnumValue
2664 } ObjectDrawMode_e;
2667 typedef enum
2669 ThreeDViewChangeDrawLevel_Full,
2670 ThreeDViewChangeDrawLevel_Trace,
2671 END_ThreeDViewChangeDrawLevel_e,
2672 ThreeDViewChangeDrawLevel_Invalid = BadEnumValue
2673 } ThreeDViewChangeDrawLevel_e; /* <help> "ThreeDViewChangeDrawLevel is deprecated. Use PlotApproximateMode.\n"*/
2675 typedef enum
2677 NonCurrentFrameRedrawLevel_Full,
2678 NonCurrentFrameRedrawLevel_Trace,
2679 END_NonCurrentFrameRedrawLevel_e,
2680 NonCurrentFrameRedrawLevel_Invalid = BadEnumValue
2681 } NonCurrentFrameRedrawLevel_e; /* <help> "NonCurrentFrameRedrawLevel is deprecated. Use PlotApproximateMode.\n"*/
2685 * Enumerates the redraw reasons and is passed as an argument to registered
2686 * draw event callbacks.
2688 * - RedrawReason_UserReqRedrawActiveFrame:\n
2689 * The full draw event is in response to the "redraw" action function.
2691 * - RedrawReason_UserReqTraceActiveFrame:\n
2692 * The approximate draw event is in response to the "redraw" action function.
2694 * - RedrawReason_UserReqRedrawAllFrames:\n
2695 * The full draw event is in response to the "redraw all" action function.
2697 * - RedrawReason_UserReqTraceAllFrames:\n
2698 * The approximate draw event is in response to the "redraw all" action function.
2700 * - RedrawReason_InteractiveDataViewChange:\n
2701 * The draw event is in response to an interactive data view change such as
2702 * rotate, translate, zoom, etc.
2704 * - RedrawReason_InteractivePaperViewChange:\n
2705 * The draw event is in response to an interactive paper translate view or
2706 * paper zoom view change.
2708 * - RedrawReason_InteractiveStyleChange:\n
2709 * The draw event is in response to an interactive style changes such as
2710 * dragging a contour level or a slice.
2712 * - RedrawReason_Animation:\n
2713 * The draw event is in response to an animation.
2715 * - RedrawReason_AutoRedraw:\n
2716 * The draw event is in response to an auto redraw.
2718 * - RedrawReason_RedrawForcedViewUpdate:\n
2719 * The draw event is in response to forced view update when auto redraw is
2720 * off such as a view fit or movement of the frame.
2722 * - RedrawReason_RedrawForcedStyleUpdate:\n
2723 * The draw event is in response to forced view update when auto redraw is
2724 * off such as deleting a contour level.
2726 * - RedrawReason_PreFullRedrawTraceOfAllFrames:\n
2727 * The draw event is an approximate redraw done prior to a full redraw.
2729 * @sa TecUtilEventAddPreDrawCallback(), TecUtilEventAddPostDrawCallback()
2731 typedef enum
2733 RedrawReason_UserReqRedrawActiveFrame,
2734 RedrawReason_UserReqTraceActiveFrame,
2735 RedrawReason_UserReqRedrawAllFrames,
2736 RedrawReason_UserReqTraceAllFrames,
2737 RedrawReason_InteractiveDataViewChange,
2738 RedrawReason_InteractivePaperViewChange,
2739 RedrawReason_InteractiveStyleChange,
2740 RedrawReason_Animation,
2741 RedrawReason_AutoRedraw,
2742 RedrawReason_RedrawForcedViewUpdate,
2743 RedrawReason_RedrawForcedStyleUpdate,
2744 RedrawReason_PreFullRedrawTraceOfAllFrames,
2745 END_RedrawReason_e,
2746 RedrawReason_Invalid = BadEnumValue,
2747 RedrawReason_UserReqRedrawCurrentFrame = RedrawReason_UserReqRedrawActiveFrame,
2748 RedrawReason_UserReqTraceCurrentFrame = RedrawReason_UserReqTraceActiveFrame
2749 } RedrawReason_e;
2751 typedef enum
2753 RotationMode_XYZAxis,
2754 RotationMode_Spherical,
2755 RotationMode_RollerBall,
2756 END_RotationMode_e,
2757 RotationMode_Invalid = BadEnumValue
2758 } RotationMode_e;
2760 typedef enum
2762 RotateAxis_X,
2763 RotateAxis_Y,
2764 RotateAxis_Z,
2765 RotateAxis_Psi,
2766 RotateAxis_Theta,
2767 RotateAxis_Alpha,
2768 RotateAxis_Twist,
2769 RotateAxis_VertRollerBall,
2770 RotateAxis_HorzRollerBall,
2771 RotateAxis_AboutVector,
2772 /* BEGINREMOVEFROMADDON */
2773 RotateAxis_DontCare, /* internal use only */
2774 /* ENDREMOVEFROMADDON */
2775 END_RotateAxis_e,
2776 RotateAxis_Invalid = BadEnumValue
2777 } RotateAxis_e;
2779 typedef enum
2781 RotateOriginLocation_DefinedOrigin,
2782 RotateOriginLocation_Viewer,
2783 END_RotateOriginLocation_e,
2784 RotateOriginLocation_Invalid = BadEnumValue
2785 } RotateOriginLocation_e;
2788 * NOTE: This is only used with the $!Reset3DOrigin command.
2790 typedef enum
2792 OriginResetLocation_DataCenter,
2793 OriginResetLocation_ViewCenter,
2794 END_OriginResetLocation_e,
2795 OriginResetLocation_Invalid = BadEnumValue
2796 } OriginResetLocation_e;
2799 * NOTE: This is only used with the $!CreateSliceZoneFromPlane command.
2801 typedef enum
2803 SliceSource_SurfaceZones,
2804 SliceSource_VolumeZones,
2805 SliceSource_SurfacesOfVolumeZones,
2806 SliceSource_LinearZones,
2807 END_SliceSource_e,
2808 SliceSource_Invalid = BadEnumValue
2809 } SliceSource_e;
2815 typedef enum
2817 Input_SmInteger,
2818 Input_Short,
2819 Input_Integer,
2820 Input_Float,
2821 Input_Double,
2822 Input_Radians,
2823 Input_TimeDateDouble,
2824 Input_ElapsedTimeDouble,
2825 END_Input_e,
2826 Input_Invalid = BadEnumValue
2827 } Input_e;
2831 typedef enum
2833 PtSelection_All,
2834 PtSelection_NearestN,
2835 PtSelection_OctantN,
2836 END_PtSelection_e,
2837 PtSelection_Invalid = BadEnumValue
2838 } PtSelection_e;
2842 typedef enum
2844 Drift_None,
2845 Drift_Linear,
2846 Drift_Quad,
2847 END_Drift_e,
2848 Drift_Invalid = BadEnumValue
2849 } Drift_e;
2853 /* atpoint is simple boundary condition.
2854 atpointb2 is better boundary condition.
2856 typedef enum
2858 DerivPos_atpoint,
2859 DerivPos_atpointb2,
2860 DerivPos_kphalf,
2861 DerivPos_jphalf,
2862 DerivPos_iphalf,
2863 END_DerivPos_e,
2864 DerivPos_Invalid = BadEnumValue
2865 } DerivPos_e; /*<help>"atpoint is the simple boundary condition\n"*/
2866 /*<help>"atpointb2 is a better boundary condition"*/
2869 typedef enum
2871 LinearInterpMode_DontChange,
2872 LinearInterpMode_SetToConst,
2873 END_LinearInterpMode_e,
2874 LinearInterpMode_Invalid = BadEnumValue
2875 } LinearInterpMode_e;
2877 typedef enum
2879 VolumeCellInterpolationMode_PiecewiseLinear,
2880 VolumeCellInterpolationMode_TriLinear,
2881 END_VolumeCellInterpolationMode_e,
2882 VolumeCellInterpolationMode_Invalid = BadEnumValue
2883 } VolumeCellInterpolationMode_e;
2885 typedef enum
2887 PolyCellInterpolationMode_UseCCValue,
2888 PolyCellInterpolationMode_AverageNodes,
2889 END_PolyCellInterpolationMode_e,
2890 PolyCellInterpolationMode_Invalid = BadEnumValue
2891 } PolyCellInterpolationMode_e;
2893 typedef enum
2895 ConstraintOp2Mode_UseVar,
2896 ConstraintOp2Mode_UseConstant,
2897 END_ConstraintOp2Mode_e,
2898 ConstraintOp2Mode_Invalid = BadEnumValue
2899 } ConstraintOp2Mode_e;
2902 * Controls how data is loaded for interactive probe events.
2903 * DataProbeVarLoadMode_IncrementallyLoadAll will load as much data as possible within
2904 * load-on-demand time/space thresholds. DataProbeVarLoadMode_LoadRequiredVarsOnly will
2905 * load only the data necessary to complete the probe request.
2906 * DataProbeVarLoadMode_IncrementallyLoadAll is the default.
2908 typedef enum
2910 DataProbeVarLoadMode_IncrementallyLoadAll,
2911 DataProbeVarLoadMode_LoadRequiredVarsOnly,
2912 END_DataProbeVarLoadMode_e,
2913 DataProbeVarLoadMode_Invalid = BadEnumValue
2914 } DataProbeVarLoadMode_e;
2916 typedef enum
2918 ValueBlankCellMode_AllCorners,
2919 ValueBlankCellMode_AnyCorner,
2920 ValueBlankCellMode_PrimaryValue,
2921 END_ValueBlankCellMode_e,
2922 ValueBlankCellMode_Invalid = BadEnumValue,
2923 /* deprecated values */
2924 ValueBlankCellMode_PrimaryCorner = ValueBlankCellMode_PrimaryValue
2925 } ValueBlankCellMode_e;
2929 * deprecated: ValueBlankMode_e enumeration will not be supported after
2930 * version 8. This API was retained for add-on developers
2931 * using the TecUtilStyleSetLowLevel API.
2933 typedef enum
2935 ValueBlankMode_AndRule,
2936 ValueBlankMode_OrRule,
2937 ValueBlankMode_CornerRule,
2938 END_ValueBlankMode_e,
2939 ValueBlankMode_Invalid = BadEnumValue
2940 } ValueBlankMode_e; /*<help>"DEPRECATED: ValueBlankMode_e will not be supported after version 8"*/
2943 typedef enum
2945 CellBlankedCond_NotBlanked,
2946 CellBlankedCond_PartiallyBlanked,
2947 CellBlankedCond_EntirelyBlanked,
2948 CellBlankedCond_Uncertain,
2949 END_CellBlankedCond_e,
2950 CellBlankedCond_Invalid = BadEnumValue
2951 } CellBlankedCond_e;
2954 typedef enum
2956 RelOp_LessThanOrEqual,
2957 RelOp_GreaterThanOrEqual,
2958 RelOp_LessThan,
2959 RelOp_GreaterThan,
2960 RelOp_EqualTo,
2961 RelOp_NotEqualTo,
2962 END_RelOp_e,
2963 RelOp_Invalid = BadEnumValue
2964 } RelOp_e;
2968 typedef enum
2970 IJKBlankMode_BlankInterior,
2971 IJKBlankMode_BlankExterior,
2972 END_IJKBlankMode_e,
2973 IJKBlankMode_Invalid = BadEnumValue
2974 } IJKBlankMode_e;
2977 typedef enum
2979 PlotApproximationMode_Automatic,
2980 PlotApproximationMode_NonCurrentAlwaysApproximated,
2981 PlotApproximationMode_AllFramesAlwaysApproximated,
2982 END_PlotApproximationMode_e,
2983 PlotApproximationMode_Invalid = BadEnumValue
2984 } PlotApproximationMode_e;
2986 typedef enum
2988 SphereScatterRenderQuality_Low,
2989 SphereScatterRenderQuality_Medium,
2990 SphereScatterRenderQuality_High,
2991 END_SphereScatterRenderQuality_e,
2992 SphereScatterRenderQuality_Invalid = BadEnumValue
2993 } SphereScatterRenderQuality_e;
2996 * NOTE: FillPat_e is deprecated. It must be retained to maintain
2997 * backward compatibility with the TecUtil layer however.
2998 * This has been replaced by Translucency_e.
3000 typedef enum
3002 Pattern_Solid,
3003 Pattern_LowTranslucent,
3004 Pattern_MedTranslucent,
3005 Pattern_HighTranslucent,
3006 END_FillPat_e,
3007 Pattern_Invalid = BadEnumValue
3008 } FillPat_e; /*<help>"DEPRECATED: Replaced by Translucency_e"*/
3011 typedef enum
3013 Translucency_Solid,
3014 Translucency_Low,
3015 Translucency_Medium,
3016 Translucency_High,
3017 END_Translucency_e,
3018 Translucency_Invalid = BadEnumValue
3019 } Translucency_e;
3023 typedef enum
3025 SunRaster_OldFormat,
3026 SunRaster_Standard,
3027 SunRaster_ByteEncoded,
3028 END_SunRaster_e,
3029 SunRaster_Invalid = BadEnumValue
3030 } SunRaster_e;
3033 typedef enum
3035 BoundaryCondition_Fixed,
3036 BoundaryCondition_ZeroGradient,
3037 BoundaryCondition_Zero2nd,
3038 END_BoundaryCondition_e,
3039 BoundaryCondition_Invalid = BadEnumValue
3040 } BoundaryCondition_e;
3044 /* Note:
3045 * In 2D: AxisMode_Independent and AxisMode_XYDependent are used;
3046 * in 3D: AxisMode_Independent, AxisMode_XYZDependent, and AxisMode_XYDependent are used.
3048 typedef enum
3050 AxisMode_Independent,
3051 AxisMode_XYZDependent,
3052 AxisMode_XYDependent,
3053 END_AxisMode_e,
3054 AxisMode_Invalid = BadEnumValue
3055 } AxisMode_e;/*<help>"In 2D AxisMode_Independent and AxisMode_XYDependent are used\n"*/
3056 /*<help>"In 3D AxisMode_Independent, "*/
3057 /*<help>"AxisMode_XYZDependent, and AxisMode_XYDependent are used."*/
3059 typedef enum
3061 Quick_LineColor,
3062 Quick_FillColor,
3063 Quick_TextColor,
3064 END_QuickColorMode_e,
3065 Quick_Invalid = BadEnumValue
3066 } QuickColorMode_e;
3069 typedef enum
3071 FillMode_None,
3072 FillMode_UseSpecificColor,
3073 FillMode_UseLineColor,
3074 FillMode_UseBackgroundColor,
3075 END_FillMode_e,
3076 FillMode_Invalid = BadEnumValue
3077 } FillMode_e;
3080 typedef enum
3082 LinePattern_Solid,
3083 LinePattern_Dashed,
3084 LinePattern_DashDot,
3085 LinePattern_Dotted,
3086 LinePattern_LongDash,
3087 LinePattern_DashDotDot,
3088 END_LinePattern_e,
3089 LinePattern_Invalid = BadEnumValue
3090 } LinePattern_e;
3094 typedef enum
3096 Join_Miter,
3097 Join_Round,
3098 Join_Bevel,
3099 END_LineJoin_e,
3100 Join_Invalid = BadEnumValue
3101 } LineJoin_e;
3105 typedef enum
3107 Cap_Flat,
3108 Cap_Round,
3109 Cap_Square,
3110 END_LineCap_e,
3111 Cap_Invalid = BadEnumValue
3112 } LineCap_e;
3116 typedef enum
3118 GeomForm_LineSegs,
3119 GeomForm_Rectangle,
3120 GeomForm_Square,
3121 GeomForm_Circle,
3122 GeomForm_Ellipse,
3123 GeomForm_LineSegs3D, /* deprecated: use GeomForm_LineSegs with CoordSys_Grid3D */
3124 GeomForm_Image,
3125 END_GeomForm_e,
3126 GeomForm_Invalid = BadEnumValue,
3127 /* new value names */
3128 GeomType_LineSegs = GeomForm_LineSegs,
3129 GeomType_Rectangle = GeomForm_Rectangle,
3130 GeomType_Square = GeomForm_Square,
3131 GeomType_Circle = GeomForm_Circle,
3132 GeomType_Ellipse = GeomForm_Ellipse,
3133 GeomType_LineSegs3D = GeomForm_LineSegs3D, /* deprecated: use GeomType_LineSegs with CoordSys_Grid3D */
3134 GeomType_Image = GeomForm_Image,
3135 END_GeomType_e = END_GeomForm_e,
3136 GeomType_Invalid = GeomForm_Invalid
3137 } GeomForm_e;
3139 typedef GeomForm_e GeomType_e;
3141 typedef enum
3143 VariableDerivationMethod_Fast,
3144 VariableDerivationMethod_Accurate,
3145 END_VariableDerivationMethod_e,
3146 VariableDerivationMethod_Invalid = BadEnumValue
3147 } VariableDerivationMethod_e;
3151 typedef enum
3153 AuxDataType_String,
3154 END_AuxDataType_e,
3155 AuxDataType_Invalid = BadEnumValue
3156 } AuxDataType_e;
3160 typedef enum
3162 AuxDataLocation_Zone,
3163 AuxDataLocation_DataSet,
3164 AuxDataLocation_Frame,
3165 AuxDataLocation_Var,
3166 AuxDataLocation_LineMap,
3167 AuxDataLocation_Page,
3168 END_AuxDataLocation_e,
3169 AuxDataLocation_Invalid = BadEnumValue
3170 } AuxDataLocation_e;
3173 /* Note: This replaces Element_e */
3174 typedef enum
3176 ZoneType_Ordered,
3177 ZoneType_FETriangle,
3178 ZoneType_FEQuad,
3179 ZoneType_FETetra,
3180 ZoneType_FEBrick,
3181 ZoneType_FELineSeg,
3182 ZoneType_FEPolygon,
3183 ZoneType_FEPolyhedron,
3184 END_ZoneType_e,
3185 ZoneType_Invalid = BadEnumValue
3186 } ZoneType_e;
3188 typedef enum
3190 ZoneOrder_I,
3191 ZoneOrder_J,
3192 ZoneOrder_K,
3193 ZoneOrder_IJ,
3194 ZoneOrder_IK,
3195 ZoneOrder_JK,
3196 ZoneOrder_IJK,
3197 END_ZoneOrder_e,
3198 ZoneOrder_Invalid = BadEnumValue
3199 } ZoneOrder_e;
3201 /* deprecated: replaced by ZoneType_e DataPacking_e */
3202 typedef enum
3204 DataFormat_IJKBlock,
3205 DataFormat_IJKPoint,
3206 DataFormat_FEBlock,
3207 DataFormat_FEPoint,
3208 END_DataFormat_e,
3209 DataFormat_Invalid = BadEnumValue
3210 } DataFormat_e;
3212 typedef enum
3214 DataPacking_Block,
3215 DataPacking_Point,
3216 END_DataPacking_e,
3217 DataPacking_Invalid = BadEnumValue
3218 } DataPacking_e;
3222 typedef enum
3224 PD_HPGL,
3225 PD_HPGL2,
3226 PD_PS,
3227 PD_LASERG, /* deprecated */
3228 PD_EPS,
3229 PD_WINDOWS, /* Windows Print Driver */
3230 PD_WMF, /* Windows MetaFile (used from Export only) */
3231 PD_X3D,
3232 END_PrinterDriver_e,
3233 PD_Invalid = BadEnumValue
3234 } PrinterDriver_e;
3238 typedef enum
3240 Image_None,
3241 Image_TIFF,
3242 Image_EPSI2,
3243 Image_FRAME,
3244 END_EPSPreviewImage_e,
3245 Image_Invalid = BadEnumValue
3246 } EPSPreviewImage_e;
3248 typedef enum
3250 TIFFByteOrder_Intel,
3251 TIFFByteOrder_Motorola,
3252 END_TIFFByteOrder_e,
3253 TIFFByteOrder_Invalid = BadEnumValue
3254 } TIFFByteOrder_e;
3256 typedef enum
3258 JPEGEncoding_Standard,
3259 JPEGEncoding_Progressive,
3260 END_JPEGEncoding_e,
3261 JPEGEncoding_Invalid = BadEnumValue
3262 } JPEGEncoding_e;
3265 typedef enum
3267 FlashImageType_Lossless,
3268 FlashImageType_JPEG,
3269 FlashImageType_Color256,
3270 END_FlashImageType_e,
3271 FlashImageType_Invalid = BadEnumValue,
3272 /* deprecated values */
3273 FlashImageType_256Color = FlashImageType_Color256
3274 } FlashImageType_e;
3276 typedef enum
3278 FlashCompressionType_BestSpeed,
3279 FlashCompressionType_SmallestSize,
3280 END_FlashCompressionType_e,
3281 FlashCompressionType_Invalid = BadEnumValue
3282 } FlashCompressionType_e;
3285 typedef enum
3287 ExportFormat_RasterMetafile,
3288 ExportFormat_TIFF,
3289 ExportFormat_SGI,
3290 ExportFormat_SunRaster,
3291 ExportFormat_XWindows,
3292 ExportFormat_PSImage, /* deprecated */
3293 ExportFormat_HPGL,
3294 ExportFormat_HPGL2,
3295 ExportFormat_PS,
3296 ExportFormat_EPS,
3297 ExportFormat_LaserGraphics, /* deprecated */
3298 ExportFormat_WindowsMetafile,
3299 ExportFormat_BMP,
3300 ExportFormat_PNG,
3301 ExportFormat_AVI,
3302 ExportFormat_Custom, /* May be used in a future version */
3303 ExportFormat_JPEG,
3304 ExportFormat_Flash,
3305 ExportFormat_X3D,
3306 ExportFormat_TecplotViewer,
3307 END_ExportFormat_e,
3308 ExportFormat_Invalid = BadEnumValue
3309 } ExportFormat_e;
3311 typedef enum
3313 AVICompression_ColorPreserving,
3314 AVICompression_LinePreserving,
3315 AVICompression_LosslessUncompressed,
3316 END_AVICompression_e,
3317 AVICompression_Invalid = BadEnumValue
3318 } AVICompression_e;
3320 typedef enum
3322 AnimationDest_Screen,
3323 AnimationDest_AVI,
3324 AnimationDest_RM,
3325 AnimationDest_Flash,
3326 END_AnimationDest_e,
3327 AnimationDest_Invalid = BadEnumValue
3328 } AnimationDest_e;
3332 typedef enum
3334 AnimationOperation_Forward,
3335 AnimationOperation_Backward,
3336 AnimationOperation_Loop,
3337 AnimationOperation_Bounce,
3338 END_AnimationOperation_e,
3339 AnimationOperation_Invalid = BadEnumValue
3340 } AnimationOperation_e;
3342 typedef enum
3344 AnimationStep_First,
3345 AnimationStep_Second,
3346 AnimationStep_Current,
3347 AnimationStep_SecondToLast,
3348 AnimationStep_Last,
3349 AnimationStep_Previous,
3350 AnimationStep_Next,
3351 END_AnimationStep_e,
3352 AnimationStep_Invalid = BadEnumValue
3353 } AnimationStep_e;
3355 typedef enum
3357 ZoneAnimationMode_StepByNumber,
3358 ZoneAnimationMode_GroupStepByNumber,
3359 ZoneAnimationMode_StepByTime,
3360 END_ZoneAnimationMode_e,
3361 ZoneAnimationMode_Invalid = BadEnumValue
3362 } ZoneAnimationMode_e;
3364 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3366 * @deprecated
3367 * Please use \ref ExportRegion_e instead.
3369 typedef enum
3371 BitDumpRegion_CurrentFrame,
3372 BitDumpRegion_AllFrames,
3373 BitDumpRegion_WorkArea,
3374 END_BitDumpRegion_e,
3375 BitDumpRegion_Invalid = BadEnumValue
3376 } BitDumpRegion_e;
3377 #endif
3379 typedef enum
3381 ExportRegion_CurrentFrame,
3382 ExportRegion_AllFrames,
3383 ExportRegion_WorkArea,
3384 END_ExportRegion_e,
3385 ExportRegion_Invalid = BadEnumValue
3386 } ExportRegion_e;
3388 typedef enum
3390 Paper_Letter,
3391 Paper_Double,
3392 Paper_A4,
3393 Paper_A3,
3394 Paper_Custom1,
3395 Paper_Custom2,
3396 END_PaperSize_e,
3397 Paper_Invalid = BadEnumValue
3398 } PaperSize_e;
3402 typedef enum
3404 PaperUnitSpacing_HalfCentimeter,
3405 PaperUnitSpacing_OneCentimeter,
3406 PaperUnitSpacing_TwoCentimeters,
3407 PaperUnitSpacing_QuarterInch,
3408 PaperUnitSpacing_HalfInch,
3409 PaperUnitSpacing_OneInch,
3410 PaperUnitSpacing_TenPoints,
3411 PaperUnitSpacing_TwentyFourPoints,
3412 PaperUnitSpacing_ThirtySixPoints,
3413 PaperUnitSpacing_FiftyPoints,
3414 PaperUnitSpacing_SeventyTwoPoints,
3415 PaperUnitSpacing_OneTenthInch,
3416 PaperUnitSpacing_OneTenthCentimeter,
3417 END_PaperUnitSpacing_e,
3418 PaperUnitSpacing_Invalid = BadEnumValue
3419 } PaperUnitSpacing_e;
3422 typedef enum
3424 Palette_Monochrome,
3425 Palette_PenPlotter,
3426 Palette_Color,
3427 END_Palette_e,
3428 Palette_Invalid = BadEnumValue
3429 } Palette_e;
3432 typedef enum
3434 PrintRenderType_Vector,
3435 PrintRenderType_Image,
3436 END_PrintRenderType_e,
3437 PrintRenderType_Invalid = BadEnumValue
3438 } PrintRenderType_e;
3441 typedef enum
3443 Units_Grid,
3444 Units_Frame,
3445 Units_Point,
3446 Units_Screen,
3447 Units_AxisPercentage,
3448 END_Units_e,
3449 Units_Invalid = BadEnumValue
3450 } Units_e;
3453 typedef enum
3455 CoordScale_Linear,
3456 CoordScale_Log,
3457 END_CoordScale_e,
3458 CoordScale_Invalid = BadEnumValue,
3459 /* old names for the same values */
3460 Scale_Linear = CoordScale_Linear,
3461 Scale_Log = CoordScale_Log,
3462 Scale_Invalid = CoordScale_Invalid
3463 } CoordScale_e;
3465 /* BEGINREMOVEFROMADDON */
3466 #define GetLog10(R) ( ((R) < SMALLDOUBLE) ? SMALLESTEXPONENT : ( ((R) > LARGEDOUBLE) ? LARGESTEXPONENT : log10((R)) ) )
3467 /* ENDREMOVEFROMADDON */
3469 typedef enum
3471 CoordSys_Grid,
3472 CoordSys_Frame,
3473 CoordSys_FrameOffset,
3474 CoordSys_Paper,
3475 CoordSys_Screen,
3476 CoordSys_Hardcopy,
3477 CoordSys_Grid3D,
3478 END_CoordSys_e,
3479 CoordSys_Invalid = BadEnumValue
3480 } CoordSys_e;
3483 * NOTE: CoordSys_FrameOffset always is stored in inches internally.
3484 * in stylesheet this may be written in other units if
3485 * appropriate suffix is added.
3491 typedef enum
3493 Scope_Global,
3494 Scope_Local,
3495 END_Scope_e,
3496 Scope_Invalid = BadEnumValue
3497 } Scope_e;
3500 typedef enum
3502 TextAnchor_Left,
3503 TextAnchor_Center,
3504 TextAnchor_Right,
3505 TextAnchor_MidLeft,
3506 TextAnchor_MidCenter,
3507 TextAnchor_MidRight,
3508 TextAnchor_HeadLeft,
3509 TextAnchor_HeadCenter,
3510 TextAnchor_HeadRight,
3511 TextAnchor_OnSide,
3512 END_TextAnchor_e,
3513 TextAnchor_Invalid = BadEnumValue
3514 } TextAnchor_e;
3518 typedef enum
3520 TextBox_None,
3521 TextBox_Filled,
3522 TextBox_Hollow,
3523 END_TextBox_e,
3524 TextBox_Invalid = BadEnumValue
3525 } TextBox_e;
3529 typedef enum
3531 GeomShape_Square,
3532 GeomShape_Del,
3533 GeomShape_Grad,
3534 GeomShape_RTri,
3535 GeomShape_LTri,
3536 GeomShape_Diamond,
3537 GeomShape_Circle,
3538 GeomShape_Cube,
3539 GeomShape_Sphere,
3540 GeomShape_Octahedron,
3541 GeomShape_Point,
3542 END_GeomShape_e,
3543 GeomShape_Invalid = BadEnumValue
3544 } GeomShape_e;
3547 typedef enum
3549 BasicSize_Tiny,
3550 BasicSize_Small,
3551 BasicSize_Medium,
3552 BasicSize_Large,
3553 BasicSize_Huge,
3554 END_BasicSize_e,
3555 BasicSize_Invalid = BadEnumValue
3556 } BasicSize_e;
3561 * NOTE: LineForm_e is deprecated. It must be retained to maintain
3562 * backward compatibility with the TecUtil layer however.
3563 * This has been replaced by CurveType_e.
3565 typedef enum
3567 LineForm_LineSeg,
3568 LineForm_CurvFit,
3569 LineForm_EToRFit,
3570 LineForm_PowerFit,
3571 LineForm_Spline,
3572 LineForm_ParaSpline,
3573 END_LineForm_e,
3574 LineForm_Invalid = BadEnumValue
3575 } LineForm_e;
3578 typedef enum
3580 CurveType_LineSeg,
3581 CurveType_PolynomialFit,
3582 CurveType_EToRFit,
3583 CurveType_PowerFit,
3584 CurveType_Spline,
3585 CurveType_ParaSpline,
3586 CurveType_Extended,
3587 END_CurveType_e,
3588 CurveType_Invalid = BadEnumValue,
3589 CurveType_CurvFit = CurveType_PolynomialFit
3590 } CurveType_e;
3592 typedef enum
3594 Script_None,
3595 Script_Super,
3596 Script_Sub,
3597 END_Script_e,
3598 Script_Invalid = BadEnumValue
3599 } Script_e;
3602 typedef enum
3604 Font_Helvetica,
3605 Font_HelveticaBold,
3606 Font_Greek,
3607 Font_Math,
3608 Font_UserDefined,
3609 Font_Times,
3610 Font_TimesItalic,
3611 Font_TimesBold,
3612 Font_TimesItalicBold,
3613 Font_Courier,
3614 Font_CourierBold,
3615 END_Font_e,
3616 Font_Invalid = BadEnumValue
3617 } Font_e;
3619 typedef enum
3621 TwoDDrawOrder_ByZone,
3622 TwoDDrawOrder_ByLayer,
3623 END_TwoDDrawOrder_e,
3624 TwoDDrawOrder_Invalid = BadEnumValue
3625 } TwoDDrawOrder_e;
3627 typedef enum
3629 DrawOrder_AfterData,
3630 DrawOrder_BeforeData,
3631 END_DrawOrder_e,
3632 DrawOrder_Invalid = BadEnumValue
3633 } DrawOrder_e;
3637 * NOTE: Streamtrace_TwoDLine is new. All 2D
3638 * streamtraces are assigned this value.
3640 typedef enum
3642 Streamtrace_SurfaceLine,
3643 Streamtrace_SurfaceRibbon,
3644 Streamtrace_VolumeLine,
3645 Streamtrace_VolumeRibbon,
3646 Streamtrace_VolumeRod,
3647 Streamtrace_TwoDLine,
3648 END_Streamtrace_e,
3649 Streamtrace_Invalid = BadEnumValue
3650 } Streamtrace_e;
3654 typedef enum
3656 StreamDir_Forward,
3657 StreamDir_Reverse,
3658 StreamDir_Both,
3659 END_StreamDir_e,
3660 StreamDir_Invalid = BadEnumValue
3661 } StreamDir_e;
3663 typedef enum
3665 IsoSurfaceSelection_AllContourLevels,
3666 IsoSurfaceSelection_OneSpecificValue,
3667 IsoSurfaceSelection_TwoSpecificValues,
3668 IsoSurfaceSelection_ThreeSpecificValues,
3669 END_IsoSurfaceSelection_e,
3670 IsoSurfaceSelection_Invalid = BadEnumValue
3671 } IsoSurfaceSelection_e;
3674 typedef enum
3676 ValueLocation_CellCentered,
3677 ValueLocation_Nodal,
3678 END_ValueLocation_e,
3679 ValueLocation_Invalid = BadEnumValue
3680 } ValueLocation_e;
3682 typedef enum
3684 FieldDataType_Reserved, /* never use */
3685 FieldDataType_Float,
3686 FieldDataType_Double,
3687 FieldDataType_Int32,
3688 FieldDataType_Int16,
3689 FieldDataType_Byte,
3690 FieldDataType_Bit,
3691 END_FieldDataType_e,
3692 FieldDataType_IJKFunction, /* Not used yet */
3693 FieldDataType_Int64, /* Not used yet */
3694 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3695 FieldDataType_LongInt = FieldDataType_Int32,
3696 FieldDataType_ShortInt = FieldDataType_Int16,
3697 #endif
3698 FieldDataType_Invalid = BadEnumValue
3699 } FieldDataType_e;
3701 #define VALID_FIELD_DATA_TYPE(FieldDataType) (VALID_ENUM((FieldDataType),FieldDataType_e) && \
3702 (FieldDataType)!=FieldDataType_Reserved)
3704 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3706 * @deprecated
3707 * Please use \ref MeshType_e instead.
3709 typedef enum
3711 Mesh_Wireframe, /* deprecated: use MeshType_Wireframe */
3712 Mesh_Overlay, /* deprecated: use MeshType_Overlay */
3713 Mesh_HiddenLine, /* deprecated: use MeshType_HiddenLine */
3714 END_MeshPlotType_e,
3715 Mesh_Invalid = BadEnumValue
3716 } MeshPlotType_e;
3717 #endif
3719 typedef enum
3721 MeshType_Wireframe, /* Mesh_Wireframe */
3722 MeshType_Overlay, /* Mesh_Overlay */
3723 MeshType_HiddenLine, /* Mesh_HiddenLine */
3724 END_MeshType_e,
3725 MeshType_Invalid = BadEnumValue
3726 } MeshType_e;
3731 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3733 * @deprecated
3734 * Please use \ref ContourType_e instead.
3736 typedef enum
3738 Contour_Lines, /* deprecated: use ContourType_Lines */
3739 Contour_Flood, /* deprecated: use ContourType_Flood */
3740 Contour_Overlay, /* deprecated: use ContourType_Overlay */
3741 Contour_AverageCell, /* deprecated: use ContourType_AverageCell */
3742 Contour_CornerCell, /* deprecated: use ContourType_PrimaryValue */
3743 END_ContourPlotType_e,
3744 Contour_Invalid = BadEnumValue
3745 } ContourPlotType_e;
3746 #endif
3749 typedef enum
3751 ContourType_Lines, /* Contour_Lines */
3752 ContourType_Flood, /* Contour_Flood */
3753 ContourType_Overlay, /* Contour_Overlay */
3754 ContourType_AverageCell, /* Contour_AverageCell */
3755 ContourType_PrimaryValue, /* Contour_CornerCell */
3756 END_ContourType_e,
3757 ContourType_Invalid = BadEnumValue
3758 } ContourType_e;
3760 typedef enum
3762 ContourColoring_RGB,
3763 ContourColoring_Group1,
3764 ContourColoring_Group2,
3765 ContourColoring_Group3,
3766 ContourColoring_Group4,
3767 ContourColoring_Group5,
3768 ContourColoring_Group6,
3769 ContourColoring_Group7,
3770 ContourColoring_Group8,
3771 END_ContourColoring_e,
3772 ContourColoring_Invalid = BadEnumValue
3773 } ContourColoring_e;
3775 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3777 * @deprecated
3778 * Please use \ref VectorType_e instead.
3780 typedef enum
3782 Vector_TailAtPoint, /* deprecated: use VectorType_TailAtPoint */
3783 Vector_HeadAtPoint, /* deprecated: use VectorType_HeadAtPoint */
3784 Vector_MidAtPoint, /* deprecated: use VectorType_MidAtPoint */
3785 Vector_HeadOnly, /* deprecated: use VectorType_HeadOnly */
3786 END_VectorPlotType_e,
3787 Vector_Invalid = BadEnumValue
3788 } VectorPlotType_e;
3789 #endif
3792 typedef enum
3794 VectorType_TailAtPoint, /* Vector_TailAtPoint */
3795 VectorType_HeadAtPoint, /* Vector_HeadAtPoint */
3796 VectorType_MidAtPoint, /* Vector_MidAtPoint */
3797 VectorType_HeadOnly, /* Vector_HeadOnly */
3798 END_VectorType_e,
3799 VectorType_Invalid = BadEnumValue
3800 } VectorType_e;
3804 * NOTE: ShadePlotType_e is deprecated. It must be retained to maintain
3805 * backward compatibility with the TecUtil layer however.
3806 * This has been replaced by LightingEffect_e.
3808 typedef enum
3810 Shade_SolidColor,
3811 Shade_Paneled,
3812 Shade_Gouraud,
3813 Shade_ColoredPaneled,
3814 Shade_ColoredGouraud,
3815 END_ShadePlotType_e,
3816 Shade_Invalid = BadEnumValue
3817 } ShadePlotType_e;
3820 * NOTE: LightingEffect_None is deprecated. It must remain
3821 * in the list to allow macro processing of older
3822 * (i.e. early v9) macros.
3824 typedef enum
3826 LightingEffect_Paneled,
3827 LightingEffect_Gouraud,
3828 LightingEffect_None,
3829 END_LightingEffect_e,
3830 LightingEffect_Invalid = BadEnumValue
3831 } LightingEffect_e;
3833 typedef enum
3835 IJKLines_I,
3836 IJKLines_J,
3837 IJKLines_K,
3838 END_IJKLines_e,
3839 IJKLines_Invalid = BadEnumValue,
3840 /* deprecated values */
3841 Lines_I = IJKLines_I, /* deprecated */
3842 Lines_J = IJKLines_J, /* deprecated */
3843 Lines_K = IJKLines_K, /* deprecated */
3844 Lines_Invalid = IJKLines_Invalid /* deprecated */
3845 } IJKLines_e;
3847 typedef enum
3849 IJKCellType_Planes,
3850 IJKCellType_FacePlanes,
3851 IJKCellType_Volume,
3852 END_IJKCellType_e,
3853 IJKCellType_Invalid = BadEnumValue
3854 } IJKCellType_e;
3858 * Ver 6 used PlaneSet. Ver 7 uses CellType and Planes variables.
3860 * "PlaneSet" in version 6 vs. IJKPlanes in v7:
3862 * 'A' = AllPlanes CellType = IJKCellType_Volume
3863 * 'd','e','f','C' = ComboPlanes CellType = IJKCellType_Planes, IJKPlanes = depends on defC
3864 * 'F' = Faces Planes Only CellType = IJKCellType_FacePlanes
3865 * 'I' = I-Planes CellType = IJKCellType_Planes, IJKPlanes = IJKPlanes_I
3866 * 'J' = J-Planes CellType = IJKCellType_Planes, IJKPlanes = IJKPlanes_J
3867 * 'K' = K-Planes CellType = IJKCellType_Planes, IJKPlanes = IJKPlanes_K
3870 * NOTE: IJKPlanes_e is still used internally in tecplot (and in the TecUtil layer).
3871 * it has been relagated to communicating which planes of an IJK zone are in
3872 * use.
3876 typedef enum
3878 IJKPlanes_I,
3879 IJKPlanes_J,
3880 IJKPlanes_K,
3881 IJKPlanes_Face, /* used on the panel heap */
3882 IJKPlanes_IJ, /* deprecated */
3883 IJKPlanes_JK, /* deprecated */
3884 IJKPlanes_IK, /* deprecated */
3885 IJKPlanes_IJK, /* deprecated */
3886 IJKPlanes_Volume,
3887 IJKPlanes_Unused,
3888 END_IJKPlanes_e,
3889 IJKPlanes_Invalid = BadEnumValue,
3890 /* deprecated values */
3891 Planes_I = IJKPlanes_I, /* deprecated */
3892 Planes_J = IJKPlanes_J, /* deprecated */
3893 Planes_K = IJKPlanes_K, /* deprecated */
3894 Planes_IJ = IJKPlanes_IJ, /* deprecated */
3895 Planes_JK = IJKPlanes_JK, /* deprecated */
3896 Planes_IK = IJKPlanes_IK, /* deprecated */
3897 Planes_IJK = IJKPlanes_IJK, /* deprecated */
3898 Planes_Face = IJKPlanes_Face, /* deprecated */
3899 Planes_Volume = IJKPlanes_Volume, /* deprecated */
3900 Planes_Unused = IJKPlanes_Unused, /* deprecated */
3901 Planes_Invalid = IJKPlanes_Invalid /* deprecated */
3902 } IJKPlanes_e;
3906 typedef enum
3908 SurfacesToPlot_BoundaryFaces,
3909 SurfacesToPlot_ExposedCellFaces,
3910 SurfacesToPlot_IPlanes,
3911 SurfacesToPlot_JPlanes,
3912 SurfacesToPlot_KPlanes,
3913 SurfacesToPlot_IJPlanes,
3914 SurfacesToPlot_JKPlanes,
3915 SurfacesToPlot_IKPlanes,
3916 SurfacesToPlot_IJKPlanes,
3917 SurfacesToPlot_All,
3918 SurfacesToPlot_None,
3919 END_SurfacesToPlot_e,
3920 SurfacesToPlot_Invalid = BadEnumValue
3921 } SurfacesToPlot_e;
3923 typedef enum
3925 PointsToPlot_SurfaceNodes, /* was _SurfacesOnly */
3926 PointsToPlot_AllNodes, /* was _All */
3927 PointsToPlot_SurfaceCellCenters,
3928 PointsToPlot_AllCellCenters,
3929 PointsToPlot_AllConnected,
3930 END_PointsToPlot_e,
3931 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3932 PointsToPlot_SurfacesOnly = PointsToPlot_SurfaceNodes, /* deprecated */
3933 PointsToPlot_All = PointsToPlot_AllNodes, /* deprecated */
3934 #endif
3935 PointsToPlot_Invalid = BadEnumValue
3936 } PointsToPlot_e;
3939 typedef enum
3941 SliceSurface_XPlanes,
3942 SliceSurface_YPlanes,
3943 SliceSurface_ZPlanes,
3944 SliceSurface_IPlanes,
3945 SliceSurface_JPlanes,
3946 SliceSurface_KPlanes,
3947 END_SliceSurface_e,
3948 SliceSurface_Invalid = BadEnumValue
3949 } SliceSurface_e;
3952 typedef enum
3954 ClipPlane_None,
3955 ClipPlane_BelowPrimarySlice,
3956 ClipPlane_AbovePrimarySlice,
3957 END_ClipPlane_e,
3958 ClipPlane_Invalid = BadEnumValue
3959 } ClipPlane_e;
3961 typedef enum
3963 Skip_ByIndex,
3964 Skip_ByFrameUnits,
3965 END_SkipMode_e,
3966 Skip_Invalid = BadEnumValue
3967 } SkipMode_e;
3970 typedef enum
3972 EdgeType_Borders,
3973 EdgeType_Creases,
3974 EdgeType_BordersAndCreases,
3975 END_EdgeType_e,
3976 EdgeType_Invalid = BadEnumValue
3977 } EdgeType_e;
3979 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
3981 * @deprecated
3982 * Please use \ref BorderLocation_e instead.
3984 typedef enum
3986 Boundary_None, /* deprecated: use BoundaryType_None */
3987 Boundary_Min, /* deprecated: use BoundaryType_Min */
3988 Boundary_Max, /* deprecated: use BoundaryType_Max */
3989 Boundary_Both, /* deprecated: use BoundaryType_Both */
3990 END_BoundPlotType_e,
3991 Boundary_Invalid = BadEnumValue
3992 } BoundPlotType_e;
3993 #endif
3995 typedef enum
3997 BoundaryType_None, /* Boundary_None */
3998 BoundaryType_Min, /* Boundary_Min */
3999 BoundaryType_Max, /* Boundary_Max */
4000 BoundaryType_Both, /* Boundary_Both */
4001 END_BoundaryType_e,
4002 BoundaryType_Invalid = BadEnumValue
4003 } BoundaryType_e; /* deprecated */
4005 typedef enum
4007 BorderLocation_None, /* Boundary_None */
4008 BorderLocation_Min, /* Boundary_Min */
4009 BorderLocation_Max, /* Boundary_Max */
4010 BorderLocation_Both, /* Boundary_Both */
4011 END_BorderLocation_e,
4012 BorderLocation_Invalid = BadEnumValue
4013 } BorderLocation_e;
4015 typedef enum
4017 ContourColorMap_SmRainbow,
4018 ContourColorMap_LgRainbow,
4019 ContourColorMap_Modern,
4020 ContourColorMap_GrayScale,
4021 ContourColorMap_Wild,
4022 ContourColorMap_UserDef,
4023 ContourColorMap_TwoColor,
4024 ContourColorMap_RawUserDef,
4025 END_ContourColorMap_e,
4026 ContourColorMap_Invalid = BadEnumValue,
4027 /* deprecated values */
4028 ColorMap_SmRainbow = ContourColorMap_SmRainbow, /* deprecated */
4029 ColorMap_LgRainbow = ContourColorMap_LgRainbow, /* deprecated */
4030 ColorMap_Modern = ContourColorMap_Modern, /* deprecated */
4031 ColorMap_GrayScale = ContourColorMap_GrayScale, /* deprecated */
4032 ColorMap_Wild = ContourColorMap_Wild, /* deprecated */
4033 ColorMap_UserDef = ContourColorMap_UserDef, /* deprecated */
4034 ColorMap_TwoColor = ContourColorMap_TwoColor, /* deprecated */
4035 ColorMap_RawUserDef = ContourColorMap_RawUserDef, /* deprecated */
4036 ColorMap_Invalid = ContourColorMap_Invalid /* deprecated */
4037 } ContourColorMap_e;
4041 typedef enum
4043 ErrorBar_Up,
4044 ErrorBar_Down,
4045 ErrorBar_Left,
4046 ErrorBar_Right,
4047 ErrorBar_Horz,
4048 ErrorBar_Vert,
4049 ErrorBar_Cross,
4050 END_ErrorBar_e,
4051 ErrorBar_Invalid = BadEnumValue
4052 } ErrorBar_e;
4056 typedef enum
4058 ContourLineMode_UseZoneLineType,
4059 ContourLineMode_SkipToSolid,
4060 ContourLineMode_DashNegative,
4061 END_ContourLineMode_e,
4062 ContourLineMode_Invalid = BadEnumValue
4063 } ContourLineMode_e;
4066 /* BEGINREMOVEFROMADDON */
4067 typedef enum
4069 Panel_Bad,
4070 Panel_Cell, /* FieldZone */
4071 Panel_Vector, /* FieldZone */
4072 Panel_Scatter, /* FieldZone */
4073 Panel_IJKBorderLine, /* FieldZone IJK border lines */
4074 Panel_CellEdge, /* FieldZone border lines and creases */
4075 Panel_FEBoundaryCell, /* FieldZone */
4076 Panel_NodeLabel, /* FieldZone */
4077 Panel_CellLabel, /* FieldZone */
4078 Panel_StreamtraceCell, /* Streamtrace COB */
4079 Panel_StreamtraceMarker, /* StreamtraceMarker COB (Scatter Symbol) */
4080 Panel_StreamtraceArrowhead, /* StreamtraceArrowhead COB (Vector) */
4081 Panel_IsoSurfaceCell, /* IsoSurface COB */
4082 Panel_IsoSurfaceCellEdge, /* IsoSurface COB border lines and creases (border lines and creases not currently used) */
4083 Panel_SliceCell, /* Slice COB */
4084 Panel_SliceVector, /* Slice COB */
4085 Panel_SliceIJKBorderLine, /* Slice COB IJK border lines */
4086 Panel_SliceCellEdge, /* Slice COB border lines and creases (creases not currently used) */
4087 Panel_Geom, /* Misc */
4088 Panel_Text, /* Misc */
4089 END_Panel_e,
4090 Panel_Invalid = BadEnumValue
4091 } Panel_e;
4092 /* ENDREMOVEFROMADDON */
4095 typedef enum
4097 MessageBoxType_Error,
4098 MessageBoxType_Warning,
4099 MessageBoxType_Information,
4100 MessageBoxType_Question, /* Ok, Cancel buttons */
4101 MessageBoxType_YesNo,
4102 MessageBoxType_YesNoCancel,
4103 MessageBoxType_WarningOkCancel,
4104 END_MessageBoxType_e,
4105 MessageBoxType_Invalid = BadEnumValue,
4106 /* deprecated values */
4107 MessageBox_Error = MessageBoxType_Error, /* deprecated */
4108 MessageBox_Warning = MessageBoxType_Warning, /* deprecated */
4109 MessageBox_Information = MessageBoxType_Information, /* deprecated */
4110 MessageBox_Question = MessageBoxType_Question, /* deprecated */
4111 MessageBox_YesNo = MessageBoxType_YesNo, /* deprecated */
4112 MessageBox_YesNoCancel = MessageBoxType_YesNoCancel, /* deprecated */
4113 MessageBox_WarningOkCancel = MessageBoxType_WarningOkCancel, /* deprecated */
4114 MessageBox_Invalid = MessageBoxType_Invalid /* deprecated */
4115 } MessageBoxType_e;
4118 typedef enum
4120 MessageBoxReply_Yes,
4121 MessageBoxReply_No,
4122 MessageBoxReply_Cancel,
4123 MessageBoxReply_Ok,
4124 END_MessageBoxReply_e,
4125 MessageBoxReply_Invalid = BadEnumValue
4126 } MessageBoxReply_e;
4128 typedef enum
4130 NumberFormat_Integer,
4131 NumberFormat_FixedFloat,
4132 NumberFormat_Exponential,
4133 NumberFormat_BestFloat,
4134 NumberFormat_SuperScript,
4135 NumberFormat_CustomLabel,
4136 NumberFormat_LogSuperScript,
4137 NumberFormat_RangeBestFloat,
4138 NumberFormat_DynamicLabel,
4139 NumberFormat_TimeDate,
4140 END_NumberFormat_e,
4141 NumberFormat_Invalid = BadEnumValue
4142 } NumberFormat_e;
4144 /* For backward compatibility with v9- */
4145 typedef NumberFormat_e ValueFormat_e;
4148 typedef enum
4150 BackingStoreMode_QuickAndDirty,
4151 BackingStoreMode_RealTimeUpdate,
4152 BackingStoreMode_PeriodicUpdate,
4153 END_BackingStoreMode_e,
4154 BackingStoreMode_Invalid = BadEnumValue
4155 } BackingStoreMode_e;
4158 typedef enum
4160 TickDirection_In,
4161 TickDirection_Out,
4162 TickDirection_Centered,
4163 END_TickDirection_e,
4164 TickDirection_Invalid = BadEnumValue
4165 } TickDirection_e;
4167 /* This enumerated type is no longer used as of Tecplot V10. */
4168 typedef enum
4170 AxisTitlePosition_Left,
4171 AxisTitlePosition_Center,
4172 AxisTitlePosition_Right,
4173 END_AxisTitlePosition_e,
4174 AxisTitlePosition_Invalid = BadEnumValue
4175 } AxisTitlePosition_e;
4177 typedef enum
4179 AxisTitleMode_NoTitle,
4180 AxisTitleMode_UseVarName,
4181 AxisTitleMode_UseText,
4182 END_AxisTitleMode_e,
4183 AxisTitleMode_Invalid = BadEnumValue
4184 } AxisTitleMode_e;
4186 typedef enum
4188 AxisAlignment_WithViewport,
4189 AxisAlignment_WithOpposingAxisValue,
4190 AxisAlignment_WithGridMin,
4191 AxisAlignment_WithGridMax,
4192 AxisAlignment_WithSpecificAngle,
4193 AxisAlignment_WithGridAreaTop,
4194 AxisAlignment_WithGridAreaBottom,
4195 AxisAlignment_WithGridAreaLeft,
4196 AxisAlignment_WithGridAreaRight,
4197 END_AxisAlignment_e,
4198 AxisAlignment_Invalid = BadEnumValue
4199 } AxisAlignment_e;
4201 typedef enum
4203 FunctionDependency_XIndependent,
4204 FunctionDependency_YIndependent,
4205 END_FunctionDependency_e,
4206 FunctionDependency_Invalid = BadEnumValue,
4207 FunctionDependency_ThetaIndependent = FunctionDependency_XIndependent,
4208 FunctionDependency_RIndependent = FunctionDependency_YIndependent
4209 } FunctionDependency_e;
4211 typedef enum
4213 LegendShow_Yes,
4214 LegendShow_No,
4215 LegendShow_Auto,
4216 END_LegendShow_e,
4217 LegendShow_Invalid = BadEnumValue
4218 } LegendShow_e;
4220 typedef enum
4222 LineMapSort_None,
4223 LineMapSort_IndependentVar,
4224 LineMapSort_DependentVar,
4225 LineMapSort_SpecificVar,
4226 END_LineMapSort_e,
4227 LineMapSort_Invalid = BadEnumValue
4228 } LineMapSort_e;
4230 typedef enum
4232 ContLegendLabelLocation_ContourLevels,
4233 ContLegendLabelLocation_Increment,
4234 ContLegendLabelLocation_ColorMapDivisions,
4235 END_ContLegendLabelLocation_e,
4236 ContLegendLabelLocation_Invalid = BadEnumValue
4237 } ContLegendLabelLocation_e;
4239 typedef enum
4241 ThetaMode_Degrees,
4242 ThetaMode_Radians,
4243 ThetaMode_Arbitrary,
4244 END_ThetaMode_e,
4245 ThetaMode_Invalid = BadEnumValue
4246 } ThetaMode_e;
4248 typedef enum
4250 Transform_PolarToRect,
4251 Transform_SphericalToRect,
4252 Transform_RectToPolar,
4253 Transform_RectToSpherical,
4254 END_Transform_e,
4255 Transform_Invalid = BadEnumValue
4256 } Transform_e;
4258 typedef enum
4260 LaunchDialogMode_ModalSync,
4261 LaunchDialogMode_Modeless,
4262 LaunchDialogMode_ModalAsync,
4263 END_LaunchDialogMode_e,
4264 LaunchDialogMode_Invalid = BadEnumValue
4265 } LaunchDialogMode_e;
4268 typedef enum
4270 SelectFileOption_ReadSingleFile,
4271 SelectFileOption_ReadMultiFile,
4272 SelectFileOption_AllowMultiFileRead,
4273 SelectFileOption_WriteFile,
4274 SelectFileOption_SelectDirectory,
4275 END_SelectFileOption_e,
4276 SelectFileOption_Invalid = BadEnumValue
4277 } SelectFileOption_e;
4279 typedef enum
4281 BinaryFileVersion_Tecplot2006,
4282 BinaryFileVersion_Tecplot2008,
4283 BinaryFileVersion_Tecplot2009,
4284 BinaryFileVersion_Current,
4285 END_BinaryFileVersion_e,
4286 BinaryFileVersion_Invalid = BadEnumValue
4287 } BinaryFileVersion_e;
4289 /* CURRENTLY NOT USED .... */
4290 typedef enum
4292 ViewActionDrawMode_NoDraw,
4293 ViewActionDrawMode_DrawTrace,
4294 ViewActionDrawMode_DrawFull,
4295 END_ViewActionDrawMode_e,
4296 ViewActionDrawMode_Invalid = BadEnumValue
4297 } ViewActionDrawMode_e;
4299 typedef enum
4301 PageAction_Create,
4302 PageAction_Delete,
4303 PageAction_Clear,
4304 PageAction_SetCurrentToNext,
4305 PageAction_SetCurrentToPrev,
4306 PageAction_SetCurrentByName,
4307 PageAction_SetCurrentByUniqueID,
4308 END_PageAction_e,
4309 PageAction_Invalid = BadEnumValue
4310 } PageAction_e;
4312 typedef enum
4314 FrameAction_PushTop,
4315 FrameAction_PopByNumber,
4316 FrameAction_PopAtPosition,
4317 FrameAction_DeleteActive,
4318 FrameAction_FitAllToPaper,
4319 FrameAction_PushByName,
4320 FrameAction_PopByName,
4321 FrameAction_PushByNumber,
4322 FrameAction_ActivateTop,
4323 FrameAction_ActivateNext,
4324 FrameAction_ActivatePrevious,
4325 FrameAction_ActivateAtPosition,
4326 FrameAction_ActivateByName,
4327 FrameAction_ActivateByNumber,
4328 FrameAction_MoveToTopActive,
4329 FrameAction_MoveToTopByName,
4330 FrameAction_MoveToTopByNumber,
4331 FrameAction_MoveToBottomActive,
4332 FrameAction_MoveToBottomByName,
4333 FrameAction_MoveToBottomByNumber,
4334 END_FrameAction_e,
4335 FrameAction_Invalid = BadEnumValue,
4336 FrameAction_Pop = FrameAction_PopByNumber,
4337 FrameAction_Push = FrameAction_PushByNumber,
4338 FrameAction_DeleteTop = FrameAction_DeleteActive
4339 } FrameAction_e;
4341 typedef enum
4343 DoubleBufferAction_On,
4344 DoubleBufferAction_Off,
4345 DoubleBufferAction_Swap,
4346 END_DoubleBufferAction_e,
4347 DoubleBufferAction_Invalid = BadEnumValue
4348 } DoubleBufferAction_e;
4351 * PickAction_CheckToAdd had the side effects of popping a frame that was selected
4352 * only if not collecting. Pick_AddAtPosition avoids this.
4354 typedef enum
4356 PickAction_CheckToAdd, /* deprecated: use Pick_AddAtPosition */
4357 PickAction_AddAll,
4358 PickAction_AddAllInRegion,
4359 PickAction_Edit,
4360 PickAction_Cut,
4361 PickAction_Copy,
4362 PickAction_Clear,
4363 PickAction_Paste,
4364 PickAction_PasteAtPosition,
4365 PickAction_Shift,
4366 PickAction_Magnify,
4367 PickAction_Push,
4368 PickAction_Pop,
4369 PickAction_SetMouseMode,
4370 PickAction_DeselectAll,
4371 PickAction_AddZones,
4372 PickAction_AddXYMaps, /* deprecated: use PickAction_AddLineMaps */
4373 PickAction_AddLineMaps,
4374 PickAction_AddAtPosition,
4375 END_PickAction_e,
4376 PickAction_Invalid = BadEnumValue
4377 } PickAction_e;
4380 typedef enum
4382 ContourLevelAction_Add,
4383 ContourLevelAction_New,
4384 ContourLevelAction_DeleteRange,
4385 ContourLevelAction_Reset,
4386 ContourLevelAction_ResetToNice,
4387 ContourLevelAction_DeleteNearest,
4388 END_ContourLevelAction_e,
4389 ContourLevelAction_Invalid = BadEnumValue
4390 } ContourLevelAction_e;
4392 typedef enum
4394 ContourLabelAction_Add,
4395 ContourLabelAction_DeleteAll,
4396 END_ContourLabelAction_e,
4397 ContourLabelAction_Invalid = BadEnumValue
4398 } ContourLabelAction_e;
4400 typedef enum
4402 StreamtraceAction_Add,
4403 StreamtraceAction_DeleteAll,
4404 StreamtraceAction_DeleteRange,
4405 StreamtraceAction_SetTerminationLine,
4406 StreamtraceAction_ResetDeltaTime,
4407 END_StreamtraceAction_e,
4408 StreamtraceAction_Invalid = BadEnumValue
4409 } StreamtraceAction_e;
4411 typedef enum
4413 ColorMapControlAction_RedistributeControlPoints,
4414 ColorMapControlAction_CopyCannedColorMap,
4415 ColorMapControlAction_ResetToFactoryDefaults,
4416 END_ColorMapControlAction_e,
4417 ColorMapControlAction_Invalid = BadEnumValue
4418 } ColorMapControlAction_e;
4420 typedef enum
4422 ColorMapDistribution_Continuous,
4423 ColorMapDistribution_Banded,
4424 END_ColorMapDistribution_e,
4425 ColorMapDistribution_Invalid = BadEnumValue
4426 } ColorMapDistribution_e;
4428 typedef enum
4430 RGBMode_SpecifyRGB,
4431 RGBMode_SpecifyRG,
4432 RGBMode_SpecifyRB,
4433 RGBMode_SpecifyGB,
4434 END_RGBMode_e,
4435 RGBMode_Invalid = BadEnumValue
4436 } RGBMode_e;
4438 typedef enum
4440 TecUtilErr_None,
4441 TecUtilErr_Undetermined,
4442 END_TecUtilErr_e,
4443 TecUtilErr_Invalid = BadEnumValue
4444 } TecUtilErr_e;
4446 /* BEGINREMOVEFROMADDON */
4447 /* deprecated type from alpha/beta v10 */
4448 typedef enum
4450 AxisShape_Ray,
4451 AxisShape_LineTwoDirections,
4452 AxisShape_LShape,
4453 AxisShape_CrossOrBox,
4454 END_AxisShape_e,
4455 AxisShape_Invalid = BadEnumValue
4456 } AxisShape_e;
4458 /* licensing enums : keep hidden */
4459 typedef enum
4461 RunMode_Demo,
4462 RunMode_Eval,
4463 RunMode_Full,
4464 /**/
4465 END_RunMode_e,
4466 /**/
4467 RunMode_Invalid = BadEnumValue
4468 } RunMode_e;
4470 /* ENDREMOVEFROMADDON */
4472 typedef enum /* Custom exporter error message */
4474 ExportCustReturnCode_Ok,
4475 ExportCustReturnCode_Failed,
4476 ExportCustReturnCode_TecplotLocked,
4477 ExportCustReturnCode_ExporterNotLoaded,
4478 ExportCustReturnCode_ExportCallbackFailed,
4479 ExportCustReturnCode_NotAnImageExporter,
4480 ExportCustReturnCode_NotAFieldDataExporter,
4481 END_ExportCustReturnCode_e,
4482 ExportCustReturnCode_Invalid = BadEnumValue
4483 } ExportCustReturnCode_e;
4486 * COB/Zone types.
4488 typedef enum
4490 CZType_FieldDataZone,
4491 CZType_FEBoundaryCOB,
4492 CZType_IsoSurfaceCOB,
4493 CZType_SliceCOB,
4494 CZType_StreamtraceCOB,
4495 CZType_StreamtraceMarkerCOB,
4496 CZType_StreamtraceArrowheadCOB,
4497 END_CZType_e,
4498 CZType_Invalid = BadEnumValue
4499 } CZType_e;
4503 typedef enum
4505 FaceNeighborMode_LocalOneToOne,
4506 FaceNeighborMode_LocalOneToMany,
4507 FaceNeighborMode_GlobalOneToOne,
4508 FaceNeighborMode_GlobalOneToMany,
4509 END_FaceNeighborMode_e,
4510 FaceNeighborMode_Invalid = BadEnumValue
4511 } FaceNeighborMode_e;
4515 * Page render destinations.
4517 typedef enum
4519 PageRenderDest_None,
4520 PageRenderDest_OnScreen,
4521 PageRenderDest_OffScreen,
4522 END_PageRenderDest_e,
4523 PageRenderDest_Invalid = BadEnumValue
4524 } PageRenderDest_e;
4526 /* BEGINREMOVEFROMADDON */
4528 * Destination for all internal rendering (VDI/Gr) functions. For external
4529 * linkage we translate RenderDest_WorkArea to PageRenderDest_OnScreen,
4530 * RenderDest_OffscreenBitmap to PageRenderDest_OffScreen and
4531 * RenderDest_Invalid to PageRenderDest_None.
4533 typedef enum
4535 RenderDest_WorkArea, /* Do not move from start of screen entries */
4536 RenderDest_ExampleText,
4537 RenderDest_ExampleLightSourcePosition,
4538 RenderDest_ExampleColorMap,
4539 RenderDest_ExampleBasicColor, /* Do not move from end of screen entries */
4540 RenderDest_OffscreenBitmap,
4541 RenderDest_Hardcopy,
4542 END_RenderDest_e,
4543 RenderDest_Invalid = BadEnumValue,
4545 * These next two are optimizations to make the
4546 * RDT_IsScreen() macro as efficient as possible.
4548 RenderDest_FirstScreenEntry = RenderDest_WorkArea,
4549 RenderDest_LastScreenEntry = RenderDest_ExampleBasicColor
4550 } RenderDest_e;
4551 /* ENDREMOVEFROMADDON */
4553 typedef enum
4555 Stipple_All,
4556 Stipple_Critical,
4557 Stipple_None,
4558 END_Stipple_e,
4559 Stipple_Invalid = BadEnumValue
4560 } Stipple_e;
4562 typedef enum
4564 DataFileType_Full,
4565 DataFileType_Grid,
4566 DataFileType_Solution,
4567 END_DataFileType_e,
4568 DataFileType_Invalid = BadEnumValue
4569 } DataFileType_e;
4571 typedef enum
4573 ConditionAwakeReason_Signaled,
4574 ConditionAwakeReason_TimedOut,
4575 END_ConditionAwakeReason_e,
4576 ConditionAwakeReason_Invalid = BadEnumValue
4577 } ConditionAwakeReason_e;
4579 /****************************************************************
4581 * STRUCTURE TYPEDEFS *
4583 ****************************************************************/
4586 * These are defined to work with pthreads, more work for WINAPI needed
4588 typedef struct _Mutex_a* Mutex_pa;
4590 typedef void*(STDCALL *ThreadFunction_pf)(ArbParam_t ThreadData);
4592 typedef struct _Condition_a* Condition_pa;
4594 typedef struct _JobControl_s* JobControl_pa;
4596 typedef void (STDCALL *ThreadPoolJob_pf)(ArbParam_t JobData);
4598 /* BEGINREMOVEFROMADDON */
4599 #if defined TECPLOTKERNEL
4600 /* CORE SOURCE CODE REMOVED */
4601 #if defined USE_OOSTYLE
4602 #endif
4603 #endif /* TECPLOTKERNEL */
4604 /* ENDREMOVEFROMADDON */
4606 typedef struct _StringList_s *StringList_pa;
4607 typedef struct _Menu_s *Menu_pa;
4608 /* BEGINREMOVEFROMADDON */
4609 typedef struct _ArrayList_s *ArrayList_pa;
4610 /* ENDREMOVEFROMADDON */
4612 typedef enum
4614 ImageResizeFilter_Texture,
4615 ImageResizeFilter_Box,
4616 ImageResizeFilter_Lanczos2,
4617 ImageResizeFilter_Lanczos3,
4618 ImageResizeFilter_Triangle,
4619 ImageResizeFilter_Bell,
4620 ImageResizeFilter_BSpline,
4621 ImageResizeFilter_Cubic,
4622 ImageResizeFilter_Mitchell,
4623 ImageResizeFilter_Gaussian,
4624 END_ImageResizeFilter_e,
4625 ImageResizeFilter_Invalid = BadEnumValue
4626 } ImageResizeFilter_e;
4628 typedef enum
4630 VarStatus_Passive,
4631 VarStatus_Custom,
4632 VarStatus_Map,
4633 VarStatus_Heap,
4634 VarStatus_NotLoaded,
4635 END_VarStatus_e,
4636 VarStatus_Invalid = BadEnumValue
4637 } VarStatus_e;
4641 /* BEGINREMOVEFROMADDON */
4643 /* here until GR and GRHW layer can be rearranged. */
4644 #if defined TECPLOTKERNEL
4645 /* CORE SOURCE CODE REMOVED */
4646 # if !defined NO_ASSERTS
4647 # endif
4648 #endif /* TECPLOTKERNEL */
4650 /* ENDREMOVEFROMADDON */
4652 typedef struct _Set_a *Set_pa;
4654 typedef struct
4656 double X;
4657 double Y;
4658 double Z;
4659 } XYZ_s;
4661 /* BEGINREMOVEFROMADDON */
4663 typedef struct _Generic3Var_s
4665 double V1;
4666 double V2;
4667 double V3;
4668 } Generic3Var_s;
4670 typedef struct _ThetaR_s
4672 double Theta;
4673 double R;
4674 } ThetaR_s;
4677 * This union is designed to allow different plottypes
4678 * to access the same values by different names. In
4679 * C++ we could use member access functions, or we
4680 * could have used macros, but instead we use this
4681 * union. NOTE: This only works if all the structures
4682 * have the same alignment.
4684 typedef union _AnchorPos_u
4686 Generic3Var_s Generic;
4687 XYZ_s XYZ;
4688 ThetaR_s ThetaR;
4689 } AnchorPos_u;
4691 typedef struct _DataFileInfo_s
4693 char *PrimaryFName;
4694 char *TempBinaryFName;
4695 DataFileType_e FileType;
4696 FileOffset_t DataFileOffset;
4697 StringList_pa VarName;
4698 EntIndex_t NumZones;
4699 EntIndex_t NumVars;
4700 double SolutionFileTime;
4701 struct _DataFileInfo_s *NextFile;
4702 } DataFileInfo_s;
4704 typedef struct _StylesheetIOFlags_s
4706 Boolean_t IncludePlotStyle;
4707 Boolean_t IncludeFieldAndMapStyle; /* Only used for undo */
4708 Boolean_t IncludeUniqueIDs; /* Only used for undo */
4709 Boolean_t IncludeText;
4710 Boolean_t IncludeGeom;
4711 Boolean_t IncludeGeomImageData;
4712 Boolean_t IncludeAuxData;
4713 Boolean_t IncludeStreamPositions;
4714 Boolean_t IncludeContourLevels;
4715 Boolean_t IncludeFactoryDefaults; /* Only used when writing */
4716 Boolean_t CompressStyleCommands; /* Only used when writing */
4717 Boolean_t MergeStyle; /* Only used when reading */
4718 Boolean_t IncludeFrameSizeAndPosition; /* Only used when reading */
4719 Boolean_t UseRelativePaths;
4720 } StylesheetIOFlags_s;
4725 typedef struct
4727 Boolean_t Show; /* power switch */
4728 Boolean_t ShowMesh;
4729 Boolean_t ShowContour;
4730 Boolean_t ShowShade;
4731 Boolean_t UseLightingEffect;
4732 Boolean_t UseTranslucency;
4733 } IsoSurfaceLayers_s;
4737 typedef struct
4739 Boolean_t Show; /* power switch */
4740 Boolean_t ShowMesh;
4741 Boolean_t ShowContour;
4742 Boolean_t ShowVector;
4743 Boolean_t ShowShade;
4744 Boolean_t ShowEdge;
4745 Boolean_t UseLightingEffect;
4746 Boolean_t UseTranslucency;
4747 } SliceLayers_s;
4751 typedef struct
4753 Boolean_t Show; /* power switch */
4754 Boolean_t ShowPaths;
4755 Boolean_t ShowDashes;
4756 Boolean_t ShowArrowheads;
4757 Boolean_t ShowMesh;
4758 Boolean_t ShowContour;
4759 Boolean_t ShowShade;
4760 Boolean_t ShowMarkers;
4761 Boolean_t UseLightingEffect;
4762 Boolean_t UseTranslucency;
4763 } StreamtraceLayers_s;
4767 typedef struct
4769 #if 0 /* in the future we may add a main power switch */
4770 Boolean_t Show; /* power switch */
4771 #endif
4772 TwoDDrawOrder_e TwoDDrawOrder;
4773 Boolean_t ShowMesh;
4774 Boolean_t ShowContour;
4775 Boolean_t ShowVector;
4776 Boolean_t ShowScatter;
4777 Boolean_t ShowShade;
4778 Boolean_t ShowEdge;
4779 Boolean_t UseLightingEffect;
4780 Boolean_t UseTranslucency;
4781 } FieldLayers_s;
4784 * General purpose field layers structure used for low level drawing code only.
4785 * SetupXxxx is responsible for populating this general field layers structure
4786 * from the specific layer structures above for CZInfo.
4788 typedef struct
4790 Boolean_t ShowMesh;
4791 Boolean_t ShowContour;
4792 Boolean_t ShowVector;
4793 Boolean_t ShowScatter;
4794 Boolean_t ShowShade;
4795 Boolean_t ShowEdge;
4796 Boolean_t UseLightingEffect;
4797 Boolean_t UseTranslucency;
4798 } CZFieldLayers_s;
4802 typedef struct _LinePlotLayers_s
4804 #if 0 /* in the future we may add a main power switch */
4805 Boolean_t Show; /* power switch */
4806 #endif
4807 Boolean_t ShowLines;
4808 Boolean_t ShowSymbols;
4809 Boolean_t ShowBarCharts;
4810 Boolean_t ShowErrorBars;
4811 } LinePlotLayers_s;
4814 typedef union _InterfaceAdjust_u
4816 double ScaleFact;
4817 LgIndex_t Shift;
4818 } InterfaceAdjust_u;
4820 typedef Boolean_t (*SuffixModifier_pf)(TP_IN_OUT double* Value,
4821 const char* Suffix);
4823 typedef struct _InputSpecs_s
4825 Input_e Type;
4826 double Min;
4827 double Max;
4828 InterfaceAdjust_u InterfaceAdjust;
4829 SuffixModifier_pf SuffixModifier;
4830 } InputSpec_s;
4833 typedef struct _RGB_s
4835 ColorIndex_t R;
4836 ColorIndex_t G;
4837 ColorIndex_t B;
4838 } RGB_s;
4841 typedef struct _ControlPoint_s
4843 double ColorMapFraction;
4844 RGB_s LeadRGB;
4845 RGB_s TrailRGB;
4846 } ControlPoint_s;
4849 typedef struct _ColorMapBand_s
4851 short NumControlPoints;
4852 ControlPoint_s ControlPoint[MaxColorMapControlPoints];
4853 } ColorMapBand_s;
4856 typedef struct _EventAction_s
4858 int I;
4859 int J;
4860 int LastI;
4861 int LastJ;
4862 int BaseI;
4863 int BaseJ;
4864 int ButtonOrKey;
4865 Event_e Event;
4866 Boolean_t IsShifted;
4867 Boolean_t IsAlted;
4868 Boolean_t IsControlled;
4869 Boolean_t WasShiftedOnButtonPress;
4870 Boolean_t WasAltedOnButtonPress;
4871 Boolean_t WasControlledOnButtonPress;
4872 } EventAction_s;
4874 typedef struct _MacroCmd_s
4876 LString_t MacroLine;
4877 struct _MacroCmd_s *NextCmd;
4878 } MacroCmd_s;
4881 typedef struct _IntegerRect_s
4883 LgIndex_t X1;
4884 LgIndex_t Y1;
4885 LgIndex_t X2;
4886 LgIndex_t Y2;
4887 } IntegerRect_s;
4890 typedef struct _Rect_s
4892 double X1;
4893 double Y1;
4894 double X2;
4895 double Y2;
4896 } Rect_s;
4898 typedef struct _XY_s
4900 double X;
4901 double Y;
4902 } XY_s;
4904 typedef struct _IJKSkip_s
4906 LgIndex_t I;
4907 LgIndex_t J;
4908 LgIndex_t K;
4909 } IJKSkip_s;
4915 * NOTE ON RANGES (Ent and Index)
4917 * Min, Max and Skip all use the following assignment logic:
4919 * 0 = First element
4920 * -1 = mxindex value, (X[mxindex-1] in c)
4921 * -n = mxindex-n+1 value (X[mxindex+n] in c)
4922 * n = n+1 value (X[n] in c)
4927 * 2/28/95: NOTE: EntRange_s is no longer used but may be
4928 * needed later.
4931 typedef struct _EntRange_s
4933 EntIndex_t Min;
4934 EntIndex_t Max;
4935 EntIndex_t Skip;
4936 } EntRange_s;
4939 typedef struct _IndexRange_s
4941 LgIndex_t Min;
4942 LgIndex_t Max;
4943 LgIndex_t Skip;
4944 } IndexRange_s;
4947 #if defined TECPLOTKERNEL
4948 /* CORE SOURCE CODE REMOVED */
4949 #if defined (THREED)
4950 #endif
4951 #endif /* TECPLOTKERNEL */
4953 typedef struct _TextShape_s
4955 Font_e Font;
4956 double Height;
4957 Units_e SizeUnits;
4958 } TextShape_s;
4960 #define AsciiShapeFontIsGreek(S) (((S)->UseBaseFont == FALSE) && ((S)->FontOverride == Font_Greek))
4961 #define AsciiShapeFontIsMath(S) (((S)->UseBaseFont == FALSE) && ((S)->FontOverride == Font_Math))
4962 #define AsciiShapeFontIsUserDefined(S) (((S)->UseBaseFont == FALSE) && ((S)->FontOverride == Font_UserDefined))
4965 typedef struct
4967 Boolean_t UseBaseFont; /* (Default = TRUE) */
4968 Font_e FontOverride;/* (Default = Font_Math)*/
4969 SymbolChar_t Char;
4970 } AsciiShape_s;
4972 typedef struct _SymbolShape_s
4974 GeomShape_e GeomShape;
4975 Boolean_t IsAscii;
4976 AsciiShape_s AsciiShape;
4977 } SymbolShape_s;
4979 #ifdef NOT_USED
4980 struct _AddOnList_a
4982 /* added temporarily so Windows makelibtec works */
4983 int dummy;
4985 #endif
4987 /* ENDREMOVEFROMADDON */
4989 typedef struct _AddOnList_a *AddOn_pa;
4991 typedef struct _NodeMap_a *NodeMap_pa;
4993 /* BEGINREMOVEFROMADDON */
4994 typedef struct _StylePointState_a *StylePointState_pa;
4995 typedef struct _DataElementState_a *DataElementState_pa;
4996 typedef struct _StyleElementState_a *StyleElementState_pa;
4997 typedef struct _NormalCache_a *NormalCache_pa;
4998 /* ENDREMOVEFROMADDON */
5001 #define INVALID_INDEX (-1)
5003 /* used to indicate that no neighboring element or zone exists */
5004 #define NO_NEIGHBORING_ELEMENT (-1)
5005 #define NO_NEIGHBORING_ZONE (-1)
5007 typedef struct _FaceNeighbor_a *FaceNeighbor_pa;
5011 typedef struct _FaceMap_a *FaceMap_pa;
5015 typedef struct _ElemToFaceMap_a *ElemToFaceMap_pa;
5019 typedef struct _NodeToElemMap_a *NodeToElemMap_pa;
5021 /* BEGINREMOVEFROMADDON */
5024 * Enumerates the face neighbor array members to make indexed members
5025 * identifiable.
5027 typedef enum
5029 FaceNeighborMemberArray_CellFaceNbrs,
5030 FaceNeighborMemberArray_BndryConnectNbrsCompObscure,
5031 FaceNeighborMemberArray_BndryConnectFaceToCellsMap,
5032 FaceNeighborMemberArray_BndryConnectIsPerfectNbr,
5033 FaceNeighborMemberArray_BndryConnectCellList,
5034 FaceNeighborMemberArray_BndryConnectZoneList,
5035 END_FaceNeighborMemberArray_e,
5036 FaceNeighborMemberArray_Invalid = BadEnumValue
5037 } FaceNeighborMemberArray_e;
5039 int const FaceNeighborNumMemberArrays = (int)END_FaceNeighborMemberArray_e;
5042 * Enumerates the face map's array members to make indexed members
5043 * identifiable.
5045 typedef enum
5047 FaceMapMemberArray_FaceNodeOffsets,
5048 FaceMapMemberArray_FaceNodes,
5049 FaceMapMemberArray_FaceLeftElems,
5050 FaceMapMemberArray_FaceRightElems,
5051 FaceMapMemberArray_FaceBndryItemOffsets,
5052 FaceMapMemberArray_FaceBndryItemElems,
5053 FaceMapMemberArray_FaceBndryItemElemZones,
5054 END_FaceMapMemberArray_e,
5055 FaceMapMemberArray_Invalid = BadEnumValue
5056 } FaceMapMemberArray_e;
5058 const int FaceMapNumMemberArrays = (int)END_FaceMapMemberArray_e;
5061 * Enumerates the element to face map's array members to make indexed members
5062 * identifiable.
5064 typedef enum
5066 ElemToFaceMapMemberArray_ElemFaceOffsets,
5067 ElemToFaceMapMemberArray_ElemFaces,
5068 END_ElemToFaceMapMemberArray_e,
5069 ElemToFaceMapMemberArray_Invalid = BadEnumValue
5070 } ElemToFaceMapMemberArray_e;
5072 const int ElemToFaceMapNumMemberArrays = (int)END_ElemToFaceMapMemberArray_e;
5075 * Enumerates the element map's array members to make indexed members
5076 * identifiable.
5078 typedef enum
5080 NodeToElemMapMemberArray_NodeElemOffsets,
5081 NodeToElemMapMemberArray_NodeElems,
5082 END_NodeToElemMapMemberArray_e,
5083 NodeToElemMapMemberArray_Invalid = BadEnumValue
5084 } NodeToElemMapMemberArray_e;
5086 const int NodeToElemMapNumMemberArrays = (int)END_NodeToElemMapMemberArray_e;
5088 /* ENDREMOVEFROMADDON */
5091 typedef struct _FieldData_a *FieldData_pa;
5095 typedef struct _AuxData_s *AuxData_pa;
5099 * Enumerates the data value structure of a variable in a data file.
5100 * For all but ordered cell centered data the classic, classic padded and
5101 * classic plus formats are identical. All values are laid out contiguously
5102 * in the file. The number of values written depends upon the value location:
5104 * - FE nodal:\n
5105 * The number of values equals the number of data points.
5106 * - FE cell centered:\n
5107 * The number of values equals the number of elements.
5108 * - Ordered nodal:\n
5109 * The number of values equals the number of data points.
5110 * - Ordered cell centered:\n
5111 * There are three formats:
5112 * -# Classic (binary version < 103):\n
5113 * Classic is a compressed format of ordered cell centered data in
5114 * that it does not include ghost cells. The cell index of each cell
5115 * does not correspond to the lowest corner point index of each cell
5116 * as it does internally in Tecplot.\n
5117 * The number of values in the data file is calculated as follows:
5118 * @code
5119 * NumValues = MAX(IMax-1,1) * MAX(JMax-1,1) * MAX(KMax-1,1);
5120 * @endcode
5121 * Where IMax, JMax, and KMax are the maximum point dimensions of the
5122 * zone.
5123 * -# Classic padded (binary version < 104):\n
5124 * Classic padded is an intermediary format that was available only
5125 * within Tecplot, Inc. The cell centered data includes the ghost cells
5126 * and each cell index corresponds to the lowest corner point index of
5127 * each cell.\n
5128 * The number of values in the data file (including ghost cells) is
5129 * calculated as follows:
5130 * @code
5131 * NumValues = IMax * JMax * KMax;
5132 * @endcode
5133 * Where IMax, JMax, and KMax are the maximum point dimensions of the
5134 * zone. The contents of the ghost cells is undefined and should not
5135 * be used.
5136 * -# Classic plus (binary version >= 104):\n
5137 * Classic plus is similar to classic padded except that it does not
5138 * include the ghost cells of the slowest moving index greater than
5139 * one.\n
5140 * The number of values in the data file (including ghost cells) is
5141 * calculated as follows:
5142 * @code
5143 * FinalIMax = IMax;
5144 * FinalJMax = JMax;
5145 * FinalKMax = KMax;
5147 * // decrement the max index of the slowest moving index greater than 1
5148 * if (KMax > 1)
5149 * FinalKMax--;
5150 * else if (JMax > 1)
5151 * FinalJMax--;
5152 * else if (IMax > 1)
5153 * FinalIMax--;
5155 * NumValues = FinalIMax * FinalJMax * FinalKMax;
5156 * @endcode
5157 * Where IMax, JMax, and KMax are the maximum point dimensions of the
5158 * zone. The contents of the ghost cells is undefined and should not
5159 * be used.
5161 typedef enum
5163 DataValueStructure_Classic,
5164 DataValueStructure_ClassicPadded,
5165 DataValueStructure_ClassicPlus,
5166 END_DataValueStructure_e,
5167 /* BEGINREMOVEFROMADDON */
5168 DataValueStructure_Latest = (END_DataValueStructure_e - 1),
5169 /* ENDREMOVEFROMADDON */
5170 DataValueStructure_Invalid = BadEnumValue
5171 } DataValueStructure_e;
5174 * Enumerates the data node structure of a node map in a data file. The classic
5175 * format uses 1 based nodes while the classic plus format uses zero based
5176 * node.
5178 typedef enum
5180 DataNodeStructure_Classic, /* ones based node maps */
5181 DataNodeStructure_ClassicPlus, /* zero based node maps */
5182 END_DataNodeStructure_e,
5183 DataNodeStructure_Invalid = BadEnumValue
5184 } DataNodeStructure_e;
5187 * Enumerates the variable locking modes. The \ref VarLockMode_ValueChange mode
5188 * prevents modification of the values in a variable but permits deletion, and
5189 * the \ref VarLockMode_Delete mode prevents deletion of a varaible but permits
5190 * modification.
5192 typedef enum
5194 VarLockMode_ValueChange,
5195 VarLockMode_Delete,
5196 END_VarLockMode_e,
5197 VarLockMode_Invalid = BadEnumValue
5198 } VarLockMode_e;
5200 typedef enum
5202 FieldMapMode_UseStrandID,
5203 FieldMapMode_UseZoneSet,
5204 END_FieldMapMode_e,
5205 FieldMapMode_Invalid = BadEnumValue
5206 } FieldMapMode_e;
5208 typedef enum
5210 UnloadStrategy_Auto,
5211 UnloadStrategy_NeverUnload,
5212 UnloadStrategy_MinimizeMemoryUse,
5213 END_UnloadStrategy_e,
5214 UnloadStrategy_Invalid = BadEnumValue
5215 } UnloadStrategy_e;
5217 /* BEGINREMOVEFROMADDON */
5221 typedef struct
5223 ColorIndex_t PresetZoneColor;
5224 Boolean_t IsInBlockFormat;
5225 } ZoneLoadInfo_s;
5228 * Note: For FE Data, NumPtsI = Number of data points.
5229 * NumPtsJ = Number of elements.
5230 * NumPtsK = Number of points per element.
5233 typedef struct _ZoneSpec_s
5235 UniqueID_t UniqueID;
5236 ZoneName_t Name;
5237 EntIndex_t ParentZone;
5238 Strand_t StrandID;
5239 double SolutionTime;
5240 LgIndex_t NumPtsI; // ...NumDataPts
5241 LgIndex_t NumPtsJ; // ...NumElements
5242 LgIndex_t NumPtsK; // ...NumPtsPerElem or NumFaces
5243 LgIndex_t ICellDim; // ...currently not used
5244 LgIndex_t JCellDim; // ...currently not used
5245 LgIndex_t KCellDim; // ...currently not used
5246 ZoneType_e Type;
5247 ZoneLoadInfo_s ZoneLoadInfo;
5248 AuxData_pa AuxData;
5249 Boolean_t BuildZoneOptInfo;
5251 /* classic data only */
5252 FaceNeighborMode_e FNMode;
5253 Boolean_t FNAreCellFaceNbrsSupplied; // ...meaning we don't need to update them
5255 /* polytope data only */
5256 LgIndex_t NumFaceNodes;
5257 LgIndex_t NumFaceBndryFaces;
5258 LgIndex_t NumFaceBndryItems;
5259 } ZoneSpec_s;
5263 #if defined TECPLOTKERNEL
5264 /* CORE SOURCE CODE REMOVED */
5265 #endif /* TECPLOTKERNEL */
5267 typedef struct _GenericImage_a *GenericImage_pa;
5269 typedef struct _TextBox_s
5271 TextBox_e BoxType; /* Used to be textbox */
5272 double Margin; /* Used to be textboxmargin */
5273 double LineThickness; /* Used to be textboxmargin */
5274 ColorIndex_t BColor; /* Used to be textboxcolor */
5275 ColorIndex_t FillBColor; /* Used to be textboxfillcolor */
5276 } TextBox_s;
5279 typedef struct _Text_s
5281 UniqueID_t UniqueID; /* Not used yet */
5282 AnchorPos_u AnchorPos;
5283 CoordSys_e PositionCoordSys;
5284 EntIndex_t Zone;
5285 Boolean_t AttachToZone; /* New */
5286 ColorIndex_t BColor; /* Used to be TextColor */
5287 TextShape_s TextShape;
5288 TextBox_s Box; /* Box items used to be here*/
5289 double Angle; /* NOTE: short in v6, now in rad */
5290 TextAnchor_e Anchor; /* New */
5291 double LineSpacing; /* New */
5292 Scope_e Scope;
5293 char *MacroFunctionCommand;
5294 Clipping_e Clipping;
5295 char *Text;
5296 struct _Text_s *NextText;
5297 struct _Text_s *PrevText;
5298 } Text_s;
5301 typedef struct _GenericGeomData_s
5303 FieldData_pa V1Base;
5304 FieldData_pa V2Base;
5305 FieldData_pa V3Base;
5306 } GenericGeomData_s;
5308 typedef struct _PolarGeomData_s
5310 FieldData_pa ThetaBase;
5311 FieldData_pa RBase;
5312 } PolarGeomData_s;
5314 typedef struct _CartesianGeomData_s
5316 FieldData_pa XBase;
5317 FieldData_pa YBase;
5318 FieldData_pa ZBase;
5319 } CartesianGeomData_s;
5322 * This union is designed to allow different plottypes
5323 * to access the same values by different names. In
5324 * C++ we could use member access functions, or we
5325 * could have used macros, but instead we use this
5326 * union. NOTE: This only works if all the structures
5327 * have the same alignment.
5329 typedef union _GeomData_u
5331 GenericGeomData_s Generic;
5332 CartesianGeomData_s XYZ;
5333 PolarGeomData_s ThetaR;
5334 } GeomData_u;
5336 typedef struct _Geom_s
5338 UniqueID_t UniqueID;
5339 GeomType_e GeomType;
5340 CoordSys_e PositionCoordSys;
5341 AnchorPos_u AnchorPos;
5342 Boolean_t AttachToZone;
5343 EntIndex_t Zone;
5344 ColorIndex_t BColor;
5345 Boolean_t IsFilled;
5346 ColorIndex_t FillBColor;
5347 LinePattern_e LinePattern;
5348 double PatternLength;
5349 double LineThickness;
5350 Scope_e Scope;
5351 DrawOrder_e DrawOrder;
5352 Clipping_e Clipping;
5353 FieldDataType_e DataType;
5354 char *MacroFunctionCommand;
5355 ArrowheadStyle_e ArrowheadStyle;
5356 ArrowheadAttachment_e ArrowheadAttachment;
5357 double ArrowheadSize;
5358 double ArrowheadAngle;
5359 SmInteger_t NumEllipsePts;
5360 char *ImageFileName;
5361 LgIndex_t ImageNumber; /* used only to locate images within .lpk files */
5362 Boolean_t MaintainAspectRatio;
5363 double PixelAspectRatio; /* VerticalPixelsPerHorizontalPixel */
5364 SmInteger_t NumSegments;
5365 SegPtsArray_t NumSegPts;
5366 GeomData_u GeomData;
5367 ImageResizeFilter_e ImageResizeFilter;
5368 /* Internal Scratch */
5369 GenericImage_pa _ImageData;
5370 struct _Geom_s *_NextGeom;
5371 struct _Geom_s *_PrevGeom;
5372 } Geom_s;
5375 typedef struct _Text_s *Text_pa;
5376 typedef struct _Geom_s *Geom_pa;
5379 #if defined TECPLOTKERNEL
5380 /* CORE SOURCE CODE REMOVED */
5381 #if defined USE_OOSTYLE
5382 #endif
5383 #if defined USE_OOSTYLE
5384 #endif
5385 #endif /* TECPLOTKERNEL */
5387 /* ENDREMOVEFROMADDON */
5388 /* - NO DOXYGEN COMMENT GENERATION -
5389 * Page creation callback is responsible for creating a RenderHandler for the page and
5390 * calling @ref TecEngPageCreateNew(ArbParam_t RenderHandle)
5392 * The RenderHandler type can be anything, for example,a pointer to a class instance that will
5393 * be responsible for handling requests from the engine to perform operations on
5394 * a page.
5396 * @param PageConstructionHints a string list of construction hints that can be used for deciding
5397 * how the page should be displayed in an application's UI. The construction hints could have been
5398 * restored from a saved layout file or passed to @ref TecUtilPageCreateNew function.
5400 * @param RegistrationClientData
5401 * Client data that was registered with the callback.
5403 * @return TRUE if page create request was handled and TecEngPageCreateNew() returned TRUE.
5405 * @sa TecEngPageCreateRegisterCallback, TecEngPageCreateNew
5407 * @since
5408 * 11.0-5-014
5410 typedef Boolean_t (STDCALL *PageCreateCallback_pf)(StringList_pa PageConstructionHints,
5411 ArbParam_t RegistrationClientData);
5413 /* - NO DOXYGEN COMMENT GENERATION -
5414 * Page destruction callback responsible for destroying a page.
5416 * @param PageClientData
5417 * Data associated with a page that was returned from the PageCreateCallback_pf
5418 * callback function. You will get a different value for each page.
5420 * @param RegistrationClientData
5421 * Data associated with the registration of this function. This will always return
5422 * the value supplied in the original registration of this function.
5424 * @sa TecEngPageDestroyRegisterCallback, PageCreateCallback_pf
5426 * @since
5427 * 11.0-5-014
5429 typedef void (STDCALL *PageDestroyCallback_pf)(ArbParam_t PageClientData,
5430 ArbParam_t RegistrationClientData);
5432 /* - NO DOXYGEN COMMENT GENERATION -
5433 * Callback responsible for informing the parent application of a new current page.
5434 * Note that this could be done via a state change monitor but a more secure method
5435 * is needed as state changes may be shut down from time to time.
5437 * @param PageClientData
5438 * Data associated with a page that was returned from the PageCreateCallback_pf
5439 * callback function. You will get a different value for each page.
5441 * @param RegistrationClientData
5442 * Data associated with the registration of this function. This will always return
5443 * the value supplied in the original registration of this function.
5445 * @since
5446 * 11.0-5-017
5448 typedef void (STDCALL *PageNewCurrentCallback_pf)(ArbParam_t PageClientData,
5449 ArbParam_t RegistrationClientData);
5451 /* - NO DOXYGEN COMMENT GENERATION -
5452 * Callback responsible for creation of an offscreen image.
5454 * @param RegistrationClientData
5455 * Data associated with the registration of this function. This will always return
5456 * the value supplied in the original registration of this function.
5458 * @param ImageHandle handle to a newly created image. This is an output parameter.
5460 * @return TRUE if an offscreen image was created successfully.
5462 * @since
5463 * 11.2-0-054
5465 typedef Boolean_t (STDCALL *OffscreenImageCreateCallback_pf)(ScreenDim_t Width,
5466 ScreenDim_t Height,
5467 ArbParam_t RegistrationClientData,
5468 TP_OUT ArbParam_t* ImageHandle);
5470 /* - NO DOXYGEN COMMENT GENERATION -
5471 * Callback responsible for destruction of an offscreen image.
5473 * @param ImageHandle handle to an offscreen image to be destroyed.
5475 * @param RegistrationClientData
5476 * Data associated with the registration of this function. This will always return
5477 * the value supplied in the original registration of this function.
5479 * @since
5480 * 11.2-0-054
5482 typedef void (STDCALL *OffscreenImageDestroyCallback_pf)(ArbParam_t ImageHandle,
5483 ArbParam_t RegistrationClientData);
5485 /* - NO DOXYGEN COMMENT GENERATION -
5486 * Callback responsible for returning RGB values for a row.
5488 * @param ImageHandle
5489 * Handle to an off-screen image from which RGB values to be retrieved.
5491 * @param Row
5492 * Row for which RGB values to be retrieved.
5494 * @param RedArray
5495 * Array to receive the red byte values for the specified Row. The number of values in
5496 * the array must equal the width of the image. The array address is maintained by the
5497 * Tecplot Engine until the image is destroyed however it is reused for each invocation
5498 * of this callback.
5500 * @param GreenArray
5501 * Array to receive the green byte values for the specified Row. The number of values in
5502 * the array must equal the width of the image. The array address is maintained by the
5503 * Tecplot Engine until the image is destroyed however it is reused for each invocation
5504 * of this callback.
5506 * @param BlueArray
5507 * Array to receive the blue byte values for the specified Row. The number of values in
5508 * the array must equal the width of the image. The array address is maintained by the
5509 * Tecplot Engine until the image is destroyed however it is reused for each invocation
5510 * of this callback.
5512 * @param RegistrationClientData
5513 * Data associated with the registration of this function. This will always return
5514 * the value supplied in the original registration of this function.
5516 * @return TRUE if successful, FALSE otherwise.
5518 * @since
5519 * 11.2-0-054
5521 typedef Boolean_t (STDCALL *OffscreenImageGetRGBRowCallback_pf)(ArbParam_t ImageHandle,
5522 ScreenDim_t Row,
5523 ArbParam_t RegistrationClientData,
5524 TP_ARRAY_OUT Byte_t* RedArray,
5525 TP_ARRAY_OUT Byte_t* GreenArray,
5526 TP_ARRAY_OUT Byte_t* BlueArray);
5528 #if defined MSWIN
5529 /* - NO DOXYGEN COMMENT GENERATION -
5530 * Callback responsible for printing an image on the specified printer DC
5532 * @param PrintDC a device context of a printer on which the printing should be performed.
5534 * @param ImageHandle handle to an image to print.
5536 * @param Palette specifies if an image should be printed as a color or monochrome image.
5538 * @param RegistrationClientData
5539 * Data associated with the registration of this function. This will always return
5540 * the value supplied in the original registration of this function.
5542 * @return TRUE if the printing operation was successfull.
5544 * @since
5545 * 11.2-0-463
5547 typedef Boolean_t (STDCALL *WinPrintImageCallback_pf)(HDC PrintDC,
5548 ArbParam_t ImageHandle,
5549 Palette_e Palette,
5550 ArbParam_t RegistrationClientData);
5552 #endif /* MSWIN */
5554 #if defined MSWIN
5555 /* - NO DOXYGEN COMMENT GENERATION -
5556 * Callback responsible for providing a printer context.
5558 * @param RegistrationClientData
5559 * Data associated with the registration of this function. This will always return
5560 * the value supplied in the original registration of this function.
5562 * @return HDC context of the destination printer.
5564 * @since
5565 * 11.2-0-468
5567 typedef HDC(STDCALL *WinPrinterGetContextCallback_pf)(ArbParam_t RegistrationClientData);
5569 #endif /* MSWIN */
5571 /* - NO DOXYGEN COMMENT GENERATION -
5572 * Render destination callback responsible for switching the render destination
5573 * of the OpenGL drawing state when requested by the Tecplot engine.
5575 * @since
5576 * 11.0-0-397
5578 * @param PageRenderDest
5579 * Enumeration of page render destination of interest.
5581 * @param RenderDestClientData
5582 * Data associated with a render destination, such as returned from the PageCreateCallback_pf or
5583 * OffscreenImageCreate_pf callback functions.
5585 * @param RegistrationClientData
5586 * Data associated with the registration of this function. This will always return
5587 * the value supplied in the original registration of this function.
5589 * @return
5590 * TRUE if render destination was set successfully. FALSE, otherwise.
5592 * @sa TecEngRenderDestRegisterCallback
5594 typedef Boolean_t (STDCALL *RenderDestCallback_pf)(PageRenderDest_e PageRenderDest,
5595 ArbParam_t RenderDestClientData,
5596 ArbParam_t RegistrationClientData);
5598 /* - NO DOXYGEN COMMENT GENERATION -
5599 * Render query callback responsible for informing Tecplot if the page
5600 * associated with the PageClientData should be rendered into.
5602 * @since
5603 * 11.0-5-018
5605 * @param PageClientData
5606 * Data associated with a page that was returned from the
5607 * PageCreateCallback_pf callback function.
5608 * @param RegistrationClientData
5609 * Data associated with the registration of this function. This will always
5610 * return the value supplied in the original registration of this function.
5613 * @return
5614 * TRUE if Tecplot should render to the page identified by the
5615 * PageClientData, FALSE otherwise.
5617 * @sa TecEngRenderQueryRegisterCallback
5619 typedef Boolean_t (STDCALL *RenderQueryCallback_pf)(ArbParam_t PageClientData,
5620 ArbParam_t RegistrationClientData);
5621 /* - NO DOXYGEN COMMENT GENERATION -
5622 * Render destination size callback responsible for returning the size of the
5623 * specified render destination when requested by the Tecplot engine.
5625 * @since
5626 * 11.0-0-397
5628 * @param PageClientData
5629 * Data associated with a page that was returned from the
5630 * PageCreateCallback_pf callback function.
5631 * @param RegistrationClientData
5632 * Client data that was registered with the callback.
5633 * @param Width
5634 * Pointer who's contents should receive the width of the current render
5635 * destination.
5636 * @param Height
5637 * Pointer who's contents should receive the height of the current render
5638 * destination.
5640 * @sa TecEngRenderDestSizeRegisterCallback
5642 typedef void (STDCALL *RenderDestSizeCallback_pf)(ArbParam_t PageClientData,
5643 ArbParam_t RegistrationClientData,
5644 TP_OUT LgIndex_t* Width,
5645 TP_OUT LgIndex_t* Height);
5647 /* - NO DOXYGEN COMMENT GENERATION -
5648 * Callback responsible for swapping the front and back buffers for the current
5649 * OpenGL drawing state's render destination when requested by the Tecplot
5650 * engine.
5652 * @since
5653 * 11.0-0-397
5655 * @param RegistrationClientData
5656 * Client data that was registered with the callback.
5658 * @sa TecUtilpBuffersRegisterCallback
5660 typedef void (STDCALL *SwapBuffersCallback_pf)(ArbParam_t RegistrationClientData);
5663 /* - NO DOXYGEN COMMENT GENERATION -
5664 * Callback responsible for querying of key states.
5666 * @since
5667 * 11.0-0-399
5669 * @param RegistrationClientData
5670 * Client data that was registered with the callback.
5671 * @param IsShiftKeyDown
5672 * Boolean pointer. If non-NULL, set the boolean to TRUE if the Shift key is
5673 * down or FALSE if it is up.
5674 * @param IsAltKeyDown
5675 * Boolean pointer. If non-NULL, set the boolean to TRUE if the Alt key is
5676 * down or FALSE if it is up.
5677 * @param IsCntrlKeyDown
5678 * Boolean pointer. If non-NULL, set the boolean to TRUE if the Cntrl key is
5679 * down or FALSE if it is up.
5681 * @sa TecEngKeyStateRegisterCallback
5683 typedef void (STDCALL *KeyStateCallback_pf)(ArbParam_t RegistrationClientData,
5684 TP_OUT Boolean_t* IsShiftKeyDown,
5685 TP_OUT Boolean_t* IsAltKeyDown,
5686 TP_OUT Boolean_t* IsCntrlKeyDown);
5688 /* - NO DOXYGEN COMMENT GENERATION -
5689 * Callback responsible for querying of a mouse button state.
5691 * @since
5692 * 11.0-0-424
5694 * @param Button
5695 * Mouse button number to query. Button numbers start at one.
5696 * @param RegistrationClientData
5697 * Client data that was registered with the callback.
5699 * @return
5700 * TRUE if the specified mouse button is down, FALSE otherwise.
5702 * @sa TecEngMouseButtonStateRegisterCallback
5704 typedef Boolean_t (STDCALL *MouseButtonStateCallback_pf)(int Button,
5705 ArbParam_t RegistrationClientData);
5707 /* - NO DOXYGEN COMMENT GENERATION -
5708 * Callback responsible for setting wait cursor when requested by the kernel
5710 * @since
5711 * 11.2-0-302
5713 * @param Activate
5714 * TRUE if the kernel is requesting that the wait cursor be activated.
5715 * FALSE if the kernel is requesting that the wait cursor be deactivated.
5716 * @param RegistractionClientData
5717 * Client data that was registered with the callback.
5719 * @sa TecEngWaitCursorStateRegisterCallback
5721 typedef void (STDCALL *WaitCursorStateCallback_pf)(Boolean_t Activate,
5722 ArbParam_t RegistrationClientData);
5724 /* - NO DOXYGEN COMMENT GENERATION -
5725 * Callback responsible for setting cursor style when requested by the kernel
5727 * @since
5728 * 11.2-0-302
5730 * @param CursorStyle
5731 * The cursor style which the kernel is requesting.
5732 * @param RenderHandle
5733 * Handle to page where new cursor shape is being set.
5734 * @param RegistractionClientData
5735 * Client data that was registered with the callback.
5737 * @sa TecEngBaseCursorStyleRegisterCallback
5739 typedef void (STDCALL *BaseCursorStyleCallback_pf)(CursorStyle_e CursorStyle,
5740 ArbParam_t RenderHandle,
5741 ArbParam_t RegistrationClientData);
5743 /* - NO DOXYGEN COMMENT GENERATION -
5744 * Callback responsible for processing events when the Tecplot engine is busy
5745 * peforming a requested operation. This callback will be called at regular
5746 * intervals to repair the interface and if required check for interrupts. Very
5747 * little work should be done by this function.
5749 * @since
5750 * 11.0-0-415
5752 * @param RegistrationClientData
5753 * Client data that was registered with the callback.
5755 * @sa TecEngProcessBusyEventsRegisterCallback, TecUtilInterrupt
5757 typedef void (STDCALL *ProcessBusyEventsCallback_pf)(ArbParam_t RegistrationClientData);
5759 /* - NO DOXYGEN COMMENT GENERATION -
5760 * Callback responsible for launching a dialog.
5762 * @since
5763 * 11.0-0-415
5765 * @param RegistrationClientData
5766 * Client data that was registered with this launch dialog callback.
5768 * @return
5769 * TRUE if the dialog was launched, FALSE if it could not be launched
5770 * programmatically.
5772 * @sa TecUtilDialogLaunch, TecUtilDialogDrop
5774 typedef Boolean_t (STDCALL *DialogLaunchCallback_pf)(ArbParam_t RegistrationClientData);
5776 /* - NO DOXYGEN COMMENT GENERATION -
5777 * Callback responsible for dropping a dialog.
5779 * @since
5780 * 11.0-0-407
5782 * @param RegistrationClientData
5783 * Client data that was registered with this drop dialog callback.
5785 * @sa TecUtilDialogLaunch, TecUtilDialogDrop
5787 typedef void (STDCALL *DialogDropCallback_pf)(ArbParam_t RegistrationClientData);
5789 /* - NO DOXYGEN COMMENT GENERATION -
5790 * Callback responsible for querying of the physical display's horizontal and
5791 * vertical dot pitch.
5793 * @since
5794 * 11.0-0-407
5796 * @param RegistrationClientData
5797 * Client data that was registered with the callback.
5798 * @param IDotsPerCm
5799 * Pointer who's contents should receive the physical display's horizontal
5800 * dot pitch in terms of the number of dots per centimeter.
5801 * @param JDotsPerCm
5802 * Pointer who's contents should receive the physical display's vertical
5803 * dot pitch in terms of the number of dots per centimeter.
5805 * @sa TecEngDotPitchRegisterCallback
5807 typedef void (STDCALL *DotPitchCallback_pf)(ArbParam_t RegistrationClientData,
5808 TP_OUT double* IDotsPerCm,
5809 TP_OUT double* JDotsPerCm);
5811 /* - NO DOXYGEN COMMENT GENERATION -
5812 * Callback responsible for querying of the physical display's width and
5813 * height in pixels.
5815 * @since
5816 * 11.2-0-471
5818 * @param RegistrationClientData
5819 * Client data that was registered with the callback.
5820 * @param WidthInPixels
5821 * Pointer who's contents should receive the physical display's width
5822 * in pixels. NULL may be passed.
5823 * @param HeightInPixels
5824 * Pointer who's contents should receive the physical display's height
5825 * in pixels. NULL may be passed.
5827 * @sa TecEngScreenSizeRegisterCallback
5829 typedef void (STDCALL *ScreenSizeCallback_pf)(ArbParam_t RegistrationClientData,
5830 TP_OUT int* WidthInPixels,
5831 TP_OUT int* HeightInPixels);
5833 /* - NO DOXYGEN COMMENT GENERATION -
5834 * Callback responsible for displaying a message box dialog and returning the
5835 * user's response.
5837 * @since
5838 * 11.0-0-415
5840 * @param MessageString
5841 * Message string to display in the dialog.
5842 * @param MessageBoxType
5843 * Type of message box to display.
5844 * @param RegistrationClientData
5845 * Client data that was registered with the callback.
5847 * @return
5848 * Result of user's response to the dialog.
5850 * @sa TecEngDialogMessageBoxRegisterCallback
5852 typedef MessageBoxReply_e(STDCALL *DialogMessageBoxCallback_pf)(const char* MessageString,
5853 MessageBoxType_e MessageBoxType,
5854 ArbParam_t RegistrationClientData);
5856 /* - NO DOXYGEN COMMENT GENERATION -
5857 * Callback responsible for displaying a status line
5859 * @since
5860 * 11.2-0-085
5862 * @param StatusString
5863 * Message string to display in the dialog.
5865 * @param RegistrationClientData
5866 * Client data that was registered with the callback.
5868 * @sa TecEngStatusLineRegisterCallback
5870 typedef void (STDCALL *StatusLineCallback_pf)(const char* StatusString,
5871 ArbParam_t RegistrationClientData);
5873 /* - NO DOXYGEN COMMENT GENERATION -
5874 * Callback that will be called with the updated progress status.
5876 * @since 11.2-0-098
5879 * @param ProgressStatus
5880 * Percentage of the progress.
5882 * @param RegistrationClientData
5883 * Client data that was registered with the callback.
5885 * @sa TecEngProgressMonitorRegisterCallback
5887 typedef void (STDCALL *ProgressMonitorCallback_pf)(int ProgressStatus,
5888 ArbParam_t RegistrationClientData);
5889 /* - NO DOXYGEN COMMENT GENERATION -
5890 * Callback that will be called with Tecplot Engine is about to perform a lengthy operation.
5891 * The client that registers such the callback may present a user with a progress bar,
5892 * if the ShowProgressBar argument is TRUE, and a stop button that would interrupt the operation by
5893 * calling TecUtilInterrupt().
5895 * @since 11.2-0-098
5897 * @param ShowProgressBar
5898 * Boolean indicating if the progress steps can be monitored for an operation. If TRUE, Tecplot Engine will be calling
5899 * the registered ProgressMonitorCallback_pf function with the updated progress status.
5901 * @param IsInterruptible
5902 * Boolean indicating if the operation can be interrupted before completion.
5904 * @param RegistrationClientData
5905 * Client data that was registered with the callback.
5907 * @sa TecEngProgressMonitorRegisterCallback
5909 typedef void (STDCALL *ProgressMonitorStartCallback_pf)(Boolean_t ShowProgressBar,
5910 Boolean_t IsInterruptible,
5911 ArbParam_t RegistrationClientData);
5912 /* - NO DOXYGEN COMMENT GENERATION -
5913 * Callback tht will be called with Tecplot Engine has finished performing a lengthy operation.
5914 * At this point, client may hide progress bar that was shown during handling of ProgressMonitorStartCallback callback and
5915 * disable or hide the stop button.
5917 * @since 11.2-0-098
5919 * @param RegistrationClientData
5920 * Client data that was registered with the callback.
5922 * @sa TecEngProgressMonitorRegisterCallback
5924 typedef void (STDCALL *ProgressMonitorFinishCallback_pf)(ArbParam_t RegistrationClientData);
5926 /*********************************************************
5927 * Add-on Timers
5928 *********************************************************/
5930 * This is called when a registered timer fires.
5932 * @par Limitation:
5933 * Unix and Linux versions of Tecplot currently do not fire timer events when
5934 * Tecplot is running in batch mode (with the -b flag). This behavior
5935 * limitation is subject to change.
5937 * @param ClientData
5938 * Arbitrary client data.
5940 * @return
5941 * Return TRUE if the timer should be reinstated. Return FALSE
5942 * to stop subsequent callbacks.
5945 * <FortranSyntax>
5946 * INTEGER*4 FUNCTION MyAddOnTimerCallback(
5947 * & ClientDataPtr)
5948 * POINTER (ClientDataPtr,DummyClientData)
5949 * </FortranSyntax>
5951 typedef Boolean_t (STDCALL *AddOnTimerCallback_pf)(ArbParam_t ClientData);
5953 /* - NO DOXYGEN COMMENT GENERATION -
5954 * Callback that will be called when Tecplot Engine has requested an event timer to be created.
5956 * @since 12.0.1.5642
5958 * @param ClientData
5959 * ClientData that should be sent in the callback.
5961 * @param TimerCallback
5962 * Callback to fire when the timer interval has expired.
5964 * @param Interval
5965 * The time (in milliseconds) after which the timer callback should be called.
5967 * @param RegistrationClientData
5968 * Client data that was registered via TecEngTimerRegisterCallback.
5970 * @return
5971 * Return TRUE if the timer was successfully created, FALSE if not.
5973 typedef Boolean_t (STDCALL *TimerCallback_pf)(AddOnTimerCallback_pf TimerCallback,
5974 ArbParam_t ClientData,
5975 UInt32_t Interval,
5976 ArbParam_t RegistrationClientData);
5979 * This function is called when the user activates a menu item
5980 * added via TecUtilMenuInsertOption or TecUtilMenuInsertToggle.
5982 * @param RegistrationClientData
5983 * Arbitrary client data.
5985 typedef void (STDCALL *MenuActivateCallback_pf)(ArbParam_t RegistrationClientData);
5988 * This function is called when the a menu is deleted.
5990 * @param RegistrationClientData
5991 * Arbitrary client data.
5993 typedef void (STDCALL *MenuDeleteCallback_pf)(ArbParam_t RegistrationClientData);
5996 * This function is called to determine the sensitivity for a menu item (option,
5997 * toggle or submenu).
5999 * @param RegistrationClientData
6000 * Arbitrary client data.
6002 * @return
6003 * Return TRUE if the menu item should be sensitive to user input,
6004 * or FALSE if it should be insensitive to user input (gray).
6006 typedef Boolean_t (STDCALL *MenuGetSensitivityCallback_pf)(ArbParam_t RegistrationClientData);
6009 * This function is called to determine the checked state for a toggle menu item.
6011 * @param RegistrationClientData
6012 * Arbitrary client data.
6014 * @return
6015 * Return TRUE if the toggle should be checked,
6016 * or FALSE if it should be unchecked.
6018 typedef Boolean_t (STDCALL *MenuGetToggleStateCallback_pf)(ArbParam_t RegistrationClientData);
6022 * This function is called when the user performs a probe event.
6024 * @param IsNearestPoint
6025 * This is TRUE if the previous probe event was a nearest point probe.
6026 * This is FALSE if it was an interpolated probe.
6028 * <FortranSyntax>
6029 * SUBROUTINE MyProbeDestinationCallback(
6030 * IsNearestPoint)
6031 * INTEGER*4 IsNearestPoint
6032 * </FortranSyntax>
6034 typedef void (STDCALL *ProbeDestination_pf)(Boolean_t IsNearestPoint);
6038 * This function type called when a probe callback is installed via
6039 * TecUtilProbeInstallCallbackX.
6041 * @param WasSuccessful
6042 * This is TRUE if the previous probe event was successful.
6043 * This is FALSE if it was the probe failed. Probe events may fail if the
6044 * user probes in a region of the plot that contains no data.
6046 * @param IsNearestPoint
6047 * This is TRUE if the previous probe event was a nearest point probe.
6048 * This is FALSE if it was an interpolated probe.
6050 * @param ClientData
6051 * Arbitrary client data.
6054 typedef void (STDCALL *ProbeDestinationX_pf)(Boolean_t WasSuccessful,
6055 Boolean_t IsNearestPoint,
6056 ArbParam_t ClientData);
6060 * DynamicMenu Functions are called upon a user selecting
6061 * a menu item added via TecUtilMenuAddOption.
6063 * <FortranSyntax>
6064 * SUBROUTINE MyDynamicMenuCallback()
6065 * </FortranSyntax>
6067 typedef void (STDCALL *DynamicMenuCallback_pf)(void);
6070 * This callback signature is used to perform redraw events.
6072 * @since
6073 * 11.0-0-363
6075 * @param RedrawReason
6076 * An enumerated value describing the reason for the re-draw event.
6077 * @param ClientData
6078 * Client data that was registered with the callback.
6080 * @return
6081 * TRUE if successfull, FALSE otherwise.
6083 * <FortranSyntax>
6084 * INTEGER*4 FUNCTION DrawEventCallback(
6085 * & RedrawReason,
6086 * & ClientDataPtr)
6087 * INTEGER*4 RedrawReason
6088 * POINTER (ClientDataPtr,ClientData)
6089 * </FortranSyntax>
6091 * @sa TecUtilEventAddPreDrawCallback(), TecUtilEventAddPostDrawCallback()
6093 typedef Boolean_t (STDCALL *DrawEventCallback_pf)(RedrawReason_e RedrawReason,
6094 ArbParam_t ClientData);
6098 * Compares two strings from a list string. Note that either string may be NULL
6099 * as StringLists allow for NULL elements.
6101 * @param String1
6102 * String to compare against String2.
6103 * @param String2
6104 * String to compare against String1.
6105 * @param ClientData
6106 * Contextual information that was passed to the 'StringListSort' function.
6108 * @return
6109 * - A value less than zero if String1 is less than String2.
6110 * - A value of zero if String1 is equal to String2.
6111 * - A value greater than zero if String1 is greater than String2.
6113 typedef int (STDCALL *StringListStringComparator_pf)(const char* String1,
6114 const char* String2,
6115 ArbParam_t ClientData);
6118 * Gets a value at the specified point index using, if necessary, the private
6119 * client data retrieved from the field data handle.
6121 * @par Note:
6122 * This callback is called asynchronously. This callback should NOT
6123 * lock/unlock Tecplot.
6125 * @since
6126 * 10.0-3-128
6128 * @param FD
6129 * Field data handle for which to set the value. This
6130 * FieldValueGetFunction_pf must have been retrieved from this field data
6131 * handle via TecUtilDataValueRefGetGetFunc.
6133 * @param pt
6134 * Zero-based index into the field data.
6136 * @return
6137 * Value for that index, always passed as a double precision floating-point
6138 * value regardless of the data type of the field data handle.
6140 * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData()
6142 typedef double(STDCALL *FieldValueGetFunction_pf)(const FieldData_pa FD,
6143 LgIndex_t pt);
6146 * Sets a value at the specified index using the private client data retrieved
6147 * from the field data handle.
6149 * @par Note:
6150 * This callback is called asynchronously. This callback should NOT
6151 * lock/unlock Tecplot.
6153 * @since
6154 * 10.0-3-128
6156 * @param FD
6157 * Field data handle for which to set the value. This
6158 * FieldValueSetFunction_pf must have been retrieved from this field data
6159 * handle via TecUtilDataValueRefGetSetFunc.
6161 * @param pt
6162 * Zero-based index into the field data.
6164 * @param val
6165 * New value for that index, always passed as a double precision
6166 * floating-point value regardless of the data type of the field data handle.
6168 * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData()
6170 typedef void (STDCALL *FieldValueSetFunction_pf)(FieldData_pa FD,
6171 LgIndex_t pt,
6172 double val);
6175 * Callback responsible for loading the specified variable for Tecplot using
6176 * the private client data retrieved from the field data handle.
6178 * @par Note:
6179 * This callback is called asynchronously. With the exception of calls to
6180 * modify the field data all calls back to Tecplot through the TecUtil layer
6181 * should be limited to queries.
6183 * @since
6184 * 11.0-0-001
6186 * @param FieldData
6187 * Field data handle of the variable load.
6189 * @result
6190 * TRUE if the variable was loaded, FALSE if unable to do so.
6192 * @code
6193 * typedef struct
6195 * char *DataFileName;
6196 * long SeekOffset;
6197 * LgIndex_t NumValues;
6198 * ... other information needed to load variable data
6199 * } MyVariableClientData_s;
6201 * Boolean_t STDCALL MyVariableLoader(FieldData_pa FieldData)
6203 * REQUIRE(VALID_REF(FieldData));
6205 * MyVariableClientData_s *MyClientData = (MyVariableClientData_s *)TecUtilDataValueGetClientData(FieldData);
6207 * // open the data file
6208 * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb");
6209 * Boolean_t IsOk = (MyDataFile != NULL);
6211 * // seek to the place in the file where the variable data is located
6212 * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0);
6213 * if (IsOk)
6215 * // load the data into the variable's field data
6216 * IsOk = ReadMyDataInfoVariable(MyDataFile, MyClientData, FieldData);
6219 * // cleanup
6220 * if (MyDataFile != NULL)
6221 * fclose(MyDataFile);
6223 * ENSURE(VALID_BOOLEAN(IsOk));
6224 * return IsOk;
6226 * @endcode
6228 * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData()
6230 typedef Boolean_t (STDCALL *LoadOnDemandVarLoad_pf)(FieldData_pa FieldData);
6233 * Callback responsible for performing private actions associated with a
6234 * variable being unloaded using the private client data retrieved from the
6235 * field data handle. Whenever possible the callback should honor Tecplot's
6236 * request to unload the variable by returning TRUE. This callback is
6237 * responsible for performing private actions associated with a variable being
6238 * unloaded.
6240 * Most add-ons should simply supply NULL for this callback thereby instructing
6241 * Tecplot to handle the unloading (and subsequent reloading) of the variable
6242 * without the intervention of the add-on.
6244 * @par Note:
6245 * This callback is called asynchronously. All calls back to Tecplot through
6246 * the TecUtil layer should be limited to queries.
6248 * @since
6249 * 11.0-0-001
6251 * @param FieldData
6252 * Field data handle of the variable Tecplot wants to unload.
6254 * @code
6255 * typedef struct
6257 * char *DataFileName;
6258 * long SeekOffset;
6259 * LgIndex_t NumValues;
6260 * ... other information needed to load variable data
6261 * } MyVariableClientData_s;
6263 * Boolean_t STDCALL MyVariableUnload(FieldData_pa FieldData)
6265 * REQUIRE(VALID_REF(FieldData));
6267 * // We don't have any private data to cleanup (i.e in addition to the
6268 * // private client data which we don't cleanup here) so all we have to do
6269 * // is return TRUE or FALSE letting Tecplot know that it can or can not
6270 * // unload the variable.
6271 * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the variable
6273 * ENSURE(VALID_BOOLEAN(Result));
6274 * return Result;
6276 * @endcode
6278 * @result
6279 * TRUE if the variable can be unloaded, FALSE otherwise. The add-on should
6280 * if at all possible honor the request to unload the variable. Most add-ons
6281 * should return TRUE.
6283 * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData()
6285 typedef Boolean_t (STDCALL *LoadOnDemandVarUnload_pf)(FieldData_pa FieldData);
6288 * Callback responsible for performing private actions associated with a
6289 * variable being cleaned up using the private client data retrieved from the
6290 * field data handle. Most add-ons will need to register this callback in order
6291 * to cleanup privately allocated client data.
6293 * @par Note:
6294 * This callback is called asynchronously. All calls back to Tecplot through
6295 * the TecUtil layer should be limited to queries.
6297 * @since
6298 * 11.0-0-001
6300 * @param FieldData
6301 * Field data handle of the variable being cleaned up.
6303 * @code
6304 * typedef struct
6306 * char *DataFileName;
6307 * long SeekOffset;
6308 * LgIndex_t NumValues;
6309 * ... other information needed to load variable data
6310 * } MyVariableClientData_s;
6312 * void STDCALL MyVariableCleanup(FieldData_pa FieldData)
6314 * REQUIRE(VALID_REF(FieldData));
6316 * MyVariableClientData_s *MyClientData = (MyVariableClientData_s *)TecUtilDataValueGetClientData(FieldData);
6318 * // cleanup privately allocated resources
6319 * free(MyClientData->DataFileName);
6320 * free(MyClientData);
6322 * @endcode
6324 * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData()
6326 typedef void (STDCALL *LoadOnDemandVarCleanup_pf)(FieldData_pa FieldData);
6329 * Callback responsible for loading the specified node mapping for Tecplot
6330 * using the private client data retrieved from the node mapping handle.
6332 * @par Note:
6333 * This callback is called asynchronously. With the exception of calls to
6334 * modify the node mapping, all calls back to Tecplot through the TecUtil
6335 * layer should be limited to queries.
6337 * @since
6338 * 11.3-0-010
6340 * @param NodeMap
6341 * Handle of the node mapping.
6343 * @result
6344 * TRUE if the node mapping was loaded, FALSE if unable to do so.
6346 * @code
6347 * typedef struct
6349 * char *DataFileName;
6350 * long SeekOffset;
6351 * ... other information needed to load node map data
6352 * } MyNodeMapClientData_s;
6354 * Boolean_t STDCALL MyNodeMapLoader(NodeMap_pa NodeMap)
6356 * REQUIRE(VALID_REF(NodeMap));
6358 * MyNodeMapClientData_s *MyClientData =
6359 * (MyNodeMapClientData_s *)TecUtilDataNodeGetClientData(NodeMap);
6361 * // open the data file
6362 * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb");
6363 * Boolean_t IsOk = (MyDataFile != NULL);
6365 * // seek to the place in the file where the node map data is located
6366 * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0);
6367 * if (IsOk)
6369 * // load the data into the zone's node map
6370 * IsOk = ReadMyNodeMapDataIntoZone(MyDataFile, MyClientData, NodeMap);
6373 * // cleanup
6374 * if (MyDataFile != NULL)
6375 * fclose(MyDataFile);
6377 * ENSURE(VALID_BOOLEAN(IsOk));
6378 * return IsOk;
6380 * @endcode
6382 * @sa TecUtilDataNodeCustomLOD(), TecUtilDataNodeGetClientData()
6384 typedef Boolean_t (STDCALL *LoadOnDemandNodeMapLoad_pf)(NodeMap_pa NodeMap);
6387 * Callback responsible for performing private actions associated with a
6388 * node mapping being unloaded using the private client data retrieved from the
6389 * node mapping handle. Whenever possible the callback should honor Tecplot's
6390 * request to unload the node mapping by returning TRUE.
6392 * Most add-ons should simply supply NULL for this callback thereby instructing
6393 * Tecplot to handle the unloading (and subsequent reloading) of the node mapping
6394 * without the intervention of the add-on.
6396 * @par Note:
6397 * This callback is called asynchronously. All calls back to Tecplot through
6398 * the TecUtil layer should be limited to queries.
6400 * @since
6401 * 11.3-0-010
6403 * @param NodeMap
6404 * Node mapping handle of the node mapping Tecplot wants to unload.
6406 * @code
6407 * Boolean_t STDCALL MyNodeMapUnload(NodeMap_pa NodeMap)
6409 * REQUIRE(VALID_REF(NodeMap));
6411 * // We don't have any private data to cleanup (i.e in addition to the
6412 * // private client data which we don't cleanup here) so all we have to do
6413 * // is return TRUE or FALSE letting Tecplot know that it can or can not
6414 * // unload the variable.
6415 * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the node mapping
6417 * ENSURE(VALID_BOOLEAN(Result));
6418 * return Result;
6420 * @endcode
6422 * @result
6423 * TRUE if the node mapping can be unloaded, FALSE otherwise. The add-on should
6424 * if at all possible honor the request to unload the node mapping. Most add-ons
6425 * should return TRUE.
6427 * @sa TecUtilDataNodeCustomLOD(), TecUtilDataNodeGetClientData()
6429 typedef Boolean_t (STDCALL *LoadOnDemandNodeMapUnload_pf)(NodeMap_pa NodeMap);
6432 * Callback responsible for performing private actions associated with a
6433 * node mapping being cleaned up using the private client data retrieved from the
6434 * node mapping handle. Most add-ons will need to register this callback in order
6435 * to cleanup privately allocated client data.
6437 * @par Note:
6438 * This callback is called asynchronously. All calls back to Tecplot through
6439 * the TecUtil layer should be limited to queries.
6441 * @since
6442 * 11.3-0-010
6444 * @param NodeMap
6445 * Node Mapping data handle of the node mapping being cleaned up.
6447 * @code
6448 * typedef struct
6450 * char *DataFileName;
6451 * long SeekOffset;
6452 * ... other information needed to load node map data
6453 * } MyNodeMapClientData_s;
6455 * void STDCALL MyNodeMapCleanup(NodeMap_pa NodeMap)
6457 * REQUIRE(VALID_REF(NodeMap));
6459 * MyNodeMapClientData_s *MyClientData = (MyNodeMapClientData_s *)TecUtilDataNodeGetClientData(NodeMap);
6461 * // cleanup privately allocated resources
6462 * free(MyClientData->DataFileName);
6463 * free(MyClientData);
6465 * @endcode
6467 * @sa TecUtilDataNodeCustomLOD(), TecUtilDataNodeGetClientData()
6469 typedef void (STDCALL *LoadOnDemandNodeMapCleanup_pf)(NodeMap_pa NodeMap);
6472 * Callback responsible for loading the specified face neighbor for Tecplot
6473 * using the private client data retrieved from the face neighbor handle.
6475 * @par Note:
6476 * This callback is called asynchronously. With the exception of calls to
6477 * modify the face neighbors, all calls back to Tecplot through the TecUtil
6478 * layer should be limited to queries.
6480 * @since
6481 * 11.3-0-010
6483 * @param FaceNeighbor
6484 * Handle of the face neighbors.
6486 * @result
6487 * TRUE if the face neighbors was loaded, FALSE if unable to do so.
6489 * @code
6490 * typedef struct
6492 * char *DataFileName;
6493 * long SeekOffset;
6494 * ...other information needed to load face neighbor data
6495 * } MyFaceNeighborClientData_s;
6497 * Boolean_t STDCALL MyFaceNeighborLoader(FaceNeighbor_pa FaceNeighbor)
6499 * REQUIRE(VALID_REF(FaceNeighbor));
6501 * MyFaceNeighborClientData_s *MyClientData =
6502 * (MyFaceNeighborClientData_s*)TecUtilDataFaceNbrGetClientData(FaceNeighbor);
6504 * // open the data file
6505 * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb");
6506 * Boolean_t IsOk = (MyDataFile != NULL);
6508 * // seek to the place in the file where the face neighbor data is located
6509 * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0);
6510 * if (IsOk)
6512 * // load the data into the zone's face neighbor
6513 * IsOk = ReadMyFaceNeighborDataIntoZone(MyDataFile, MyClientData, FaceNeighbor);
6516 * // cleanup
6517 * if (MyDataFile != NULL)
6518 * fclose(MyDataFile);
6520 * ENSURE(VALID_BOOLEAN(IsOk));
6521 * return IsOk;
6523 * @endcode
6525 * @sa TecUtilDataFaceNbrCustomLOD(), TecUtilDataFaceNbrGetClientData()
6527 typedef Boolean_t (STDCALL *LoadOnDemandFaceNeighborLoad_pf)(FaceNeighbor_pa FaceNeighbor);
6530 * Callback responsible for performing private actions associated with a
6531 * face neighbors being unloaded using the private client data retrieved from
6532 * the face neighbor handle. Whenever possible the callback should honor
6533 * Tecplot's request to unload the face neighbors by returning TRUE.
6535 * Most add-ons should simply supply NULL for this callback thereby instructing
6536 * Tecplot to handle the unloading (and subsequent reloading) of the face
6537 * neighbors without the intervention of the add-on.
6539 * @par Note:
6540 * This callback is called asynchronously. All calls back to Tecplot through
6541 * the TecUtil layer should be limited to queries.
6543 * @since
6544 * 11.3-0-010
6546 * @param FaceNeighbor
6547 * Face neighbor handle of the face neighbors Tecplot wants to unload.
6549 * @code
6550 * Boolean_t STDCALL MyFaceNeighborUnload(FaceNeighbor_pa FaceNeighbor)
6552 * REQUIRE(VALID_REF(FaceNeighbor));
6554 * // We don't have any private data to cleanup (i.e in addition to the
6555 * // private client data which we don't cleanup here) so all we have to do
6556 * // is return TRUE or FALSE letting Tecplot know that it can or can not
6557 * // unload the variable.
6558 * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the face neighbors
6560 * ENSURE(VALID_BOOLEAN(Result));
6561 * return Result;
6563 * @endcode
6565 * @result
6566 * TRUE if the face neighbors can be unloaded, FALSE otherwise. The add-on
6567 * should if at all possible honor the request to unload the face neighbors.
6568 * Most add-ons should return TRUE.
6570 * @sa TecUtilDataFaceNbrCustomLOD(), TecUtilDataFaceNbrGetClientData()
6572 typedef Boolean_t (STDCALL *LoadOnDemandFaceNeighborUnload_pf)(FaceNeighbor_pa FaceNeighbor);
6575 * Callback responsible for performing private actions associated with a face
6576 * neighbors being cleaned up using the private client data retrieved from the
6577 * face neighbor handle. Most add-ons will need to register this callback in
6578 * order to cleanup privately allocated client data.
6580 * @par Note:
6581 * This callback is called asynchronously. All calls back to Tecplot through
6582 * the TecUtil layer should be limited to queries.
6584 * @since
6585 * 11.3-0-010
6587 * @param FaceNeighbor
6588 * Face neighbor data handle of the Face neighbors being cleaned up.
6590 * @code
6591 * typedef struct
6593 * char *DataFileName;
6594 * long SeekOffset;
6595 * ... other information needed to load face neighbor data
6596 * } MyFaceNeighborClientData_s;
6598 * void STDCALL MyFaceNeighborCleanup(FaceNeighbor_pa FaceNeighbor)
6600 * REQUIRE(VALID_REF(FaceNeighbor));
6602 * MyFaceNeighborClientData_s *MyClientData = (MyFaceNeighborClientData_s *)TecUtilDataFaceNbrGetClientData(FaceNeighbor);
6604 * // cleanup privately allocated resources
6605 * free(MyClientData->DataFileName);
6606 * free(MyClientData);
6608 * @endcode
6610 * @sa TecUtilDataFaceNbrCustomLOD(), TecUtilDataFaceNbrGetClientData()
6612 typedef void (STDCALL *LoadOnDemandFaceNeighborCleanup_pf)(FaceNeighbor_pa FaceNeighbor);
6615 * Callback responsible for loading the specified face mapping for Tecplot
6616 * using the private client data retrieved from the face mapping handle.
6618 * @par Note:
6619 * This callback is called asynchronously. With the exception of calls to
6620 * modify the face mapping, all calls back to Tecplot through the TecUtil
6621 * layer should be limited to queries.
6623 * @since
6624 * 11.2-1-0
6626 * @param FaceMap
6627 * Handle of the face mapping.
6629 * @result
6630 * TRUE if the face mapping was loaded, FALSE if unable to do so.
6632 * @code
6633 * typedef struct
6635 * char *DataFileName;
6636 * long SeekOffset;
6637 * ... other information needed to load face map data
6638 * } MyFaceMapClientData_s;
6640 * Boolean_t STDCALL MyFaceMapLoader(FaceMap_pa FaceMap)
6642 * REQUIRE(VALID_REF(FaceMap));
6644 * MyFaceMapClientData_s *MyClientData =
6645 * (MyFaceMapClientData_s *)TecUtilDataFaceMapGetClientData(FaceMap);
6647 * // open the data file
6648 * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb");
6649 * Boolean_t IsOk = (MyDataFile != NULL);
6651 * // seek to the place in the file where the face map data is located
6652 * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0);
6653 * if (IsOk)
6655 * // load the data into the zone's face map
6656 * IsOk = ReadMyFaceMapDataIntoZone(MyDataFile, MyClientData, FaceMap);
6659 * // cleanup
6660 * if (MyDataFile != NULL)
6661 * fclose(MyDataFile);
6663 * ENSURE(VALID_BOOLEAN(IsOk));
6664 * return IsOk;
6666 * @endcode
6668 * @sa TecUtilDataFaceMapCustomLOD(), TecUtilDataFaceMapGetClientData()
6670 typedef Boolean_t (STDCALL *LoadOnDemandFaceMapLoad_pf)(FaceMap_pa FaceMap);
6673 * Callback responsible for performing private actions associated with a
6674 * face mapping being unloaded using the private client data retrieved from the
6675 * face mapping handle. Whenever possible the callback should honor Tecplot's
6676 * request to unload the face mapping by returning TRUE.
6678 * Most add-ons should simply supply NULL for this callback thereby instructing
6679 * Tecplot to handle the unloading (and subsequent reloading) of the face mapping
6680 * without the intervention of the add-on.
6682 * @par Note:
6683 * This callback is called asynchronously. All calls back to Tecplot through
6684 * the TecUtil layer should be limited to queries.
6686 * @since
6687 * 11.2-1-0
6689 * @param FaceMap
6690 * Face mapping handle of the face mapping Tecplot wants to unload.
6692 * @code
6693 * Boolean_t STDCALL MyFaceMapUnload(FaceMap_pa FaceMap)
6695 * REQUIRE(VALID_REF(FaceMap));
6697 * // We don't have any private data to cleanup (i.e in addition to the
6698 * // private client data which we don't cleanup here) so all we have to do
6699 * // is return TRUE or FALSE letting Tecplot know that it can or can not
6700 * // unload the variable.
6701 * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the face mapping
6703 * ENSURE(VALID_BOOLEAN(Result));
6704 * return Result;
6706 * @endcode
6708 * @result
6709 * TRUE if the face mapping can be unloaded, FALSE otherwise. The add-on should
6710 * if at all possible honor the request to unload the face mapping. Most add-ons
6711 * should return TRUE.
6713 * @sa TecUtilDataFaceMapCustomLOD(), TecUtilDataFaceMapGetClientData()
6715 typedef Boolean_t (STDCALL *LoadOnDemandFaceMapUnload_pf)(FaceMap_pa FaceMap);
6718 * Callback responsible for performing private actions associated with a
6719 * face mapping being cleaned up using the private client data retrieved from the
6720 * face mapping handle. Most add-ons will need to register this callback in order
6721 * to cleanup privately allocated client data.
6723 * @par Note:
6724 * This callback is called asynchronously. All calls back to Tecplot through
6725 * the TecUtil layer should be limited to queries.
6727 * @since
6728 * 11.2-1-0
6730 * @param FaceMap
6731 * Face Mapping data handle of the face mapping being cleaned up.
6733 * @code
6734 * typedef struct
6736 * char *DataFileName;
6737 * long SeekOffset;
6738 * ... other information needed to load face map data
6739 * } MyFaceMapClientData_s;
6741 * void STDCALL MyFaceMapCleanup(FaceMap_pa FaceMap)
6743 * REQUIRE(VALID_REF(FaceMap));
6745 * MyFaceMapClientData_s *MyClientData = (MyFaceMapClientData_s *)TecUtilDataFaceMapGetClientData(FaceMap);
6747 * // cleanup privately allocated resources
6748 * free(MyClientData->DataFileName);
6749 * free(MyClientData);
6751 * @endcode
6753 * @sa TecUtilDataFaceMapCustomLOD(), TecUtilDataFaceMapGetClientData()
6755 typedef void (STDCALL *LoadOnDemandFaceMapCleanup_pf)(FaceMap_pa FaceMap);
6759 * ExtractDestination functions are called upon successful completion of an
6760 * extract polyline or extract discrete points operation.
6762 * @param NumPts
6763 * Number of points extracted.
6765 * @param XValues
6766 * Double precision array of X-Coordinates of the extracted polyline.
6768 * @param YValues
6769 * Double precision array of Y-Coordinates of the extracted polyline.
6771 * <FortranSyntax>
6772 * INTEGER*4 FUNCTION MyExtractDestinationCallback(
6773 * & NumPts,
6774 * & XValues,
6775 * & YValues)
6776 * INTEGER*4 NumPts
6777 * REAL*8 XValues
6778 * REAL*8 YValues
6779 * </FortranSyntax>
6781 typedef void (STDCALL *ExtractDestination_pf)(LgIndex_t NumPts,
6782 double* XValues,
6783 double* YValues);
6788 * SelectFileOptionsCallback Functions are called when the
6789 * "Options" button is pressed in the modal file selection
6790 * dialog.
6792 * <FortranSyntax>
6793 * SUBROUTINE MySelectFileOptionsCallback()
6794 * </FortranSyntax>
6796 typedef void (STDCALL *SelectFileOptionsCallback_pf)(void);
6802 * Post data load instruction callback for "Converter-Plus" addons.
6804 * @param PreviousInstructions
6805 * The previous set of instructions used by the converter.
6807 * @param PreviousRawData
6808 * The previous raw data associated with the instructions.
6810 * @param PreviousZones
6811 * Set of zones loaded with the previous instructions.
6813 * <FortranSyntax>
6814 * SUBROUTINE MyConverterPostReadCallback(
6815 * & PreviousInstructions,
6816 * & PreviousRawData,
6817 * & PreviousZones)
6818 * CHARACTER*(*) CommandString
6819 * CHARACTER*(*) ErrMsgString
6820 * POINTER (PreviousZones,DummyPreviousZonesData)
6821 * </FortranSyntax>
6824 typedef void (STDCALL *ConverterPostReadCallback_pf)(const char* PreviousInstructions,
6825 const char* PreviousRawData,
6826 const Set_pa PreviousZones);
6830 * Callback registered by your addon to convert a foreign datafile into a
6831 * Tecplot Binary datafile format.
6833 * @return
6834 * Return TRUE if the conversion is successful. Otherwise return FALSE.
6835 * If FALSE is returned then *MessageString is assumed to contain an error
6836 * message.
6838 * @param DataFName
6839 * Name of the original foreign data file to be converted.
6841 * @param TempBinFName
6842 * Name of the temporary binary datafile that is created (by your converter).
6844 * @param MessageString
6845 * Reference to a string. If an error occurs during conversion allocate space
6846 * for an error message and copy the message string into that allocated
6847 * space otherwise be sure to assign *MessageString to NULL. If
6848 * *MessageString is non NULL Tecplot will release the allocated memory when
6849 * finished.
6851 * <FortranSyntax>
6852 * INTEGER*4 FUNCTION MyDataSetConverterCallback(
6853 * & DataFName,
6854 * & TempBinFName,
6855 * & MessageString)
6856 * CHARACTER*(*) DataFName
6857 * CHARACTER*(*) TempBinFName
6858 * CHARACTER*(*) MessageString
6859 * </FortranSyntax>
6862 typedef Boolean_t (STDCALL *DataSetConverter_pf)(char* DataFName,
6863 char* TempBinFName,
6864 TP_GIVES char** MessageString);
6873 * Callback registered by your addon to process foreign loader instructions.
6874 * When called, it must parse the supplied instructions and load the data into Tecplot.
6876 * @return
6877 * Return TRUE if the data is loaded successfully. Otherwise, FALSE.
6879 * @param Instructions
6880 * This contains all of the instructions needed to load the data.
6883 * <FortranSyntax>
6884 * INTEGER*4 FUNCTION MyDataSetLoaderCallback(
6885 * & Instructions)
6886 * POINTER (Instructions,DummyInstructionsData)
6887 * </FortranSyntax>
6889 typedef Boolean_t (STDCALL *DataSetLoader_pf)(StringList_pa Instructions);
6896 * Callback used to provide the ability to override data loader instructions
6897 * while processing a layout.
6899 * @return
6900 * Return TRUE if the instructions are successfully replaced or left alone.
6901 * Return FALSE if the user cancels the operation.
6903 * @param Instructions
6904 * The original instructions needed to load the data.
6906 * <FortranSyntax>
6907 * INTEGER*4 FUNCTION MyDataSetLoaderInstOverCallback(
6908 * & Instructions)
6909 * POINTER (Instructions,DummyInstructionsData)
6910 * </FortranSyntax>
6913 typedef Boolean_t (STDCALL *DataSetLoaderInstructionOverride_pf)(StringList_pa Instructions);
6918 * Callback used to assign extended curve settings.
6919 * This is called when the user presses the "Curve Settings"
6920 * button in the mapping style dialog.
6922 * @param LineMapSet
6923 * Set of line maps currently selected.
6924 * @param SelectedLineMapSettings
6925 * A string list of the curve settings for the Line-maps that are selected in the
6926 * Line mappings dialog.
6928 * <FortranSyntax>
6929 * SUBROUTINE MyGetCurveSettingsCallback(
6930 * & LineMapSet,
6931 * & SelectedLineMapSettings)
6932 * POINTER (LineMapSet,DummyLineMapData)
6933 * POINTER (SelectedLineMapSettings,DummyLineMapSettings)
6934 * </FortranSyntax>
6936 typedef void (STDCALL *GetCurveSettingsCallback_pf)(Set_pa LineMapSet,
6937 StringList_pa SelectedLineMapSettings);
6943 * Callback function that returns an abbreviated version of the curve settings
6944 * for a particular Line Map for display in the Line Mappings dialog.
6946 * @param LineMap
6947 * The map number that is currently being operated on.
6948 * @param CurveSettings
6949 * The string that Tecplot maintains which contains the extended curve fit
6950 * settings for the current Line-map. This argument may be NULL indicating
6951 * that defaults should be used.
6952 * @param AbbreviatedSettings
6953 * The short form of the CurveSettings that is allocated and returned from
6954 * your function and used by Tecplot. This must be allocated by the addon
6955 * using TecUtilStringAlloc().
6957 * <FortranSyntax>
6958 * SUBROUTINE MyGetAbrevSettingsStringCallback(
6959 * & LineMap,
6960 * & CurveSettings,
6961 * & AbbreviatedSettings),
6962 * INTEGER*4 LineMap
6963 * CHARACTER*(*) CurveSettings
6964 * CHARACTER*(*) AbbreviatedSettings
6965 * </FortranSyntax>
6967 typedef void (STDCALL *GetAbbreviatedSettingsStringCallback_pf)(EntIndex_t LineMap,
6968 char* CurveSettings,
6969 TP_GIVES char** AbbreviatedSettings);
6975 * This function returns a string (CurveInfoString) for Tecplot to display
6976 * information about a particular curve in the curve info dialog.
6978 * @param RawIndV
6979 * The handle to the raw field data of the independent variable.
6980 * @param RawDepV
6981 * The handle to the raw field data of the dependent variable.
6982 * @param IndVCoordScale
6983 * An enumerated variable whose values are Scale_linear when the independent variable
6984 * axis has a linear scale and Scale_log when it has a log scale.
6985 * @param DepVCoordScale
6986 * An enumerated variable whose values are Scale_linear when the dependent variable axis
6987 * has a linear scale and Scale_log when it has a log scale.
6988 * @param NumRawPts
6989 * number of raw field data values.
6990 * @param LineMap
6991 * The map number that is currently being operated on.
6992 * @param CurveSettings
6993 * The curve settings string for the current Line-map. This argument may be
6994 * NULL indicating that defaults should be used.
6995 * @param CurveInfoString
6996 * The string that is allocated and returned by your function and be
6997 * presented in the Data/XY-Plot Curve Info dialog. The CurveInfoString must
6998 * be allocated by the addon using TecUtilStringAlloc().
7000 * @return
7001 * Return TRUE if the curve info string can be generated, otherwise FALSE.
7003 * <FortranSyntax>
7004 * INTEGER*4 FUNCTION MyGetCurveInfoStringCallback(
7005 * & RawIndV,
7006 * & RawDepV,
7007 * & IndVCoordScale,
7008 * & DepVCoordScale,
7009 * & NumRawPts,
7010 * & LineMap,
7011 * & CurveSettings,
7012 * & CurveInfoString)
7013 * POINTER (RawIndV,DummyRawIndVData)
7014 * POINTER (RawDepV,DummyRawDepVData)
7015 * INTEGER*4 IndVCoordScale
7016 * INTEGER*4 DepVCoordScale
7017 * INTEGER*4 NumRawPts
7018 * INTEGER*4 LineMap
7019 * CHARACTER*(*) CurveSettings
7020 * CHARACTER*(*) CurveInfoString
7021 * </FortranSyntax>
7023 typedef Boolean_t (STDCALL *GetCurveInfoStringCallback_pf)(FieldData_pa RawIndV,
7024 FieldData_pa RawDepV,
7025 CoordScale_e IndVCoordScale,
7026 CoordScale_e DepVCoordScale,
7027 LgIndex_t NumRawPts,
7028 EntIndex_t LineMap,
7029 char* CurveSettings,
7030 TP_GIVES char** CurveInfoString);
7033 * Callback function used to calculate data points for an extended curve fit.
7035 * @return
7036 * Return TRUE if the curve can be calculated, otherwise FALSE.
7038 * @param RawIndV
7039 * The handle to the raw field data of the independent variable.
7040 * @param RawDepV
7041 * The handle to the raw field data of the dependent variable.
7042 * @param IndVCoordScale
7043 * An enumerated variable whose values are Scale_linear when the independent variable
7044 * axis has a linear scale and Scale_log when it has a log scale.
7045 * @param DepVCoordScale
7046 * An enumerated variable whose values are Scale_linear when the dependent variable axis
7047 * has a linear scale and Scale_log when it has a log scale.
7048 * @param NumRawPts
7049 * number of raw field data values.
7050 * @param NumCurvePts
7051 * The number of points that will construct the curve fit.
7052 * @param LineMap
7053 * The line map to operated on.
7054 * @param CurveSettings
7055 * The curve settings string for the current Line-map. This argument may be
7056 * NULL indicating that defaults should be used.
7057 * @param IndCurveValues
7058 * A pre-allocated array of size NumCurvePts which the addon will populate with
7059 * the independent values for the curve fit
7060 * @param DepCurveValues.
7061 * A pre-allocated array of size NumCurvePts which the add-on will populate
7062 * with the dependent values for the curve fit.
7064 * <FortranSyntax>
7065 * INTEGER*4 FUNCTION MyGetLinePlotDataPointsCallback(
7066 * & RawIndV,
7067 * & RawDepV,
7068 * & IndVCoordScale,
7069 * & DepVCoordScale,
7070 * & NumRawPts,
7071 * & NumCurvePts,
7072 * & LineMap,
7073 * & CurveSettings,
7074 * & IndCurveValues,
7075 * & DepCurveValues)
7076 * POINTER (RawIndV,DummyRawIndVData)
7077 * POINTER (RawDepV,DummyRawDepVData)
7078 * INTEGER*4 IndVCoordScale
7079 * INTEGER*4 DepVCoordScale
7080 * INTEGER*4 NumRawPts
7081 * INTEGER*4 NumCurvePts
7082 * INTEGER*4 LineMap
7083 * CHARACTER*(*) CurveSettings
7084 * REAL*8 IndCurveValues()
7085 * REAL*8 DepCurveValues()
7086 * </FortranSyntax>
7088 typedef Boolean_t (STDCALL *GetLinePlotDataPointsCallback_pf)(FieldData_pa RawIndV,
7089 FieldData_pa RawDepV,
7090 CoordScale_e IndVCoordScale,
7091 CoordScale_e DepVCoordScale,
7092 LgIndex_t NumRawPts,
7093 LgIndex_t NumCurvePts,
7094 EntIndex_t LineMap,
7095 char* CurveSettings,
7096 TP_OUT double* IndCurveValues,
7097 TP_OUT double* DepCurveValues);
7098 #if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY
7100 * @deprecated
7101 * Please use \ref GetLinePlotDataPointsCallback_pf instead.
7103 typedef GetLinePlotDataPointsCallback_pf GetXYDataPointsCallback_pf;
7104 #endif
7110 * A Callback function used to obtain an interpolated dependent value for an
7111 * extended curve fit given an independent value.
7113 * @return
7114 * Return TRUE if it is possible to obtain the interpolated value, otherwise FALSE.
7116 * @param RawIndV
7117 * handle to the raw field data of the independent variable.
7118 * @param RawDepV
7119 * The handle to the raw field data of the dependent variable.
7120 * @param IndVCoordScale
7121 * An enumerated variable whose values are Scale_linear when the independent variable
7122 * axis has a linear scale and Scale_log when it has a log scale.
7123 * @param DepVCoordScale
7124 * An enumerated variable whose values are Scale_linear when the dependent variable axis
7125 * has a linear scale and Scale_log when it has a log scale.
7126 * @param NumRawPts
7127 * The number of field data values.
7128 * @param NumCurvePts
7129 * The number of points used to construct the curve fit.
7130 * @param LineMapNum
7131 * The line map number currently being operated on.
7132 * @param CurveSettings
7133 * The curve settings string for the current Line-map. This argument may be
7134 * NULL indicating that defaults should be used.
7135 * @param ProbeIndValue
7136 * The independent value location of the probe (supplied).
7137 * @param ProbeDepValue
7138 * Reference to the calculated dependent value location of the probe.
7140 * <FortranSyntax>
7141 * INTEGER*4 FUNCTION MyGetProbeValueCallback(
7142 * & RawIndV,
7143 * & RawDepV,
7144 * & IndVCoordScale,
7145 * & DepVCoordScale,
7146 * & NumRawPts,
7147 * & NumCurvePts,
7148 * & LineMapNum,
7149 * & CurveSettings,
7150 * & CurveInfoString,
7151 * & ProbeIndValue,
7152 * & ProbeDepValue)
7153 * POINTER (RawIndV,DummyRawIndVData)
7154 * POINTER (RawDepV,DummyRawDepVData)
7155 * INTEGER*4 IndVCoordScale
7156 * INTEGER*4 DepVCoordScale
7157 * INTEGER*4 NumRawPts
7158 * INTEGER*4 NumCurvePts
7159 * INTEGER*4 LineMapNum
7160 * CHARACTER*(*) CurveSettings
7161 * REAL*8 ProbeIndValue
7162 * REAL*8 ProbeDepValue
7163 * </FortranSyntax>
7166 typedef Boolean_t (STDCALL *GetProbeValueCallback_pf)(FieldData_pa RawIndV,
7167 FieldData_pa RawDepV,
7168 CoordScale_e IndVCoordScale,
7169 CoordScale_e DepVCoordScale,
7170 LgIndex_t NumRawPts,
7171 LgIndex_t NumCurvePts,
7172 EntIndex_t LineMapNum,
7173 char* CurveSettings,
7174 double ProbeIndValue,
7175 TP_OUT double* ProbeDepValue);
7179 #if defined MSWIN
7180 typedef Boolean_t (STDCALL *PreTranslateMessage_pf)(MSG *pMsg);
7181 #endif
7185 * Callback function pointer for providing a Dynamic Axis labels.
7186 * @since
7187 * 10.0-6-015
7188 * @param Value
7189 * Value that corresponds to a tick label that will be drwan.
7191 * @param ClientData
7192 * Convenience storage of user client data.
7194 * @param LabelString
7195 * Output label for the tick mark.
7196 * This must be allocated by the addon using TecUtilStringAlloc().
7198 * @return
7199 * Returns TRUE if the LabelString has been successfully allocated.
7200 * Otherwise, FALSE is returned.
7202 typedef Boolean_t (STDCALL *DynamicLabelCallback_pf)(double Value,
7203 ArbParam_t ClientData,
7204 TP_GIVES char** LabelString);
7207 * This is called when Tecplot is idle.
7209 * @par Note:
7210 * Tecplot is never idle when running in batch mode (with the -b flag).
7212 * @param ClientData
7213 * Arbitrary client data.
7215 * <FortranSyntax>
7216 * INTEGER*4 FUNCTION MyOnIdleCallback(
7217 * & ClientDataPtr)
7218 * POINTER (ClientDataPtr,DummyClientData)
7219 * </FortranSyntax>
7222 typedef void (STDCALL *OnIdleCallback_pf)(ArbParam_t ClientData);
7225 * Callback responsible for executing the specified script file.
7227 * @since
7228 * 11.0-2-005
7230 * @param ScriptFileName
7231 * Relative or absolute file name of the script to execute. If the path
7232 * is relative it is relative to the current working directory.
7233 * @param ClientData
7234 * Client data registered with the callback.
7236 * @return
7237 * TRUE if the script executed successfully, FALSE otherwise.
7239 * @sa TecUtilScriptExecRegisterCallback
7241 typedef Boolean_t (STDCALL *ScriptExecCallback_pf)(const char *ScriptFileName,
7242 ArbParam_t ClientData);
7244 /* BEGINREMOVEFROMADDON */
7245 #if defined TECPLOTKERNEL
7246 /* CORE SOURCE CODE REMOVED */
7247 #if 0 /* NOTUSED */
7248 #endif
7249 #if !defined NO_ASSERTS
7250 #endif
7251 #if defined MSWIN
7252 #endif /* MSWIN */
7253 #if !defined (MSWIN)
7254 #endif
7255 #if defined Q_MAINMODULE
7256 #else
7257 #endif
7258 #if 0 /* NOTUSED */
7259 #endif
7260 #endif /* TECPLOTKERNEL */
7262 #if defined TECPLOTKERNEL
7263 /* CORE SOURCE CODE REMOVED */
7264 #endif /* TECPLOTKERNEL */
7267 /* ENDREMOVEFROMADDON */
7268 struct _ViewState_a;
7269 typedef struct _ViewState_a *SavedView_pa, *ViewState_pa;
7272 #endif /* _GLOBAL_H */