diff --git a/ReleaseNotes-dev b/ReleaseNotes-dev index 7583a3d999..2e9a025ec8 100644 --- a/ReleaseNotes-dev +++ b/ReleaseNotes-dev @@ -240,6 +240,13 @@ + =snappyHexMesh=: + extrude across multi-processor boundaries + preserve faceZones during layering + + *Warning*: + - minMedianAxisAngle angle fixed w.r.t. 17x. Set to + 90 to get same behaviour as 130 in 17x. + - nGrow did not work in 17x. Set to 0 + to get same behaviour as 130 in 17x. + - new minTetQuality setting (see tracking). Disable for 17x + compatibility. * Post-processing + =paraFoam=, =foamToVTK=: full support for polyhedral cell type in recent Paraview versions. diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C index 5615b9c5e8..06aa68b228 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C +++ b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C @@ -69,6 +69,12 @@ PDRkEpsilon::PDRkEpsilon {} +// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // + +PDRkEpsilon::~PDRkEpsilon() +{} + + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // bool PDRkEpsilon::read() diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H index 736f11bb6b..4588950825 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H +++ b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.H @@ -107,12 +107,11 @@ public: //- Destructor - virtual ~PDRkEpsilon() - {} + virtual ~PDRkEpsilon(); // Member Functions - + //- Solve the turbulence equations and correct the turbulence viscosity void correct(); diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake deleted file mode 100755 index 935e8e3993..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Allwmake +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# -# Build optional components (eg, may depend on third-party libraries) -# ----------------------------------------------------------------------------- -cd ${0%/*} || exit 1 # run from this directory -set -x - -# build tecio -wmake libso tecio/tecsrc - -# build converter -wmake - -# ----------------------------------------------------------------- end-of-file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options index 4776ad7d64..97a2251f7b 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options +++ b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/Make/options @@ -1,5 +1,5 @@ EXE_INC = \ - -Itecio/tecsrc/lnInclude \ + -I$(WM_THIRD_PARTY_DIR)/tecio/tecsrc/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude @@ -10,4 +10,4 @@ EXE_LIBS = \ -lfiniteVolume \ -lgenericPatchFields \ -lmeshTools \ - -ltecio + -L$(FOAM_EXT_LIBBIN) -ltecio diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/Runmake b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/Runmake deleted file mode 100755 index a22d0c0a86..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/Runmake +++ /dev/null @@ -1,277 +0,0 @@ -#!/bin/sh - -MAKEWHAT= -EXTRAFLAGS= -STRIPFLAG=-s -isrelease=n -skipcompile=n -if test $# -ge 1 ; then - Platname=$1 - shift - while test $# -ge 1 - do - if test "$1" = "-release" ; then - isrelease=y - elif test "$1" = "-skipcompile" ; then - skipcompile=y - elif test "$1" = "-tecio" ; then - MAKEWHAT=tecio.a - else - EXTRAFLAGS="$EXTRAFLAGS $1" - fi - shift - done -else - echo "Choose platform:" - echo " " - echo " macux.104" - echo " macix64.105" - echo " sgix.62" - echo " sgix3.62" - echo " sgix.65" - echo " sgix64.65" - echo " sgix2.65" - echo " sun4.57" - echo " sun464.57" - echo " sun86.54" - echo " ibmx.43" - echo " ibmx64.43" - echo " ibmx.51" - echo " ibmx64.51" - echo " ibmx64.53" - echo " decalpha.32" - echo " compaq.51" - echo " hp7xx.11" - echo " hp7xx64.11" - echo " hpi64.11" - echo " linux.24" - echo " linuxi64.24" - echo " linux.22" - echo " linuxa.22" - echo " linuxg248x64.26" - echo " linuxg27x64.26" - echo " crayc90" - echo "->\c" - read Platname - - echo "Choose:" - echo " 1. Make tecio.a only" - echo " 2. Make tecio.a and pltview" - - read choice - - if test $choice -eq 1 ;then - MAKEWHAT=tecio.a - fi -fi - -MAKECMD=make -LINKFLAGS= -LINKLIBS= -AR=ar -ARFLAGS=qv -DISTSUBDIR2= - -case $Platname in - mac*) CCOMP=g++ - FINALCFLAGS="-arch ppc -arch i386 -arch ppc64 -arch x86_64 -DDARWIN -DLONGIS64 -I/usr/X11R6/include" - STRIPFLAG=-Wl,-x - LINKFLAGS="-arch ppc -arch i386 -arch ppc64 -arch x86_64" - ;; - sgix.65-64) CCOMP=CC - FINALCFLAGS="-DIRISX -DLONGIS64 -mips4 -64" - LINKFLAGS="-mips4 -64" - ;; - sgix64.65) CCOMP=CC - FINALCFLAGS="-DIRISX -DLONGIS64 -mips4 -64" - LINKFLAGS="-mips4 -64" - ;; - sgix.65) CCOMP=CC - FINALCFLAGS="-DIRISX -mips4 -n32" - LINKFLAGS="-mips4 -n32" - ;; - sgix2.65) CCOMP=CC - FINALCFLAGS="-DIRISX -o32" - LINKFLAGS="-o32" - ;; - sgix.62-64) CCOMP=CC - FINALCFLAGS="-DIRISX -DIRIX62 -DLONGIS64 -mips4 -64" - LINKFLAGS="-mips4 -64" - ;; - sgix.62) CCOMP=CC - FINALCFLAGS="-DIRISX -DIRIX62 -mips4 -n32" - LINKFLAGS="-mips4 -n32" - ;; - sgix1.62) CCOMP=CC - FINALCFLAGS="-DIRISX -DIRIX62 -mips1 -32" - LINKFLAGS="-mips1 -32" - ;; - sgix3.62) CCOMP=CC - FINALCFLAGS="-DIRISX -DIRIX62 -mips3 -n32" - LINKFLAGS="-mips3 -n32" - ;; - ibmx.*) CCOMP=xlC - FINALCFLAGS=-DIBMRS6000X - ;; - ibmx64.*) CCOMP=xlC - FINALCFLAGS="-DIBMRS6000X -DLONGIS64 -q64" - ARFLAGS="-X64 qv" - ;; - compaq.51) CCOMP=cxx - FINALCFLAGS="-DCOMPAQX -I/usr/include -ieee_with_inexact" - ;; - decalpha.32)CCOMP=cc - FINALCFLAGS="-DDECALPHAX -I/usr/include -ieee_with_inexact" - ;; - hp7xx.*-64) CCOMP=aCC - FINALCFLAGS="+DD64 +DS2.0 -AA -DHPX -DLONGIS64 -I/usr/include/X11R6 -I/usr/include/Motif2.1" - LINKFLAGS="+DA2.0W +DD64 +DS2.0W" - ;; - hp7xx64.11) CCOMP=aCC - FINALCFLAGS="+DA2.0W +DD64 +DS2.0W -AA -DHPX -DLONGIS64 -I/usr/include/X11R6 -I/usr/include/Motif2.1" - LINKFLAGS="+DA2.0W +DD64 +DS2.0W" - ;; - hpi64.11) CCOMP=aCC - FINALCFLAGS="+DD64 -AA -DHPX -DLONGIS64 -I/usr/include/X11R6 -I/usr/include/Motif2.1" - LINKFLAGS="+DD64" - ;; - hp7xx.11) CCOMP=aCC - FINALCFLAGS="+DAportable -AA -DHPX -I/usr/include/X11R6 -I/usr/include/Motif2.1" - LINKFLAGS="+DAportable" - ;; - crayc90) CCOMP=cc - FINALCFLAGS="-DCRAY -DUNIXX" - ;; - linux*i64.*)CCOMP=g++ - FINALCFLAGS="-fPIC -DLINUX -DLINUXI64" - ;; - linux*64.*) CCOMP=g++ - FINALCFLAGS="-fPIC -DLINUX -DLINUX64" - ;; - linux*) CCOMP=g++ - FINALCFLAGS="-fPIC -DLINUX" - ;; - sun4.54) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUN -DSUNSOLARISX -I/usr/openwin/include -I/usr/dt/include -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg -xO1" - LINKFLAGS="-library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - sun4.55) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUN -DSUNSOLARISX -I/usr/openwin/include -I/usr/dt/include -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg -xO1" - LINKFLAGS="-library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - sun4.57) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUNSOLARISX -I/usr/openwin/include -I/usr/dt/include -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg -xO1" - LINKFLAGS="-library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - sun4.57-64) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUNSOLARISX -DLONGIS64 -KPIC -xarch=v9 -I/usr/openwin/include -I/usr/dt/include -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg -xO1" - LINKFLAGS="-KPIC -xarch=v9 -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - sun464.57) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUNSOLARISX -DLONGIS64 -KPIC -xarch=v9 -I/usr/openwin/include -I/usr/dt/include -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg -xO1" - LINKFLAGS="-KPIC -xarch=v9 -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - sun464.59) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUNSOLARISX -DLONGIS64 -KPIC -m64 -xarch=generic -I/usr/openwin/include -I/usr/dt/include -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg -xO1" - LINKFLAGS="-KPIC -m64 -xarch=generic -library=libC -library=Cstd -library=no%rwtools7 -library=no%rwtools7_dbg" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - sun86.54) CCOMP=/opt/SUNWspro/bin/CC - FINALCFLAGS="-DSUN -DSUNSOLARISX -I/usr/openwin/include -I/usr/dt/include" - MAKECMD=/usr/ccs/bin/make - AR=/opt/SUNWspro/bin/CC - ARFLAGS="-xar -o" - ;; - *) echo "Err: Invalid platform" - exit - ;; -esac - -if test "$isrelease" = "y" ; then - EXTRAFLAGS="$EXTRAFLAGS -DNO_ASSERTS" -else - STRIPFLAG= -fi - -if test "$skipcompile" = "n" ; then - rm -f *.o */*.o *.a > /dev/null 2>&1 -fi - -rm -f *.a > /dev/null 2>&1 - - - -FINALCFLAGS="$FINALCFLAGS $EXTRAFLAGS -DUSEENUM -DTHREED" -# -# NOTE: Used to use make here but had problems with using remsh to run -# make multiple times to get 64 bit and 32 bit versions of libraries.... -# -# $MAKECMD $MAKEWHAT AR=$AR CC=$CCOMP LINKFLAGS="$LINKFLAGS" STRIPFLAG=$STRIPFLAG CFLAGS="$EXTRAFLAGS -DUSEENUM -DTHREED $FINALCFLAGS" -# -# -# - -cd tecsrc - -BASELIST=`/bin/ls -1 *.cpp` - -OBJLIST= -for file in $BASELIST -do - OBJNAME=`echo $file | sed 's/\.cpp/.o/'` - OBJLIST="$OBJLIST tecsrc/$OBJNAME" -done - - - -if test "$skipcompile" = "n" ; then - for file in $BASELIST - do - case $file in - tecxxx.cpp) ARCHIVEFLAG=-DMAKEARCHIVE;; - arrlist.cpp) ARCHIVEFLAG=-DMAKEARCHIVE;; - datautil.cpp) ARCHIVEFLAG=-DMAKEARCHIVE;; - *) ARCHIVEFLAG= ;; - esac - echo "$CCOMP $FINALCFLAGS $ARCHIVEFLAG -c $file" - $CCOMP $FINALCFLAGS $ARCHIVEFLAG -c $file - done -fi - -cd .. - -pwd - - -echo "$AR $ARFLAGS tecio.a $OBJLIST" -$AR $ARFLAGS tecio.a $OBJLIST -if test -f /bin/ranlib ; then - /bin/ranlib tecio.a; -elif test -f /usr/bin/ranlib ; then - /usr/bin/ranlib tecio.a; -elif test -f /usr/ucb/ranlib ; then - /usr/ucb/ranlib tecio.a; -fi - -echo "$CCOMP -I./tecsrc -DMAKEARCHIVE $FINALCFLAGS -c pltview.cpp" -$CCOMP -I./tecsrc -DMAKEARCHIVE $FINALCFLAGS -c pltview.cpp - -echo "$CCOMP $FINALCFLAGS pltview.o tecio.a $LINKFLAGS $LINKLIBS $STRIPFLAG -lm -o pltview" -$CCOMP $FINALCFLAGS pltview.o tecio.a $LINKFLAGS $LINKLIBS $STRIPFLAG -lm -o pltview diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/Arrow.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/Arrow.plt deleted file mode 100644 index ee207b04df..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/Arrow.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/Makefile deleted file mode 100644 index 3fa4b11f3f..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=arrow -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/arrow.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/arrow.cpp deleted file mode 100644 index 432022be51..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/arrow.cpp +++ /dev/null @@ -1,530 +0,0 @@ -/* This example creates two simple polyhedral zones in the shape - * of a three-dimensional arrow. Obscured boundary faces are used. - */ - -#include -#include "TECIO.h" - -int main() -{ - /* DOCSTART:arrow_tecini.txt*/ - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 1; - INTEGER4 FileType = 0; - INTEGER4 I; - - /* Open the file and write the Tecplot datafile - * header information - */ - I = TECINI112((char*)"Multiple polyhedral zones", /* Name of the entire - * dataset. - */ - (char*)"X Y Z P", /* Defines the variables for the data - * file. Each zone must contain each of - * the variables listed here. The order - * of the variables in the list is used - * to define the variable number (e.g. - * X is Var 1). - */ - (char*)"Arrow.plt", - (char*)".", /* Scratch Directory */ - &FileType, - &Debug, - &VIsDouble); - - /* DOCEND */ - - - /* After TECINI is called, call TECZNE to create one or more - * zones for your data file. In this example, Zone 1 contains a - * single rectangular solid created as a face-based finite-element - * (i.e. polyhedral zone). The zone has eight points (or nodes), - * six faces and one element. - */ - /* DOCSTART:arrow_teczne_rect.txt*/ - /* TECZNE Parameters */ - INTEGER4 ZoneType = 7; /* sets the zone type - * to polyhedral */ - INTEGER4 NumPts_Rect = 8; - INTEGER4 NumElems_Rect = 1; - INTEGER4 NumFaces_Rect = 6; - INTEGER4 ICellMax = 0; /* not used */ - INTEGER4 JCellMax = 0; /* not used */ - INTEGER4 KCellMax = 0; /* not used */ - double SolutionTime = 0.0; - INTEGER4 StrandID = 0; - INTEGER4 ParentZone = 0; - INTEGER4 IsBlock = 1; - INTEGER4 NumFaceConnections = 0; /* not used */ - INTEGER4 FaceNeighborMode = 1; /* not used */ - INTEGER4 SharConn = 0; - - /* In a rectangular solid, each face is composed of four nodes. - * As such, the total number of face nodes is twenty-four (four - * nodes for each of the six faces). - */ - INTEGER4 TotalNumFaceNodes_Rect = 24; - - /* There is one connected boundary face in this zone (the face on - * the rectangle adjacent to the arrowhead). Refer to the Data - * Format Guide for additional information. */ - INTEGER4 NumConnBndryFaces_Rect = 1; - - /* The connected boundary face has one connection, the face on - * the bottom of the arrowhead. A connection is an element-zone - * tuple that indicates a neighboring element (and its zone) when - * the neighboring element is in a different zone. Generally, - * there will be one boundary connection for each boundary face. - */ - INTEGER4 TotalNumBndryConns_Rect = 1; - - /* For illustrative purposes, the grid variables (X, Y, and Z) - * are nodal variables (i.e. ValueLocation = 1), and the pressure - * variable (P) is a cell-centered variable (i.e. - * ValueLocation = 0). - */ - INTEGER4 ValueLocation[4] = { 1, 1, 1, 0 }; - - I = TECZNE112((char*)"Zone 1: Rectangular Solid", - &ZoneType, - &NumPts_Rect, - &NumElems_Rect, - &NumFaces_Rect, - &ICellMax, - &JCellMax, - &KCellMax, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - &TotalNumFaceNodes_Rect, - &NumConnBndryFaces_Rect, - &TotalNumBndryConns_Rect, - NULL, - ValueLocation, - NULL, - &SharConn); - - /* DOCEND */ - - /* DOCSTART:arrow_tecdat_rect.txt*/ - //set variable values (X_Rect, Y_Rect, Z_Rect & P_Rect) - double *X_Rect = new double[NumPts_Rect]; - double *Y_Rect = new double[NumPts_Rect]; - double *Z_Rect = new double[NumPts_Rect]; - double *P_Rect = new double[NumElems_Rect]; - - for (INTEGER4 ii = 0; ii <= NumPts_Rect / 2; ii += 4) - { - X_Rect[ii] = 0; - X_Rect[ii+1] = 3; - X_Rect[ii+2] = 3; - X_Rect[ii+3] = 0; - - Y_Rect[ii] = 3; - Y_Rect[ii+1] = 3; - Y_Rect[ii+2] = 1; - Y_Rect[ii+3] = 1; - } - - for (INTEGER4 ii = 0; ii < 4; ii++) - Z_Rect[ii] = 0; - - for (INTEGER4 ii = 4; ii < NumPts_Rect; ii++) - Z_Rect[ii] = -2; - - P_Rect[0] = 10; - - - INTEGER4 IsDouble = 1; - I = TECDAT112(&NumPts_Rect, X_Rect, &IsDouble); - I = TECDAT112(&NumPts_Rect, Y_Rect, &IsDouble); - I = TECDAT112(&NumPts_Rect, Z_Rect, &IsDouble); - I = TECDAT112(&NumElems_Rect, P_Rect, &IsDouble); - /* DOCEND */ - - /* DOCSTART:arrow_facenodes_rect.txt*/ - - /* The FaceNodeCounts array is used to describe the number of - * nodes in each face of the zone. The first value in the array - * is the number of nodes in Face 1, the second value is the - * number of nodes in Face 2 and so forth. In this example, each - * face of the zone has four nodes. - */ - - INTEGER4 *FaceNodeCounts_Rect = new INTEGER4[NumFaces_Rect]; - //For this particular zone, each face has the 4 nodes - for (INTEGER4 ii = 0; ii < NumFaces_Rect; ii++) - FaceNodeCounts_Rect[ii] = 4; - - /* The FaceNodes array is used to specify the nodes that compose - * each face. For each face (n of N), the number of nodes used - * to define the face is specified by the nth value in the - * FaceNodeCounts array. For example, if the first value in the - * FaceNodeCounts array is 4 (indicating Face 1 is composed of - * four nodes), the first four values in the FaceNodes array are - * the node numbers of the nodes in Face 1. - * - * ------------ - * WARNING - * When providing the node numbers for each face, you must - * provide the node numbers in a consistent order (either - * clockwise or counter-clockwise. Providing the node numbers - * out of order results in contorted faces. - * ------------ - */ - - INTEGER4 *FaceNodes_Rect = new INTEGER4[TotalNumFaceNodes_Rect]; - - //Nodes for Face 1 - FaceNodes_Rect[0] = 1; - FaceNodes_Rect[1] = 2; - FaceNodes_Rect[2] = 3; - FaceNodes_Rect[3] = 4; - - //Nodes for Face 2 - FaceNodes_Rect[4] = 1; - FaceNodes_Rect[5] = 4; - FaceNodes_Rect[6] = 8; - FaceNodes_Rect[7] = 5; - - //Nodes for Face 3 - FaceNodes_Rect[8] = 5; - FaceNodes_Rect[9] = 8; - FaceNodes_Rect[10] = 7; - FaceNodes_Rect[11] = 6; - - //Nodes for Face 4 - FaceNodes_Rect[12] = 2; - FaceNodes_Rect[13] = 6; - FaceNodes_Rect[14] = 7; - FaceNodes_Rect[15] = 3; - -//Nodes for Face 5 - FaceNodes_Rect[16] = 6; - FaceNodes_Rect[17] = 2; - FaceNodes_Rect[18] = 1; - FaceNodes_Rect[19] = 5; - - //Nodes for Face 6 - FaceNodes_Rect[20] = 3; - FaceNodes_Rect[21] = 7; - FaceNodes_Rect[22] = 8; - FaceNodes_Rect[23] = 4; - /* DOCEND */ - - /* DOCSTART:arrow_neighbors_rect.txt*/ - INTEGER4 *FaceLeftElems_Rect = new INTEGER4[NumFaces_Rect]; - INTEGER4 *FaceRightElems_Rect = new INTEGER4[NumFaces_Rect]; - - /* Since this zone has just one element, all leftelems are - * NoNeighboring Element and all right elems are itself - */ - for (INTEGER4 ii = 0; ii < NumFaces_Rect; ii++) - { - FaceRightElems_Rect[ii] = 1; - FaceLeftElems_Rect[ii] = 0; - } - - /* The negative value in the FaceLeftElems array indicates that - * the face is connected to an element in another zone. In this - * case, Face 4 is connected to a face in Zone 2 (to be defined - * later in the example). The FaceBoundaryConnectionElems array - * lists all of the element numbers in other zones that the - * current zone shares boundary connections with. Similarly, the - * FaceBoundaryConnectionZones array lists all of the zone numbers - * with which the current zone shares boundaries. A negative - * value in the FaceLeftElems or FaceRightElems array indicates - * the position within these arrays that defines the neighboring - * element and zone for a face. - * - * For example, if the FaceBoundaryConnectionElems array is: - * [1 8 2] and the FaceBoundaryConnectionZones array is: [2 5 3], - * a FaceLeftElems or FaceRightElems value of -2 indicates that - * the face in question has a boundary connection with Element 8 - * in Zone 5. - */ - FaceLeftElems_Rect[3] = -1; - /* DOCEND */ - - /* DOCSTART:arrow_tecpoly_rect.txt*/ - /* The FaceBndryConnectionCounts array is used to define the - * number of boundary connections for each face that has a - * boundary connection. For example, if a zone has three boundary - * connections in total (NumConnectedBoundaryFaces), two of those - * boundary connections are in one face, and the remaining - * boundary connection is in a second face, the - * FaceBndryConnectionCounts array would be: [2 1]. - * In this example, the total number of connected boundary faces - * (specified via TECZNE) is equal to one, so the - * FaceBoundaryConnectionCounts array contains a single value (1). - */ - INTEGER4 *FaceBndryConnCounts_Rect = new INTEGER4[NumConnBndryFaces_Rect]; - FaceBndryConnCounts_Rect[0] = 1; - - /* The value(s) in the FaceBndryConnectionElems and - * FaceBndryConnectionZones arrays specify the element number and - * zone number, respectively, that a given boundary connection is - * connected to. In this case, the boundary connection face is - * connected to Element 1 in Zone 2. - */ - INTEGER4 *FaceBndryConnElems_Rect = new INTEGER4[TotalNumBndryConns_Rect]; - INTEGER4 *FaceBndryConnZones_Rect = new INTEGER4[TotalNumBndryConns_Rect]; - - FaceBndryConnElems_Rect[0] = 1; - FaceBndryConnZones_Rect[0] = 2; - - I = TECPOLY112(FaceNodeCounts_Rect, - FaceNodes_Rect, - FaceLeftElems_Rect, - FaceRightElems_Rect, - FaceBndryConnCounts_Rect, - FaceBndryConnElems_Rect, - FaceBndryConnZones_Rect); - - /* cleanup */ - delete X_Rect; - delete Y_Rect; - delete Z_Rect; - delete P_Rect; - delete FaceNodeCounts_Rect; - delete FaceNodes_Rect; - delete FaceLeftElems_Rect; - delete FaceRightElems_Rect; - delete FaceBndryConnCounts_Rect; - delete FaceBndryConnElems_Rect; - delete FaceBndryConnZones_Rect; - /* DOCEND */ - - /* The data for Zone 1 has been written to the data file, so we - * are ready to create Zone 2. For simplicity, we will reuse many - * of the variables created for the rectangular zone that are not - * relevant to this tutorial. */ - - /* Zone 2 (the arrowhead or prism) has a single element composed - * of six nodes and five faces. - */ - - /* DOCSTART:arrow_teczne_prism.txt*/ - //TECZNE Parameters - INTEGER4 NumPts_Prism = 6; - INTEGER4 NumElems_Prism = 1; - INTEGER4 NumFaces_Prism = 5; - - /* The prism is composed of two triangular faces and three - * rectangular faces. The total number of face nodes is the sum - * of the nodes in each triangular face (2 times 3) and the nodes - * in each rectangular face (3 times 4). - */ - INTEGER4 TotalNumFaceNodes_Prism = 18; - - /* As with Zone 1, Zone 2 has one connected boundary face, the - * face that is connected to Zone 1. - */ - INTEGER4 NumConnBndryFaces_Prism = 1; - - /* In this case, we have set the total number of boundary - * connections for the connected face to two. The first boundary - * connection is the connection to Zone 1. The second boundary - * connection is used to indicate that the face is only partially - * obscured by the face from Zone 1. If we omitted the second - * boundary connection, the connected face of the prism would - * disappear if the rectangular zone was deactivated. - */ - INTEGER4 TotalNumBndryConns_Prism = 2; - - I = TECZNE112((char*)"Zone 2: Prism", - &ZoneType, - &NumPts_Prism, - &NumElems_Prism, - &NumFaces_Prism, - &ICellMax, - &JCellMax, - &KCellMax, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - &TotalNumFaceNodes_Prism, - &NumConnBndryFaces_Prism, - &TotalNumBndryConns_Prism, - NULL, - ValueLocation, - NULL, - &SharConn); - /* DOCEND */ - - /* DOCSTART:arrow_tecdat_prism.txt*/ - - - double *X_Prism = new double[NumPts_Prism]; - double *Y_Prism = new double[NumPts_Prism]; - double *Z_Prism = new double[NumPts_Prism]; - - - /* Set the X and Y variable values, one z-plane at a time */ - double ZVal = 0; - for (INTEGER4 ii = 0; ii < 2; ii++) - { - // triangle in Z=ZVal plane - X_Prism[3*ii] = 3; - Y_Prism[3*ii] = 4; - Z_Prism[3*ii] = ZVal; - - X_Prism[3*ii+1] = 7; - Y_Prism[3*ii+1] = 2; - Z_Prism[3*ii+1] = ZVal; - - X_Prism[3*ii+2] = 3; - Y_Prism[3*ii+2] = 0; - Z_Prism[3*ii+2] = ZVal; - - ZVal = ZVal - 2; - } - - /* When we called TecZne, we specified that the variable 4 - * (pressure) is cell-centered. As such, only NumElements number - * of values needs to be written to the data file for the pressure - * variable. - */ - double *P_Prism = new double[NumElems_Prism]; - P_Prism[0] = 20; - - I = TECDAT112(&NumPts_Prism, X_Prism, &IsDouble); - I = TECDAT112(&NumPts_Prism, Y_Prism, &IsDouble); - I = TECDAT112(&NumPts_Prism, Z_Prism, &IsDouble); - I = TECDAT112(&NumElems_Prism, P_Prism, &IsDouble); - /* DOCEND */ - - /* DOCSTART:arrow_facemap_prism.txt*/ - INTEGER4 *FaceNodeCounts_Prism = new INTEGER4[NumFaces_Prism]; - INTEGER4 *FaceNodes_Prism = new INTEGER4[TotalNumFaceNodes_Prism]; - - /* Because of the way we chose to number our faces, the first - * three faces are rectangular and the last two are triangular. - * The numbering of the faces is arbitrary, but the faces must - * be referred to consistently. - */ - for (INTEGER4 ii = 0; ii < 3; ii++) - FaceNodeCounts_Prism[ii] = 4; - - for (INTEGER4 ii = 3; ii < NumFaces_Prism; ii++) - FaceNodeCounts_Prism[ii] = 3; - - //Nodes for Face 1 - FaceNodes_Prism[0] = 1; - FaceNodes_Prism[1] = 3; - FaceNodes_Prism[2] = 6; - FaceNodes_Prism[3] = 4; - - //Nodes for Face 2 - FaceNodes_Prism[4] = 1; - FaceNodes_Prism[5] = 4; - FaceNodes_Prism[6] = 5; - FaceNodes_Prism[7] = 2; - - //Nodes for Face 3 - FaceNodes_Prism[8] = 3; - FaceNodes_Prism[9] = 2; - FaceNodes_Prism[10] = 5; - FaceNodes_Prism[11] = 6; - - //Nodes for Face 4 - FaceNodes_Prism[12] = 5; - FaceNodes_Prism[13] = 4; - FaceNodes_Prism[14] = 6; - -//Nodes for Face 5 - FaceNodes_Prism[15] = 1; - FaceNodes_Prism[16] = 2; - FaceNodes_Prism[17] = 3; - /* DOCEND */ - - /* DOCSTART:arrow_neighbors_prism.txt*/ - /* Since this zone has just one element, all leftelems are - * NoNeighboring Element and all right elems are itself. - */ - INTEGER4 *FaceLeftElems_Prism = new INTEGER4[NumFaces_Prism]; - INTEGER4 *FaceRightElems_Prism = new INTEGER4[NumFaces_Prism]; - - for (INTEGER4 ii = 0; ii < NumFaces_Prism; ii++) - { - FaceRightElems_Prism[ii] = 1; - FaceLeftElems_Prism[ii] = 0; - } - - /* The negative value in the FaceLeftElems array indicates that - * the face is connected to an element in another zone. In this - * case, Face 1 is connected to a face in Zone 1 (as indicated in - * Line 6). The FaceBoundaryConnectionElems array lists all of - * the element numbers in other zones that the current zone shares - * boundary connections with. Similarly, the - * FaceBoundaryConnectionZones array lists all of the zone numbers - * with which the current zone shares boundaries. A negative - * value in the FaceLeftElems or FaceRightElems array indicates - * the position within these arrays that defines the neighboring - * element and zone for a face. - */ - FaceLeftElems_Prism[0] = -1; - /* DOCEND */ - - /* DOCSTART:arrow_tecpoly_prism.txt*/ - - INTEGER4 *FaceBndryConnCounts_Prism = new INTEGER4[NumConnBndryFaces_Prism]; - FaceBndryConnCounts_Prism[0] = 2; - - INTEGER4 *FaceBndryConnElems_Prism = new INTEGER4[TotalNumBndryConns_Prism]; - INTEGER4 *FaceBndryConnZones_Prism = new INTEGER4[TotalNumBndryConns_Prism]; - - /* As previously mentioned, a connected boundary face is a face - * that has either multiple neighboring faces or neighbor(s) that - * belong to another zone. Those cases are sufficient when the - * combination of all of the face’s neighbors completely cover the - * face. However, there are some cases (such as the bottom of the - * arrowhead) where the face is not completely covered by its - * neighbors. In those cases the face is referred to as “partially - * obscured”. A partially obscured face is indicated by - * incrementing the value in TotalNumConnectedBoundaryFaces and - * entering a value of 0 in both the FaceBndryConnectionElems and - * FaceBoundaryConnectionZones arrays for the boundary connection - * for the partially obscured face. - */ - FaceBndryConnElems_Prism[0] = 0; - FaceBndryConnZones_Prism[0] = 0; - - /* Indicates that Face 1 is connected to Element 1 in Zone 1. */ - FaceBndryConnElems_Prism[1] = 1; - FaceBndryConnZones_Prism[1] = 1; - - I = TECPOLY112(FaceNodeCounts_Prism, - FaceNodes_Prism, - FaceLeftElems_Prism, - FaceRightElems_Prism, - FaceBndryConnCounts_Prism, - FaceBndryConnElems_Prism, - FaceBndryConnZones_Prism); - - /* cleanup */ - delete X_Prism; - delete Y_Prism; - delete Z_Prism; - delete P_Prism; - delete FaceNodeCounts_Prism; - delete FaceNodes_Prism; - delete FaceLeftElems_Prism; - delete FaceRightElems_Prism; - delete FaceBndryConnCounts_Prism; - delete FaceBndryConnElems_Prism; - delete FaceBndryConnZones_Prism; - /* DOCEND */ - - /* DOCSTART:arrow_tecend.txt*/ - I = TECEND112(); - /* DOCEND */ - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/arrow.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/arrow.vcproj deleted file mode 100644 index 31f69eedf1..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/arrow/arrow.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/Makefile deleted file mode 100644 index 2c6009b073..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=comtest -FILES=$(EXECUTABLE).c - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.c b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.c deleted file mode 100644 index c290dcef40..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.c +++ /dev/null @@ -1,492 +0,0 @@ -/* - * Complex example C program to write a - * binary data file for Tecplot. This example - * does the following: - * - * 1. Open a data file called "field.plt." - * 2. Open a data file called "line.plt." - * 3. Assign values for X, Y and P. These will be used - * in both the ordered and finite-element data files. - * 4. Write out an ordered zone dimensioned 4 x 5 to "field.plt." - * 5. Assign values for XL and YL arrays. - * 6. Write out data for line plot to "line.plt." Make the data - * use double precision. - * 7. Write out a finite-element zone to "field.plt." - * 8. Write out a text record to "field.plt." - * 9. Write out a geometry (circle) record to "field.plt." - * 10. Close file 1. - * 11. Close file 2. - */ - -#include -#include -#include "TECIO.h" - -int main(void) -{ - float X[5][4], Y[5][4], P[5][4]; - double XL[50], YL[50]; - double SolTime; - INTEGER4 Debug, I, J, K, L, III, NPts, NElm, DIsDouble, VIsDouble, IMax, JMax, KMax; - INTEGER4 ICellMax, JCellMax, KCellMax, ZoneType, Clipping; - INTEGER4 StrandID, ParentZn, FieldFileType, LineFileType; - INTEGER4 SharingZone[3] = {0, 0, 0}; - INTEGER4 IsBlock, NumFaceConnections, FaceNeighborMode, ShareConnectivityFromZone; - INTEGER4 NM[12][4]; - double XP, YP, ZP, FH, LineSpacing, PatternLength; - double BoxMargin, BoxLineThickness, TextAngle; - INTEGER4 AttachToZone, Zone, Scope, PositionCoordSys, FontType, HeightUnits; - INTEGER4 IsFilled, GeomType, LinePattern, NumEllipsePts; - INTEGER4 Anchor, BoxType, BoxColor, BoxFillColor, TextColor, Color, FillColor; - INTEGER4 ArrowheadStyle, ArrowheadAttachment, NumSegments, NumSegPts[1]; - double LineThickness, ArrowheadSize, ArrowheadAngle; - float XGeomData[1], YGeomData[1], ZGeomData[1]; - enum FileType { FULL = 0, GRID = 1, SOLUTION = 2 }; - - Debug = 2; - VIsDouble = 0; - DIsDouble = 0; - FieldFileType = FULL; - LineFileType = FULL; - /* - * Open order.plt and write the header information. - */ - I = TECINI112((char*)"DATASET WITH ONE ORDERED ZONE AND ONE FE-QUAD ZONE OVER 2 TIME STEPS", - (char*)"X Y P", - (char*)"field.plt", - (char*)".", - &FieldFileType, - &Debug, - &VIsDouble); - /* - * Open line.plt and write the header information. - */ - VIsDouble = 1; - I = TECINI112((char*)"DATASET WITH ONE I-ORDERED ZONE", - (char*)"X Y", - (char*)"line.plt", - (char*)".", - &LineFileType, - &Debug, - &VIsDouble); - - /* - * Calculate values for the field variables. - */ - for (J = 0; J < 5; J++) - for (I = 0; I < 4; I++) - { - X[J][I] = (float)(I + 1); - Y[J][I] = (float)(J + 1); - P[J][I] = (float)((I + 1) * (J + 1)); - } - - /* - * Make sure writing to file #1. - */ - III = 1; - I = TECFIL112(&III); - - /* - * Write the zone header information for the ordered zone. - */ - IMax = 4; - JMax = 5; - KMax = 1; - ICellMax = 0; - JCellMax = 0; - KCellMax = 0; - ZoneType = 0; - SolTime = 10.0; - StrandID = 1; - ParentZn = 0; - IsBlock = 1; - NumFaceConnections = 0; - FaceNeighborMode = 0; - ShareConnectivityFromZone = 0; - I = TECZNE112((char*)"Ordered Zone 1", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - NULL, /* PassiveVarList */ - NULL, /* ValueLocation */ - NULL, /* ShareVarFromZone */ - 0, /* TotalNumFaceNodes */ - 0, /* NumConnectedBoundaryFaces */ - 0, /* TotalNumBoundaryConnections */ - &ShareConnectivityFromZone); - /* - * Write out the field data for the ordered zone. - */ - III = IMax * JMax; - I = TECDAT112(&III, &X[0][0], &DIsDouble); - I = TECDAT112(&III, &Y[0][0], &DIsDouble); - I = TECDAT112(&III, &P[0][0], &DIsDouble); - - /* - * Calculate values for the I-ordered zone. - */ - - for (I = 0; I < 50; I++) - { - XL[I] = I + 1; - YL[I] = sin((double)(I + 1) / 20.0); - } - /* - * Switch to the "line.plt" file (file number 2) - * and write out the line plot data. - */ - - III = 2; - I = TECFIL112(&III); - - /* - * Write the zone header information for the XY-data. - */ - IMax = 50; - JMax = 1; - KMax = 1; - SolTime = 0.0; - StrandID = 0; /* StaticZone */ - I = TECZNE112((char*)"XY Line plot", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - 0, /* TotalNumFaceNodes */ - 0, /* NumConnectedBoundaryFaces */ - 0, /* TotalNumBoundaryConnections */ - NULL, /* PassiveVarList */ - NULL, /* ValueLocation */ - NULL, /* ShareVarFromZone */ - &ShareConnectivityFromZone); - /* - * Write out the line plot. - */ - DIsDouble = 1; - III = IMax; - I = TECDAT112(&III, (float *) & XL[0], &DIsDouble); - I = TECDAT112(&III, (float *) & YL[0], &DIsDouble); - - /* - * Switch back to the field plot file and write out - * the finite-element zone. - */ - III = 1; - I = TECFIL112(&III); - - /* - * Move the coordinates so this zone's not on top of the other - */ - for (J = 0; J < 5; J++) - for (I = 0; I < 4; I++) - { - X[J][I] = (float)(I + 6); - Y[J][I] = (float)(J + 1); - P[J][I] = (float)((I + 1) * (J + 1)); - } - - /* - * Write the zone header information for the finite-element zone. - */ - ZoneType = 3; /* FEQuad */ - NPts = 20; /* Number of points */ - NElm = 12; /* Number of elements */ - KMax = 0; /* Unused */ - SolTime = 10.0; - StrandID = 2; - I = TECZNE112((char*)"Finite Zone 1", - &ZoneType, - &NPts, - &NElm, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - 0, /* TotalNumFaceNodes */ - 0, /* NumConnectedBoundaryFaces */ - 0, /* TotalNumBoundaryConnections */ - NULL, /* PassiveVarList */ - NULL, /* ValueLocation */ - NULL, /* ShareVarFromZone */ - &ShareConnectivityFromZone); - /* - * Write out the field data for the finite-element zone. - */ - IMax = 4; - JMax = 5; - III = IMax * JMax; - DIsDouble = 0; - I = TECDAT112(&III, &X[0][0], &DIsDouble); - I = TECDAT112(&III, &Y[0][0], &DIsDouble); - I = TECDAT112(&III, &P[0][0], &DIsDouble); - - /* - * Calculate and then write out the connectivity list. - * Note: The NM array references cells starting with - * offset of 1. - */ - - for (I = 1; I < IMax; I++) - for (J = 1; J < JMax; J++) - { - K = I + (J - 1) * (IMax - 1); - L = I + (J - 1) * IMax; - NM[K-1][0] = L; - NM[K-1][1] = L + 1; - NM[K-1][2] = L + IMax + 1; - NM[K-1][3] = L + IMax; - } - - I = TECNOD112((INTEGER4 *)NM); - - /* - * Calculate values for the new solution variable. - */ - for (J = 0; J < 5; J++) - for (I = 0; I < 4; I++) - { - P[J][I] = (float)(2.0 * (I + 1) * (J + 1)); - } - - /* - * Write the zone header information for time step 2 - */ - ZoneType = 0; - IMax = 4; - JMax = 5; - KMax = 1; - SolTime = 20.0; - StrandID = 1; - SharingZone[0] = 1; - SharingZone[1] = 1; - SharingZone[2] = 0; /* solution variable is not shared */ - ShareConnectivityFromZone = 0; - - I = TECZNE112((char*)"Ordered Zone 2", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - 0, /* TotalNumFaceNodes */ - 0, /* NumConnectedBoundaryFaces */ - 0, /* TotalNumBoundaryConnections */ - NULL, - NULL, - SharingZone, - &ShareConnectivityFromZone); - - /* - * Write out the solution variable the grid variables are shared. - */ - IMax = 4; - JMax = 5; - III = IMax * JMax; - DIsDouble = 0; - I = TECDAT112(&III, &P[0][0], &DIsDouble); - - /* - * Calculate values for the new solution variable. - */ - for (J = 0; J < 5; J++) - for (I = 0; I < 4; I++) - { - P[J][I] = (float)(3.0 * (I + 1) * (J + 1)); - } - - /* - * Write another time step for the FEZone and share from the first - */ - ZoneType = 3; - SolTime = 20.0; - StrandID = 2; - KMax = 0; - SharingZone[0] = 2; - SharingZone[1] = 2; - SharingZone[2] = 0; /* solution variable is not shared */ - ShareConnectivityFromZone = 2; - I = TECZNE112((char*)"Finite Zone 2", - &ZoneType, - &NPts, - &NElm, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - 0, /* TotalNumFaceNodes */ - 0, /* NumConnectedBoundaryFaces */ - 0, /* TotalNumBoundaryConnections */ - NULL, /* PassiveVarList */ - NULL, /* ValueLocation */ - SharingZone, - &ShareConnectivityFromZone); - - /* - * Write out the solution variable the grid variables are shared. - */ - IMax = 4; - JMax = 5; - III = IMax * JMax; - DIsDouble = 0; - I = TECDAT112(&III, &P[0][0], &DIsDouble); - - /* - * Prepare to write out text record. Text is positioned - * at 0.5, 0.5 in frame units and has a height - * of 0.05 frame units. - */ - XP = 50.0; - YP = 50.0; - ZP = 0.0; - FH = 5.0; - Scope = 1; /* Local */ - Clipping = 1; /* Clip to frame */ - PositionCoordSys = 1; /* Frame */ - FontType = 1; /* Helv Bold */ - HeightUnits = 1; /* Frame */ - AttachToZone = 0; - Zone = 0; - BoxType = 0; /* None */ - BoxMargin = 5.0; - BoxLineThickness = 0.5; - BoxColor = 3; - BoxFillColor = 7; - TextAngle = 0.0; - Anchor = 0; /* Left */ - LineSpacing = 1.0; - TextColor = 0; /* Black */ - - III = TECTXT112(&XP, - &YP, - &ZP, - &PositionCoordSys, - &AttachToZone, - &Zone, - &FontType, - &HeightUnits, - &FH, - &BoxType, - &BoxMargin, - &BoxLineThickness, - &BoxColor, - &BoxFillColor, - &TextAngle, - &Anchor, - &LineSpacing, - &TextColor, - &Scope, - &Clipping, - (char*)"Hi Mom", - (char*)""); - - /* - * Prepare to write out geometry record (circle). Circle is - * positioned at 25, 25 (in frame units) and has a radius of - * 20 percent. Circle is drawn using a dashed line. - */ - - - XP = 25.0; - YP = 25.0; - ZP = 0.0; - IsFilled = 0; - Color = 0; - FillColor = 7; - GeomType = 3; /* Circle */ - LinePattern = 1; /* Dashed */ - LineThickness = 0.3; - PatternLength = 1.5; - NumEllipsePts = 72; - ArrowheadStyle = 0; - ArrowheadAttachment = 0; - ArrowheadSize = 0.1; - ArrowheadAngle = 15.0; - NumSegments = 1; - NumSegPts[0] = 1; - - XGeomData[0] = 20.0; - YGeomData[0] = 0.0; - ZGeomData[0] = 0.0; - - - III = TECGEO112(&XP, - &YP, - &ZP, - &PositionCoordSys, - &AttachToZone, - &Zone, - &Color, - &FillColor, - &IsFilled, - &GeomType, - &LinePattern, - &PatternLength, - &LineThickness, - &NumEllipsePts, - &ArrowheadStyle, - &ArrowheadAttachment, - &ArrowheadSize, - &ArrowheadAngle, - &Scope, - &Clipping, - &NumSegments, - NumSegPts, - &XGeomData[0], - &YGeomData[0], - &ZGeomData[0], - (char*)""); - - /* - * Close out file 1. - */ - I = TECEND112(); - - /* - * Close out file 2. - */ - III = 2; - I = TECFIL112(&III); - I = TECEND112(); - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.f b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.f deleted file mode 100644 index c8d6e2ce5a..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.f +++ /dev/null @@ -1,467 +0,0 @@ -C -C Complex example FORTRAN program to write a -C binary data file for Tecplot. This example -C does the following: -C -C 1. Open a data file called "field.plt." -C 2. Open a data file called "line.plt." -C 3. Assign values for X, Y and P. These will be used -C in both the ordered and FE data files. -C 4. Write out an ordered zone dimensioned 4 x 5 to "field.plt." -C 5. Assign values for XL and YL arrays. -C 6. Write out data for line plot to "line.plt." Make the data -C use double precision. -C 7. Write out a finite element zone to "field.plt." -C 8. Write out a text record to "field.plt." -C 9. Write out a geometry (circle) record to "field.plt." -C 10. Close file 1. -C 11. Close file 2. -C - Program ComplexTest - - Include "tecio.inc" - - REAL*4 X(4,5), Y(4,5), P(4,5) - REAL*8 XL(50), YL(50) - REAL*4 XLDummy(1), YLDummy(1) - EQUIVALENCE (XLDummy(1), XL(1)) - EQUIVALENCE (YLDummy(1), YL(1)) - REAL*8 SolTime - INTEGER*4 Debug,I,J,K,L,III,NPts,NElm,DIsDouble,VIsDouble - INTEGER*4 IMax,JMax,KMax,NM(4,12),FileType - INTEGER*4 StrandID,ParentZn - INTEGER*4 SharingZone(3) - REAL*8 XP, YP, ZP, FH, LineSpacing, PatternLength - REAL*8 BoxMargin, BoxLineThickness, TextAngle - INTEGER*4 AttachToZone, Zone, Scope, PositionCoordSys - INTEGER*4 Clipping - INTEGER*4 FontType, HeightUnits, Anchor, BoxType - INTEGER*4 IsFilled, GeomType, LinePattern, NumEllipsePts - INTEGER*4 BoxColor, BoxFillColor, TextColor, Color, FillColor - INTEGER*4 ArrowheadStyle, ArrowheadAttachment, NumSegments - INTEGER*4 NumSegPts(1) - REAL*8 LineThickness, ArrowheadSize, ArrowheadAngle - REAL*4 XGeomData(1), YGeomData(1), ZGeomData(1) - CHARACTER*1 NULCHAR - INTEGER*4 Zero - POINTER (NullPtr,Null) - INTEGER*4 Null(*) - - Debug = 2 - VIsDouble = 0 - FileType = 0 - DIsDouble = 0 - NULCHAR = CHAR(0) - Zero = 0 - NullPtr = 0 -C -C Open field.plt and write the header information. -C - I = TECINI112('DATASET WITH 1 ORDERED ZONE, '// - & '1 QUAD ZONE OVER 2 TIME STEPS'//NULCHAR, - & 'X Y P'//NULCHAR, - & 'field.plt'//NULCHAR, - & '.'//NULCHAR, - & FileType, - & Debug, - & VIsDouble) -C -C Open line.plt and write the header information. -C - VIsDouble = 1 - I = TECINI112('DATASET WITH ONE I-ORDERED ZONE'//NULCHAR, - & 'X Y'//NULCHAR, - & 'line.plt'//NULCHAR, - & '.'//NULCHAR, - & FileType, - & Debug, - & VIsDouble) - -C -C Calculate values for the field variables. -C - Do 10 J = 1,5 - Do 10 I = 1,4 - X(I,J) = I - Y(I,J) = J - P(I,J) = I*J - 10 Continue - -C -C Make sure writing to file #1. -C - III = 1 - I = TECFIL112(III) - -C -C Write the zone header information for the ordered zone. -C - IMax = 4 - JMax = 5 - KMax = 1 - SolTime = 10.0 - StrandID = 1 - ParentZn = 0 - I = TECZNE112('Ordered Zone 1'//NULCHAR, - & 0, ! ZONETYPE - & IMax, - & JMax, - & KMax, - & 0, - & 0, - & 0, - & SolTime, - & StrandID, - & ParentZn, - & 1, ! ISBLOCK - & 0, ! NumFaceConnections - & 0, ! FaceNeighborMode - & 0, ! TotalNumFaceNodes - & 0, ! NumConnectedBoundaryFaces - & 0, ! TotalNumBoundaryConnections - & Null, ! PassiveVarList - & Null, ! ValueLocation - & Null, ! ShareVarFromZone - & 0) ! ShareConnectivityFromZone) - -C -C Write out the field data for the ordered zone. -C - III = IMax*JMax - I = TECDAT112(III,X,DIsDouble) - I = TECDAT112(III,Y,DIsDouble) - I = TECDAT112(III,P,DIsDouble) - -C -C Calculate values for the I-ordered zone. -C - - Do 20 I = 1,50 - XL(I) = I - YL(I) = sin(I/20.0) - 20 Continue -C -C Switch to the 'line.plt' file (file number 2) -C and write out the line plot data. -C - III = 2 - I = TECFIL112(III) -C -C Write the zone header information for the XY-data. -C - IMax = 50 - JMax = 1 - KMax = 1 - SolTime = 0.0 - StrandID = 0 - I = TECZNE112('XY Line plot'//NULCHAR, - & 0, - & IMax, - & JMax, - & KMax, - & 0, - & 0, - & 0, - & SolTime, - & StrandID, - & ParentZn, - & 1, - & 0, - & 0, - & 0, - & 0, - & 0, - & Null, - & Null, - & Null, - & 0) -C -C Write out the line plot. -C - DIsDouble = 1 - III = IMax - I = TECDAT112(III,XLDummy,DIsDouble) - I = TECDAT112(III,YLDummy,DIsDouble) - -C -C Switch back to the field plot file and write out -C the finite-element zone. -C - III = 1 - I = TECFIL112(III) -C -C Move the coordinates so this zone's not on top of the other -C - Do 30 J = 1,5 - Do 30 I = 1,4 - X(I,J) = I+5 - Y(I,J) = J - P(I,J) = I*J - 30 Continue -C -C Write the zone header information for the finite-element zone. -C - NPts = 20 - NElm = 12 - KMax = 1 - SolTime = 10.0 - StrandID = 2 - I = TECZNE112('Finite Zone 1'//NULCHAR, - & 3, ! FEQUADRILATERAL - & NPts, - & NElm, - & KMax, - & 0, - & 0, - & 0, - & SolTime, - & StrandID, - & ParentZn, - & 1, - & 0, - & 0, - & 0, - & 0, - & 0, - & Null, - & Null, - & Null, - & 0) -C -C Write out the field data for the finite-element zone. -C - IMax = 4 - JMax = 5 - III = IMax*JMax - DIsDouble = 0 - I = TECDAT112(III,X,DIsDouble) - I = TECDAT112(III,Y,DIsDouble) - I = TECDAT112(III,P,DIsDouble) - -C -C Calculate and then write out the connectivity list. -C Note: The NM array references cells starting with -C offset of 1. -C - - Do 40 I = 1,IMax-1 - Do 40 J = 1,JMax-1 - K = I+(J-1)*(IMax-1) - L = I+(J-1)*IMax - NM(1,K) = L - NM(2,K) = L+1 - NM(3,K) = L+IMax+1 - NM(4,K) = L+IMax - 40 Continue - - I = TECNOD112(NM) -C -C Calculate vlues for the new solution variable. -C - Do 50 J = 1,5 - Do 50 I = 1,4 - P(I,J) = 2*I*J - 50 Continue -C -C Write the zone header information for time step 2 -C - IMax = 4 - JMax = 5 - KMax = 1 - SolTime = 20.0 - StrandID = 1 - SharingZone(1) = 1 - SharingZone(2) = 1 - SharingZone(3) = 0 - I = TECZNE112('Ordered Zone 2'//NULCHAR, - & 0, ! ORDERED - & IMax, - & JMax, - & KMax, - & 0, - & 0, - & 0, - & SolTime, - & StrandID, - & ParentZn, - & 1, - & 0, - & 0, - & 0, - & 0, - & 0, - & Null, - & Null, - & SharingZone, - & 0) -C -C Write out the solution variable the grid variables are shared. -C - IMax = 4 - JMax = 5 - III = IMax*JMax - DIsDouble = 0 - I = TECDAT112(III,P,DIsDouble) -C -C Calculate values for the new solution variable. -C - Do 60 J = 1,5 - Do 60 I = 1,4 - P(I,J) = 3*I*J - 60 Continue -C -C Write another time step for the FEZone and share from the first -C - SolTime = 20.0 - StrandID = 2 - KMax = 0 - SharingZone(1) = 2 - SharingZone(2) = 2 - SharingZone(3) = 0 - I = TECZNE112('Finite Zone 2'//NULCHAR, - & 3, ! FEQUADRILATERAL - & NPts, - & NElm, - & KMax, - & 0, - & 0, - & 0, - & SolTime, - & StrandID, - & ParentZn, - & 1, - & 0, - & 0, - & 0, - & 0, - & 0, - & Null, - & Null, - & SharingZone, - & 2) -C -C Write out the solution variable the grid variables are shared. -C - IMax = 4 - JMax = 5 - III = IMax*JMax - DIsDouble = 0 - I = TECDAT112(III,P,DIsDouble) - -C -C Prepare to write out text record. Text is positioned -C at 50, 50 in frame units and has a height 5 frame units. -C - XP = 50 - YP = 50 - FH = 5 - Scope = 1 - Clipping = 0 - PositionCoordSys = 1 - FontType = 1 - HeightUnits = 1 - AttachToZone = 0 - Zone = 0 - BoxType = 0 - BoxMargin = 5.0 - BoxLineThickness = 0.5 - BoxColor = 3 - BoxFillColor = 7 - TextAngle = 0.0 - Anchor = 0 - LineSpacing = 1.5 - TextColor = 0 - - III = TECTXT112(XP, - & YP, - & 0.0d0, - & PositionCoordSys, - & AttachToZone, - & Zone, - & FontType, - & HeightUnits, - & FH, - & BoxType, - & BoxMargin, - & BoxLineThickness, - & BoxColor, - & BoxFillColor, - & TextAngle, - & Anchor, - & LineSpacing, - & TextColor, - & Scope, - & Clipping, - & 'Hi Mom'//NULCHAR, - & NULCHAR) - -C -C Prepare to write out geometry record (circle). Circle is -C positioned at 25, 25 in frame units and has a radius of 30. -C Circle is drawn using a dashed line pattern. -C - - - XP = 25 - YP = 25 - ZP = 0.0 - IsFilled = 0 - Color = 0 - FillColor = 7 - GeomType = 2 - LinePattern = 1 - LineThickness = 0.3 - PatternLength = 1 - NumEllipsePts = 72 - ArrowheadStyle = 0 - ArrowheadAttachment = 0 - ArrowheadSize = 0.0 - ArrowheadAngle = 15.0 - NumSegments = 1 - NumSegPts(1) = 1 - - XGeomData(1) = 30 - YGeomData(1) = 0.0 - ZGeomData(1) = 0.0 - - - III = TECGEO112(XP, - & YP, - & ZP, - & PositionCoordSys, - & AttachToZone, - & Zone, - & Color, - & FillColor, - & IsFilled, - & GeomType, - & LinePattern, - & PatternLength, - & LineThickness, - & NumEllipsePts, - & ArrowheadStyle, - & ArrowheadAttachment, - & ArrowheadSize, - & ArrowheadAngle, - & Scope, - & Clipping, - & NumSegments, - & NumSegPts, - & XGeomData, - & YGeomData, - & ZGeomData, - & NULCHAR) - -C -C Close out file 1. -C - I = TECEND112() - -C -C Close out file 2. -C - III = 2 - I = TECFIL112(III) - I = TECEND112() - STOP - END diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.f90 b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.f90 deleted file mode 100644 index 56b3d560c3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtest.f90 +++ /dev/null @@ -1,467 +0,0 @@ -! -! Complex example FORTRAN program to write a -! binary data file for Tecplot. This example -! does the following: -! -! 1. Open a data file called "field.plt." -! 2. Open a data file called "line.plt." -! 3. Assign values for X, Y and P. These will be used -! in both the ordered and FE data files. -! 4. Write out an ordered zone dimensioned 4 x 5 to "field.plt." -! 5. Assign values for XL and YL arrays. -! 6. Write out data for line plot to "line.plt." Make the data -! use double precision. -! 7. Write out a finite element zone to "field.plt." -! 8. Write out a text record to "field.plt." -! 9. Write out a geometry (circle) record to "field.plt." -! 10. Close file 1. -! 11. Close file 2. -! - Program ComplexTest - - Include "tecio.f90" - - REAL*4 X(4,5), Y(4,5), P(4,5) - REAL*8 XL(50), YL(50) - REAL*4 XLDummy(1), YLDummy(1) - EQUIVALENCE (XLDummy(1), XL(1)) - EQUIVALENCE (YLDummy(1), YL(1)) - REAL*8 SolTime - INTEGER*4 Debug,I,J,K,L,III,NPts,NElm,DIsDouble,VIsDouble,FileType - INTEGER*4 IMax,JMax,KMax,NM(4,12) - INTEGER*4 StrandID,ParentZn - INTEGER*4 SharingZone(3) - REAL*8 XP, YP, ZP, FH, LineSpacing, PatternLength - REAL*8 BoxMargin, BoxLineThickness, TextAngle - INTEGER*4 AttachToZone, Zone, Scope, PositionCoordSys - INTEGER*4 Clipping - INTEGER*4 FontType, HeightUnits, Anchor, BoxType - INTEGER*4 IsFilled, GeomType, LinePattern, NumEllipsePts - INTEGER*4 BoxColor, BoxFillColor, TextColor, Color, FillColor - INTEGER*4 ArrowheadStyle, ArrowheadAttachment, NumSegments - INTEGER*4 NumSegPts(1) - REAL*8 LineThickness, ArrowheadSize, ArrowheadAngle - REAL*4 XGeomData(1), YGeomData(1), ZGeomData(1) - CHARACTER*1 NULCHAR - INTEGER*4 Zero - POINTER (NullPtr,Null) - INTEGER*4 Null(*) - - Debug = 2 - VIsDouble = 0 - FileType = 0 - DIsDouble = 0 - NULCHAR = CHAR(0) - Zero = 0 - NullPtr = 0 -! -! Open field.plt and write the header information. -! - I = TECINI112('DATASET WITH 1 ORDERED ZONE, '// & - '1 QUAD ZONE OVER 2 TIME STEPS'//NULCHAR, & - 'X Y P'//NULCHAR, & - 'field.plt'//NULCHAR, & - '.'//NULCHAR, & - FileType, & - Debug, & - VIsDouble) -! -! Open line.plt and write the header information. -! - VIsDouble = 1 - I = TECINI112('DATASET WITH ONE I-ORDERED ZONE'//NULCHAR, & - 'X Y'//NULCHAR, & - 'line.plt'//NULCHAR, & - '.'//NULCHAR, & - FileType, & - Debug, & - VIsDouble) - -! -! Calculate values for the field variables. -! - Do 10 J = 1,5 - Do 10 I = 1,4 - X(I,J) = I - Y(I,J) = J - P(I,J) = I*J - 10 Continue - -! -! Make sure writing to file #1. -! - III = 1 - I = TECFIL112(III) - -! -! Write the zone header information for the ordered zone. -! - IMax = 4 - JMax = 5 - KMax = 1 - SolTime = 10.0 - StrandID = 1 - ParentZn = 0 - I = TECZNE112('Ordered Zone 1'//NULCHAR, & - 0, & ! ZONETYPE - IMax, & - JMax, & - KMax, & - 0, & - 0, & - 0, & - SolTime, & - StrandID, & - ParentZn, & - 1, & ! ISBLOCK - 0, & ! NumFaceConnections - 0, & ! FaceNeighborMode - 0, & ! TotalNumFaceNodes - 0, & ! NumConnectedBoundaryFaces - 0, & ! TotalNumBoundaryConnections - Null, & ! PassiveVarList - Null, & ! ValueLocation - Null, & ! ShareVarFromZone - 0) ! ShareConnectivityFromZone) - -! -! Write out the field data for the ordered zone. -! - III = IMax*JMax - I = TECDAT112(III,X,DIsDouble) - I = TECDAT112(III,Y,DIsDouble) - I = TECDAT112(III,P,DIsDouble) - -! -! Calculate values for the I-ordered zone. -! - - Do 20 I = 1,50 - XL(I) = I - YL(I) = sin(I/20.0) - 20 Continue -! -! Switch to the 'line.plt' file (file number 2) -! and write out the line plot data. -! - III = 2 - I = TECFIL112(III) -! -! Write the zone header information for the XY-data. -! - IMax = 50 - JMax = 1 - KMax = 1 - SolTime = 0.0 - StrandID = 0 - I = TECZNE112('XY Line plot'//NULCHAR, & - 0, & - IMax, & - JMax, & - KMax, & - 0, & - 0, & - 0, & - SolTime, & - StrandID, & - ParentZn, & - 1, & - 0, & - 0, & - 0, & - 0, & - 0, & - Null, & - Null, & - Null, & - 0) -! -! Write out the line plot. -! - DIsDouble = 1 - III = IMax - I = TECDAT112(III,XLDummy,DIsDouble) - I = TECDAT112(III,YLDummy,DIsDouble) - -! -! Switch back to the field plot file and write out -! the finite-element zone. -! - III = 1 - I = TECFIL112(III) -! -! Move the coordinates so this zone's not on top of the other -! - Do 30 J = 1,5 - Do 30 I = 1,4 - X(I,J) = I+5 - Y(I,J) = J - P(I,J) = I*J - 30 Continue -! -! Write the zone header information for the finite-element zone. -! - NPts = 20 - NElm = 12 - KMax = 1 - SolTime = 10.0 - StrandID = 2 - I = TECZNE112('Finite Zone 1'//NULCHAR, & - 3, & ! FEQUADRILATERAL - NPts, & - NElm, & - KMax, & - 0, & - 0, & - 0, & - SolTime, & - StrandID, & - ParentZn, & - 1, & - 0, & - 0, & - 0, & - 0, & - 0, & - Null, & - Null, & - Null, & - 0) -! -! Write out the field data for the finite-element zone. -! - IMax = 4 - JMax = 5 - III = IMax*JMax - DIsDouble = 0 - I = TECDAT112(III,X,DIsDouble) - I = TECDAT112(III,Y,DIsDouble) - I = TECDAT112(III,P,DIsDouble) - -! -! Calculate and then write out the connectivity list. -! Note: The NM array references cells starting with -! offset of 1. -! - - Do 40 I = 1,IMax-1 - Do 40 J = 1,JMax-1 - K = I+(J-1)*(IMax-1) - L = I+(J-1)*IMax - NM(1,K) = L - NM(2,K) = L+1 - NM(3,K) = L+IMax+1 - NM(4,K) = L+IMax - 40 Continue - - I = TECNOD112(NM) -! -! Calculate vlues for the new solution variable. -! - Do 50 J = 1,5 - Do 50 I = 1,4 - P(I,J) = 2*I*J - 50 Continue -! -! Write the zone header information for time step 2 -! - IMax = 4 - JMax = 5 - KMax = 1 - SolTime = 20.0 - StrandID = 1 - SharingZone(1) = 1 - SharingZone(2) = 1 - SharingZone(3) = 0 - I = TECZNE112('Ordered Zone 2'//NULCHAR, & - 0, & ! ORDERED - IMax, & - JMax, & - KMax, & - 0, & - 0, & - 0, & - SolTime, & - StrandID, & - ParentZn, & - 1, & - 0, & - 0, & - 0, & - 0, & - 0, & - Null, & - Null, & - SharingZone, & - 0) -! -! Write out the solution variable the grid variables are shared. -! - IMax = 4 - JMax = 5 - III = IMax*JMax - DIsDouble = 0 - I = TECDAT112(III,P,DIsDouble) -! -! Calculate values for the new solution variable. -! - Do 60 J = 1,5 - Do 60 I = 1,4 - P(I,J) = 3*I*J - 60 Continue -! -! Write another time step for the FEZone and share from the first -! - SolTime = 20.0 - StrandID = 2 - KMax = 0 - SharingZone(1) = 2 - SharingZone(2) = 2 - SharingZone(3) = 0 - I = TECZNE112('Finite Zone 2'//NULCHAR, & - 3, & ! FEQUADRILATERAL - NPts, & - NElm, & - KMax, & - 0, & - 0, & - 0, & - SolTime, & - StrandID, & - ParentZn, & - 1, & - 0, & - 0, & - 0, & - 0, & - 0, & - Null, & - Null, & - SharingZone, & - 2) -! -! Write out the solution variable the grid variables are shared. -! - IMax = 4 - JMax = 5 - III = IMax*JMax - DIsDouble = 0 - I = TECDAT112(III,P,DIsDouble) - -! -! Prepare to write out text record. Text is positioned -! at 50, 50 in frame units and has a height 5 frame units. -! - XP = 50 - YP = 50 - FH = 5 - Scope = 1 - Clipping = 0 - PositionCoordSys = 1 - FontType = 1 - HeightUnits = 1 - AttachToZone = 0 - Zone = 0 - BoxType = 0 - BoxMargin = 5.0 - BoxLineThickness = 0.5 - BoxColor = 3 - BoxFillColor = 7 - TextAngle = 0.0 - Anchor = 0 - LineSpacing = 1.5 - TextColor = 0 - - III = TECTXT112(XP, & - YP, & - 0.0d0, & - PositionCoordSys, & - AttachToZone, & - Zone, & - FontType, & - HeightUnits, & - FH, & - BoxType, & - BoxMargin, & - BoxLineThickness, & - BoxColor, & - BoxFillColor, & - TextAngle, & - Anchor, & - LineSpacing, & - TextColor, & - Scope, & - Clipping, & - 'Hi Mom'//NULCHAR, & - NULCHAR) - -! -! Prepare to write out geometry record (circle). Circle is -! positioned at 25, 25 in frame units and has a radius of 30. -! Circle is drawn using a dashed line pattern. -! - - - XP = 25 - YP = 25 - ZP = 0.0 - IsFilled = 0 - Color = 0 - FillColor = 7 - GeomType = 2 - LinePattern = 1 - LineThickness = 0.3 - PatternLength = 1 - NumEllipsePts = 72 - ArrowheadStyle = 0 - ArrowheadAttachment = 0 - ArrowheadSize = 0.0 - ArrowheadAngle = 15.0 - NumSegments = 1 - NumSegPts(1) = 1 - - XGeomData(1) = 30 - YGeomData(1) = 0.0 - ZGeomData(1) = 0.0 - - - III = TECGEO112(XP, & - YP, & - ZP, & - PositionCoordSys, & - AttachToZone, & - Zone, & - Color, & - FillColor, & - IsFilled, & - GeomType, & - LinePattern, & - PatternLength, & - LineThickness, & - NumEllipsePts, & - ArrowheadStyle, & - ArrowheadAttachment, & - ArrowheadSize, & - ArrowheadAngle, & - Scope, & - Clipping, & - NumSegments, & - NumSegPts, & - XGeomData, & - YGeomData, & - ZGeomData, & - NULCHAR) - -! -! Close out file 1. -! - I = TECEND112() - -! -! Close out file 2. -! - III = 2 - I = TECFIL112(III) - I = TECEND112() - STOP - END diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtestc.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtestc.vcproj deleted file mode 100644 index 23da375e8d..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtestc.vcproj +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtestf.vfproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtestf.vfproj deleted file mode 100644 index dc894475f3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/comtest/comtestf.vfproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/FaceNeighbors.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/FaceNeighbors.plt deleted file mode 100644 index 6581f95bdc..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/FaceNeighbors.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/Makefile deleted file mode 100644 index cc8b9bf18e..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=faceneighbors -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/faceneighbors.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/faceneighbors.cpp deleted file mode 100644 index 30b949e3f8..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/faceneighbors.cpp +++ /dev/null @@ -1,354 +0,0 @@ -/* This example illustrates how to create two simple - * FE-quadilateral zones and create a face neighbor - * connection between the two zones. In order to keep the - * example as simple as possible, error checking is not included. - */ - -#include "TECIO.h" -#include "MASTER.h" - -int main() -{ - /* Initialize the Data File using TECINI. TECINI is required - * for all data files. It is used to: open the data file and - * initialize the file header information (name the data file, - * the variables for the data file, and the file type). - */ - - /* DOCSTART:faceneighbors_tecini.txt*/ - - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - INTEGER4 I = 0; /* Used to track return codes */ - - I = TECINI112((char*)"Face Neighbors Example", /* Specifies the name - * of the entire - * dataset - */ - (char*)"X Y P", /* Defines the - * variables for the - * data file. Each - * zone must contain - * each of the vars - * listed. The order - * of the variables in - * the list is used to - * define the variable - * number (e.g. X is - * Var 1.) - */ - - (char*)"FaceNeighbors.plt", /* Specifies the - * file name. - */ - (char*)".", - &FileType, /* The FileType is set to - * zero, indicating it is - * a full file (containing - * both grid and solution - * data). - */ - &Debug, - &VIsDouble); - /* DOCEND */ - - /* After TECINI is called, call TECZNE to create one or - * more zones for your data file. - */ - /* DOCSTART:faceneighbors_teczne1.txt*/ - INTEGER4 ZoneType = 3; /* set the zone type to - * FEQuadrilateral - */ - INTEGER4 NumPts = 6; - INTEGER4 NumElems = 2; - INTEGER4 NumFaces = 8; - INTEGER4 ICellMax = 0; /* not used */ - INTEGER4 JCellMax = 0; /* not used */ - INTEGER4 KCellMax = 0; /* not used */ - double SolTime = 360.0; - INTEGER4 StrandID = 0; /* StaticZone */ - INTEGER4 ParentZn = 0; - INTEGER4 IsBlock = 1; /* Block */ - INTEGER4 NFConns = 1; /* Specify the number of Face - * Neighbor Connections in the - * Zone. When this value is - * greater than zero, TECFACE must - * be called prior to creating the - * next zone or ending the file. - */ - - /* Specify the Face Neighbor Mode. - * A value of 2 indicated that the face neighbor mode is global - * one-to-one. The scope of the face neighbors (local or - * global) is with respect to the zones. A value of global - * indicates that the face neighbor(s) is/are shared aross zones; - * a value of local indicates that the face neighbor(s) are - * shared within the current zone. The terms one-to-one and - * one-to-many are used to indicate whether the face in question - * is shared with one cell or several cells. - * For example, if your data is arranged as follows: - - ----------------------- - | | | | - | 1 | 2 | 3 | - | | | | - ----------------------- - | | | - | 4 | 5 | - | | | - ----------------------- - * The face between 1 & 4 is local-one-to-one. The face between - * 5 and (2 & 3) is local one-to-many. - */ - - INTEGER4 FNMode = 2; - - INTEGER4 TotalNumFaceNodes = 1; /* Not used for - * FEQuad zones*/ - INTEGER4 NumConnectedBoundaryFaces = 1; /* Not used for - * FEQuad zones*/ - INTEGER4 TotalNumBoundaryConnections = 1; /* Not used for - * FEQuad zones*/ - INTEGER4 ShrConn = 0; - - INTEGER4 ValueLocation[3] = {1, 1, 1}; /* Specify the variable - * values at the nodes. - * NOTE: Because all of - * the variables are - * defined at the nodes, - * we can just pass - * NULL for this array. - * We are providing the - * array for illustration - * purposes. - */ - - I = TECZNE112((char*)"Zone 1", - &ZoneType, - &NumPts, - &NumElems, - &NumFaces, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &TotalNumFaceNodes, - &NumConnectedBoundaryFaces, - &TotalNumBoundaryConnections, - NULL, - ValueLocation, - NULL, - &ShrConn); - /* DOCEND */ - - /* Set up the variable values. The variable values will be - * written to the file using TECDAT. Because we are specifying - * nodal variables (as specified via the ValueLocation - * parameter in TECZNE, each variable is dimensioned by the - * number of points (NumPts) in the Zone. You have the option - * to specify some variables with nodal values and some with - * cell-centered values. Refer to the Binary Function - * Reference for details. - */ - - /* DOCSTART:faceneighbors_tecdat1.txt*/ - float *X = new float[NumPts]; - float *Y = new float[NumPts]; - float *P = new float[NumPts]; - - /* For this example, we will create 2 rectangular cells in Zone - * 1. Before defining your variables, you must establish a - * consistent node numbering scheme for your data. Once the - * node numbers are defined, supply the variable values in the - * node numbering order. In this example, node 1 is defined at - * X = 0 and Y = 0. As such, the first value supplied for X - * (i.e. X[0]) is 0. Similarly, the first value supplied for Y - * is 0. - * - * It is important that you refer to node numbers consistently. - * The node numbers will be used later to define the - * connectivity for each element. - */ - - X[0] = 0; - X[1] = 0; - X[2] = 1; - X[3] = 1; - X[4] = 2; - X[5] = 2; - - Y[0] = 0; - Y[1] = 1; - Y[2] = 0; - Y[3] = 1; - Y[4] = 0; - Y[5] = 1; - - for (INTEGER4 ii = 0; ii < NumPts; ii++) - P[ii] = (float)(NumPts - ii); - - INTEGER4 DIsDouble = 0; /* Set DIsDouble to zero to use - * variables in float format. - */ - - /* Call TECDAT once for each variable */ - I = TECDAT112(&NumPts, &X[0], &DIsDouble); - I = TECDAT112(&NumPts, &Y[0], &DIsDouble); - I = TECDAT112(&NumPts, &P[0], &DIsDouble); - /* DOCEND */ - - /* Define the face neighbors connections. - * The Connectivity List is used to specify the nodes that - * compose each element. When working with nodal variables, the - * numbering of the nodes is implicitly defined when the - * variables are declared. The first value of each variable is - * for node one, the second value for node two, and so on. - * - * Because this zone contains two quadilateral elements, we must - * supply 8 values in the connectivity list. The first four - * values define the nodes that form element 1. Similarly, the - * second four values define the nodes that form element 2. - */ - - /* DOCSTART:faceneighbors_tecnod1.txt*/ - INTEGER4 ConnList[8] = {1, 3, 4, 2, - 3, 5, 6, 4 - }; - I = TECNOD112(ConnList); - /* DOCEND */ - - /* TIP! It is important to provide the node list in either a - * clockwise or counter-clockwise order. Otherwise, your - * elements will be misformed. For example, if the first two - * numbers in the above connectivity list, the zone would - * appear as follows: - */ - - /* Now that TECNOD has been called, the creation of Zone 1 - * is complete. However, in this example, we will define a - * face neighbor between Zone 1 and Zone 2 (to be created - * later in the example). Face Neighbor connections are used - * to define connections that are not created via the - * connectivity list. For example, local face neighbors may - * need to be defined when a zone wraps itself and global face - * neighbors may need to be defined to smooth edges across - * zones. Face Neighbors are used when deriving variables and - * drawing contours. - * - * In this example, we are creating a face neighbor connection - * between cell 2 in Zone 1 and cell 1 in Zone 2. The - * information required when specifying face neighbors - * depends upon the type of connection. - * - * In this case, we must supply (in this order): - * - the cell number in the current zone that contains the - * - the number of the face in that cell that contains the - * face neighbor - * - the number of the other zone to which the face is - * connected - * - the number of the cell in the other zone to which the - * face is connected - * The face numbering for cell-based finite elements is - * defined using the picture displayed in the Data Format - * Guide. In this example, face 2 in cell 2 in the current - * zone is connected to cell 1 in zone 2. - */ - - /* DOCSTART:faceneighbors_tecface1.txt*/ - INTEGER4 FaceConn[4] = {2, 2, 2, 1}; - I = TECFACE112(FaceConn); - /* DOCEND */ - - /* The creation of Zone 1 is complete. We are ready to create - * Zone 2. For simplicity, Zone 2 is a copy of Zone 1 shifted - * along the X-axis. As such, many of the variables used to - * create Zone 1 are re-used here. - */ - /* DOCSTART:faceneighbors_teczne2.txt*/ - /* Call TECZNE to create Zone 2 */ - I = TECZNE112((char*)"Zone 2", - &ZoneType, - &NumPts, - &NumElems, - &NumFaces, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &TotalNumFaceNodes, - &NumConnectedBoundaryFaces, - &TotalNumBoundaryConnections, - NULL, - ValueLocation, - NULL, - &ShrConn); - /* DOCEND */ - - /* Define the variables for Zone 2. Because Zone 2 is a copy - * of Zone 1, shifted along the X-axis, we can share the Y - * variable definition used to Zone. We will also create a - * second pressure variable for Zone 2 (P2). - */ - - /* DOCSTART:faceneighbors_tecdat2.txt*/ - float *X2 = new float[NumPts]; - float *P2 = new float[NumPts]; - - for (INTEGER4 ii = 0; ii < NumPts; ii++) - { - X2[ii] = X[ii] + 2; - P2[ii] = 2 * (float)ii; - } - - I = TECDAT112(&NumPts, &X2[0], &DIsDouble); - I = TECDAT112(&NumPts, &Y[0], &DIsDouble); - I = TECDAT112(&NumPts, &P2[0], &DIsDouble); - - delete X; - delete Y; - delete P; - delete X2; - delete P2; - /* DOCEND */ - - /* As with Zone 1, we must define the connectivity list for - * Zone 2. Because, the node numbering restarts at one for each - * new zone and the nodal arrangement is identical between the - * two zones, we may reuse the connectivity list from Zone 1. - */ - - /* DOCSTART:faceneighbors_tecnod2.txt*/ - I = TECNOD112(ConnList); - /* DOCEND */ - - /* We will now specify the face neighbor connection with - * respect to our new current zone of Zone 2. - */ - - /* DOCSTART:faceneighbors_tecface2.txt*/ - INTEGER4 FaceConn2[4] = {1, 4, 1, 2}; /* cell 1, face 4 in - * current zone is a - * neighbor to cell 2 in - * zone 1. - */ - I = TECFACE112(FaceConn2); - /* DOCEND */ - - /* Call TECEND to close the file */ - /* DOCSTART:faceneighbors_tecend.txt*/ - I = TECEND112(); - /* DOCEND */ - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/faceneighbors.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/faceneighbors.vcproj deleted file mode 100644 index c3099ffedb..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/faceneighbors/faceneighbors.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/Makefile deleted file mode 100644 index d901ed95c1..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=gridsolution -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/gridsolution.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/gridsolution.cpp deleted file mode 100644 index f960357157..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/gridsolution.cpp +++ /dev/null @@ -1,376 +0,0 @@ -/* This example illustrates using separate grid - * and solution files. - */ - -#include "TECIO.h" -#include "MASTER.h" /* for defintion of NULL */ - -int main() -{ - /* DOCSTART:gridsolution_grid_tecini.txt*/ - INTEGER4 I; /* use to check return values */ - - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 1; /* 1 = grid file. */ - - I = TECINI112((char*)"Example: Separate grid and solution files", - (char*)"X Y Z", /* Defines the variables for the data file. - * Each zone must contain each of the vars - * listed here. The order of the variables - * in the list is used to define the - * variable number (e.g. X is Variable 1). - * When referring to variables in other - * TecIO functions, you will refer to the - * variable by its number. - */ - (char*)"grid.plt", - (char*)".", /* scratch directory */ - &FileType, - &Debug, - &VIsDouble); - /* DOCEND */ - - /* DOCSTART:gridsolution_grid_teczne.txt*/ - /* TECZNE Parameters */ - INTEGER4 ZoneType = 7; /* FE Polyhedron */ - INTEGER4 NumPts = 20; /* the number of unique - * nodes in the zone. - */ - INTEGER4 NumElems = 1; - INTEGER4 NumFaces = 12; /* the number of unique - * faces in the zone. - */ - INTEGER4 ICellMax = 0; /* not used */ - INTEGER4 JCellMax = 0; /* not used */ - INTEGER4 KCellMax = 0; /* not used */ - double SolutionTime = 0.0; - INTEGER4 StrandID = 1; /* time strand for - * unsteady solution. - */ - INTEGER4 ParentZone = 0; - INTEGER4 IsBlock = 1; - INTEGER4 NumFaceConnections = 0; - INTEGER4 FaceNeighborMode = 1; - INTEGER4 SharConn = 0; - - /* For this zone, the total number of face nodes is - * five times number of faces, because each face - * is a pentagon. - */ - INTEGER4 TotalNumFaceNodes = 5 * NumFaces; - - /* This zone has no connected boundary faces. - */ - INTEGER4 TotalNumBndryFaces = 0; - INTEGER4 TotalNumBndryConns = 0; - - I = TECZNE112((char*)"Dodecahedron", /* Name of the zone. */ - &ZoneType, - &NumPts, - &NumElems, - &NumFaces, - &ICellMax, - &JCellMax, - &KCellMax, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - &TotalNumFaceNodes, - &TotalNumBndryFaces, - &TotalNumBndryConns, - NULL, - NULL, /* All nodal variables */ - NULL, - &SharConn); - /* DOCEND */ - - /* DOCSTART:gridsolution_grid_tecdat.txt*/ - - /* TECDAT Parameters */ - double Phi = 0.5 * (1.0 + sqrt(5.0)); - double Pi = 3.141592653578; - double *X = new double[NumPts]; - double *Y = new double[NumPts]; - double *Z = new double[NumPts]; - int Count = 0; - - for(int J = 0; J <= 4; J++) - { - X[Count] = 2.0 * cos(2.0 / 5.0 * Pi * J); - Y[Count] = 2.0 * sin(2.0 / 5.0 * Pi * J); - Z[Count] = Phi + 1.0; - Count++; - - X[Count] = -X[Count - 1]; - Y[Count] = -Y[Count - 1]; - Z[Count] = -Z[Count - 1]; - Count++; - - X[Count] = 2.0 * Phi * cos(2.0 / 5.0 * Pi * J); - Y[Count] = 2.0 * Phi * sin(2.0 / 5.0 * Pi * J); - Z[Count] = Phi - 1.0; - Count++; - - X[Count] = -X[Count - 1]; - Y[Count] = -Y[Count - 1]; - Z[Count] = -Z[Count - 1]; - Count++; - } - - INTEGER4 IsDouble = 1; - - I = TECDAT112(&NumPts, X, &IsDouble); - I = TECDAT112(&NumPts, Y, &IsDouble); - I = TECDAT112(&NumPts, Z, &IsDouble); - - delete X; - delete Y; - delete Z; - - /* DOCEND */ - - /* DOCSTART:gridsolution_grid_facenodes.txt*/ - /* TecPoly Parameters */ - - /* Create a FaceNodes array, dimensioned by the total number - * of face nodes in the zone. - */ - INTEGER4 *FaceNodes = new INTEGER4[TotalNumFaceNodes]; - int n = 0; - - /* Face Nodes for face 1 of the dodecahedron */ - FaceNodes[n++] = 2; - FaceNodes[n++] = 6; - FaceNodes[n++] = 10; - FaceNodes[n++] = 14; - FaceNodes[n++] = 18; - - /* Face Nodes for face 2 */ - FaceNodes[n++] = 6; - FaceNodes[n++] = 8; - FaceNodes[n++] = 19; - FaceNodes[n++] = 12; - FaceNodes[n++] = 10; - - /* Face Nodes for face 3 */ - FaceNodes[n++] = 3; - FaceNodes[n++] = 12; - FaceNodes[n++] = 10; - FaceNodes[n++] = 14; - FaceNodes[n++] = 16; - - /* Face Nodes for face 4 */ - FaceNodes[n++] = 7; - FaceNodes[n++] = 16; - FaceNodes[n++] = 14; - FaceNodes[n++] = 18; - FaceNodes[n++] = 20; - - /* Face Nodes for face 5 */ - FaceNodes[n++] = 2; - FaceNodes[n++] = 4; - FaceNodes[n++] = 11; - FaceNodes[n++] = 20; - FaceNodes[n++] = 18; - - /* Face Nodes for face 6 */ - FaceNodes[n++] = 2; - FaceNodes[n++] = 4; - FaceNodes[n++] = 15; - FaceNodes[n++] = 8; - FaceNodes[n++] = 6; - - /* Face Nodes for face 7 */ - FaceNodes[n++] = 1; - FaceNodes[n++] = 3; - FaceNodes[n++] = 12; - FaceNodes[n++] = 19; - FaceNodes[n++] = 17; - - /* Face Nodes for face 8 */ - FaceNodes[n++] = 1; - FaceNodes[n++] = 3; - FaceNodes[n++] = 16; - FaceNodes[n++] = 7; - FaceNodes[n++] = 5; - - /* Face Nodes for face 9 */ - FaceNodes[n++] = 5; - FaceNodes[n++] = 7; - FaceNodes[n++] = 20; - FaceNodes[n++] = 11; - FaceNodes[n++] = 9; - - /* Face Nodes for face 10 */ - FaceNodes[n++] = 4; - FaceNodes[n++] = 11; - FaceNodes[n++] = 9; - FaceNodes[n++] = 13; - FaceNodes[n++] = 15; - - /* Face Nodes for face 11 */ - FaceNodes[n++] = 8; - FaceNodes[n++] = 15; - FaceNodes[n++] = 13; - FaceNodes[n++] = 17; - FaceNodes[n++] = 19; - - /* Face Nodes for face 12 */ - FaceNodes[n++] = 1; - FaceNodes[n++] = 5; - FaceNodes[n++] = 9; - FaceNodes[n++] = 13; - FaceNodes[n++] = 17; - - /* DOCEND */ - - /* Specify the number of nodes for each face, and the right and - * left neighboring elements. The neighboring elements can be - * determined using the right-hand rule. For each face, curl - * the fingers of your right hand in the direction of - * incrementing node numbers (i.e. from Node 1 to Node 2 and - * so on). Your thumb will point toward the right element. - * A value of zero indicates that there is no - * neighboring element on that side. A negative value - * indicates that the neighboring element is in another zone. - * In that case, the number is a pointer into the - * FaceBndryConnectionElems and FaceBndryConnectionZones arrays. - */ - - /* DOCSTART:gridsolution_grid_tecpoly.txt*/ - INTEGER4 *FaceNodeCounts = new INTEGER4[NumFaces]; - INTEGER4 *FaceLeftElems = new INTEGER4[NumFaces]; - INTEGER4 *FaceRightElems = new INTEGER4[NumFaces]; - - /* For this particular zone, each face has the 5 nodes. */ - for(int J = 0; J < NumFaces; J++) - FaceNodeCounts[J] = 5; - - /* Set the right and left elements for each face. */ - FaceRightElems[0] = 1; - FaceRightElems[1] = 1; - FaceRightElems[2] = 0; - FaceRightElems[3] = 0; - FaceRightElems[4] = 0; - FaceRightElems[5] = 1; - FaceRightElems[6] = 1; - FaceRightElems[7] = 0; - FaceRightElems[8] = 0; - FaceRightElems[9] = 1; - FaceRightElems[10] = 1; - FaceRightElems[11] = 0; - - FaceLeftElems[0] = 0; - FaceLeftElems[1] = 0; - FaceLeftElems[2] = 1; - FaceLeftElems[3] = 1; - FaceLeftElems[4] = 1; - FaceLeftElems[5] = 0; - FaceLeftElems[6] = 0; - FaceLeftElems[7] = 1; - FaceLeftElems[8] = 1; - FaceLeftElems[9] = 0; - FaceLeftElems[10] = 0; - FaceLeftElems[11] = 1; - - I = TECPOLY112(FaceNodeCounts, - FaceNodes, - FaceLeftElems, - FaceRightElems, - NULL, /* No boundary connections. */ - NULL, - NULL); - - delete FaceNodes; - delete FaceLeftElems; - delete FaceRightElems; - - /* DOCEND */ - - - /* DOCSTART:gridsolution_grid_tecend.txt*/ - I = TECEND112(); - /* DOCEND */ - - /* DOCSTART:gridsolution_solution_tecini.txt*/ - for(int J = 0; J < 5; J++) - { - char SolutionFileName[128]; - sprintf(SolutionFileName, "solution%d.plt", J); - - /* DOCSTART:gridsolution_solution_tecini.txt*/ - FileType = 2; /* 1 = solution file. */ - - I = TECINI112((char*)"Example: Separate grid and solution files", - (char*)"P T", /* Defines the variables for the solution file. - * Note that these are different variables from - * the grid file. - */ - SolutionFileName, - (char*)".", /* scratch directory */ - &FileType, - &Debug, - &VIsDouble); - /* DOCEND */ - - /* DOCSTART:gridsolution_solution_teczne.txt*/ - /* TECZNE Parameters are mostly unchanged from creation of the grid file. */ - TotalNumFaceNodes = 0; - SolutionTime = J; - - char ZoneName[128]; - sprintf(ZoneName, "Dodecahedron Time=%g", SolutionTime); - I = TECZNE112(ZoneName, - &ZoneType, - &NumPts, - &NumElems, - &NumFaces, - &ICellMax, - &JCellMax, - &KCellMax, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - &TotalNumFaceNodes, - &TotalNumBndryFaces, - &TotalNumBndryConns, - NULL, - NULL, /* All nodal variables */ - NULL, - &SharConn); - /* DOCEND */ - - /* DOCSTART:gridsolution_solution_tecdat.txt*/ - - /* TECDAT Parameters */ - double *P = new double[NumPts]; - double *T = new double[NumPts]; - - for(int K = 0; K < NumPts; K++) - { - P[K] = (double)(K + J); - T[K] = 1.0 + K + K; - } - - I = TECDAT112(&NumPts, P, &IsDouble); - I = TECDAT112(&NumPts, T, &IsDouble); - - delete P; - delete T; - - /* DOCEND */ - - /* DOCSTART:gridsolution_solution_tecend.txt*/ - I = TECEND112(); - /* DOCEND */ - } - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/gridsolution.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/gridsolution.vcproj deleted file mode 100644 index 7e333fd227..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/gridsolution/gridsolution.vcproj +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/Makefile deleted file mode 100644 index 90411d11e2..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=ij_ordered -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.cpp deleted file mode 100644 index 2f13c1f4a3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* This example creates a simple set of IJ-ordered zones */ -/* DOCSTART:ij_ordered.txt*/ -#include "TECIO.h" -#include "MASTER.h" /* for defintion of NULL */ - -int main() -{ - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - INTEGER4 I = 0; /* Used to track return codes */ - - /* - * Open the file and write the tecplot datafile - * header information - */ - I = TECINI112((char*)"IJ Ordered Zones", /* Name of the entire - * dataset. - */ - (char*)"X Y P", /* Defines the variables for the data - * file. Each zone must contain each of - * the variables listed here. The order - * of the variables in the list is used - * to define the variable number (e.g. - * X is Var 1). - */ - (char*)"ij_ordered.plt", - (char*)".", /* Scratch Directory */ - &FileType, - &Debug, - &VIsDouble); - - float X1[4]; - float Y1[4]; - float P1[4]; - float X2[4]; - float Y2[4]; - float P2[4]; - - INTEGER4 ICellMax = 0; - INTEGER4 JCellMax = 0; - INTEGER4 KCellMax = 0; - INTEGER4 DIsDouble = 0; - double SolTime = 360.0; - INTEGER4 StrandID = 0; /* StaticZone */ - INTEGER4 ParentZn = 0; - INTEGER4 IsBlock = 1; /* Block */ - INTEGER4 NFConns = 0; - INTEGER4 FNMode = 0; - INTEGER4 TotalNumFaceNodes = 1; - INTEGER4 TotalNumBndryFaces = 1; - INTEGER4 TotalNumBndryConnections = 1; - INTEGER4 ShrConn = 0; - - /*Ordered Zone Parameters*/ - INTEGER4 IMax = 2; - INTEGER4 JMax = 2; - INTEGER4 KMax = 1; - - X1[0] = .125; - Y1[0] = .5; - P1[0] = 5; - - X1[1] = .625; - Y1[1] = .5; - P1[1] = 7.5; - - X1[2] = .125; - Y1[2] = .875; - P1[2] = 10; - - X1[3] = .625; - Y1[3] = .875; - P1[3] = 7.5; - - X2[0] = .375; - Y2[0] = .125; - P2[0] = 5; - - X2[1] = .875; - Y2[1] = .125; - P2[1] = 7.5; - - X2[2] = .375; - Y2[2] = .5; - P2[2] = 10; - - X2[3] = .875; - Y2[3] = .5; - P2[3] = 7.5; - - /* Ordered Zone */ - INTEGER4 ZoneType = 0; - I = TECZNE112((char*)"Ordered Zone", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &TotalNumFaceNodes, - &TotalNumBndryFaces, - &TotalNumBndryConnections, - NULL, - NULL, - NULL, - &ShrConn); - INTEGER4 III = IMax * JMax * KMax; - I = TECDAT112(&III, X1, &DIsDouble); - I = TECDAT112(&III, Y1, &DIsDouble); - I = TECDAT112(&III, P1, &DIsDouble); - - I = TECZNE112((char*)"Ordered Zone2", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &TotalNumFaceNodes, - &TotalNumBndryFaces, - &TotalNumBndryConnections, - NULL, - NULL, - NULL, - &ShrConn); - - I = TECDAT112(&III, X2, &DIsDouble); - I = TECDAT112(&III, Y2, &DIsDouble); - I = TECDAT112(&III, P2, &DIsDouble); - - I = TECEND112(); - return 0; -} -/* DOCEND */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.plt deleted file mode 100644 index 81f210b6c2..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.vcproj deleted file mode 100644 index 94c67c6c07..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/ij_ordered/ij_ordered.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/Makefile deleted file mode 100644 index d55d2ee044..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=multiplefiles -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/file1.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/file1.plt deleted file mode 100644 index b0c368e03f..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/file1.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/file2.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/file2.plt deleted file mode 100644 index 8a36da392b..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/file2.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.cpp deleted file mode 100644 index b79085ff56..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.cpp +++ /dev/null @@ -1,214 +0,0 @@ -/* This example illustrates working with TecFil to create multiple - * plt files simultaneously. - */ -#if defined _MSC_VER -#pragma warning (disable: 4996) /* Windows strcpy warning off */ -#endif -/* DOCSTART:mulitplefiles.txt */ -#include "TECIO.h" -#include "MASTER.h" /* for defintion of NULL */ -#include - -int main() -{ - /* - * Open the file and write the tecplot datafile - * header information - */ - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - INTEGER4 I = 0; /* Used to check the return value */ - - I = TECINI112((char*)"SIMPLE DATASET", /* Name of the entire dataset.*/ - - (char*)"X1 Y1 P1", /* Defines the variables for the data - * file. Each zone must contain each of - * the variables listed here. The order - * of the variables in the list is used - * to define the variable number (e.g. - * X1 is Var 1). - */ - (char*)"file1.plt", - (char*)".", /* Scratch Directory */ - &FileType, - &Debug, - &VIsDouble); - - /* Set the parameters for TecZne */ - INTEGER4 ZoneType = 0; /* sets the zone type to - * ordered - */ - INTEGER4 IMax = 2; /* Create an IJ-ordered zone, - * by using IMax and JMax - * values that are greater - * than one, and setting KMax - * to one. - */ - INTEGER4 JMax = 2; - INTEGER4 KMax = 1; - - double SolTime = 0; - INTEGER4 StrandID = 0; /* StaticZone */ - INTEGER4 ParentZn = 0; /* used for surface streams */ - - INTEGER4 ICellMax = 0; /* not used */ - INTEGER4 JCellMax = 0; /* not used */ - INTEGER4 KCellMax = 0; /* not used */ - - INTEGER4 IsBlock = 1; /* Block */ - - INTEGER4 NFConns = 0; /* this example does not use - * face neighbors */ - INTEGER4 FNMode = 0; - INTEGER4 TotalNumFaceNodes = 1; - INTEGER4 TotalNumBndryFaces = 1; - INTEGER4 TotalNumBndryConn = 1; - INTEGER4 ShrConn = 0; - - - /* Create an Ordered Zone */ - I = TECZNE112((char*)"Ordered Zone", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &TotalNumFaceNodes, - &TotalNumBndryFaces, - &TotalNumBndryConn, - NULL, - NULL, - NULL, - &ShrConn); - - /* Set the variable values for the ordered zone. */ - float X1[4]; - float Y1[4]; - float P1[4]; - - X1[0] = 0.125; - Y1[0] = 0.5; - P1[0] = 7.5; - - X1[1] = 0.625; - Y1[1] = 0.5; - P1[1] = 10.0; - - X1[2] = 0.125; - Y1[2] = 0.875; - P1[2] = 5.0; - - X1[3] = 0.625; - Y1[3] = 0.875; - P1[3] = 7.5; - - INTEGER4 DIsDouble = 0; /* set DIsDouble to 0, for float - * values. - */ - - INTEGER4 III = IMax * JMax * KMax; - I = TECDAT112(&III, X1, &DIsDouble); - I = TECDAT112(&III, Y1, &DIsDouble); - I = TECDAT112(&III, P1, &DIsDouble); - - /* Open a new data file. note: the first file is still open - * because TecEnd was not called. - */ - I = TECINI112((char*)"Auxiliary Data", - (char*)"X1 Y1 P1", - (char*)"file2.plt", - (char*)".", - &FileType, - &Debug, - &VIsDouble); - - /* Switch the active file to the newly created data file - * (file2.plt) which is the second file opened with TECINI112 - * so we use 2. - */ - INTEGER4 WhichFile = 2; - I = TECFIL112(&WhichFile); - - /* Create a second zone, using many of the values from the first - * zone, and write it to the second data file. - */ - - I = TECZNE112((char*)"Ordered Zone2", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &TotalNumFaceNodes, - &TotalNumBndryFaces, - &TotalNumBndryConn, - NULL, - NULL, - NULL, - &ShrConn); - /* set the variable values for the second zone */ - float X2[4]; - float Y2[4]; - float P2[4]; - - X2[0] = 0.375; - Y2[0] = 0.125; - P2[0] = 5; - - X2[1] = 0.875; - Y2[1] = 0.125; - P2[1] = 7.5; - - X2[2] = 0.375; - Y2[2] = 0.5; - P2[2] = 10; - - Y2[3] = 0.5; - X2[3] = 0.875; - P2[3] = 7.5; - - III = IMax * JMax * KMax; - I = TECDAT112(&III, X2, &DIsDouble); - I = TECDAT112(&III, Y2, &DIsDouble); - I = TECDAT112(&III, P2, &DIsDouble); - - /* Switch to the first file. */ - WhichFile = 1; - I = TECFIL112(&WhichFile); - - /* Create an auxiliary data value and write it to the file */ - char DeformationValue[128]; - strcpy(DeformationValue, "0.98"); - - I = TECAUXSTR112((char*)"DeformationValue", - DeformationValue); - /* Close the first file */ - I = TECEND112(); - - /* The remaining file will become the active file. As such, - * TecFil does not need to be called again to close the second - * file. - */ - I = TECEND112(); - - return 0; -} - -/* DOCEND */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.vcproj deleted file mode 100644 index 84651a69d0..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplefiles/multiplefiles.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/HexagonsAndOctagon.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/HexagonsAndOctagon.plt deleted file mode 100644 index 3b4f3042c6..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/HexagonsAndOctagon.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/Makefile deleted file mode 100644 index d11ec5afd6..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=multiplepolygons -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/multiplepolygons.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/multiplepolygons.cpp deleted file mode 100644 index 25632634f9..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/multiplepolygons.cpp +++ /dev/null @@ -1,569 +0,0 @@ -/* This example illustrates using TecPoly to create two polygonal - * zones. The first zone contains six hexagons, and the second - * zone contains a hexagon and an octagon. Refer to the Data - * Format Guide for a picture of the configuration, including node - * and face numbers. - */ - -#include "TECIO.h" -#include "MASTER.h" /* for defintion of NULL */ - -int main() -{ - /* DOCSTART:hexagons_tecini.txt*/ - INTEGER4 I; /* use to check return values */ - - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - - I = TECINI112((char*)"Example: Multiple polygonal zones", - (char*)"X Y P", /* Defines the variables for the data file. - * Each zone must contain each of the vars - * listed here. The order of the variables - * in the list is used to define the - * variable number (e.g. X is Variable 1). - * When referring to variables in other - * TecIO functions, you will refer to the - * variable by its number. - */ - (char*)"HexagonsAndOctagon.plt", - (char*)".", /* scratch directory */ - &FileType, - &Debug, - &VIsDouble); - /* DOCEND */ - - /* DOCSTART:hexagons_zone1_teczne.txt*/ - /* TECZNE Parameters */ - INTEGER4 ZoneType = 6; /* FE Polygon */ - INTEGER4 NumPts_Z1 = 13; /* the number of unique - * nodes in the zone. - */ - INTEGER4 NumElems_Z1 = 3; - INTEGER4 NumFaces_Z1 = 15; /* the number of unique - * faces in the zone. - */ - INTEGER4 ICellMax = 0; /* not used */ - INTEGER4 JCellMax = 0; /* not used */ - INTEGER4 KCellMax = 0; /* not used */ - double SolutionTime = 0.0; - INTEGER4 StrandID = 0; - INTEGER4 ParentZone = 0; - INTEGER4 IsBlock = 1; - INTEGER4 NumFaceConnections = 0; - INTEGER4 FaceNeighborMode = 1; - INTEGER4 SharConn = 0; - - INTEGER4 ValueLocation[3] = { 1, 1, 0 }; - - /* For a polygonal zone, the total number of face nodes is - * twice the total number of faces. This is because each face - * is composed of exactly two nodes. - */ - INTEGER4 TotalNumFaceNodes_Z1 = 2 * NumFaces_Z1; - - /* A boundary face is a face that is neighbored by an element - * or elements in another zone or zone(s). In Zone 1, Face 9, - * Face 10 and Face 12 have a neighbor in Zone 2. Therefore, - * the total number of boundary faces is “3”. - */ - INTEGER4 TotalNumBndryFaces_Z1 = 3; - - /* Each boundary face has one or more boundary connections. A - * boundary connection is defined as another element in another - * zone. Face 9 has a boundary connection with Element 1 in - * Zone 2. In this example, each boundary face is connected to - * one other element, so the total number of boundary - * connections is equivalent to the total number of boundary - * faces (3). - */ - INTEGER4 TotalNumBndryConns_Z1 = 3; - - I = TECZNE112((char*)"Zone 1: 3 Hexagons", /* Specifies the name of - * the entire dataset. When - * the file is loaded into - * Tecplot, the value is - * available via the Data - * Set Info dialog. - */ - &ZoneType, - &NumPts_Z1, - &NumElems_Z1, - &NumFaces_Z1, - &ICellMax, - &JCellMax, - &KCellMax, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - &TotalNumFaceNodes_Z1, - &TotalNumBndryFaces_Z1, - &TotalNumBndryConns_Z1, - NULL, - ValueLocation, - NULL, - &SharConn); - /* DOCEND */ - - /* DOCSTART:hexagons_zone1_tecdat.txt*/ - - /* TECDAT Parameters */ - double *X_Z1 = new double[NumPts_Z1]; - double *Y_Z1 = new double[NumPts_Z1]; - - X_Z1[0] = 1; - Y_Z1[0] = 6; - - X_Z1[1] = 2; - Y_Z1[1] = 6; - - X_Z1[2] = 3; - Y_Z1[2] = 5; - - X_Z1[3] = 2; - Y_Z1[3] = 4; - - X_Z1[4] = 1; - Y_Z1[4] = 4; - - X_Z1[5] = 0; - Y_Z1[5] = 5; - - X_Z1[6] = 4; - Y_Z1[6] = 5; - - X_Z1[7] = 5; - Y_Z1[7] = 4; - - X_Z1[8] = 4; - Y_Z1[8] = 3; - - X_Z1[9] = 3; - Y_Z1[9] = 3; - - X_Z1[10] = 2; - Y_Z1[10] = 2; - - X_Z1[11] = 1; - Y_Z1[11] = 2; - - X_Z1[12] = 0; - Y_Z1[12] = 3; - - - double *P_Z1 = new double[NumElems_Z1]; - P_Z1[0] = 2; - P_Z1[1] = 4; - P_Z1[2] = 5; - - - INTEGER4 IsDouble = 1; - I = TECDAT112(&NumPts_Z1, X_Z1, &IsDouble); - I = TECDAT112(&NumPts_Z1, Y_Z1, &IsDouble); - I = TECDAT112(&NumElems_Z1, P_Z1, &IsDouble); - delete X_Z1; - delete Y_Z1; - delete P_Z1; - /* DOCEND */ - - /* DOCSTART:hexagons_zone1_facenodes.txt*/ - /* TecPoly Parameters */ - - /* Create a FaceNodes array, dimensioned by the total number - * of face nodes in the zone. - */ - INTEGER4 *FaceNodes_Z1 = new INTEGER4[TotalNumFaceNodes_Z1]; - - /* Face Nodes for Element 1 */ - FaceNodes_Z1[0] = 1; - FaceNodes_Z1[1] = 2; - - FaceNodes_Z1[2] = 2; - FaceNodes_Z1[3] = 3; - - FaceNodes_Z1[4] = 3; - FaceNodes_Z1[5] = 4; - - FaceNodes_Z1[6] = 4; - FaceNodes_Z1[7] = 5; - - FaceNodes_Z1[8] = 5; - FaceNodes_Z1[9] = 6; - - FaceNodes_Z1[10] = 6; - FaceNodes_Z1[11] = 1; - - /* Face Nodes for Element 2 */ - FaceNodes_Z1[12] = 3; - FaceNodes_Z1[13] = 7; - - FaceNodes_Z1[14] = 7; - FaceNodes_Z1[15] = 8; - - FaceNodes_Z1[16] = 8; - FaceNodes_Z1[17] = 9; - - FaceNodes_Z1[18] = 9; - FaceNodes_Z1[19] = 10; - - FaceNodes_Z1[20] = 10; - FaceNodes_Z1[21] = 4; - - /* Face Nodes for Element 3 */ - FaceNodes_Z1[22] = 10; - FaceNodes_Z1[23] = 11; - - FaceNodes_Z1[24] = 11; - FaceNodes_Z1[25] = 12; - - FaceNodes_Z1[26] = 12; - FaceNodes_Z1[27] = 13; - - FaceNodes_Z1[28] = 13; - FaceNodes_Z1[29] = 5; - - /* DOCEND */ - - /* Specify the right and left neighboring elements. - * The neighboring elements can be determined using the - * right-hand rule. For each face, place your right-hand along - * the face with your fingers pointing the direction of - * incrementing node numbers (i.e. from Node 1 to Node 2). The - * right side of your hand will indicate the right element, - * and the left side of your hand will indicate the left - * element. A value of zero indicates that there is no - * neighboring element on that side. A negative value - * indicates that the neighboring element is in another zone. - * The number is a pointer into the FaceBndryConnectionElems - * and FaceBndryConnectionZones arrays. - */ - - /* DOCSTART:hexagons_zone1_neighbors.txt*/ - INTEGER4 *FaceLeftElems_Z1 = new INTEGER4[NumFaces_Z1]; - INTEGER4 *FaceRightElems_Z1 = new INTEGER4[NumFaces_Z1]; - - /* Left Face Elems for Element 1 */ - FaceLeftElems_Z1[0] = 0; - FaceLeftElems_Z1[1] = 0; - FaceLeftElems_Z1[2] = 2; - FaceLeftElems_Z1[3] = 3; - FaceLeftElems_Z1[4] = 0; - - /* Left Face Elems for Element 2 */ - FaceLeftElems_Z1[5] = 0; - FaceLeftElems_Z1[6] = 0; - FaceLeftElems_Z1[7] = 0; - FaceLeftElems_Z1[8] = -1; - FaceLeftElems_Z1[9] = -2; - FaceLeftElems_Z1[10] = 2; - - /* Left Face Elems for Element 3 */ - FaceLeftElems_Z1[11] = -3; - FaceLeftElems_Z1[12] = 0; - FaceLeftElems_Z1[13] = 0; - FaceLeftElems_Z1[14] = 0; - - /* Set Right Face Elems. Because of the way we numbered the - * nodes and faces, the right element for every face is the - * element itself. - */ - for (INTEGER4 ii = 0; ii < 6; ii++) - FaceRightElems_Z1[ii] = 1; - - for (INTEGER4 ii = 6; ii < 10; ii++) - FaceRightElems_Z1[ii] = 2; - - for (INTEGER4 ii = 10; ii <= 14; ii++) - FaceRightElems_Z1[ii] = 3; - /* DOCEND */ - - /* DOCSTART:hexagons_zone1_tecpoly.txt */ - - /* The FaceBndryConnectionCounts array is used to define the - * number of boundary connections for each face that has a - * boundary connection. For example, if a zone has three - * boundary connections in total (NumConnectedBoundaryFaces), - * two of those boundary connections are in one face, and the - * remaining boundary connection is in a second face, the - * FaceBndryConnectionCounts array would be: [2 1]. - * - * In this example, the total number of connected boundary - * faces (specified via TECZNE) is equal to three. Each - * boundary face is connected to only one other element, - * so the FaceBoundaryConnectionCounts array is (1, 1, 1). - */ - INTEGER4 FaceBndryConnectionCounts_Z1[3] = {1, 1, 1}; - - /* The value(s) in the FaceBndryConnectionElems and - * FaceBndryConnectionZones arrays specifies the element number - * and zone number, respectively, that a given boundary - * connection is connected to. In this case, the first - * boundary connection face is connected to Element 1 in Zone 2 - * and the remaining connection is to Element 2 in Zone 2. - */ - INTEGER4 FaceBndryConnectionElems_Z1[3] = {1, 2, 2}; - INTEGER4 FaceBndryConnectionZones_Z1[3] = {2, 2, 2}; - - - I = TECPOLY112(NULL, /* Not used for polygon zones */ - FaceNodes_Z1, - FaceLeftElems_Z1, - FaceRightElems_Z1, - FaceBndryConnectionCounts_Z1, - FaceBndryConnectionElems_Z1, - FaceBndryConnectionZones_Z1); - - delete FaceNodes_Z1; - delete FaceLeftElems_Z1; - delete FaceRightElems_Z1; - - /* DOCEND */ - - /* Define Zone 2. Zone 2 contains an octagon and a hexagon. */ - /* TECZNE Parameters */ - /* DOCSTART:hexagons_zone2_teczne.txt*/ - INTEGER4 NumPts_Z2 = 12; /* number of unique - * nodes in the zone - */ - INTEGER4 NumElems_Z2 = 2; - INTEGER4 NumFaces_Z2 = 13; /* number of unique - * faces in the zone - */ - INTEGER4 NumFaceConnections_Z2 = 0; - /* In polygonal zones, each face has exactly two nodes */ - INTEGER4 TotalNumFaceNodes_Z2 = NumFaces_Z2 * 2; - - /* A boundary face is a face that is neighbored by an element or - * elements from another zone or zone(s). In Zone 2, Face 6, - * Face 7 and Face 13 have a neighbor in Zone 1. Therefore, the - * total number of boundary faces is “3”. - */ - INTEGER4 TotalNumBndryFaces_Z2 = 3; - - /* Each boundary face has one or more boundary connections. In - * this example, each boundary face is connected to one other - * element (i.e. the number of boundary faces and the number of - * boundary connections is one-to-one). - */ - INTEGER4 TotalNumBndryConns_Z2 = 3; - - I = TECZNE112((char*)"Zone 2: 1 Hexagon and 1 Octagon", - &ZoneType, - &NumPts_Z2, - &NumElems_Z2, - &NumFaces_Z2, - &ICellMax, - &JCellMax, - &KCellMax, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections_Z2, - &FaceNeighborMode, - &TotalNumFaceNodes_Z2, - &TotalNumBndryFaces_Z2, - &TotalNumBndryConns_Z2, - NULL, - ValueLocation, - NULL, - &SharConn); - /* DOCEND */ - - /* TECDAT Parameters */ - /* DOCSTART:hexagons_zone2_tecdat.txt*/ - double *X_Z2 = new double[NumPts_Z2]; - double *Y_Z2 = new double[NumPts_Z2]; - - X_Z2[0] = 5; - Y_Z2[0] = 4; - - X_Z2[1] = 6; - Y_Z2[1] = 4; - - X_Z2[2] = 7; - Y_Z2[2] = 3; - - X_Z2[3] = 6; - Y_Z2[3] = 2; - - X_Z2[4] = 5; - Y_Z2[4] = 2; - - X_Z2[5] = 4; - Y_Z2[5] = 3; - - - X_Z2[6] = 3; - Y_Z2[6] = 3; - - X_Z2[7] = 5; - Y_Z2[7] = 1; - - X_Z2[8] = 4; - Y_Z2[8] = 0; - - X_Z2[9] = 3; - Y_Z2[9] = 0; - - X_Z2[10] = 2; - Y_Z2[10] = 1; - - X_Z2[11] = 2; - Y_Z2[11] = 2; - - /* In the call to TecZne, P was set to a cell centered variable. - * As such, only two values need to be defined. - */ - double *P_Z2 = new double[NumPts_Z2]; - - P_Z2[0] = 8; - P_Z2[1] = 6; - - I = TECDAT112(&NumPts_Z2, X_Z2, &IsDouble); - I = TECDAT112(&NumPts_Z2, Y_Z2, &IsDouble); - I = TECDAT112(&NumElems_Z2, P_Z2, &IsDouble); - - delete X_Z2; - delete Y_Z2; - delete P_Z2; - /* DOCEND */ - - /* TecPoly Parameters */ - /* DOCSTART:hexagons_zone2_facemap.txt*/ - INTEGER4 *FaceNodes_Z2; - FaceNodes_Z2 = new INTEGER4[TotalNumFaceNodes_Z2]; - - /* Face Nodes for Element 1 */ - FaceNodes_Z2[0] = 1; - FaceNodes_Z2[1] = 2; - - FaceNodes_Z2[2] = 2; - FaceNodes_Z2[3] = 3; - - FaceNodes_Z2[4] = 3; - FaceNodes_Z2[5] = 4; - - FaceNodes_Z2[6] = 4; - FaceNodes_Z2[7] = 5; - - FaceNodes_Z2[8] = 5; - FaceNodes_Z2[9] = 6; - - FaceNodes_Z2[10] = 6; - FaceNodes_Z2[11] = 1; - - - /* Face Nodes for Element 2 */ - FaceNodes_Z2[12] = 7; - FaceNodes_Z2[13] = 6; - - FaceNodes_Z2[14] = 5; - FaceNodes_Z2[15] = 8; - - FaceNodes_Z2[16] = 8; - FaceNodes_Z2[17] = 9; - - FaceNodes_Z2[18] = 9; - FaceNodes_Z2[19] = 10; - - FaceNodes_Z2[20] = 10; - FaceNodes_Z2[21] = 11; - - FaceNodes_Z2[22] = 11; - FaceNodes_Z2[23] = 12; - - FaceNodes_Z2[24] = 12; - FaceNodes_Z2[25] = 7; - /* DOCEND */ - - - /* DOCSTART:hexagons_zone2_tecpoly.txt*/ - /* Specify the right and left neighboring elements. - * The neighboring elements can be determined using the - * right-hand rule. For each face, place your right-hand along - * the face with your fingers pointing the direction of - * incrementing node numbers (i.e. from Node 1 to Node 2). The - * right side of your hand will indicate the right element, - * and the left side of your hand will indicate the left - * element. A value of zero indicates that there is no - * neighboring element on that side. A negative value - * indicates that the neighboring element is in another zone. - * The number is a pointer into the FaceBndryConnectionElems - * and FaceBndryConnectionZones arrays. - */ - - INTEGER4 *FaceLeftElems_Z2 = new INTEGER4[NumFaces_Z2]; - INTEGER4 *FaceRightElems_Z2 = new INTEGER4[NumFaces_Z2]; - - /* Left Face Elems for Element 1 */ - FaceLeftElems_Z2[0] = 0; - FaceLeftElems_Z2[1] = 0; - FaceLeftElems_Z2[2] = 0; - FaceLeftElems_Z2[3] = 0; - FaceLeftElems_Z2[4] = 2; - FaceLeftElems_Z2[5] = -1; - - /* Left Face Elems for Element 2 */ - FaceLeftElems_Z2[6] = -2; - FaceLeftElems_Z2[7] = 0; - FaceLeftElems_Z2[8] = 0; - FaceLeftElems_Z2[9] = 0; - FaceLeftElems_Z2[10] = 0; - FaceLeftElems_Z2[11] = 0; - FaceLeftElems_Z2[12] = -3; - - /* Set Right Face Elems. Because of the way we numbered the - * nodes and faces, the right element for every face is the - * element itself. */ - for (INTEGER4 ii = 0; ii < 6; ii++) - FaceRightElems_Z2[ii] = 1; - - for (INTEGER4 ii = 6; ii < 13; ii++) - FaceRightElems_Z2[ii] = 2; - /* DOCEND */ - - /* DOCSTART:hexagons_zone2_tecpoly.txt*/ - /* The FaceBndryConnectionCounts array is used to define the - * number of boundary connections for each face that has a - * boundary connection. In this example, the total number of - * connected boundary faces (specified via TECZNE) is equal to - * three. Each boundary face is connected to only one other - * element, so the FaceBoundaryConnectionCounts array is - * (1, 1, 1). - */ - INTEGER4 FaceBndryConnectionCounts_Z2[3] = {1, 1, 1}; - - /* The value(s) in the FaceBndryConnectionElems and - * FaceBndryConnectionZones arrays specifies that element - * number and zone number, respectively, that a given boundary - * connection is connected to. In this case, the first boundary - * connection face is connected to Element 2 in Zone 1 and the - * remaining connections are Element 3 in Zone 1. - */ - INTEGER4 FaceBndryConnectionElems_Z2[3] = {2, 3, 3}; - INTEGER4 FaceBndryConnectionZones_Z2[3] = {1, 1, 1}; - - I = TECPOLY112(NULL, - FaceNodes_Z2, - FaceLeftElems_Z2, - FaceRightElems_Z2, - FaceBndryConnectionCounts_Z2, - FaceBndryConnectionElems_Z2, - FaceBndryConnectionZones_Z2); - - delete FaceNodes_Z2; - delete FaceLeftElems_Z2; - delete FaceRightElems_Z2; - /* DOCEND */ - - /* DOCSTART:hexagons_tecend.txt*/ - I = TECEND112(); - /* DOCEND */ - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/multiplepolygons.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/multiplepolygons.vcproj deleted file mode 100644 index da0df3a5c3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/multiplepolygons/multiplepolygons.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/Makefile deleted file mode 100644 index b1a0615165..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=octagon -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/Octagon.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/Octagon.plt deleted file mode 100644 index e09f4f79b8..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/Octagon.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/octagon.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/octagon.cpp deleted file mode 100644 index c9d64aece1..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/octagon.cpp +++ /dev/null @@ -1,248 +0,0 @@ -/* This example illustrates how to create a zone with a single - * polygonal cell. Please refer to the Data Format Guide for - * additional information, including figures that display node - * numbering. - */ - -#include "TECIO.h" -#include "MASTER.h" /* for defintion of NULL */ - -int main() -{ - /* DOCSTART:octagon_tecini.txt*/ - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - INTEGER4 I; /* used to check return codes */ - - /* - * Open the file and write the Tecplot datafile - * header information - */ - - I = TECINI112((char*)"Octagon", - (char*)"X Y P", /* Defines the variables for the data - * file. Each zone must contain each - * of the vars listed here. The order - * of the variables in the list is - * used to define the variable number - * (e.g. X is Variable 1). When - * referring to variables in other - * TecIO functions, you will refer to - * thevariable by its number. - */ - (char*)"Octagon.plt", - (char*)".", /* scratch directory */ - &FileType, - &Debug, - &VIsDouble); - /* DOCEND */ - - /* Declare TECZNE variables */ - /* DOCSTART:octagon_teczne.txt*/ - /* In this example, we will create a single octagonal cell in - * Tecplot 360's polyhedral file format. - */ - INTEGER4 ZoneType = 6; /* FEPolygon */ - INTEGER4 NumNodes = 8; /* Number of nodes in the octagon.*/ - INTEGER4 NumElems = 1; /* Number of octagonal elements. */ - INTEGER4 NumFaces = 8; /* Number of faces in the octagon.*/ - INTEGER4 ICellMax = 0; /* Not Used */ - INTEGER4 JCellMax = 0; /* Not Used */ - INTEGER4 KCellMax = 0; /* Not Used */ - double SolTime = 360.0; - INTEGER4 StrandID = 0; /* Static Zone */ - INTEGER4 ParentZn = 0; /* No Parent Zone */ - INTEGER4 IsBlock = 1; /* Block */ - INTEGER4 NFConns = 0; - INTEGER4 FNMode = 0; - - - /* For polygonal zones, the total number of face nodes is equal - * to twice the number of nodes. This is because, each face - * has exactly two nodes. - */ - INTEGER4 NumFaceNodes = 2 * NumNodes; - /* Boundary Faces and Boundary Connections are not used in this - * example. - */ - INTEGER4 NumBFaces = 0; - INTEGER4 NumBConnections = 0; - - INTEGER4 ShrConn = 0; - - I = TECZNE112((char*)"Octagonal Zone", - &ZoneType, - &NumNodes, - &NumElems, - &NumFaces, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - &NumFaceNodes, - &NumBFaces, - &NumBConnections, - NULL, - NULL, /* When Value Location is not specified, - * Tecplot will treat all variables as - * nodal variables. - */ - NULL, - &ShrConn); - /* DOCEND */ - - /* Establish numbering. - * For this example, we will a single octagonal cell. - * Before defining your variables, you must establish a - * consistent node numbering scheme for your data. Once the - * node numbers are defined, supply the variable values in the - * node numbering order. In this example, node 1 is defined at - * X = 0 and Y = 0. As such, the first value supplied for X - * (i.e. X[0]) is 0. Similarly, the first value supplied for - * Y is 0. - * - * It is important that you refer to node numbers consistently. - * The node numbers will be used later to define the - * connectivity for each element. - */ - - /* TECDAT Variables */ - /* Set up the variable values. The variable values will be - * written to the file using TECDAT. Because we are specifying - * nodal variables (as specified via the ValueLocation - * parameter in TECZNE, each variable is dimensioned by the - * number of points (NumPts) in the Zone. You have the option - * to specify some variables with nodal values and some with - * cell-centered values. Refer to the Binary Function Reference - * for details. - */ - /* DOCSTART:octagon_tecdat.txt*/ - float *X = new float[NumNodes]; - float *Y = new float[NumNodes]; - float *P = new float[NumNodes]; - - //Define the grid values. - X[0] = 0.25; - Y[0] = 0.0; - - X[1] = 0.75; - Y[1] = 0.0; - - X[2] = 1.0; - Y[2] = 0.25; - - X[3] = 1.0; - Y[3] = 0.75; - - X[4] = 0.75; - Y[4] = 1.0; - - X[5] = 0.25; - Y[5] = 1.0; - - X[6] = 0.0; - Y[6] = 0.75; - - X[7] = 0.0; - Y[7] = 0.25; - - for (INTEGER4 ii = 0; ii < 8; ii++) - P[ii] = .5; - - /* Write out the field data using TECDAT */ - INTEGER4 DIsDouble = 0; /* set IsDouble to 0 to use float - * variables. */ - - I = TECDAT112(&NumNodes, X, &DIsDouble); - I = TECDAT112(&NumNodes, Y, &DIsDouble); - I = TECDAT112(&NumNodes, P, &DIsDouble); - - delete X; - delete Y; - delete P; - /* DOCEND */ - - /* Define the Face Nodes. - - * The FaceNodes array is used to indicate which nodes define - * which face. As mentioned earlier, the number of the nodes is - * implicitly defined by the order in which the nodal data is - * provided. The first value of each nodal variable describes - * node 1, the second value describes node 2, and so on. - * - * The face numbering is implicitly defined. Because there are - * two nodes in each face, the first two nodes provided define - * face 1, the next two define face 2 and so on. If there was - * a variable number of nodes used to define the faces, the - * array would be more complicated. - */ - /* DOCSTART:octagon_facenodes.txt*/ - INTEGER4 *FaceNodes = new INTEGER4[NumFaceNodes]; - - /* - * Loop over number of sides, and set each side to two - * consecutive nodes. - */ - for (INTEGER4 ii = 0; ii < 8; ii++) - { - FaceNodes[2*ii] = ii + 1; - FaceNodes[2*ii+1] = ii + 2; - } - FaceNodes[15] = 1; - - /* DOCEND */ - /* Define the right and left elements of each face. - - * The last step for writing out the polyhedral data is to - * define the right and left neighboring elements for each - * face. The neighboring elements can be determined using the - * right-hand rule. For each face, place your right-hand along - * the face which your fingers pointing the direction of - * incrementing node numbers (i.e. from node 1 to node 2). - * Your right thumb will point towards the right element; the - * element on the other side of your hand is the left element. - * - * The number zero is used to indicate that there isn't an - * element on that side of the face. - * - * Because of the way we numbered the nodes and faces, the - * right element for every face is the element itself - * (element 1) and the left element is "no-neighboring element" - * (element 0). - */ - /* DOCSTART:octagon_rightleft.txt*/ - INTEGER4 *FaceLeftElems = new INTEGER4[NumFaces]; - INTEGER4 *FaceRightElems = new INTEGER4[NumFaces]; - - for (INTEGER4 ii = 0; ii < NumFaces; ii++) - { - FaceLeftElems[ii] = 0; - FaceRightElems[ii] = 1; - } - /* DOCEND */ - /* Write the polyhedral data to the file. */ - /* DOCSTART:octagon_tecpoly.txt*/ - I = TECPOLY112(NULL, - FaceNodes, - FaceLeftElems, - FaceRightElems, - NULL, - NULL, - NULL); - - delete FaceNodes; - delete FaceLeftElems; - delete FaceRightElems; - /* DOCEND */ - /* DOCSTART:octagon_tecend.txt*/ - I = TECEND112(); - /* DOCEND */ - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/octagon.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/octagon.vcproj deleted file mode 100644 index 9d33ad0bde..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/octagon/octagon.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/Makefile deleted file mode 100644 index 38cb009fca..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=pyramid -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.cpp deleted file mode 100644 index 864bb754ba..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/* This example creates a zone with a single polyhedral cell. */ - -/* DOCSTART:pyramid.txt*/ -#include "TECIO.h" -#include "MASTER.h" /* for defintion of NULL */ - -int main() -{ - /* Call TECINI112 */ - INTEGER4 FileType = 0; /* 0 for full file */ - INTEGER4 Debug = 0; - INTEGER4 VIsDouble = 1; - INTEGER4 I = 0; /* use to check return codes */ - - I = TECINI112((char*)"Pyramid", /* Data Set Title */ - (char*)"X Y Z", /* Variable List */ - (char*)"pyramid.plt", /* File Name */ - (char*)".", /* Scratch Directory */ - &(FileType), - &(Debug), - &(VIsDouble)); - - - /* Call TECZNE112 */ - INTEGER4 ZoneType = 7; /* 7 for FEPolyhedron */ - INTEGER4 NumNodes = 5; /* number of unique nodes */ - INTEGER4 NumElems = 1; /* number of elements */ - INTEGER4 NumFaces = 5; /* number of unique faces */ - - INTEGER4 ICellMax = 0; /* Not Used, set to zero */ - INTEGER4 JCellMax = 0; /* Not Used, set to zero */ - INTEGER4 KCellMax = 0; /* Not Used, set to zero */ - - double SolTime = 12.65; /* solution time */ - INTEGER4 StrandID = 0; /* static zone */ - INTEGER4 ParentZone = 0; /* no parent zone */ - - INTEGER4 IsBlock = 1; /* block format */ - - INTEGER4 NFConns = 0; /* not used for FEPolyhedron - * zones - */ - INTEGER4 FNMode = 0; /* not used for FEPolyhedron - * zones - */ - - INTEGER4 *PassiveVarArray = NULL; - INTEGER4 *ValueLocArray = NULL; - INTEGER4 *VarShareArray = NULL; - - INTEGER4 ShrConn = 0; - - /* The number of face nodes in the zone. This example creates - * a zone with a single pyramidal cell. This cell has four - * triangular faces and one rectangular face, yielding a total - * of 16 face nodes. - */ - INTEGER4 NumFaceNodes = 16; - INTEGER4 NumBConns = 0; /* No Boundary Connections */ - INTEGER4 NumBItems = 0; /* No Boundary Items */ - - I = TECZNE112((char*)"Polyhedral Zone (Octahedron)", - &ZoneType, - &NumNodes, - &NumElems, - &NumFaces, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZone, - &IsBlock, - &NFConns, - &FNMode, - &NumFaceNodes, - &NumBConns, - &NumBItems, - PassiveVarArray, - ValueLocArray, - VarShareArray, - &ShrConn); - - /* Initialize arrays of nodal data */ - double *X = new double[NumNodes]; - double *Y = new double[NumNodes]; - double *Z = new double[NumNodes]; - - X[0] = 0; - Y[0] = 0; - Z[0] = 0; - - X[1] = 1; - Y[1] = 1; - Z[1] = 2; - - X[2] = 2; - Y[2] = 0; - Z[2] = 0; - - X[3] = 2; - Y[3] = 2; - Z[3] = 0; - - X[4] = 0; - Y[4] = 2; - Z[4] = 0; - - /* Write the data (using TECDAT112) */ - INTEGER4 DIsDouble = 1; /* One for double precision */ - I = TECDAT112(&NumNodes, X, &DIsDouble); - I = TECDAT112(&NumNodes, Y, &DIsDouble); - I = TECDAT112(&NumNodes, Z, &DIsDouble); - - delete X; - delete Y; - delete Z; - - /* Define the Face Nodes. - - * The FaceNodes array is used to indicate which nodes define - * which face. As mentioned earlier, the number of the nodes is - * implicitly defined by the order in which the nodal data is - * provided. The first value of each nodal variable describes - * node 1, the second value describes node 2, and so on. - * - * The face numbering is implicitly defined. Because there are - * two nodes in each face, the first two nodes provided define - * face 1, the next two define face 2 and so on. If there was - * a variable number of nodes used to define the faces, the - * array would be more complicated. - */ - - INTEGER4 *FaceNodeCounts = new INTEGER4[NumFaces]; - /* The first four faces are triangular, i.e. have three nodes. - * The fifth face is rectangular, i.e. has four nodes. */ - FaceNodeCounts[0] = 3; - FaceNodeCounts[1] = 3; - FaceNodeCounts[2] = 3; - FaceNodeCounts[3] = 3; - FaceNodeCounts[4] = 4; - - INTEGER4 *FaceNodes = new INTEGER4[NumFaceNodes]; - /* Face Nodes for Face 1 */ - FaceNodes[0] = 1; - FaceNodes[1] = 2; - FaceNodes[2] = 3; - - /* Face Nodes for Face 2 */ - FaceNodes[3] = 3; - FaceNodes[4] = 2; - FaceNodes[5] = 4; - - /* Face Nodes for Face 3 */ - FaceNodes[6] = 5; - FaceNodes[7] = 2; - FaceNodes[8] = 4; - - /* Face Nodes for Face 4 */ - FaceNodes[9] = 1; - FaceNodes[10] = 2; - FaceNodes[11] = 5; - - /* Face Nodes for Face 5 */ - FaceNodes[12] = 1; - FaceNodes[13] = 5; - FaceNodes[14] = 4; - FaceNodes[15] = 3; - - /* Define the right and left elements of each face. - * - * The last step for writing out the polyhedral data is to - * define the right and left neighboring elements for each - * face. The neighboring elements can be determined using the - * right-hand rule. For each face, place your right-hand along - * the face which your fingers pointing the direction of - * incrementing node numbers (i.e. from node 1 to node 2). - * Your right thumb will point towards the right element; the - * element on the other side of your hand is the left element. - * - * The number zero is used to indicate that there isn't an - * element on that side of the face. - * - * Because of the way we numbered the nodes and faces, the - * right element for every face is the element itself - * (element 1) and the left element is "no-neighboring element" - * (element 0). - */ - - INTEGER4 *FaceLeftElems = new INTEGER4[NumFaces]; - FaceLeftElems[0] = 1; - FaceLeftElems[1] = 1; - FaceLeftElems[2] = 0; - FaceLeftElems[3] = 0; - FaceLeftElems[4] = 0; - - INTEGER4 *FaceRightElems = new INTEGER4[NumFaces]; - FaceRightElems[0] = 0; - FaceRightElems[1] = 0; - FaceRightElems[2] = 1; - FaceRightElems[3] = 1; - FaceRightElems[4] = 1; - - /* Write the face map (created above) using TECPOLY112. */ - I = TECPOLY112(FaceNodeCounts, /* The face node counts array */ - FaceNodes, /* The face nodes array */ - FaceLeftElems, /* The left elements array */ - FaceRightElems, /* The right elements array */ - NULL, /* No boundary connection counts */ - NULL, /* No boundary connection elements */ - NULL); /* No boundary connection zones */ - - delete FaceNodeCounts; - delete FaceNodes; - delete FaceLeftElems; - delete FaceRightElems; - - I = TECEND112(); - return 0; -} - -/* DOCEND */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.plt deleted file mode 100644 index d854474661..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.vcproj deleted file mode 100644 index e44e390db6..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/pyramid/pyramid.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/Makefile deleted file mode 100644 index 9e40ebe34b..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=simtest -FILES=$(EXECUTABLE).c - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.c b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.c deleted file mode 100644 index fe35a33234..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Simple example c program to write a - * binary datafile for tecplot. This example - * does the following: - * - * 1. Open a datafile called "t.plt" - * 2. Assign values for X,Y, and P - * 3. Write out a zone dimensioned 4x5 - * 4. Close the datafile. - */ - -#include "TECIO.h" - -#ifndef NULL -#define NULL 0 -#endif - -enum FileType { FULL = 0, GRID = 1, SOLUTION = 2 }; - -int main(void) -{ - float X[5][4], Y[5][4], P[5][4]; - double SolTime; - INTEGER4 Debug, I, J, III, DIsDouble, VIsDouble, IMax, JMax, KMax, ZoneType, StrandID, ParentZn, IsBlock; - INTEGER4 ICellMax, JCellMax, KCellMax, NFConns, FNMode, ShrConn, FileType; - - Debug = 1; - VIsDouble = 0; - DIsDouble = 0; - IMax = 4; - JMax = 5; - KMax = 1; - ZoneType = 0; /* Ordered */ - SolTime = 360.0; - StrandID = 0; /* StaticZone */ - ParentZn = 0; /* No Parent */ - IsBlock = 1; /* Block */ - ICellMax = 0; - JCellMax = 0; - KCellMax = 0; - NFConns = 0; - FNMode = 0; - ShrConn = 0; - FileType = FULL; - - /* - * Open the file and write the tecplot datafile - * header information - */ - I = TECINI112((char*)"SIMPLE DATASET", - (char*)"X Y P", - (char*)"t.plt", - (char*)".", - &FileType, - &Debug, - &VIsDouble); - - for (J = 0; J < 5; J++) - for (I = 0; I < 4; I++) - { - X[J][I] = (float)(I + 1); - Y[J][I] = (float)(J + 1); - P[J][I] = (float)((I + 1) * (J + 1)); - } - /* - * Write the zone header information. - */ - I = TECZNE112((char*)"Simple Zone", - &ZoneType, - &IMax, - &JMax, - &KMax, - &ICellMax, - &JCellMax, - &KCellMax, - &SolTime, - &StrandID, - &ParentZn, - &IsBlock, - &NFConns, - &FNMode, - 0, /* TotalNumFaceNodes */ - 0, /* NumConnectedBoundaryFaces */ - 0, /* TotalNumBoundaryConnections */ - NULL, /* PassiveVarList */ - NULL, /* ValueLocation = Nodal */ - NULL, /* SharVarFromZone */ - &ShrConn); - /* - * Write out the field data. - */ - III = IMax * JMax; - I = TECDAT112(&III, &X[0][0], &DIsDouble); - I = TECDAT112(&III, &Y[0][0], &DIsDouble); - I = TECDAT112(&III, &P[0][0], &DIsDouble); - - I = TECEND112(); - - return 0; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.f b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.f deleted file mode 100644 index d980915100..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.f +++ /dev/null @@ -1,98 +0,0 @@ -C -C Simple example fortran program to write a -C binary datafile for tecplot. This example -C does the following: -C -C 1. Open a datafile called "t.plt" -C 2. Assign values for X,Y, and P -C 3. Write out a zone dimensioned 4x5 -C 4. Close the datafile. -C -C - program test - - INCLUDE 'tecio.inc' - - character*1 NULLCHR - Integer*4 Debug,III,NPts,NElm - - Dimension X(4,5), Y(4,5), P(4,5) - Real*8 SolTime - Integer*4 VIsDouble, FileType - Integer*4 ZoneType,StrandID,ParentZn,IsBlock - Integer*4 ICellMax,JCellMax,KCellMax,NFConns,FNMode,ShrConn - POINTER (NullPtr,Null) - Integer*4 Null(*) - - NULLCHR = CHAR(0) - NullPtr = 0 - Debug = 1 - FileType = 0 - VIsDouble = 0 - IMax = 4 - JMax = 5 - KMax = 1 - ZoneType = 0 - SolTime = 360.0 - StrandID = 0 - ParentZn = 0 - IsBlock = 1 - ICellMax = 0 - JCellMax = 0 - KCellMax = 0 - NFConns = 0 - FNMode = 0 - ShrConn = 0 -C -C... Open the file and write the tecplot datafile -C... header information. -C - I = TecIni112('SIMPLE DATASET'//NULLCHR, - & 'X Y P'//NULLCHR, - & 't.plt'//NULLCHR, - & '.'//NULLCHR, - & FileType, - & Debug, - & VIsDouble) - - Do 10 I = 1,4 - Do 10 J = 1,5 - X(I,J) = I - Y(I,J) = J - P(I,J) = I*J - 10 Continue -C -C... Write the zone header information. -C - I = TecZne112('Simple Zone'//NULLCHR, - & ZoneType, - & IMax, - & JMax, - & KMax, - & ICellMax, - & JCellMax, - & KCellMax, - & SolTime, - & StrandID, - & ParentZn, - & IsBlock, - & NFConns, - & FNMode, - & 0, - & 0, - & 0, - & Null, - & Null, - & Null, - & ShrConn) -C -C... Write out the field data. -C - III = IMax*JMax - I = TecDat112(III,X,0) - I = TecDat112(III,Y,0) - I = TecDat112(III,P,0) - - I = TecEnd112() - Stop - End diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.f90 b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.f90 deleted file mode 100644 index 1706de5984..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtest.f90 +++ /dev/null @@ -1,98 +0,0 @@ -! -! Simple example fortran program to write a -! binary datafile for tecplot. This example -! does the following: -! -! 1. Open a datafile called "t.plt" -! 2. Assign values for X,Y, and P -! 3. Write out a zone dimensioned 4x5 -! 4. Close the datafile. -! -! - program test - - INCLUDE 'tecio.f90' - - character*1 NULLCHR - Integer*4 Debug,III,NPts,NElm - - Dimension X(4,5), Y(4,5), P(4,5) - Real*8 SolTime - Integer*4 VIsDouble, FileType - Integer*4 ZoneType,StrandID,ParentZn,IsBlock - Integer*4 ICellMax,JCellMax,KCellMax,NFConns,FNMode,ShrConn - POINTER (NullPtr,Null) - Integer*4 Null(*) - - NULLCHR = CHAR(0) - NullPtr = 0 - Debug = 1 - FileType = 0 - VIsDouble = 0 - IMax = 4 - JMax = 5 - KMax = 1 - ZoneType = 0 - SolTime = 360.0 - StrandID = 0 - ParentZn = 0 - IsBlock = 1 - ICellMax = 0 - JCellMax = 0 - KCellMax = 0 - NFConns = 0 - FNMode = 0 - ShrConn = 0 -! -!... Open the file and write the tecplot datafile -!... header information. -! - I = TecIni112('SIMPLE DATASET'//NULLCHR, & - 'X Y P'//NULLCHR, & - 't.plt'//NULLCHR, & - '.'//NULLCHR, & - FileType, & - Debug, & - VIsDouble) - - Do 10 I = 1,4 - Do 10 J = 1,5 - X(I,J) = I - Y(I,J) = J - P(I,J) = I*J - 10 Continue -! -!... Write the zone header information. -! - I = TecZne112('Simple Zone'//NULLCHR, & - ZoneType, & - IMax, & - JMax, & - KMax, & - ICellMax, & - JCellMax, & - KCellMax, & - SolTime, & - StrandID, & - ParentZn, & - IsBlock, & - NFConns, & - FNMode, & - 0, & - 0, & - 0, & - Null, & - Null, & - Null, & - ShrConn) -! -!... Write out the field data. -! - III = IMax*JMax - I = TecDat112(III,X,0) - I = TecDat112(III,Y,0) - I = TecDat112(III,P,0) - - I = TecEnd112() - Stop - End diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtestc.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtestc.vcproj deleted file mode 100644 index 814cc761f3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtestc.vcproj +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtestf.vfproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtestf.vfproj deleted file mode 100644 index 2b20da05b1..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/simtest/simtestf.vfproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/Makefile deleted file mode 100644 index 120b910d62..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=squares -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.cpp deleted file mode 100644 index e5d9a0f5e2..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* This example creates a group of square geometries, each with a - * different fill color */ -#if defined _MSC_VER -#pragma warning (disable: 4996) /* Windows strcpy warning off */ -#endif - -/* DOCSTART:tecgeo.txt*/ -#include "TECIO.h" -#include - -int main() -{ - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - INTEGER4 I = 0; /* use to check return values */ - - - /* Open the file and write the tecplot datafile - * header information - */ - I = TECINI112((char*)"Square Geometries", - (char*)"X Y P", - (char*)"squares.plt", - (char*)".", - &FileType, - &Debug, - &VIsDouble); - - double ZPos = 0.0; /* N/A for squares */ - double XPos; - double YPos; - - INTEGER4 PosCoordMode = 0; /* use grid coordinates */ - - /* opt not to attach the text to a given zone. When text is - * attached to a given zone, it is displayed only when the zone - * is displayed. - */ - INTEGER4 AttachToZone = 0; - INTEGER4 Zone = 1; - - /* Set the Geometry Style Values */ - INTEGER4 Color = 0; /* set the outline color to - * black - */ - INTEGER4 IsFilled = 1; - INTEGER4 GeomType = 2; /* set the geometry type to - * square - */ - INTEGER4 LinePattern = 5; /* set the line pattern to - * DashDotDot - */ - double PatternLength = .1; - double LineThick = .2; - - /* N/A for square geometries */ - INTEGER4 NumPts = 100; - INTEGER4 ArrowStyle = 1; - INTEGER4 ArrowAttach = 0; - double ArrowSize = 1; - double ArrowAngle = 30; - INTEGER4 NumSegments = 15; - INTEGER4 NumSegPts = 25; - - - INTEGER4 Scope = 1; /* set the text to "local", i.e. - * available in the current frame - * only. - */ - INTEGER4 Clipping = 1; - - /* Specify the length of a side of the square. The units used - * are those defined with PosCoordMode. - */ - float XGeomData = 2.5; - - float YGeomData = 0; /* N/A for square geometries */ - float ZGeomData = 0; /* N/A for square geometries */ - - char * MFC = new char[128]; - strcpy(MFC, "SQUARE"); - - for (INTEGER4 ii = 0; ii <= 7; ii++) - { - INTEGER4 FillColor = ii; - XPos = (double) ii; - YPos = (double) ii; - - I = TECGEO112(&XPos, - &YPos, - &ZPos, - &PosCoordMode, - &AttachToZone, - &Zone, - &Color, - &FillColor, - &IsFilled, - &GeomType, - &LinePattern, - &PatternLength, - &LineThick, - &NumPts, - &ArrowStyle, - &ArrowAttach, - &ArrowSize, - &ArrowAngle, - &Scope, - &Clipping, - &NumSegments, - &NumSegPts, - &XGeomData, - &YGeomData, - &ZGeomData, - MFC); - } - - I = TECEND112(); - - delete MFC; - return 0; -} - -/* DOCEND */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.plt deleted file mode 100644 index c8e0848cfa..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.vcproj deleted file mode 100644 index 359ce967c4..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/squares/squares.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/Makefile b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/Makefile deleted file mode 100644 index 415b65fd13..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# Set to appropriate C++ compiler -CPP=g++ -CPPFLAGS=-I../../tecsrc ../../tecio.a -EXECUTABLE=text -FILES=$(EXECUTABLE).cpp - -build: - $(CPP) $(FILES) $(CPPFLAGS) -o $(EXECUTABLE) - -clean: - rm -f $(EXECUTABLE) \ No newline at end of file diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.cpp deleted file mode 100644 index 66df8d723d..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* This example demonstrates adding a text object to a Tecplot - * data file. - */ -#if defined _MSC_VER -#pragma warning (disable: 4996) /* Windows strcpy warning off */ -#endif - -/* DOCSTART:tectxt.txt*/ -#include "TECIO.h" -#include - -int main() -{ - /* Open the file & write the datafile header information */ - INTEGER4 Debug = 1; - INTEGER4 VIsDouble = 0; - INTEGER4 FileType = 0; - INTEGER4 I = 0; /* used to check the return value */ - - I = TECINI112((char*)"Text", - (char*)"X Y P", - (char*)"text.plt", - (char*)".", - &FileType, - &Debug, - &VIsDouble); - - /* Specify the X, Y and Z position of the anchor point */ - double XPos = 0.0; - double YPos = 1.0; - double ZPos = 0.0; /* N/A for 2D text */ - - INTEGER4 PosCoordMode = 0; /* use grid coordinates */ - - /* opt not to attach the text to a given zone. When text is - * attached to a given zone, it is displayed only when the zone - * is displayed. - */ - INTEGER4 AttachToZone = 0; - INTEGER4 Zone = 2; - - - /* Specify the font values */ - INTEGER4 Font = 1; /* Helvetica Bold */ - INTEGER4 FontHeightUnits = 2; /* in grid coordinates */ - double FontHeight = 18; - - /* Set the box style parameters */ - INTEGER4 BoxType = 1; /* filled box */ - double BoxMargin = .5; /* margin between the text - * and the text box - */ - double BoxLineThickness = .1; - INTEGER4 BoxColor = 0; /* set the box line color - * to black. - */ - INTEGER4 BoxFillColor = 1; /* set the box fill color - * to red. - */ - - /* set the font properties */ - double Angle = 30; /* angle of the text */ - INTEGER4 Anchor = 1; /* set the anchor point to - * the center of the text - * box. - */ - double LineSpacing = 1.5; - INTEGER4 TextColor = 7; /* set the font color to - * white - */ - - INTEGER4 Scope = 1; /* set the text to "local", - * i.e. available in the - * current frame only. - */ - INTEGER4 Clipping = 1; - - - char Text[60]; - char MFC[24]; - strcpy(Text, "Sample Text"); - strcpy(MFC, "My Macro"); - - I = TECTXT112(&XPos, - &YPos, - &ZPos, - &PosCoordMode, - &AttachToZone, - &Zone, - &Font, - &FontHeightUnits, - &FontHeight, - &BoxType, - &BoxMargin, - &BoxLineThickness, - &BoxColor, - &BoxFillColor, - &Angle, - &Anchor, - &LineSpacing, - &TextColor, - &Scope, - &Clipping, - Text, - MFC); - - I = TECEND112(); - - return 0; -} - -/* DOCEND */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.plt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.plt deleted file mode 100644 index 5d0ecd945a..0000000000 Binary files a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.plt and /dev/null differ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.vcproj b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.vcproj deleted file mode 100644 index 9018c6a89c..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/examples/text/text.vcproj +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/pltview.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/pltview.cpp deleted file mode 100644 index fd9dd63976..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/pltview.cpp +++ /dev/null @@ -1,559 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** (C) Copyright 2004-2006 by Tecplot, Inc. ******** -****** (C) Copyright 1989-2003 by AMTEC ENGINEERING INC.******** -******* All Rights Reserved. ******** -******* ******** -***************************************************************** -***************************************************************** -*/ - - -/* -**************************************************************** -****************** BEGIN DEVELOPMENT NOTES ********************* -**************************************************************** - -BEGIN CODELOG PLTVIEW -V 09/04/98 -V **************************************************************** -V * Build 1.0 9-04-98 * -V **************************************************************** -END CODELOG - -********************************************************************* -* IMPORTANT NOTE: Only development notes for "pltview" stand-alone * -* belong in this file. See "ADDONVER.h" for changes * -* related to the add-on. * -********************************************************************* - -**************************************************************** -* V in column 1 marks date information. * -* C in column 1 marks notes on new changes. * -* B in column 1 marks notes on bug fixes. * -**************************************************************** - -**************************************************************** -****************** END DEVELOPMENT NOTES *********************** -**************************************************************** -*/ - -#if defined ADDON -#include "TECADDON.h" -#include "GUIDEFS.h" -#include "GUI.h" -#define READTEC TecUtilReadBinaryData -#define SHOWINFO(S) TecGUITextAppendString(Output_T_D1,S); -#define ERRMSG(S) TecUtilDialogErrMsg(S) -#define ALLOC_ARRAY(N,Type,S) (Type *)TecUtilStringAlloc((N)*sizeof(Type),"debug info") -#define FREE_ARRAY(N,S) TecUtilStringDealloc((char **)&N) -#define STRINGLISTGETSTRING(S,N) TecUtilStringListGetString(S,N) -#define STRINGLISTGETCOUNT(S) TecUtilStringListGetCount(S) -#define STRINGLISTDEALLOC(S) TecUtilStringListDealloc(S) -#else -#include "MASTER.h" -#include "GLOBAL.h" -#include "TASSERT.h" -#define ALLOC_ARRAY(N,Type,S) (Type *)TecAlloc((N)*sizeof(Type)) -#define FREE_ARRAY(N,S) TecFree((void *)N) -#include "ARRLIST.h" -#include "STRLIST.h" -#include "DATAUTIL.h" - -/* -#include "TECADDON.h" -#include "TECXXX.h" -#include "DATAUTIL.h" -#include "STRLIST.h" -*/ - -#define READTEC ReadTec -#define SHOWINFO(S) printf("%s",S); -#define ERRMSG(S) printf("Err: %s\n",S); -#define STRINGLISTGETSTRING(S,N) StringListGetString(S,(N)-1) -#define STRINGLISTGETCOUNT(S) StringListCount(S) -#define STRINGLISTDEALLOC(S) StringListDealloc(S) -#define MaxCharsUserRec 500 -#endif - - -static int GetNumPtsPerCell(ZoneType_e ZoneType) -{ - int NumPts = 0; - switch (ZoneType) - { - case ZoneType_FETriangle : NumPts = 3; break; - case ZoneType_FEQuad : NumPts = 4; break; - case ZoneType_FETetra : NumPts = 4; break; - case ZoneType_FEBrick : NumPts = 8; break; - default : NumPts = 0; - } - return (NumPts); -} - -static int GetNumPts(ZoneType_e ZoneType, - LgIndex_t NumPtsI, - LgIndex_t NumPtsJ, - LgIndex_t NumPtsK) -{ - int NumPts = 0; - switch (ZoneType) - { - case ZoneType_FETriangle : - case ZoneType_FEQuad : - case ZoneType_FETetra : - case ZoneType_FEBrick : - case ZoneType_FEPolygon : - case ZoneType_FEPolyhedron: NumPts = NumPtsI; break; - default : NumPts = NumPtsI*NumPtsJ*NumPtsK; - } - return (NumPts); -} - - - -static void DeallocHeaderInfo(char **DataSetTitle, - StringList_pa *VarNames, - StringList_pa *ZoneNames, - LgIndex_t **NumPtsI, - LgIndex_t **NumPtsJ, - LgIndex_t **NumPtsK, - ZoneType_e **ZoneType, - StringList_pa *UserRec) -{ - if (*DataSetTitle) - FREE_ARRAY(*DataSetTitle, "data set title"); - if (*VarNames) - STRINGLISTDEALLOC(VarNames); - if (*ZoneNames) - STRINGLISTDEALLOC(ZoneNames); - if (*NumPtsI) - FREE_ARRAY(*NumPtsI, "NumPtsI Array"); - if (*NumPtsJ) - FREE_ARRAY(*NumPtsJ, "NumPtsJ Array"); - if (*NumPtsK) - FREE_ARRAY(*NumPtsK, "NumPtsK Array"); - if (*ZoneType) - FREE_ARRAY(*ZoneType, "ZoneType Array"); - if (*UserRec) - STRINGLISTDEALLOC(UserRec); - - *DataSetTitle = NULL; - *VarNames = NULL; - *ZoneNames = NULL; - *NumPtsI = NULL; - *NumPtsJ = NULL; - *NumPtsK = NULL; - *ZoneType = NULL; - *UserRec = NULL; -} - - - -#define MAXCHARSINFOLINE 5000 - - -void ReportFileInfo(char *FName, - Boolean_t LoadRawData, - Boolean_t AllocateRawDataSpaceLocally) -{ - short IVersion; - EntIndex_t NumZones; - EntIndex_t NumVars; - char *DataSetTitle = NULL; - StringList_pa VarNames = NULL; - StringList_pa ZoneNames = NULL; - LgIndex_t *NumPtsI = NULL; - LgIndex_t *NumPtsJ = NULL; - LgIndex_t *NumPtsK = NULL; - ZoneType_e *ZoneType = NULL; - StringList_pa UserRec = NULL; - int CZ, CV; - char InfoLine[MAXCHARSINFOLINE+1]; - double **VDataBase = NULL; - NodeMap_t **NodeMap = NULL; - - /* - * Load in the header information only. - */ - - if (!READTEC(TRUE, - FName, - &IVersion, - &DataSetTitle, - &NumZones, - &NumVars, - &VarNames, - &ZoneNames, - &NumPtsI, - &NumPtsJ, - &NumPtsK, - &ZoneType, - &UserRec, - FALSE, - (NodeMap_t ***)NULL, - (double ***)NULL)) - { - sprintf(InfoLine, "Cannot read file \"%s\"\nor file is not a Tecplot binary data file.\n", FName); - ERRMSG(InfoLine); - } - else - { - Boolean_t IsOk = TRUE; - if (LoadRawData) - { - if (AllocateRawDataSpaceLocally) - { - int NumPts; - VDataBase = ALLOC_ARRAY(NumZones * NumVars, double *, "vdatabase array"); - for (CZ = 0; CZ < NumZones; CZ++) - for (CV = 0; CV < NumVars; CV++) - { - NumPts = GetNumPts(ZoneType[CZ], NumPtsI[CZ], NumPtsJ[CZ], NumPtsK[CZ]); - if (NumPts >= 1) - VDataBase[CZ*NumVars+CV] = ALLOC_ARRAY(NumPts, double, "vdatabase array"); - else - VDataBase[CZ*NumVars+CV] = NULL; - } - - NodeMap = ALLOC_ARRAY(NumZones, NodeMap_t *, "nodemap array"); - for (CZ = 0; CZ < NumZones; CZ++) - { - if (ZoneType[CZ] == ZoneType_Ordered) - NodeMap[CZ] = NULL; - else - { - int PtsPerCell = GetNumPtsPerCell(ZoneType[CZ]); - NodeMap[CZ] = ALLOC_ARRAY(PtsPerCell * NumPtsJ[CZ], - NodeMap_t, "zone nodemap"); - } - } - } - else - { - VDataBase = NULL; - NodeMap = NULL; - } - - /* - * NOTE: If any of the above alloc's failed then no big deal. ReadTec - * itself "skips" vars if memory was not allocated for it. - */ - - DeallocHeaderInfo(&DataSetTitle, - &VarNames, - &ZoneNames, - &NumPtsI, - &NumPtsJ, - &NumPtsK, - &ZoneType, - &UserRec); - - /* - * Reread the datafile. This time load in the header AND the raw data - * Note that VDataBase may be preallocated or may be left up to ReadTec - * to allocate (See AllocateRawDataSpaceLocally above). - */ - if (!READTEC(FALSE, - FName, - &IVersion, - &DataSetTitle, - &NumZones, - &NumVars, - &VarNames, - &ZoneNames, - &NumPtsI, - &NumPtsJ, - &NumPtsK, - &ZoneType, - &UserRec, - AllocateRawDataSpaceLocally, - &NodeMap, - &VDataBase)) - { - if (IVersion > 99) - { - sprintf(InfoLine, - "Error: ***\n" - " This add-on can only display raw nodal data\n" - " and it appears to contain cell centered data.\n"); - SHOWINFO(InfoLine); - } - else - { - sprintf(InfoLine, - "Cannot Read File, %s.\n" - "File may not be a tecplot binary data file.", - FName); - ERRMSG(InfoLine); - } - IsOk = FALSE; - } - } - - SHOWINFO("\n"); - sprintf(InfoLine, "FileName : %s\n", FName); - SHOWINFO(InfoLine); - sprintf(InfoLine, "File Version: %3.1f\n", IVersion / 10.0); - SHOWINFO(InfoLine); - - /* if the file contains filetype, then retrieve that separately since ReadTec should not be changed */ - if (IVersion >= 109) - { - DataFileType_e FileType = DataFileType_Full; - char FileTypeStr[32]; - FILE *F = NULL; - - /* open the file and get the filetype */ - F = fopen(FName, "rb"); - if (F) - { - char Buffer[8]; - Int32_t One; - Int32_t FileTypeInt; - - /* 8 bytes for magic# and version and 4 bytes for Int32 */ - fread(Buffer, sizeof(Buffer[0]), 8, F); - fread(&One, sizeof(One), 1, F); - fread(&FileTypeInt, sizeof(FileTypeInt), 1, F); - FileType = (DataFileType_e)FileTypeInt; - fclose(F); - F = NULL; - } - /* map the filetype */ - switch (FileType) - { - case DataFileType_Full: - strcpy(FileTypeStr, "Full"); - break; - case DataFileType_Grid: - strcpy(FileTypeStr, "Grid"); - break; - case DataFileType_Solution: - strcpy(FileTypeStr, "Solution"); - break; - default: - IsOk = FALSE; - CHECK(FALSE); - break; - } - sprintf(InfoLine, "File Type : %s\n", FileTypeStr); - SHOWINFO(InfoLine); - } - - sprintf(InfoLine, "DataSetTitle: %s\n", DataSetTitle ? DataSetTitle : " "); - SHOWINFO(InfoLine); - sprintf(InfoLine, "NumZones : %d\n", (int)NumZones); - SHOWINFO(InfoLine); - sprintf(InfoLine, "NumVars : %d\n", (int)NumVars); - SHOWINFO(InfoLine); - if (IsOk && (NumZones > 0)) - { - SHOWINFO("Var Names : "); - for (CZ = 0; CZ < NumVars; CZ++) - { - char *VarName = STRINGLISTGETSTRING(VarNames, CZ + 1); - sprintf(InfoLine, "%s", VarName ? VarName : "NULL"); - if (CZ < NumVars - 1) - strcat(InfoLine, ","); - else - strcat(InfoLine, "\n\n"); - SHOWINFO(InfoLine); - if (VarName) - FREE_ARRAY(VarName, "VarName array"); - } - SHOWINFO("ZoneName IMax JMax KMax Node Face Elmt EType\n"); - SHOWINFO("-------------------------------------------------------------------------------\n"); - - for (CZ = 0; CZ < NumZones; CZ++) - { - char *ZoneName = STRINGLISTGETSTRING(ZoneNames, CZ + 1); - if (ZoneType[CZ] != ZoneType_Ordered) - { - if (ZoneType[CZ] == ZoneType_FEPolygon || - ZoneType[CZ] == ZoneType_FEPolyhedron) - sprintf(InfoLine, "%-20s --- --- --- %-8ld %-8ld %-8ld ", - (ZoneName ? ZoneName : "NULL"), - (long)NumPtsI[CZ], - (long)NumPtsK[CZ], - (long)NumPtsJ[CZ]); - else - sprintf(InfoLine, "%-20s --- --- --- %-8ld --- %-8ld ", - (ZoneName ? ZoneName : "NULL"), - (long)NumPtsI[CZ], - (long)NumPtsJ[CZ]); - SHOWINFO(InfoLine); - switch (ZoneType[CZ]) - { - case ZoneType_FETriangle : SHOWINFO("Tri\n"); break; - case ZoneType_FEQuad : SHOWINFO("Quad\n"); break; - case ZoneType_FETetra : SHOWINFO("Tetra\n"); break; - case ZoneType_FEBrick : SHOWINFO("Brick\n"); break; - case ZoneType_FELineSeg : SHOWINFO("LineSeg\n"); break; - case ZoneType_FEPolygon : SHOWINFO("Polygon\n"); break; - case ZoneType_FEPolyhedron: SHOWINFO("Polyhed\n"); break; - default: CHECK(FALSE); break; - } - } - else - { - sprintf(InfoLine, "%-20s %-7ld %-7ld %-7ld --- --- --- ---\n", - (ZoneName ? ZoneName : "NULL"), - (long)NumPtsI[CZ], - (long)NumPtsJ[CZ], - (long)NumPtsK[CZ]); - SHOWINFO(InfoLine); - } - if (ZoneName) - FREE_ARRAY(ZoneName, "ZoneName Array"); - } - } - - if (IsOk) - { - for (CZ = 1; CZ <= STRINGLISTGETCOUNT(UserRec); CZ++) - { - char *S = STRINGLISTGETSTRING(UserRec, CZ); - if (S) - { - int L; - strcpy(InfoLine, "UserRec: "); - L = (int)strlen(InfoLine); - strncat(&InfoLine[L], S, MAXCHARSINFOLINE - L - 2); - strcat(&InfoLine[strlen(InfoLine)], "\n"); - SHOWINFO(InfoLine); - FREE_ARRAY(S, "temp string"); - } - } - - - if (LoadRawData) - { - for (CZ = 0; CZ < NumZones; CZ++) - { - int CV; - for (CV = 0; CV < NumVars; CV++) - if (VDataBase[CZ*NumVars+CV]) - { - int I; - int NumPts = GetNumPts(ZoneType[CZ], NumPtsI[CZ], NumPtsJ[CZ], NumPtsK[CZ]); - int SLen = 0; - sprintf(InfoLine, "\n\nVariable data for zone %d, Var %d\n", CZ + 1, CV + 1); - SHOWINFO(InfoLine); - InfoLine[0] = '\0'; - for (I = 0; I < NumPts; I++) - { - char PString[50]; - if (SLen + 50 > MAXCHARSINFOLINE) - { - SHOWINFO(InfoLine); - InfoLine[0] = '\0'; - SLen = 0; - } - - sprintf(PString, "%lG ", VDataBase[CZ*NumVars+CV][I]); - strcat(InfoLine, PString); - SLen += (int)strlen(PString); - - if ((I % 5) == 4) - { - strcat(InfoLine, "\n"); - SLen++; - } - } - if (*InfoLine) - SHOWINFO(InfoLine); - FREE_ARRAY(VDataBase[CZ*NumVars+CV], "vdatabase double"); - } - if (NodeMap[CZ]) - { - int I, J; - int PtsPerCell = GetNumPtsPerCell(ZoneType[CZ]); - int SLen = 0; - SHOWINFO("\nConnectivity list:\n"); - InfoLine[0] = '\0'; - for (J = 0; J < NumPtsJ[CZ]; J++) - { - if (SLen + 200 > MAXCHARSINFOLINE) - { - SHOWINFO(InfoLine); - InfoLine[0] = '\0'; - SLen = 0; - } - for (I = 0; I < PtsPerCell; I++) - { - char NString[20]; - sprintf(NString, "%u ", (unsigned int)NodeMap[CZ][J*PtsPerCell+I] + 1); - strcat(InfoLine, NString); - SLen += (int)strlen(NString); - } - strcat(InfoLine, "\n"); - SLen++; - } - if (*InfoLine) - SHOWINFO(InfoLine); - FREE_ARRAY(NodeMap[CZ], "nodemap"); - } - } - FREE_ARRAY(NodeMap, "Nodemap base array"); - FREE_ARRAY(VDataBase, "vdatabase base array"); - } - } - - SHOWINFO("\n\n"); - - DeallocHeaderInfo(&DataSetTitle, - &VarNames, - &ZoneNames, - &NumPtsI, - &NumPtsJ, - &NumPtsK, - &ZoneType, - &UserRec); - } -} - - - -#if !defined ADDON -int main(int argc, char *(argv[])) -{ - short CurFile; - - if (argc == 1) - { - printf("Err: Need: pltview file1 [file2] ...\n"); - exit(-1); - } - - for (CurFile = 1; CurFile < argc; CurFile++) - ReportFileInfo(argv[CurFile], FALSE, FALSE); - - return 0; -} -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/readme.txt b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/readme.txt deleted file mode 100644 index 5b47bdb4ea..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/readme.txt +++ /dev/null @@ -1,51 +0,0 @@ -*********************************************** -** README ** -*********************************************** - -To build the TecIO library and/or the pltview utility -simply run the Runmake script in this directory. - -If customization is needed it will most likely be done -in GLOBAL.h (to identify machine as 64 bit) and/or in -dataio4.c. Just look for CRAY in dataio4.c and you -will find most of the critical areas. Note that the -existing code defined by CRAY is quite old and has -not been in use for some time. - -Each example has its own Makefile. You may have to adjust -the variables at the top of the Makefile for your platform. - - -ReadTec() - -The ReadTec() is included in the tecio library but is -not supported by Tecplot, Inc. ReadTec is used -to read Tecplot binary data files (all versions at or -older than the Tecplot version providing the tecio -library). See tecsrc/DATAUTIL.h for more information. - -The pltview example app gives an example of using ReadTec -to read just the header from a file as well as loading all -field data from a file./* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/ALLOC.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/ALLOC.h deleted file mode 100644 index f07fc07f90..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/ALLOC.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2009 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -#ifndef ALLOC_H -#define ALLOC_H - -#include "TASSERT.h" -#if defined __cplusplus -#include -#endif - -#if !defined __cplusplus -#define ALLOC_ARRAY(N,Type,str) (Type *)malloc((N)*sizeof(Type)) -#define ALLOC_ITEM(Type,str) (Type *)malloc(sizeof(Type)) -#ifdef _DEBUG -/* NOTE: the pointer is set to 0xFFFF after the free for debug */ -/* versions in the hopes of catching invalid pointer usage */ -#define FREE_ARRAY(X,str) do { free((void *)(X)); *((void **)&(X)) = (void *)0xFFFF; } while (0) -#define FREE_ITEM(X,str) do { free((void *)(X)); *((void **)&(X)) = (void *)0xFFFF; } while (0) -#else -#define FREE_ARRAY(X,str) free((void *)(X)) -#define FREE_ITEM(X,str) free((void *)(X)) -#endif -#else -#ifdef TRACK_MEMORY_USAGE -extern void initMemoryUsageTracking(void); -extern void cleanUpMemoryUsageTracking(void); -extern void trackMemoryAlloc(size_t size); -extern void trackMemoryFree(size_t size); -extern void trackMemoryClearHighMark(void); -extern void trackMemorySaveHighMark(void); -extern void getMemoryUsage(size_t* memoryInUse, - size_t* memoryCurrentHighMark, - size_t* memorySavedHighMark, - size_t* memoryTotalHighMark); -#endif -/* -* Create a version of new that returns NULL instead -* of throwing std::bad_alloc. A lot of code is written using -* ALLOC_ITEM and ALLOC_ARRAY that expect a return value of -* NULL on failure instead of the exception. 2008-05-08 CAM -*/ -#if defined MSWIN && defined _DEBUG -template -inline T *nonExceptionNew(size_t numItems, - const char* fileName, - int lineNumber) -{ - REQUIRE(numItems > 0); - REQUIRE(VALID_REF(fileName)); - REQUIRE(lineNumber > 0); - T* result; - try - { -#ifdef DEBUG_NEW -#ifdef new -#undef new -#define USING_DEBUG_NEW -#endif - result = new(fileName, lineNumber) T[numItems]; -#ifdef USING_DEBUG_NEW -#define new DEBUG_NEW -#undef USING_DEBUG_NEW -#endif -#else - result = new T[numItems]; -#endif - } - catch (std::bad_alloc&) - { - result = NULL; - } -#ifdef TRACK_MEMORY_USAGE - if (result != NULL) - { -#ifdef MSWIN - trackMemoryAlloc(_msize(result)); -#else - trackMemoryAlloc(malloc_usable_size(result)); -#endif - } -#endif - ENSURE(VALID_REF_OR_NULL(result)); - return result; -} -#define ALLOC_ARRAY(N,Type,str) nonExceptionNew((N),__FILE__,__LINE__) -#else -template -inline T *nonExceptionNew(size_t numItems) -{ - REQUIRE(numItems > 0); - T *result; - try - { - result = new T[numItems]; - } - catch (std::bad_alloc&) - { - result = NULL; - } -#ifdef TRACK_MEMORY_USAGE - if (result != NULL) - { -#ifdef MSWIN - trackMemoryAlloc(_msize(result)); -#else - trackMemoryAlloc(malloc_usable_size(result)); -#endif - } -#endif - ENSURE(VALID_REF_OR_NULL(result)); - return result; -} -#define ALLOC_ARRAY(N,Type,str) nonExceptionNew((N)) -#endif -#define ALLOC_ITEM(Type,str) ALLOC_ARRAY(1,Type,str) - -/* -* Although delete doesn't throw exceptions, this function matches -* nonExceptionNew, and also reports the size of the block if we -* are tracking memory. -*/ -template -inline void nonExceptionDelete(T* &ptr) -{ -#if defined MSWIN && !defined NO_ASSERTS - CHECK(!IsBadReadPtr((void*)ptr, 1)); -#endif -#if defined TRACK_MEMORY_USAGE - if (ptr != NULL) - { -#ifdef MSWIN - trackMemoryFree(_msize(ptr)); -#else - trackMemoryFree(malloc_usable_size(ptr)); -#endif - } -#endif - - delete [] ptr; -#if !defined NO_ASSERTS - /* - * NOTE: the pointer is set to 0xFFFF after the free for asserted - * builds in the hopes of catching invalid pointer usage - */ - ptr = (T*)(void*)0xFFFF; -#endif -} -#define FREE_ARRAY(ptr,str) nonExceptionDelete((ptr)) -#define FREE_ITEM(ptr,str) FREE_ARRAY(ptr,str) -#endif - -/** -* The following functor can be used to easily deallocate memory from containers -* that hold pointers to allocated objects. For example: -* -* vector container; -* for (int ii = 0; ii < 10; ii++ -* container.push_back(new MyObject); -* ... do something with the objects ... -* ... now we need to clean up ... -* for_each(container.begin(), -* container.end(), -* DeleteItem()); -*/ -struct DeleteItem -{ - template - void operator()(T*& object) - { - delete object; - object = NULL; - } -}; - -#endif /* ALLOC_H */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/ARRLIST.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/ARRLIST.h deleted file mode 100644 index 0203dae29b..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/ARRLIST.h +++ /dev/null @@ -1,626 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ -#if !defined ARRLIST_h -#define ARRLIST_h - -#if defined EXTERN -# undef EXTERN -#endif -#if defined ARRLISTMODULE -# define EXTERN -#else -# define EXTERN extern -#endif - -typedef enum -{ - ArrayListType_UnsignedChar, - ArrayListType_UnsignedShort, - ArrayListType_UnsignedInt, - ArrayListType_UnsignedLong, - ArrayListType_Int64, - ArrayListType_Char, - ArrayListType_Short, - ArrayListType_Int, - ArrayListType_Long, - ArrayListType_Float, - ArrayListType_Double, - ArrayListType_LgIndex, - ArrayListType_EntIndex, - ArrayListType_SmInteger, - ArrayListType_Boolean, - ArrayListType_ArbParam, - ArrayListType_UnsignedCharPtr, - ArrayListType_UnsignedShortPtr, - ArrayListType_UnsignedIntPtr, - ArrayListType_UnsignedLongPtr, - ArrayListType_Int64Ptr, - ArrayListType_CharPtr, - ArrayListType_ShortPtr, - ArrayListType_IntPtr, - ArrayListType_LongPtr, - ArrayListType_FloatPtr, - ArrayListType_DoublePtr, - ArrayListType_LgIndexPtr, - ArrayListType_EntIndexPtr, - ArrayListType_SmIntegerPtr, - ArrayListType_BooleanPtr, - ArrayListType_ArbParamPtr, - ArrayListType_VoidPtr, - ArrayListType_FunctionPtr, - ArrayListType_Any, - END_ArrayListType_e, - ArrayListType_Invalid = BadEnumValue -} ArrayListType_e; - -typedef union -{ - unsigned char UnsignedChar; - unsigned short UnsignedShort; - unsigned int UnsignedInt; - unsigned long UnsignedLong; - Int64_t Int64; - char Char; - short Short; - int Int; - long Long; - float Float; - double Double; - LgIndex_t LgIndex; - EntIndex_t EntIndex; - SmInteger_t SmInteger; - Boolean_t BBoolean; /* X-Windows uses Boolean */ - ArbParam_t ArbParam; - unsigned char *UnsignedCharPtr; - unsigned short *UnsignedShortPtr; - unsigned int *UnsignedIntPtr; - unsigned long *UnsignedLongPtr; - Int64_t *Int64Ptr; - char *CharPtr; - short *ShortPtr; - int *IntPtr; - long *LongPtr; - float *FloatPtr; - double *DoublePtr; - LgIndex_t *LgIndexPtr; - EntIndex_t *EntIndexPtr; - SmInteger_t *SmIntegerPtr; - Boolean_t *BooleanPtr; - ArbParam_t *ArbParamPtr; - void *VoidPtr; - void (*FunctionPtr)(void); -} ArrayListItem_u; - -/** - * NULL array list item for added convenience of inserting a NULL item without - * having to declare and assign one. Can be used as follows: - * - * IsOk = ArrayListInsertItem(SomeArrayList, SomeIndex, ArrayListNumItem); - * - * NOTE: This value must be set to zero before Tecplot uses array lists. - * memset(&ArrayListNullItem, 0, sizeof(ArrayListType_Any)); - */ -EXTERN ArrayListItem_u ArrayListNullItem; - -/** - * Visitor for traversing an array list. An iterator may not perform any - * operation that will adjust the size of the list. In other words it may not - * insert or delete items from the list. However an iterator may perform a get - * operation or a set operation that do not expand the list size. - * - * param ItemRef - * Reference to the array list item visited. - * param ClientData - * Any client data required for the visitor. - * - * return - * TRUE to continue visiting items, otherwise - * FALSE to discontinue visiting - */ -typedef Boolean_t (*ArrayListItemVisitor_pf)(void *ItemRef, - ArbParam_t ClientData); -#if 0 /* use this stub as a starting place */ -{ - REQUIRE(VALID_REF(TypeRef)); - REQUIRE(VALID_REF(*TypeRef) || *TypeRef == NULL); - - Boolean_t DoContinue = TRUE; - *TypeRef = ( *)ItemRef; - - ENSURE(VALID_BOOLEAN(DoContinue)); - return DoContinue; -} -#endif - - -/** - * Destructor for cleaning up one or more array list items. If a destructor is - * not supplied then the array items are simply discarded. - * - * NOTE: The only change to ArrayListItemVisitor_pf is the policy which - * requires that the return value is TRUE. - * - * param ItemRef - * Reference to the array list item to cleanup. - * param ClientData - * Any client data required for cleanup. - * - * return - * TRUE is a requirement - */ -typedef ArrayListItemVisitor_pf ArrayListItemDestructor_pf; - - -/** - * Duplicator for copying one or more array list items. If a duplicator is not - * supplied then the array items are simply copied. For pointer types this - * means by reference. Note that if a duplicator is used the rules for - * duplication and subsequent cleanup are defined by the client. - * - * param TargetItemRef - * Reference to the array list to receive the duplicate. - * param SourceItemRef - * Reference to the array list item to duplicate. - * param ClientData - * Any client data required for duplication. - * - * return - * TRUE if the duplication was a success - * FALSE otherwise. If the duplication failed it - * is the client's responsibility to cleanup any - * partial duplication - */ -typedef Boolean_t (*ArrayListItemDuplicator_pf)(void *TargetItemRef, - void *SourceItemRef, - ArbParam_t ClientData); -#if 0 /* use this stub as a starting place */ -{ - REQUIRE(VALID_REF(TargetTypeRef)); - REQUIRE(VALID_REF(SourceTypeRef)); - REQUIRE(VALID_REF(*SourceTypeRef) || *SourceTypeRef == NULL); - - Boolean_t IsOk = TRUE; - *TargetTypeRef = ( *)TargetItemRef; - *SourceTypeRef = ( *)SourceItemRef; - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} -#endif - - -/** - * Adjusts the capacity request as necessary to minimize memory reallocations - * for large lists. Unless the request exceeds the maximum the adjusted - * capacity will be at least as big as requested however it may be larger if it - * is determined that the space requirement is growing faster. If the maximum - * is exceeded zero should be returned. - * - * param ArrayList - * Array list requesting the change in capacity. - * param CurrentCapacity - * Current capacity of the array list. - * param RequestedCapacity - * Capacity request or zero for default size. - * param ClientData - * Any client data needed for the adjustment. - * - * return - * Adjusted capacity that is at least as large as the request or zero if - * unable to satisfy the requested capacity. - */ -typedef LgIndex_t (*ArrayListCapacityRequestAdjuster_pf)(ArrayList_pa ArrayList, - LgIndex_t CurrentCapacity, - LgIndex_t RequestedCapacity, - ArbParam_t ClientData); -#if 0 /* use this stub as a starting place */ -{ - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE((RequestedCapacity == 0 && CurrentCapacity == 0) || - RequestedCapacity > ArrayList->Capacity); - - LgIndex_t Result; - - ENSURE(Result == 0 || Result >= RequestedCapacity); - return Result; -} -#endif - - -/* private ArrayList structure: only exposed so STRUTIL can use it */ -typedef struct _ArrayList_s -{ - char *Array; /* byte array for holding the items */ - ArrayListType_e Type; /* type of array items */ - SmInteger_t ItemSize; /* byte size of an individual item */ - LgIndex_t Count; /* number of items in the array */ - LgIndex_t Capacity; /* maximum holding capacity of the array */ - Boolean_t IsVisitingItems; /* indicates if an iteration is in progress */ - ArrayListCapacityRequestAdjuster_pf CapacityRequestAdjuster; - ArbParam_t CapacityRequestAdjusterClientData; -} ArrayList_s; - - -/** - * Compares two array list elements. Note that either string may be - * NULL as array lists allow for NULL elements. - * - * @param Item1 - * Element to compare against Item2. - * @param Item2 - * Element to compare against Item1. - * @param ClientData - * Contextual information that was passed to the 'ArrayListQSort' function. - * - * @return - * - A value less than zero if Item1 is less than Item2. - * - A value of zero if Item1 is equal to Item2. - * - A value greater than zero if Item1 is greater than Item2. - */ -typedef int (STDCALL *ArrayListItemComparator_pf)(ArrayListItem_u Item1, - ArrayListItem_u Item2, - ArbParam_t ClientData); - -EXTERN Boolean_t ArrayListIsValid(ArrayList_pa ArrayList); -EXTERN ArrayListType_e ArrayListGetType(ArrayList_pa ArrayList); -EXTERN Boolean_t ArrayListEnlargeCapacity(ArrayList_pa ArrayList, - LgIndex_t RequestedCapacity); -EXTERN ArrayList_pa ArrayListAlloc(LgIndex_t EstimatedCapacity, - ArrayListType_e Type, - ArrayListCapacityRequestAdjuster_pf CapacityRequestAdjuster, - ArbParam_t CapacityRequestAdjusterClientData); -EXTERN void ArrayListDealloc(ArrayList_pa *ArrayList, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData); -EXTERN void ArrayListDeleteAllItems(ArrayList_pa ArrayList, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData); -EXTERN void ArrayListDeleteItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData); -EXTERN void ArrayListDeleteItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData); -EXTERN ArrayList_pa ArrayListRemoveItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count); -EXTERN ArrayListItem_u ArrayListRemoveItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset); -EXTERN Boolean_t ArrayListInsertItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - ArrayListItem_u Item); -EXTERN Boolean_t ArrayListInsert(ArrayList_pa Target, - LgIndex_t ItemOffset, - ArrayList_pa Source); -EXTERN Boolean_t ArrayListVisitItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count, - ArrayListItemVisitor_pf ItemVisitor, - ArbParam_t ClientData); -EXTERN ArrayList_pa ArrayListGetItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count); -EXTERN ArrayListItem_u ArrayListGetItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset); -EXTERN Boolean_t ArrayListSetItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - ArrayListItem_u Item, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData); -EXTERN Boolean_t ArrayListAppendItem(ArrayList_pa ArrayList, - ArrayListItem_u Item); -EXTERN Boolean_t ArrayListAppend(ArrayList_pa Target, - ArrayList_pa Source); -EXTERN ArrayList_pa ArrayListCopy(ArrayList_pa ArrayList, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData); -EXTERN void *ArrayListToArray(ArrayList_pa ArrayList, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData); -EXTERN ArrayList_pa ArrayListFromArray(void *Source, - LgIndex_t Count, - ArrayListType_e Type, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -EXTERN void ArrayListQSort(ArrayList_pa ArrayList, - ArrayListItemComparator_pf Comparator, - ArbParam_t ClientData); -EXTERN Boolean_t ArrayListBSearch(ArrayList_pa ArrayList, - ArrayListItem_u Item, - ArrayListItemComparator_pf Comparator, - ArbParam_t ClientData, - LgIndex_t *ItemIndex); - -#if defined USE_MACROS_FOR_FUNCTIONS -/** - * Gets the array list's internal buffer representation. - * Use ArrayListGetXxx accessors whenever possible as their - * implementation in the release build is as fast as using - * the array directly anyway. - * - * WARNING: - * Some array list functions modify the internal buffer. - * This will invalidate this reference however it is - * the client's responsibility not to make further use - * of it. In addition, this reference should never be - * deallocated directly as the array list assumes the - * responsible for the cleanup. - * - * param ArrayList - * Array list for which a reference to the internal - * buffer is desired. - * - * return - * Reference to the array list's internal buffer. - */ -# define ArrayListGetInternalRef ArrayListGetInternalRef_MACRO -/** - * Gets the item's internal reference at the specified offset in the list. - * - * WARNING: - * Some array list functions modify the internal buffer. - * This will invalidate this reference however it is - * the client's responsibility not to make further use - * of it. In addition, this reference should never be - * deallocated directly as the array list assumes the - * responsible for the cleanup. - * - * param ArrayList - * Array list containing the desired item. - * param ItemOffset - * Offset to the item in the list. - * - * return - * The internal reference to the requested item. - */ -# define ArrayListGetItemInternalRef ArrayListGetItemInternalRef_MACRO -# define ArrayListGetCount ArrayListGetCount_MACRO - -# define ArrayListGetUnsignedChar(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned char) -# define ArrayListGetUnsignedShort(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned short) -# define ArrayListGetUnsignedInt(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned int) -# define ArrayListGetUnsignedLong(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned long) -# define ArrayListGetInt64(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, Int64_t) -# define ArrayListGetChar(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, char) -# define ArrayListGetShort(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, short) -# define ArrayListGetInt(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, int) -# define ArrayListGetLong(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, long) -# define ArrayListGetFloat(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, float) -# define ArrayListGetDouble(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, double) -# define ArrayListGetLgIndex(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, LgIndex_t) -# define ArrayListGetEntIndex(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, EntIndex_t) -# define ArrayListGetSmInteger(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, SmInteger_t) -# define ArrayListGetBoolean(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, Boolean_t) -# define ArrayListGetArbParam(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, ArbParam_t) -# define ArrayListGetUnsignedCharPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned char *) -# define ArrayListGetUnsignedShortPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned short *) -# define ArrayListGetUnsignedIntPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned int *) -# define ArrayListGetUnsignedLongPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, unsigned long *) -# define ArrayListGetInt64Ptr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, Int64_t *) -# define ArrayListGetCharPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, char *) -# define ArrayListGetShortPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, short *) -# define ArrayListGetIntPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, int *) -# define ArrayListGetLongPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, long *) -# define ArrayListGetFloatPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, float *) -# define ArrayListGetDoublePtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, double *) -# define ArrayListGetLgIndexPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, LgIndex_t *) -# define ArrayListGetEntIndexPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, EntIndex_t *) -# define ArrayListGetSmIntegerPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, SmInteger_t *) -# define ArrayListGetBooleanPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, Boolean_t *) -# define ArrayListGetArbParamPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, ArbParam_t *) -# define ArrayListGetVoidPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, void *) -# define ArrayListGetFunctionPtr(ArrayList, ItemOffset) ArrayListGetTypedItem(ArrayList, ItemOffset, (**)(void)) -#else -# define ArrayListGetInternalRef ArrayListGetInternalRef_FUNC -# define ArrayListGetItemInternalRef ArrayListGetItemInternalRef_FUNC -# define ArrayListGetCount ArrayListGetCount_FUNC - -# define ArrayListGetUnsignedChar(ArrayList, ItemOffset) (*((unsigned char *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedShort(ArrayList, ItemOffset) (*((unsigned short *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedInt(ArrayList, ItemOffset) (*((unsigned int *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedLong(ArrayList, ItemOffset) (*((unsigned long *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetInt64(ArrayList, ItemOffset) (*((Int64_t *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetChar(ArrayList, ItemOffset) (*((char *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetShort(ArrayList, ItemOffset) (*((short *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetInt(ArrayList, ItemOffset) (*((int *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetLong(ArrayList, ItemOffset) (*((long *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetFloat(ArrayList, ItemOffset) (*((float *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetDouble(ArrayList, ItemOffset) (*((double *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetLgIndex(ArrayList, ItemOffset) (*((LgIndex_t *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetEntIndex(ArrayList, ItemOffset) (*((EntIndex_t *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetSmInteger(ArrayList, ItemOffset) (*((SmInteger_t *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetBoolean(ArrayList, ItemOffset) (*((Boolean_t *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetArbParam(ArrayList, ItemOffset) (*((ArbParam_t *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedCharPtr(ArrayList, ItemOffset) (*((unsigned char * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedShortPtr(ArrayList, ItemOffset) (*((unsigned short * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedIntPtr(ArrayList, ItemOffset) (*((unsigned int * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetUnsignedLongPtr(ArrayList, ItemOffset) (*((unsigned long * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetInt64Ptr(ArrayList, ItemOffset) (*((Int64_t * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetCharPtr(ArrayList, ItemOffset) (*((char * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetShortPtr(ArrayList, ItemOffset) (*((short * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetIntPtr(ArrayList, ItemOffset) (*((int * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetLongPtr(ArrayList, ItemOffset) (*((long * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetFloatPtr(ArrayList, ItemOffset) (*((float * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetDoublePtr(ArrayList, ItemOffset) (*((double * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetLgIndexPtr(ArrayList, ItemOffset) (*((LgIndex_t * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetEntIndexPtr(ArrayList, ItemOffset) (*((EntIndex_t * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetSmIntegerPtr(ArrayList, ItemOffset) (*((SmInteger_t * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetBooleanPtr(ArrayList, ItemOffset) (*((Boolean_t * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetArbParamPtr(ArrayList, ItemOffset) (*((ArbParam_t * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetVoidPtr(ArrayList, ItemOffset) (*((void * *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -# define ArrayListGetFunctionPtr(ArrayList, ItemOffset) (*(((**)(void) *)ArrayListGetItemInternalRef_FUNC(ArrayList, ItemOffset))) -#endif - -#if !defined USE_MACROS_FOR_FUNCTIONS -EXTERN const void *ArrayListGetInternalRef_FUNC(ArrayList_pa ArrayList); -EXTERN const void *ArrayListGetItemInternalRef_FUNC(ArrayList_pa ArrayList, - LgIndex_t ItemOffset); -EXTERN LgIndex_t ArrayListGetCount_FUNC(ArrayList_pa ArrayList); -#endif - -#define ArrayListGetInternalRef_MACRO(ArrayList) ((const void *)((ArrayList)->Array)) -#define ArrayListGetItemInternalRef_MACRO(ArrayList, ItemOffset) ((const void *)&((ArrayList)->Array[(ItemOffset)*(ArrayList)->ItemSize])) -#define ArrayListGetCount_MACRO(ArrayList) ((ArrayList)->Count) -#define ArrayListGetTypedArrayRef(ArrayList, NativeType) ((NativeType *)((ArrayList)->Array)) -#define ArrayListGetTypedItem(ArrayList, ItemOffset, NativeType) (ArrayListGetTypedArrayRef(ArrayList,NativeType)[ItemOffset]) - -/** - * Simple macro to determine if the item offset is within the array list - * capacity. In the debug or checked builds we also perform a lower bound - * assertion check. - */ -#if defined NO_ASSERTS -# define ArrayListOffsetWithinCapacity(ArrayList, ItemOffset) ((ItemOffset) < (ArrayList)->Capacity) -#else -/** - * Using 'assert' rather than 'REQUIRE' because under Windows, REQUIRE (and ASSERT) trickles down to being a - * do-while loop, which doesn't jive well with the comma operator. - */ -# define ArrayListOffsetWithinCapacity(ArrayList, ItemOffset) ((assert((ItemOffset) >= 0),TRUE) && ((ItemOffset) < (ArrayList)->Capacity)) -#endif - -/** - * Places the item at the specified offset. If the offset is beyond the - * end of the list it is sized accordingly and the intervening items - * between the last item of the original state and the last item of the - * new state are guaranteed to be 0. - * - * This is the workhorse of the set and append convenience macros that follow. - * Please note that unlike ArrayListSetItem no destructor facility is provided - * therefore if an item previously occupied 'ItemOffset' it will be replaced. - * - * param ArrayList - * Array list target in which to set the item. - * param ItemOffset - * Offset of the item. - * param Item - * Item to set at the specified offset. Its native type must - * match 'NativeType' - * param NativeType - * Native type of 'Item'. - * - * return - * TRUE if sufficient memory permitted the operation, otherwise FALSE. - */ -#define ArrayListSetTypedItem(ArrayList, ItemOffset, Item, NativeType) \ - ((ArrayListOffsetWithinCapacity((ArrayList), (ItemOffset)) || \ - ArrayListEnlargeCapacity((ArrayList), (ItemOffset)+1)) \ - ? (((((NativeType *)((ArrayList)->Array))[(ItemOffset)]) = (Item)), \ - (((ItemOffset)+1 > (ArrayList)->Count) \ - ? (((ArrayList)->Count = (ItemOffset)+1), TRUE) \ - : (TRUE))) \ - : (FALSE)) - -/** - * This section provides macros for high speed setting and appending to an - * array list of a known type. The only additional overhead incurred versus just - * using a simple array is the cost of testing the array list capacity. - */ -#define ArrayListSetUnsignedChar(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned char) -#define ArrayListSetUnsignedShort(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned short) -#define ArrayListSetUnsignedInt(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned int) -#define ArrayListSetUnsignedLong(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned long) -#define ArrayListSetInt64(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, Int64_t) -#define ArrayListSetChar(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, char) -#define ArrayListSetShort(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, short) -#define ArrayListSetInt(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, int) -#define ArrayListSetLong(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, long) -#define ArrayListSetFloat(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, float) -#define ArrayListSetDouble(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, double) -#define ArrayListSetLgIndex(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, LgIndex_t) -#define ArrayListSetEntIndex(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, EntIndex_t) -#define ArrayListSetSmInteger(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, SmInteger_t) -#define ArrayListSetBoolean(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, Boolean_t) -#define ArrayListSetArbParam(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, ArbParam_t) -#define ArrayListSetUnsignedCharPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned char *) -#define ArrayListSetUnsignedShortPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned short *) -#define ArrayListSetUnsignedIntPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned int *) -#define ArrayListSetUnsignedLongPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, unsigned long *) -#define ArrayListSetInt64Ptr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, Int64_t *) -#define ArrayListSetCharPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, char *) -#define ArrayListSetShortPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, short *) -#define ArrayListSetIntPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, int *) -#define ArrayListSetLongPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, long *) -#define ArrayListSetFloatPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, float *) -#define ArrayListSetDoublePtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, double *) -#define ArrayListSetLgIndexPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, LgIndex_t *) -#define ArrayListSetEntIndexPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, EntIndex_t *) -#define ArrayListSetSmIntegerPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, SmInteger_t *) -#define ArrayListSetBooleanPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, Boolean_t *) -#define ArrayListSetArbParamPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, ArbParam_t *) -#define ArrayListSetVoidPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, void *) -#define ArrayListSetFunctionPtr(ArrayList, ItemOffset, Item) ArrayListSetTypedItem(ArrayList, ItemOffset, Item, (**)(void)) - -#define ArrayListAppendUnsignedChar(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned char) -#define ArrayListAppendUnsignedShort(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned short) -#define ArrayListAppendUnsignedInt(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned int) -#define ArrayListAppendUnsignedLong(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned long) -#define ArrayListAppendInt64(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, Int64_t) -#define ArrayListAppendChar(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, char) -#define ArrayListAppendShort(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, short) -#define ArrayListAppendInt(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, int) -#define ArrayListAppendLong(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, long) -#define ArrayListAppendFloat(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, float) -#define ArrayListAppendDouble(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, double) -#define ArrayListAppendLgIndex(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, LgIndex_t) -#define ArrayListAppendEntIndex(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, EntIndex_t) -#define ArrayListAppendSmInteger(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, SmInteger_t) -#define ArrayListAppendBoolean(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, Boolean_t) -#define ArrayListAppendArbParam(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, ArbParam_t) -#define ArrayListAppendUnsignedCharPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned char *) -#define ArrayListAppendUnsignedShortPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned short *) -#define ArrayListAppendUnsignedIntPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned int *) -#define ArrayListAppendUnsignedLongPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, unsigned long *) -#define ArrayListAppendInt64Ptr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, Int64_t *) -#define ArrayListAppendCharPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, char *) -#define ArrayListAppendShortPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, short *) -#define ArrayListAppendIntPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, int *) -#define ArrayListAppendLongPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, long *) -#define ArrayListAppendFloatPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, float *) -#define ArrayListAppendDoublePtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, double *) -#define ArrayListAppendLgIndexPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, LgIndex_t *) -#define ArrayListAppendEntIndexPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, EntIndex_t *) -#define ArrayListAppendSmIntegerPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, SmInteger_t *) -#define ArrayListAppendBooleanPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, Boolean_t *) -#define ArrayListAppendArbParamPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, ArbParam_t *) -#define ArrayListAppendVoidPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, void *) -#define ArrayListAppendFunctionPtr(ArrayList, Item) ArrayListSetTypedItem(ArrayList, (ArrayList)->Count, Item, (**)(void)) - -#endif /* ARRLIST_h */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/AUXDATA.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/AUXDATA.h deleted file mode 100644 index 27c4747a3d..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/AUXDATA.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* - ***************************************************************** - ***************************************************************** - ******* ******** - ****** Copyright (C) 1988-2008 Tecplot, Inc. ******* - ******* ******** - ***************************************************************** - ***************************************************************** - */ -#if !defined AUXDATA_h -#define AUXDATA_h - -#if defined EXTERN -# undef EXTERN -#endif -#if defined AUXDATAMODULE -# define EXTERN -#else -# define EXTERN extern -#endif - -/** - */ -EXTERN Boolean_t AuxDataIsValidNameChar(char Char, - Boolean_t IsLeadChar); -/** - */ -EXTERN Boolean_t AuxDataIsValidName(const char *Name); - -/** - */ -EXTERN AuxData_pa AuxDataAlloc(void); - -/** - */ -EXTERN void AuxDataDealloc(AuxData_pa *AuxData); - -/** - */ -EXTERN Boolean_t AuxDataItemDestructor(void *ItemRef, - ArbParam_t ClientData); -/** - */ -EXTERN AuxData_pa AuxDataCopy(AuxData_pa AuxData, - Boolean_t ConsiderRetain); - -/** - */ -EXTERN LgIndex_t AuxDataGetNumItems(AuxData_pa AuxData); - -/** - */ -EXTERN Boolean_t AuxDataGetItemIndex(AuxData_pa AuxData, - const char *Name, - LgIndex_t *ItemIndex); -/** - */ -EXTERN void AuxDataGetItemByIndex(AuxData_pa AuxData, - LgIndex_t Index, - const char **Name, - ArbParam_t *Value, - AuxDataType_e *Type, - Boolean_t *Retain); - -/** - */ -EXTERN Boolean_t AuxDataGetItemByName(AuxData_pa AuxData, - const char *Name, - ArbParam_t *Value, - AuxDataType_e *Type, - Boolean_t *Retain); - -/** - */ -EXTERN Boolean_t AuxDataGetBooleanItemByName(AuxData_pa AuxData, - const char *Name, - Boolean_t *Value, - AuxDataType_e *Type, - Boolean_t *Retain); - -/** - */ -EXTERN Boolean_t AuxDataSetItem(AuxData_pa AuxData, - const char *Name, - ArbParam_t Value, - AuxDataType_e Type, - Boolean_t Retain); - -/** - */ -EXTERN Boolean_t AuxDataDeleteItemByName(AuxData_pa AuxData, - const char *Name); - -/** - */ -EXTERN Boolean_t AuxDataAppendItems(AuxData_pa TargetAuxData, - AuxData_pa SourceAuxData); -/** - */ -EXTERN void AuxDataDeleteItemByIndex(AuxData_pa AuxData, - LgIndex_t Index); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -#endif /* !defined AUXDATA_h */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAIO.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAIO.h deleted file mode 100644 index c57df19edd..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAIO.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#if defined EXTERN -#undef EXTERN -#endif -#if defined DATAIOMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -EXTERN Boolean_t OpenBinaryFileAndCheckMagicNumber(FileStream_s **FileStream, - char *FName, - FileOffset_t StartOffset, - short *IVersion); - -EXTERN Boolean_t ReadDataFileHeader(FileStream_s *FileStream, - short IVersion, - Boolean_t ShowDataIOStatus, - EntIndex_t *NumZones, - EntIndex_t *NumVars, - SmInteger_t *NumCustomLabelSets, - char **DataSetTitle, - Text_s **BaseText, - Geom_s **BaseGeom, - StringList_pa **CustomLabelBase, - StringList_pa *UserRec, - AuxData_pa *DataSetAuxData, - Set_pa **IsVarCellCentered, - Boolean_t *HasText, - Boolean_t *HasGeoms, - ArrayList_pa *ZoneSpecList, - StringList_pa *VarNames, - ArrayList_pa *VarAuxDataList, /*[NumVars]*/ - Set_pa *IsRawFNAvailable, /* classic data only */ - LgIndex_t **FNNumBndryConns, /* classic data only */ - DataFileType_e *FileType); - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAIO4.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAIO4.h deleted file mode 100644 index 7e97dc98f6..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAIO4.h +++ /dev/null @@ -1,213 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#ifndef DATAIO4_H -#define DATAIO4_H -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#include - -#if defined EXTERN -#undef EXTERN -#endif -#if defined DATAIO4MODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -EXTERN double GetNextValue(FileStream_s *FileStream, - FieldDataType_e FieldDataType, - double Min, - double Max, - Boolean_t *IsOk); -EXTERN LgIndex_t GetNextI(FileStream_s *FileStream, - Boolean_t *IsOk); -EXTERN LgIndex_t GetIoFileInt(FileStream_s *FileStream, - short Version, - LgIndex_t Min, - LgIndex_t Max, - Boolean_t *IsOk); -EXTERN Boolean_t ReadInString(FileStream_s *FileStream, - short IVersion, - int MaxCharacters, - char **S, - Boolean_t ProcessData); -EXTERN void ReadByteBlock(FileStream_s *FileStream, - Boolean_t DoRead, - Byte_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk); -EXTERN void ReadInt16Block(FileStream_s *FileStream, - Boolean_t DoRead, - Int16_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk); -EXTERN void ReadInt16BlockToInt32(FileStream_s *FileStream, - Boolean_t DoRead, - Int32_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk); -EXTERN void ReadInt32Block(FileStream_s *FileStream, - Boolean_t DoRead, - Int32_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk); -EXTERN void ReadPureBlock(FileStream_s *FileStream, - Boolean_t DoRead, - void *Buffer, - FieldDataType_e FieldDataType, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk); -EXTERN void ReadBlock(FileStream_s *FileStream, - FieldData_pa FieldData, - Boolean_t DoRead, - FieldDataType_e FieldDataTypeInFile, - HgIndex_t StartIndex, - HgIndex_t EndIndex, - Boolean_t *IsOk); -EXTERN void ReadClassicOrderedCCBlock(FileStream_s *DataFileStream, - FieldData_pa FieldData, - FieldDataType_e FieldDataTypeInFile, - LgIndex_t NumIPtsInFile, - LgIndex_t NumJPtsInFile, - LgIndex_t NumKPtsInFile, - Boolean_t *IsOk); -EXTERN Boolean_t ReadInDataFileTypeTitleAndVarNames(FileStream_s *FileStream, - short IVersion, - char **DataSetTitle, - DataFileType_e *FileType, - int *NumVars, - StringList_pa *VarNames); -EXTERN Boolean_t ReadInZoneHeader(FileStream_s *FileStream, - short IVersion, - ZoneSpec_s *ZoneSpec, - Set_pa IsVarCellCentered, - EntIndex_t NumVars, - Boolean_t *IsRawFNAvailable, - LgIndex_t *FNNumBndryConns); -EXTERN Boolean_t ReadInCustomLabels(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - StringList_pa *CustomLabelBase); -EXTERN Boolean_t ReadInUserRec(FileStream_s *FileStream, - short IVersion, - int MaxCharactersAllowed, - char **UserRec); -EXTERN Boolean_t ReadInAuxData(FileStream_s *FileStream, - short IVersion, - AuxData_pa AuxData); -EXTERN Boolean_t ReadInGeometry(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - Geom_s *G, - LgIndex_t MaxDataPts); -EXTERN Boolean_t ReadInText(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - Text_s *T, - LgIndex_t MaxTextLen); -/* - * STDCALL since PreplotAsciiDatafile is sent to RegisterDataSetReader - * which can also be used by addons. - */ -EXTERN Boolean_t STDCALL PreplotAsciiDatafile(char *CurFName, - char *BinaryFName, - char **MessageString); -EXTERN short GetInputVersion(FileStream_s *FileStream); - -EXTERN Boolean_t WriteBinaryInt16BlockUnaligned(FileStream_s *FileStream, - Byte_t *Int16Values, - HgIndex_t NumValues, - Boolean_t ValuesInNativeOrdering); -EXTERN Boolean_t WriteBinaryInt32BlockUnaligned(FileStream_s *FileStream, - Byte_t *Int32Values, - HgIndex_t NumValues, - Boolean_t ValuesInNativeOrdering); -EXTERN Boolean_t WriteBinaryByteBlock(FileStream_s *FileStream, - const Byte_t *ByteValues, - const HgIndex_t NumValues); -EXTERN Boolean_t WriteBinaryInt16(FileStream_s *FileStream, - Int16_t Value); -EXTERN Boolean_t WriteBinaryInt32(FileStream_s *FileStream, - Int32_t Value); -EXTERN Boolean_t WriteBinaryReal(FileStream_s *FileStream, - double RR, - FieldDataType_e FieldDataType); -EXTERN Boolean_t WriteFieldDataType(FileStream_s *FileStream, - FieldDataType_e FDT, - Boolean_t WriteBinary); -EXTERN Boolean_t WriteBinaryFieldDataBlock(FileStream_s *FileStream, - FieldData_pa D, - LgIndex_t StartI, - LgIndex_t NumValues); -EXTERN Boolean_t WriteCCFieldDataBlock(FileStream_s *FileStream, - FieldData_pa FieldData, - Boolean_t IsOrderedData, - LgIndex_t NumIPts, - LgIndex_t NumJPts, - LgIndex_t NumKPts, - Boolean_t WriteBinary, - SmInteger_t AsciiPrecision); -EXTERN Boolean_t DumpDatafileString(FileStream_s *FileStream, - const char *S, - Boolean_t WriteBinary); -bool DumpGeometry(FileStream_s* FileStream, - Geom_s const* Geom, - Boolean_t WriteBinary, - Boolean_t WriteGridDataAsPolar); -bool DumpText(FileStream_s* FileStream, - Text_s const* Text, - Boolean_t WriteBinary, - Boolean_t WriteGridDataAsPolar); -EXTERN Boolean_t DumpCustomAxisLabels(FileStream_s *FileStream, - Boolean_t WriteBinary, - StringList_pa LabelBase); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -EXTERN Boolean_t WriteBinaryMagic(FileStream_s *FileStream); - -bool writeBinaryVersionNumber(FileStream_s& fileStream, - int versionNumber); - -#endif //DATAIO4_H diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASET.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASET.h deleted file mode 100644 index 89cc27ff9c..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASET.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#ifndef DATASET_h__ -#define DATASET_h__ - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - - -/* - * DataSet functions involving zones, vars and the - * DataSet_s structure. See dataset0.c for low level - * dataset functions and dataset2 for higher level - * functions. - */ - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined USE_MACROS_FOR_FUNCTIONS -#else -#endif -#endif /* TECPLOTKERNEL */ - -Boolean_t FieldDataItemDestructor(void *ItemRef, - ArbParam_t ClientData); -Boolean_t ZoneSpecItemDestructor(void *ItemRef, - ArbParam_t ClientData); -LgIndex_t ZoneOrVarListAdjustCapacityRequest(ArrayList_pa ZoneOrVarArrayList, - LgIndex_t CurrentCapacity, - LgIndex_t RequestedCapacity, - ArbParam_t ClientData); -void CleanoutZoneSpec(ZoneSpec_s *ZoneSpec); -void ZoneSpecExcludeBndryConnsFromMetrics(ZoneSpec_s* ZoneSpec); -ZoneSpec_s *ZoneSpecAlloc(void); -void ZoneSpecDealloc(ZoneSpec_s **ZoneSpec); -void SetZoneSpecDefaults(ZoneSpec_s *ZoneSpec); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined USE_MACROS_FOR_FUNCTIONS -#else -#endif -#endif - -#define GetZoneSpec(ZoneSpecList,Zone) ((ZoneSpec_s *)ArrayListGetVoidPtr(ZoneSpecList,Zone)) -#define GetZoneAuxData(DataSet, Zone) (GetZoneSpec((DataSet)->ZoneSpecList, (Zone))->AuxData) -#define GetVarSpec(VarSpecList,Var) ((VarSpec_s *)ArrayListGetVoidPtr(VarSpecList,Var)) -#define GetVarAuxData(DataSet, Var) (GetVarSpec((DataSet)->VarSpecList, (Var))->AuxData) -#define GetStrandInfo(StrandInfoList, StrandID) ((StrandInfo_s *)ArrayListGetVoidPtr(StrandInfoList,StrandID)) - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* defined TECPLOTKERNEL */ - -#endif // DATASET_h__ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASET0.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASET0.h deleted file mode 100644 index ee33773f30..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASET0.h +++ /dev/null @@ -1,404 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#if defined EXTERN -#undef EXTERN -#endif -#if defined DATASET0MODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -namespace tecplot -{ -namespace io -{ -class File; -} -} - -EXTERN void OutOfMemoryMsg(void); - -/* - * Turn on DEBUG_FIELDVALUES by default in any build with assertions on - * (including checked builds), but allow turning this off with - * NO_DEBUG_FIELDVALUES - */ -#if !defined NO_ASSERTS && !defined NO_DEBUG_FIELDVALUES && !defined DEBUG_FIELDVALUES -#define DEBUG_FIELDVALUES -#endif - -/* FieldData_a is intentionally not defined to further - * deter usage of this private structure */ -struct _FieldData_a -{ - void *Data; /* ...placed first in the structure for fastest access */ -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else - void *GetValueCallback[1]; /* ...this field is for TecIO only */ - void *SetValueCallback[1]; /* ...this field is for TecIO only */ -# endif - - /* PRIVATE */ - FieldDataType_e Type; - ValueLocation_e ValueLocation; - LgIndex_t RefCount; - LgIndex_t VarShareRefCount; - LgIndex_t NumValues; -# if defined TECPLOTKERNEL /* TecIO doesn't require these features yet. */ -/* CORE SOURCE CODE REMOVED */ -# endif -}; - - -/* * - * * NOTE: "FieldData_pa" here is an "abstract type". - * * Any routines dealing with the internals workings - * * of FieldData_pa must be in the same file as these - * * routines - * */ - -#if defined USE_MACROS_FOR_FUNCTIONS -#define USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -#endif - -/* - * These are low-level (private) FD manipulation functions. In - * most cases, you should use some higher-level function. These - * macros are supplied for the dataset functions to use. - */ -#if defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -#define GetFieldDataType GetFieldDataType_MACRO -#define GetFieldDataGetFunction GetFieldDataGetFunction_MACRO -#define GetFieldDataSetFunction GetFieldDataSetFunction_MACRO -#define GetFieldDataNumValues GetFieldDataNumValues_MACRO -#define GetFieldDataValueLocation GetFieldDataValueLocation_MACRO -#define IsFieldDataDirectAccessAllowed IsFieldDataDirectAccessAllowed_MACRO -#else -#define GetFieldDataType GetFieldDataType_FUNC -#define GetFieldDataGetFunction GetFieldDataGetFunction_FUNC -#define GetFieldDataSetFunction GetFieldDataSetFunction_FUNC -#define GetFieldDataNumValues GetFieldDataNumValues_FUNC -#define GetFieldDataValueLocation GetFieldDataValueLocation_FUNC -#define IsFieldDataDirectAccessAllowed IsFieldDataDirectAccessAllowed_FUNC -#endif - -#define GetFieldDataType_MACRO(FieldData) ((FieldData)->Type) -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else /* ...for TecIO only */ -#define GetFieldDataGetFunction_MACRO(FieldData) ((FieldValueGetFunction_pf)(FieldData)->GetValueCallback[0]) -#define GetFieldDataSetFunction_MACRO(FieldData) ((FieldValueSetFunction_pf)(FieldData)->SetValueCallback[0]) -#endif -#define GetFieldDataNumValues_MACRO(FieldData) ((FieldData)->NumValues) -#define GetFieldDataValueLocation_MACRO(FieldData) ((FieldData)->ValueLocation) - -EXTERN double STDCALL GetFieldValueForFloat(const FieldData_pa fd, LgIndex_t pt); -EXTERN double STDCALL GetFieldValueForDouble(const FieldData_pa fd, LgIndex_t pt); -EXTERN double STDCALL GetFieldValueForInt32(const FieldData_pa fd, LgIndex_t pt); -EXTERN double STDCALL GetFieldValueForInt16(const FieldData_pa fd, LgIndex_t pt); -EXTERN double STDCALL GetFieldValueForByte(const FieldData_pa fd, LgIndex_t pt); -EXTERN double STDCALL GetFieldValueForBit(const FieldData_pa fd, LgIndex_t pt); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else -#define IsFieldDataDirectAccessAllowed_MACRO(FieldData) ((FieldData)->Data != NULL) -#endif - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -EXTERN FieldDataType_e GetFieldDataType_FUNC(FieldData_pa FieldData); -EXTERN FieldValueGetFunction_pf GetFieldDataGetFunction_FUNC(FieldData_pa FieldData); -EXTERN FieldValueSetFunction_pf GetFieldDataSetFunction_FUNC(FieldData_pa FieldData); -EXTERN LgIndex_t GetFieldDataNumValues_FUNC(FieldData_pa FieldData); -EXTERN ValueLocation_e GetFieldDataValueLocation_FUNC(FieldData_pa FieldData); -EXTERN Boolean_t IsFieldDataDirectAccessAllowed_FUNC(FieldData_pa FieldData); -#endif - - -/* - * Use separate types for reversed byte data than unreversed data so we - * have better compiler checking. - */ -typedef UInt32_t FloatRev_t; -typedef UInt64_t DoubleRev_t; -typedef UInt16_t Int16Rev_t; -typedef UInt32_t Int32Rev_t; -typedef UInt64_t Int64Rev_t; - - -/* - * Note: there are so many GetFieldData*Ptr functions because we - * want a bunch of error checking. The Type and TypeRev check - * for that type. The Byte, 2Byte, etc. just make sure it is - * that type. - * GetFieldDataVoidPtr checks nothing, and thus should only be - * used with extreme caution (that is, checking the alignment - * and byte order by hand). - */ -#if defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -#define GetFieldDataFloatPtr GetFieldDataFloatPtr_MACRO -#define GetFieldDataFloatRevPtr GetFieldDataFloatRevPtr_MACRO -#define GetFieldDataDoublePtr GetFieldDataDoublePtr_MACRO -#define GetFieldDataDoubleRevPtr GetFieldDataDoubleRevPtr_MACRO -#define GetFieldDataInt64Ptr GetFieldDataInt64Ptr_MACRO -#define GetFieldDataInt64RevPtr GetFieldDataInt64RevPtr_MACRO -#define GetFieldDataInt32Ptr GetFieldDataInt32Ptr_MACRO -#define GetFieldDataInt32RevPtr GetFieldDataInt32RevPtr_MACRO -#define GetFieldDataInt16Ptr GetFieldDataInt16Ptr_MACRO -#define GetFieldDataInt16RevPtr GetFieldDataInt16RevPtr_MACRO -#define GetFieldDataBytePtr GetFieldDataBytePtr_MACRO -#define GetFieldData2BytePtr GetFieldData2BytePtr_MACRO -#define GetFieldData4BytePtr GetFieldData4BytePtr_MACRO -#define GetFieldData8BytePtr GetFieldData8BytePtr_MACRO -#define GetFieldDataVoidPtr GetFieldDataVoidPtr_MACRO /*danger:see above*/ -#else -#define GetFieldDataFloatPtr GetFieldDataFloatPtr_FUNC -#define GetFieldDataFloatRevPtr GetFieldDataFloatRevPtr_FUNC -#define GetFieldDataDoublePtr GetFieldDataDoublePtr_FUNC -#define GetFieldDataDoubleRevPtr GetFieldDataDoubleRevPtr_FUNC -#define GetFieldDataInt64Ptr GetFieldDataInt64Ptr_FUNC -#define GetFieldDataInt64RevPtr GetFieldDataInt64RevPtr_FUNC -#define GetFieldDataInt32Ptr GetFieldDataInt32Ptr_FUNC -#define GetFieldDataInt32RevPtr GetFieldDataInt32RevPtr_FUNC -#define GetFieldDataInt16Ptr GetFieldDataInt16Ptr_FUNC -#define GetFieldDataInt16RevPtr GetFieldDataInt16RevPtr_FUNC -#define GetFieldDataBytePtr GetFieldDataBytePtr_FUNC -#define GetFieldData2BytePtr GetFieldData2BytePtr_FUNC -#define GetFieldData4BytePtr GetFieldData4BytePtr_FUNC -#define GetFieldData8BytePtr GetFieldData8BytePtr_FUNC -#define GetFieldDataVoidPtr GetFieldDataVoidPtr_FUNC /*danger:see above*/ -#endif - -#define GetFieldDataFloatPtr_MACRO(FieldData) ((float *)((FieldData)->Data)) -#define GetFieldDataFloatRevPtr_MACRO(FieldData) ((FloatRev_t *)((FieldData)->Data)) -#define GetFieldDataDoublePtr_MACRO(FieldData) ((double *)((FieldData)->Data)) -#define GetFieldDataDoubleRevPtr_MACRO(FieldData) ((DoubleRev_t *)((FieldData)->Data)) -#define GetFieldDataInt64Ptr_MACRO(FieldData) ((Int64_t *)((FieldData)->Data)) -#define GetFieldDataInt64RevPtr_MACRO(FieldData) ((Int64Rev_t *)((FieldData)->Data)) -#define GetFieldDataInt32Ptr_MACRO(FieldData) ((Int32_t *)((FieldData)->Data)) -#define GetFieldDataInt32RevPtr_MACRO(FieldData) ((Int32Rev_t *)((FieldData)->Data)) -#define GetFieldDataInt16Ptr_MACRO(FieldData) ((Int16_t *)((FieldData)->Data)) -#define GetFieldDataInt16RevPtr_MACRO(FieldData) ((Int16Rev_t *)((FieldData)->Data)) -#define GetFieldDataBytePtr_MACRO(FieldData) ((Byte_t *)((FieldData)->Data)) -#define GetFieldData2BytePtr_MACRO(FieldData) ((UInt16_t *)((FieldData)->Data)) -#define GetFieldData4BytePtr_MACRO(FieldData) ((UInt32_t *)((FieldData)->Data)) -#define GetFieldData8BytePtr_MACRO(FieldData) ((UInt64_t *)((FieldData)->Data)) -#define GetFieldDataVoidPtr_MACRO(FieldData) ((void *)((FieldData)->Data)) /*danger:see above*/ - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -EXTERN float *GetFieldDataFloatPtr_FUNC(FieldData_pa fd); -EXTERN FloatRev_t *GetFieldDataFloatRevPtr_FUNC(FieldData_pa fd); -EXTERN double *GetFieldDataDoublePtr_FUNC(FieldData_pa fd); -EXTERN DoubleRev_t *GetFieldDataDoubleRevPtr_FUNC(FieldData_pa fd); -EXTERN Int64_t *GetFieldDataInt64Ptr_FUNC(FieldData_pa fd); -EXTERN Int64Rev_t *GetFieldDataInt64RevPtr_FUNC(FieldData_pa fd); -EXTERN Int32_t *GetFieldDataInt32Ptr_FUNC(FieldData_pa fd); -EXTERN Int32Rev_t *GetFieldDataInt32RevPtr_FUNC(FieldData_pa fd); -EXTERN Int16_t *GetFieldDataInt16Ptr_FUNC(FieldData_pa fd); -EXTERN Int16Rev_t *GetFieldDataInt16RevPtr_FUNC(FieldData_pa fd); -EXTERN Byte_t *GetFieldDataBytePtr_FUNC(FieldData_pa fd); -EXTERN UInt16_t *GetFieldData2BytePtr_FUNC(FieldData_pa fd); -EXTERN UInt32_t *GetFieldData4BytePtr_FUNC(FieldData_pa fd); -EXTERN UInt64_t *GetFieldData8BytePtr_FUNC(FieldData_pa fd); -EXTERN void *GetFieldDataVoidPtr_FUNC(FieldData_pa fd); /*danger:see above*/ -#endif - -/** - */ -EXTERN FieldData_pa AllocScratchNodalFieldDataPtr(LgIndex_t NumValues, - FieldDataType_e Type, - Boolean_t ShowErrMsg); - -/** - */ -EXTERN void DeallocScratchNodalFieldDataPtr(FieldData_pa *ScratchFieldData); - -/** - * Assume that indexrange has already been converted to the actual indices. - */ -EXTERN void CalcFieldDataMinMaxUsingRange(FieldData_pa field_data, - double *min_ptr, - double *max_ptr, - LgIndex_t startindex, - IndexRange_s *indexrange); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/** - */ -EXTERN void CopyTypedValueArray(FieldDataType_e ValueType, - void *DstArray, - LgIndex_t DstStart, - void *SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd); - -EXTERN void SwapBytesInTypedValueArray(FieldDataType_e ValueType, - void *SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd, - LgIndex_t SrcSkip); - -EXTERN void SwapBytesInUnalignedTypedValueArray(FieldDataType_e ValueType, - void *SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd, - LgIndex_t SrcSkip); - - -/* - * Copies values from "src" to "dst". "src" or "dst" may - * be differing types. Either or both may be V3D data pointers. - */ -EXTERN void CopyFieldDataRange(FieldData_pa dst, - LgIndex_t dst_start, - FieldData_pa src, - LgIndex_t src_start, - LgIndex_t src_end); /* -1 means last point */ - -/* - * Copy all values in field data - */ -EXTERN void CopyFieldData(FieldData_pa dst, - FieldData_pa src); - -/* - * Like CopyFieldData except for single value. - */ -EXTERN void CopyFieldValue(FieldData_pa dst, - LgIndex_t dstindex, - FieldData_pa src, - LgIndex_t srcindex); - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/* - * Sets all values in the field data pointer "field_data" - * to zero. - */ -EXTERN void SetFieldDataPtrToAllZeros(FieldData_pa field_data); - -/* - * GetFieldValue macro - */ -#if !defined GET_FIELD_VALUE_BY_VIRTUAL_FUNCTION && \ - !defined GET_FIELD_VALUE_BY_FLOAT_ONLY_MACRO && \ - !defined GET_FIELD_VALUE_BY_DOUBLE_ONLY_MACRO && \ - !defined GET_FIELD_VALUE_BY_FLOAT_AND_DOUBLE_MACRO -#if !defined NO_ASSERTS || defined DEBUG_FIELDVALUES -#define GET_FIELD_VALUE_BY_VIRTUAL_FUNCTION -#else -#define GET_FIELD_VALUE_BY_FLOAT_AND_DOUBLE_MACRO -#endif -#endif - -#if defined GET_FIELD_VALUE_BY_VIRTUAL_FUNCTION -#define GetFieldValue(fd,pt) ((GetFieldDataGetFunction(fd))((fd),(pt))) -#elif defined GET_FIELD_VALUE_BY_FLOAT_ONLY_MACRO -#define GetFieldValue(fd,pt) (GetFieldDataGetFunction(fd)==GetFieldValueForFloat \ - ?GetFieldDataFloatPtr(fd)[(pt)] \ - :(GetFieldDataGetFunction(fd))((fd),(pt))) -#elif defined GET_FIELD_VALUE_BY_DOUBLE_ONLY_MACRO -#define GetFieldValue(fd,pt) (GetFieldDataGetFunction(fd)==GetFieldValueForDouble \ - ?GetFieldDataDoublePtr(fd)[(pt)] \ - :(GetFieldDataGetFunction(fd))((fd),(pt))) -#elif defined GET_FIELD_VALUE_BY_FLOAT_AND_DOUBLE_MACRO -#define GetFieldValue(fd,pt) (GetFieldDataGetFunction(fd)==GetFieldValueForFloat \ - ?GetFieldDataFloatPtr(fd)[(pt)] \ - :GetFieldDataGetFunction(fd)==GetFieldValueForDouble \ - ?GetFieldDataDoublePtr(fd)[(pt)] \ - :(GetFieldDataGetFunction(fd))((fd),(pt))) -#else -#error "Need to define one of FIELD_VALUE_MACRO constants" -#endif - - -/* - * SetFieldValue macro - */ -#define SetFieldValue(fd,pt,val) ((GetFieldDataSetFunction(fd))((fd),(pt),(val))) - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -#if defined _DEBUG -#define USEFUNCTIONSFORNODEVALUES -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined NO_ASSERTS -#endif -#endif /* TECPLOTKERNEL */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASHR.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASHR.h deleted file mode 100644 index ea8b1d26d2..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATASHR.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#if defined EXTERN -#undef EXTERN -#endif -#if defined DATASHRMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -/* - * General set of macros for reference count mananagement. - */ -#define IncStructureReference(V) ((V)->RefCount++) -#define DecStructureReference(V) ((V)->RefCount--) -#define IsStructureShared(V) ((V)->RefCount > 1) -#define IsStructureReferenced(V) ((V)->RefCount > 0) - -/* - * Special set of macros for field data that is having variable sharing between - * zones tracked. Field data maintains two reference counts: The first, - * RefCount, is used to keep track of when the field data needs to be - * deallocated; the second, VarShareRefCount, is used to track variable sharing - * between zones. - */ -#define IncVarStructureReference(V) ((V)->VarShareRefCount++) -#define DecVarStructureReference(V) ((V)->VarShareRefCount--) -#define IsVarStructureShared(V) ((V)->VarShareRefCount > 1) -#define IsVarStructureReferenced(V) ((V)->VarShareRefCount > 0) - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAUTIL.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAUTIL.h deleted file mode 100644 index cf0195fffc..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/DATAUTIL.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* - * DATAUTIL.h : COPYRIGHT (C)1987-2002 Tecplot, Inc. - * ALL RIGHTS RESERVED - * - * NOTE: THIS MODULE NOW IS PART OF THE TECPLOT SOURCE - * ONLY EDIT THIS IN THE MAIN TECPLOT SOURCE DIRECTORY. - * - * - */ -#ifndef DATAUTIL_H -#define DATAUTIL_H -#define DATAUTIL_VERSION 61 - -#if defined MAKEARCHIVE -extern void InitInputSpecs(void); -#endif - - -/* - * - * Read a binary tecplot datafile. - * - * @param GetHeaderInfoOnly - * Return only the header info from the datafile. - * - * @param FName - * Name of the file to read. - * - * @param IVersion - * Returns version of the input file. - * - * @param DataSetTitle - * Allocates space for and returns dataset title. - * - * @param NumZones - * Returns the number of zones. - * - * @param NumVars - * Returns the number of variables. - * - * @param VarNames - * Allocates space for and returns the var names. - * - * @param ZoneNames - * Allocates space for and returns the zone names. - * - * @param NumPtsI, NumPtsJ, NumPtsK - * Zone dimensions loaded into LgIndex_t arrays. - * - * @param ZoneNames - * Zone types loaded into ZoneType_e array. - * - * @param UserRec - * Allocates space for and returns the user records. - * - * @param RawDataspaceAllocated - * Only used if GetHeaderInfoOnly is FALSE. TRUE = calling program has alloced space for - * the raw data. FALSE= let ReadTec allocate space for the raw data. - * - * @param NodeMap - * Finite Element connectivity information. ReadTec - * will allocate the space for you if RawDataspaceAllocated is FALSE. - * - * @param VDataBase - * Raw field data loaded into double arrays. ReadTec - * will allocate the space for you if RawDataspaceAllocated is - * FALSE. If RawDataspaceAllocated is TRUE then ReadTec will - * only load the arrays that have non NULL addresses. - * - */ -LIBFUNCTION Boolean_t STDCALL ReadTec(Boolean_t GetHeaderInfoOnly, - char *FName, - short *IVersion, - char **DataSetTitle, - EntIndex_t *NumZones, - EntIndex_t *NumVars, - StringList_pa *VarNames, - StringList_pa *ZoneNames, - LgIndex_t **NumPtsI, - LgIndex_t **NumPtsJ, - LgIndex_t **NumPtsK, - ZoneType_e **ZoneType, - StringList_pa *UserRec, - Boolean_t RawDataspaceAllocated, - NodeMap_t ***NodeMap, - double ***VDataBase); - -LIBFUNCTION void * STDCALL TecAlloc(size_t size); - -LIBFUNCTION void STDCALL TecFree(void *ptr); - - -#endif /* !DATAUTIL_H */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/FACE.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/FACE.h deleted file mode 100644 index c0c89a9b43..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/FACE.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -#ifndef _FACE_H_ -#define _FACE_H_ - -#if defined EXTERN -#undef EXTERN -#endif -#if defined FACEMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -namespace tecplot -{ -namespace kernel -{ -class SubElemValueProducerInterface; -} -} - - -/** - */ -inline Boolean_t IsCellFaceLogicallyCollapsed(LgIndex_t I1, - LgIndex_t I2, - LgIndex_t I3, - LgIndex_t I4) -{ - return ((I1 == I2 && I3 == I4) || - (I1 == I4 && I2 == I3) || - (I1 == I3) || - (I2 == I4)); -} - -/** - * IMPORTANT NOTE: - * A face obscuration of FaceObscuration_LogicallyObscured means that the - * face is entirely obscured by either an implicit neighbor for inside faces - * of ordered data or an auto generated neighbor for finite element data. In - * either case, logical obscuration is not considered if user defined - * neighbors have been specified for the face. Therefore, interior faces of - * ordered data can have an indication of FaceObscuration_PartiallyObscured. - */ -typedef enum -{ - FaceObscuration_NotObscured, - FaceObscuration_PartiallyObscured, - FaceObscuration_EntirelyObscured, - FaceObscuration_LogicallyObscured, - END_FaceObscuration_e, - FaceObscuration_Invalid = BadEnumValue -} FaceObscuration_e; - -/** - */ -EXTERN LgIndex_t GetLogicalOrderedNeighbor(LgIndex_t NumIPts, - LgIndex_t NumJPts, - LgIndex_t NumKPts, - LgIndex_t Element, - LgIndex_t Face); - -/** - * Function to determine a cell's neighbor. It calls FaceNeighborGetSurfaceCellNeighbor() - * for classic zones. - */ -EXTERN void GetSurfaceCellNeighbor(CZInfo_s const* CZInfo, - CZData_s const* CZData, - LgIndex_t SurfaceCellIndex, - tecplot::kernel::SubElemValueProducerInterface* NodeValueProducer, - ElemFaceOffset_t PlaneOrFaceOffset, - ElemFaceOffset_t Edge, - LgIndex_t* NeighborSurfaceCellElem, - EntIndex_t* NeighborSurfaceCellZone); -/** - */ -EXTERN FaceObscuration_e GetFaceObscuration(CZInfo_s const* CZInfo, - CZData_s const* CZData, - Set_pa ActiveRelevantZones, - LgIndex_t Element, - LgIndex_t FOffset, - Boolean_t ConsiderValueBlanking, - Boolean_t ConsiderIJKBlanking, - Boolean_t ConsiderDepthBlanking); - -EXTERN EntIndex_t GetNodesPerElementFace(ZoneType_e ZoneType); - -EXTERN EntIndex_t GetFacesPerElement(ZoneType_e ZoneType, - LgIndex_t IMax, - LgIndex_t JMax, - LgIndex_t KMax); - -EXTERN CollapsedStatus_e GetSurfaceCellCollapsedStatus(CZInfo_s const* CZInfo, - CZData_s const* CZData, - tecplot::kernel::SubElemValueProducerInterface* SubElemValueProducer); -EXTERN CollapsedStatus_e GetSurfaceCellCollapsedStatus(CZInfo_s const* CZInfo, - CZData_s const* CZData, - LgIndex_t I1, - LgIndex_t I2, - LgIndex_t I3, - LgIndex_t I4); -EXTERN CollapsedStatus_e GetSurfaceCellLogicalCollapsedStatus(ZoneType_e ZoneType, - LgIndex_t I1, - LgIndex_t I2, - LgIndex_t I3, - LgIndex_t I4); -EXTERN CollapsedStatus_e GetSurfEdgeOrVolFaceLogicalCollapsedStatus(NodeMap_pa NodeMap, - LgIndex_t Element, - EntIndex_t Face); -#if defined ALLOW_USERDEF_NO_NEIGHBORING_ELEMENT -/** - */ -EXTERN Boolean_t IsUserDefFaceNeighborBoundary(FaceNeighbor_pa FaceNeighbor, - LgIndex_t Element, - LgIndex_t Face); -#endif - -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/FILESTREAM.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/FILESTREAM.h deleted file mode 100644 index edb10ce253..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/FILESTREAM.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* - ***************************************************************** - ***************************************************************** - ******* ******** - ****** Copyright (C) 1988-2008 Tecplot, Inc. ******* - ******* ******** - ***************************************************************** - ***************************************************************** -*/ -#if !defined FILESTREAM_h -#define FILESTREAM_h - -#if defined EXTERN -# undef EXTERN -#endif -#if defined FILESTREAMMODULE -# define EXTERN -#else -# define EXTERN extern -#endif - -typedef struct -{ - FILE *File; - Boolean_t IsByteOrderNative; -} FileStream_s; - -/** - * Creates a structure for associating an open file stream with its byte - * order. The byte order can changed at any time. - * - * @param File - * Handle to a file which can be NULL. - * @param IsByteOrderNative - * TRUE if the file's byte order is native, FALSE if foreign. - * - * @return - * An allocated structure associating an open file to its byte order. - */ -EXTERN FileStream_s *FileStreamAlloc(FILE *File, - Boolean_t IsByteOrderNative); - -/** - * Deallocates the structure associating the file stream with the byte order. - * This function does NOT close the file. - * - * @param FileStream - * Pointer to an open file stream or a pointer to NULL. - */ -EXTERN void FileStreamDealloc(FileStream_s **FileStream); - -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GEOM.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GEOM.h deleted file mode 100644 index 092b92dfd2..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GEOM.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#if defined EXTERN -#undef EXTERN -#endif -#if defined GEOMMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - - -/* * macros for checking CoordSys_e * */ -#define VALID_RECTANGLE_COORDSYS(sys) \ - (((sys)==CoordSys_Frame) || \ - ((sys)==CoordSys_Grid)) -#define VALID_SQUARE_COORDSYS(sys) VALID_RECTANGLE_COORDSYS((sys)) -#define VALID_ELLIPSE_COORDSYS(sys) VALID_RECTANGLE_COORDSYS((sys)) -#define VALID_CIRCLE_COORDSYS(sys) VALID_ELLIPSE_COORDSYS((sys)) -#define VALID_IMAGE_COORDSYS(sys) VALID_RECTANGLE_COORDSYS((sys)) -#define VALID_LINESEG_COORDSYS(sys) \ - (((sys)==CoordSys_Frame) || \ - ((sys)==CoordSys_Grid) || \ - ((sys)==CoordSys_Grid3D)) -#define VALID_GEOM_COORDSYS(sys) \ - (((sys)==CoordSys_Frame) || \ - ((sys)==CoordSys_Grid) || \ - ((sys)==CoordSys_Grid3D)) - -#define VALID_GEOM_TYPE(geomtype) \ - ( VALID_ENUM((geomtype),GeomType_e) && \ - (geomtype)!=GeomType_LineSegs3D ) - -#define VALID_GEOM_FIELD_DATA_TYPE(datatype) \ - ( ( (datatype) == FieldDataType_Float ) || \ - ( (datatype) == FieldDataType_Double ) ) - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GEOM2.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GEOM2.h deleted file mode 100644 index 9dcd68acba..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GEOM2.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ -#if defined EXTERN -#undef EXTERN -#endif -#if defined GEOM2MODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -EXTERN FieldDataType_e GetGeomFieldDataType(Geom_s const* Geom); diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GLOBAL.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GLOBAL.h deleted file mode 100644 index 21e35a947c..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/GLOBAL.h +++ /dev/null @@ -1,7271 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* BEGINREMOVEFROMADDON */ -/* NOTE: All code contained between comments that look like - * BEGINREMOVEFROMADDON - * ENDREMOVEFROMADDON - * are pulled out to create the GLOBAL.h file used in addons. - */ -/* ENDREMOVEFROMADDON */ - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#ifndef _GLOBAL_H -#define _GLOBAL_H - -#if defined EXTERN -#undef EXTERN -#endif -#if defined Q_MAINMODULE && defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else -#define EXTERN extern -#endif - -#define EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/* BEGINREMOVEFROMADDON */ -/* - * The reason for wrapping this test with "begin and end remove from addon" key - * words is so that the ADK users doesn't have to see this mess. - */ -#if !defined COREAPI && \ - !defined TECUTILMMODULE && \ - !defined TECUTILOMODULE && \ - !defined TECUTILQMODULE && \ - !defined TECUTILSMODULE -/* we don't want Tecplot internals using deprecated interfaces */ -# undef EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -#endif -/* ENDREMOVEFROMADDON */ - - -/**************************************************************** - * * - * MACROS * - * * - ****************************************************************/ -#if defined TRUE -#undef TRUE -#endif -#if defined FALSE -#undef FALSE -#endif -#if defined MIN -#undef MIN -#endif -#if defined MAX -#undef MAX -#endif -#if defined ROUND -#undef ROUND -#endif -#if defined ROUND2 -#undef ROUND2 -#endif -#if defined TRUNC -#undef TRUNC -#endif - -#define TRUE ((Boolean_t)1) -#define FALSE ((Boolean_t)0) - -/**************************************************************** - * * - * MACROS * - * * - ****************************************************************/ -#define ABS(X) ((X) >= 0 ? (X) : -(X) ) -#define MAX(X,Y) ((X) > (Y) ? (X) : (Y) ) -#define MIN(X,Y) ((X) < (Y) ? (X) : (Y) ) -#define BESTSHOWCOLOR(X) ((X) == White_C ? Black_C : White_C) -#define ROUND_TO_BYTE(X) ((BYTE)((X)+0.499)) -#define ROUNDS(X) ((short)((X)+0.499)) -#define ROUNDL(X) ((LgIndex_t)((X)+0.499)) -#define ROUND2(X) ((X) >= 0 ? ((int)((X)+0.499)) : ((int)((X)-0.499))) -#define TRUNC(X) ((short) (X)) -#define RAD_TO_DEG(rad) (180.*(rad)/PI) -#define DEG_TO_RAD(deg) (PI*(deg)/180.) - -# define CAPITAL(C) ( ('a'<=(C)&&(C)<='z') ? ((C)+('A'-'a')) : (C) ) /* okay for UNICODE */ - -#include "TASSERT.h" - -#if defined TECPLOTKERNEL && defined MSWIN -/* CORE SOURCE CODE REMOVED */ -#else -#define ISEMPTYSTRING(S) ( ((const char*)(S))[0] == '\0' ) -#endif - -#define ISWHITESPACE(C) ((C == ' ') || (C == '\t') || (C == '\n')) -#define ISSEPARATOR(C) ((C == ' ') || (C == '\t') || (C == ',')) -/* clamp the input to the specified range */ -#define CLAMP(value,low,high) ((value)<(low) ? (low) : (value) > (high) ? (high) : (value)) -/* integer division rounds any fraction up (for example n=16,d=3 results in 6) */ -#define INTEGER_DIVIDE_AND_ROUND_UP(n, d) (((int)(n)+(int)(d)-1)/(int)(d)) - -/* BEGINREMOVEFROMADDON */ -/** - * Calcualtes the cell's primary corner or cell centered index from the I, J, - * and K indices. - * - * Consider this IJ zone dimensioned 4 by 3: - * @verbatim - +-------+-------+-------+-------+ - | | | | | - | <8> | <9> | <10> | <11> | <--- ghost cells - | | | | | - |8 |9 |10 |11 | - +-------+-------+-------+-------+ - | | | | | - | <4> | <5> | <6> | <7> | - | | | | | - |4 |5 |6 |7 | - +-------+-------+-------+-------+ - | | | | | - | <0> | <1> | <2> | <3> | - | | | | | - |0 |1 |2 |3 | - +-------+-------+-------+-------+ - . - /|\ - | - | - ghost cells -@endverbatim - */ -#define IJKINDEX(CZData,I,J,K) ((I) + \ - ((J)*(CZData)->NumIPts) + \ - ((K)*(CZData)->NumIJPts)) - -/** - * Calculates the I indice from the cell's primary corner or cell centered - * index. See IJKINDEX() for a picture. - */ -#define IINDEX(CZData,N) ((N) % (CZData)->NumIPts) - -/** - * Calculates the J indice from the cell's primary corner or cell centered - * index. See IJKINDEX() for a picture. - */ -#define JINDEX(CZData,N) (((N) % (CZData)->NumIJPts)/(CZData)->NumIPts) - -/** - * Calculates the K indice from the cell's primary corner or cell centered - * index. See IJKINDEX() for a picture. - */ -#define KINDEX(CZData,N) ((N)/(CZData)->NumIJPts) -/* ENDREMOVEFROMADDON */ - -/* */ -#define SWITCH(Type,A,B) do {Type T = (A); (A) = (B); (B) = T;} while (FALSE) -#define SWITCH_DOUBLES(A,B) SWITCH(double, (A), (B)) -#define FPRINTFOK(x) (Boolean_t)((x) > 0) -#define GRAPHICSARE3D(F) ((F->PlotType == PlotType_Cartesian3D)) - -/* convenience macros for implication, P -> Q, and equivalence, P <-> Q. */ -#define IMPLICATION(P,Q) (!(P) || (Q)) -#define EQUIVALENCE(P,Q) ((P) == (Q)) - -/* suppress compiler warnings about unused parameters */ -#if defined UNUSED -#undef UNUSED -#endif -#define UNUSED(param) (void)param - -/** - * Converts a double into a float value - * - * param val - * double value to be converted - */ -#define CONVERT_DOUBLE_TO_FLOAT(val) \ - ( (val) >= SMALLFLOAT \ - ? ( (val) < LARGEFLOAT \ - ? (float)(val) \ - : (float)LARGEFLOAT \ - ) \ - : ( (val) <= -SMALLFLOAT \ - ? ( (val) > -LARGEFLOAT \ - ? (float)(val) \ - : (float)-LARGEFLOAT \ - ) \ - : (float)0.0 \ - ) \ - ) - - -/** - * Clamps a double at the limits of Tecplot's precision - * - * param val - * double value to be clamped - */ -#define CLAMP_DOUBLE(val) \ - ( (val) >= SMALLDOUBLE \ - ? ( (val) < LARGEDOUBLE \ - ? (double)(val) \ - : (double)LARGEDOUBLE \ - ) \ - : ( (val) <= -SMALLDOUBLE \ - ? ( (val) > -LARGEDOUBLE \ - ? (double)(val) \ - : (double)-LARGEDOUBLE \ - ) \ - : (double)0.0 \ - ) \ - ) - - -/** - * Converts a double into a 4-byte (signed) integer value - * - * param val - * double value to be converted - */ -#define CONVERT_DOUBLE_TO_INT32(val) \ - ( (val) >= 1.0 \ - ? ( (val) < MAXINT32 \ - ? (Int32_t)(val) \ - : (Int32_t)MAXINT32 \ - ) \ - : ( (val) <= -1.0 \ - ? ( (val) > (Int32_t)-MAXINT32 \ - ? (Int32_t)(val) \ - : (Int32_t)-MAXINT32 \ - ) \ - : (Int32_t)0.0 \ - ) \ - ) - - -/** - * Converts a double into a 2-byte (signed) integer value - * - * param val - * double value to be converted - */ -#define CONVERT_DOUBLE_TO_INT16(val) \ - ( (val) >= 1.0 \ - ? ( (val) < MAXINT16 \ - ? (Int16_t)(val) \ - : (Int16_t)MAXINT16 \ - ) \ - : ( (val) <= -1.0 \ - ? ( (val) > (Int16_t)-MAXINT16 \ - ? (Int16_t)(val) \ - : (Int16_t)-MAXINT16 \ - ) \ - : (Int16_t)0.0 \ - ) \ - ) - -/** - * Copies two bytes from SrcBuffer to DstBuffer without causing a page - * fault due to misaligned words. - * - * param DstBuffer - * Pointer the buffer to send the two bytes to - * param SrcBuffer - * Pointer the buffer to get the two bytes from - */ -#define COPY_2_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \ - do { \ - /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \ - /* most likely single byte pointers into unaligned blocks of data */ \ - ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \ - ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \ - } while (FALSE) - -/** - * Copies two bytes from SrcBuffer to DstBuffer swapping the bytes - * as it copies. Will not cause a page fault due to misaligned words. - * - * param DstBuffer - * Pointer the buffer to send the two bytes to - * param SrcBuffer - * Pointer the buffer to get the two bytes from - */ -#define COPY_AND_REVERSE_2_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \ - do { \ - /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \ - /* most likely single byte pointers into unaligned blocks of data */ \ - ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[1]; \ - ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[0]; \ - } while (FALSE) - -/** - * Copies four bytes from SrcBuffer to DstBuffer without causing a page - * fault due to misaligned words. - * - * param DstBuffer - * Pointer the buffer to send the four bytes to - * param SrcBuffer - * Pointer the buffer to get the four bytes from - */ -#define COPY_4_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \ - do { \ - /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \ - /* most likely single byte pointers into unaligned blocks of data */ \ - ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \ - ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \ - ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[2]; \ - ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[3]; \ - } while (FALSE) - -/** - * Copies four bytes from SrcBuffer to DstBuffer swapping the bytes - * as it copies. Will not cause a page fault due to misaligned words. - * - * param DstBuffer - * Pointer the buffer to send the four bytes to - * param SrcBuffer - * Pointer the buffer to get the four bytes from - */ -#define COPY_AND_REVERSE_4_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \ - do { \ - /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \ - /* most likely single byte pointers into unaligned blocks of data */ \ - ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[3]; \ - ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[2]; \ - ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[1]; \ - ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[0]; \ - } while (FALSE) - -/** - * Copies four bytes from SrcBuffer to DstBuffer without causing a page - * fault due to misaligned words. - * - * param DstBuffer - * Pointer the buffer to send the four bytes to - * param SrcBuffer - * Pointer the buffer to get the four bytes from - */ -#define COPY_8_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \ - do { \ - /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \ - /* most likely single byte pointers into unaligned blocks of data */ \ - ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[0]; \ - ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[1]; \ - ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[2]; \ - ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[3]; \ - ((Byte_t *)(DstBuffer))[4] = ((Byte_t *)(SrcBuffer))[4]; \ - ((Byte_t *)(DstBuffer))[5] = ((Byte_t *)(SrcBuffer))[5]; \ - ((Byte_t *)(DstBuffer))[6] = ((Byte_t *)(SrcBuffer))[6]; \ - ((Byte_t *)(DstBuffer))[7] = ((Byte_t *)(SrcBuffer))[7]; \ - } while (FALSE) - -/** - * Copies eight bytes from SrcBuffer to DstBuffer swapping the bytes - * as it copies. Will not cause a page fault due to misaligned words. - * - * param DstBuffer - * Pointer the buffer to send the four bytes to - * param SrcBuffer - * Pointer the buffer to get the four bytes from - */ -#define COPY_AND_REVERSE_8_UNALIGNED_BYTES(DstBuffer, SrcBuffer) \ - do { \ - /* cannot check sizeof(SrcBuffer) or sizeof(DstBuffer) because they are */ \ - /* most likely single byte pointers into unaligned blocks of data */ \ - ((Byte_t *)(DstBuffer))[0] = ((Byte_t *)(SrcBuffer))[7]; \ - ((Byte_t *)(DstBuffer))[1] = ((Byte_t *)(SrcBuffer))[6]; \ - ((Byte_t *)(DstBuffer))[2] = ((Byte_t *)(SrcBuffer))[5]; \ - ((Byte_t *)(DstBuffer))[3] = ((Byte_t *)(SrcBuffer))[4]; \ - ((Byte_t *)(DstBuffer))[4] = ((Byte_t *)(SrcBuffer))[3]; \ - ((Byte_t *)(DstBuffer))[5] = ((Byte_t *)(SrcBuffer))[2]; \ - ((Byte_t *)(DstBuffer))[6] = ((Byte_t *)(SrcBuffer))[1]; \ - ((Byte_t *)(DstBuffer))[7] = ((Byte_t *)(SrcBuffer))[0]; \ - } while (FALSE) - -/** - * Reverses the byte order of the specified 2 byte buffer. - * - * param Buffer - * Pointer to the 2 bytes needing byte order reversal. - */ -#define REVERSE_2_BYTES_1_AT_A_TIME(Buffer) \ - do { \ - Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==2); \ - ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[1]; \ - ((Byte_t *)(Buffer))[1] = Byte0; \ - } while (FALSE) - -#define REVERSE_2_BYTES_2_AT_A_TIME(Buffer) \ - do { \ - UInt16_t data_bits = ((UInt16_t *)(Buffer))[0]; \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==2); \ - ((UInt16_t *)(Buffer))[0] = (((data_bits)<<8) | \ - ((data_bits&0xff))); \ - } while (FALSE) - -/* REVERSE_2_BYTES_2_AT_A_TIME may actually be slower, needs testing. */ -#define REVERSE_2_BYTES REVERSE_2_BYTES_1_AT_A_TIME - -/** - * Reverses the byte order of the specified 4 byte buffer. - * - * param Buffer - * Pointer to the 4 bytes needing byte order reversal. - * - * How this works: - * - * ABCD - * D--- <<24 (1) - * - * ABCD - * --C- &0x0000ff00 - * -C-- <<8 (2) - * - * ABCD - * -B-- &0x00ff0000 - * --B- >>8 (3) - * - * ABCD - * ---A >>24 (4) - * - * (1) | (2) | (3) | (4) = DCBA. - * - */ -#define REVERSE_4_BYTES_1_AT_A_TIME(Buffer) \ - do { \ - Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \ - Byte_t Byte1 = ((Byte_t *)(Buffer))[1]; \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==4); \ - ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[3]; \ - ((Byte_t *)(Buffer))[1] = ((Byte_t *)(Buffer))[2]; \ - ((Byte_t *)(Buffer))[2] = Byte1; \ - ((Byte_t *)(Buffer))[3] = Byte0; \ - } while (FALSE) - -#define REVERSE_4_BYTES_4_AT_A_TIME(Buffer) \ - do { \ - UInt32_t data_bits = *((UInt32_t *)(Buffer)); \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==4); \ - *((UInt32_t *)(Buffer)) = (((data_bits)<<24) | \ - ((data_bits&0x0000ff00)<<8) | \ - ((data_bits&0x00ff0000)>>8) | \ - ((data_bits)>>24)); \ - } while (FALSE) - -#if defined MSWIN -/* - * The DevStuido compiler seems to be the only one that can truly handle this - * when optimization is turned on. - */ -#define REVERSE_4_BYTES REVERSE_4_BYTES_4_AT_A_TIME -#else -#define REVERSE_4_BYTES REVERSE_4_BYTES_1_AT_A_TIME -#endif - -/** - * Reverses the byte order of the specified 8 byte buffer. - * - * param Buffer - * Pointer to the 8 bytes needing byte order reversal. - */ -#define REVERSE_8_BYTES_1_AT_A_TIME(Buffer) \ - do { \ - Byte_t Byte0 = ((Byte_t *)(Buffer))[0]; \ - Byte_t Byte1 = ((Byte_t *)(Buffer))[1]; \ - Byte_t Byte2 = ((Byte_t *)(Buffer))[2]; \ - Byte_t Byte3 = ((Byte_t *)(Buffer))[3]; \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \ - ((Byte_t *)(Buffer))[0] = ((Byte_t *)(Buffer))[7]; \ - ((Byte_t *)(Buffer))[1] = ((Byte_t *)(Buffer))[6]; \ - ((Byte_t *)(Buffer))[2] = ((Byte_t *)(Buffer))[5]; \ - ((Byte_t *)(Buffer))[3] = ((Byte_t *)(Buffer))[4]; \ - ((Byte_t *)(Buffer))[4] = Byte3; \ - ((Byte_t *)(Buffer))[5] = Byte2; \ - ((Byte_t *)(Buffer))[6] = Byte1; \ - ((Byte_t *)(Buffer))[7] = Byte0; \ - } while (FALSE) - -#define REVERSE_8_BYTES_2_AT_A_TIME(Buffer) \ - do { \ - UInt16_t data_bits_0 = ((UInt16_t *)(Buffer))[0]; \ - UInt16_t data_bits_1 = ((UInt16_t *)(Buffer))[1]; \ - UInt16_t data_bits_2 = ((UInt16_t *)(Buffer))[2]; \ - UInt16_t data_bits_3 = ((UInt16_t *)(Buffer))[3]; \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \ - ((UInt16_t *)(Buffer))[0] = (((data_bits_3)<<8) | \ - ((data_bits_3&0xff))); \ - ((UInt16_t *)(Buffer))[1] = (((data_bits_2)<<8) | \ - ((data_bits_2&0xff))); \ - ((UInt16_t *)(Buffer))[2] = (((data_bits_1)<<8) | \ - ((data_bits_1&0xff))); \ - ((UInt16_t *)(Buffer))[3] = (((data_bits_0)<<8) | \ - ((data_bits_0&0xff))); \ - } while (FALSE) - -#define REVERSE_8_BYTES_4_AT_A_TIME(Buffer) \ - do { \ - UInt32_t data_bits_0 = ((UInt32_t *)(Buffer))[0]; \ - UInt32_t data_bits_1 = ((UInt32_t *)(Buffer))[1]; \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \ - ((UInt32_t *)(Buffer))[0] = (((data_bits_1)<<24) | \ - ((data_bits_1&0x0000ff00)<<8) | \ - ((data_bits_1&0x00ff0000)>>8) | \ - ((data_bits_1)>>24)); \ - ((UInt32_t *)(Buffer))[1] = (((data_bits_0)<<24) | \ - ((data_bits_0&0x0000ff00)<<8) | \ - ((data_bits_0&0x00ff0000)>>8) | \ - ((data_bits_0)>>24)); \ - } while (FALSE) - -#define REVERSE_8_BYTES_8_AT_A_TIME(Buffer) \ - do { \ - UInt64_t data_bits = *((UInt64_t *)(Buffer)); \ - CHECK(sizeof(*(Buffer))==1 || sizeof(*(Buffer))==8); \ - *((UInt64_t *)(Buffer)) = (((data_bits)<<56) | \ - ((data_bits&0x000000000000ff00)<<40) | \ - ((data_bits&0x0000000000ff0000)<<24) | \ - ((data_bits&0x00000000ff000000)<<8) | \ - ((data_bits&0x000000ff00000000)>>8) | \ - ((data_bits&0x0000ff0000000000)>>24) | \ - ((data_bits&0x00ff000000000000)>>40) | \ - ((data_bits)>>56)); \ - } while (FALSE) - - -#if defined MSWIN -/* - * The DevStuido compiler seems to be the only one that can truly handle this - * when optimization is turned on. - */ -#define REVERSE_8_BYTES REVERSE_8_BYTES_4_AT_A_TIME -#else -#define REVERSE_8_BYTES REVERSE_8_BYTES_1_AT_A_TIME -#endif - - -/**************************************************************** - * * - * ADD-ON MSWIN IMPORT/EXPORT DEFINITIONS * - * * - ****************************************************************/ -#if defined MSWIN -# define STDCALL __stdcall -#else -# define STDCALL -#endif /* MSWIN */ - -#if defined (__cplusplus) -# define EXTERNC extern "C" -#else -# define EXTERNC -#endif /* __cplusplus */ - -#if defined MSWIN -#if defined AMTEC_INTERNAL_MAKELIBTEC || defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else -# define TECPLOT_DLLAPI _declspec ( dllimport ) -# endif -#else -# define TECPLOT_DLLAPI -#endif - -#define LINKTOADDON EXTERNC TECPLOT_DLLAPI - - -/* - * - * Usage: - * EXPORTFROMADDON void STDCALL InitTecAddOn(void) { ... } - * - */ -#if defined MSWIN -# define EXPORTFROMADDON EXTERNC _declspec ( dllexport ) -#else -# define EXPORTFROMADDON EXTERNC -#endif /* MSWIN */ - -#define EXPORTFROMDLL EXPORTFROMADDON - -#define InitTecAddOn InitTecAddOn113 -#define TEC_INIT_FUNCTION_NAME "InitTecAddOn113" - -/* BEGINREMOVEFROMADDON */ -/* Use INLINE for static functions that could be optimized as inline. */ -#if defined (__cplusplus) && !defined _DEBUG -# define INLINE inline -#else -# define INLINE static -#endif /* __cplusplus */ -/* ENDREMOVEFROMADDON */ - - -/* BEGINREMOVEFROMADDON */ -#if defined (MSWIN) ||\ - defined (INTERX) ||\ - defined (LINUX) ||\ - defined (SUNSOLARIS86X) ||\ - defined (COMPAQALPHA) ||\ - defined (DEC) ||\ - defined (__LITTLE_ENDIAN__) -#define MACHINE_DOES_INTEL_ORDER -#endif - -#if defined( MACHINE_DOES_INTEL_ORDER ) -# define SwapBytes(IntelOrder) (!(IntelOrder)) -#else -# define SwapBytes(IntelOrder) (IntelOrder) -#endif -/* ENDREMOVEFROMADDON */ - -#if defined DECALPHA || \ - defined LINUXALPHA || \ - defined LINUXI64 || \ - defined LINUX64 || \ - defined MAC64 || \ - defined COMPAQALPHA -#define LONGIS64 -#endif - -/**************************************************************** - * * - * HARD CONSTANTS * - * * - ****************************************************************/ -#define LARGEMEMORY ((size_t)-1) - -/* BEGINREMOVEFROMADDON */ -/* Tclinterp add-on barfs on these huge integer constants */ -/* Note: Tecplot is conservative by one on LARGEINTs max */ -#define LARGEINT64 9223372036854775806LL -/* ENDREMOVEFROMADDON */ -#define LARGEINT32 2147483646 -#define LARGEINT16 32766 -#define LARGEINT8 126 - -/* BEGINREMOVEFROMADDON */ -#define LARGEUINT64 18446744073709551614ULL -/* ENDREMOVEFROMADDON */ -#define LARGEUINT32 4294967294 -#define LARGEUINT16 65534 -#define LARGEUINT8 254 - -#ifdef INDEX_16_BIT -#define MAXINDEX ((LgIndex_t)LARGEINT16) -#else -#define MAXINDEX ((LgIndex_t)LARGEINT32) -#endif -#define MAXZONEMAP MAXINDEX -#define LARGEDOUBLE 1.0e+150 -#define SMALLDOUBLE 1.0e-150 -#define LARGESTEXPONENT 150 -#define SMALLESTEXPONENT -150 - -#define SMALLESTDOUBLE SMALLDOUBLE - -#define LARGESTDOUBLEEXPONENT 308 -#define SMALLESTDOUBLEEXPONENT -307 -#define LARGESTDOUBLE 1.0e+308 -#define LARGEFLOAT 3.40282347E+38 -#define SMALLFLOAT 1.17549435E-38 -#define SMALLSTDOUBLE 1.0e-307 - -/* Visual Studio 2008 defines MAXINT32, MAXINT16 which collide with ours */ -#if defined MAXINT32 -#undef MAXINT32 -#endif -#if defined MAXINT16 -#undef MAXINT16 -#endif - -#define MAXINT32 LARGEINT32 -#define MAXINT16 LARGEINT16 -#define ETX 3 -#define LN2 0.69314718055994530942 -#define LN10 2.30258509299404568402 -#define PIOVER2 1.57079632679489661923 -#define TWOPI 6.28318530717958647692 -#if defined PI -#undef PI -#endif -#define PI 3.14159265358979323846 -#define ANGLEEPSILON 1.0e-10 -#define LARGESTANGLE (4*PI+ANGLEEPSILON) -#define DEGPERRADIANS 57.295779513082323 -#define CMPERINCH 2.54 -#define POINTSPERINCH 72.0 -#define FONTMOVEMARK 192 -#define FONTDECISIONMARK 128 -#define FONTLINEMARK 64 -#define BAD_SET_VALUE ((SetIndex_t)-1) -#define MENU_POSITION_FIRST (0) -#define MENU_POSITION_LAST (-1) -#define INVALID_UNIQUE_ID 0 - -#define BADSETVALUE BAD_SET_VALUE -#define SOLID_TRANSLUCENCY 0 -#define BAD_DISTANCE (-1.0) -/* MIN_CIRCUMFERENTIAL_INDEX is the min J dimension for circular zones */ -#define MIN_CIRCUMFERENTIAL_INDEX 4 - -#define VALID_STRAND_ID(StrandID) (0 <= (StrandID) && (StrandID) < MAXZONEMAP) -#define STRAND_ID_STATIC (-1) -#define STRAND_ID_PENDING (-2) - -/* - * Need 3 passes for "Rest of pie" method but can only use 3 clip planes - * Need only 1 pass for "Piece of pie" method and can use 6 clip planes -*/ -#define MAX_ALLOWABLE_CLIPPASSES 1 -#define MAX_ALLOWABLE_CLIPPLANES 6 - -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined _DEBUG -#else -#endif -#if 0 /* NOTUSED */ -#endif -#endif /* TECPLOTKERNEL */ -/* ENDREMOVEFROMADDON */ - - -/* - * NOTE: If you change TecplotBinaryFileVersion, you MUST also: - * - * 1. Update preplot: - * - Change this define symbol in preplot.cpp - * - Change version number in the data file format in the comments in preplot.cpp - * - Change the version number of Preplot itself in preplot.cpp - * 2. Maintain the ability to write the old plt file format: - * - Add a new entry to BinaryFileVersion_e - * - Add a concrete class of the VersionWriterInterface, and update - * VersionWriterAbstractFactory to return the correct instance for the previous and - * new BinaryFileVersion_e - * - Abstract away the difference in the two versions behind an interface (if one does - * not yet exist) and create concrete implementations that can write the old and the - * new versions. For a trivial example of this, see FileTypeWriterInterface and its - * associated factory and concrete classes. - */ -#define TecplotBinaryFileVersion 112 -#define TecplotInterfaceVersion 120 -#define TecplotInterfaceVersionStr "120" /* stay in lockstep with TecplotInterfaceVersion */ -#if defined FLEXLM -#define TecplotLicenseVersion 119 /* may vary from TecplotInterfaceVersion */ -#define TecplotLicenseVersionStr "11.9" /* stay in lockstep with TecplotLicenseVersion */ -#else /* FLEXLM */ -#define TecplotLicenseVersion 120 /* may vary from TecplotInterfaceVersion */ -#define TecplotLicenseVersionStr "12.0" /* stay in lockstep with TecplotLicenseVersion */ -#endif /* FLEXLM */ -/* Also change the macro version number in COMMAND.MASTER.h */ - -#define MaxNumZonesOrVars MAXZONEMAP -#define MaxXAxes 5 -#define MaxYAxes 5 -#define MaxGeoSegments 50 -#define MaxPtsCircleOrEllipse 720 -#define MaxFrames 2048 -#define MaxCustomLabelSets 10 -#define MaxFontMoves 20000 -#define MaxColorMapOverrides 16 -#define MaxValueBlankConstraints 8 -#define MaxContourGroups 8 -#define MaxIsoSurfaceGroups 8 -#define MaxSliceGroups 8 - -#define MaxColorMapGroups 8 -#define DefaultNumContLevels 15 - - -#define DefaultColorMapGroup ((SmInteger_t)0) -#define BADGROUPNUMBER ((SmInteger_t)-1) -#define UNUSEDGROUPNUMBER ((SmInteger_t)0) - -#define VALID_ISOSURFACE_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxIsoSurfaceGroups))) -#define VALID_SLICE_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxSliceGroups))) -#define VALID_COLORMAP_GROUP(Group) (((((SmInteger_t)Group) >= 0) && (((SmInteger_t)Group) < MaxColorMapGroups))) - - - -/* - * If any of these values changes its corresponding value in preplot.c must - * change to match it so that files created by preplot and Tecplot are - * consistent. - */ -#define MaxChrsDatasetTitle 256 -#define MaxChrsZnTitle 128 -#define MaxChrsVarName 128 -#define MaxChrsZnOrVarName 128 -/* currently limited to MaxLineIndex in preplot.c */ -#define MaxChrsAuxValueString 32000 - -#define MaxNumViews 16 -#define MaxBasicSizes 5 -#define MaxColorMapControlPoints 50 -#define MaxRawColorMapEntries 800 -#define MaxDataSetReaders 100 -#define MaxExtendedCurveFits 100 -#define MaxColorMapCycles 20 - - -/* Dimension Limits */ - -#define MinPaperDimInWorkArea 0.5 -#define MinFrameWidth 0.25 -#define MinFrameHeight 0.25 -#define MinAxisLength 0.1 - - -#define BadEnumValue 255 - -/* BEGINREMOVEFROMADDON */ -/* define class element limits */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -/* ENDREMOVEFROMADDON */ - -/* - * Floating point values are written to layouts with a certain precision. - * A high precision is necessary in some cases (like streamtrace starting locations) - * This used to be set to 12 which was not high enough. It is now set to 16 which - * appears to be sufficient. This also seems to jive with the number of digits of - * precision that are found in "ieee double precision" values which is 53 bits or - * equivalent to approximately 16 digits. -bdp - * - */ -#define STYLE_FLOAT_PRECISION 16 - - -/* - * Auxiliary data common names. - * - * Define Name Data Name Data Type Data Location - * ------------------------------------------ ------------------------------------ --------- ------------- - */ -#define AuxData_Common_Incompressible "Common.Incompressible" /* Boolean_t Dataset */ -#define AuxData_Common_Density "Common.Density" /* double Dataset */ -#define AuxData_Common_SpecificHeat "Common.SpecificHeat" /* double Dataset */ -#define AuxData_Common_SpecificHeatVar "Common.SpecificHeatVar" /* int Dataset */ -#define AuxData_Common_GasConstant "Common.GasConstant" /* double Dataset */ -#define AuxData_Common_GasConstantVar "Common.GasConstantVar" /* int Dataset */ -#define AuxData_Common_Gamma "Common.Gamma" /* double Dataset */ -#define AuxData_Common_GammaVar "Common.GammaVar" /* int Dataset */ -#define AuxData_Common_Viscosity "Common.Viscosity" /* double Dataset */ -#define AuxData_Common_ViscosityVar "Common.ViscosityVar" /* int Dataset */ -#define AuxData_Common_Conductivity "Common.Conductivity" /* double Dataset */ -#define AuxData_Common_ConductivityVar "Common.ConductivityVar" /* int Dataset */ -#define AuxData_Common_AngleOfAttack "Common.AngleOfAttack" /* double Dataset */ -#define AuxData_Common_SpeedOfSound "Common.SpeedOfSound" /* double Dataset */ -#define AuxData_Common_ReferenceU "Common.ReferenceU" /* double Dataset */ -#define AuxData_Common_ReferenceV "Common.ReferenceV" /* double Dataset */ -#define AuxData_Common_XVar "Common.XVar" /* int Dataset */ -#define AuxData_Common_YVar "Common.YVar" /* int Dataset */ -#define AuxData_Common_ZVar "Common.ZVar" /* int Dataset */ -#define AuxData_Common_CVar "Common.CVar" /* int Dataset */ -#define AuxData_Common_UVar "Common.UVar" /* int Dataset */ -#define AuxData_Common_VVar "Common.VVar" /* int Dataset */ -#define AuxData_Common_WVar "Common.WVar" /* int Dataset */ -#define AuxData_Common_VectorVarsAreVelocity "Common.VectorVarsAreVelocity" /* Boolean_t Dataset */ -#define AuxData_Common_PressureVar "Common.PressureVar" /* int Dataset */ -#define AuxData_Common_TemperatureVar "Common.TemperatureVar" /* int Dataset */ -#define AuxData_Common_DensityVar "Common.DensityVar" /* int Dataset */ -#define AuxData_Common_StagnationEnergyVar "Common.StagnationEnergyVar" /* int Dataset */ -#define AuxData_Common_MachNumberVar "Common.MachNumberVar" /* int Dataset */ -#define AuxData_Common_ReferenceMachNumber "Common.ReferenceMachNumber" /* double Dataset */ -#define AuxData_Common_ReferenceW "Common.ReferenceW" /* double Dataset */ -#define AuxData_Common_PrandtlNumber "Common.PrandtlNumber" /* double DataSet */ -#define AuxData_Common_Axisymmetric "Common.Axisymmetric" /* Boolean_t Dataset */ -#define AuxData_Common_AxisOfSymmetryVarAssignment "Common.AxisOfSymmetryVarAssignment" /* int Dataset */ -#define AuxData_Common_AxisValue "Common.AxisValue" /* double Dataset */ -#define AuxData_Common_SteadyState "Common.SteadyState" /* Boolean_t Dataset */ -#define AuxData_Common_TurbulentKineticEnergyVar "Common.TurbulentKineticEnergyVar" /* int Dataset */ -#define AuxData_Common_TurbulentDissipationRateVar "Common.TurbulentDissipationRateVar" /* int Dataset */ -#define AuxData_Common_TurbulentViscosityVar "Common.TurbulentViscosityVar" /* int Dataset */ -#define AuxData_Common_TurbulentFrequencyVar "Common.TurbulentFrequencyVar" /* int Dataset */ -#define AuxData_Common_Gravity "Common.Gravity" /* double Dataset */ -#define AuxData_Common_IsBoundaryZone "Common.IsBoundaryZone" /* Boolean_t Zone */ -#define AuxData_Common_BoundaryCondition "Common.BoundaryCondition" /* BCondition Zone */ -#define AuxData_Common_Time "Common.Time" /* double Zone */ -#define AuxData_Common_Mean "Common.Mean" /* double Variable */ -#define AuxData_Common_Median "Common.Median" /* double Variable */ -#define AuxData_Common_Variance "Common.Variance" /* double Variable */ -#define AuxData_Common_StdDev "Common.StdDev" /* double Variable */ -#define AuxData_Common_AvgDev "Common.AvgDev" /* double Variable */ -#define AuxData_Common_GeoMean "Common.GeoMean" /* double Variable */ -#define AuxData_Common_ChiSqre "Common.ChiSqre" /* double Variable */ - - - - - - - -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined THREED -#endif -#endif /* TECPLOTKERNEL */ -/* ENDREMOVEFROMADDON */ - -/* Tecplot Add-on Custom Products */ - -/* BEGINREMOVEFROMADDON */ -/* In activeX, the color constants are an enum type, - so the activeX source code parser handles these as - a special case, and the types do not need to be - indicated as with the other hard #define constants */ -/* ENDREMOVEFROMADDON */ - -#define Black_C ((ColorIndex_t)0) -#define Red_C ((ColorIndex_t)1) -#define Green_C ((ColorIndex_t)2) -#define Blue_C ((ColorIndex_t)3) -#define Cyan_C ((ColorIndex_t)4) -#define Yellow_C ((ColorIndex_t)5) -#define Purple_C ((ColorIndex_t)6) -#define White_C ((ColorIndex_t)7) - -#define Custom1_C ((ColorIndex_t)8) -#define Custom2_C ((ColorIndex_t)9) -#define Custom3_C ((ColorIndex_t)10) -#define Custom4_C ((ColorIndex_t)11) -#define Custom5_C ((ColorIndex_t)12) -#define Custom6_C ((ColorIndex_t)13) -#define Custom7_C ((ColorIndex_t)14) -#define Custom8_C ((ColorIndex_t)15) -#define Custom9_C ((ColorIndex_t)16) - -#define Custom10_C ((ColorIndex_t)17) -#define Custom11_C ((ColorIndex_t)18) -#define Custom12_C ((ColorIndex_t)19) -#define Custom13_C ((ColorIndex_t)20) -#define Custom14_C ((ColorIndex_t)21) -#define Custom15_C ((ColorIndex_t)22) -#define Custom16_C ((ColorIndex_t)23) -#define Custom17_C ((ColorIndex_t)24) -#define Custom18_C ((ColorIndex_t)25) -#define Custom19_C ((ColorIndex_t)26) - -#define Custom20_C ((ColorIndex_t)27) -#define Custom21_C ((ColorIndex_t)28) -#define Custom22_C ((ColorIndex_t)29) -#define Custom23_C ((ColorIndex_t)30) -#define Custom24_C ((ColorIndex_t)31) -#define Custom25_C ((ColorIndex_t)32) -#define Custom26_C ((ColorIndex_t)33) -#define Custom27_C ((ColorIndex_t)34) -#define Custom28_C ((ColorIndex_t)35) -#define Custom29_C ((ColorIndex_t)36) - -#define Custom30_C ((ColorIndex_t)37) -#define Custom31_C ((ColorIndex_t)38) -#define Custom32_C ((ColorIndex_t)39) -#define Custom33_C ((ColorIndex_t)40) -#define Custom34_C ((ColorIndex_t)41) -#define Custom35_C ((ColorIndex_t)42) -#define Custom36_C ((ColorIndex_t)43) -#define Custom37_C ((ColorIndex_t)44) -#define Custom38_C ((ColorIndex_t)45) -#define Custom39_C ((ColorIndex_t)46) - -#define Custom40_C ((ColorIndex_t)47) -#define Custom41_C ((ColorIndex_t)48) -#define Custom42_C ((ColorIndex_t)49) -#define Custom43_C ((ColorIndex_t)50) -#define Custom44_C ((ColorIndex_t)51) -#define Custom45_C ((ColorIndex_t)52) -#define Custom46_C ((ColorIndex_t)53) -#define Custom47_C ((ColorIndex_t)54) -#define Custom48_C ((ColorIndex_t)55) -#define Custom49_C ((ColorIndex_t)56) - -#define Custom50_C ((ColorIndex_t)57) -#define Custom51_C ((ColorIndex_t)58) -#define Custom52_C ((ColorIndex_t)59) -#define Custom53_C ((ColorIndex_t)60) -#define Custom54_C ((ColorIndex_t)61) -#define Custom55_C ((ColorIndex_t)62) -#define Custom56_C ((ColorIndex_t)63) - -#define MultiColor_C ((ColorIndex_t)(-1)) -#define NoColor_C ((ColorIndex_t)(-2)) -#define MultiColor2_C ((ColorIndex_t)(-3)) -#define MultiColor3_C ((ColorIndex_t)(-4)) -#define MultiColor4_C ((ColorIndex_t)(-5)) -#define RGBColor_C ((ColorIndex_t)(-6)) -#define MultiColor5_C ((ColorIndex_t)(-7)) -#define MultiColor6_C ((ColorIndex_t)(-8)) -#define MultiColor7_C ((ColorIndex_t)(-9)) -#define MultiColor8_C ((ColorIndex_t)(-10)) -#define InvalidColor_C ((ColorIndex_t)(-255)) - -#define FirstCustomColor Custom1_C -#define LastCustomColor Custom56_C -#define NumCustomColors (LastCustomColor-FirstCustomColor+1) - -#define FirstBasicColor Black_C -#define LastBasicColor LastCustomColor -#define NumBasicColors (LastBasicColor-FirstBasicColor+1) - -/* BEGINREMOVEFROMADDON */ - -/* - * V8 and earlier used this for MultiColor_C. We adjust this - * to the new value in the SetValue layer so old addons work. - */ -#define OldMultiColor_C ((ColorIndex_t)255) -/* - * Gray is only used in the interface for workspace background and - * for insensitive buttons in Motif. - * True Black and True White are also interface only. They draw - * true black or true white - regardless of what the user has set - * the RGB values for the black and white basic colors. - * XOrColor_C is also for interface only. - */ -#define Gray_C (LastBasicColor+1) -#define DarkGray_C (LastBasicColor+2) /* Used for inactive frame border color */ -#define XOrColor_C (LastBasicColor+3) -#define FirstInterfaceColor Gray_C -#define LastInterfaceColor XOrColor_C - -#define NumInterfaceColors (LastInterfaceColor-FirstInterfaceColor+1) -#define NumContourShades (GeneralBase.Limits.MaxNumContourLevels+1) -#define NumColorsInColorTable (NumBasicColors+NumInterfaceColors+NumContourShades) -#define BasicColorOffset (0) -#define InterfaceColorOffset (NumBasicColors) -#define ContourColorOffset (NumBasicColors+NumInterfaceColors) - -#define BadKey (short)31 -#define Plus (short)43 -#define Minus (short)45 -#define RetKey (short)13 -#define DeleteKey (short)127 -#define ShiftDelete (short)128 -#define BackSpace (short)8 -#define LeftArrow (short)29 -#define RightArrow (short)30 -#define UpArrow (short)11 -#define DownArrow (short)10 -#define Toggle (short)19 -#define Esc (short)27 -#define RegFrame (short)18 -#define DoBitDump (short)2 - - -/* File Markers */ -#define ZoneMarker 299.0 -#define GeomMarker 399.0 -#define TextMarker 499.0 -#define CustomLabelMarker 599.0 -#define UserRecMarker 699.0 -#define DataSetAuxMarker 799.0 -#define VarAuxMarker 899.0 -#define EndHeaderMarker 357.0 - - -/* - * Additional objects that have plotter - * pens assigned to them. - */ -#define AxisPen Custom8_C+1 -#define MajGridPen Custom8_C+2 -#define MinGridPen Custom8_C+3 -#define StreamlinePen Custom8_C+4 -#define ColoredLinePen Custom8_C+5 -#define BoundaryPen Custom8_C+6 -#define LabelPen Custom8_C+7 -#define NumPlotterPens Custom8_C+8 -/* AutoSelectPen will select the correct pen from Black_C thru Custom8_C or ColoredLinePen */ -#define AutoSelectPen Custom8_C+9 -#define InvalidPen Custom8_C+99 - -#define FirstObjectPen AxisPen -#define LastObjectPen LabelPen - -#define DelZFactor 0.0001 - -#define BadBaseValue NULL - - -/* - * NOTES ON TYPEDEFS: - * - * TYPEDEF TYPE Suffix - * ------------ ------ - * simple _t - * enumerated _e - * structure _s - * union _u - * abstract _a - * pointer to simple _pt - * pointer to enumerated _pe - * pointer to structure _ps - * pointer to union _pu - * pointer to abstract _pa - * pointer to function _pf - * - * - * The only execption is char * typedef's these use _t - * - * Abstract types are intentionally made to be - * obscure. The programmer should not have to know - * what the underlying structure really is for abstract - * types. - * - */ - - -#ifdef MSWIN -# define DIR_SEPARATOR "\\" -#else -# define DIR_SEPARATOR "/" -#endif - -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -#if defined MSWIN -#define TP_FWRITE fwrite -#define TP_FFLUSH fflush -#define TP_FCLOSE fclose - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else -#define TP_UNLINK remove -#define TP_RMDIR _rmdir -#define TP_FREAD ::fread -#define TP_FOPEN ::fopen -#define TP_FREOPEN ::freopen -#define TP_STAT ::_stat -#define TP_GETENV ::getenv -#endif /* TECPLOTKERNEL */ - -#if defined _WIN64 -#define TP_FSEEK(stream,offset,whence) _fseeki64((stream),(__int64)(offset),(whence)) -#define TP_FTELL _ftelli64 -#else -#define TP_FSEEK(stream, offset, whence) fseek((stream), (long)(offset), (whence)) -#define TP_FTELL ftell -#endif - -#else -#define TP_RMDIR rmdir -#define TP_UNLINK unlink -#define TP_FOPEN fopen -#define TP_FREOPEN freopen -#define TP_FCLOSE fclose -#define TP_FREAD fread -#define TP_FWRITE fwrite -#define TP_FFLUSH fflush -#define TP_FSEEK fseeko -#define TP_FTELL ftello -#define TP_STAT stat -#define _stat stat // ...make the UNIXX and MSWIN platforms have the same syntax to use "struct _stat" -#define TP_GETENV getenv -#endif -/* ENDREMOVEFROMADDON */ - -/**************************************************************** - * * - * SIMPLE TYPEDEFS * - * * - ****************************************************************/ - - - -/* How to define UInt64_t/Int64_t is platform specific, but they are always 8-bytes */ -#if defined MSWIN -typedef unsigned __int64 UInt64_t; -typedef __int64 Int64_t; -#else -#if defined CRAY -typedef unsigned int UInt64_t; -typedef int Int64_t; -#else -#if defined LONGIS64 -typedef unsigned long UInt64_t; -typedef long Int64_t; -#else -typedef unsigned long long UInt64_t; -typedef long long Int64_t; -#endif -#endif -#endif - -#if defined LONGIS64 -typedef unsigned int UInt32_t; -typedef int Int32_t; -typedef int LgInteger_t; -#else -typedef unsigned int UInt32_t; -typedef int Int32_t; -typedef int LgInteger_t; -#endif - -typedef short Int16_t; -typedef unsigned short UInt16_t; -typedef signed char Int8_t; -typedef unsigned char UInt8_t; - -#ifdef INDEX_16_BIT -typedef Int16_t LgIndex_t; -#else -typedef Int32_t LgIndex_t; -#endif -typedef LgIndex_t NodeMap_t; -typedef LgIndex_t ScreenDim_t; - -/** - * ArbParam_t type is used for passing arbitrary integers or pointers in - * parameters. HgIndex_t is used for counting node maps and other things that - * may individually be LgIndex_t, but in total exceed 32-bit. - * The general rule is that these are 4 bytes on "32-bit" machines - * and 8 bytes on "64-bit" machines. - */ -#if defined CRAY -typedef char *ArbParam_t; -typedef long HgIndex_t; -#elif defined LONGIS64 -typedef long ArbParam_t; -typedef long HgIndex_t; -#elif defined MSWIN && (defined _M_IA64 || defined _M_AMD64) -typedef INT_PTR ArbParam_t; -typedef INT_PTR HgIndex_t; -#else -typedef int ArbParam_t; -typedef int HgIndex_t; -#endif - -typedef ArbParam_t UniqueID_t; - -/* 64 bit offset used to hold file offset and size values. */ -typedef Int64_t FileOffset_t; - -/** - * 64 bit offset for memory mapped I/O. - */ -typedef UInt64_t MemMapOffset_t; - -/* - * SmInteger must be at least a short.... - */ - -typedef unsigned char Byte_t; -typedef short SmInteger_t; -typedef SmInteger_t ColorIndex_t; -#ifdef INDEX_16_BIT -typedef Int16_t EntIndex_t; -#else -typedef Int32_t EntIndex_t; -#endif -typedef Int16_t SubZoneIndex_t; - -typedef char Boolean_t; -typedef char *ZoneName_t; -typedef char *VarName_t; -typedef char *LString_t; - -typedef LgIndex_t Strand_t; -typedef LgIndex_t HeapLength_t; -typedef LgIndex_t SegPtsArray_t[MaxGeoSegments]; -typedef double BasicSize_t[MaxBasicSizes]; -typedef double *VarList_t; - -typedef long SetIndex_t; - -typedef unsigned long SetData_t; -typedef SetData_t *SetData_pt; - -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -/* The following list identifies items that can be inhibited. */ -#define FEATURE_3D (1L << 0) -#define FEATURE_3DVOLUME (1L << 1) -#define FEATURE_2D (1L << 2) -#define FEATURE_XY (1L << 3) -#define FEATURE_DATAALTER (1L << 4) -#define FEATURE_UNSTRUCTUREDDATA (1L << 5) -#define FEATURE_MULTIPLEFRAMES1 (1L << 6) -#define FEATURE_MULTIPLEZONES1 (1L << 7) -#define FEATURE_MULTIPLEFRAMES5 (1L << 8) -#define FEATURE_MULTIPLEZONES5 (1L << 9) -#define FEATURE_MULTIPLEFRAMES10 (1L << 10) -#define FEATURE_MULTIPLEZONES10 (1L << 11) -#define FEATURE_READNONOEMDATA (1L << 12) /* Added 07/22/2000 */ -#define FEATURE_DATALOADERS (1L << 13) /* Added 07/22/2000 */ -#define FEATURE_DATALOADERS_EXCEPTONE (1L << 14) /* Added 11/26/2001 */ -#define FEATURE_LOADONDEMAND (1L << 15) /* Added 09/13/2007 */ -#define FEATURE_MULTIPLEWORKERTHREADS (1L << 16) /* Added 09/13/2007 */ -#define FEATURE_ISOSURFACEGROUPS (1L << 17) /* Added 09/21/2007 */ -#define FEATURE_SLICEGROUPS (1L << 18) /* Added 09/21/2007 */ -#define FEATURE_STREAMTRACEGROUPS (1L << 19) /* Added 09/25/2007 not used yet */ -#define FEATURE_FEPOLYHEDRON (1L << 20) /* Added 09/25/2007 */ -#define FEATURE_FEPOLYGON (1L << 21) /* Added 09/25/2007 */ - -/* - * KnowFeaturesToInhibit must be updated whenever a new - * item is added above. - */ -#define KnownFeaturesToInhibit (FEATURE_3D |\ - FEATURE_3DVOLUME |\ - FEATURE_2D |\ - FEATURE_XY |\ - FEATURE_DATAALTER |\ - FEATURE_UNSTRUCTUREDDATA |\ - FEATURE_MULTIPLEFRAMES1 |\ - FEATURE_MULTIPLEZONES1 |\ - FEATURE_MULTIPLEFRAMES5 |\ - FEATURE_MULTIPLEZONES5 |\ - FEATURE_MULTIPLEFRAMES10 |\ - FEATURE_MULTIPLEZONES10 |\ - FEATURE_READNONOEMDATA |\ - FEATURE_DATALOADERS |\ - FEATURE_DATALOADERS_EXCEPTONE |\ - FEATURE_LOADONDEMAND |\ - FEATURE_MULTIPLEWORKERTHREADS |\ - FEATURE_ISOSURFACEGROUPS |\ - FEATURE_SLICEGROUPS |\ - FEATURE_STREAMTRACEGROUPS |\ - FEATURE_FEPOLYHEDRON |\ - FEATURE_FEPOLYGON) - -#define VALID_FEATURE_INHIBIT_FLAG(feature) (((feature) & KnownFeaturesToInhibit) != 0) -#define VALID_FEATURE_INHIBIT_MASK(mask) (((mask) & ~KnownFeaturesToInhibit)==0) - - - -/* The following are used by the OEM libs, so they need - to be outside of TECPLOTKERNEL */ -typedef unsigned long FeatureFlag_t; -typedef unsigned long FeatureMask_t; - -/* ENDREMOVEFROMADDON */ - -typedef char SymbolChar_t[3]; - -/** - * Face node offset used for identifying which node of a polytope face is - * desired. - */ -typedef LgIndex_t FaceNodeOffset_t; - -/** - * Element face offset used for identifying which face of a polytope element is - * desired. - */ -typedef LgIndex_t ElemFaceOffset_t; - -/** - * Face boundary item offset used for identifying which boundary item of a - * polytope face is desired. - */ -typedef LgIndex_t FaceBndryItemOffset_t; - -/**************************************************************** - * * - * ENUMERATED TYPEDEFS * - * * - ****************************************************************/ - -typedef enum -{ - PlacementPlaneOrientation_X, - PlacementPlaneOrientation_Y, - PlacementPlaneOrientation_Z, - END_PlacementPlaneOrientation_e, - PlacementPlaneOrientation_Invalid = BadEnumValue -} PlacementPlaneOrientation_e; - -typedef enum -{ - StringMode_ASCII, - StringMode_UTF8, - StringMode_Blend, - END_StringMode_e, - StringMode_Invalid = BadEnumValue - -} StringMode_e; - -typedef enum -{ - SidebarSizing_MaxOfAll, - SidebarSizing_Dynamic, - END_SidebarSizing_e, - SidebarSizing_Invalid = BadEnumValue - -} SidebarSizing_e; - -typedef enum -{ - SidebarLocation_Left, - SidebarLocation_Right, /* Not allowed at this time */ - SidebarLocation_Top, /* Not allowed at this time */ - SidebarLocation_Bottom, /* Not allowed at this time */ - END_SidebarLocation_e, - SidebarLocation_Invalid = BadEnumValue - -} SidebarLocation_e; - -typedef enum -{ - MenuItem_Option, - MenuItem_Toggle, - MenuItem_Separator, - MenuItem_SubMenu, - END_MenuItem_e, - MenuItem_Invalid = BadEnumValue -} MenuItem_e; - -typedef enum -{ - StandardMenu_File, - StandardMenu_Edit, - StandardMenu_View, - StandardMenu_Plot, - StandardMenu_Insert, - StandardMenu_Data, - StandardMenu_Frame, - StandardMenu_Workspace, /* deprecated: use Options instead */ - StandardMenu_Tools, - StandardMenu_Help, - StandardMenu_Animate, - StandardMenu_Options, - StandardMenu_Scripting, - END_StandardMenu_e, - StandardMenu_Invalid = BadEnumValue -} StandardMenu_e; - -typedef enum -{ - FieldProbeDialogPage_NodalValues, - FieldProbeDialogPage_CellCenteredValues, - FieldProbeDialogPage_ZoneCellInfo, - FieldProbeDialogPage_FaceNeighbors, - END_FieldProbeDialogPage_e, - FieldProbeDialogPage_Invalid = BadEnumValue -} FieldProbeDialogPage_e; - -/* BEGINREMOVEFROMADDON */ - -/* used for caches of boolean type */ -typedef enum -{ - BooleanCache_False, /* Value is cached and is FALSE */ - BooleanCache_True, /* Value is cached and is TRUE */ - BooleanCache_Uncached, /* Value is not cached. Value is unknown. */ - END_BooleanCache_e, - BooleanCache_Invalid = BadEnumValue -} BooleanCache_e; - -/* - * For determining pick location along a line - */ -typedef enum -{ - LinePickLocation_None, - LinePickLocation_StartHandle, - LinePickLocation_MidLineOnHandle, - LinePickLocation_MidLineOffHandles, - LinePickLocation_EndHandle, - END_LinePickLocation_e, - LinePickLocation_Invalid = BadEnumValue -} LinePickLocation_e; - - -/* - * Defines destination for setting up views: hardware (ie, OpenGL) or - * software (ie, internal transformation matrices). - */ -typedef enum -{ - ViewDest_Hardware, - ViewDest_Software, - END_ViewDest_e, - ViewDest_Invalid = BadEnumValue -} ViewDest_e; - -/* used for identifying the origin of the dataset reader */ -typedef enum -{ - DataSetReaderOrigin_Native, /* created by Tecplot */ - DataSetReaderOrigin_Foreign, /* created by an add-on */ - END_DataSetReaderOrigin_e, - DataSetReaderOrigin_Invalid = BadEnumValue -} DataSetReaderOrigin_e; - -/* used for identifying the origin of the extended curve fit */ -typedef enum -{ - ExtendedCurveFitOrigin_Native, /* created by Tecplot */ - ExtendedCurveFitOrigin_Foreign, /* created by an add-on */ - END_ExtendedCurveFitOrigin_e, - ExtendedCurveFitOrigin_Invalid = BadEnumValue -} ExtendedCurveFitOrigin_e; - -typedef enum -{ - CollapsedStatus_NotCollapsed, - CollapsedStatus_CollapsedToPoint, - CollapsedStatus_CollapsedToLine, - CollapsedStatus_CollapsedToSegmentedLine, - CollapsedStatus_CollapsedToTriangle, - END_CollapsedStatus_e, - CollapsedStatus_Invalid = BadEnumValue -} CollapsedStatus_e; -/* ENDREMOVEFROMADDON */ - -/** - */ -typedef enum -{ - UndoStateCategory_Frame, - UndoStateCategory_Picked, /* picked changes, not the pick itself */ - UndoStateCategory_Text, - UndoStateCategory_Geom, - UndoStateCategory_View, - UndoStateCategory_WorkspaceView, - UndoStateCategory_Style, /* style less text and geometries */ - UndoStateCategory_SpecificStyle, /* meaning that specific undo style will be added by the caller */ - UndoStateCategory_Data, - UndoStateCategory_DataAndStyle, - UndoStateCategory_StyleIncTextGeom, /* style including text and geometires */ - UndoStateCategory_GlobalStyle, /* style less field, map, text and geometries */ - UndoStateCategory_PageAction, - END_UndoStateCategory_e, - UndoStateCategory_Invalid = BadEnumValue -} UndoStateCategory_e; - - -/* - * Used only for Action_PropagateLinking - */ -typedef enum -{ - LinkType_WithinFrame, - LinkType_BetweenFrames, - END_LinkType_e, - LinkType_Invalid = BadEnumValue -} LinkType_e; - -typedef enum -{ - FrameCollection_All, - FrameCollection_Picked, - END_FrameCollection_e, - FrameCollection_Invalid = BadEnumValue -} FrameCollection_e; - - - -typedef enum -{ - LegendProcess_DrawLegend, - LegendProcess_EraseLegend, - LegendProcess_GetExtents, - END_LegendProcess_e, - LegendProcess_Invalid = BadEnumValue -} LegendProcess_e; - - -typedef enum -{ - RGBLegendOrientation_RGB, - RGBLegendOrientation_GBR, - RGBLegendOrientation_BRG, - RGBLegendOrientation_RBG, - RGBLegendOrientation_GRB, - RGBLegendOrientation_BGR, - END_RGBLegendOrientation_e, - RGBLegendOrientation_Invalid = BadEnumValue -} RGBLegendOrientation_e; - - - -/* BEGINREMOVEFROMADDON */ -/* Used by some of the image exporters/animators */ -typedef struct -{ - Byte_t R; - Byte_t G; - Byte_t B; -} RGBTriple_s; - -typedef RGBTriple_s RGBPalette_t[256]; - -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -/* The tag on the following line is so that the Windows - build script can parse all of the current state changes - out of this file, and compare them to the state changes - found in the main.c template file. - Do not change or delete the line below.*/ -/*StateChange_e_BeginDef*/ -/* ENDREMOVEFROMADDON */ - -typedef enum -{ - StateChange_VarsAltered, - StateChange_VarsAdded, - StateChange_ZonesDeleted, - StateChange_ZonesAdded, - StateChange_NodeMapsAltered, - StateChange_FrameDeleted, - StateChange_NewTopFrame, /* deprecated: use NewActiveFrame and/or FrameOrderChange */ - StateChange_Style, - StateChange_DataSetReset, - StateChange_NewLayout, - StateChange_CompleteReset, /* deprecated: no longer broadcast */ - StateChange_LineMapAssignment, /* was StateChange_XYMapAssignment */ - StateChange_ContourLevels, - StateChange_ModalDialogLaunch, - StateChange_ModalDialogDismiss, - StateChange_QuitTecplot, - StateChange_ZoneName, - StateChange_VarName, - StateChange_LineMapName, /* was StateChange_XYMapName */ - StateChange_LineMapAddDeleteOrReorder, /* was StateChange_XYMapAddDeleteOrReorder */ - StateChange_View, - StateChange_ColorMap, - StateChange_ContourVar, - StateChange_Streamtrace, - StateChange_NewAxisVariables, - StateChange_MouseModeUpdate, - StateChange_PickListCleared, - StateChange_PickListGroupSelect, - StateChange_PickListSingleSelect, - StateChange_PickListStyle, - StateChange_DataSetFileName, - StateChange_UnsuspendInterface, /* was StateChange_DrawGraphicsOn */ - StateChange_SuspendInterface, /* was StateChange_DrawGraphicsOff */ - StateChange_DataSetLockOn, - StateChange_DataSetLockOff, - StateChange_Text, - StateChange_Geom, - StateChange_DataSetTitle, - StateChange_DrawingInterrupted, - StateChange_PrintPreviewLaunch, - StateChange_PrintPreviewDismiss, - StateChange_AuxDataAdded, - StateChange_AuxDataDeleted, - StateChange_AuxDataAltered, - StateChange_VarsDeleted, - StateChange_TecplotIsInitialized, - StateChange_ImageExported, - StateChange_VariableLockOn, - StateChange_VariableLockOff, - StateChange_PageDeleted, - StateChange_NewTopPage, - StateChange_NewActiveFrame, - StateChange_FrameOrderChanged, - END_StateChange_e, - StateChange_Invalid = BadEnumValue, - /* deprecated values */ - StateChange_DrawGraphicsOn = StateChange_UnsuspendInterface, - StateChange_DrawGraphicsOff = StateChange_SuspendInterface, - StateChange_XYMapAssignment = StateChange_LineMapAssignment, - StateChange_XYMapName = StateChange_LineMapName, - StateChange_XYMapAddDeleteOrReorder = StateChange_LineMapAddDeleteOrReorder -} StateChange_e; - -typedef enum -{ - StateChangeMode_v75, - StateChangeMode_v80, - StateChangeMode_v100, - StateChangeMode_v113, - END_StateChangeMode_e, - StateChangeMode_Invalid = BadEnumValue -} StateChangeMode_e; - -typedef enum -{ - StateChangeCallbackAPI_Classic, - StateChangeCallbackAPI_ChangeOnly, - StateChangeCallbackAPI_ChangePlusClient, - END_StateChangeCallbackAPI_e, - StateChangeCallbackAPI_Invalid = BadEnumValue -} StateChangeCallbackAPI_e; - -typedef enum -{ - AppMode_Normal, - AppMode_Demo, - AppMode_OEM, - END_AppMode_e, - AppMode_Invalid = BadEnumValue -} AppMode_e; - -typedef enum -{ - ProductFlavor_TecplotFocus, - ProductFlavor_Tecplot360, - ProductFlavor_TecplotRS, - ProductFlavor_TecplotSDK, - END_ProductFlavor_e, - ProductFlavor_Invalid = BadEnumValue, - ProductFlavor_Focus = ProductFlavor_TecplotFocus, /* deprecated */ - ProductFlavor_360 = ProductFlavor_Tecplot360, /* deprecated */ - ProductFlavor_RS = ProductFlavor_TecplotRS, /* deprecated */ - ProductFlavor_SDK = ProductFlavor_TecplotSDK /* deprecated */ -} ProductFlavor_e; - -typedef enum -{ - LayoutPackageObject_Image, - LayoutPackageObject_Layout, - LayoutPackageObject_Data, - END_LayoutPackageObject_e, - LayoutPackageObject_Invalid = BadEnumValue -} LayoutPackageObject_e; - -typedef enum -{ - VarLoadMode_ByName, - VarLoadMode_ByPosition, - END_VarLoadMode_e, - VarLoadMode_Invalid = BadEnumValue -} VarLoadMode_e; - -typedef enum -{ - ImageSelection_OnePerFrame, - ImageSelection_WorkspaceOnly, - END_ImageSelection_e, - ImageSelection_Invalid = BadEnumValue -} ImageSelection_e; - -typedef enum -{ - LibraryType_Foreign, - LibraryType_V7Standard, - LibraryType_V7ActiveX, - END_LibraryType_e, - LibraryType_Invalid = BadEnumValue -} LibraryType_e; /* "Add-on types" */ - - -typedef enum -{ - AssignOp_Equals, - AssignOp_PlusEquals, - AssignOp_MinusEquals, - AssignOp_TimesEquals, - AssignOp_DivideEquals, - AssignOp_ConvertFromCm, - AssignOp_ConvertFromIn, - AssignOp_ConvertFromPt, - AssignOp_ConvertFromPix, - END_AssignOp_e, - AssignOp_Invalid = BadEnumValue -} AssignOp_e; - -typedef enum -{ - Dialog_ColorMap, - Dialog_Equation, - Dialog_MacroViewer, - Dialog_ZoneMapStyle, /* was Dialog_PlotAttributes*/ - Dialog_QuickEdit, - Dialog_QuickMacroPanel, - Dialog_ValueBlanking, - Dialog_Probe, /* used for dialog positioning only */ - Dialog_ProbeAt, - Dialog_NewLayout, - Dialog_OpenLayout, - Dialog_Save, - Dialog_SaveAs, - Dialog_LoadData, - Dialog_WriteData, - Dialog_Print, - Dialog_Import, - Dialog_Export, - Dialog_MacroPlay, - Dialog_MacroRecord, - Dialog_AxisEdit, - Dialog_SpatialVars, - Dialog_Reset3DAxes, - Dialog_ThreeDAxisLimits, - Dialog_ThreeDOrientationAxis, - Dialog_Streamtraces, - Dialog_IsoSurfaces, - Dialog_Slices, - Dialog_Contour, - Dialog_VectorLength, - Dialog_VectorVars, - Dialog_VectorArrowheads, - Dialog_VectorReferenceVector, - Dialog_ScatterSizeAndFont, - Dialog_ScatterLegend, - Dialog_ScatterReferenceSymbol, - Dialog_RGBColorVarsAndRange, - Dialog_RGBColorLegend, - Dialog_LineMapLegend, - Dialog_IJKBlanking, - Dialog_DepthBlanking, - Dialog_LightSource, - Dialog_Advanced3DControl, - Dialog_TwoDDrawOrder, - Dialog_PolarDrawingOptions, - Dialog_DataLabels, - Dialog_StyleLinking, - Dialog_Smooth, - Dialog_TransformCoordinates, - Dialog_Rotate2DData, - Dialog_Create1DLine, - Dialog_CreateRectangularZone, - Dialog_CreateCircularZone, - Dialog_DuplicateZone, - Dialog_MirrorZone, - Dialog_CreateZoneFromPolylines, - Dialog_CreateZoneFromValues, - Dialog_DeleteVariables, - Dialog_DeleteZones, - Dialog_ExtractContourLines, - Dialog_ExtractFEBoundary, - Dialog_ExtractIsoSurfaces, - Dialog_ExtractSlices, - Dialog_ExtractSliceFromPlane, - Dialog_ExtractStreamtraces, - Dialog_ExtractSubZone, - Dialog_ExtractDiscretePoints, - Dialog_ExtractPointsFromPolyline, - Dialog_ExtractPointsFromGeometry, - Dialog_LinearInterpolation, - Dialog_InverseDistanceInterpolation, - Dialog_KrigingInterpolation, - Dialog_Triangulate, - Dialog_DataInfo, - Dialog_CurveInfo, - Dialog_DataSpreadsheet, - Dialog_PaperSetup, - Dialog_OrderFrames, - Dialog_RulerGrid, - Dialog_ThreeDViewRotate, - Dialog_ThreeDViewDetails, - Dialog_TranslateMagnify, - Dialog_PrintPreview, - Dialog_ColorPreferences, - Dialog_MiscPreferences, - Dialog_SizePreferences, - Dialog_SaveConfiguration, - Dialog_SaveColorMap, - Dialog_LoadColorMap, - Dialog_HelpAboutTecplot, - Dialog_HelpAboutAddOns, - Dialog_Publish, - Dialog_EditFrame, - Dialog_CopyToClipboard, - Dialog_ThreeDEdge, - Dialog_TimeDetails, - Dialog_Performance, - END_Dialog_e, - Dialog_Invalid = BadEnumValue, - /* deprecated values */ - Dialog_PlotAttributes = Dialog_ZoneMapStyle -} Dialog_e; /* "Tecplot dialog types" */ - -typedef enum -{ - AnchorAlignment_TopLeft, - AnchorAlignment_TopCenter, - AnchorAlignment_TopRight, - AnchorAlignment_MiddleLeft, - AnchorAlignment_MiddleCenter, - AnchorAlignment_MiddleRight, - AnchorAlignment_BottomLeft, - AnchorAlignment_BottomCenter, - AnchorAlignment_BottomRight, - END_AnchorAlignment_e, - AnchorAlignment_Invalid = BadEnumValue -} AnchorAlignment_e; - -/* BEGINREMOVEFROMADDON */ -typedef enum -{ - PositionAtAnchor_Never, - PositionAtAnchor_Once, - PositionAtAnchor_Always, - END_PositionAtAnchor_e, - PositionAtAnchor_Invalid = BadEnumValue -} PositionAtAnchor_e; -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -typedef struct -{ - AnchorAlignment_e AnchorAlignment; - Boolean_t AnchorHorizontalInside; - Boolean_t AnchorVerticalInside; - SmInteger_t MinVisibilityPercentage; - LgIndex_t IOffset; - LgIndex_t JOffset; - PositionAtAnchor_e PositionAtAnchor; - Boolean_t HasBeenPositioned; /* not persistent */ -} DialogPosition_s; -/* ENDREMOVEFROMADDON */ - - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref CurveInfoMode_e instead. - */ -typedef enum -{ - ProcessXYMode_NotUsed1, /* deprecated: do not use */ - ProcessXYMode_NotUsed2, /* deprecated: do not use */ - ProcessXYMode_NotUsed3, /* deprecated: do not use */ - ProcessXYMode_NotUsed4, /* deprecated: do not use */ - ProcessXYMode_NotUsed5, /* deprecated: do not use */ - ProcessXYMode_NotUsed6, /* deprecated: do not use */ - ProcessXYMode_NotUsed7, /* deprecated: do not use */ - ProcessXYMode_NotUsed8, /* deprecated: do not use */ - ProcessXYMode_NotUsed9, /* deprecated: do not use */ - ProcessXYMode_WriteCurveCoef, /* deprecated: use CurveInfoMode_Coefficients */ - ProcessXYMode_WriteCurvePoints, /* deprecated: use CurveInfoMode_RawData */ - END_ProcessXYMode_e, - ProcessXYMode_Invalid = BadEnumValue -} ProcessXYMode_e; -#endif - -typedef enum -{ - CurveInfoMode_Coefficients, /* ProcessXYMode_WriteCurveCoef */ - CurveInfoMode_RawData, /* ProcessXYMode_WriteCurvePoints */ - CurveInfoMode_Macro, /* ProcessXYMode_WriteCurveCoefMacro */ - END_CurveInfoMode_e, - CurveInfoMode_Invalid = BadEnumValue -} CurveInfoMode_e; - -/* BEGINREMOVEFROMADDON */ -typedef enum -{ - ProcessLineMapMode_Draw, - ProcessLineMapMode_GetXYMinMax, - ProcessLineMapMode_GetDataMinMax, - ProcessLineMapMode_GetSinglePick, - ProcessLineMapMode_CheckOnlyForGroupPick, - ProcessLineMapMode_GetGroupPick, - ProcessLineMapMode_GetFirstValidDataPoint, - ProcessLineMapMode_GetNearestPoint, - ProcessLineMapMode_GetDependentValue, - ProcessLineMapMode_GetRSquaredGoodness, - ProcessLineMapMode_DisplayCurveCoef, - ProcessLineMapMode_WriteCurveCoef, - ProcessLineMapMode_WriteCurvePoints, - ProcessLineMapMode_InsertLabels, - ProcessLineMapMode_GetIndependentValue, - ProcessLineMapMode_WriteCurveCoefMacro, - END_ProcessLineMapMode_e, - ProcessLineMapMode_Invalid = BadEnumValue -} ProcessLineMapMode_e; -/* ENDREMOVEFROMADDON */ - -typedef enum -{ - StyleBase_Factory, - StyleBase_Config, - END_StyleBase_e, - StyleBase_Invalid = BadEnumValue -} StyleBase_e; - - -typedef enum -{ - ReadDataOption_NewData, - ReadDataOption_AppendData, - ReadDataOption_ReplaceData, - END_ReadDataOption_e, - ReadDataOption_Invalid = BadEnumValue -} ReadDataOption_e; - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref LabelType_e instead. - */ -typedef enum -{ - NodeLabel_Index, /* deprecated: use LabelType_Index */ - NodeLabel_VarValue, /* deprecated: use LabelType_VarValue */ - NodeLabel_XAndYVarValue, /* deprecated: use LabelType_XAndYVarValue */ - END_NodeLabel_e, - NodeLabel_Invalid = BadEnumValue -} NodeLabel_e; -#endif - -typedef enum -{ - LabelType_Index, /* NodeLabel_Index */ - LabelType_VarValue, /* NodeLabel_VarValue */ - LabelType_XAndYVarValue, /* NodeLabel_XAndYVarValue */ - END_LabelType_e, - LabelType_Invalid = BadEnumValue -} LabelType_e; - - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref BorderAction_e instead. - */ -typedef enum -{ - SubBoundaryEditOption_All, /* deprecated: use BorderAction_AddAll */ - SubBoundaryEditOption_Add, /* deprecated: use BorderAction_Add */ - SubBoundaryEditOption_Remove, /* deprecated: use BorderAction_Remove */ - SubBoundaryEditOption_AddOnly, /* deprecated: use BorderAction_AddOnly */ - END_SubBoundaryEditOption_e, - SubBoundaryEditOption_Invalid = BadEnumValue -} SubBoundaryEditOption_e; -#endif - -typedef enum -{ - BorderAction_AddAll, /* SubBoundaryEditOption_All */ - BorderAction_Add, /* SubBoundaryEditOption_Add */ - BorderAction_Remove, /* SubBoundaryEditOption_Remove */ - BorderAction_AddOnly, /* SubBoundaryEditOption_AddOnly */ - END_BorderAction_e, - BorderAction_Invalid = BadEnumValue -} BorderAction_e; - - -typedef enum -{ - PointerStyle_NotUsed1, - PointerStyle_NotUsed2, - PointerStyle_NotUsed3, - PointerStyle_AllDirections, - PointerStyle_NotUsed4, - PointerStyle_NotUsed5, - PointerStyle_NotUsed6, - PointerStyle_UpperLeftBracket, - PointerStyle_UpperRightBracket, - PointerStyle_LeftBracket, - PointerStyle_LowerLeftBracket, - PointerStyle_LowerRightBracket, - PointerStyle_RightBracket, - PointerStyle_BottomBracket, - PointerStyle_TopBracket, - PointerStyle_UpDown, - PointerStyle_LeftRight, - END_PointerStyle_e, - PointerStyle_Invalid = BadEnumValue -} PointerStyle_e; - -typedef enum -{ - CursorStyle_Undefined, - CursorStyle_StandardArrow, - CursorStyle_AdjusterArrow, - CursorStyle_AllDirections, - CursorStyle_Rotate, - CursorStyle_Zoom, - CursorStyle_Locate, - CursorStyle_UpperLeftBracket, - CursorStyle_UpperRightBracket, - CursorStyle_LeftBracket, - CursorStyle_LowerLeftBracket, - CursorStyle_LowerRightBracket, - CursorStyle_RightBracket, - CursorStyle_BottomBracket, - CursorStyle_TopBracket, - CursorStyle_UpDown, - CursorStyle_LeftRight, - CursorStyle_Waiting, - END_CursorStyle_e, - CursorStyle_Invalid = BadEnumValue -} CursorStyle_e; - - -typedef enum -{ - PickSubPosition_All, - PickSubPosition_Top, - PickSubPosition_Bottom, - PickSubPosition_Left, - PickSubPosition_Right, - PickSubPosition_TopLeft, - PickSubPosition_TopRight, - PickSubPosition_BottomLeft, - PickSubPosition_BottomRight, - PickSubPosition_BottomAndTop, - PickSubPosition_LeftAndRight, - END_PickSubPosition_e, - PickSubPosition_Invalid = BadEnumValue -} PickSubPosition_e; - -typedef enum -{ - TecEngInitReturnCode_Ok, - TecEngInitReturnCode_LicenseIsInvalid, - TecEngInitReturnCode_LicenseExpired, - TecEngInitReturnCode_InternalInitializationError, - END_TecEngInitReturnCode_e, - TecEngInitReturnCode_Invalid = BadEnumValue -} TecEngInitReturnCode_e; - -typedef enum -{ - GetValueReturnCode_Ok, - GetValueReturnCode_ResultTypeError, - GetValueReturnCode_SyntaxError, - GetValueReturnCode_ContextError, - GetValueReturnCode_DeprecatedError, - END_GetValueReturnCode_e, - GetValueReturnCode_Invalid = BadEnumValue, - /* deprecated values */ - GetValue_Ok = GetValueReturnCode_Ok, /* deprecated */ - GetValue_ResultTypeError = GetValueReturnCode_ResultTypeError, /* deprecated */ - GetValue_SyntaxError = GetValueReturnCode_SyntaxError, /* deprecated */ - GetValue_ContextError = GetValueReturnCode_ContextError, /* deprecated */ - GetValue_DeprecatedError = GetValueReturnCode_DeprecatedError, /* deprecated */ - GetValue_Invalid = GetValueReturnCode_Invalid /* deprecated */ -} GetValueReturnCode_e; - -typedef enum -{ - SetValueReturnCode_Ok, - SetValueReturnCode_DuplicateValue, - SetValueReturnCode_InvalidCommandOption, - SetValueReturnCode_NoAttachedDatasetError, - SetValueReturnCode_NoAttachedFrameError, - SetValueReturnCode_NotAllowedInConfigError, - SetValueReturnCode_ValueRangeError, - SetValueReturnCode_ValueSyntaxError, - SetValueReturnCode_AssignOpError, - SetValueReturnCode_InvalidVarOrZone, - SetValueReturnCode_InternalMemoryError, - SetValueReturnCode_ContextError1, - SetValueReturnCode_ContextError2, - SetValueReturnCode_OnlyAllowedInConfigError, - SetValueReturnCode_FeatureNotAvailable, - END_SetValueReturnCode_e, - /* BEGINREMOVEFROMADDON */ - /* For now this value is only used in Tecplot code. - * the value is here as an option for the future. */ - SetValueReturnCode_Ignored = SetValueReturnCode_DuplicateValue, - /* ENDREMOVEFROMADDON */ - SetValueReturnCode_Invalid = BadEnumValue, - /* deprecated values */ - SetValue_Ok = SetValueReturnCode_Ok, /* deprecated */ - SetValue_DuplicateValue = SetValueReturnCode_DuplicateValue, /* deprecated */ - SetValue_InvalidCommandOption = SetValueReturnCode_InvalidCommandOption, /* deprecated */ - SetValue_NoAttachedDatasetError = SetValueReturnCode_NoAttachedDatasetError, /* deprecated */ - SetValue_NoAttachedFrameError = SetValueReturnCode_NoAttachedFrameError, /* deprecated */ - SetValue_NotAllowedInConfigError = SetValueReturnCode_NotAllowedInConfigError, /* deprecated */ - SetValue_ValueRangeError = SetValueReturnCode_ValueRangeError, /* deprecated */ - SetValue_ValueSyntaxError = SetValueReturnCode_ValueSyntaxError, /* deprecated */ - SetValue_AssignOpError = SetValueReturnCode_AssignOpError, /* deprecated */ - SetValue_InvalidVarOrZone = SetValueReturnCode_InvalidVarOrZone, /* deprecated */ - SetValue_InternalMemoryError = SetValueReturnCode_InternalMemoryError, /* deprecated */ - SetValue_ContextError1 = SetValueReturnCode_ContextError1, /* deprecated */ - SetValue_ContextError2 = SetValueReturnCode_ContextError2, /* deprecated */ - SetValue_OnlyAllowedInConfigError = SetValueReturnCode_OnlyAllowedInConfigError, /* deprecated */ - SetValue_FeatureNotAvailable = SetValueReturnCode_FeatureNotAvailable, /* deprecated */ - /* BEGINREMOVEFROMADDON */ - SetValue_Ignored = SetValueReturnCode_Ignored, /* deprecated */ - /* ENDREMOVEFROMADDON */ - SetValue_Invalid = SetValueReturnCode_Invalid /* deprecated */ -} SetValueReturnCode_e; - - -typedef enum -{ - ObjectAlign_LeftJustify, - ObjectAlign_RightJustify, - ObjectAlign_Center, - ObjectAlign_Top, - ObjectAlign_Bottom, - END_ObjectAlign_e, - ObjectAlign_Invalid = BadEnumValue -} ObjectAlign_e; - - -/* - * For 3D axis labels only. - */ -typedef enum -{ - LabelAlignment_ByAngle, - LabelAlignment_AlongAxis, - LabelAlignment_PerpendicularToAxis, - END_LabelAlignment_e, - LabelAlignment_Invalid = BadEnumValue -} LabelAlignment_e; /* Label alignment for 3D axis labels only" */ - -/* - * View_SetMagnification added 02/24/03 so all plot types - * can behave the same way "do a 'centered' magnifacation change". - * Line plots will still accept View_Scale option and zoom towards - * the corner so old macros/addons still work. - */ -typedef enum -{ - View_Fit, - View_DataFit, - View_AxisFit, - View_Scale, /* deprecated, Use SetMagnification */ - View_Center, - View_Translate, - View_Zoom, - View_Last, - View_Copy, - View_Paste, - View_Push, /* End of V9 enums */ - View_SetMagnification, - View_NiceFit, - View_AxisNiceFit, - View_MakeCurrentViewNice, - View_AxisMakeCurrentValuesNice, - View_AxisResetToEntireCircle, - View_FitSurfaces, - END_View_e, - View_Invalid = BadEnumValue -} View_e; - - - -typedef enum -{ - WorkspaceView_FitSelectedFrames, - WorkspaceView_FitAllFrames, - WorkspaceView_FitPaper, - WorkspaceView_Maximize, - WorkspaceView_LastView, - WorkspaceView_Zoom, - WorkspaceView_Translate, - WorkspaceView_UnMaximize, - END_WorkspaceView_e, - WorkspaceView_Invalid = BadEnumValue -} WorkspaceView_e; - - -typedef enum -{ - ArrowheadStyle_Plain, - ArrowheadStyle_Filled, - ArrowheadStyle_Hollow, - END_ArrowheadStyle_e, - ArrowheadStyle_Invalid = BadEnumValue, - /* deprecated values */ - Arrowhead_Plain = ArrowheadStyle_Plain, /* deprecated */ - Arrowhead_Filled = ArrowheadStyle_Filled, /* deprecated */ - Arrowhead_Hollow = ArrowheadStyle_Hollow, /* deprecated */ - Arrowhead_Invalid = ArrowheadStyle_Invalid /* deprecated */ -} ArrowheadStyle_e; - - -typedef enum -{ - ArrowheadAttachment_None, - ArrowheadAttachment_AtBeginning, - ArrowheadAttachment_AtEnd, - ArrowheadAttachment_AtBothEnds, - END_ArrowheadAttachment_e, - ArrowheadAttachment_Invalid = BadEnumValue, - /* deprecated values */ - ArrowheadAttach_None = ArrowheadAttachment_None, /* deprecated */ - ArrowheadAttach_AtBeginning = ArrowheadAttachment_AtBeginning, /* deprecated */ - ArrowheadAttach_AtEnd = ArrowheadAttachment_AtEnd, /* deprecated */ - ArrowheadAttach_AtBothEnds = ArrowheadAttachment_AtBothEnds, /* deprecated */ - ArrowheadAttach_Invalid = ArrowheadAttachment_Invalid /* deprecated */ -} ArrowheadAttachment_e; - -typedef enum -{ - Clipping_ClipToViewport, - Clipping_ClipToFrame, - END_Clipping_e, - Clipping_Invalid = BadEnumValue -} Clipping_e; - -typedef enum -{ - StatusInfo_Hover, - StatusInfo_Identify, - StatusInfo_Instruction, - StatusInfo_Working, - StatusInfo_PercentDone, - END_StatusInfo_e, - StatusInfo_Invalid = BadEnumValue -} StatusInfo_e; - - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref PlotType_e instead. - */ -typedef enum -{ - FrameMode_Empty, /* deprecated: use PlotType_Automatic */ - FrameMode_ThreeD, /* deprecated: use PlotType_Cartesian3D */ - FrameMode_TwoD, /* deprecated: use PlotType_Cartesian2D */ - FrameMode_XY, /* deprecated: use PlotType_XYLine */ - FrameMode_Sketch, /* deprecated: use PlotType_Sketch */ - END_FrameMode_e, - FrameMode_Invalid = BadEnumValue, - /* deprecated values */ - Frame_Empty = FrameMode_Empty, /* deprecated */ - Frame_ThreeD = FrameMode_ThreeD, /* deprecated */ - Frame_TwoD = FrameMode_TwoD, /* deprecated */ - Frame_XY = FrameMode_XY, /* deprecated */ - Frame_Sketch = FrameMode_Sketch, /* deprecated */ - Frame_Invalid = FrameMode_Invalid /* deprecated */ -} FrameMode_e; -#endif - - -typedef enum -{ - PlotType_Automatic, /* Frame_Empty */ - PlotType_Cartesian3D, /* Frame_ThreeD */ - PlotType_Cartesian2D, /* Frame_TwoD */ - PlotType_XYLine, /* Frame_XY */ - PlotType_Sketch, /* Frame_Sketch */ - PlotType_PolarLine, - END_PlotType_e, - PlotType_Invalid = BadEnumValue -} PlotType_e; - - -#define VALID_PLOTTYPE(PlotType) ( VALID_ENUM((PlotType), PlotType_e) && \ - ((PlotType) != PlotType_Automatic) ) -#define VALID_LINEPLOT_PLOTTYPE(PlotType) ( (PlotType) == PlotType_XYLine || \ - (PlotType) == PlotType_PolarLine ) -#define VALID_FIELDPLOT_PLOTTYPE(PlotType) ( (PlotType) == PlotType_Cartesian2D || \ - (PlotType) == PlotType_Cartesian3D ) -#define PLOTTYPE_USES_FIELDZONES(PlotType) VALID_FIELDPLOT_PLOTTYPE((PlotType)) -#define PLOTTYPE_USES_LINEMAPS(PlotType) VALID_LINEPLOT_PLOTTYPE((PlotType)) -#define VALID_V9_PLOTTYPE(PlotType) ( (PlotType) == PlotType_Sketch || \ - (PlotType) == PlotType_XYLine || \ - (PlotType) == PlotType_Cartesian2D || \ - (PlotType) == PlotType_Cartesian3D ) - - -typedef enum -{ - ContLineCreateMode_OneZonePerContourLevel, - ContLineCreateMode_OneZonePerIndependentPolyline, - END_ContLineCreateMode_e, - ContLineCreateMode_Invalid = BadEnumValue -} ContLineCreateMode_e; - - -typedef enum -{ - PickObjects_None, - PickObjects_Frame, - PickObjects_Axis, - PickObjects_ThreeDOrientationAxis, - PickObjects_Geom, - PickObjects_Text, - PickObjects_ContourLegend, - PickObjects_ContourLabel, - PickObjects_ScatterLegend, - PickObjects_LineLegend, - PickObjects_ReferenceVector, - PickObjects_ReferenceScatterSymbol, - PickObjects_StreamtracePosition, - PickObjects_StreamtraceTermLine, - PickObjects_Paper, - PickObjects_Zone, - PickObjects_XYMapping, /* deprecated: use PickObject_LineMapping */ - PickObjects_StreamtraceCOB, - PickObjects_SliceCOB, - PickObjects_IsoSurfaceCOB, - PickObjects_RGBLegend, - PickObjects_LineMapping, - END_PickObjects_e, - PickObjects_Invalid = BadEnumValue, - /* deprecated values */ - PickObject_None = PickObjects_None, /* deprecated */ - PickObject_Frame = PickObjects_Frame, /* deprecated */ - PickObject_Axis = PickObjects_Axis, /* deprecated */ - PickObject_3DOrientationAxis = PickObjects_ThreeDOrientationAxis, /* deprecated */ - PickObject_Geom = PickObjects_Geom, /* deprecated */ - PickObject_Text = PickObjects_Text, /* deprecated */ - PickObject_ContourLegend = PickObjects_ContourLegend, /* deprecated */ - PickObject_ContourLabel = PickObjects_ContourLabel, /* deprecated */ - PickObject_ScatterLegend = PickObjects_ScatterLegend, /* deprecated */ - PickObject_LineLegend = PickObjects_LineLegend, /* deprecated */ - PickObject_XYLegend = PickObjects_LineLegend, /* deprecated */ - PickObject_ReferenceVector = PickObjects_ReferenceVector, /* deprecated */ - PickObject_ReferenceScatterSymbol = PickObjects_ReferenceScatterSymbol, /* deprecated */ - PickObject_StreamtracePosition = PickObjects_StreamtracePosition, /* deprecated */ - PickObject_StreamtraceTermLine = PickObjects_StreamtraceTermLine, /* deprecated */ - PickObject_Paper = PickObjects_Paper, /* deprecated */ - PickObject_Zone = PickObjects_Zone, /* deprecated */ - PickObject_XYMapping = PickObjects_XYMapping, /* deprecated */ - PickObject_StreamtraceCOB = PickObjects_StreamtraceCOB, /* deprecated */ - PickObject_SliceCOB = PickObjects_SliceCOB, /* deprecated */ - PickObject_IsoSurfaceCOB = PickObjects_IsoSurfaceCOB, /* deprecated */ - PickObject_RGBLegend = PickObjects_RGBLegend, /* deprecated */ - PickObject_LineMapping = PickObjects_LineMapping, /* deprecated */ - PickObject_Invalid = PickObjects_Invalid /* deprecated */ -} PickObjects_e; - - -/* BEGINREMOVEFROMADDON */ -typedef enum -{ - SingleEditState_NotEditing, - SingleEditState_ActivelyEditing, - SingleEditState_WasEditing, - END_SingleEditState_e, - EditingInvalid = BadEnumValue -} SingleEditState_e; - - -typedef enum -{ - AxisSubObject_GridArea, - AxisSubObject_AxisLine, - AxisSubObject_Title, - END_AxisSubObject_e, - AxisSubObject_Invalid = BadEnumValue -} AxisSubObject_e; - -typedef enum -{ - AxisSubPosition_GridMinBorder, - AxisSubPosition_GridMaxBorder, - AxisSubPosition_MainAxisLine, - AxisSubPosition_BackAxisLine, - AxisSubPosition_PerpAxisLine, - AxisSubPosition_PerpBackAxisLine, - END_AxisSubPosition_e, - AxisSubPosition_Invalid = BadEnumValue, - AxisSubPosition_2DStart = AxisSubPosition_GridMinBorder, - AxisSubPosition_2DEnd = AxisSubPosition_MainAxisLine, - AxisSubPosition_PolarStart = AxisSubPosition_GridMinBorder, - AxisSubPosition_PolarEnd = AxisSubPosition_PerpBackAxisLine -} AxisSubPosition_e; -/* ENDREMOVEFROMADDON */ - -/* - * NOTE: The _NoOp value is not at the top so this - * enumeration aligns with the old AltMouseButtonMode_e - * enumeration. - */ -typedef enum -{ - MouseButtonClick_Redraw, - MouseButtonClick_RevertToSelect, - MouseButtonClick_NoOp, - END_MouseButtonClick_e, - MouseButtonClick_Invalid = BadEnumValue -} MouseButtonClick_e; - - -typedef enum -{ - MouseButtonDrag_NoOp, - MouseButtonDrag_ZoomPaper, - MouseButtonDrag_TranslatePaper, - MouseButtonDrag_ZoomData, - MouseButtonDrag_TranslateData, - MouseButtonDrag_RlrBallRtatData, - MouseButtonDrag_SpherRtatData, - MouseButtonDrag_XRotateData, - MouseButtonDrag_YRotateData, - MouseButtonDrag_ZRotateData, - MouseButtonDrag_TwistRotateData, - MouseButtonDrag_ZoomViewer, - MouseButtonDrag_TranslateViewer, - MouseButtonDrag_RlrBallRtatVwr, - MouseButtonDrag_SpherRotateVwr, - MouseButtonDrag_XRotateViewer, - MouseButtonDrag_YRotateViewer, - MouseButtonDrag_ZRotateViewer, - MouseButtonDrag_TwistRotateViewer, - END_MouseButtonDrag_e, - MouseButtonDrag_Invalid = BadEnumValue -} MouseButtonDrag_e; - - -/* BEGINREMOVEFROMADDON */ -typedef struct -{ - MouseButtonClick_e ButtonClick; - MouseButtonDrag_e SimpleDrag; - MouseButtonDrag_e ControlledDrag; - MouseButtonDrag_e AltedDrag; - MouseButtonDrag_e ShiftedDrag; - MouseButtonDrag_e ControlAltedDrag; - MouseButtonDrag_e ControlShiftedDrag; - MouseButtonDrag_e AltShiftedDrag; - MouseButtonDrag_e ControlAltShiftedDrag; -} MouseButtonAction_s; - - -typedef struct -{ - MouseButtonAction_s MiddleButton; - MouseButtonAction_s RightButton; -} MouseActions_s; -/* ENDREMOVEFROMADDON */ - - -typedef enum /* deprecated */ -{ - AltMouseButtonMode_Regen, - AltMouseButtonMode_RevertToSelect, - END_AltMouseButtonMode_e, - AltMouseButtonMode_Invalid = BadEnumValue -} AltMouseButtonMode_e; - - -typedef enum -{ - MouseButtonMode_NoMode, - MouseButtonMode_Select, - MouseButtonMode_Adjust, - MouseButtonMode_Zoom, - MouseButtonMode_Translate, - MouseButtonMode_Probe, - MouseButtonMode_Text, - MouseButtonMode_GeomPolyline, - MouseButtonMode_GeomSquare, - MouseButtonMode_GeomCircle, - MouseButtonMode_GeomRectangle, - MouseButtonMode_GeomEllipse, - MouseButtonMode_GeomSpline, - MouseButtonMode_CreateFrame, - MouseButtonMode_RotateSpherical, - MouseButtonMode_RotateRollerBall, - MouseButtonMode_RotateTwist, - MouseButtonMode_RotateXAxis, - MouseButtonMode_RotateYAxis, - MouseButtonMode_RotateZAxis, - MouseButtonMode_ContourLabel, - MouseButtonMode_ContourAdd, - MouseButtonMode_ContourDelete, - MouseButtonMode_StreamPoints, - MouseButtonMode_StreamEndLine, - MouseButtonMode_ExtractPoints, - MouseButtonMode_ExtractLine, - MouseButtonMode_CreateRectangularZone, - MouseButtonMode_CreateCircularZone, - MouseButtonMode_Slice, - MouseButtonMode_LightSource, - MouseButtonMode_User1, - MouseButtonMode_User2, - MouseButtonMode_User3, - MouseButtonMode_User4, - END_MouseButtonMode_e, - MouseButtonMode_Invalid = BadEnumValue, - /* deprecated values */ - Mouse_NoMode = MouseButtonMode_NoMode, /* deprecated */ - Mouse_Select = MouseButtonMode_Select, /* deprecated */ - Mouse_Adjust = MouseButtonMode_Adjust, /* deprecated */ - Mouse_Zoom = MouseButtonMode_Zoom, /* deprecated */ - Mouse_Translate = MouseButtonMode_Translate, /* deprecated */ - Mouse_Probe = MouseButtonMode_Probe, /* deprecated */ - Mouse_Text = MouseButtonMode_Text, /* deprecated */ - Mouse_GeomPolyline = MouseButtonMode_GeomPolyline, /* deprecated */ - Mouse_GeomSquare = MouseButtonMode_GeomSquare, /* deprecated */ - Mouse_GeomCircle = MouseButtonMode_GeomCircle, /* deprecated */ - Mouse_GeomRectangle = MouseButtonMode_GeomRectangle, /* deprecated */ - Mouse_GeomEllipse = MouseButtonMode_GeomEllipse, /* deprecated */ - Mouse_GeomSpline = MouseButtonMode_GeomSpline, /* deprecated */ - Mouse_CreateFrame = MouseButtonMode_CreateFrame, /* deprecated */ - Mouse_RotateSpherical = MouseButtonMode_RotateSpherical, /* deprecated */ - Mouse_RotateRollerBall = MouseButtonMode_RotateRollerBall, /* deprecated */ - Mouse_RotateTwist = MouseButtonMode_RotateTwist, /* deprecated */ - Mouse_RotateXAxis = MouseButtonMode_RotateXAxis, /* deprecated */ - Mouse_RotateYAxis = MouseButtonMode_RotateYAxis, /* deprecated */ - Mouse_RotateZAxis = MouseButtonMode_RotateZAxis, /* deprecated */ - Mouse_ContourLabel = MouseButtonMode_ContourLabel, /* deprecated */ - Mouse_ContourAdd = MouseButtonMode_ContourAdd, /* deprecated */ - Mouse_ContourDelete = MouseButtonMode_ContourDelete, /* deprecated */ - Mouse_StreamPoints = MouseButtonMode_StreamPoints, /* deprecated */ - Mouse_StreamEndLine = MouseButtonMode_StreamEndLine, /* deprecated */ - Mouse_ExtractPoints = MouseButtonMode_ExtractPoints, /* deprecated */ - Mouse_ExtractLine = MouseButtonMode_ExtractLine, /* deprecated */ - Mouse_CreateRectangularZone = MouseButtonMode_CreateRectangularZone, /* deprecated */ - Mouse_CreateCircularZone = MouseButtonMode_CreateCircularZone, /* deprecated */ - Mouse_Slice = MouseButtonMode_Slice, /* deprecated */ - Mouse_User1 = MouseButtonMode_User1, /* deprecated */ - Mouse_User2 = MouseButtonMode_User2, /* deprecated */ - Mouse_User3 = MouseButtonMode_User3, /* deprecated */ - Mouse_User4 = MouseButtonMode_User4, /* deprecated */ - Mouse_Invalid = MouseButtonMode_Invalid /* deprecated */ -} MouseButtonMode_e; - - -typedef enum -{ - DetailsButtonState_QuickEdit, - DetailsButtonState_ObjectDetails, - DetailsButtonState_ToolDetails, - END_DetailsButtonState_e, - DetailsButtonState_Invalid = BadEnumValue -} DetailsButtonState_e; - - -typedef enum -{ - Event_ButtonPress, - Event_ButtonRelease, - Event_ButtonDoublePress, - Event_Motion, - Event_Drag, - Event_KeyPress, - END_Event_e, - Event_Invalid = BadEnumValue -} Event_e; - - -typedef enum -{ - ObjectDrawMode_DrawFirst, - ObjectDrawMode_Move, - ObjectDrawMode_Remove, - ObjectDrawMode_Place, - END_ObjectDrawMode_e, - ObjectDrawMode_Invalid = BadEnumValue -} ObjectDrawMode_e; - - -typedef enum -{ - ThreeDViewChangeDrawLevel_Full, - ThreeDViewChangeDrawLevel_Trace, - END_ThreeDViewChangeDrawLevel_e, - ThreeDViewChangeDrawLevel_Invalid = BadEnumValue -} ThreeDViewChangeDrawLevel_e; /* "ThreeDViewChangeDrawLevel is deprecated. Use PlotApproximateMode.\n"*/ - -typedef enum -{ - NonCurrentFrameRedrawLevel_Full, - NonCurrentFrameRedrawLevel_Trace, - END_NonCurrentFrameRedrawLevel_e, - NonCurrentFrameRedrawLevel_Invalid = BadEnumValue -} NonCurrentFrameRedrawLevel_e; /* "NonCurrentFrameRedrawLevel is deprecated. Use PlotApproximateMode.\n"*/ - - -/** - * Enumerates the redraw reasons and is passed as an argument to registered - * draw event callbacks. - * - * - RedrawReason_UserReqRedrawActiveFrame:\n - * The full draw event is in response to the "redraw" action function. - * - * - RedrawReason_UserReqTraceActiveFrame:\n - * The approximate draw event is in response to the "redraw" action function. - * - * - RedrawReason_UserReqRedrawAllFrames:\n - * The full draw event is in response to the "redraw all" action function. - * - * - RedrawReason_UserReqTraceAllFrames:\n - * The approximate draw event is in response to the "redraw all" action function. - * - * - RedrawReason_InteractiveDataViewChange:\n - * The draw event is in response to an interactive data view change such as - * rotate, translate, zoom, etc. - * - * - RedrawReason_InteractivePaperViewChange:\n - * The draw event is in response to an interactive paper translate view or - * paper zoom view change. - * - * - RedrawReason_InteractiveStyleChange:\n - * The draw event is in response to an interactive style changes such as - * dragging a contour level or a slice. - * - * - RedrawReason_Animation:\n - * The draw event is in response to an animation. - * - * - RedrawReason_AutoRedraw:\n - * The draw event is in response to an auto redraw. - * - * - RedrawReason_RedrawForcedViewUpdate:\n - * The draw event is in response to forced view update when auto redraw is - * off such as a view fit or movement of the frame. - * - * - RedrawReason_RedrawForcedStyleUpdate:\n - * The draw event is in response to forced view update when auto redraw is - * off such as deleting a contour level. - * - * - RedrawReason_PreFullRedrawTraceOfAllFrames:\n - * The draw event is an approximate redraw done prior to a full redraw. - * - * @sa TecUtilEventAddPreDrawCallback(), TecUtilEventAddPostDrawCallback() - */ -typedef enum -{ - RedrawReason_UserReqRedrawActiveFrame, - RedrawReason_UserReqTraceActiveFrame, - RedrawReason_UserReqRedrawAllFrames, - RedrawReason_UserReqTraceAllFrames, - RedrawReason_InteractiveDataViewChange, - RedrawReason_InteractivePaperViewChange, - RedrawReason_InteractiveStyleChange, - RedrawReason_Animation, - RedrawReason_AutoRedraw, - RedrawReason_RedrawForcedViewUpdate, - RedrawReason_RedrawForcedStyleUpdate, - RedrawReason_PreFullRedrawTraceOfAllFrames, - END_RedrawReason_e, - RedrawReason_Invalid = BadEnumValue, - RedrawReason_UserReqRedrawCurrentFrame = RedrawReason_UserReqRedrawActiveFrame, - RedrawReason_UserReqTraceCurrentFrame = RedrawReason_UserReqTraceActiveFrame -} RedrawReason_e; - -typedef enum -{ - RotationMode_XYZAxis, - RotationMode_Spherical, - RotationMode_RollerBall, - END_RotationMode_e, - RotationMode_Invalid = BadEnumValue -} RotationMode_e; - -typedef enum -{ - RotateAxis_X, - RotateAxis_Y, - RotateAxis_Z, - RotateAxis_Psi, - RotateAxis_Theta, - RotateAxis_Alpha, - RotateAxis_Twist, - RotateAxis_VertRollerBall, - RotateAxis_HorzRollerBall, - RotateAxis_AboutVector, - /* BEGINREMOVEFROMADDON */ - RotateAxis_DontCare, /* internal use only */ - /* ENDREMOVEFROMADDON */ - END_RotateAxis_e, - RotateAxis_Invalid = BadEnumValue -} RotateAxis_e; - -typedef enum -{ - RotateOriginLocation_DefinedOrigin, - RotateOriginLocation_Viewer, - END_RotateOriginLocation_e, - RotateOriginLocation_Invalid = BadEnumValue -} RotateOriginLocation_e; - -/* - * NOTE: This is only used with the $!Reset3DOrigin command. - */ -typedef enum -{ - OriginResetLocation_DataCenter, - OriginResetLocation_ViewCenter, - END_OriginResetLocation_e, - OriginResetLocation_Invalid = BadEnumValue -} OriginResetLocation_e; - -/* - * NOTE: This is only used with the $!CreateSliceZoneFromPlane command. - */ -typedef enum -{ - SliceSource_SurfaceZones, - SliceSource_VolumeZones, - SliceSource_SurfacesOfVolumeZones, - SliceSource_LinearZones, - END_SliceSource_e, - SliceSource_Invalid = BadEnumValue -} SliceSource_e; - - - - - -typedef enum -{ - Input_SmInteger, - Input_Short, - Input_Integer, - Input_Float, - Input_Double, - Input_Radians, - Input_TimeDateDouble, - Input_ElapsedTimeDouble, - END_Input_e, - Input_Invalid = BadEnumValue -} Input_e; - - - -typedef enum -{ - PtSelection_All, - PtSelection_NearestN, - PtSelection_OctantN, - END_PtSelection_e, - PtSelection_Invalid = BadEnumValue -} PtSelection_e; - - - -typedef enum -{ - Drift_None, - Drift_Linear, - Drift_Quad, - END_Drift_e, - Drift_Invalid = BadEnumValue -} Drift_e; - - - -/* atpoint is simple boundary condition. - atpointb2 is better boundary condition. -*/ -typedef enum -{ - DerivPos_atpoint, - DerivPos_atpointb2, - DerivPos_kphalf, - DerivPos_jphalf, - DerivPos_iphalf, - END_DerivPos_e, - DerivPos_Invalid = BadEnumValue -} DerivPos_e; /*"atpoint is the simple boundary condition\n"*/ -/*"atpointb2 is a better boundary condition"*/ - - -typedef enum -{ - LinearInterpMode_DontChange, - LinearInterpMode_SetToConst, - END_LinearInterpMode_e, - LinearInterpMode_Invalid = BadEnumValue -} LinearInterpMode_e; - -typedef enum -{ - VolumeCellInterpolationMode_PiecewiseLinear, - VolumeCellInterpolationMode_TriLinear, - END_VolumeCellInterpolationMode_e, - VolumeCellInterpolationMode_Invalid = BadEnumValue -} VolumeCellInterpolationMode_e; - -typedef enum -{ - PolyCellInterpolationMode_UseCCValue, - PolyCellInterpolationMode_AverageNodes, - END_PolyCellInterpolationMode_e, - PolyCellInterpolationMode_Invalid = BadEnumValue -} PolyCellInterpolationMode_e; - -typedef enum -{ - ConstraintOp2Mode_UseVar, - ConstraintOp2Mode_UseConstant, - END_ConstraintOp2Mode_e, - ConstraintOp2Mode_Invalid = BadEnumValue -} ConstraintOp2Mode_e; - -/** - * Controls how data is loaded for interactive probe events. - * DataProbeVarLoadMode_IncrementallyLoadAll will load as much data as possible within - * load-on-demand time/space thresholds. DataProbeVarLoadMode_LoadRequiredVarsOnly will - * load only the data necessary to complete the probe request. - * DataProbeVarLoadMode_IncrementallyLoadAll is the default. - */ -typedef enum -{ - DataProbeVarLoadMode_IncrementallyLoadAll, - DataProbeVarLoadMode_LoadRequiredVarsOnly, - END_DataProbeVarLoadMode_e, - DataProbeVarLoadMode_Invalid = BadEnumValue -} DataProbeVarLoadMode_e; - -typedef enum -{ - ValueBlankCellMode_AllCorners, - ValueBlankCellMode_AnyCorner, - ValueBlankCellMode_PrimaryValue, - END_ValueBlankCellMode_e, - ValueBlankCellMode_Invalid = BadEnumValue, - /* deprecated values */ - ValueBlankCellMode_PrimaryCorner = ValueBlankCellMode_PrimaryValue -} ValueBlankCellMode_e; - - -/* - * deprecated: ValueBlankMode_e enumeration will not be supported after - * version 8. This API was retained for add-on developers - * using the TecUtilStyleSetLowLevel API. - */ -typedef enum -{ - ValueBlankMode_AndRule, - ValueBlankMode_OrRule, - ValueBlankMode_CornerRule, - END_ValueBlankMode_e, - ValueBlankMode_Invalid = BadEnumValue -} ValueBlankMode_e; /*"DEPRECATED: ValueBlankMode_e will not be supported after version 8"*/ - - -typedef enum -{ - CellBlankedCond_NotBlanked, - CellBlankedCond_PartiallyBlanked, - CellBlankedCond_EntirelyBlanked, - CellBlankedCond_Uncertain, - END_CellBlankedCond_e, - CellBlankedCond_Invalid = BadEnumValue -} CellBlankedCond_e; - - -typedef enum -{ - RelOp_LessThanOrEqual, - RelOp_GreaterThanOrEqual, - RelOp_LessThan, - RelOp_GreaterThan, - RelOp_EqualTo, - RelOp_NotEqualTo, - END_RelOp_e, - RelOp_Invalid = BadEnumValue -} RelOp_e; - - - -typedef enum -{ - IJKBlankMode_BlankInterior, - IJKBlankMode_BlankExterior, - END_IJKBlankMode_e, - IJKBlankMode_Invalid = BadEnumValue -} IJKBlankMode_e; - - -typedef enum -{ - PlotApproximationMode_Automatic, - PlotApproximationMode_NonCurrentAlwaysApproximated, - PlotApproximationMode_AllFramesAlwaysApproximated, - END_PlotApproximationMode_e, - PlotApproximationMode_Invalid = BadEnumValue -} PlotApproximationMode_e; - -typedef enum -{ - SphereScatterRenderQuality_Low, - SphereScatterRenderQuality_Medium, - SphereScatterRenderQuality_High, - END_SphereScatterRenderQuality_e, - SphereScatterRenderQuality_Invalid = BadEnumValue -} SphereScatterRenderQuality_e; - -/* - * NOTE: FillPat_e is deprecated. It must be retained to maintain - * backward compatibility with the TecUtil layer however. - * This has been replaced by Translucency_e. - */ -typedef enum -{ - Pattern_Solid, - Pattern_LowTranslucent, - Pattern_MedTranslucent, - Pattern_HighTranslucent, - END_FillPat_e, - Pattern_Invalid = BadEnumValue -} FillPat_e; /*"DEPRECATED: Replaced by Translucency_e"*/ - - -typedef enum -{ - Translucency_Solid, - Translucency_Low, - Translucency_Medium, - Translucency_High, - END_Translucency_e, - Translucency_Invalid = BadEnumValue -} Translucency_e; - - - -typedef enum -{ - SunRaster_OldFormat, - SunRaster_Standard, - SunRaster_ByteEncoded, - END_SunRaster_e, - SunRaster_Invalid = BadEnumValue -} SunRaster_e; - - -typedef enum -{ - BoundaryCondition_Fixed, - BoundaryCondition_ZeroGradient, - BoundaryCondition_Zero2nd, - END_BoundaryCondition_e, - BoundaryCondition_Invalid = BadEnumValue -} BoundaryCondition_e; - - - -/* Note: - * In 2D: AxisMode_Independent and AxisMode_XYDependent are used; - * in 3D: AxisMode_Independent, AxisMode_XYZDependent, and AxisMode_XYDependent are used. - */ -typedef enum -{ - AxisMode_Independent, - AxisMode_XYZDependent, - AxisMode_XYDependent, - END_AxisMode_e, - AxisMode_Invalid = BadEnumValue -} AxisMode_e;/*"In 2D AxisMode_Independent and AxisMode_XYDependent are used\n"*/ -/*"In 3D AxisMode_Independent, "*/ -/*"AxisMode_XYZDependent, and AxisMode_XYDependent are used."*/ - -typedef enum -{ - Quick_LineColor, - Quick_FillColor, - Quick_TextColor, - END_QuickColorMode_e, - Quick_Invalid = BadEnumValue -} QuickColorMode_e; - - -typedef enum -{ - FillMode_None, - FillMode_UseSpecificColor, - FillMode_UseLineColor, - FillMode_UseBackgroundColor, - END_FillMode_e, - FillMode_Invalid = BadEnumValue -} FillMode_e; - - -typedef enum -{ - LinePattern_Solid, - LinePattern_Dashed, - LinePattern_DashDot, - LinePattern_Dotted, - LinePattern_LongDash, - LinePattern_DashDotDot, - END_LinePattern_e, - LinePattern_Invalid = BadEnumValue -} LinePattern_e; - - - -typedef enum -{ - Join_Miter, - Join_Round, - Join_Bevel, - END_LineJoin_e, - Join_Invalid = BadEnumValue -} LineJoin_e; - - - -typedef enum -{ - Cap_Flat, - Cap_Round, - Cap_Square, - END_LineCap_e, - Cap_Invalid = BadEnumValue -} LineCap_e; - - - -typedef enum -{ - GeomForm_LineSegs, - GeomForm_Rectangle, - GeomForm_Square, - GeomForm_Circle, - GeomForm_Ellipse, - GeomForm_LineSegs3D, /* deprecated: use GeomForm_LineSegs with CoordSys_Grid3D */ - GeomForm_Image, - END_GeomForm_e, - GeomForm_Invalid = BadEnumValue, - /* new value names */ - GeomType_LineSegs = GeomForm_LineSegs, - GeomType_Rectangle = GeomForm_Rectangle, - GeomType_Square = GeomForm_Square, - GeomType_Circle = GeomForm_Circle, - GeomType_Ellipse = GeomForm_Ellipse, - GeomType_LineSegs3D = GeomForm_LineSegs3D, /* deprecated: use GeomType_LineSegs with CoordSys_Grid3D */ - GeomType_Image = GeomForm_Image, - END_GeomType_e = END_GeomForm_e, - GeomType_Invalid = GeomForm_Invalid -} GeomForm_e; - -typedef GeomForm_e GeomType_e; - -typedef enum -{ - VariableDerivationMethod_Fast, - VariableDerivationMethod_Accurate, - END_VariableDerivationMethod_e, - VariableDerivationMethod_Invalid = BadEnumValue -} VariableDerivationMethod_e; - -/** - */ -typedef enum -{ - AuxDataType_String, - END_AuxDataType_e, - AuxDataType_Invalid = BadEnumValue -} AuxDataType_e; - -/** - */ -typedef enum -{ - AuxDataLocation_Zone, - AuxDataLocation_DataSet, - AuxDataLocation_Frame, - AuxDataLocation_Var, - AuxDataLocation_LineMap, - AuxDataLocation_Page, - END_AuxDataLocation_e, - AuxDataLocation_Invalid = BadEnumValue -} AuxDataLocation_e; - - -/* Note: This replaces Element_e */ -typedef enum -{ - ZoneType_Ordered, - ZoneType_FETriangle, - ZoneType_FEQuad, - ZoneType_FETetra, - ZoneType_FEBrick, - ZoneType_FELineSeg, - ZoneType_FEPolygon, - ZoneType_FEPolyhedron, - END_ZoneType_e, - ZoneType_Invalid = BadEnumValue -} ZoneType_e; - -typedef enum -{ - ZoneOrder_I, - ZoneOrder_J, - ZoneOrder_K, - ZoneOrder_IJ, - ZoneOrder_IK, - ZoneOrder_JK, - ZoneOrder_IJK, - END_ZoneOrder_e, - ZoneOrder_Invalid = BadEnumValue -} ZoneOrder_e; - -/* deprecated: replaced by ZoneType_e DataPacking_e */ -typedef enum -{ - DataFormat_IJKBlock, - DataFormat_IJKPoint, - DataFormat_FEBlock, - DataFormat_FEPoint, - END_DataFormat_e, - DataFormat_Invalid = BadEnumValue -} DataFormat_e; - -typedef enum -{ - DataPacking_Block, - DataPacking_Point, - END_DataPacking_e, - DataPacking_Invalid = BadEnumValue -} DataPacking_e; - - - -typedef enum -{ - PD_HPGL, - PD_HPGL2, - PD_PS, - PD_LASERG, /* deprecated */ - PD_EPS, - PD_WINDOWS, /* Windows Print Driver */ - PD_WMF, /* Windows MetaFile (used from Export only) */ - PD_X3D, - END_PrinterDriver_e, - PD_Invalid = BadEnumValue -} PrinterDriver_e; - - - -typedef enum -{ - Image_None, - Image_TIFF, - Image_EPSI2, - Image_FRAME, - END_EPSPreviewImage_e, - Image_Invalid = BadEnumValue -} EPSPreviewImage_e; - -typedef enum -{ - TIFFByteOrder_Intel, - TIFFByteOrder_Motorola, - END_TIFFByteOrder_e, - TIFFByteOrder_Invalid = BadEnumValue -} TIFFByteOrder_e; - -typedef enum -{ - JPEGEncoding_Standard, - JPEGEncoding_Progressive, - END_JPEGEncoding_e, - JPEGEncoding_Invalid = BadEnumValue -} JPEGEncoding_e; - - -typedef enum -{ - FlashImageType_Lossless, - FlashImageType_JPEG, - FlashImageType_Color256, - END_FlashImageType_e, - FlashImageType_Invalid = BadEnumValue, - /* deprecated values */ - FlashImageType_256Color = FlashImageType_Color256 -} FlashImageType_e; - -typedef enum -{ - FlashCompressionType_BestSpeed, - FlashCompressionType_SmallestSize, - END_FlashCompressionType_e, - FlashCompressionType_Invalid = BadEnumValue -} FlashCompressionType_e; - - -typedef enum -{ - ExportFormat_RasterMetafile, - ExportFormat_TIFF, - ExportFormat_SGI, - ExportFormat_SunRaster, - ExportFormat_XWindows, - ExportFormat_PSImage, /* deprecated */ - ExportFormat_HPGL, - ExportFormat_HPGL2, - ExportFormat_PS, - ExportFormat_EPS, - ExportFormat_LaserGraphics, /* deprecated */ - ExportFormat_WindowsMetafile, - ExportFormat_BMP, - ExportFormat_PNG, - ExportFormat_AVI, - ExportFormat_Custom, /* May be used in a future version */ - ExportFormat_JPEG, - ExportFormat_Flash, - ExportFormat_X3D, - ExportFormat_TecplotViewer, - END_ExportFormat_e, - ExportFormat_Invalid = BadEnumValue -} ExportFormat_e; - -typedef enum -{ - AVICompression_ColorPreserving, - AVICompression_LinePreserving, - AVICompression_LosslessUncompressed, - END_AVICompression_e, - AVICompression_Invalid = BadEnumValue -} AVICompression_e; - -typedef enum -{ - AnimationDest_Screen, - AnimationDest_AVI, - AnimationDest_RM, - AnimationDest_Flash, - END_AnimationDest_e, - AnimationDest_Invalid = BadEnumValue -} AnimationDest_e; - - - -typedef enum -{ - AnimationOperation_Forward, - AnimationOperation_Backward, - AnimationOperation_Loop, - AnimationOperation_Bounce, - END_AnimationOperation_e, - AnimationOperation_Invalid = BadEnumValue -} AnimationOperation_e; - -typedef enum -{ - AnimationStep_First, - AnimationStep_Second, - AnimationStep_Current, - AnimationStep_SecondToLast, - AnimationStep_Last, - AnimationStep_Previous, - AnimationStep_Next, - END_AnimationStep_e, - AnimationStep_Invalid = BadEnumValue -} AnimationStep_e; - -typedef enum -{ - ZoneAnimationMode_StepByNumber, - ZoneAnimationMode_GroupStepByNumber, - ZoneAnimationMode_StepByTime, - END_ZoneAnimationMode_e, - ZoneAnimationMode_Invalid = BadEnumValue -} ZoneAnimationMode_e; - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref ExportRegion_e instead. - */ -typedef enum -{ - BitDumpRegion_CurrentFrame, - BitDumpRegion_AllFrames, - BitDumpRegion_WorkArea, - END_BitDumpRegion_e, - BitDumpRegion_Invalid = BadEnumValue -} BitDumpRegion_e; -#endif - -typedef enum -{ - ExportRegion_CurrentFrame, - ExportRegion_AllFrames, - ExportRegion_WorkArea, - END_ExportRegion_e, - ExportRegion_Invalid = BadEnumValue -} ExportRegion_e; - -typedef enum -{ - Paper_Letter, - Paper_Double, - Paper_A4, - Paper_A3, - Paper_Custom1, - Paper_Custom2, - END_PaperSize_e, - Paper_Invalid = BadEnumValue -} PaperSize_e; - - - -typedef enum -{ - PaperUnitSpacing_HalfCentimeter, - PaperUnitSpacing_OneCentimeter, - PaperUnitSpacing_TwoCentimeters, - PaperUnitSpacing_QuarterInch, - PaperUnitSpacing_HalfInch, - PaperUnitSpacing_OneInch, - PaperUnitSpacing_TenPoints, - PaperUnitSpacing_TwentyFourPoints, - PaperUnitSpacing_ThirtySixPoints, - PaperUnitSpacing_FiftyPoints, - PaperUnitSpacing_SeventyTwoPoints, - PaperUnitSpacing_OneTenthInch, - PaperUnitSpacing_OneTenthCentimeter, - END_PaperUnitSpacing_e, - PaperUnitSpacing_Invalid = BadEnumValue -} PaperUnitSpacing_e; - - -typedef enum -{ - Palette_Monochrome, - Palette_PenPlotter, - Palette_Color, - END_Palette_e, - Palette_Invalid = BadEnumValue -} Palette_e; - - -typedef enum -{ - PrintRenderType_Vector, - PrintRenderType_Image, - END_PrintRenderType_e, - PrintRenderType_Invalid = BadEnumValue -} PrintRenderType_e; - - -typedef enum -{ - Units_Grid, - Units_Frame, - Units_Point, - Units_Screen, - Units_AxisPercentage, - END_Units_e, - Units_Invalid = BadEnumValue -} Units_e; - - -typedef enum -{ - CoordScale_Linear, - CoordScale_Log, - END_CoordScale_e, - CoordScale_Invalid = BadEnumValue, - /* old names for the same values */ - Scale_Linear = CoordScale_Linear, - Scale_Log = CoordScale_Log, - Scale_Invalid = CoordScale_Invalid -} CoordScale_e; - -/* BEGINREMOVEFROMADDON */ -#define GetLog10(R) ( ((R) < SMALLDOUBLE) ? SMALLESTEXPONENT : ( ((R) > LARGEDOUBLE) ? LARGESTEXPONENT : log10((R)) ) ) -/* ENDREMOVEFROMADDON */ - -typedef enum -{ - CoordSys_Grid, - CoordSys_Frame, - CoordSys_FrameOffset, - CoordSys_Paper, - CoordSys_Screen, - CoordSys_Hardcopy, - CoordSys_Grid3D, - END_CoordSys_e, - CoordSys_Invalid = BadEnumValue -} CoordSys_e; - -/* - * NOTE: CoordSys_FrameOffset always is stored in inches internally. - * in stylesheet this may be written in other units if - * appropriate suffix is added. - * - */ - - - -typedef enum -{ - Scope_Global, - Scope_Local, - END_Scope_e, - Scope_Invalid = BadEnumValue -} Scope_e; - - -typedef enum -{ - TextAnchor_Left, - TextAnchor_Center, - TextAnchor_Right, - TextAnchor_MidLeft, - TextAnchor_MidCenter, - TextAnchor_MidRight, - TextAnchor_HeadLeft, - TextAnchor_HeadCenter, - TextAnchor_HeadRight, - TextAnchor_OnSide, - END_TextAnchor_e, - TextAnchor_Invalid = BadEnumValue -} TextAnchor_e; - - - -typedef enum -{ - TextBox_None, - TextBox_Filled, - TextBox_Hollow, - END_TextBox_e, - TextBox_Invalid = BadEnumValue -} TextBox_e; - - - -typedef enum -{ - GeomShape_Square, - GeomShape_Del, - GeomShape_Grad, - GeomShape_RTri, - GeomShape_LTri, - GeomShape_Diamond, - GeomShape_Circle, - GeomShape_Cube, - GeomShape_Sphere, - GeomShape_Octahedron, - GeomShape_Point, - END_GeomShape_e, - GeomShape_Invalid = BadEnumValue -} GeomShape_e; - - -typedef enum -{ - BasicSize_Tiny, - BasicSize_Small, - BasicSize_Medium, - BasicSize_Large, - BasicSize_Huge, - END_BasicSize_e, - BasicSize_Invalid = BadEnumValue -} BasicSize_e; - - - -/* - * NOTE: LineForm_e is deprecated. It must be retained to maintain - * backward compatibility with the TecUtil layer however. - * This has been replaced by CurveType_e. - */ -typedef enum -{ - LineForm_LineSeg, - LineForm_CurvFit, - LineForm_EToRFit, - LineForm_PowerFit, - LineForm_Spline, - LineForm_ParaSpline, - END_LineForm_e, - LineForm_Invalid = BadEnumValue -} LineForm_e; - - -typedef enum -{ - CurveType_LineSeg, - CurveType_PolynomialFit, - CurveType_EToRFit, - CurveType_PowerFit, - CurveType_Spline, - CurveType_ParaSpline, - CurveType_Extended, - END_CurveType_e, - CurveType_Invalid = BadEnumValue, - CurveType_CurvFit = CurveType_PolynomialFit -} CurveType_e; - -typedef enum -{ - Script_None, - Script_Super, - Script_Sub, - END_Script_e, - Script_Invalid = BadEnumValue -} Script_e; - - -typedef enum -{ - Font_Helvetica, - Font_HelveticaBold, - Font_Greek, - Font_Math, - Font_UserDefined, - Font_Times, - Font_TimesItalic, - Font_TimesBold, - Font_TimesItalicBold, - Font_Courier, - Font_CourierBold, - END_Font_e, - Font_Invalid = BadEnumValue -} Font_e; - -typedef enum -{ - TwoDDrawOrder_ByZone, - TwoDDrawOrder_ByLayer, - END_TwoDDrawOrder_e, - TwoDDrawOrder_Invalid = BadEnumValue -} TwoDDrawOrder_e; - -typedef enum -{ - DrawOrder_AfterData, - DrawOrder_BeforeData, - END_DrawOrder_e, - DrawOrder_Invalid = BadEnumValue -} DrawOrder_e; - -/* - * - * NOTE: Streamtrace_TwoDLine is new. All 2D - * streamtraces are assigned this value. - */ -typedef enum -{ - Streamtrace_SurfaceLine, - Streamtrace_SurfaceRibbon, - Streamtrace_VolumeLine, - Streamtrace_VolumeRibbon, - Streamtrace_VolumeRod, - Streamtrace_TwoDLine, - END_Streamtrace_e, - Streamtrace_Invalid = BadEnumValue -} Streamtrace_e; - - - -typedef enum -{ - StreamDir_Forward, - StreamDir_Reverse, - StreamDir_Both, - END_StreamDir_e, - StreamDir_Invalid = BadEnumValue -} StreamDir_e; - -typedef enum -{ - IsoSurfaceSelection_AllContourLevels, - IsoSurfaceSelection_OneSpecificValue, - IsoSurfaceSelection_TwoSpecificValues, - IsoSurfaceSelection_ThreeSpecificValues, - END_IsoSurfaceSelection_e, - IsoSurfaceSelection_Invalid = BadEnumValue -} IsoSurfaceSelection_e; - - -typedef enum -{ - ValueLocation_CellCentered, - ValueLocation_Nodal, - END_ValueLocation_e, - ValueLocation_Invalid = BadEnumValue -} ValueLocation_e; - -typedef enum -{ - FieldDataType_Reserved, /* never use */ - FieldDataType_Float, - FieldDataType_Double, - FieldDataType_Int32, - FieldDataType_Int16, - FieldDataType_Byte, - FieldDataType_Bit, - END_FieldDataType_e, - FieldDataType_IJKFunction, /* Not used yet */ - FieldDataType_Int64, /* Not used yet */ -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY - FieldDataType_LongInt = FieldDataType_Int32, - FieldDataType_ShortInt = FieldDataType_Int16, -#endif - FieldDataType_Invalid = BadEnumValue -} FieldDataType_e; - -#define VALID_FIELD_DATA_TYPE(FieldDataType) (VALID_ENUM((FieldDataType),FieldDataType_e) && \ - (FieldDataType)!=FieldDataType_Reserved) - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref MeshType_e instead. - */ -typedef enum -{ - Mesh_Wireframe, /* deprecated: use MeshType_Wireframe */ - Mesh_Overlay, /* deprecated: use MeshType_Overlay */ - Mesh_HiddenLine, /* deprecated: use MeshType_HiddenLine */ - END_MeshPlotType_e, - Mesh_Invalid = BadEnumValue -} MeshPlotType_e; -#endif - -typedef enum -{ - MeshType_Wireframe, /* Mesh_Wireframe */ - MeshType_Overlay, /* Mesh_Overlay */ - MeshType_HiddenLine, /* Mesh_HiddenLine */ - END_MeshType_e, - MeshType_Invalid = BadEnumValue -} MeshType_e; - - - - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref ContourType_e instead. - */ -typedef enum -{ - Contour_Lines, /* deprecated: use ContourType_Lines */ - Contour_Flood, /* deprecated: use ContourType_Flood */ - Contour_Overlay, /* deprecated: use ContourType_Overlay */ - Contour_AverageCell, /* deprecated: use ContourType_AverageCell */ - Contour_CornerCell, /* deprecated: use ContourType_PrimaryValue */ - END_ContourPlotType_e, - Contour_Invalid = BadEnumValue -} ContourPlotType_e; -#endif - - -typedef enum -{ - ContourType_Lines, /* Contour_Lines */ - ContourType_Flood, /* Contour_Flood */ - ContourType_Overlay, /* Contour_Overlay */ - ContourType_AverageCell, /* Contour_AverageCell */ - ContourType_PrimaryValue, /* Contour_CornerCell */ - END_ContourType_e, - ContourType_Invalid = BadEnumValue -} ContourType_e; - -typedef enum -{ - ContourColoring_RGB, - ContourColoring_Group1, - ContourColoring_Group2, - ContourColoring_Group3, - ContourColoring_Group4, - ContourColoring_Group5, - ContourColoring_Group6, - ContourColoring_Group7, - ContourColoring_Group8, - END_ContourColoring_e, - ContourColoring_Invalid = BadEnumValue -} ContourColoring_e; - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref VectorType_e instead. - */ -typedef enum -{ - Vector_TailAtPoint, /* deprecated: use VectorType_TailAtPoint */ - Vector_HeadAtPoint, /* deprecated: use VectorType_HeadAtPoint */ - Vector_MidAtPoint, /* deprecated: use VectorType_MidAtPoint */ - Vector_HeadOnly, /* deprecated: use VectorType_HeadOnly */ - END_VectorPlotType_e, - Vector_Invalid = BadEnumValue -} VectorPlotType_e; -#endif - - -typedef enum -{ - VectorType_TailAtPoint, /* Vector_TailAtPoint */ - VectorType_HeadAtPoint, /* Vector_HeadAtPoint */ - VectorType_MidAtPoint, /* Vector_MidAtPoint */ - VectorType_HeadOnly, /* Vector_HeadOnly */ - END_VectorType_e, - VectorType_Invalid = BadEnumValue -} VectorType_e; - - -/* - * NOTE: ShadePlotType_e is deprecated. It must be retained to maintain - * backward compatibility with the TecUtil layer however. - * This has been replaced by LightingEffect_e. - */ -typedef enum -{ - Shade_SolidColor, - Shade_Paneled, - Shade_Gouraud, - Shade_ColoredPaneled, - Shade_ColoredGouraud, - END_ShadePlotType_e, - Shade_Invalid = BadEnumValue -} ShadePlotType_e; - -/* - * NOTE: LightingEffect_None is deprecated. It must remain - * in the list to allow macro processing of older - * (i.e. early v9) macros. - */ -typedef enum -{ - LightingEffect_Paneled, - LightingEffect_Gouraud, - LightingEffect_None, - END_LightingEffect_e, - LightingEffect_Invalid = BadEnumValue -} LightingEffect_e; - -typedef enum -{ - IJKLines_I, - IJKLines_J, - IJKLines_K, - END_IJKLines_e, - IJKLines_Invalid = BadEnumValue, - /* deprecated values */ - Lines_I = IJKLines_I, /* deprecated */ - Lines_J = IJKLines_J, /* deprecated */ - Lines_K = IJKLines_K, /* deprecated */ - Lines_Invalid = IJKLines_Invalid /* deprecated */ -} IJKLines_e; - -typedef enum -{ - IJKCellType_Planes, - IJKCellType_FacePlanes, - IJKCellType_Volume, - END_IJKCellType_e, - IJKCellType_Invalid = BadEnumValue -} IJKCellType_e; - - -/* - * Ver 6 used PlaneSet. Ver 7 uses CellType and Planes variables. - * - * "PlaneSet" in version 6 vs. IJKPlanes in v7: - * - * 'A' = AllPlanes CellType = IJKCellType_Volume - * 'd','e','f','C' = ComboPlanes CellType = IJKCellType_Planes, IJKPlanes = depends on defC - * 'F' = Faces Planes Only CellType = IJKCellType_FacePlanes - * 'I' = I-Planes CellType = IJKCellType_Planes, IJKPlanes = IJKPlanes_I - * 'J' = J-Planes CellType = IJKCellType_Planes, IJKPlanes = IJKPlanes_J - * 'K' = K-Planes CellType = IJKCellType_Planes, IJKPlanes = IJKPlanes_K - * - * - * NOTE: IJKPlanes_e is still used internally in tecplot (and in the TecUtil layer). - * it has been relagated to communicating which planes of an IJK zone are in - * use. - * - */ - -typedef enum -{ - IJKPlanes_I, - IJKPlanes_J, - IJKPlanes_K, - IJKPlanes_Face, /* used on the panel heap */ - IJKPlanes_IJ, /* deprecated */ - IJKPlanes_JK, /* deprecated */ - IJKPlanes_IK, /* deprecated */ - IJKPlanes_IJK, /* deprecated */ - IJKPlanes_Volume, - IJKPlanes_Unused, - END_IJKPlanes_e, - IJKPlanes_Invalid = BadEnumValue, - /* deprecated values */ - Planes_I = IJKPlanes_I, /* deprecated */ - Planes_J = IJKPlanes_J, /* deprecated */ - Planes_K = IJKPlanes_K, /* deprecated */ - Planes_IJ = IJKPlanes_IJ, /* deprecated */ - Planes_JK = IJKPlanes_JK, /* deprecated */ - Planes_IK = IJKPlanes_IK, /* deprecated */ - Planes_IJK = IJKPlanes_IJK, /* deprecated */ - Planes_Face = IJKPlanes_Face, /* deprecated */ - Planes_Volume = IJKPlanes_Volume, /* deprecated */ - Planes_Unused = IJKPlanes_Unused, /* deprecated */ - Planes_Invalid = IJKPlanes_Invalid /* deprecated */ -} IJKPlanes_e; - - - -typedef enum -{ - SurfacesToPlot_BoundaryFaces, - SurfacesToPlot_ExposedCellFaces, - SurfacesToPlot_IPlanes, - SurfacesToPlot_JPlanes, - SurfacesToPlot_KPlanes, - SurfacesToPlot_IJPlanes, - SurfacesToPlot_JKPlanes, - SurfacesToPlot_IKPlanes, - SurfacesToPlot_IJKPlanes, - SurfacesToPlot_All, - SurfacesToPlot_None, - END_SurfacesToPlot_e, - SurfacesToPlot_Invalid = BadEnumValue -} SurfacesToPlot_e; - -typedef enum -{ - PointsToPlot_SurfaceNodes, /* was _SurfacesOnly */ - PointsToPlot_AllNodes, /* was _All */ - PointsToPlot_SurfaceCellCenters, - PointsToPlot_AllCellCenters, - PointsToPlot_AllConnected, - END_PointsToPlot_e, -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY - PointsToPlot_SurfacesOnly = PointsToPlot_SurfaceNodes, /* deprecated */ - PointsToPlot_All = PointsToPlot_AllNodes, /* deprecated */ -#endif - PointsToPlot_Invalid = BadEnumValue -} PointsToPlot_e; - - -typedef enum -{ - SliceSurface_XPlanes, - SliceSurface_YPlanes, - SliceSurface_ZPlanes, - SliceSurface_IPlanes, - SliceSurface_JPlanes, - SliceSurface_KPlanes, - END_SliceSurface_e, - SliceSurface_Invalid = BadEnumValue -} SliceSurface_e; - - -typedef enum -{ - ClipPlane_None, - ClipPlane_BelowPrimarySlice, - ClipPlane_AbovePrimarySlice, - END_ClipPlane_e, - ClipPlane_Invalid = BadEnumValue -} ClipPlane_e; - -typedef enum -{ - Skip_ByIndex, - Skip_ByFrameUnits, - END_SkipMode_e, - Skip_Invalid = BadEnumValue -} SkipMode_e; - - -typedef enum -{ - EdgeType_Borders, - EdgeType_Creases, - EdgeType_BordersAndCreases, - END_EdgeType_e, - EdgeType_Invalid = BadEnumValue -} EdgeType_e; - -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref BorderLocation_e instead. - */ -typedef enum -{ - Boundary_None, /* deprecated: use BoundaryType_None */ - Boundary_Min, /* deprecated: use BoundaryType_Min */ - Boundary_Max, /* deprecated: use BoundaryType_Max */ - Boundary_Both, /* deprecated: use BoundaryType_Both */ - END_BoundPlotType_e, - Boundary_Invalid = BadEnumValue -} BoundPlotType_e; -#endif - -typedef enum -{ - BoundaryType_None, /* Boundary_None */ - BoundaryType_Min, /* Boundary_Min */ - BoundaryType_Max, /* Boundary_Max */ - BoundaryType_Both, /* Boundary_Both */ - END_BoundaryType_e, - BoundaryType_Invalid = BadEnumValue -} BoundaryType_e; /* deprecated */ - -typedef enum -{ - BorderLocation_None, /* Boundary_None */ - BorderLocation_Min, /* Boundary_Min */ - BorderLocation_Max, /* Boundary_Max */ - BorderLocation_Both, /* Boundary_Both */ - END_BorderLocation_e, - BorderLocation_Invalid = BadEnumValue -} BorderLocation_e; - -typedef enum -{ - ContourColorMap_SmRainbow, - ContourColorMap_LgRainbow, - ContourColorMap_Modern, - ContourColorMap_GrayScale, - ContourColorMap_Wild, - ContourColorMap_UserDef, - ContourColorMap_TwoColor, - ContourColorMap_RawUserDef, - END_ContourColorMap_e, - ContourColorMap_Invalid = BadEnumValue, - /* deprecated values */ - ColorMap_SmRainbow = ContourColorMap_SmRainbow, /* deprecated */ - ColorMap_LgRainbow = ContourColorMap_LgRainbow, /* deprecated */ - ColorMap_Modern = ContourColorMap_Modern, /* deprecated */ - ColorMap_GrayScale = ContourColorMap_GrayScale, /* deprecated */ - ColorMap_Wild = ContourColorMap_Wild, /* deprecated */ - ColorMap_UserDef = ContourColorMap_UserDef, /* deprecated */ - ColorMap_TwoColor = ContourColorMap_TwoColor, /* deprecated */ - ColorMap_RawUserDef = ContourColorMap_RawUserDef, /* deprecated */ - ColorMap_Invalid = ContourColorMap_Invalid /* deprecated */ -} ContourColorMap_e; - - - -typedef enum -{ - ErrorBar_Up, - ErrorBar_Down, - ErrorBar_Left, - ErrorBar_Right, - ErrorBar_Horz, - ErrorBar_Vert, - ErrorBar_Cross, - END_ErrorBar_e, - ErrorBar_Invalid = BadEnumValue -} ErrorBar_e; - - - -typedef enum -{ - ContourLineMode_UseZoneLineType, - ContourLineMode_SkipToSolid, - ContourLineMode_DashNegative, - END_ContourLineMode_e, - ContourLineMode_Invalid = BadEnumValue -} ContourLineMode_e; - - -/* BEGINREMOVEFROMADDON */ -typedef enum -{ - Panel_Bad, - Panel_Cell, /* FieldZone */ - Panel_Vector, /* FieldZone */ - Panel_Scatter, /* FieldZone */ - Panel_IJKBorderLine, /* FieldZone IJK border lines */ - Panel_CellEdge, /* FieldZone border lines and creases */ - Panel_FEBoundaryCell, /* FieldZone */ - Panel_NodeLabel, /* FieldZone */ - Panel_CellLabel, /* FieldZone */ - Panel_StreamtraceCell, /* Streamtrace COB */ - Panel_StreamtraceMarker, /* StreamtraceMarker COB (Scatter Symbol) */ - Panel_StreamtraceArrowhead, /* StreamtraceArrowhead COB (Vector) */ - Panel_IsoSurfaceCell, /* IsoSurface COB */ - Panel_IsoSurfaceCellEdge, /* IsoSurface COB border lines and creases (border lines and creases not currently used) */ - Panel_SliceCell, /* Slice COB */ - Panel_SliceVector, /* Slice COB */ - Panel_SliceIJKBorderLine, /* Slice COB IJK border lines */ - Panel_SliceCellEdge, /* Slice COB border lines and creases (creases not currently used) */ - Panel_Geom, /* Misc */ - Panel_Text, /* Misc */ - END_Panel_e, - Panel_Invalid = BadEnumValue -} Panel_e; -/* ENDREMOVEFROMADDON */ - - -typedef enum -{ - MessageBoxType_Error, - MessageBoxType_Warning, - MessageBoxType_Information, - MessageBoxType_Question, /* Ok, Cancel buttons */ - MessageBoxType_YesNo, - MessageBoxType_YesNoCancel, - MessageBoxType_WarningOkCancel, - END_MessageBoxType_e, - MessageBoxType_Invalid = BadEnumValue, - /* deprecated values */ - MessageBox_Error = MessageBoxType_Error, /* deprecated */ - MessageBox_Warning = MessageBoxType_Warning, /* deprecated */ - MessageBox_Information = MessageBoxType_Information, /* deprecated */ - MessageBox_Question = MessageBoxType_Question, /* deprecated */ - MessageBox_YesNo = MessageBoxType_YesNo, /* deprecated */ - MessageBox_YesNoCancel = MessageBoxType_YesNoCancel, /* deprecated */ - MessageBox_WarningOkCancel = MessageBoxType_WarningOkCancel, /* deprecated */ - MessageBox_Invalid = MessageBoxType_Invalid /* deprecated */ -} MessageBoxType_e; - - -typedef enum -{ - MessageBoxReply_Yes, - MessageBoxReply_No, - MessageBoxReply_Cancel, - MessageBoxReply_Ok, - END_MessageBoxReply_e, - MessageBoxReply_Invalid = BadEnumValue -} MessageBoxReply_e; - -typedef enum -{ - NumberFormat_Integer, - NumberFormat_FixedFloat, - NumberFormat_Exponential, - NumberFormat_BestFloat, - NumberFormat_SuperScript, - NumberFormat_CustomLabel, - NumberFormat_LogSuperScript, - NumberFormat_RangeBestFloat, - NumberFormat_DynamicLabel, - NumberFormat_TimeDate, - END_NumberFormat_e, - NumberFormat_Invalid = BadEnumValue -} NumberFormat_e; - -/* For backward compatibility with v9- */ -typedef NumberFormat_e ValueFormat_e; - - -typedef enum -{ - BackingStoreMode_QuickAndDirty, - BackingStoreMode_RealTimeUpdate, - BackingStoreMode_PeriodicUpdate, - END_BackingStoreMode_e, - BackingStoreMode_Invalid = BadEnumValue -} BackingStoreMode_e; - - -typedef enum -{ - TickDirection_In, - TickDirection_Out, - TickDirection_Centered, - END_TickDirection_e, - TickDirection_Invalid = BadEnumValue -} TickDirection_e; - -/* This enumerated type is no longer used as of Tecplot V10. */ -typedef enum -{ - AxisTitlePosition_Left, - AxisTitlePosition_Center, - AxisTitlePosition_Right, - END_AxisTitlePosition_e, - AxisTitlePosition_Invalid = BadEnumValue -} AxisTitlePosition_e; - -typedef enum -{ - AxisTitleMode_NoTitle, - AxisTitleMode_UseVarName, - AxisTitleMode_UseText, - END_AxisTitleMode_e, - AxisTitleMode_Invalid = BadEnumValue -} AxisTitleMode_e; - -typedef enum -{ - AxisAlignment_WithViewport, - AxisAlignment_WithOpposingAxisValue, - AxisAlignment_WithGridMin, - AxisAlignment_WithGridMax, - AxisAlignment_WithSpecificAngle, - AxisAlignment_WithGridAreaTop, - AxisAlignment_WithGridAreaBottom, - AxisAlignment_WithGridAreaLeft, - AxisAlignment_WithGridAreaRight, - END_AxisAlignment_e, - AxisAlignment_Invalid = BadEnumValue -} AxisAlignment_e; - -typedef enum -{ - FunctionDependency_XIndependent, - FunctionDependency_YIndependent, - END_FunctionDependency_e, - FunctionDependency_Invalid = BadEnumValue, - FunctionDependency_ThetaIndependent = FunctionDependency_XIndependent, - FunctionDependency_RIndependent = FunctionDependency_YIndependent -} FunctionDependency_e; - -typedef enum -{ - LegendShow_Yes, - LegendShow_No, - LegendShow_Auto, - END_LegendShow_e, - LegendShow_Invalid = BadEnumValue -} LegendShow_e; - -typedef enum -{ - LineMapSort_None, - LineMapSort_IndependentVar, - LineMapSort_DependentVar, - LineMapSort_SpecificVar, - END_LineMapSort_e, - LineMapSort_Invalid = BadEnumValue -} LineMapSort_e; - -typedef enum -{ - ContLegendLabelLocation_ContourLevels, - ContLegendLabelLocation_Increment, - ContLegendLabelLocation_ColorMapDivisions, - END_ContLegendLabelLocation_e, - ContLegendLabelLocation_Invalid = BadEnumValue -} ContLegendLabelLocation_e; - -typedef enum -{ - ThetaMode_Degrees, - ThetaMode_Radians, - ThetaMode_Arbitrary, - END_ThetaMode_e, - ThetaMode_Invalid = BadEnumValue -} ThetaMode_e; - -typedef enum -{ - Transform_PolarToRect, - Transform_SphericalToRect, - Transform_RectToPolar, - Transform_RectToSpherical, - END_Transform_e, - Transform_Invalid = BadEnumValue -} Transform_e; - -typedef enum -{ - LaunchDialogMode_ModalSync, - LaunchDialogMode_Modeless, - LaunchDialogMode_ModalAsync, - END_LaunchDialogMode_e, - LaunchDialogMode_Invalid = BadEnumValue -} LaunchDialogMode_e; - - -typedef enum -{ - SelectFileOption_ReadSingleFile, - SelectFileOption_ReadMultiFile, - SelectFileOption_AllowMultiFileRead, - SelectFileOption_WriteFile, - SelectFileOption_SelectDirectory, - END_SelectFileOption_e, - SelectFileOption_Invalid = BadEnumValue -} SelectFileOption_e; - -typedef enum -{ - BinaryFileVersion_Tecplot2006, - BinaryFileVersion_Tecplot2008, - BinaryFileVersion_Tecplot2009, - BinaryFileVersion_Current, - END_BinaryFileVersion_e, - BinaryFileVersion_Invalid = BadEnumValue -} BinaryFileVersion_e; - -/* CURRENTLY NOT USED .... */ -typedef enum -{ - ViewActionDrawMode_NoDraw, - ViewActionDrawMode_DrawTrace, - ViewActionDrawMode_DrawFull, - END_ViewActionDrawMode_e, - ViewActionDrawMode_Invalid = BadEnumValue -} ViewActionDrawMode_e; - -typedef enum -{ - PageAction_Create, - PageAction_Delete, - PageAction_Clear, - PageAction_SetCurrentToNext, - PageAction_SetCurrentToPrev, - PageAction_SetCurrentByName, - PageAction_SetCurrentByUniqueID, - END_PageAction_e, - PageAction_Invalid = BadEnumValue -} PageAction_e; - -typedef enum -{ - FrameAction_PushTop, - FrameAction_PopByNumber, - FrameAction_PopAtPosition, - FrameAction_DeleteActive, - FrameAction_FitAllToPaper, - FrameAction_PushByName, - FrameAction_PopByName, - FrameAction_PushByNumber, - FrameAction_ActivateTop, - FrameAction_ActivateNext, - FrameAction_ActivatePrevious, - FrameAction_ActivateAtPosition, - FrameAction_ActivateByName, - FrameAction_ActivateByNumber, - FrameAction_MoveToTopActive, - FrameAction_MoveToTopByName, - FrameAction_MoveToTopByNumber, - FrameAction_MoveToBottomActive, - FrameAction_MoveToBottomByName, - FrameAction_MoveToBottomByNumber, - END_FrameAction_e, - FrameAction_Invalid = BadEnumValue, - FrameAction_Pop = FrameAction_PopByNumber, - FrameAction_Push = FrameAction_PushByNumber, - FrameAction_DeleteTop = FrameAction_DeleteActive -} FrameAction_e; - -typedef enum -{ - DoubleBufferAction_On, - DoubleBufferAction_Off, - DoubleBufferAction_Swap, - END_DoubleBufferAction_e, - DoubleBufferAction_Invalid = BadEnumValue -} DoubleBufferAction_e; - -/* - * PickAction_CheckToAdd had the side effects of popping a frame that was selected - * only if not collecting. Pick_AddAtPosition avoids this. - */ -typedef enum -{ - PickAction_CheckToAdd, /* deprecated: use Pick_AddAtPosition */ - PickAction_AddAll, - PickAction_AddAllInRegion, - PickAction_Edit, - PickAction_Cut, - PickAction_Copy, - PickAction_Clear, - PickAction_Paste, - PickAction_PasteAtPosition, - PickAction_Shift, - PickAction_Magnify, - PickAction_Push, - PickAction_Pop, - PickAction_SetMouseMode, - PickAction_DeselectAll, - PickAction_AddZones, - PickAction_AddXYMaps, /* deprecated: use PickAction_AddLineMaps */ - PickAction_AddLineMaps, - PickAction_AddAtPosition, - END_PickAction_e, - PickAction_Invalid = BadEnumValue -} PickAction_e; - - -typedef enum -{ - ContourLevelAction_Add, - ContourLevelAction_New, - ContourLevelAction_DeleteRange, - ContourLevelAction_Reset, - ContourLevelAction_ResetToNice, - ContourLevelAction_DeleteNearest, - END_ContourLevelAction_e, - ContourLevelAction_Invalid = BadEnumValue -} ContourLevelAction_e; - -typedef enum -{ - ContourLabelAction_Add, - ContourLabelAction_DeleteAll, - END_ContourLabelAction_e, - ContourLabelAction_Invalid = BadEnumValue -} ContourLabelAction_e; - -typedef enum -{ - StreamtraceAction_Add, - StreamtraceAction_DeleteAll, - StreamtraceAction_DeleteRange, - StreamtraceAction_SetTerminationLine, - StreamtraceAction_ResetDeltaTime, - END_StreamtraceAction_e, - StreamtraceAction_Invalid = BadEnumValue -} StreamtraceAction_e; - -typedef enum -{ - ColorMapControlAction_RedistributeControlPoints, - ColorMapControlAction_CopyCannedColorMap, - ColorMapControlAction_ResetToFactoryDefaults, - END_ColorMapControlAction_e, - ColorMapControlAction_Invalid = BadEnumValue -} ColorMapControlAction_e; - -typedef enum -{ - ColorMapDistribution_Continuous, - ColorMapDistribution_Banded, - END_ColorMapDistribution_e, - ColorMapDistribution_Invalid = BadEnumValue -} ColorMapDistribution_e; - -typedef enum -{ - RGBMode_SpecifyRGB, - RGBMode_SpecifyRG, - RGBMode_SpecifyRB, - RGBMode_SpecifyGB, - END_RGBMode_e, - RGBMode_Invalid = BadEnumValue -} RGBMode_e; - -typedef enum -{ - TecUtilErr_None, - TecUtilErr_Undetermined, - END_TecUtilErr_e, - TecUtilErr_Invalid = BadEnumValue -} TecUtilErr_e; - -/* BEGINREMOVEFROMADDON */ -/* deprecated type from alpha/beta v10 */ -typedef enum -{ - AxisShape_Ray, - AxisShape_LineTwoDirections, - AxisShape_LShape, - AxisShape_CrossOrBox, - END_AxisShape_e, - AxisShape_Invalid = BadEnumValue -} AxisShape_e; - -/* licensing enums : keep hidden */ -typedef enum -{ - RunMode_Demo, - RunMode_Eval, - RunMode_Full, - /**/ - END_RunMode_e, - /**/ - RunMode_Invalid = BadEnumValue -} RunMode_e; - -/* ENDREMOVEFROMADDON */ - -typedef enum /* Custom exporter error message */ -{ - ExportCustReturnCode_Ok, - ExportCustReturnCode_Failed, - ExportCustReturnCode_TecplotLocked, - ExportCustReturnCode_ExporterNotLoaded, - ExportCustReturnCode_ExportCallbackFailed, - ExportCustReturnCode_NotAnImageExporter, - ExportCustReturnCode_NotAFieldDataExporter, - END_ExportCustReturnCode_e, - ExportCustReturnCode_Invalid = BadEnumValue -} ExportCustReturnCode_e; - -/** - * COB/Zone types. - */ -typedef enum -{ - CZType_FieldDataZone, - CZType_FEBoundaryCOB, - CZType_IsoSurfaceCOB, - CZType_SliceCOB, - CZType_StreamtraceCOB, - CZType_StreamtraceMarkerCOB, - CZType_StreamtraceArrowheadCOB, - END_CZType_e, - CZType_Invalid = BadEnumValue -} CZType_e; - -/** - */ -typedef enum -{ - FaceNeighborMode_LocalOneToOne, - FaceNeighborMode_LocalOneToMany, - FaceNeighborMode_GlobalOneToOne, - FaceNeighborMode_GlobalOneToMany, - END_FaceNeighborMode_e, - FaceNeighborMode_Invalid = BadEnumValue -} FaceNeighborMode_e; - - -/** - * Page render destinations. - */ -typedef enum -{ - PageRenderDest_None, - PageRenderDest_OnScreen, - PageRenderDest_OffScreen, - END_PageRenderDest_e, - PageRenderDest_Invalid = BadEnumValue -} PageRenderDest_e; - -/* BEGINREMOVEFROMADDON */ -/* - * Destination for all internal rendering (VDI/Gr) functions. For external - * linkage we translate RenderDest_WorkArea to PageRenderDest_OnScreen, - * RenderDest_OffscreenBitmap to PageRenderDest_OffScreen and - * RenderDest_Invalid to PageRenderDest_None. - */ -typedef enum -{ - RenderDest_WorkArea, /* Do not move from start of screen entries */ - RenderDest_ExampleText, - RenderDest_ExampleLightSourcePosition, - RenderDest_ExampleColorMap, - RenderDest_ExampleBasicColor, /* Do not move from end of screen entries */ - RenderDest_OffscreenBitmap, - RenderDest_Hardcopy, - END_RenderDest_e, - RenderDest_Invalid = BadEnumValue, - /* - * These next two are optimizations to make the - * RDT_IsScreen() macro as efficient as possible. - */ - RenderDest_FirstScreenEntry = RenderDest_WorkArea, - RenderDest_LastScreenEntry = RenderDest_ExampleBasicColor -} RenderDest_e; -/* ENDREMOVEFROMADDON */ - -typedef enum -{ - Stipple_All, - Stipple_Critical, - Stipple_None, - END_Stipple_e, - Stipple_Invalid = BadEnumValue -} Stipple_e; - -typedef enum -{ - DataFileType_Full, - DataFileType_Grid, - DataFileType_Solution, - END_DataFileType_e, - DataFileType_Invalid = BadEnumValue -} DataFileType_e; - -typedef enum -{ - ConditionAwakeReason_Signaled, - ConditionAwakeReason_TimedOut, - END_ConditionAwakeReason_e, - ConditionAwakeReason_Invalid = BadEnumValue -} ConditionAwakeReason_e; - -/**************************************************************** - * * - * STRUCTURE TYPEDEFS * - * * - ****************************************************************/ - -/* - * These are defined to work with pthreads, more work for WINAPI needed - */ -typedef struct _Mutex_a* Mutex_pa; - -typedef void*(STDCALL *ThreadFunction_pf)(ArbParam_t ThreadData); - -typedef struct _Condition_a* Condition_pa; - -typedef struct _JobControl_s* JobControl_pa; - -typedef void (STDCALL *ThreadPoolJob_pf)(ArbParam_t JobData); - -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined USE_OOSTYLE -#endif -#endif /* TECPLOTKERNEL */ -/* ENDREMOVEFROMADDON */ - -typedef struct _StringList_s *StringList_pa; -typedef struct _Menu_s *Menu_pa; -/* BEGINREMOVEFROMADDON */ -typedef struct _ArrayList_s *ArrayList_pa; -/* ENDREMOVEFROMADDON */ - -typedef enum -{ - ImageResizeFilter_Texture, - ImageResizeFilter_Box, - ImageResizeFilter_Lanczos2, - ImageResizeFilter_Lanczos3, - ImageResizeFilter_Triangle, - ImageResizeFilter_Bell, - ImageResizeFilter_BSpline, - ImageResizeFilter_Cubic, - ImageResizeFilter_Mitchell, - ImageResizeFilter_Gaussian, - END_ImageResizeFilter_e, - ImageResizeFilter_Invalid = BadEnumValue -} ImageResizeFilter_e; - -typedef enum -{ - VarStatus_Passive, - VarStatus_Custom, - VarStatus_Map, - VarStatus_Heap, - VarStatus_NotLoaded, - END_VarStatus_e, - VarStatus_Invalid = BadEnumValue -} VarStatus_e; - - - -/* BEGINREMOVEFROMADDON */ - -/* here until GR and GRHW layer can be rearranged. */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# if !defined NO_ASSERTS -# endif -#endif /* TECPLOTKERNEL */ - -/* ENDREMOVEFROMADDON */ - -typedef struct _Set_a *Set_pa; - -typedef struct -{ - double X; - double Y; - double Z; -} XYZ_s; - -/* BEGINREMOVEFROMADDON */ - -typedef struct _Generic3Var_s -{ - double V1; - double V2; - double V3; -} Generic3Var_s; - -typedef struct _ThetaR_s -{ - double Theta; - double R; -} ThetaR_s; - -/* - * This union is designed to allow different plottypes - * to access the same values by different names. In - * C++ we could use member access functions, or we - * could have used macros, but instead we use this - * union. NOTE: This only works if all the structures - * have the same alignment. - */ -typedef union _AnchorPos_u -{ - Generic3Var_s Generic; - XYZ_s XYZ; - ThetaR_s ThetaR; -} AnchorPos_u; - -typedef struct _DataFileInfo_s -{ - char *PrimaryFName; - char *TempBinaryFName; - DataFileType_e FileType; - FileOffset_t DataFileOffset; - StringList_pa VarName; - EntIndex_t NumZones; - EntIndex_t NumVars; - double SolutionFileTime; - struct _DataFileInfo_s *NextFile; -} DataFileInfo_s; - -typedef struct _StylesheetIOFlags_s -{ - Boolean_t IncludePlotStyle; - Boolean_t IncludeFieldAndMapStyle; /* Only used for undo */ - Boolean_t IncludeUniqueIDs; /* Only used for undo */ - Boolean_t IncludeText; - Boolean_t IncludeGeom; - Boolean_t IncludeGeomImageData; - Boolean_t IncludeAuxData; - Boolean_t IncludeStreamPositions; - Boolean_t IncludeContourLevels; - Boolean_t IncludeFactoryDefaults; /* Only used when writing */ - Boolean_t CompressStyleCommands; /* Only used when writing */ - Boolean_t MergeStyle; /* Only used when reading */ - Boolean_t IncludeFrameSizeAndPosition; /* Only used when reading */ - Boolean_t UseRelativePaths; -} StylesheetIOFlags_s; - - -/** - */ -typedef struct -{ - Boolean_t Show; /* power switch */ - Boolean_t ShowMesh; - Boolean_t ShowContour; - Boolean_t ShowShade; - Boolean_t UseLightingEffect; - Boolean_t UseTranslucency; -} IsoSurfaceLayers_s; - -/** - */ -typedef struct -{ - Boolean_t Show; /* power switch */ - Boolean_t ShowMesh; - Boolean_t ShowContour; - Boolean_t ShowVector; - Boolean_t ShowShade; - Boolean_t ShowEdge; - Boolean_t UseLightingEffect; - Boolean_t UseTranslucency; -} SliceLayers_s; - -/** - */ -typedef struct -{ - Boolean_t Show; /* power switch */ - Boolean_t ShowPaths; - Boolean_t ShowDashes; - Boolean_t ShowArrowheads; - Boolean_t ShowMesh; - Boolean_t ShowContour; - Boolean_t ShowShade; - Boolean_t ShowMarkers; - Boolean_t UseLightingEffect; - Boolean_t UseTranslucency; -} StreamtraceLayers_s; - -/** - */ -typedef struct -{ -#if 0 /* in the future we may add a main power switch */ - Boolean_t Show; /* power switch */ -#endif - TwoDDrawOrder_e TwoDDrawOrder; - Boolean_t ShowMesh; - Boolean_t ShowContour; - Boolean_t ShowVector; - Boolean_t ShowScatter; - Boolean_t ShowShade; - Boolean_t ShowEdge; - Boolean_t UseLightingEffect; - Boolean_t UseTranslucency; -} FieldLayers_s; - -/** - * General purpose field layers structure used for low level drawing code only. - * SetupXxxx is responsible for populating this general field layers structure - * from the specific layer structures above for CZInfo. - */ -typedef struct -{ - Boolean_t ShowMesh; - Boolean_t ShowContour; - Boolean_t ShowVector; - Boolean_t ShowScatter; - Boolean_t ShowShade; - Boolean_t ShowEdge; - Boolean_t UseLightingEffect; - Boolean_t UseTranslucency; -} CZFieldLayers_s; - -/** - */ -typedef struct _LinePlotLayers_s -{ -#if 0 /* in the future we may add a main power switch */ - Boolean_t Show; /* power switch */ -#endif - Boolean_t ShowLines; - Boolean_t ShowSymbols; - Boolean_t ShowBarCharts; - Boolean_t ShowErrorBars; -} LinePlotLayers_s; - - -typedef union _InterfaceAdjust_u -{ - double ScaleFact; - LgIndex_t Shift; -} InterfaceAdjust_u; - -typedef Boolean_t (*SuffixModifier_pf)(TP_IN_OUT double* Value, - const char* Suffix); - -typedef struct _InputSpecs_s -{ - Input_e Type; - double Min; - double Max; - InterfaceAdjust_u InterfaceAdjust; - SuffixModifier_pf SuffixModifier; -} InputSpec_s; - - -typedef struct _RGB_s -{ - ColorIndex_t R; - ColorIndex_t G; - ColorIndex_t B; -} RGB_s; - - -typedef struct _ControlPoint_s -{ - double ColorMapFraction; - RGB_s LeadRGB; - RGB_s TrailRGB; -} ControlPoint_s; - - -typedef struct _ColorMapBand_s -{ - short NumControlPoints; - ControlPoint_s ControlPoint[MaxColorMapControlPoints]; -} ColorMapBand_s; - - -typedef struct _EventAction_s -{ - int I; - int J; - int LastI; - int LastJ; - int BaseI; - int BaseJ; - int ButtonOrKey; - Event_e Event; - Boolean_t IsShifted; - Boolean_t IsAlted; - Boolean_t IsControlled; - Boolean_t WasShiftedOnButtonPress; - Boolean_t WasAltedOnButtonPress; - Boolean_t WasControlledOnButtonPress; -} EventAction_s; - -typedef struct _MacroCmd_s -{ - LString_t MacroLine; - struct _MacroCmd_s *NextCmd; -} MacroCmd_s; - - -typedef struct _IntegerRect_s -{ - LgIndex_t X1; - LgIndex_t Y1; - LgIndex_t X2; - LgIndex_t Y2; -} IntegerRect_s; - - -typedef struct _Rect_s -{ - double X1; - double Y1; - double X2; - double Y2; -} Rect_s; - -typedef struct _XY_s -{ - double X; - double Y; -} XY_s; - -typedef struct _IJKSkip_s -{ - LgIndex_t I; - LgIndex_t J; - LgIndex_t K; -} IJKSkip_s; - - - -/* - * - * NOTE ON RANGES (Ent and Index) - * - * Min, Max and Skip all use the following assignment logic: - * - * 0 = First element - * -1 = mxindex value, (X[mxindex-1] in c) - * -n = mxindex-n+1 value (X[mxindex+n] in c) - * n = n+1 value (X[n] in c) - * - */ - -/* - * 2/28/95: NOTE: EntRange_s is no longer used but may be - * needed later. - */ - -typedef struct _EntRange_s -{ - EntIndex_t Min; - EntIndex_t Max; - EntIndex_t Skip; -} EntRange_s; - - -typedef struct _IndexRange_s -{ - LgIndex_t Min; - LgIndex_t Max; - LgIndex_t Skip; -} IndexRange_s; - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined (THREED) -#endif -#endif /* TECPLOTKERNEL */ - -typedef struct _TextShape_s -{ - Font_e Font; - double Height; - Units_e SizeUnits; -} TextShape_s; - -#define AsciiShapeFontIsGreek(S) (((S)->UseBaseFont == FALSE) && ((S)->FontOverride == Font_Greek)) -#define AsciiShapeFontIsMath(S) (((S)->UseBaseFont == FALSE) && ((S)->FontOverride == Font_Math)) -#define AsciiShapeFontIsUserDefined(S) (((S)->UseBaseFont == FALSE) && ((S)->FontOverride == Font_UserDefined)) - - -typedef struct -{ - Boolean_t UseBaseFont; /* (Default = TRUE) */ - Font_e FontOverride;/* (Default = Font_Math)*/ - SymbolChar_t Char; -} AsciiShape_s; - -typedef struct _SymbolShape_s -{ - GeomShape_e GeomShape; - Boolean_t IsAscii; - AsciiShape_s AsciiShape; -} SymbolShape_s; - -#ifdef NOT_USED -struct _AddOnList_a -{ - /* added temporarily so Windows makelibtec works */ - int dummy; -}; -#endif - -/* ENDREMOVEFROMADDON */ - -typedef struct _AddOnList_a *AddOn_pa; - -typedef struct _NodeMap_a *NodeMap_pa; - -/* BEGINREMOVEFROMADDON */ -typedef struct _StylePointState_a *StylePointState_pa; -typedef struct _DataElementState_a *DataElementState_pa; -typedef struct _StyleElementState_a *StyleElementState_pa; -typedef struct _NormalCache_a *NormalCache_pa; -/* ENDREMOVEFROMADDON */ - - -#define INVALID_INDEX (-1) - -/* used to indicate that no neighboring element or zone exists */ -#define NO_NEIGHBORING_ELEMENT (-1) -#define NO_NEIGHBORING_ZONE (-1) - -typedef struct _FaceNeighbor_a *FaceNeighbor_pa; - -/** - */ -typedef struct _FaceMap_a *FaceMap_pa; - -/** - */ -typedef struct _ElemToFaceMap_a *ElemToFaceMap_pa; - -/** - */ -typedef struct _NodeToElemMap_a *NodeToElemMap_pa; - -/* BEGINREMOVEFROMADDON */ - -/* - * Enumerates the face neighbor array members to make indexed members - * identifiable. - */ -typedef enum -{ - FaceNeighborMemberArray_CellFaceNbrs, - FaceNeighborMemberArray_BndryConnectNbrsCompObscure, - FaceNeighborMemberArray_BndryConnectFaceToCellsMap, - FaceNeighborMemberArray_BndryConnectIsPerfectNbr, - FaceNeighborMemberArray_BndryConnectCellList, - FaceNeighborMemberArray_BndryConnectZoneList, - END_FaceNeighborMemberArray_e, - FaceNeighborMemberArray_Invalid = BadEnumValue -} FaceNeighborMemberArray_e; - -int const FaceNeighborNumMemberArrays = (int)END_FaceNeighborMemberArray_e; - -/* - * Enumerates the face map's array members to make indexed members - * identifiable. - */ -typedef enum -{ - FaceMapMemberArray_FaceNodeOffsets, - FaceMapMemberArray_FaceNodes, - FaceMapMemberArray_FaceLeftElems, - FaceMapMemberArray_FaceRightElems, - FaceMapMemberArray_FaceBndryItemOffsets, - FaceMapMemberArray_FaceBndryItemElems, - FaceMapMemberArray_FaceBndryItemElemZones, - END_FaceMapMemberArray_e, - FaceMapMemberArray_Invalid = BadEnumValue -} FaceMapMemberArray_e; - -const int FaceMapNumMemberArrays = (int)END_FaceMapMemberArray_e; - -/* - * Enumerates the element to face map's array members to make indexed members - * identifiable. - */ -typedef enum -{ - ElemToFaceMapMemberArray_ElemFaceOffsets, - ElemToFaceMapMemberArray_ElemFaces, - END_ElemToFaceMapMemberArray_e, - ElemToFaceMapMemberArray_Invalid = BadEnumValue -} ElemToFaceMapMemberArray_e; - -const int ElemToFaceMapNumMemberArrays = (int)END_ElemToFaceMapMemberArray_e; - -/* - * Enumerates the element map's array members to make indexed members - * identifiable. - */ -typedef enum -{ - NodeToElemMapMemberArray_NodeElemOffsets, - NodeToElemMapMemberArray_NodeElems, - END_NodeToElemMapMemberArray_e, - NodeToElemMapMemberArray_Invalid = BadEnumValue -} NodeToElemMapMemberArray_e; - -const int NodeToElemMapNumMemberArrays = (int)END_NodeToElemMapMemberArray_e; - -/* ENDREMOVEFROMADDON */ - - -typedef struct _FieldData_a *FieldData_pa; - -/** - */ -typedef struct _AuxData_s *AuxData_pa; - - -/** - * Enumerates the data value structure of a variable in a data file. - * For all but ordered cell centered data the classic, classic padded and - * classic plus formats are identical. All values are laid out contiguously - * in the file. The number of values written depends upon the value location: - * - * - FE nodal:\n - * The number of values equals the number of data points. - * - FE cell centered:\n - * The number of values equals the number of elements. - * - Ordered nodal:\n - * The number of values equals the number of data points. - * - Ordered cell centered:\n - * There are three formats: - * -# Classic (binary version < 103):\n - * Classic is a compressed format of ordered cell centered data in - * that it does not include ghost cells. The cell index of each cell - * does not correspond to the lowest corner point index of each cell - * as it does internally in Tecplot.\n - * The number of values in the data file is calculated as follows: - * @code - * NumValues = MAX(IMax-1,1) * MAX(JMax-1,1) * MAX(KMax-1,1); - * @endcode - * Where IMax, JMax, and KMax are the maximum point dimensions of the - * zone. - * -# Classic padded (binary version < 104):\n - * Classic padded is an intermediary format that was available only - * within Tecplot, Inc. The cell centered data includes the ghost cells - * and each cell index corresponds to the lowest corner point index of - * each cell.\n - * The number of values in the data file (including ghost cells) is - * calculated as follows: - * @code - * NumValues = IMax * JMax * KMax; - * @endcode - * Where IMax, JMax, and KMax are the maximum point dimensions of the - * zone. The contents of the ghost cells is undefined and should not - * be used. - * -# Classic plus (binary version >= 104):\n - * Classic plus is similar to classic padded except that it does not - * include the ghost cells of the slowest moving index greater than - * one.\n - * The number of values in the data file (including ghost cells) is - * calculated as follows: - * @code - * FinalIMax = IMax; - * FinalJMax = JMax; - * FinalKMax = KMax; - * - * // decrement the max index of the slowest moving index greater than 1 - * if (KMax > 1) - * FinalKMax--; - * else if (JMax > 1) - * FinalJMax--; - * else if (IMax > 1) - * FinalIMax--; - * - * NumValues = FinalIMax * FinalJMax * FinalKMax; - * @endcode - * Where IMax, JMax, and KMax are the maximum point dimensions of the - * zone. The contents of the ghost cells is undefined and should not - * be used. - */ -typedef enum -{ - DataValueStructure_Classic, - DataValueStructure_ClassicPadded, - DataValueStructure_ClassicPlus, - END_DataValueStructure_e, - /* BEGINREMOVEFROMADDON */ - DataValueStructure_Latest = (END_DataValueStructure_e - 1), - /* ENDREMOVEFROMADDON */ - DataValueStructure_Invalid = BadEnumValue -} DataValueStructure_e; - -/** - * Enumerates the data node structure of a node map in a data file. The classic - * format uses 1 based nodes while the classic plus format uses zero based - * node. - */ -typedef enum -{ - DataNodeStructure_Classic, /* ones based node maps */ - DataNodeStructure_ClassicPlus, /* zero based node maps */ - END_DataNodeStructure_e, - DataNodeStructure_Invalid = BadEnumValue -} DataNodeStructure_e; - -/** - * Enumerates the variable locking modes. The \ref VarLockMode_ValueChange mode - * prevents modification of the values in a variable but permits deletion, and - * the \ref VarLockMode_Delete mode prevents deletion of a varaible but permits - * modification. - */ -typedef enum -{ - VarLockMode_ValueChange, - VarLockMode_Delete, - END_VarLockMode_e, - VarLockMode_Invalid = BadEnumValue -} VarLockMode_e; - -typedef enum -{ - FieldMapMode_UseStrandID, - FieldMapMode_UseZoneSet, - END_FieldMapMode_e, - FieldMapMode_Invalid = BadEnumValue -} FieldMapMode_e; - -typedef enum -{ - UnloadStrategy_Auto, - UnloadStrategy_NeverUnload, - UnloadStrategy_MinimizeMemoryUse, - END_UnloadStrategy_e, - UnloadStrategy_Invalid = BadEnumValue -} UnloadStrategy_e; - -/* BEGINREMOVEFROMADDON */ - - - -typedef struct -{ - ColorIndex_t PresetZoneColor; - Boolean_t IsInBlockFormat; -} ZoneLoadInfo_s; - -/* - * Note: For FE Data, NumPtsI = Number of data points. - * NumPtsJ = Number of elements. - * NumPtsK = Number of points per element. - */ - -typedef struct _ZoneSpec_s -{ - UniqueID_t UniqueID; - ZoneName_t Name; - EntIndex_t ParentZone; - Strand_t StrandID; - double SolutionTime; - LgIndex_t NumPtsI; // ...NumDataPts - LgIndex_t NumPtsJ; // ...NumElements - LgIndex_t NumPtsK; // ...NumPtsPerElem or NumFaces - LgIndex_t ICellDim; // ...currently not used - LgIndex_t JCellDim; // ...currently not used - LgIndex_t KCellDim; // ...currently not used - ZoneType_e Type; - ZoneLoadInfo_s ZoneLoadInfo; - AuxData_pa AuxData; - Boolean_t BuildZoneOptInfo; - - /* classic data only */ - FaceNeighborMode_e FNMode; - Boolean_t FNAreCellFaceNbrsSupplied; // ...meaning we don't need to update them - - /* polytope data only */ - LgIndex_t NumFaceNodes; - LgIndex_t NumFaceBndryFaces; - LgIndex_t NumFaceBndryItems; -} ZoneSpec_s; - - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -typedef struct _GenericImage_a *GenericImage_pa; - -typedef struct _TextBox_s -{ - TextBox_e BoxType; /* Used to be textbox */ - double Margin; /* Used to be textboxmargin */ - double LineThickness; /* Used to be textboxmargin */ - ColorIndex_t BColor; /* Used to be textboxcolor */ - ColorIndex_t FillBColor; /* Used to be textboxfillcolor */ -} TextBox_s; - - -typedef struct _Text_s -{ - UniqueID_t UniqueID; /* Not used yet */ - AnchorPos_u AnchorPos; - CoordSys_e PositionCoordSys; - EntIndex_t Zone; - Boolean_t AttachToZone; /* New */ - ColorIndex_t BColor; /* Used to be TextColor */ - TextShape_s TextShape; - TextBox_s Box; /* Box items used to be here*/ - double Angle; /* NOTE: short in v6, now in rad */ - TextAnchor_e Anchor; /* New */ - double LineSpacing; /* New */ - Scope_e Scope; - char *MacroFunctionCommand; - Clipping_e Clipping; - char *Text; - struct _Text_s *NextText; - struct _Text_s *PrevText; -} Text_s; - - -typedef struct _GenericGeomData_s -{ - FieldData_pa V1Base; - FieldData_pa V2Base; - FieldData_pa V3Base; -} GenericGeomData_s; - -typedef struct _PolarGeomData_s -{ - FieldData_pa ThetaBase; - FieldData_pa RBase; -} PolarGeomData_s; - -typedef struct _CartesianGeomData_s -{ - FieldData_pa XBase; - FieldData_pa YBase; - FieldData_pa ZBase; -} CartesianGeomData_s; - -/* - * This union is designed to allow different plottypes - * to access the same values by different names. In - * C++ we could use member access functions, or we - * could have used macros, but instead we use this - * union. NOTE: This only works if all the structures - * have the same alignment. - */ -typedef union _GeomData_u -{ - GenericGeomData_s Generic; - CartesianGeomData_s XYZ; - PolarGeomData_s ThetaR; -} GeomData_u; - -typedef struct _Geom_s -{ - UniqueID_t UniqueID; - GeomType_e GeomType; - CoordSys_e PositionCoordSys; - AnchorPos_u AnchorPos; - Boolean_t AttachToZone; - EntIndex_t Zone; - ColorIndex_t BColor; - Boolean_t IsFilled; - ColorIndex_t FillBColor; - LinePattern_e LinePattern; - double PatternLength; - double LineThickness; - Scope_e Scope; - DrawOrder_e DrawOrder; - Clipping_e Clipping; - FieldDataType_e DataType; - char *MacroFunctionCommand; - ArrowheadStyle_e ArrowheadStyle; - ArrowheadAttachment_e ArrowheadAttachment; - double ArrowheadSize; - double ArrowheadAngle; - SmInteger_t NumEllipsePts; - char *ImageFileName; - LgIndex_t ImageNumber; /* used only to locate images within .lpk files */ - Boolean_t MaintainAspectRatio; - double PixelAspectRatio; /* VerticalPixelsPerHorizontalPixel */ - SmInteger_t NumSegments; - SegPtsArray_t NumSegPts; - GeomData_u GeomData; - ImageResizeFilter_e ImageResizeFilter; - /* Internal Scratch */ - GenericImage_pa _ImageData; - struct _Geom_s *_NextGeom; - struct _Geom_s *_PrevGeom; -} Geom_s; - - -typedef struct _Text_s *Text_pa; -typedef struct _Geom_s *Geom_pa; - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined USE_OOSTYLE -#endif -#if defined USE_OOSTYLE -#endif -#endif /* TECPLOTKERNEL */ - -/* ENDREMOVEFROMADDON */ -/* - NO DOXYGEN COMMENT GENERATION - - * Page creation callback is responsible for creating a RenderHandler for the page and - * calling @ref TecEngPageCreateNew(ArbParam_t RenderHandle) - * - * The RenderHandler type can be anything, for example,a pointer to a class instance that will - * be responsible for handling requests from the engine to perform operations on - * a page. - * - * @param PageConstructionHints a string list of construction hints that can be used for deciding - * how the page should be displayed in an application's UI. The construction hints could have been - * restored from a saved layout file or passed to @ref TecUtilPageCreateNew function. - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @return TRUE if page create request was handled and TecEngPageCreateNew() returned TRUE. - * - * @sa TecEngPageCreateRegisterCallback, TecEngPageCreateNew - * - * @since - * 11.0-5-014 - */ -typedef Boolean_t (STDCALL *PageCreateCallback_pf)(StringList_pa PageConstructionHints, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Page destruction callback responsible for destroying a page. - * - * @param PageClientData - * Data associated with a page that was returned from the PageCreateCallback_pf - * callback function. You will get a different value for each page. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @sa TecEngPageDestroyRegisterCallback, PageCreateCallback_pf - * - * @since - * 11.0-5-014 - */ -typedef void (STDCALL *PageDestroyCallback_pf)(ArbParam_t PageClientData, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for informing the parent application of a new current page. - * Note that this could be done via a state change monitor but a more secure method - * is needed as state changes may be shut down from time to time. - * - * @param PageClientData - * Data associated with a page that was returned from the PageCreateCallback_pf - * callback function. You will get a different value for each page. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @since - * 11.0-5-017 - */ -typedef void (STDCALL *PageNewCurrentCallback_pf)(ArbParam_t PageClientData, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for creation of an offscreen image. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @param ImageHandle handle to a newly created image. This is an output parameter. - * - * @return TRUE if an offscreen image was created successfully. - * - * @since - * 11.2-0-054 - */ -typedef Boolean_t (STDCALL *OffscreenImageCreateCallback_pf)(ScreenDim_t Width, - ScreenDim_t Height, - ArbParam_t RegistrationClientData, - TP_OUT ArbParam_t* ImageHandle); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for destruction of an offscreen image. - * - * @param ImageHandle handle to an offscreen image to be destroyed. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @since - * 11.2-0-054 - */ -typedef void (STDCALL *OffscreenImageDestroyCallback_pf)(ArbParam_t ImageHandle, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for returning RGB values for a row. - * - * @param ImageHandle - * Handle to an off-screen image from which RGB values to be retrieved. - * - * @param Row - * Row for which RGB values to be retrieved. - * - * @param RedArray - * Array to receive the red byte values for the specified Row. The number of values in - * the array must equal the width of the image. The array address is maintained by the - * Tecplot Engine until the image is destroyed however it is reused for each invocation - * of this callback. - * - * @param GreenArray - * Array to receive the green byte values for the specified Row. The number of values in - * the array must equal the width of the image. The array address is maintained by the - * Tecplot Engine until the image is destroyed however it is reused for each invocation - * of this callback. - * - * @param BlueArray - * Array to receive the blue byte values for the specified Row. The number of values in - * the array must equal the width of the image. The array address is maintained by the - * Tecplot Engine until the image is destroyed however it is reused for each invocation - * of this callback. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @return TRUE if successful, FALSE otherwise. - * - * @since - * 11.2-0-054 - */ -typedef Boolean_t (STDCALL *OffscreenImageGetRGBRowCallback_pf)(ArbParam_t ImageHandle, - ScreenDim_t Row, - ArbParam_t RegistrationClientData, - TP_ARRAY_OUT Byte_t* RedArray, - TP_ARRAY_OUT Byte_t* GreenArray, - TP_ARRAY_OUT Byte_t* BlueArray); - -#if defined MSWIN -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for printing an image on the specified printer DC - * - * @param PrintDC a device context of a printer on which the printing should be performed. - * - * @param ImageHandle handle to an image to print. - * - * @param Palette specifies if an image should be printed as a color or monochrome image. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @return TRUE if the printing operation was successfull. - * - * @since - * 11.2-0-463 - */ -typedef Boolean_t (STDCALL *WinPrintImageCallback_pf)(HDC PrintDC, - ArbParam_t ImageHandle, - Palette_e Palette, - ArbParam_t RegistrationClientData); - -#endif /* MSWIN */ - -#if defined MSWIN -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for providing a printer context. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @return HDC context of the destination printer. - * - * @since - * 11.2-0-468 - */ -typedef HDC(STDCALL *WinPrinterGetContextCallback_pf)(ArbParam_t RegistrationClientData); - -#endif /* MSWIN */ - -/* - NO DOXYGEN COMMENT GENERATION - - * Render destination callback responsible for switching the render destination - * of the OpenGL drawing state when requested by the Tecplot engine. - * - * @since - * 11.0-0-397 - * - * @param PageRenderDest - * Enumeration of page render destination of interest. - * - * @param RenderDestClientData - * Data associated with a render destination, such as returned from the PageCreateCallback_pf or - * OffscreenImageCreate_pf callback functions. - * - * @param RegistrationClientData - * Data associated with the registration of this function. This will always return - * the value supplied in the original registration of this function. - * - * @return - * TRUE if render destination was set successfully. FALSE, otherwise. - * - * @sa TecEngRenderDestRegisterCallback - */ -typedef Boolean_t (STDCALL *RenderDestCallback_pf)(PageRenderDest_e PageRenderDest, - ArbParam_t RenderDestClientData, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Render query callback responsible for informing Tecplot if the page - * associated with the PageClientData should be rendered into. - * - * @since - * 11.0-5-018 - * - * @param PageClientData - * Data associated with a page that was returned from the - * PageCreateCallback_pf callback function. - * @param RegistrationClientData - * Data associated with the registration of this function. This will always - * return the value supplied in the original registration of this function. - * - * - * @return - * TRUE if Tecplot should render to the page identified by the - * PageClientData, FALSE otherwise. - * - * @sa TecEngRenderQueryRegisterCallback - */ -typedef Boolean_t (STDCALL *RenderQueryCallback_pf)(ArbParam_t PageClientData, - ArbParam_t RegistrationClientData); -/* - NO DOXYGEN COMMENT GENERATION - - * Render destination size callback responsible for returning the size of the - * specified render destination when requested by the Tecplot engine. - * - * @since - * 11.0-0-397 - * - * @param PageClientData - * Data associated with a page that was returned from the - * PageCreateCallback_pf callback function. - * @param RegistrationClientData - * Client data that was registered with the callback. - * @param Width - * Pointer who's contents should receive the width of the current render - * destination. - * @param Height - * Pointer who's contents should receive the height of the current render - * destination. - * - * @sa TecEngRenderDestSizeRegisterCallback - */ -typedef void (STDCALL *RenderDestSizeCallback_pf)(ArbParam_t PageClientData, - ArbParam_t RegistrationClientData, - TP_OUT LgIndex_t* Width, - TP_OUT LgIndex_t* Height); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for swapping the front and back buffers for the current - * OpenGL drawing state's render destination when requested by the Tecplot - * engine. - * - * @since - * 11.0-0-397 - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @sa TecUtilpBuffersRegisterCallback - */ -typedef void (STDCALL *SwapBuffersCallback_pf)(ArbParam_t RegistrationClientData); - - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for querying of key states. - * - * @since - * 11.0-0-399 - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * @param IsShiftKeyDown - * Boolean pointer. If non-NULL, set the boolean to TRUE if the Shift key is - * down or FALSE if it is up. - * @param IsAltKeyDown - * Boolean pointer. If non-NULL, set the boolean to TRUE if the Alt key is - * down or FALSE if it is up. - * @param IsCntrlKeyDown - * Boolean pointer. If non-NULL, set the boolean to TRUE if the Cntrl key is - * down or FALSE if it is up. - * - * @sa TecEngKeyStateRegisterCallback - */ -typedef void (STDCALL *KeyStateCallback_pf)(ArbParam_t RegistrationClientData, - TP_OUT Boolean_t* IsShiftKeyDown, - TP_OUT Boolean_t* IsAltKeyDown, - TP_OUT Boolean_t* IsCntrlKeyDown); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for querying of a mouse button state. - * - * @since - * 11.0-0-424 - * - * @param Button - * Mouse button number to query. Button numbers start at one. - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @return - * TRUE if the specified mouse button is down, FALSE otherwise. - * - * @sa TecEngMouseButtonStateRegisterCallback - */ -typedef Boolean_t (STDCALL *MouseButtonStateCallback_pf)(int Button, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for setting wait cursor when requested by the kernel - * - * @since - * 11.2-0-302 - * - * @param Activate - * TRUE if the kernel is requesting that the wait cursor be activated. - * FALSE if the kernel is requesting that the wait cursor be deactivated. - * @param RegistractionClientData - * Client data that was registered with the callback. - * - * @sa TecEngWaitCursorStateRegisterCallback - */ -typedef void (STDCALL *WaitCursorStateCallback_pf)(Boolean_t Activate, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for setting cursor style when requested by the kernel - * - * @since - * 11.2-0-302 - * - * @param CursorStyle - * The cursor style which the kernel is requesting. - * @param RenderHandle - * Handle to page where new cursor shape is being set. - * @param RegistractionClientData - * Client data that was registered with the callback. - * - * @sa TecEngBaseCursorStyleRegisterCallback - */ -typedef void (STDCALL *BaseCursorStyleCallback_pf)(CursorStyle_e CursorStyle, - ArbParam_t RenderHandle, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for processing events when the Tecplot engine is busy - * peforming a requested operation. This callback will be called at regular - * intervals to repair the interface and if required check for interrupts. Very - * little work should be done by this function. - * - * @since - * 11.0-0-415 - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @sa TecEngProcessBusyEventsRegisterCallback, TecUtilInterrupt - */ -typedef void (STDCALL *ProcessBusyEventsCallback_pf)(ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for launching a dialog. - * - * @since - * 11.0-0-415 - * - * @param RegistrationClientData - * Client data that was registered with this launch dialog callback. - * - * @return - * TRUE if the dialog was launched, FALSE if it could not be launched - * programmatically. - * - * @sa TecUtilDialogLaunch, TecUtilDialogDrop - */ -typedef Boolean_t (STDCALL *DialogLaunchCallback_pf)(ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for dropping a dialog. - * - * @since - * 11.0-0-407 - * - * @param RegistrationClientData - * Client data that was registered with this drop dialog callback. - * - * @sa TecUtilDialogLaunch, TecUtilDialogDrop - */ -typedef void (STDCALL *DialogDropCallback_pf)(ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for querying of the physical display's horizontal and - * vertical dot pitch. - * - * @since - * 11.0-0-407 - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * @param IDotsPerCm - * Pointer who's contents should receive the physical display's horizontal - * dot pitch in terms of the number of dots per centimeter. - * @param JDotsPerCm - * Pointer who's contents should receive the physical display's vertical - * dot pitch in terms of the number of dots per centimeter. - * - * @sa TecEngDotPitchRegisterCallback - */ -typedef void (STDCALL *DotPitchCallback_pf)(ArbParam_t RegistrationClientData, - TP_OUT double* IDotsPerCm, - TP_OUT double* JDotsPerCm); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for querying of the physical display's width and - * height in pixels. - * - * @since - * 11.2-0-471 - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * @param WidthInPixels - * Pointer who's contents should receive the physical display's width - * in pixels. NULL may be passed. - * @param HeightInPixels - * Pointer who's contents should receive the physical display's height - * in pixels. NULL may be passed. - * - * @sa TecEngScreenSizeRegisterCallback - */ -typedef void (STDCALL *ScreenSizeCallback_pf)(ArbParam_t RegistrationClientData, - TP_OUT int* WidthInPixels, - TP_OUT int* HeightInPixels); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for displaying a message box dialog and returning the - * user's response. - * - * @since - * 11.0-0-415 - * - * @param MessageString - * Message string to display in the dialog. - * @param MessageBoxType - * Type of message box to display. - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @return - * Result of user's response to the dialog. - * - * @sa TecEngDialogMessageBoxRegisterCallback - */ -typedef MessageBoxReply_e(STDCALL *DialogMessageBoxCallback_pf)(const char* MessageString, - MessageBoxType_e MessageBoxType, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback responsible for displaying a status line - * - * @since - * 11.2-0-085 - * - * @param StatusString - * Message string to display in the dialog. - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @sa TecEngStatusLineRegisterCallback - */ -typedef void (STDCALL *StatusLineCallback_pf)(const char* StatusString, - ArbParam_t RegistrationClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback that will be called with the updated progress status. - * - * @since 11.2-0-098 - * - * - * @param ProgressStatus - * Percentage of the progress. - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @sa TecEngProgressMonitorRegisterCallback - */ -typedef void (STDCALL *ProgressMonitorCallback_pf)(int ProgressStatus, - ArbParam_t RegistrationClientData); -/* - NO DOXYGEN COMMENT GENERATION - - * Callback that will be called with Tecplot Engine is about to perform a lengthy operation. - * The client that registers such the callback may present a user with a progress bar, - * if the ShowProgressBar argument is TRUE, and a stop button that would interrupt the operation by - * calling TecUtilInterrupt(). - * - * @since 11.2-0-098 - * - * @param ShowProgressBar - * Boolean indicating if the progress steps can be monitored for an operation. If TRUE, Tecplot Engine will be calling - * the registered ProgressMonitorCallback_pf function with the updated progress status. - * - * @param IsInterruptible - * Boolean indicating if the operation can be interrupted before completion. - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @sa TecEngProgressMonitorRegisterCallback - */ -typedef void (STDCALL *ProgressMonitorStartCallback_pf)(Boolean_t ShowProgressBar, - Boolean_t IsInterruptible, - ArbParam_t RegistrationClientData); -/* - NO DOXYGEN COMMENT GENERATION - - * Callback tht will be called with Tecplot Engine has finished performing a lengthy operation. - * At this point, client may hide progress bar that was shown during handling of ProgressMonitorStartCallback callback and - * disable or hide the stop button. - * - * @since 11.2-0-098 - * - * @param RegistrationClientData - * Client data that was registered with the callback. - * - * @sa TecEngProgressMonitorRegisterCallback - */ -typedef void (STDCALL *ProgressMonitorFinishCallback_pf)(ArbParam_t RegistrationClientData); - -/********************************************************* - * Add-on Timers - *********************************************************/ -/** - * This is called when a registered timer fires. - * - * @par Limitation: - * Unix and Linux versions of Tecplot currently do not fire timer events when - * Tecplot is running in batch mode (with the -b flag). This behavior - * limitation is subject to change. - * - * @param ClientData - * Arbitrary client data. - * - * @return - * Return TRUE if the timer should be reinstated. Return FALSE - * to stop subsequent callbacks. - * - * - * - * INTEGER*4 FUNCTION MyAddOnTimerCallback( - * & ClientDataPtr) - * POINTER (ClientDataPtr,DummyClientData) - * - */ -typedef Boolean_t (STDCALL *AddOnTimerCallback_pf)(ArbParam_t ClientData); - -/* - NO DOXYGEN COMMENT GENERATION - - * Callback that will be called when Tecplot Engine has requested an event timer to be created. - * - * @since 12.0.1.5642 - * - * @param ClientData - * ClientData that should be sent in the callback. - * - * @param TimerCallback - * Callback to fire when the timer interval has expired. - * - * @param Interval - * The time (in milliseconds) after which the timer callback should be called. - * - * @param RegistrationClientData - * Client data that was registered via TecEngTimerRegisterCallback. - * - * @return - * Return TRUE if the timer was successfully created, FALSE if not. - */ -typedef Boolean_t (STDCALL *TimerCallback_pf)(AddOnTimerCallback_pf TimerCallback, - ArbParam_t ClientData, - UInt32_t Interval, - ArbParam_t RegistrationClientData); - -/** - * This function is called when the user activates a menu item - * added via TecUtilMenuInsertOption or TecUtilMenuInsertToggle. - * - * @param RegistrationClientData - * Arbitrary client data. - */ -typedef void (STDCALL *MenuActivateCallback_pf)(ArbParam_t RegistrationClientData); - -/** - * This function is called when the a menu is deleted. - * - * @param RegistrationClientData - * Arbitrary client data. - */ -typedef void (STDCALL *MenuDeleteCallback_pf)(ArbParam_t RegistrationClientData); - -/** - * This function is called to determine the sensitivity for a menu item (option, - * toggle or submenu). - * - * @param RegistrationClientData - * Arbitrary client data. - * - * @return - * Return TRUE if the menu item should be sensitive to user input, - * or FALSE if it should be insensitive to user input (gray). - */ -typedef Boolean_t (STDCALL *MenuGetSensitivityCallback_pf)(ArbParam_t RegistrationClientData); - -/** - * This function is called to determine the checked state for a toggle menu item. - * - * @param RegistrationClientData - * Arbitrary client data. - * - * @return - * Return TRUE if the toggle should be checked, - * or FALSE if it should be unchecked. - */ -typedef Boolean_t (STDCALL *MenuGetToggleStateCallback_pf)(ArbParam_t RegistrationClientData); - - -/** - * This function is called when the user performs a probe event. - * - * @param IsNearestPoint - * This is TRUE if the previous probe event was a nearest point probe. - * This is FALSE if it was an interpolated probe. - * - * - * SUBROUTINE MyProbeDestinationCallback( - * IsNearestPoint) - * INTEGER*4 IsNearestPoint - * - */ -typedef void (STDCALL *ProbeDestination_pf)(Boolean_t IsNearestPoint); - - -/** - * This function type called when a probe callback is installed via - * TecUtilProbeInstallCallbackX. - * - * @param WasSuccessful - * This is TRUE if the previous probe event was successful. - * This is FALSE if it was the probe failed. Probe events may fail if the - * user probes in a region of the plot that contains no data. - * - * @param IsNearestPoint - * This is TRUE if the previous probe event was a nearest point probe. - * This is FALSE if it was an interpolated probe. - * - * @param ClientData - * Arbitrary client data. - * - */ -typedef void (STDCALL *ProbeDestinationX_pf)(Boolean_t WasSuccessful, - Boolean_t IsNearestPoint, - ArbParam_t ClientData); - - -/** - * DynamicMenu Functions are called upon a user selecting - * a menu item added via TecUtilMenuAddOption. - * - * - * SUBROUTINE MyDynamicMenuCallback() - * - */ -typedef void (STDCALL *DynamicMenuCallback_pf)(void); - -/** - * This callback signature is used to perform redraw events. - * - * @since - * 11.0-0-363 - * - * @param RedrawReason - * An enumerated value describing the reason for the re-draw event. - * @param ClientData - * Client data that was registered with the callback. - * - * @return - * TRUE if successfull, FALSE otherwise. - * - * - * INTEGER*4 FUNCTION DrawEventCallback( - * & RedrawReason, - * & ClientDataPtr) - * INTEGER*4 RedrawReason - * POINTER (ClientDataPtr,ClientData) - * - * - * @sa TecUtilEventAddPreDrawCallback(), TecUtilEventAddPostDrawCallback() - */ -typedef Boolean_t (STDCALL *DrawEventCallback_pf)(RedrawReason_e RedrawReason, - ArbParam_t ClientData); - - -/** - * Compares two strings from a list string. Note that either string may be NULL - * as StringLists allow for NULL elements. - * - * @param String1 - * String to compare against String2. - * @param String2 - * String to compare against String1. - * @param ClientData - * Contextual information that was passed to the 'StringListSort' function. - * - * @return - * - A value less than zero if String1 is less than String2. - * - A value of zero if String1 is equal to String2. - * - A value greater than zero if String1 is greater than String2. - */ -typedef int (STDCALL *StringListStringComparator_pf)(const char* String1, - const char* String2, - ArbParam_t ClientData); - -/** - * Gets a value at the specified point index using, if necessary, the private - * client data retrieved from the field data handle. - * - * @par Note: - * This callback is called asynchronously. This callback should NOT - * lock/unlock Tecplot. - * - * @since - * 10.0-3-128 - * - * @param FD - * Field data handle for which to set the value. This - * FieldValueGetFunction_pf must have been retrieved from this field data - * handle via TecUtilDataValueRefGetGetFunc. - * - * @param pt - * Zero-based index into the field data. - * - * @return - * Value for that index, always passed as a double precision floating-point - * value regardless of the data type of the field data handle. - * - * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData() - */ -typedef double(STDCALL *FieldValueGetFunction_pf)(const FieldData_pa FD, - LgIndex_t pt); - -/** - * Sets a value at the specified index using the private client data retrieved - * from the field data handle. - * - * @par Note: - * This callback is called asynchronously. This callback should NOT - * lock/unlock Tecplot. - * - * @since - * 10.0-3-128 - * - * @param FD - * Field data handle for which to set the value. This - * FieldValueSetFunction_pf must have been retrieved from this field data - * handle via TecUtilDataValueRefGetSetFunc. - * - * @param pt - * Zero-based index into the field data. - * - * @param val - * New value for that index, always passed as a double precision - * floating-point value regardless of the data type of the field data handle. - * - * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData() - */ -typedef void (STDCALL *FieldValueSetFunction_pf)(FieldData_pa FD, - LgIndex_t pt, - double val); - -/** - * Callback responsible for loading the specified variable for Tecplot using - * the private client data retrieved from the field data handle. - * - * @par Note: - * This callback is called asynchronously. With the exception of calls to - * modify the field data all calls back to Tecplot through the TecUtil layer - * should be limited to queries. - * - * @since - * 11.0-0-001 - * - * @param FieldData - * Field data handle of the variable load. - * - * @result - * TRUE if the variable was loaded, FALSE if unable to do so. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * LgIndex_t NumValues; - * ... other information needed to load variable data - * } MyVariableClientData_s; - * - * Boolean_t STDCALL MyVariableLoader(FieldData_pa FieldData) - * { - * REQUIRE(VALID_REF(FieldData)); - * - * MyVariableClientData_s *MyClientData = (MyVariableClientData_s *)TecUtilDataValueGetClientData(FieldData); - * - * // open the data file - * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb"); - * Boolean_t IsOk = (MyDataFile != NULL); - * - * // seek to the place in the file where the variable data is located - * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0); - * if (IsOk) - * { - * // load the data into the variable's field data - * IsOk = ReadMyDataInfoVariable(MyDataFile, MyClientData, FieldData); - * } - * - * // cleanup - * if (MyDataFile != NULL) - * fclose(MyDataFile); - * - * ENSURE(VALID_BOOLEAN(IsOk)); - * return IsOk; - * } - * @endcode - * - * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandVarLoad_pf)(FieldData_pa FieldData); - -/** - * Callback responsible for performing private actions associated with a - * variable being unloaded using the private client data retrieved from the - * field data handle. Whenever possible the callback should honor Tecplot's - * request to unload the variable by returning TRUE. This callback is - * responsible for performing private actions associated with a variable being - * unloaded. - * - * Most add-ons should simply supply NULL for this callback thereby instructing - * Tecplot to handle the unloading (and subsequent reloading) of the variable - * without the intervention of the add-on. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.0-0-001 - * - * @param FieldData - * Field data handle of the variable Tecplot wants to unload. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * LgIndex_t NumValues; - * ... other information needed to load variable data - * } MyVariableClientData_s; - * - * Boolean_t STDCALL MyVariableUnload(FieldData_pa FieldData) - * { - * REQUIRE(VALID_REF(FieldData)); - * - * // We don't have any private data to cleanup (i.e in addition to the - * // private client data which we don't cleanup here) so all we have to do - * // is return TRUE or FALSE letting Tecplot know that it can or can not - * // unload the variable. - * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the variable - * - * ENSURE(VALID_BOOLEAN(Result)); - * return Result; - * } - * @endcode - * - * @result - * TRUE if the variable can be unloaded, FALSE otherwise. The add-on should - * if at all possible honor the request to unload the variable. Most add-ons - * should return TRUE. - * - * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandVarUnload_pf)(FieldData_pa FieldData); - -/** - * Callback responsible for performing private actions associated with a - * variable being cleaned up using the private client data retrieved from the - * field data handle. Most add-ons will need to register this callback in order - * to cleanup privately allocated client data. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.0-0-001 - * - * @param FieldData - * Field data handle of the variable being cleaned up. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * LgIndex_t NumValues; - * ... other information needed to load variable data - * } MyVariableClientData_s; - * - * void STDCALL MyVariableCleanup(FieldData_pa FieldData) - * { - * REQUIRE(VALID_REF(FieldData)); - * - * MyVariableClientData_s *MyClientData = (MyVariableClientData_s *)TecUtilDataValueGetClientData(FieldData); - * - * // cleanup privately allocated resources - * free(MyClientData->DataFileName); - * free(MyClientData); - * } - * @endcode - * - * @sa TecUtilDataValueCustomLOD(), TecUtilDataValueGetClientData() - */ -typedef void (STDCALL *LoadOnDemandVarCleanup_pf)(FieldData_pa FieldData); - -/** - * Callback responsible for loading the specified node mapping for Tecplot - * using the private client data retrieved from the node mapping handle. - * - * @par Note: - * This callback is called asynchronously. With the exception of calls to - * modify the node mapping, all calls back to Tecplot through the TecUtil - * layer should be limited to queries. - * - * @since - * 11.3-0-010 - * - * @param NodeMap - * Handle of the node mapping. - * - * @result - * TRUE if the node mapping was loaded, FALSE if unable to do so. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * ... other information needed to load node map data - * } MyNodeMapClientData_s; - * - * Boolean_t STDCALL MyNodeMapLoader(NodeMap_pa NodeMap) - * { - * REQUIRE(VALID_REF(NodeMap)); - * - * MyNodeMapClientData_s *MyClientData = - * (MyNodeMapClientData_s *)TecUtilDataNodeGetClientData(NodeMap); - * - * // open the data file - * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb"); - * Boolean_t IsOk = (MyDataFile != NULL); - * - * // seek to the place in the file where the node map data is located - * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0); - * if (IsOk) - * { - * // load the data into the zone's node map - * IsOk = ReadMyNodeMapDataIntoZone(MyDataFile, MyClientData, NodeMap); - * } - * - * // cleanup - * if (MyDataFile != NULL) - * fclose(MyDataFile); - * - * ENSURE(VALID_BOOLEAN(IsOk)); - * return IsOk; - * } - * @endcode - * - * @sa TecUtilDataNodeCustomLOD(), TecUtilDataNodeGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandNodeMapLoad_pf)(NodeMap_pa NodeMap); - -/** - * Callback responsible for performing private actions associated with a - * node mapping being unloaded using the private client data retrieved from the - * node mapping handle. Whenever possible the callback should honor Tecplot's - * request to unload the node mapping by returning TRUE. - * - * Most add-ons should simply supply NULL for this callback thereby instructing - * Tecplot to handle the unloading (and subsequent reloading) of the node mapping - * without the intervention of the add-on. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.3-0-010 - * - * @param NodeMap - * Node mapping handle of the node mapping Tecplot wants to unload. - * - * @code - * Boolean_t STDCALL MyNodeMapUnload(NodeMap_pa NodeMap) - * { - * REQUIRE(VALID_REF(NodeMap)); - * - * // We don't have any private data to cleanup (i.e in addition to the - * // private client data which we don't cleanup here) so all we have to do - * // is return TRUE or FALSE letting Tecplot know that it can or can not - * // unload the variable. - * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the node mapping - * - * ENSURE(VALID_BOOLEAN(Result)); - * return Result; - * } - * @endcode - * - * @result - * TRUE if the node mapping can be unloaded, FALSE otherwise. The add-on should - * if at all possible honor the request to unload the node mapping. Most add-ons - * should return TRUE. - * - * @sa TecUtilDataNodeCustomLOD(), TecUtilDataNodeGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandNodeMapUnload_pf)(NodeMap_pa NodeMap); - -/** - * Callback responsible for performing private actions associated with a - * node mapping being cleaned up using the private client data retrieved from the - * node mapping handle. Most add-ons will need to register this callback in order - * to cleanup privately allocated client data. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.3-0-010 - * - * @param NodeMap - * Node Mapping data handle of the node mapping being cleaned up. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * ... other information needed to load node map data - * } MyNodeMapClientData_s; - * - * void STDCALL MyNodeMapCleanup(NodeMap_pa NodeMap) - * { - * REQUIRE(VALID_REF(NodeMap)); - * - * MyNodeMapClientData_s *MyClientData = (MyNodeMapClientData_s *)TecUtilDataNodeGetClientData(NodeMap); - * - * // cleanup privately allocated resources - * free(MyClientData->DataFileName); - * free(MyClientData); - * } - * @endcode - * - * @sa TecUtilDataNodeCustomLOD(), TecUtilDataNodeGetClientData() - */ -typedef void (STDCALL *LoadOnDemandNodeMapCleanup_pf)(NodeMap_pa NodeMap); - -/** - * Callback responsible for loading the specified face neighbor for Tecplot - * using the private client data retrieved from the face neighbor handle. - * - * @par Note: - * This callback is called asynchronously. With the exception of calls to - * modify the face neighbors, all calls back to Tecplot through the TecUtil - * layer should be limited to queries. - * - * @since - * 11.3-0-010 - * - * @param FaceNeighbor - * Handle of the face neighbors. - * - * @result - * TRUE if the face neighbors was loaded, FALSE if unable to do so. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * ...other information needed to load face neighbor data - * } MyFaceNeighborClientData_s; - * - * Boolean_t STDCALL MyFaceNeighborLoader(FaceNeighbor_pa FaceNeighbor) - * { - * REQUIRE(VALID_REF(FaceNeighbor)); - * - * MyFaceNeighborClientData_s *MyClientData = - * (MyFaceNeighborClientData_s*)TecUtilDataFaceNbrGetClientData(FaceNeighbor); - * - * // open the data file - * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb"); - * Boolean_t IsOk = (MyDataFile != NULL); - * - * // seek to the place in the file where the face neighbor data is located - * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0); - * if (IsOk) - * { - * // load the data into the zone's face neighbor - * IsOk = ReadMyFaceNeighborDataIntoZone(MyDataFile, MyClientData, FaceNeighbor); - * } - * - * // cleanup - * if (MyDataFile != NULL) - * fclose(MyDataFile); - * - * ENSURE(VALID_BOOLEAN(IsOk)); - * return IsOk; - * } - * @endcode - * - * @sa TecUtilDataFaceNbrCustomLOD(), TecUtilDataFaceNbrGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandFaceNeighborLoad_pf)(FaceNeighbor_pa FaceNeighbor); - -/** - * Callback responsible for performing private actions associated with a - * face neighbors being unloaded using the private client data retrieved from - * the face neighbor handle. Whenever possible the callback should honor - * Tecplot's request to unload the face neighbors by returning TRUE. - * - * Most add-ons should simply supply NULL for this callback thereby instructing - * Tecplot to handle the unloading (and subsequent reloading) of the face - * neighbors without the intervention of the add-on. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.3-0-010 - * - * @param FaceNeighbor - * Face neighbor handle of the face neighbors Tecplot wants to unload. - * - * @code - * Boolean_t STDCALL MyFaceNeighborUnload(FaceNeighbor_pa FaceNeighbor) - * { - * REQUIRE(VALID_REF(FaceNeighbor)); - * - * // We don't have any private data to cleanup (i.e in addition to the - * // private client data which we don't cleanup here) so all we have to do - * // is return TRUE or FALSE letting Tecplot know that it can or can not - * // unload the variable. - * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the face neighbors - * - * ENSURE(VALID_BOOLEAN(Result)); - * return Result; - * } - * @endcode - * - * @result - * TRUE if the face neighbors can be unloaded, FALSE otherwise. The add-on - * should if at all possible honor the request to unload the face neighbors. - * Most add-ons should return TRUE. - * - * @sa TecUtilDataFaceNbrCustomLOD(), TecUtilDataFaceNbrGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandFaceNeighborUnload_pf)(FaceNeighbor_pa FaceNeighbor); - -/** - * Callback responsible for performing private actions associated with a face - * neighbors being cleaned up using the private client data retrieved from the - * face neighbor handle. Most add-ons will need to register this callback in - * order to cleanup privately allocated client data. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.3-0-010 - * - * @param FaceNeighbor - * Face neighbor data handle of the Face neighbors being cleaned up. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * ... other information needed to load face neighbor data - * } MyFaceNeighborClientData_s; - * - * void STDCALL MyFaceNeighborCleanup(FaceNeighbor_pa FaceNeighbor) - * { - * REQUIRE(VALID_REF(FaceNeighbor)); - * - * MyFaceNeighborClientData_s *MyClientData = (MyFaceNeighborClientData_s *)TecUtilDataFaceNbrGetClientData(FaceNeighbor); - * - * // cleanup privately allocated resources - * free(MyClientData->DataFileName); - * free(MyClientData); - * } - * @endcode - * - * @sa TecUtilDataFaceNbrCustomLOD(), TecUtilDataFaceNbrGetClientData() - */ -typedef void (STDCALL *LoadOnDemandFaceNeighborCleanup_pf)(FaceNeighbor_pa FaceNeighbor); - -/** - * Callback responsible for loading the specified face mapping for Tecplot - * using the private client data retrieved from the face mapping handle. - * - * @par Note: - * This callback is called asynchronously. With the exception of calls to - * modify the face mapping, all calls back to Tecplot through the TecUtil - * layer should be limited to queries. - * - * @since - * 11.2-1-0 - * - * @param FaceMap - * Handle of the face mapping. - * - * @result - * TRUE if the face mapping was loaded, FALSE if unable to do so. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * ... other information needed to load face map data - * } MyFaceMapClientData_s; - * - * Boolean_t STDCALL MyFaceMapLoader(FaceMap_pa FaceMap) - * { - * REQUIRE(VALID_REF(FaceMap)); - * - * MyFaceMapClientData_s *MyClientData = - * (MyFaceMapClientData_s *)TecUtilDataFaceMapGetClientData(FaceMap); - * - * // open the data file - * FILE *MyDataFile = fopen(MyClientData->DataFileName, "rb"); - * Boolean_t IsOk = (MyDataFile != NULL); - * - * // seek to the place in the file where the face map data is located - * IsOk = IsOk && (fseek(MyDataFile, MyClientData->SeekOffset, SEEK_SET) == 0); - * if (IsOk) - * { - * // load the data into the zone's face map - * IsOk = ReadMyFaceMapDataIntoZone(MyDataFile, MyClientData, FaceMap); - * } - * - * // cleanup - * if (MyDataFile != NULL) - * fclose(MyDataFile); - * - * ENSURE(VALID_BOOLEAN(IsOk)); - * return IsOk; - * } - * @endcode - * - * @sa TecUtilDataFaceMapCustomLOD(), TecUtilDataFaceMapGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandFaceMapLoad_pf)(FaceMap_pa FaceMap); - -/** - * Callback responsible for performing private actions associated with a - * face mapping being unloaded using the private client data retrieved from the - * face mapping handle. Whenever possible the callback should honor Tecplot's - * request to unload the face mapping by returning TRUE. - * - * Most add-ons should simply supply NULL for this callback thereby instructing - * Tecplot to handle the unloading (and subsequent reloading) of the face mapping - * without the intervention of the add-on. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.2-1-0 - * - * @param FaceMap - * Face mapping handle of the face mapping Tecplot wants to unload. - * - * @code - * Boolean_t STDCALL MyFaceMapUnload(FaceMap_pa FaceMap) - * { - * REQUIRE(VALID_REF(FaceMap)); - * - * // We don't have any private data to cleanup (i.e in addition to the - * // private client data which we don't cleanup here) so all we have to do - * // is return TRUE or FALSE letting Tecplot know that it can or can not - * // unload the variable. - * Boolean_t Result = TRUE; // ...tell Tecplot to go ahead and unload the face mapping - * - * ENSURE(VALID_BOOLEAN(Result)); - * return Result; - * } - * @endcode - * - * @result - * TRUE if the face mapping can be unloaded, FALSE otherwise. The add-on should - * if at all possible honor the request to unload the face mapping. Most add-ons - * should return TRUE. - * - * @sa TecUtilDataFaceMapCustomLOD(), TecUtilDataFaceMapGetClientData() - */ -typedef Boolean_t (STDCALL *LoadOnDemandFaceMapUnload_pf)(FaceMap_pa FaceMap); - -/** - * Callback responsible for performing private actions associated with a - * face mapping being cleaned up using the private client data retrieved from the - * face mapping handle. Most add-ons will need to register this callback in order - * to cleanup privately allocated client data. - * - * @par Note: - * This callback is called asynchronously. All calls back to Tecplot through - * the TecUtil layer should be limited to queries. - * - * @since - * 11.2-1-0 - * - * @param FaceMap - * Face Mapping data handle of the face mapping being cleaned up. - * - * @code - * typedef struct - * { - * char *DataFileName; - * long SeekOffset; - * ... other information needed to load face map data - * } MyFaceMapClientData_s; - * - * void STDCALL MyFaceMapCleanup(FaceMap_pa FaceMap) - * { - * REQUIRE(VALID_REF(FaceMap)); - * - * MyFaceMapClientData_s *MyClientData = (MyFaceMapClientData_s *)TecUtilDataFaceMapGetClientData(FaceMap); - * - * // cleanup privately allocated resources - * free(MyClientData->DataFileName); - * free(MyClientData); - * } - * @endcode - * - * @sa TecUtilDataFaceMapCustomLOD(), TecUtilDataFaceMapGetClientData() - */ -typedef void (STDCALL *LoadOnDemandFaceMapCleanup_pf)(FaceMap_pa FaceMap); - - -/** - * ExtractDestination functions are called upon successful completion of an - * extract polyline or extract discrete points operation. - * - * @param NumPts - * Number of points extracted. - * - * @param XValues - * Double precision array of X-Coordinates of the extracted polyline. - * - * @param YValues - * Double precision array of Y-Coordinates of the extracted polyline. - * - * - * INTEGER*4 FUNCTION MyExtractDestinationCallback( - * & NumPts, - * & XValues, - * & YValues) - * INTEGER*4 NumPts - * REAL*8 XValues - * REAL*8 YValues - * - */ -typedef void (STDCALL *ExtractDestination_pf)(LgIndex_t NumPts, - double* XValues, - double* YValues); - - - -/** - * SelectFileOptionsCallback Functions are called when the - * "Options" button is pressed in the modal file selection - * dialog. - * - * - * SUBROUTINE MySelectFileOptionsCallback() - * - */ -typedef void (STDCALL *SelectFileOptionsCallback_pf)(void); - - - - -/** - * Post data load instruction callback for "Converter-Plus" addons. - * - * @param PreviousInstructions - * The previous set of instructions used by the converter. - * - * @param PreviousRawData - * The previous raw data associated with the instructions. - * - * @param PreviousZones - * Set of zones loaded with the previous instructions. - * - * - * SUBROUTINE MyConverterPostReadCallback( - * & PreviousInstructions, - * & PreviousRawData, - * & PreviousZones) - * CHARACTER*(*) CommandString - * CHARACTER*(*) ErrMsgString - * POINTER (PreviousZones,DummyPreviousZonesData) - * - * - */ -typedef void (STDCALL *ConverterPostReadCallback_pf)(const char* PreviousInstructions, - const char* PreviousRawData, - const Set_pa PreviousZones); - - -/** - * Callback registered by your addon to convert a foreign datafile into a - * Tecplot Binary datafile format. - * - * @return - * Return TRUE if the conversion is successful. Otherwise return FALSE. - * If FALSE is returned then *MessageString is assumed to contain an error - * message. - * - * @param DataFName - * Name of the original foreign data file to be converted. - * - * @param TempBinFName - * Name of the temporary binary datafile that is created (by your converter). - * - * @param MessageString - * Reference to a string. If an error occurs during conversion allocate space - * for an error message and copy the message string into that allocated - * space otherwise be sure to assign *MessageString to NULL. If - * *MessageString is non NULL Tecplot will release the allocated memory when - * finished. - * - * - * INTEGER*4 FUNCTION MyDataSetConverterCallback( - * & DataFName, - * & TempBinFName, - * & MessageString) - * CHARACTER*(*) DataFName - * CHARACTER*(*) TempBinFName - * CHARACTER*(*) MessageString - * - * - */ -typedef Boolean_t (STDCALL *DataSetConverter_pf)(char* DataFName, - char* TempBinFName, - TP_GIVES char** MessageString); - - - - - - - -/** - * Callback registered by your addon to process foreign loader instructions. - * When called, it must parse the supplied instructions and load the data into Tecplot. - * - * @return - * Return TRUE if the data is loaded successfully. Otherwise, FALSE. - * - * @param Instructions - * This contains all of the instructions needed to load the data. - * - * - * - * INTEGER*4 FUNCTION MyDataSetLoaderCallback( - * & Instructions) - * POINTER (Instructions,DummyInstructionsData) - * - */ -typedef Boolean_t (STDCALL *DataSetLoader_pf)(StringList_pa Instructions); - - - - - -/** - * Callback used to provide the ability to override data loader instructions - * while processing a layout. - * - * @return - * Return TRUE if the instructions are successfully replaced or left alone. - * Return FALSE if the user cancels the operation. - * - * @param Instructions - * The original instructions needed to load the data. - * - * - * INTEGER*4 FUNCTION MyDataSetLoaderInstOverCallback( - * & Instructions) - * POINTER (Instructions,DummyInstructionsData) - * - * - */ -typedef Boolean_t (STDCALL *DataSetLoaderInstructionOverride_pf)(StringList_pa Instructions); - - - -/** - * Callback used to assign extended curve settings. - * This is called when the user presses the "Curve Settings" - * button in the mapping style dialog. - * - * @param LineMapSet - * Set of line maps currently selected. - * @param SelectedLineMapSettings - * A string list of the curve settings for the Line-maps that are selected in the - * Line mappings dialog. - * - * - * SUBROUTINE MyGetCurveSettingsCallback( - * & LineMapSet, - * & SelectedLineMapSettings) - * POINTER (LineMapSet,DummyLineMapData) - * POINTER (SelectedLineMapSettings,DummyLineMapSettings) - * - */ -typedef void (STDCALL *GetCurveSettingsCallback_pf)(Set_pa LineMapSet, - StringList_pa SelectedLineMapSettings); - - - - -/** - * Callback function that returns an abbreviated version of the curve settings - * for a particular Line Map for display in the Line Mappings dialog. - * - * @param LineMap - * The map number that is currently being operated on. - * @param CurveSettings - * The string that Tecplot maintains which contains the extended curve fit - * settings for the current Line-map. This argument may be NULL indicating - * that defaults should be used. - * @param AbbreviatedSettings - * The short form of the CurveSettings that is allocated and returned from - * your function and used by Tecplot. This must be allocated by the addon - * using TecUtilStringAlloc(). - * - * - * SUBROUTINE MyGetAbrevSettingsStringCallback( - * & LineMap, - * & CurveSettings, - * & AbbreviatedSettings), - * INTEGER*4 LineMap - * CHARACTER*(*) CurveSettings - * CHARACTER*(*) AbbreviatedSettings - * - */ -typedef void (STDCALL *GetAbbreviatedSettingsStringCallback_pf)(EntIndex_t LineMap, - char* CurveSettings, - TP_GIVES char** AbbreviatedSettings); - - - - -/** - * This function returns a string (CurveInfoString) for Tecplot to display - * information about a particular curve in the curve info dialog. - * - * @param RawIndV - * The handle to the raw field data of the independent variable. - * @param RawDepV - * The handle to the raw field data of the dependent variable. - * @param IndVCoordScale - * An enumerated variable whose values are Scale_linear when the independent variable - * axis has a linear scale and Scale_log when it has a log scale. - * @param DepVCoordScale - * An enumerated variable whose values are Scale_linear when the dependent variable axis - * has a linear scale and Scale_log when it has a log scale. - * @param NumRawPts - * number of raw field data values. - * @param LineMap - * The map number that is currently being operated on. - * @param CurveSettings - * The curve settings string for the current Line-map. This argument may be - * NULL indicating that defaults should be used. - * @param CurveInfoString - * The string that is allocated and returned by your function and be - * presented in the Data/XY-Plot Curve Info dialog. The CurveInfoString must - * be allocated by the addon using TecUtilStringAlloc(). - * - * @return - * Return TRUE if the curve info string can be generated, otherwise FALSE. - * - * - * INTEGER*4 FUNCTION MyGetCurveInfoStringCallback( - * & RawIndV, - * & RawDepV, - * & IndVCoordScale, - * & DepVCoordScale, - * & NumRawPts, - * & LineMap, - * & CurveSettings, - * & CurveInfoString) - * POINTER (RawIndV,DummyRawIndVData) - * POINTER (RawDepV,DummyRawDepVData) - * INTEGER*4 IndVCoordScale - * INTEGER*4 DepVCoordScale - * INTEGER*4 NumRawPts - * INTEGER*4 LineMap - * CHARACTER*(*) CurveSettings - * CHARACTER*(*) CurveInfoString - * - */ -typedef Boolean_t (STDCALL *GetCurveInfoStringCallback_pf)(FieldData_pa RawIndV, - FieldData_pa RawDepV, - CoordScale_e IndVCoordScale, - CoordScale_e DepVCoordScale, - LgIndex_t NumRawPts, - EntIndex_t LineMap, - char* CurveSettings, - TP_GIVES char** CurveInfoString); - -/** - * Callback function used to calculate data points for an extended curve fit. - * - * @return - * Return TRUE if the curve can be calculated, otherwise FALSE. - * - * @param RawIndV - * The handle to the raw field data of the independent variable. - * @param RawDepV - * The handle to the raw field data of the dependent variable. - * @param IndVCoordScale - * An enumerated variable whose values are Scale_linear when the independent variable - * axis has a linear scale and Scale_log when it has a log scale. - * @param DepVCoordScale - * An enumerated variable whose values are Scale_linear when the dependent variable axis - * has a linear scale and Scale_log when it has a log scale. - * @param NumRawPts - * number of raw field data values. - * @param NumCurvePts - * The number of points that will construct the curve fit. - * @param LineMap - * The line map to operated on. - * @param CurveSettings - * The curve settings string for the current Line-map. This argument may be - * NULL indicating that defaults should be used. - * @param IndCurveValues - * A pre-allocated array of size NumCurvePts which the addon will populate with - * the independent values for the curve fit - * @param DepCurveValues. - * A pre-allocated array of size NumCurvePts which the add-on will populate - * with the dependent values for the curve fit. - * - * - * INTEGER*4 FUNCTION MyGetLinePlotDataPointsCallback( - * & RawIndV, - * & RawDepV, - * & IndVCoordScale, - * & DepVCoordScale, - * & NumRawPts, - * & NumCurvePts, - * & LineMap, - * & CurveSettings, - * & IndCurveValues, - * & DepCurveValues) - * POINTER (RawIndV,DummyRawIndVData) - * POINTER (RawDepV,DummyRawDepVData) - * INTEGER*4 IndVCoordScale - * INTEGER*4 DepVCoordScale - * INTEGER*4 NumRawPts - * INTEGER*4 NumCurvePts - * INTEGER*4 LineMap - * CHARACTER*(*) CurveSettings - * REAL*8 IndCurveValues() - * REAL*8 DepCurveValues() - * - */ -typedef Boolean_t (STDCALL *GetLinePlotDataPointsCallback_pf)(FieldData_pa RawIndV, - FieldData_pa RawDepV, - CoordScale_e IndVCoordScale, - CoordScale_e DepVCoordScale, - LgIndex_t NumRawPts, - LgIndex_t NumCurvePts, - EntIndex_t LineMap, - char* CurveSettings, - TP_OUT double* IndCurveValues, - TP_OUT double* DepCurveValues); -#if defined EXPORT_DEPRECATED_INTERFACES_TO_ADK_ONLY -/** - * @deprecated - * Please use \ref GetLinePlotDataPointsCallback_pf instead. - */ -typedef GetLinePlotDataPointsCallback_pf GetXYDataPointsCallback_pf; -#endif - - - - -/** - * A Callback function used to obtain an interpolated dependent value for an - * extended curve fit given an independent value. - * - * @return - * Return TRUE if it is possible to obtain the interpolated value, otherwise FALSE. - * - * @param RawIndV - * handle to the raw field data of the independent variable. - * @param RawDepV - * The handle to the raw field data of the dependent variable. - * @param IndVCoordScale - * An enumerated variable whose values are Scale_linear when the independent variable - * axis has a linear scale and Scale_log when it has a log scale. - * @param DepVCoordScale - * An enumerated variable whose values are Scale_linear when the dependent variable axis - * has a linear scale and Scale_log when it has a log scale. - * @param NumRawPts - * The number of field data values. - * @param NumCurvePts - * The number of points used to construct the curve fit. - * @param LineMapNum - * The line map number currently being operated on. - * @param CurveSettings - * The curve settings string for the current Line-map. This argument may be - * NULL indicating that defaults should be used. - * @param ProbeIndValue - * The independent value location of the probe (supplied). - * @param ProbeDepValue - * Reference to the calculated dependent value location of the probe. - * - * - * INTEGER*4 FUNCTION MyGetProbeValueCallback( - * & RawIndV, - * & RawDepV, - * & IndVCoordScale, - * & DepVCoordScale, - * & NumRawPts, - * & NumCurvePts, - * & LineMapNum, - * & CurveSettings, - * & CurveInfoString, - * & ProbeIndValue, - * & ProbeDepValue) - * POINTER (RawIndV,DummyRawIndVData) - * POINTER (RawDepV,DummyRawDepVData) - * INTEGER*4 IndVCoordScale - * INTEGER*4 DepVCoordScale - * INTEGER*4 NumRawPts - * INTEGER*4 NumCurvePts - * INTEGER*4 LineMapNum - * CHARACTER*(*) CurveSettings - * REAL*8 ProbeIndValue - * REAL*8 ProbeDepValue - * - * - */ -typedef Boolean_t (STDCALL *GetProbeValueCallback_pf)(FieldData_pa RawIndV, - FieldData_pa RawDepV, - CoordScale_e IndVCoordScale, - CoordScale_e DepVCoordScale, - LgIndex_t NumRawPts, - LgIndex_t NumCurvePts, - EntIndex_t LineMapNum, - char* CurveSettings, - double ProbeIndValue, - TP_OUT double* ProbeDepValue); - - - -#if defined MSWIN -typedef Boolean_t (STDCALL *PreTranslateMessage_pf)(MSG *pMsg); -#endif - - -/** - * Callback function pointer for providing a Dynamic Axis labels. - * @since - * 10.0-6-015 - * @param Value - * Value that corresponds to a tick label that will be drwan. - * - * @param ClientData - * Convenience storage of user client data. - * - * @param LabelString - * Output label for the tick mark. - * This must be allocated by the addon using TecUtilStringAlloc(). - * - * @return - * Returns TRUE if the LabelString has been successfully allocated. - * Otherwise, FALSE is returned. - */ -typedef Boolean_t (STDCALL *DynamicLabelCallback_pf)(double Value, - ArbParam_t ClientData, - TP_GIVES char** LabelString); - -/** - * This is called when Tecplot is idle. - * - * @par Note: - * Tecplot is never idle when running in batch mode (with the -b flag). - * - * @param ClientData - * Arbitrary client data. - * - * - * INTEGER*4 FUNCTION MyOnIdleCallback( - * & ClientDataPtr) - * POINTER (ClientDataPtr,DummyClientData) - * - * - */ -typedef void (STDCALL *OnIdleCallback_pf)(ArbParam_t ClientData); - -/** - * Callback responsible for executing the specified script file. - * - * @since - * 11.0-2-005 - * - * @param ScriptFileName - * Relative or absolute file name of the script to execute. If the path - * is relative it is relative to the current working directory. - * @param ClientData - * Client data registered with the callback. - * - * @return - * TRUE if the script executed successfully, FALSE otherwise. - * - * @sa TecUtilScriptExecRegisterCallback - */ -typedef Boolean_t (STDCALL *ScriptExecCallback_pf)(const char *ScriptFileName, - ArbParam_t ClientData); - -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if 0 /* NOTUSED */ -#endif -#if !defined NO_ASSERTS -#endif -#if defined MSWIN -#endif /* MSWIN */ -#if !defined (MSWIN) -#endif -#if defined Q_MAINMODULE -#else -#endif -#if 0 /* NOTUSED */ -#endif -#endif /* TECPLOTKERNEL */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - - -/* ENDREMOVEFROMADDON */ -struct _ViewState_a; -typedef struct _ViewState_a *SavedView_pa, *ViewState_pa; - - -#endif /* _GLOBAL_H */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/INPUT.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/INPUT.h deleted file mode 100644 index d778ee5984..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/INPUT.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ -#if defined EXTERN -#undef EXTERN -#endif -#if defined INITMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -/* Input Specification limits */ - -/* General */ -EXTERN InputSpec_s /*X*/ GridCoordInputSpec; -EXTERN InputSpec_s /*X*/ GridCoordFloatInputSpec; -EXTERN InputSpec_s /*X*/ XFrameCoordInputSpec; -EXTERN InputSpec_s /*X*/ YFrameCoordInputSpec; -EXTERN InputSpec_s /*X*/ XFrameCoordFloatInputSpec; -EXTERN InputSpec_s /*X*/ YFrameCoordFloatInputSpec; -EXTERN InputSpec_s /*X*/ XFrameCoordDeltaInputSpec; -EXTERN InputSpec_s /*X*/ YFrameCoordDeltaInputSpec; -EXTERN InputSpec_s /*X*/ XFrameCoordFloatDeltaInputSpec; -EXTERN InputSpec_s /*X*/ YFrameCoordFloatDeltaInputSpec; -EXTERN InputSpec_s /*X*/ FrameOffsetCoordInputSpec; -EXTERN InputSpec_s /*X*/ XPaperCoordInputSpec; -EXTERN InputSpec_s /*X*/ YPaperCoordInputSpec; -EXTERN InputSpec_s /*X*/ AxisPercentageInputSpec; -EXTERN InputSpec_s /*X*/ AngleInputSpec; -EXTERN InputSpec_s /*X*/ AngleToApproxInputSpec; -EXTERN InputSpec_s /*X*/ FieldOfViewInputSpec; -EXTERN InputSpec_s /*X*/ ZeroAndAboveLgIndexInputSpec; -EXTERN InputSpec_s /*X*/ ZeroAndAboveSmIntegerInputSpec; -EXTERN InputSpec_s /*X*/ ZeroAndAboveDoubleInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroLgIndexInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroDoubleInputSpec; -EXTERN InputSpec_s /*X*/ DoubleInputSpec; -EXTERN InputSpec_s /*X*/ EntIndexInputSpec; -EXTERN InputSpec_s /*X*/ EntRangeInputSpec; -EXTERN InputSpec_s /*X*/ IndexRangeInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroIndexRangeInputSpec; -EXTERN InputSpec_s /*X*/ ZeroToOneInputSpec; -EXTERN InputSpec_s /*X*/ PercentageInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroPercentageInputSpec; -EXTERN InputSpec_s /*X*/ SignedPercentageInputSpec; -EXTERN InputSpec_s /*X*/ RadiansInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroRadiansInputSpec; -EXTERN InputSpec_s /*X*/ TimeDateDoubleInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroTimeDateDoubleInputSpec; -EXTERN InputSpec_s /*X*/ AboveZeroElapsedTimeInputSpec; - - -/* Specific */ -#define MIN_VIEWPORT_SIZE 0.05 -EXTERN InputSpec_s /*X*/ SurfaceTranslucencyInputSpec; -EXTERN InputSpec_s /*X*/ MaxDepthBufferSizeInputSpec; -EXTERN InputSpec_s /*X*/ MaxMultiSamplesInputSpec; -EXTERN InputSpec_s /*X*/ MinBitsPerRGBPlaneInputSpec; -EXTERN InputSpec_s /*X*/ AnimationSpeedInputSpec; -EXTERN InputSpec_s /*X*/ AnimationNumStepsInputSpec; -EXTERN InputSpec_s /*X*/ MaxCustomColorsInInterfaceInputSpec; -EXTERN InputSpec_s /*X*/ MaxReducedPointsInputSpec; -EXTERN InputSpec_s /*X*/ MaxStripLengthInputSpec; -EXTERN InputSpec_s /*X*/ MaxPrimativesPerBlockInputSpec; -EXTERN InputSpec_s /*X*/ MaxTextureSizeInputSpec; -EXTERN InputSpec_s /*X*/ SuperSampleFactorInputSpec; -EXTERN InputSpec_s /*X*/ TickLengthInputSpec; -EXTERN InputSpec_s /*X*/ BorrowLicenseInputSpec; - - - - -/* I/O Related */ -EXTERN InputSpec_s /*X*/ HardcopyPaperSizeInputSpec; -EXTERN InputSpec_s /*X*/ HardcopyNumCopiesInputSpec; -EXTERN InputSpec_s /*X*/ HardcopyPrecisionInputSpec; -EXTERN InputSpec_s /*X*/ HardcopyPenSpeedInputSpec; -EXTERN InputSpec_s /*X*/ PenPlotterPenNumberInputSpec; -EXTERN InputSpec_s /*X*/ BitDumpDepthInputSpec; - - -/* Widths, physical lengths, etc. */ -EXTERN InputSpec_s /*X*/ XFrameDimensionInputSpec; -EXTERN InputSpec_s /*X*/ YFrameDimensionInputSpec; -EXTERN InputSpec_s /*X*/ LineThicknessInputSpec; -EXTERN InputSpec_s /*X*/ PatternLengthInputSpec; -EXTERN InputSpec_s /*X*/ AxisPercentageTextSizeInputSpec; -EXTERN InputSpec_s /*X*/ FrameTextSizeInputSpec; -EXTERN InputSpec_s /*X*/ GridTextSizeInputSpec; -EXTERN InputSpec_s /*X*/ PointTextSizeInputSpec; -EXTERN InputSpec_s /*X*/ TextBoxMarginInputSpec; -EXTERN InputSpec_s /*X*/ TextLineSpacingInputSpec; -EXTERN InputSpec_s /*X*/ ArrowheadSizeInputSpec; -EXTERN InputSpec_s /*X*/ AxisLabelOffsetInputSpec; -EXTERN InputSpec_s /*X*/ LegendLineSpacingInputSpec; -EXTERN InputSpec_s /*X*/ StreamStepSizeInputSpec; -EXTERN InputSpec_s /*X*/ StreamMaxStepsInputSpec; -EXTERN InputSpec_s /*X*/ ArrowheadSpacingInputSpec; -EXTERN InputSpec_s /*X*/ RulerPaddingInputSpec; -EXTERN InputSpec_s /*X*/ RulerThicknessInputSpec; -EXTERN InputSpec_s /*X*/ PickHandleWidthInputSpec; -EXTERN InputSpec_s /*X*/ ImageDimensionInputSpec; -EXTERN InputSpec_s /*X*/ ZoomScalePerFrameUnitInputSpec; -EXTERN InputSpec_s /*X*/ RGBLegendHeightInputSpec; - - - -/* Limit the number of objects or limit which object can be selected*/ -EXTERN InputSpec_s /*X*/ ColorMapGroupInputSpec; -EXTERN InputSpec_s /*X*/ SliceGroupInputSpec; -EXTERN InputSpec_s /*X*/ IsoSurfaceGroupInputSpec; -EXTERN InputSpec_s /*X*/ ContourGroupInputSpec; -EXTERN InputSpec_s /*X*/ ColorIndexInputSpec; -EXTERN InputSpec_s /*X*/ NumLightSourceShadesInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfControlPointsInputSpec; -EXTERN InputSpec_s /*X*/ CustomLabelNumberInputSpec; -EXTERN InputSpec_s /*X*/ NumMinorTicksInputSpec; -EXTERN InputSpec_s /*X*/ AxisEdgeNumberInputSpec; -EXTERN InputSpec_s /*X*/ LineMapWhichXAxisInputSpec; -EXTERN InputSpec_s /*X*/ LineMapWhichYAxisInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfCurvePointsInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfContourLevelsInputSpec; -EXTERN InputSpec_s /*X*/ ColorMapOverrideLevelInputSpec; -EXTERN InputSpec_s /*X*/ ColorMapOverrideNumberInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfColorMapCyclesInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfRodPointsInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfStreamtracesInputSpec; -EXTERN InputSpec_s /*X*/ NumberOfEllipsePointsInputSpec; -EXTERN InputSpec_s /*X*/ MaxPtsInALineInputSpec; -EXTERN InputSpec_s /*X*/ MaxChrsTextLabelsInputSpec; -EXTERN InputSpec_s /*X*/ MaxContourLevelsInputSpec; -EXTERN InputSpec_s /*X*/ MaxLinkGroupsInputSpec; - - -/* Ratios */ -EXTERN InputSpec_s /*X*/ DataAspectRatioLimitInputSpec; -EXTERN InputSpec_s /*X*/ DataAspectRatioResetInputSpec; -EXTERN InputSpec_s /*X*/ AxisBoxAspectRatioLimitInputSpec; -EXTERN InputSpec_s /*X*/ AxisBoxAspectRatioResetInputSpec; -EXTERN InputSpec_s /*X*/ AxisRatioInputSpec; -EXTERN InputSpec_s /*X*/ AxisBoxPaddingInputSpec; -EXTERN InputSpec_s /*X*/ ScreenDistanceRatioInputSpec; -EXTERN InputSpec_s /*X*/ LiftFractionInputSpec; -EXTERN InputSpec_s /*X*/ ZClipInputSpec; -EXTERN InputSpec_s /*X*/ VectorHeadSizeFractionInputSpec; - - -/* Misc */ -EXTERN InputSpec_s /*X*/ ValuePrecisionInputSpec; -EXTERN InputSpec_s /*X*/ PolynomialOrderInputSpec; -EXTERN InputSpec_s /*X*/ SplineSlopeInputSpec; -EXTERN InputSpec_s /*X*/ RotationStepSizeInputSpec; -EXTERN InputSpec_s /*X*/ SmoothRotationDegPerFrameUnitInputSpec; -EXTERN InputSpec_s /*X*/ TranslationStepSizeInputSpec; -EXTERN InputSpec_s /*X*/ ScaleStepSizeInputSpec; -EXTERN InputSpec_s /*X*/ SortLevelInputSpec; -EXTERN InputSpec_s /*X*/ AxisLabelSkipInputSpec; -EXTERN InputSpec_s /*X*/ TextAngleInputSpec; -EXTERN InputSpec_s /*X*/ ArrowheadAngleInputSpec; -EXTERN InputSpec_s /*X*/ MinCreaseAngleInputSpec; -EXTERN InputSpec_s /*X*/ ExponentInputSpec; -EXTERN InputSpec_s /*X*/ SmoothWeightInputSpec; -EXTERN InputSpec_s /*X*/ TriangleKeepFactorInputSpec; -EXTERN InputSpec_s /*X*/ PlotAttrColumnWidthInputSpec; -EXTERN InputSpec_s /*X*/ ImageQualityInputSpec; - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/MASTER.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/MASTER.h deleted file mode 100644 index 38c495dcf8..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/MASTER.h +++ /dev/null @@ -1,684 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/***************************************************************** - ***************************************************************** - ******* ******** - ****** Copyright (C) 1988-2008 Tecplot, Inc. ******* - ******* ******** - ***************************************************************** - *****************************************************************/ -/* BEGINREMOVEFROMADDON */ -/* NOTE: All code contained between comments that look like - * BEGINREMOVEFROMADDON - * ENDREMOVEFROMADDON - * are pulled out to create the MASTER.h file used in addons. - */ -/* ENDREMOVEFROMADDON */ - -#ifndef _MASTER_H_ -#define _MASTER_H_ - -/* - * Annotations that specify the life cycle of objects returned from functions - * and input and output parameters sent as function parameters. The following - * table specifies the meaning in their context. The annotations provide code - * generation tools with information for building language bindings to various - * Tecplot 360 and Tecplot SDK related libraries. - * - * For purposes of this table the client is one making the call and the service - * is the recipient. - * - * +==================+=========================+=================================================================+ - * | Function Context | Annotation | Meaning | - * | Result or | | | - * | Parameter | | | - * |==================+=========================+=================================================================| - * | Result | TP_OUT | Default for a function return value that does not transfer | - * | | | ownership. Because this is the most common scenario this | - * | | | annotation is implied and never explicitly used in this | - * | | | context. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Scalar Result | TP_GIVES | Annotates a function scalar return value as one who's ownership | - * | | | is transfered to the client. The client is responsible for | - * | | | properly disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Array Result | TP_ARRAY_GIVES | Annotates a function array return value as one who's ownership | - * | | | is transfered to the client. The client is responsible for | - * | | | properly disposing the value. | - * |==================+=========================+=================================================================| - * | Parameter | TP_IN | Default for a function input parameter value sent to the | - * | | | service. Because this is the most common scenario this | - * | | | annotation is implied and never explicitly used. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Parameter | TP_ACQUIRES | Annotates a function parameter as one that sends a value to | - * | | | the service through the parameter and acquires shared | - * | | | ownership of the input value with the client. The service is | - * | | | not responsible for disposing the value however it is | - * | | | expected that a symmetric API exists that "releases" the | - * | | | library of this shared ownership. For example: | - * | | | void addListener(TP_ACQUIRES Listener& listener); | - * | | | void removeListener(TP_RELEASES Listener& listener); | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Parameter | TP_RELEASES | Annotates a function parameter as one that sends a value to | - * | | | the service through the parameter and releases previously | - * | | | shared ownership of the | - * | | | input value with the client. The service is not responsible | - * | | | for disposing the value however it is expected that a | - * | | | symmetric API exists that "releases" the library of this | - * | | | shared ownership. For example: | - * | | | void addListener(TP_ACQUIRES Listener& listener); | - * | | | void removeListener(TP_RELEASES Listener& listener); | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Scalar Parameter | TP_OUT | Annotates a function scalar parameter as one that returns a | - * | | | value to the client through the parameter but does not | - * | | | transfer ownership of the output value to the client. | - * | | | The client is not responsible for disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Scalar Parameter | TP_IN_OUT | Annotates a function scalar parameter as one that both sends | - * | | | a value to the service and returns a value to the client | - * | | | through the parameter. Ownership of the input value is not | - * | | | transfered to the service nor is ownership of the output value | - * | | | transfered to the client. The service is not responsible for | - * | | | disposing the input value and the client is not responsible | - * | | | for disposing the output value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Array Parameter | TP_ARRAY_OUT | Annotates a function array parameter as one that returns a | - * | | | value to the client through the parameter but does not | - * | | | transfer ownership of the output value to the client. | - * | | | The client is not responsible for disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Array Parameter | TP_ARRAY_IN_OUT | Annotates a function array parameter as one that both sends | - * | | | a value to the service and returns a value to the client | - * | | | through the parameter. Ownership of the input value is not | - * | | | transfered to the service nor is ownership of the output value | - * | | | transfered to the client. The service is not responsible for | - * | | | disposing the input value and the client is not responsible | - * | | | for disposing the output value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Scalar Parameter | TP_GIVES | Annotates a function scalar parameter as one that returns a | - * | | | value to the client through the parameter and transfers | - * | | | ownership of the output value to the client. The client is | - * | | | responsible for properly disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Scalar Parameter | TP_RECEIVES | Annotates a function scalar parameter as one that sends a value | - * | | | to the service through the parameter and transfers ownership | - * | | | of the input value to the service. The service is responsible | - * | | | for properly disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Scalar Parameter | TP_RECEIVES_GIVES | Annotates a function scalar parameter as one that both sends | - * | | | a value to the service and returns a value to the client | - * | | | through the parameter. Ownership of the input value is | - * | | | transfered to the service and ownership of the output value is | - * | | | transfered to the client. The service is responsible for | - * | | | properly disposing the input value and the client is | - * | | | responsible for properly disposing the output value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Array Parameter | TP_ARRAY_GIVES | Annotates a function array parameter as one that returns a | - * | | | value to the client through the parameter and transfers | - * | | | ownership of the output value to the client. The client is | - * | | | responsible for properly disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Array Parameter | TP_ARRAY_RECEIVES | Annotates a function array parameter as one that sends a value | - * | | | to the service through the parameter and transfers ownership | - * | | | of the input value to the service. The service is responsible | - * | | | for properly disposing the value. | - * |------------------+-------------------------+-----------------------------------------------------------------| - * | Array Parameter | TP_ARRAY_RECEIVES_GIVES | Annotates a function array parameter as one that both sends | - * | | | a value to the service and returns a value to the client | - * | | | through the parameter. Ownership of the input value is | - * | | | transfered to the service and ownership of the output value is | - * | | | transfered to the client. The service is responsible for | - * | | | properly disposing the input value and the client is | - * | | | responsible for properly disposing the output value. | - * |==================+===================+=======================================================================| - */ - -/* - * First check to make sure that our life-cycle keywords are not in conflict with any system defines. - */ -#if defined TP_ACQUIRES || \ - defined TP_RELEASES || \ - defined TP_OUT || \ - defined TP_IN_OUT || \ - defined TP_ARRAY_OUT || \ - defined TP_ARRAY_IN_OUT || \ - defined TP_GIVES || \ - defined TP_RECEIVES || \ - defined TP_RECEIVES_GIVES || \ - defined TP_ARRAY_GIVES || \ - defined TP_ARRAY_RECEIVES || \ - defined TP_ARRAY_RECEIVES_GIVES - #error "Tecplot's parameter life-cycle keywords are in direct conflict with other meanings." -#endif - -#if defined INCLUDE_OBJECT_LIFECYCLE_ANNOTATIONS - #define TP_ACQUIRES __attribute((gccxml("acquires","in"))) - #define TP_RELEASES __attribute((gccxml("releases","in"))) - #define TP_OUT __attribute((gccxml("out"))) - #define TP_IN_OUT __attribute((gccxml("in","out"))) - #define TP_ARRAY_OUT __attribute((gccxml("array","out"))) - #define TP_ARRAY_IN_OUT __attribute((gccxml("array","in","out"))) - #define TP_GIVES __attribute((gccxml("gives","out"))) - #define TP_RECEIVES __attribute((gccxml("receives","in"))) - #define TP_RECEIVES_GIVES __attribute((gccxml("receives","in","gives","out"))) - #define TP_ARRAY_GIVES __attribute((gccxml("array","gives","out"))) - #define TP_ARRAY_RECEIVES __attribute((gccxml("array","receives","in"))) - #define TP_ARRAY_RECEIVES_GIVES __attribute((gccxml("array","receives","in","gives","out"))) -#else - #define TP_ACQUIRES - #define TP_RELEASES - #define TP_OUT - #define TP_IN_OUT - #define TP_ARRAY_OUT - #define TP_ARRAY_IN_OUT - #define TP_GIVES - #define TP_RECEIVES - #define TP_RECEIVES_GIVES - #define TP_ARRAY_GIVES - #define TP_ARRAY_RECEIVES - #define TP_ARRAY_RECEIVES_GIVES -#endif - -/* BEGINREMOVEFROMADDON */ -#ifdef NO_ASSERTS /* obfuscate names */ -#define ShutDownLicensing FreeAllExtraMapData -#define ProcessYMapInXDirection -#endif /* NO_ASSERTS */ - - -/************************************** - * LICENSING - **************************************/ -#if defined TECPLOTKERNEL && !defined ENGINE -/* CORE SOURCE CODE REMOVED */ -#if defined FLEXLM && defined RLM -#endif -#if !defined FLEXLM && !defined RLM -#endif -#endif - -#include "stdafx.h" - -#if defined MSWIN -#include "W__BASE.h" -#endif - -#include -#include -#include -#include - -#include "TranslatedString.h" - -/* - * The following is a temporary fix for figuring out which product is - * running. In the future when Focus and 360 use the same code base, - * we will have to do this dynamically (either with flags on the compiler - * or variables within Tecplot). - */ -/* ENDREMOVEFROMADDON */ - -#if defined _WIN32 - -#if !defined TECPLOTKERNEL - -#if !defined MSWIN -#define MSWIN -#endif /* !MSWIN */ - -/* For the sake of some older add-ons, - defined _WINDOWS, WINDOWS, and WIN32 - New code should always use MSWIN */ - -#if !defined WINDOWS -#define WINDOWS -#endif /* WINDOWS */ - -#if !defined _WINDOWS -#define _WINDOWS -#endif /* !_WINDOWS */ - -#if !defined WIN32 -#define WIN32 -#endif /* !WIN32 */ - -#if defined _DEBUG -#if !defined DEBUG -#define DEBUG -#endif -#elif defined CHECKED_BUILD -#if defined NO_ASSERTS -#undef NO_ASSERTS -#endif -#if defined NDEBUG -#undef NDEBUG -#endif -#else /* RELEASE */ -#if !defined NDEBUG -#define NDEBUG -#endif -#if !defined NO_ASSERTS -#define NO_ASSERTS -#endif -#endif /* _DEBUG */ -#endif /* TECPLOTKERNEL */ - -#if _MSC_VER >= 1400 -#define VS_2005 /* Using VS2005 Compiler */ -#endif - -#if !defined TECPLOTKERNEL && defined VS_2005 -/* Suppress the warnings about the - deprecated c runtime functions. */ - -#if !defined _CRT_SECURE_NO_DEPRECATE -#define _CRT_SECURE_NO_DEPRECATE -#endif -#endif /* !TECPLOTKERNEL && VS_2005 */ - -#endif /* MSWIN */ - -#ifdef NDEBUG -# ifdef _DEBUG -# error "Both NDEBUG and _DEBUG defined" -# endif -#elif defined TECPLOTKERNEL -# ifndef _DEBUG -# define _DEBUG -# endif -#endif - -/* Now a requirement */ -#define USE_3D_HARDWARE - -#ifndef THREED -# define THREED -#endif - -#include -#include -#include - -#if defined QUICKDEMO -#define DEMO -#endif - -#if defined MicrosoftC -#define DOS -#endif - -#if defined CRAYX -#define CRAY -#endif - -#if defined IRISX -#define IRIS -#endif - -#if defined HPX -#define HPUX -#define HP -#endif - -#if defined IBMRS6000X -#define IBMRS6000 -#endif - -#if defined COMPAQALPHAX -#define COMPAQALPHA -#define COMPAQX -#define COMPAQ -#endif - -#if defined DECALPHAX -#define DECALPHA -#define DECX -#endif - -#if defined DECX -#define DEC -#endif - -#if defined SUNSOLARISX || defined SUNSOLARIS86X -#define SUNX -#endif - -#if defined SUNX -#define SUN -#endif - -#if defined IRISX || defined CRAYX || defined HPX || defined SUNX || defined CONVEXX -#define UNIXX -#define SYSV -#endif - -#if defined DECX || defined LINUX || defined IBMRS6000X || defined COMPAQX || defined DARWIN -#define UNIXX -#endif - -/* BEGINREMOVEFROMADDON */ -#include - - -/* A bit of OEM stuff */ -#define OEM_INVALID_CHECKSUM (LgIndex_t) -1 - -/* Hide the name of the checksum function */ -#if defined NDEBUG -# define DECRYPTTIMEDCODE FixupPlot -# define CHECKHASHEDCODE ExpandPlot -# define UPDATECLASSICOEMEHCKSUM ToggleQuadrants -# define UPDATEOEMCHECKSUM ComputeAngleFromQuatrant -# define InitOemSettings InitAngleQuatrantSettings -#endif - -#if defined MSWIN -#define USE_TRUETYPEFONTS -#endif -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ - -#ifdef __cplusplus // STL - -#ifdef MSWIN - -#pragma warning(push, 1) /* warning disabling bellow doesn't actually have any effect on compiler warning. -* It appears that Microsft STL enables all the warning right back on. -* Therefore, the only way to hide them is to push existing warning level, -* lower the level for the time while STL headers are included and then restore - * previous warning level with a "pragma warning(pop)" - */ - -#pragma warning(disable: 4018) // signed/unsigned mismatch -#pragma warning(disable: 4100) // unreferenced formal parameter -#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, - // result still unsigned -#pragma warning(disable: 4244) // 'conversion' conversion from 'type1' to 'type2', - // possible loss of data -#pragma warning(disable: 4245) // conversion from 'type1' to 'type2', signed/unsigned - // mismatch -#pragma warning(disable: 4511) // 'class' : copy constructor could not be generated -#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated -#pragma warning(disable: 4663) // C++ language change: to explicitly specialize class - // template 'vector' -#pragma warning(disable: 4710) // 'function' : function not inlined -#pragma warning(disable: 4786) // identifier was truncated to 'number' characters - // in the debug information -#endif - -#ifdef MSWIN -#pragma warning(pop) //Restore old warning state. -#endif //MSWIN - -#endif //__cplusplus - - /* ENDREMOVEFROMADDON */ - -#ifdef MSWIN - /* BEGINREMOVEFROMADDON */ -#ifdef TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#ifdef _DEBUG -#endif -#endif /* TECPLOTKERNEL */ - /* ENDREMOVEFROMADDON */ - -#ifndef TECPLOTKERNEL -#if defined VS_2005 -#define Widget LONG_PTR /* correct for 32 & 64 bit builds */ -#else -#define Widget long -#endif -#endif - - - -#endif /* MSWIN */ - - -#if defined UNIXX && defined ENGINE - typedef void *Widget; -#endif - - -#include - -#if !defined SYSV && !defined MSWIN -#include -#endif - -#if defined (MicrosoftC) -#include -#define EXECOS -#ifndef FAR -#define FAR -#endif -#define VOID void -#endif - -#include -#include - -#if defined UNIXX -#if !defined ENGINE -#define X11 -#define MOTIF -#endif -#define FAR -#define NEAR -#include -#endif - -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined THREADS_BY_PTHREADS && !defined THREADS_BY_WINAPI -#endif -#if defined THREADS_BY_PTHREADS -#endif -#endif -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -/* OPENGL currently a must have */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# if !defined ENGINE -# if defined UNIXX -# endif -# endif -#endif -/* ENDREMOVEFROMADDON */ -/* - * If not building the tecplot kernel then at least - * include the X Instrinsics. This will make most - * development for addons etc work. - */ - -/* NOTE: MOTIF not defined if ENGINE is defined */ -#if defined MOTIF -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# if XmVERSION == 1 && XmREVISION == 0 -# endif -# else -# include -# endif -#endif - -#if defined MOTIF -#define CREATE_DIALOG_PARAMS Widget W -typedef Widget ComboBoxWidget_t; -typedef Widget DropDownListWidget_t; -typedef Widget FileDialogWidget_t; -typedef Widget LabelWidget_t; -typedef Widget ListWidget_t; -typedef Widget OptionMenuWidget_t; -typedef Widget PullDownMenuWidget_t; -typedef Widget ScaleWidget_t; -typedef Widget TextFieldWidget_t; -typedef Widget ToggleWidget_t; -typedef Widget ButtonWidget_t; -typedef Widget GridWidget_t; -#endif -#if defined MSWIN -#include -#define CREATE_DIALOG_PARAMS CWnd *, LaunchDialogMode_e -typedef Widget ComboBoxWidget_t; -typedef Widget DropDownListWidget_t; -typedef Widget FileDialogWidget_t; -typedef Widget LabelWidget_t; -typedef Widget ListWidget_t; -typedef Widget OptionMenuWidget_t; -typedef Widget PullDownMenuWidget_t; -typedef Widget ScaleWidget_t; -typedef Widget TextFieldWidget_t; -typedef Widget ToggleWidget_t; -typedef Widget ButtonWidget_t; -typedef Widget GridWidget_t; -#endif - -/* BEGINREMOVEFROMADDON */ -#if defined MSWIN && defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined TRACE -#endif -#if defined TRACE0 -#endif -#if defined TRACE1 -#endif -#if defined TRACE2 -#endif -#if defined TRACE3 -#endif -#if defined NDEBUG -#else -#endif -#endif /* MSWIN */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ -/* ENDREMOVEFROMADDON */ - -/* Assume that if TRACE is not defined, then none of the TRACE macros are */ -#if !defined (TRACE) -/* TRACE is not used by non-debug builds */ -#if defined NDEBUG -#if defined MSWIN -#define TRACE __noop -#define TRACE0(s) __noop -#define TRACE1(S,a1) __noop -#define TRACE2(s,a1,a2) __noop -#define TRACE3(s,a1,a2,a3) __noop -#else -#define TRACE(str) ((void)0) -#define TRACE0(str) ((void)0) -#define TRACE1(str,a1) ((void)0) -#define TRACE2(str,a1,a2) ((void)0) -#define TRACE3(str,a1,a2,a3) ((void)0) -#endif /* MSWIN */ -#else /* DEBUG */ -#if defined MSWIN -/* If the add-on is running in debug mode but does not - * use MFC, then no TRACE macro is available. Thus, to make tracing available, - * map TRACE to the win32 OutpuDebugString() function. - */ -# define TRACE(str) do { OutputDebugStringA(str); } while (0) -# define TRACE1(str,a1) do { char s[5000]; sprintf(s,str,a1); OutputDebugStringA(s); } while (0) -# define TRACE2(str,a1,a2) do { char s[5000]; sprintf(s,str,a1,a2); OutputDebugStringA(s); } while (0) -# define TRACE3(str,a1,a2,a3) do { char s[5000]; sprintf(s,str,a1,a2,a3); OutputDebugStringA(s); } while (0) -# define TRACE0(str) TRACE(str) -#else -#define TRACE printf -#define TRACE0 printf -#define TRACE1 printf -#define TRACE2 printf -#define TRACE3 printf -#endif /* MSWIN */ -#endif /* NDEBUG */ -#endif /* !defined (TRACE) */ - - -/* - Platform independent way for add-ons to know how much space - to allocate for a filename. -*/ -#if !defined MAX_SIZEOFUTF8CHAR -#define MAX_SIZEOFUTF8CHAR 1 -#endif - -#if !defined (MaxCharsFilePath) -# if defined (MSWIN) -# define MaxCharsFilePath (_MAX_PATH*MAX_SIZEOFUTF8CHAR+1) /* Includes traling '\0' */ -# else -# define MaxCharsFilePath 2047 /* ...not really a hard limit for Linux/Unix */ -# endif /* MSWIN */ -#endif /* !MaxCharsFilePath */ - -/* BEGINREMOVEFROMADDON */ - -/* - * Under Windows, if we are doing a release build (NDEBUG) that is not a CHECKED_BUILD - * then NO_ASSERTS should be defined - */ -#if defined MSWIN && defined NDEBUG && !defined NO_ASSERTS && !defined CHECKED_BUILD -/* intentionally break the compile */ -# error "define NO_ASSERTS for release builds" -#endif - -/* - * Under Windows, if we are doing a CHECKED_BUILD then it should - * also be a release build (NDEBUG) - */ -#if defined MSWIN && defined CHECKED_BUILD && !defined NDEBUG -# error "CHECKED_BUILDS must also be release builds" -#endif - - -#if defined NO_ASSERTS -# define USE_MACROS_FOR_FUNCTIONS -#endif -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -/* - * Under Linux the definition of NULL has a cast that conflicts with our own - * casting causing warnings that make it tough to find real problems. - */ -#if defined LINUX && defined NULL -# undef NULL -# define NULL 0 -#endif - -/* - */ -#if !defined MSWIN && !defined ENGINE && !defined ISMESA -#define DISALLOW_OFFSCREEN_EXPORT_IN_BATCH -#endif - -/* ENDREMOVEFROMADDON */ - -#endif /* _MASTER_H_ */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/files b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/files deleted file mode 100644 index 084478a07a..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/files +++ /dev/null @@ -1,21 +0,0 @@ -alloc.cpp -arrlist.cpp -auxdata.cpp -dataio4.cpp -dataio.cpp -dataset0.cpp -dataset.cpp -datautil.cpp -filestream.cpp -geom2.cpp -q_msg.cpp -q_unicode.cpp -set.cpp -strlist.cpp -strutil.cpp -tassert.cpp -tecxxx.cpp -TranslatedString.cpp - -LIB = $(FOAM_LIBBIN)/libtecio - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/options b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/options deleted file mode 100644 index a355d90c5e..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/options +++ /dev/null @@ -1,7 +0,0 @@ -#include "tecioOptions" - -EXE_INC = \ - $(TECIO_FLAGS) $(TECIO_INC) - -LIB_LIBS = \ - $(TECIO_LIBS) diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/tecioOptions b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/tecioOptions deleted file mode 100644 index f8dcf48759..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Make/tecioOptions +++ /dev/null @@ -1,20 +0,0 @@ -#if defined(linux64) - - TECIO_FLAGS = -DMAKEARCHIVE -DLINUX -DLINUX64 -DUSEENUM -DTHREED -U_WIN32 - -#elif defined(linuxIA64) - - TECIO_FLAGS = -DMAKEARCHIVE -DLINUX -DLINUXI64 -DUSEENUM -DTHREED -U_WIN32 - -#elif defined(linux) - - TECIO_FLAGS = -DMAKEARCHIVE -DLINUX -DUSEENUM -DTHREED -U_WIN32 - -#else - -# error architecture not supported for compiling tecio. - -#endif - -TECIO_INC = -TECIO_LIBS = diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Q_MSG.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Q_MSG.h deleted file mode 100644 index 84f1d1af76..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Q_MSG.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#ifndef Q_MSG_H -#define Q_MSG_H -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -#if defined EXTERN -#undef EXTERN -#endif -#if defined Q_MSGMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -#define MAX_STATUS_LINE_MSG_LEN 255 - -#include "TranslatedString.h" - -EXTERN Boolean_t WrapString(const char *OldString, - char **NewString); -EXTERN void Warning(tecplot::strutil::TranslatedString Format, - ...); /* zero or more arguments */ -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -EXTERN void ErrMsg(tecplot::strutil::TranslatedString Format, - ...); /* zero or more arguments */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE -#endif -#if !defined ENGINE -#if defined MOTIF -#endif -#endif -#if !defined ENGINE -#endif -#if defined Q_MSGMODULE -#else -#endif -#endif // TECPLOTKERNEL - -#endif // Q_MSG_H diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Q_UNICODE.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Q_UNICODE.h deleted file mode 100644 index b91c2ca65e..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/Q_UNICODE.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - - -#if !defined Q_UNICODE_H_ -# define Q_UNICODE_H_ - -#if defined EXTERN -#undef EXTERN -#endif -#if defined Q_UNICODEMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -namespace tecplot -{ -namespace strutil -{ - -// functions -Boolean_t IsValidUtf8LeadByte(Byte_t ch); -Boolean_t IsValidUtf8ContinuingByte(Byte_t ch); -Boolean_t IsValidUtf8Byte(Byte_t ch); - -Boolean_t IsValidUtf8String(const char *str); -Boolean_t ShouldConvertWideStringToUtf8String(const wchar_t *str); -void InitTranslatedStrings(); -void CleanUpTranslatedStrings(); - -Boolean_t IsNullOrZeroLengthString(const char *S); -Boolean_t IsNullOrZeroLengthString(tecplot::strutil::TranslatedString TS); - -Boolean_t IsEmptyString(const char *S); -Boolean_t IsEmptyString(tecplot::strutil::TranslatedString S); -Boolean_t IsEmptyString(const wchar_t* S); - -#if defined MSWIN - -std::string LookUpTranslation(std::string& strEnglish); -void MsWinInitTranslatedStrings(); - -std::string WStringToString(std::wstring str); -std::wstring StringToWString(std::string str); - -std::wstring MultiByteToWideChar(const char *Utf8Str, - unsigned int CodePage); - -std::string WideCharToMultiByte(const wchar_t *WideStr, - unsigned int CodePage); - -// Conversion -std::string WideCharToUtf8(const wchar_t* str); -std::wstring Utf8ToWideChar(const char *str); -char *getenv(const char *str); - -#endif - -} -} - -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/SET.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/SET.h deleted file mode 100644 index 2ab99f64a0..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/SET.h +++ /dev/null @@ -1,283 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#if defined EXTERN -#undef EXTERN -#endif -#if defined SETMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -#ifndef _SET_H_INCLUDED -#define _SET_H_INCLUDED - -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#define PadOut(X,Y) ((int)(((X)-1)/(Y)+1)*(Y)) -#define SetBitSize (8*sizeof(SetData_t)) -#define SetLastBit (((unsigned long)1)<<(SetBitSize-1)) - -#if defined _DEBUG -# define USE_FUNCTIONS_FOR_SETS -#endif - -/* * - * * NOTE: "Set_pa" is a pointer to an "abstract type", - * * hence the "_pa". Pointer here is akin to "handle". - * * Any routines dealing with the internals of Set_pa - * * or Set_a must be in the same file as these routines - * */ - -/* Set_a is intentionally not defined to further - * deter usage of this private structure */ -struct _Set_a -{ - /* * PRIVATE * */ - SetIndex_t size; - SetData_pt data; -}; - -/* - * Checks set for NULL. - */ -#define IsSetNull(Set) ((Set)==NULL) - -/** - * Indicates how many bytes are required to store the set data. - */ -inline size_t SetDataSizeInBytes(Set_pa Set) -{ - REQUIRE(VALID_REF(Set)); - return Set->size / SetBitSize * sizeof(SetData_t); -} - -/* - * Allocates a new empty set. Returns NULL if not enough memory. - */ -EXTERN Set_pa AllocSet(Boolean_t show_error_msg); - -/* - * Frees all memory associated with set "*set", and - * sets "*set" to NULL. - */ -EXTERN void DeallocSet(Set_pa *Set); - -/** - * This function adapts the DeallocSet function to work with the - * ArrayList's deallocation callback. - */ -EXTERN Boolean_t SetItemDestructor(void *ItemRef, - ArbParam_t ClientData); -/* - * Makes sure set "set" can hold at least "max_val" elements. - * Returns TRUE if successful, FALSE otherwise. A successful - * call to ExpandSet() guarentees that any calls to AddToSet() - * will be successful as long as the elements added are less - * than "max_val". - */ -EXTERN Boolean_t ExpandSet(Set_pa Set, - SetIndex_t max_val, - Boolean_t show_error_msg); - -/* - * Copies set "src" to set "dst". Returns TRUE if successful, - * FALSE if "src" contains elements it is unable to add to "dst". - */ -EXTERN Boolean_t CopySet(Set_pa dst, - Set_pa src, - Boolean_t show_error_msg); - -/* - * Appends set "src" to set "dst". Returns TRUE if successful, - * FALSE if "src" contains elements it is unable to add to "dst". - */ -EXTERN Boolean_t AppendSet(Set_pa dst, - Set_pa src, - Boolean_t show_error_msg); -/* - * Empties the set "set". - */ -EXTERN void ClearSet(Set_pa Set); - -/* - * Adds "member" to set "set". Returns TRUE if successful, - * FALSE otherwise. AddToSet() can only return FALSE if - * "member" is greater than any previous member of "set" and - * also greater that any "max_val" set with ExpandSet(). - */ -#if defined USE_FUNCTIONS_FOR_SETS -EXTERN Boolean_t AddToSet(Set_pa Set, - SetIndex_t member, - Boolean_t show_error_msg); -#else -# if defined __cplusplus -inline Boolean_t AddToSet(Set_pa Set, - SetIndex_t member, - Boolean_t show_error_msg) -{ - if (Set && - (member + 1 <= Set->size || - ExpandSet(Set, member + 1, show_error_msg))) - { - SetIndex_t word = member / SetBitSize; - SetData_t bit = (SetData_t)1 << (member % SetBitSize); - Set->data[word] |= bit; - return TRUE; - } - else - return FALSE; -} /* AddToSet() */ -# else -# define AddToSet(Set,member,show_error_msg) \ - (((Set) && \ - ((member)+1 <= (Set)->size || \ - ExpandSet((Set), (member)+1, (show_error_msg)))) \ - ? (((Set)->data[(member) / SetBitSize] |= (SetData_t)1 << ((member) % SetBitSize)), TRUE) \ - : FALSE) -# endif -#endif - -/* - * Removes "member" from set "set". - */ -EXTERN void RemoveFromSet(Set_pa Set, - SetIndex_t member); - -EXTERN void DeleteSetMember(Set_pa Set, - SetIndex_t Member); -EXTERN Boolean_t InsertSetMember(Set_pa Set, - SetIndex_t Member, - Boolean_t ShowErrMsg); -/* - * Test for membership of "member" in set "set". This is the only - * function worth making into a macro or inline function. - */ -#if defined USE_FUNCTIONS_FOR_SETS -EXTERN Boolean_t InSet(Set_pa Set, - SetIndex_t member); -#else -# if defined __cplusplus -inline Boolean_t InSet(Set_pa Set, - SetIndex_t member) -{ - if (Set && (0 <= member && member < Set->size)) - { - SetIndex_t word = member / SetBitSize; - SetData_t bit = (SetData_t)1 << (member % SetBitSize); - return (Set->data[word]&bit) != 0; - } - else - return FALSE; -} /* InSet() */ -# else -# define InSet(Set,member) ((Set && (0<=(member) && (member)<(Set)->size)) \ - ? ((Set)->data[(member)/SetBitSize]&((SetData_t)1<<((member)%SetBitSize)))!=0 \ - : FALSE) -# endif -#endif - -/* - * Returns TRUE if set "set" is empty. - */ -EXTERN Boolean_t IsEmpty(Set_pa Set); - -/* - * Returns TRUE if Set has voids. - */ -EXTERN Boolean_t HasVoids(Set_pa Set); - -/* - * Returns number of members in Set "Set". - */ -EXTERN SetIndex_t MemberCount(Set_pa Set); - -/* - * Returns the next member in set "set" after member "start_at". - * Use "start_at" of BAD_ZV_VALUE to find first member. - */ -EXTERN SetIndex_t GetNextMember(Set_pa Set, - SetIndex_t start_at); - -/* - * Returns the previous member in set "set" before member - * "start_at". Use "start_at" of BAD_ZV_VALUE to find last member. - */ -EXTERN SetIndex_t GetPrevMember(Set_pa Set, - SetIndex_t start_at); - -/* - * Returns TRUE if sets are equal (have same members). FALSE otherwise. - */ -EXTERN Boolean_t EqualSets(Set_pa set1, - Set_pa set2); - -/* - * Returns TRUE if all members of childset are contained in parentset. - */ -EXTERN Boolean_t IsSubSet(Set_pa childset, - Set_pa parentset); - -EXTERN SetIndex_t MemberOffset(Set_pa Set, - SetIndex_t Member); - -EXTERN SetIndex_t OffsetMember(Set_pa Set, - SetIndex_t Offset); - - -EXTERN Boolean_t CopySetMember(Set_pa DstSet, - SetIndex_t DstOffset, - Set_pa SrcSet, - SetIndex_t SrcOffset); - -EXTERN void ShiftSet(Set_pa Set, - SetIndex_t ShiftPos1, - SetIndex_t ShiftPos2, - SetIndex_t ShiftAmount); - - -/* - * Handy macros - */ -#define GetFirstSetMember(Set) (GetNextMember((Set), BAD_SET_VALUE)) -#define GetLastSetMember(Set) (GetPrevMember((Set), BAD_SET_VALUE)) - -#define ForAllMembersInSet(Member, Set) \ - for (Member = GetFirstSetMember((Set)); \ - Member != BAD_SET_VALUE; \ - Member = GetNextMember((Set), (Member))) -#define ForAllMembersInReversedSet(Member, Set) \ - for (Member = GetLastSetMember((Set)); \ - Member != BAD_SET_VALUE; \ - Member = GetPrevMember((Set), (Member))) - -#endif // _SET_H_INCLUDED diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/STRLIST.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/STRLIST.h deleted file mode 100644 index 04d1673b11..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/STRLIST.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ -#if defined EXTERN -# undef EXTERN -#endif -#if defined STRLISTMODULE -# define EXTERN -#else -# define EXTERN extern -#endif - -#if !defined ARRLIST_h -# error "Include ARRLIST.h before including STRLIST.h" -#endif - -/* - * - * For building pltview.exe under Windows, we use - * tecio.dll (which is linked to pltview). - * Since pltview.exe uses a few of the - * functions here, they need to be exported into - * the tecio.dll, thus "TECXXX.h" is included for the - * LIBFUNCTION & LIBCALL keywords. They are not - * documented with the other TECXXX() functions, - * however. - * - * If pltview requires other string functions - * in the future, they can be added to the dll - * by adding LIBFUNCTION & LIBCALL as in - * StringListDealloc(), etc. below. - * - * When building the tecplot kernal, LIBFUNCTION - * and LIBCALL are nop's. - * - */ -#include "TECXXX.h" - -EXTERN Boolean_t StringListValid(StringList_pa StringList); -EXTERN void StringListClear(StringList_pa StringList); -EXTERN void StringListRemoveStrings(StringList_pa StringList, - LgIndex_t StringOffset, - LgIndex_t Count); -EXTERN void StringListRemoveString(StringList_pa StringList, - LgIndex_t StringOffset); -LIBFUNCTION void LIBCALL StringListDealloc(StringList_pa *StringList); -EXTERN StringList_pa StringListAlloc(void); -EXTERN Boolean_t StringListAppendString(StringList_pa StringList, - const char *String); -LIBFUNCTION LgIndex_t LIBCALL StringListCount(StringList_pa StringList); -LIBFUNCTION char * LIBCALL StringListGetString(StringList_pa StringList, - LgIndex_t StringOffset); - -#if defined USE_MACROS_FOR_FUNCTIONS -# define StringListGetStringRef StringListGetStringRef_MACRO -#else -# define StringListGetStringRef StringListGetStringRef_FUNC -#endif - -#if !defined USE_MACROS_FOR_FUNCTIONS -EXTERN const char * StringListGetStringRef_FUNC(StringList_pa StringList, - LgIndex_t StringOffset); -#endif -/** - * To maintain the string list's integrity the result is cast to a - * (const char *) to minimize the risk of users passing the result - * to FREE_ARRAY. - */ -#define StringListGetStringRef_MACRO(StringList, StringOffset) \ - ((const char *)ArrayListGetCharPtr((ArrayList_pa)(StringList), StringOffset)) - -EXTERN Boolean_t StringListSetString(StringList_pa StringList, - LgIndex_t StringOffset, - const char *String); -EXTERN Boolean_t StringListInsertString(StringList_pa StringList, - LgIndex_t StringOffset, - const char *String); -EXTERN StringList_pa StringListCopy(StringList_pa StringList); -EXTERN Boolean_t StringListAppend(StringList_pa Target, - StringList_pa Source); - -EXTERN char *StringListToNLString(StringList_pa StringList); -EXTERN StringList_pa StringListFromNLString(const char *String); -EXTERN char **StringListToArray(StringList_pa StringList); -EXTERN StringList_pa StringListFromArray(const char **StringArray, - LgIndex_t Count); -EXTERN StringList_pa StringListFromCompound(const char *String); -EXTERN char *StringListToCompound(StringList_pa StringList, - char GroupJoinCharacter, - const char *CharsToEscape); -EXTERN void StringListSort(StringList_pa StringList, - StringListStringComparator_pf Comparator, - ArbParam_t ClientData); diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/STRUTIL.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/STRUTIL.h deleted file mode 100644 index c8e0c2b5a3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/STRUTIL.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#if defined EXTERN -#undef EXTERN -#endif -#if defined STRUTILMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -#include - -namespace tecplot -{ -namespace strutil -{ -class Scanner; -} -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - - -EXTERN void FormatStringBufferCleanup(void); - -/* - * This is a helper function for FormatString or any other functions that want - * to format a string based on a format string followed by a set of arguments. - * See FormatString or ErrMsg functions for example usage. - * - * @param Format - * C format string. - * @param Arguments - * Variable argument list already fetched using va_start(). - * - * @return - * Allocated string with the formatted string or NULL if it failed. - */ -EXTERN char *vFormatString(const char *Format, - va_list Arguments); - -/** - * Formats a string using the specified C format string. - * - * @param Format - * C format string. - * @param ... - * Any arguments needed by the C format string. - * - * @return - * Allocated string with the formatted string or NULL if it failed. The - * client is responsible for deallocating the resource. - */ -EXTERN char *FormatString(tecplot::strutil::TranslatedString Format, - ...); /* 0 or more variable arguments */ - -/** - * Formats a string using the specified C format string and places the result - * in the string buffer. - * - * @param Buffer - * String buffer to receive the formatted string. - * @param Format - * C format string. - * @param ... - * Any arguments needed by the C format string. - * - * @return - * Upon successful return, these functions return the number of characters - * printed, not including the trailing '\0' used to end output to strings. If - * unsuccessful -1 is returned. - */ -EXTERN int FormatString(std::string& Buffer, - tecplot::strutil::TranslatedString Format - ...); /* 0 or more variable arguments */ -EXTERN char *DupString(tecplot::strutil::TranslatedString String); -EXTERN void CopySubString(char *Target, - const char *Source, - int Index, - int Count); - -#if !defined MSWIN - -EXTERN void ReplaceCharInString(char *S, - short OldChar, - short NewChar); -#endif - -EXTERN void MakeStringLowerCase(char *str); -EXTERN void MakeStringUpperCase(char *str); -EXTERN char *TrimLeadAndTrailSpaces(char *String); -EXTERN char *StringFlushLeft(char *String); -EXTERN char *StringTruncate(char *String, - LgIndex_t MaxLength); -EXTERN char *StringTrimAndTruncate(char *String, - LgIndex_t MaxLength); - -#ifndef MSWIN -EXTERN StringList_pa LineBreakString(const char *String, - UInt32_t WrapMargin); -#endif - -EXTERN Boolean_t MatchKey(char *StringToMatch, - char *Key); -EXTERN void RemoveSeparator(const char **CPtr); -EXTERN void SkipWhiteSpace(const char **CPtr); -EXTERN void SkipNonWhiteSpace(char **CPtr); -EXTERN const char *ustrstr(const char *s1, - const char *s2); -EXTERN int ustrncmp(const char *s1, - const char *s2, - size_t Len); -EXTERN int ustrcmp(const char *s1, - const char *s2); -/* public access */ -/* InternalResetString should not be used directly (use ResetString macro) */ -#if !defined NO_ASSERTS -EXTERN Boolean_t InternalResetString(char **SBase, - const char *NewString, - Boolean_t IssueErrMsg, - const char *FileName, - int LineNumber); -# define ResetString(SBase, NewString, IssueErrMsg) InternalResetString( \ - SBase, \ - NewString, \ - IssueErrMsg, \ - __FILE__, __LINE__) -#else -EXTERN Boolean_t InternalResetString(char **SBase, - const char *NewString, - Boolean_t IssueErrMsg); -# define ResetString(SBase, NewString, IssueErrMsg) InternalResetString( \ - SBase, \ - NewString, \ - IssueErrMsg) -#endif - -EXTERN Boolean_t ScanForString(tecplot::strutil::Scanner &scanner, - std::string &DestString, - Boolean_t GrabEntireStringIncludingDelimiters); -EXTERN Boolean_t TackOnString(char **SBase, - const char *StringToAdd, - Boolean_t DeleteStringToAdd, - Boolean_t ConvertNewlineToAscii); -EXTERN Boolean_t TackOnConstString(char **SBase, - const char *StringToAdd, - Boolean_t ConvertNewlineToAscii); -EXTERN Boolean_t TackOnChar(char **SBase, - char CharToAdd); -EXTERN Boolean_t ReplaceNewlineWithBackslashN(char **String); -EXTERN Boolean_t ReplaceBackslashNWithNewline(char **S); - -EXTERN Boolean_t EscapeOutDelimitersInString(char **S, - char Delimiter); -EXTERN Boolean_t ScanForSymbol(tecplot::strutil::Scanner &scanner, - char Symbol, - Boolean_t OnlySkipWhiteSpace); - - -/* Newline Delimited Strings */ -EXTERN char *ConvertStringToNewlineDelimitedString(const char *OriginalString); -EXTERN char *ConvertNewlineDelimitedStringToQuotedString(const char *NewlineDelimitedString, - Boolean_t SeparateInstructionsWithPlus); - - - -EXTERN char *InsertNameAtPlaceHolder(char *BaseString, - char *NameToInsert); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined NO_ASSERTS -#endif /* !NO_ASSERTS */ -#endif //TECPLOTKERNEL - -inline char* EndOfString(char* str) -{ - return str + strlen(str); -}; -inline char const* EndOfString(char const* str) -{ - return str + strlen(str); -}; diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/SYSTEM.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/SYSTEM.h deleted file mode 100644 index 6e510359a5..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/SYSTEM.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ -#if defined EXTERN -#undef EXTERN -#endif -#if defined SYSTEMMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -EXTERN int OpenFileListGetCount(void); -EXTERN char *GetLongFileName(const char *FileName); -EXTERN Boolean_t VerifyToOverwriteFile(const char *FName); -EXTERN Boolean_t IsValidDirectory(const char *FName); -EXTERN Boolean_t FileExists(const char *F, - Boolean_t ShowErr); -EXTERN Boolean_t IsOkFNameChar(unsigned char ch); -EXTERN void ErrFName(const char *FName); -EXTERN Boolean_t IsValidFileName(const char *FileName, - Boolean_t IsReading, - Boolean_t ShowError); -EXTERN Boolean_t ResizeFile(FILE *File, - Int64_t Length); -EXTERN Boolean_t Close_File(FILE **F, - Boolean_t ShowErr); -EXTERN Boolean_t Open_File(FILE **F, - const char *FName, - Boolean_t IsReading, - Boolean_t IsAppending, - Boolean_t ForceOpen, - Boolean_t ShowErr, - Boolean_t IsAscii); - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TASSERT.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TASSERT.h deleted file mode 100644 index 78252294d3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TASSERT.h +++ /dev/null @@ -1,513 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -/* - * Provide four levels of assertion control. Assertions provide a mechanism - * to enforce a contract between a client and service provider. The assertions - * are listed in order of highest to lowest priority. Assertions can be turned - * off individually by defining the appropriate name (see preprossessor - * definitions below), however, lower priority assertions should be turned - * off prior to higher ones. As confidence in the code increases all assertions - * can be turned off by defining NO_ASSERTS. - * - * The assertions defined below have the following meanings: - * - * INVARIANT - Asserts that a property's state is invariant throughout the - * life of the property's scope. Stating invariant properties - * of an application provides a deeper understanding of the - * application's state. These statements are usually - * positioned just ahead of the preconditions and just after - * the postconditions. - * - * REQUIRE - Asserts that a method's preconditions are within their - * valid domains. Preconditions are conditions placed upon - * any state information relied upon for the call. These - * statements should be as close to the top of the method - * as possible (except for assertions on invariant properties). - * - * ENSURE - Asserts that a method's postconditions are within their - * valid ranges. Postconditions are conditions placed upon - * any state information modified by the call. These - * statements should be as close to the bottom of the method - * (presumably there is only one exit point) as possible - * (except for assertions on invariant properties). - * - * CHECK - Any other assertion not covered by the above assertions. - * These are often added within a method body to specify - * something that may not be immediately obvious to the reader - * or to validate your assumptions about a call to a 3rd party - * method that does not use runtime assertions for its - * preconditions or postconditions. Obviously if the 3rd party - * method uses assertions then there is no need for the CHECK. - * - * Additionally a convenience macro is available to place in code that is - * pending implementation. - * - * NOT_IMPLEMENTED - Assertion that always fails during runtime for debug - * builds and always fails at compile time for release - * builds. - */ -#if !defined TASSERT_H -#define TASSERT_H - -#if defined (MSWIN) -# include -#endif /* MSWIN */ - -#if !defined TECPLOTKERNEL && !defined STD_ASSERTS -#define STD_ASSERTS -#endif - -#if !defined (MSWIN) -# include -# if !defined ASSERT -# define ASSERT assert -# endif -#endif - -#if defined MSWIN -/* MFC .NET defines ENSURE, so we undefine it here */ -#if defined ENSURE -#undef ENSURE -#endif /* ENSURE */ -#endif /* MSWIN */ - -/* BEGINREMOVEFROMADDON */ -#define INVALID_REF ((void *)0x0000FFFF) -/* - * Chances are low the address 0x11111111 will be used, so we'll risk asserting - * against it (see unitialized assignment in newmalloc). - */ -#define UNINITIALIZED_REF ((void *)0x11111111) -#define INVALID_FN_REF ((void *)NULL) -/* ENDREMOVEFROMADDON */ - -#ifdef UNIXX -/* BEGINREMOVEFROMADDON */ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# if defined NO_ASSERTS -# else -# endif -#endif /* TECPLOTKERNAL */ -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -#if !defined TECPLOTKERNEL -/* For add-ons, there is a problem with VALID_REF, so just test for non-NULL */ -/* ENDREMOVEFROMADDON */ -# define VALID_REF(p) ( (p) != NULL ) -# define VALID_FN_REF(fp) ( (fp) != NULL ) -/* BEGINREMOVEFROMADDON */ -#endif /* !defined TECPLOTKERNAL */ -/* ENDREMOVEFROMADDON */ - -/* BEGINREMOVEFROMADDON */ -/* Widgets are pointers under Motif */ -# define VALID_WIDGET(widget) VALID_REF((widget)) -/* Menu widgets are pointers too */ -# define VALID_MENU_WIDGET(widget) VALID_REF((widget)) -/* ENDREMOVEFROMADDON */ -#endif /* UNIXX */ - -#ifdef MSWIN -/* BEGINREMOVEFROMADDON */ -/* Don't use AfxIsValidAddress()! See Bug <7245>. - 1/4/08, dto. */ -/* ENDREMOVEFROMADDON */ - -#if defined NO_ASSERTS -/* release build in TecUtil layer uses these for TUASSERT */ -# define VALID_REF(p) ((p) != NULL) -# define VALID_FN_REF(pf) ((pf) != NULL) -#else -# define VALID_REF(p) ((p) != NULL && !IsBadReadPtr((const void *)(p), 1)) -# define VALID_FN_REF(pf) ((pf) != NULL && !IsBadReadPtr((const void *)(pf),(UINT_PTR)sizeof(const void*))) -#endif - -/* BEGINREMOVEFROMADDON */ -/* Widgets are numbers under Windows, so we decode it with GetWindowFromWidget */ -# if defined ENGINE -# define VALID_WIDGET(widget) ((widget) != NULL) -# else -# define VALID_WIDGET(widget) ((widget) != NULL && GetWindowFromWidget((widget))!=NULL) -# endif // ENGINE - -/* Menu widgets are numbers too, so we just check against zero */ -# define VALID_MENU_WIDGET(widget) ((widget)!=NULL) -/* ENDREMOVEFROMADDON */ -#endif /* MSWIN */ -/* BEGINREMOVEFROMADDON */ -/* handles are not pointers to memory, so the only test we can */ -/* perform is to check for 0 */ -#define VALID_HANDLE(handle) ((handle)!=0) - -#if defined FLEXLM -#define VALID_FLEX_JOB_HANDLE(handle) ((handle) != NULL) -#define VALID_FLEX_ERROR_CODE(ErrorCode)(ErrorCode <= 0) -#endif /* FLEXLM */ - -/* ENDREMOVEFROMADDON */ -/* other useful validity checks */ -#define VALID_BOOLEAN(b) ((b) == TRUE || (b) == FALSE) -#define VALID_ENUM(value, type) (0 <= (value) && \ - (value) < END_##type) - -/* Test a parameter than can be NULL or a valid pointer */ -#define VALID_REF_OR_NULL(ptr) IMPLICATION((ptr) != NULL, VALID_REF(ptr)) -#define VALID_FN_REF_OR_NULL(ptr) IMPLICATION((ptr) != NULL, VALID_FN_REF(ptr)) - -/* BEGINREMOVEFROMADDON */ -#define VALID_TRANSLATED_STRING(ts) (!(ts).isNull()) - -/** - * These macros are a little complicated but it allows one to - * write a simple assertion regardless of the zone type or - * selected plane: - * - * REQUIRE(VALID_CELL_INDEX(CZData, CellIndex, Plane))); - * - * Prior to using the macros a call to SetupXxx, - * or at a minimum SetupCZData, must be called to setup - * the globals defining the dataset structure. - */ -#define VALID_FE_CELL_INDEX(CZData, CellIndex) \ - (/* CellIndex range test */ \ - 0 <= (CellIndex) && \ - (CellIndex) < (CZData)->NumElements) - -#define VALID_IPLANE_CELL_INDEX(CZData,CellIndex) \ - (/* CellIndex range test */ \ - (CellIndex) >= 0 && \ - IINDEX((CZData),CellIndex) <= MAX((CZData)->NumIPtsM1,1) && \ - JINDEX((CZData),CellIndex) < MAX((CZData)->NumJPtsM1,1) && \ - KINDEX((CZData),CellIndex) < MAX((CZData)->NumKPtsM1,1)) - -#define VALID_JPLANE_CELL_INDEX(CZData,CellIndex) \ - (/* CellIndex range test */ \ - (CellIndex) >= 0 && \ - IINDEX((CZData),CellIndex) < MAX((CZData)->NumIPtsM1,1) && \ - JINDEX((CZData),CellIndex) <= MAX((CZData)->NumJPtsM1,1) && \ - KINDEX((CZData),CellIndex) < MAX((CZData)->NumKPtsM1,1)) - -#define VALID_KPLANE_CELL_INDEX(CZData,CellIndex) \ - (/* CellIndex range test */ \ - (CellIndex) >= 0 && \ - IINDEX((CZData),CellIndex) < MAX((CZData)->NumIPtsM1,1) && \ - JINDEX((CZData),CellIndex) < MAX((CZData)->NumJPtsM1,1) && \ - KINDEX((CZData),CellIndex) <= MAX((CZData)->NumKPtsM1,1)) - -#define VALID_ORDERED_CELL_INDEX(CZData, CellIndex, Plane) \ - (/* macro preconditions */ \ - ((IJKPlanes_e)(Plane) == IJKPlanes_I || \ - (IJKPlanes_e)(Plane) == IJKPlanes_J || \ - (IJKPlanes_e)(Plane) == IJKPlanes_K || \ - (IJKPlanes_e)(Plane) == IJKPlanes_Volume) && \ -\ - /* CellIndex range test */ \ - (IMPLICATION(((IJKPlanes_e)(Plane) == IJKPlanes_I || \ - (IJKPlanes_e)(Plane) == IJKPlanes_Volume), \ - VALID_IPLANE_CELL_INDEX((CZData),CellIndex)) && \ - IMPLICATION(((IJKPlanes_e)(Plane) == IJKPlanes_J || \ - (IJKPlanes_e)(Plane) == IJKPlanes_Volume), \ - VALID_JPLANE_CELL_INDEX((CZData),CellIndex)) && \ - IMPLICATION(((IJKPlanes_e)(Plane) == IJKPlanes_K || \ - (IJKPlanes_e)(Plane) == IJKPlanes_Volume), \ - VALID_KPLANE_CELL_INDEX((CZData),CellIndex)))) - -#define VALID_CELL_INDEX(CZData, CellIndex, Plane) \ - (((CZData)->NM != NULL || (CZData)->FM != NULL) ? \ - VALID_FE_CELL_INDEX((CZData), (CellIndex)) : \ - VALID_ORDERED_CELL_INDEX((CZData), (CellIndex), (Plane))) - -#define VALID_DATASET(dataSet,checkNumZones) (((dataSet) != NULL) && \ - IMPLICATION((checkNumZones),(dataSet)->NumZones >= 1)) - - - -#ifdef MSWIN -/* Here is a more specific check in Windows for a valid - pointer to an MFC Window object. - Note that GetSafeHwnd() works even if pWnd is NULL, because - it checks the 'this' pointer first */ -# define VALID_WND(pWnd) (::IsWindow((pWnd)->GetSafeHwnd())) - -#else /* !MSWIN */ -# define VALID_WND(pWnd) /* Should not be used in Motif */ -#endif /* MSWIN */ -/* ENDREMOVEFROMADDON */ - -/* Check for a non-zero length string */ -#if defined MSWIN -# if defined NO_ASSERTS -# define VALID_NON_ZERO_LEN_STR(str) (VALID_REF(str) && !ISEMPTYSTRING(str)) -# else -# define VALID_NON_ZERO_LEN_STR(str) \ - (VALID_REF(str) && \ - !IsBadReadPtr((const void*)(str),(UINT_PTR)(1+strlen((const char*)(str)))) && \ - !ISEMPTYSTRING(str)) -# endif -#else -# define VALID_NON_ZERO_LEN_STR(str) (VALID_REF(str) && !ISEMPTYSTRING(str)) -#endif - -#define VALID_SET_INDEX(setIndex) (((SetIndex_t)setIndex)>=(SetIndex_t)1) - -/* Check for valid stdio file handle */ -#define VALID_FILE_HANDLE(stream) ((stream) != NULL) - -/* To check colors and pen numbers */ -/* BEGINREMOVEFROMADDON */ -#define VALID_BASIC_COLOR(BColor) \ - (FirstBasicColor<=(BColor) && (BColor)<=LastBasicColor) -#define VALID_CONTOUR_COLOR(Color) \ - (ContourColorOffset<=(Color) && \ - (Color) -#include -#include - -class AssertionLog -{ -public: - static void initializeAssertLog(const std::string &fileName); - static bool isLoggingAssertions(); - static void addAssertion(const std::string &message); -private: - static void writeOutAssertion(const std::string &message); -private: - static bool logAssertions; - static std::string logFileName; - static std::vector assertList; -}; - -extern void TWinCheckedFailedLine(const char *Expr, - const char *FileName, - int LineNum); - -#define TASSERT(EXPR)\ - do { if (!(EXPR)) { TWinCheckedFailedLine(#EXPR,__FILE__,__LINE__); } } while (0) -#else -#define TASSERT(EXPR) ASSERT(EXPR) /* MFC assert. -Works in both release & debug builds */ -#endif /* CHECKED_BUILD */ -#else -#define TASSERT(EXPR) (void)((EXPR) || (TAssert(#EXPR, __FILE__, __LINE__), 0)) -#endif - -# if defined NO_INVARIANTS -# define INVARIANT(EXPR) -# else -# define INVARIANT(EXPR) TASSERT(EXPR) -# endif - -# if defined NO_PRECONDITIONS -# define REQUIRE(EXPR) -# else -# define REQUIRE(EXPR) TASSERT(EXPR) -# endif - -# if defined NO_POSTCONDITIONS -# define ENSURE(EXPR) -# else -# define ENSURE(EXPR) TASSERT(EXPR) -# endif - -# if defined VERIFY -# undef VERIFY -# endif - -# if defined NO_CHECKS -# define CHECK(EXPR) -# define VERIFY(EXPR) ((void)(EXPR)) -# else -# define CHECK(EXPR) TASSERT(EXPR) -# if defined NDEBUG -# define VERIFY(EXPR) ((void)(EXPR)) -# else -# define VERIFY(EXPR) TASSERT(EXPR) -# endif -# endif - -# if defined NICE_NOT_IMPLEMENTED -# define NOT_IMPLEMENTED() NiceNotImplemented() -# else -# define NOT_IMPLEMENTED() TASSERT(!("Not Implemented")) -# endif -/* ENDREMOVEFROMADDON */ -#endif -/* BEGINREMOVEFROMADDON */ -#if !defined STD_ASSERTS -extern void TecplotMopupOnAssert(void); -#endif /* !STD_ASSERTS */ - -#if defined NICE_NOT_IMPLEMENTED -extern void NiceNotImplemented(void); -#endif -/* ENDREMOVEFROMADDON */ - -/* convenience macros for implication, P -> Q, and equivalence, P <-> Q. */ -#define IMPLICATION(P,Q) (!(P) || (Q)) -#define EQUIVALENCE(P,Q) ((P) == (Q)) - -/* BEGINREMOVEFROMADDON */ -#if defined RLM -#define VALID_RLM_HANDLE(h) ((h) != NULL) -#endif /* RLM */ -/* ENDREMOVEFROMADDON */ - - -#endif /* TASSERT_H */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TECIO.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TECIO.h deleted file mode 100644 index fabb1344b0..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TECIO.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "TECXXX.h" diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TECXXX.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TECXXX.h deleted file mode 100644 index a61539e90b..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TECXXX.h +++ /dev/null @@ -1,698 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* - * TECXXX.h: Copyright (C) 1988-2008 Tecplot, Inc. - */ - -#if !defined TECXXX_H_ -#define TECXXX_H_ - -#if !defined CRAY -# define TECFOREIGN112 tecforeign112 -# define TECINI112 tecini112 -# define TECZNE112 teczne112 -# define TECDAT112 tecdat112 -# define TECNOD112 tecnod112 -# define TECGEO112 tecgeo112 -# define TECTXT112 tectxt112 -# define TECLAB112 teclab112 -# define TECFIL112 tecfil112 -# define TECEND112 tecend112 -# define TECUSR112 tecusr112 -# define TECAUXSTR112 tecauxstr112 -# define TECZAUXSTR112 teczauxstr112 -# define TECVAUXSTR112 tecvauxstr112 -# define TECFACE112 tecface112 -# define TECPOLY112 tecpoly112 - -# define TECFOREIGN111 tecforeign111 -# define TECINI111 tecini111 -# define TECZNE111 teczne111 -# define TECDAT111 tecdat111 -# define TECNOD111 tecnod111 -# define TECGEO111 tecgeo111 -# define TECTXT111 tectxt111 -# define TECLAB111 teclab111 -# define TECFIL111 tecfil111 -# define TECEND111 tecend111 -# define TECUSR111 tecusr111 -# define TECAUXSTR111 tecauxstr111 -# define TECZAUXSTR111 teczauxstr111 -# define TECVAUXSTR111 tecvauxstr111 -# define TECFACE111 tecface111 -# define TECPOLY111 tecpoly111 - -# define TECFOREIGN110 tecforeign110 -# define TECINI110 tecini110 -# define TECZNE110 teczne110 -# define TECDAT110 tecdat110 -# define TECNOD110 tecnod110 -# define TECGEO110 tecgeo110 -# define TECTXT110 tectxt110 -# define TECLAB110 teclab110 -# define TECFIL110 tecfil110 -# define TECEND110 tecend110 -# define TECUSR110 tecusr110 -# define TECAUXSTR110 tecauxstr110 -# define TECZAUXSTR110 teczauxstr110 -# define TECVAUXSTR110 tecvauxstr110 -# define TECFACE110 tecface110 - -# define TECFOREIGN100 tecforeign100 -# define TECINI100 tecini100 -# define TECZNE100 teczne100 -# define TECDAT100 tecdat100 -# define TECNOD100 tecnod100 -# define TECGEO100 tecgeo100 -# define TECTXT100 tectxt100 -# define TECLAB100 teclab100 -# define TECFIL100 tecfil100 -# define TECEND100 tecend100 -# define TECUSR100 tecusr100 -# define TECAUXSTR100 tecauxstr100 -# define TECZAUXSTR100 teczauxstr100 -# define TECVAUXSTR100 tecvauxstr100 -# define TECFACE100 tecface100 - -# define TECINI tecini -# define TECZNE teczne -# define TECDAT tecdat -# define TECNOD tecnod -# define TECGEO tecgeo -# define TECTXT tectxt -# define TECLAB teclab -# define TECFIL tecfil -# define TECEND tecend -# define TECUSR tecusr -#endif - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else -#define INTEGER4 int -#define INTEGER2 short -#endif - -#if defined _WIN32 -#if !defined MSWIN -#define MSWIN /* MSWIN */ -#endif -#endif /* _WIN32 */ - -#if !defined (EXTERNC) -# if defined (__cplusplus) -# define EXTERNC extern "C" -# else -# define EXTERNC -# endif /* __cplusplus */ -#endif /* EXTERN_C */ - -#if !defined (STDCALL) -# if defined MSWIN -# define STDCALL __stdcall -# else /* !MSWIN */ -# define STDCALL -# endif /* MSWIN */ -#endif /* STDCALL */ - -#if !defined (DLLEXPORT) -# if defined (MSWIN) -# define DLLEXPORT _declspec (dllexport) -# else -# define DLLEXPORT -# endif /* MSWIN */ -#endif /* DLLEXPORT */ - -#if !defined (DLLIMPORT) -# if defined (MSWIN) -# define DLLIMPORT _declspec (dllimport) -# else -# define DLLIMPORT -# endif /* MSWIN */ -#endif /* DLLIMPORT */ - - -#if defined (TECPLOTKERNEL) -/* CORE SOURCE CODE REMOVED */ -#else /* !TECPLOTKERNAL && !MAKEARCHIVE */ -# define LIBCALL STDCALL -# define LIBFUNCTION EXTERNC DLLIMPORT -#endif - -/* - * V11.3 tecio functions - */ - -LIBFUNCTION void LIBCALL TECFOREIGN112(INTEGER4 *OutputForeignByteOrder); - -LIBFUNCTION INTEGER4 LIBCALL TECINI112(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *FileType, - INTEGER4 *Debug, - INTEGER4 *VIsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECZNE112(char *ZoneTitle, - INTEGER4 *ZoneType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMxOrNumFaces, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlock, - INTEGER4 *NumFaceConnections, - INTEGER4 *FaceNeighborMode, - INTEGER4 *TotalNumFaceNodes, - INTEGER4 *NumConnectedBoundaryFaces, - INTEGER4 *TotalNumBoundaryConnections, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone); - -LIBFUNCTION INTEGER4 LIBCALL TECDAT112(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECNOD112(INTEGER4 *NData); - -LIBFUNCTION INTEGER4 LIBCALL TECEND112(void); - -LIBFUNCTION INTEGER4 LIBCALL TECLAB112(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECUSR112(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECGEO112(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECTXT112(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECFIL112(INTEGER4 *F); - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR112(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR112(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR112(INTEGER4 *Var, - char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECFACE112(INTEGER4 *FaceConnections); - -LIBFUNCTION INTEGER4 LIBCALL TECPOLY112(INTEGER4 *FaceNodeCounts, - INTEGER4 *FaceNodes, - INTEGER4 *FaceLeftElems, - INTEGER4 *FaceRightElems, - INTEGER4 *FaceBndryConnectionCounts, - INTEGER4 *FaceBndryConnectionElems, - INTEGER4 *FaceBndryConnectionZones); - -/* - * V11.1 tecio functions TODO (JN): Tecplot's version is still in flux so the .1 may change - */ - -LIBFUNCTION void LIBCALL TECFOREIGN111(INTEGER4 *OutputForeignByteOrder); - -LIBFUNCTION INTEGER4 LIBCALL TECINI111(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *FileType, - INTEGER4 *Debug, - INTEGER4 *VIsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECZNE111(char *ZoneTitle, - INTEGER4 *ZoneType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMxOrNumFaces, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlock, - INTEGER4 *NumFaceConnections, - INTEGER4 *FaceNeighborMode, - INTEGER4 *TotalNumFaceNodes, - INTEGER4 *NumConnectedBoundaryFaces, - INTEGER4 *TotalNumBoundaryConnections, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone); - -LIBFUNCTION INTEGER4 LIBCALL TECDAT111(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECNOD111(INTEGER4 *NData); - -LIBFUNCTION INTEGER4 LIBCALL TECEND111(void); - -LIBFUNCTION INTEGER4 LIBCALL TECLAB111(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECUSR111(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECGEO111(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECTXT111(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECFIL111(INTEGER4 *F); - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR111(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR111(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR111(INTEGER4 *Var, - char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECFACE111(INTEGER4 *FaceConnections); - -LIBFUNCTION INTEGER4 LIBCALL TECPOLY111(INTEGER4 *FaceNodeCounts, - INTEGER4 *FaceNodes, - INTEGER4 *FaceLeftElems, - INTEGER4 *FaceRightElems, - INTEGER4 *FaceBndryConnectionCounts, - INTEGER4 *FaceBndryConnectionElems, - INTEGER2 *FaceBndryConnectionZones); - - -/* - * V11 tecio functions - */ - -LIBFUNCTION void LIBCALL TECFOREIGN110(INTEGER4 *OutputForeignByteOrder); - -LIBFUNCTION INTEGER4 LIBCALL TECINI110(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECZNE110(char *ZoneTitle, - INTEGER4 *ZoneType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMxOrNumFaces, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlock, - INTEGER4 *NumFaceConnections, - INTEGER4 *FaceNeighborMode, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone); - -LIBFUNCTION INTEGER4 LIBCALL TECDAT110(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECNOD110(INTEGER4 *NData); - -LIBFUNCTION INTEGER4 LIBCALL TECEND110(void); - -LIBFUNCTION INTEGER4 LIBCALL TECLAB110(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECUSR110(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECGEO110(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECTXT110(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECFIL110(INTEGER4 *F); - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR110(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR110(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR110(INTEGER4 *Var, - char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECFACE110(INTEGER4 *FaceConnections); - - -/* - * V10 tecio functions kept for backward compatability. - */ - -LIBFUNCTION void LIBCALL TECFOREIGN100(INTEGER4 *OutputForeignByteOrder); - -LIBFUNCTION INTEGER4 LIBCALL TECINI100(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECZNE100(char *ZoneTitle, - INTEGER4 *ZoneType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMxOrNumFaces, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - INTEGER4 *IsBlock, - INTEGER4 *NumFaceConnections, - INTEGER4 *FaceNeighborMode, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone); - -LIBFUNCTION INTEGER4 LIBCALL TECDAT100(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECNOD100(INTEGER4 *NData); - -LIBFUNCTION INTEGER4 LIBCALL TECEND100(void); - -LIBFUNCTION INTEGER4 LIBCALL TECLAB100(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECUSR100(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECGEO100(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECTXT100(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECFIL100(INTEGER4 *F); - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR100(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR100(char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR100(INTEGER4 *Var, - char *Name, - char *Value); - -LIBFUNCTION INTEGER4 LIBCALL TECFACE100(INTEGER4 *FaceConnections); - -/* Old V9 functions retained for backward compatibility */ - -LIBFUNCTION INTEGER4 LIBCALL TECINI(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECZNE(char *ZoneTitle, - INTEGER4 *IMx, - INTEGER4 *JMx, - INTEGER4 *KMx, - char *ZFormat, - char *DupList); - -LIBFUNCTION INTEGER4 LIBCALL TECDAT(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble); - -LIBFUNCTION INTEGER4 LIBCALL TECNOD(INTEGER4 *NData); - -LIBFUNCTION INTEGER4 LIBCALL TECEND(void); - -LIBFUNCTION INTEGER4 LIBCALL TECLAB(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECUSR(char *S); - -LIBFUNCTION INTEGER4 LIBCALL TECGEO(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECTXT(double *XPos, - double *YPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - char *Text, - char *mfc); - -LIBFUNCTION INTEGER4 LIBCALL TECFIL(INTEGER4 *F); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#endif /* TECXXX_H_ */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TEXT.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TEXT.h deleted file mode 100644 index 06887c923b..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TEXT.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#if defined EXTERN -#undef EXTERN -#endif -#if defined TEXTMODULE -#define EXTERN -#else -#define EXTERN extern -#endif - -#define _TEXT_H_INCLUDED - -/* These macros for checking CoordSys_e and Units of text objects (i.e., those associated with the text tool). */ -#define VALID_TEXT_COORDSYS(sys) (((sys)==CoordSys_Frame)||((sys)==CoordSys_Grid)||((sys)==CoordSys_Grid3D)) -#define VALID_TEXT_UNITS(units) (((units)==Units_Grid)||((units)==Units_Frame)||((units)==Units_Point)) -#define VALID_TEXT_COORDSYS_AND_UNITS(pos_sys, size_units) \ - ( VALID_TEXT_COORDSYS((pos_sys)) && \ - VALID_TEXT_UNITS((size_units)) && \ - ! ((pos_sys) == CoordSys_Frame && (size_units) == Units_Grid) ) - -/* This is for any type of font in Tecplot. */ -#define VALID_FONT_SIZEUNITS(units) (((units)==Units_Grid)||((units)==Units_Frame)||((units)==Units_Point)||(units)==Units_AxisPercentage) - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if 0 /* contract template */ -#endif -#if 0 /* contract template */ -#endif -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TranslatedString.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TranslatedString.cpp deleted file mode 100644 index 5ae0cb73a0..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TranslatedString.cpp +++ /dev/null @@ -1,362 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" - - -using namespace std; - -namespace tecplot -{ -namespace strutil -{ - -#if defined MSWIN && !defined TECPLOTKERNEL -/** - * Stub function for non-TECPLOTKERNEL - */ -string LookUpTranslation(string& str) -{ - return string(str); -} -#endif - -/** - * Convenience function for creating Utf8 string translations. - * - * @param str - * String to translate. - * - * @return - * A new Utf8 translated string. - */ -static inline string* createUtf8StringTranslation(string& str) -{ -#if defined MSWIN - string *result = new string(LookUpTranslation(str)); -#else - string *result = new string(str); -#endif - ENSURE(VALID_REF(result)); - return result; -} - -#if defined MSWIN -/** - * Convenience function for creating wide string translations. - * - * @param str - * String to translate. - * - * @return - * A new wide translated string. - */ -static inline wstring* createWideStringTranslation(string& str) -{ - wstring *result = new wstring; - *result = StringToWString(LookUpTranslation(str)); - - ENSURE(VALID_REF(result)); - return result; -} -#endif - -#if defined MSWIN -/** - * Convenience function for creating wide string with the given mode. - * - * @param mode - * Indicates if this string is to be translated or not. - * @param str - * String to translate. - * - * @return - * A new wide translated string. - */ -static inline wstring* createWideString(TranslatedString::Mode mode, - string& str) -{ - REQUIRE(mode == TranslatedString::DoTranslate || mode == TranslatedString::DontTranslate); - - wstring* result; - if (mode == TranslatedString::DoTranslate) - result = createWideStringTranslation(str); - else - result = new wstring(StringToWString(str)); - - return result; -} -#endif - -/** - */ -void TranslatedString::init(TranslatedString::Mode mode, - const char* str, - const char* translatorNotes) -{ - REQUIRE(mode == DoTranslate || mode == DontTranslate); - REQUIRE(VALID_REF_OR_NULL(str)); - REQUIRE(VALID_REF_OR_NULL(translatorNotes)); - - m_mode = mode; - m_isNull = (str == NULL); - if (!m_isNull) - m_string = str; - m_utf8String = NULL; // ...on demand resource -#if defined MSWIN - m_wideString = NULL; // ...on demand resource -#endif -} - -/** - */ -TranslatedString::TranslatedString() -{ - init(DontTranslate, (const char*)NULL, (const char*)NULL); - ENSURE(this->isValid()); -} - -/** - */ -TranslatedString TranslatedString::null() -{ - return dontTranslate(NULL); -} - -/** - */ -TranslatedString::TranslatedString(TranslatedString::Mode mode, - const char* str, - const char* translatorNotes) -{ - - REQUIRE(mode == DoTranslate || mode == DontTranslate); - REQUIRE(VALID_REF_OR_NULL(str)); - REQUIRE(VALID_REF_OR_NULL(translatorNotes)); - - init(mode, str, translatorNotes); - ENSURE(this->isValid()); -} - -/** - */ -TranslatedString::~TranslatedString() -{ - delete m_utf8String; -#if defined MSWIN - delete m_wideString; -#endif -} - -#if !defined NO_ASSERTS -/** - */ -bool TranslatedString::isValid() const -{ - CHECK(IMPLICATION(m_isNull, m_string.length() == 0)); -#if 0 - /* TODO(DTO/RMS/CAM): 11/2/2007 - * Code currently exists in Tecplot where we call translate() on a - * variable. This seems wrong and at times (PleaseWait() in - * particular) the variable passed is a NULL pointer which causes - * this assertion to fail. There is not enough time before v11.2 - * release to remove all translate() calls to non-literal strings so - * we'll have to do this as a post release cleanup. For now just - * deactivate this assertion. - */ - CHECK(IMPLICATION(m_isNull, m_mode == DontTranslate)); -#endif - - return true; -} -#endif - -/** - */ -bool TranslatedString::isNull() const -{ - INVARIANT(this->isValid()); - return m_isNull; -} - -/** - */ -bool TranslatedString::isNullOrZeroLength() const -{ - INVARIANT(this->isValid()); - return m_isNull || m_string.length() == 0; -} - -/** - */ -const char* TranslatedString::c_str() -{ - INVARIANT(this->isValid()); - - const char* result = NULL; - if (!isNull()) - { - if (m_mode == DoTranslate) - { - if (m_utf8String == NULL) - m_utf8String = createUtf8StringTranslation(m_string); - result = m_utf8String->c_str(); - } - else // ...if we aren't translating don't bother creating another Utf8 copy just use m_string - result = m_string.c_str(); - } - - ENSURE(result == NULL || VALID_REF(result)); - return result; -} - -#if defined MSWIN -/** - */ -const wchar_t *TranslatedString::c_wstr() -{ - INVARIANT(this->isValid()); - - const wchar_t *result = NULL; - if (!isNull()) - { - if (m_wideString == NULL) - m_wideString = createWideString(m_mode, m_string); - result = m_wideString->c_str(); - } - - ENSURE(result == NULL || VALID_REF(result)); - return result; -} -#endif - -/** - */ -TranslatedString::operator string() -{ - INVARIANT(this->isValid()); - REQUIRE(!isNull()); - - string* result; - if (m_mode == DoTranslate) - { - if (m_utf8String == NULL) - m_utf8String = createUtf8StringTranslation(m_string); - result = m_utf8String; - } - else // ...if we aren't translating don't bother creating another Utf8 copy just use m_string - result = &m_string; - - return *result; -} - -#if defined MSWIN -/** - */ -TranslatedString::operator wstring() -{ - INVARIANT(this->isValid()); - REQUIRE(!isNull()); - - if (m_wideString == NULL) - m_wideString = createWideString(m_mode, m_string); - - return *m_wideString; -} -#endif - -/** - */ -TranslatedString& TranslatedString::operator =(const TranslatedString& other) -{ - REQUIRE(other.isValid()); - - if (this != &other) // ...only perform if not self assignment - { - m_mode = other.m_mode; - m_isNull = other.m_isNull; - m_string = other.m_string; - m_utf8String = (other.m_utf8String != NULL ? new string(*other.m_utf8String) : NULL); -#if defined MSWIN - m_wideString = (other.m_wideString != NULL ? new wstring(*other.m_wideString) : NULL); -#endif - } - - ENSURE(this->isValid()); - return *this; -} - -/** - */ -TranslatedString::TranslatedString(const TranslatedString& other) -{ - REQUIRE(other.isValid()); - - m_mode = other.m_mode; - m_isNull = other.m_isNull; - m_string = other.m_string; - m_utf8String = (other.m_utf8String != NULL ? new string(*other.m_utf8String) : NULL); -#if defined MSWIN - m_wideString = (other.m_wideString != NULL ? new wstring(*other.m_wideString) : NULL); -#endif - - ENSURE(this->isValid()); -} - -/** - */ -TranslatedString TranslatedString::translate(const char* str, - const char* translatorNotes) -{ - REQUIRE(VALID_REF_OR_NULL(str)); - REQUIRE(VALID_REF_OR_NULL(translatorNotes)); - - return TranslatedString(DoTranslate, str, translatorNotes); -} - -/** - */ -TranslatedString TranslatedString::dontTranslate(const char* str) -{ - REQUIRE(VALID_REF_OR_NULL(str)); - - return TranslatedString(DontTranslate, str, NULL); -} - -} -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TranslatedString.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TranslatedString.h deleted file mode 100644 index 9e3311a2e3..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/TranslatedString.h +++ /dev/null @@ -1,293 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#ifndef TECPLOT_STRUTIL_TRANSLATEDSTRING -#define TECPLOT_STRUTIL_TRANSLATEDSTRING - -#if defined MSWIN -#pragma warning(disable : 4181) -#endif - -namespace tecplot -{ -namespace strutil -{ - -/** - * Class responsible for translating strings for internationalization. This - * class is used both to perform the translation and to identify which strings - * are/aren't in need of translation. - * - * With the exception of the empty constructor all translated strings are - * created via static methods or inline helper functions named translate() and - * dontTranslate(). Translated strings created with a call to translate() are - * flagged as needing human translation and return the translated value at - * runtime. Translated strings created with a call to dontTranslate() are - * flagged as not needing human translation and return the non-translated value - * at runtime. Examples: - * - * ErrMsg(translate("Can I have %d cookies?", numCookies); - * ErrMsg(dontTranslate("%s"), errMsgString); - * - * Conversion methods exists for std::string so that they operate well - * together. Therefore you can pass translated strings to methods or functions - * that receive std::string or std::string references. Additionally you can - * perform std::string operations by casting the translated string to a - * std::string. For example: - * - * if (string(dialogTitle).size() != 0) - * ...do something useful - * - * We have intentionally not provided conversion methods for "const char*" (an - * internal representation of the object's string) because of the risk of the - * client using the pointer after the translated string object goes out of - * scope. - * - * @author David Ossorio - */ -class TranslatedString -{ -public: - /** - * Enumeration describing available translation modes. - */ - typedef enum { DontTranslate, DoTranslate } Mode; - - /** - * Constructs an empty translated string. It is equivalent to calling - * TranslatedString::null(). - */ - TranslatedString(); - - /** - * Convenience function for creating a NULL translated string. - * - * @return - * NULL translated string. - */ - static TranslatedString null(); - - /** - * Creates a translated string object and marks it as a string needing - * translation. - * - * @param str - * Character string to translate. - * @param translatorNotes - * Optional notes for the human translator describing the meaning - * of the string. - */ - static TranslatedString translate(const char* str, - const char* translatorNotes = NULL); - - /** - * Creates a translated string object and marks it as a string not needing - * translation. - * - * @param str - * Character string to translate. The str parameter can be a NULL - * pointer. - */ - static TranslatedString dontTranslate(const char* str); - - /** - * Destructor. - */ - virtual ~TranslatedString(); - - /** - * Indicates if the object's string is NULL. - * - * @return - * true if the object's string is NULL, false otherwise. - */ - virtual bool isNull() const; - - /** - * Indicates if the object's string is NULL or zero length. - * - * @return - * true if the object's string is NULL or zero length, false otherwise. - */ - virtual bool isNullOrZeroLength() const; - - /** - * Returns the internal representation of the object's string. Use this - * result carefully. When this object goes out of scope so does this - * references. - * - * @return - * Pointer to the internal representation of the object's string. - */ - virtual const char* c_str(); - -#if defined MSWIN - /** - * Returns the internal representation of the wide character version of the - * object's string. Use this result carefully. When this object goes out of - * scope so does this references. - * - * @return - * Pointer to the internal representation of the object's string. - */ - virtual const wchar_t* c_wstr(); -#endif - - /** - * Returns a copy of the object's string by this object. The result is - * translated or not depending on the platform and how it was created. - * - * @return - * Copy of the object's string. - */ - virtual operator std::string(); - -#if defined MSWIN - /** - * Returns a copy of the wide character version of the object's string. - * The result is translated or not depending on the platform and how it was - * created. - * - * @return - * Copy of the wide character version of the object's string. - */ - virtual operator std::wstring(); -#endif - - /** - * Assignment operator. - */ - virtual TranslatedString& operator =(const TranslatedString& other); - - /** - * Copy constructor. - */ - TranslatedString(const TranslatedString& other); - -#if !defined NO_ASSERTS - /** - * Used only for assertions. - */ - virtual bool isValid() const; -#endif /* !NO_ASSERTS */ - -private: - /** - * Constructs a translated string. This is declared private to make sure - * clients use translate() or dontTranslate() so that Tecplot's translation - * parser can easily extract strings from the source code. - * - * @param mode - * Indicates if this string is to be translated or not at runtime. - * @param str - * Character string to translate. - * @param translatorNotes - * Optional notes for the human translator describing the meaning - * of the string. - */ - TranslatedString(TranslatedString::Mode mode, - const char* str, - const char* translatorNotes); - - /** - * Convenience method for initialize a translated string. - * - * @param mode - * Indicates if this string is to be translated or not at runtime. - * @param str - * Character string to translate. - * @param translatorNotes - * Optional notes for the human translator describing the meaning - * of the string. - */ - void init(TranslatedString::Mode mode, - const char* str, - const char* translatorNotes); - - /** - * Private instance data. - */ - TranslatedString::Mode m_mode; - bool m_isNull; - std::string m_string; - std::string *m_utf8String; -#if defined MSWIN - std::wstring *m_wideString; -#endif -}; - -/** - * Convenience function for creating a translated string object and marking it - * as a string needing translation. - * - * @param str - * Character string to translate. - * @param translatorNotes - * Optional notes for the human translator describing the meaning - * of the string. - */ -inline TranslatedString translate(const char* str, - const char* translatorNotes = NULL) -{ - return TranslatedString::translate(str, translatorNotes); -} - -/** - * Convenience function for creating a translated string object and marking it - * as a string not needing translation. - * - * @param str - * Character string to translate. The str parameter can be a NULL - * pointer. - */ -inline TranslatedString dontTranslate(const char* str) -{ - return TranslatedString::dontTranslate(str); -} - -/** - * Convenience function for creating a translated string object and marks it as - * a string not needing translation. - * - * @param str - * String to translate. - */ -inline TranslatedString dontTranslate(const std::string& str) -{ - return TranslatedString::dontTranslate(str.c_str()); -} - -} -} - -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/VERSION.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/VERSION.h deleted file mode 100644 index a6528cf9de..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/VERSION.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/alloc.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/alloc.cpp deleted file mode 100644 index be5a0b0127..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/alloc.cpp +++ /dev/null @@ -1,161 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" - -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define ALLOCMODULE -#include "GLOBAL.h" -#include "ALLOC.h" -#include "TASSERT.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TRACK_MEMORY_USAGE -static size_t memInUse = 0; -static size_t memTotalHighMark = 0; -static size_t memCurrentHighMark = 0; -static size_t memSavedHighMark = 0; -Mutex_pa memMutex; - -void initMemoryUsageTracking(void) -{ - REQUIRE(!Thread_ThreadingIsInitialized()); - Thread_InitMutex(&memMutex); -} - -void cleanUpMemoryUsageTracking(void) -{ - REQUIRE(!Thread_ThreadingIsInitialized()); - Thread_FreeMutex(&memMutex); -} - -void trackMemoryClearHighMark(void) -{ - memCurrentHighMark = memInUse; -} - -void trackMemorySaveHighMark(void) -{ - memSavedHighMark = memCurrentHighMark; -} - -void trackMemoryAlloc(size_t size) -{ - REQUIRE(memInUse >= 0); - - if (Thread_ThreadingIsInitialized()) - Thread_LockMutex(memMutex); - - memInUse += size; - if (memInUse > memTotalHighMark) - memTotalHighMark = memInUse; - if (memInUse > memCurrentHighMark) - memCurrentHighMark = memInUse; - - if (Thread_ThreadingIsInitialized()) - Thread_UnlockMutex(memMutex); -} - -void trackMemoryFree(size_t size) -{ - if (Thread_ThreadingIsInitialized()) - Thread_LockMutex(memMutex); - - memInUse -= size; - - if (Thread_ThreadingIsInitialized()) - Thread_UnlockMutex(memMutex); - - ENSURE(memInUse >= 0); -} - -void getMemoryUsage(size_t* memoryInUse, - size_t* memoryCurrentHighMark, - size_t* memorySavedHighMark, - size_t* memoryTotalHighMark) -{ - REQUIRE(VALID_REF_OR_NULL(memoryInUse)); - REQUIRE(VALID_REF_OR_NULL(memoryCurrentHighMark)); - REQUIRE(VALID_REF_OR_NULL(memorySavedHighMark)); - REQUIRE(VALID_REF_OR_NULL(memoryTotalHighMark)); - if (memoryInUse != NULL) - *memoryInUse = memInUse; - if (memoryCurrentHighMark != NULL) - *memoryCurrentHighMark = memCurrentHighMark; - if (memorySavedHighMark != NULL) - *memorySavedHighMark = memSavedHighMark; - if (memoryTotalHighMark != NULL) - *memoryTotalHighMark = memTotalHighMark; -} -#endif - -#if defined MSWIN && defined ALLOC_HEAP -#define HEAPMIN 512 -#endif - -#if defined MSWIN && defined ALLOC_HEAP -/** - */ -void *MSWinAlloc(DWORD nSize) -{ - long *pMem = NULL; - if (nSize < HEAPMIN) - pMem = (long *)malloc(sizeof(long) + nSize); - else - pMem = (long *)HeapAlloc(GetProcessHeap(), NULL, sizeof(long) + nSize); - if (pMem) - pMem[0] = nSize; - return (void *)&(pMem[1]); -} -#endif - -#if defined MSWIN && defined ALLOC_HEAP -/** - */ -void MSWinFree(void *pMem) -{ - REQUIRE(VALID_REF(pMem)); - if (pMem) - { - long *pMemLong = &(((long *)pMem)[-1]); - if (pMemLong[0] < HEAPMIN) - free((void *)pMemLong); - else - HeapFree(GetProcessHeap(), NULL, (void *)pMemLong); - } -} -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/arrlist.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/arrlist.cpp deleted file mode 100644 index c4955817ee..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/arrlist.cpp +++ /dev/null @@ -1,1671 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* - ***************************************************************** - ***************************************************************** - ******* ******** - ****** Copyright (C) 1988-2008 Tecplot, Inc. ******** - ******* All Rights Reserved. ******** - ******* ******** - ***************************************************************** - ***************************************************************** - */ - -#define ARRLISTMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "ALLOC.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "ARRLIST.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/* - * ABSTRACT: - * - * This general purpose list uses an array implementation. The high use member - * functions have macro covers to make the implementation both efficient with - * respect to speed without compromising the internal representation. The - * internal array is allocated to fit the requested type's item size. Most - * intrinsic 'C' and Tecplot types are available. - */ - - -/** - * Copies the private array items from the specified source to the target - * location. The buffers may overlap. - * - * note - * Originally this function was a macro that called memmove - * directly: - * - * #define CopyArrayItems(TargetArray, TargetOffset, \ - * SourceArray, SourceOffset, \ - * Count, ItemSize) \ - * (memmove(&((TargetArray)[(TargetOffset)*ItemSize]), \ - * &((SourceArray)[(SourceOffset)*ItemSize]), \ - * Count*ItemSize)) - * - * This however proved troublesome as some machines replaced the memmove - * with a call to memcpy in the linker. The memcpy function does not support - * overlapping moves so I could not use it. This function should be just - * about as fast however so it is no big deal. - * - * param TargetArray - * Base address of the target array to receive the items. - * param TargetOffset - * Target offset of the first item. - * param SourceArray - * Base address of the source array supplying the items. - * param SourceOffset - * Source offset of the first item. - * param Count - * Number of items to copy. - * param ItemSize - * Item size in bytes. - */ -static void CopyArrayItems(char *TargetArray, - LgIndex_t TargetOffset, - char *SourceArray, - LgIndex_t SourceOffset, - LgIndex_t Count, - SmInteger_t ItemSize) -{ - REQUIRE(VALID_REF(TargetArray)); - REQUIRE(TargetOffset >= 0); - REQUIRE(VALID_REF(SourceArray)); - REQUIRE(SourceOffset >= 0); - REQUIRE(&TargetArray[TargetOffset] != &SourceArray[SourceOffset]); - REQUIRE(Count >= 1); - REQUIRE(1 <= ItemSize && ItemSize <= (SmInteger_t)sizeof(ArrayListItem_u)); - - void* TargetPtr = &TargetArray[TargetOffset * ItemSize]; - void* SourcePtr = &SourceArray[SourceOffset * ItemSize]; - memmove(TargetPtr, SourcePtr, ((size_t)Count) * ItemSize); -} - - -/** - * Adjusts the capacity request as necessary to minimize memory reallocations - * for large lists. Unless the request exceeds the maximum the adjusted - * capacity will be at least as big as requested however it may be larger if it - * is determined that the space requirement is growing faster. If the maximum - * is exceeded zero should be returned. - * - * param ArrayList - * Array list requesting the change in capacity. - * param CurrentCapacity - * Current capacity of the array list. - * param RequestedCapacity - * Capacity request or zero for default size. - * param ClientData - * Any client data needed for the adjustment. - * - * return - * Adjusted capacity that is at least as large as the request or zero if - * unable to satisfy the requested capacity. - */ -static LgIndex_t AdjustCapacityRequest(ArrayList_pa ArrayList, - LgIndex_t CurrentCapacity, - LgIndex_t RequestedCapacity, - ArbParam_t ClientData) -{ - LgIndex_t Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE((RequestedCapacity == 0 && CurrentCapacity == 0) || - RequestedCapacity > CurrentCapacity); - - if (RequestedCapacity != 0 && CurrentCapacity == 0) - { - /* first allocation; assume the request is the desired capacityy */ - Result = RequestedCapacity; - } - else - { - const LgIndex_t DEFAULT_CAPACITY = 32; - LgIndex_t BlockSize = MAX(DEFAULT_CAPACITY, CurrentCapacity / 2); - if (RequestedCapacity == 0) - Result = DEFAULT_CAPACITY; - else - Result = ((RequestedCapacity - 1) / BlockSize + 1) * BlockSize; - } - - ENSURE(Result == 0 || Result >= RequestedCapacity); - return Result; -} - - -/** - * Gets the size of an individual element. - * - * param Type - * Array list element type. - * - * return - * Element size corresponding to the type. - */ -static SmInteger_t GetElementSize(ArrayListType_e Type) -{ - SmInteger_t Result; - - REQUIRE(VALID_ENUM(Type, ArrayListType_e)); - - switch (Type) - { - case ArrayListType_UnsignedChar: - Result = (SmInteger_t)sizeof(unsigned char); - break; - case ArrayListType_UnsignedShort: - Result = (SmInteger_t)sizeof(unsigned short); - break; - case ArrayListType_UnsignedInt: - Result = (SmInteger_t)sizeof(unsigned int); - break; - case ArrayListType_UnsignedLong: - Result = (SmInteger_t)sizeof(unsigned long); - break; - case ArrayListType_Int64: - Result = (SmInteger_t)sizeof(Int64_t); - break; - case ArrayListType_Char: - Result = (SmInteger_t)sizeof(char); - break; - case ArrayListType_Short: - Result = (SmInteger_t)sizeof(short); - break; - case ArrayListType_Int: - Result = (SmInteger_t)sizeof(int); - break; - case ArrayListType_Long: - Result = (SmInteger_t)sizeof(long); - break; - case ArrayListType_Float: - Result = (SmInteger_t)sizeof(float); - break; - case ArrayListType_Double: - Result = (SmInteger_t)sizeof(double); - break; - case ArrayListType_LgIndex: - Result = (SmInteger_t)sizeof(LgIndex_t); - break; - case ArrayListType_EntIndex: - Result = (SmInteger_t)sizeof(EntIndex_t); - break; - case ArrayListType_SmInteger: - Result = (SmInteger_t)sizeof(SmInteger_t); - break; - case ArrayListType_Boolean: - Result = (SmInteger_t)sizeof(Boolean_t); - break; - case ArrayListType_ArbParam: - Result = (SmInteger_t)sizeof(ArbParam_t); - break; - - case ArrayListType_UnsignedCharPtr: - Result = (SmInteger_t)sizeof(unsigned char *); - break; - case ArrayListType_UnsignedShortPtr: - Result = (SmInteger_t)sizeof(unsigned short *); - break; - case ArrayListType_UnsignedIntPtr: - Result = (SmInteger_t)sizeof(unsigned int *); - break; - case ArrayListType_UnsignedLongPtr: - Result = (SmInteger_t)sizeof(unsigned long *); - break; - case ArrayListType_Int64Ptr: - Result = (SmInteger_t)sizeof(Int64_t *); - break; - case ArrayListType_CharPtr: - Result = (SmInteger_t)sizeof(char *); - break; - case ArrayListType_ShortPtr: - Result = (SmInteger_t)sizeof(short *); - break; - case ArrayListType_IntPtr: - Result = (SmInteger_t)sizeof(int *); - break; - case ArrayListType_LongPtr: - Result = (SmInteger_t)sizeof(long *); - break; - case ArrayListType_FloatPtr: - Result = (SmInteger_t)sizeof(float *); - break; - case ArrayListType_DoublePtr: - Result = (SmInteger_t)sizeof(double *); - break; - case ArrayListType_LgIndexPtr: - Result = (SmInteger_t)sizeof(LgIndex_t *); - break; - case ArrayListType_EntIndexPtr: - Result = (SmInteger_t)sizeof(EntIndex_t *); - break; - case ArrayListType_SmIntegerPtr: - Result = (SmInteger_t)sizeof(SmInteger_t *); - break; - case ArrayListType_BooleanPtr: - Result = (SmInteger_t)sizeof(Boolean_t *); - break; - case ArrayListType_ArbParamPtr: - Result = (SmInteger_t)sizeof(ArbParam_t *); - break; - - case ArrayListType_VoidPtr: - Result = (SmInteger_t)sizeof(void *); - break; - case ArrayListType_FunctionPtr: - Result = (SmInteger_t)sizeof(void (*)()); - break; - case ArrayListType_Any: /* allows a mixed bag of items */ - Result = (SmInteger_t)sizeof(ArrayListItem_u); - break; - - default: - Result = 0; /* make some compilers happy. */ - CHECK(FALSE); - break; - } - - ENSURE(1 <= Result && Result <= (SmInteger_t)sizeof(ArrayListItem_u)); - return Result; -} - - -/** - * Calls the item destructor for each item specified. - * - * param ArrayList - * Array list needing its items destroyed. - * param ItemOffset - * Offset to the first item to destroy in the list. - * param ItemSize - * Size of each array list item. - * param Count - * Number of items to destroy. - * param ItemDestructor - * Function called for each array list item. - * param CientData - * Any client data needed for the destructor. - */ -static void DestroyItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - SmInteger_t ItemSize, - LgIndex_t Count, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData) -{ - LgIndex_t Index; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - REQUIRE(1 <= Count && ItemOffset + Count <= ArrayList->Count); - REQUIRE(VALID_FN_REF(ItemDestructor)); - - for (Index = 0; - Index < Count; - Index++) - { - LgIndex_t ItemIndex = (Index + ItemOffset) * ItemSize; -#if !defined NO_ASSERTS - Boolean_t DoContinue = ItemDestructor((void *) & ArrayList->Array[ItemIndex], ClientData); - CHECK(DoContinue); /* this is a requirement of ArrayListItemDestructor_pf */ -#else - ItemDestructor((void *)&ArrayList->Array[ItemIndex], ClientData); -#endif - } -} - - -/** - * Calls the item duplicator for each item specified. - * - * param TargetArray - * Target array needing its items duplicated. - * param TargetItemOffset - * Target offset to the first duplicated item. - * param SourceArray - * Source array needing its items duplicated. - * param SourceItemOffset - * Source offset to the first item to duplicate in the list. - * param ItemSize - * Size of each array list item. - * param Count - * Number of items to duplicate. - * param ItemDuplicator - * Function called for each array list item. - * param CientData - * Any client data needed for the destructor. - * - * return - * TRUE if the duplication was a success - * FALSE otherwise - */ -static Boolean_t DuplicateItems(char *TargetArray, - LgIndex_t TargetItemOffset, - char *SourceArray, - LgIndex_t SourceItemOffset, - SmInteger_t ItemSize, - LgIndex_t Count, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData) -{ - Boolean_t IsOk = TRUE; - LgIndex_t Index; - - REQUIRE(VALID_REF(TargetArray)); - REQUIRE(TargetItemOffset >= 0); - REQUIRE(VALID_REF(SourceArray)); - REQUIRE(SourceItemOffset >= 0); - REQUIRE(1 <= ItemSize && - ItemSize <= (SmInteger_t)sizeof(ArrayListItem_u)); - REQUIRE(Count >= 1); - REQUIRE(VALID_FN_REF(ItemDuplicator)); - - for (Index = 0; - Index < Count && IsOk; - Index++) - { - LgIndex_t TargetItemIndex = (Index + TargetItemOffset) * ItemSize; - LgIndex_t SourceItemIndex = (Index + SourceItemOffset) * ItemSize; - IsOk = ItemDuplicator((void *) & TargetArray[TargetItemIndex], - (void *) & SourceArray[SourceItemIndex], - ClientData); - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Determine if the list handle is sane. - * - * param ArrayList - * Array list in question. - * - * return - * TRUE if the array list is valid, otherwise FALSE. - */ -Boolean_t ArrayListIsValid(ArrayList_pa ArrayList) -{ - Boolean_t IsValid; - - /* this just makes sure that the NULL item global was initialized */ - INVARIANT(ArrayListNullItem.Double == 0.0); - - IsValid = (VALID_REF(ArrayList) && - VALID_ENUM(ArrayList->Type, ArrayListType_e) && - (1 <= ArrayList->ItemSize && - ArrayList->ItemSize <= (SmInteger_t)sizeof(ArrayListItem_u)) && - (0 <= ArrayList->Count && - ArrayList->Count <= ArrayList->Capacity)); - - ENSURE(VALID_BOOLEAN(IsValid)); - return IsValid; -} - - -/** - * Gets the specified array list's type. - * - * param ArrayList - * Array list of which the type is desired. - * - * return - * Array list type. - */ -ArrayListType_e ArrayListGetType(ArrayList_pa ArrayList) -{ - ArrayListType_e Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - - Result = ArrayList->Type; - - ENSURE(VALID_ENUM(Result, ArrayListType_e)); - return Result; -} - - -/** - * Enlarge the list capacity to accommodate, at a minimum, the requested - * capacity (number of items). The enlarged section is initialized with zeros. - * This function can be called by clients who want to ensure that calls to - * the ArrayListSetXxx class of functions will never fail for offsets within - * the RequestedCapacity. - * - * param ArrayList - * Current capacity used as a helpful hint for the adjustment algorythm. - * param RequestedCapacity - * Capacity (number ot items) request or zero for default size. - * - * return - * TRUE if the list could be enlarged (or was large enough), - * otherwise FALSE. - */ -Boolean_t ArrayListEnlargeCapacity(ArrayList_pa ArrayList, - LgIndex_t RequestedCapacity) -{ - Boolean_t IsOk; - LgIndex_t AdjustedCapacity; - char *EnlargedArray; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(IMPLICATION(RequestedCapacity == 0, ArrayList->Capacity == 0)); - - if (RequestedCapacity == 0 || - RequestedCapacity > ArrayList->Capacity) - { - AdjustedCapacity = - ArrayList->CapacityRequestAdjuster(ArrayList, - ArrayList->Capacity, - RequestedCapacity, - ArrayList->CapacityRequestAdjusterClientData); - CHECK(AdjustedCapacity == 0 || - AdjustedCapacity >= RequestedCapacity); - - IsOk = (AdjustedCapacity != 0); /* ...were we able to meet the request? */ - if (IsOk) - { - EnlargedArray = ALLOC_ARRAY(AdjustedCapacity * ArrayList->ItemSize, - char, "array list"); - if (EnlargedArray == NULL) - { - /* try again with minimum capacity request */ - if (RequestedCapacity != 0) - AdjustedCapacity = RequestedCapacity; - else - AdjustedCapacity = 1; /* can't get smaller than this */ - EnlargedArray = ALLOC_ARRAY(AdjustedCapacity * ArrayList->ItemSize, - char, "array list"); - } - IsOk = (EnlargedArray != NULL); - } - - if (IsOk) - { - /* - * Initialize the expanded section of the array with zeros. This default - * value of zero is necessary for many other array list operations. - */ - memset(&EnlargedArray[ArrayList->Count*ArrayList->ItemSize], 0, - (AdjustedCapacity - ArrayList->Count)*ArrayList->ItemSize); - - if (ArrayList->Array != NULL) - { - if (ArrayList->Count != 0) - CopyArrayItems(EnlargedArray, 0, - ArrayList->Array, 0, - ArrayList->Count, - ArrayList->ItemSize); - FREE_ARRAY(ArrayList->Array, "array list"); - } - - ArrayList->Array = EnlargedArray; - ArrayList->Capacity = AdjustedCapacity; - } - } - else - { - IsOk = TRUE; - } - - ENSURE(ArrayListIsValid(ArrayList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Allocates an array list handle with the estimated capacity - * or a suitable default if an estimate is unavailable. - * - * param EstimatedCapacity - * Clients best guess at the estimated capacity (number of items) needed. - * If an estimate is not available zero the zero should be used to get the - * default capacity. - * param Type - * Type of array list being allocated. - * param CapacityRequestAdjuster - * Function to use to adjust any capacity change requests or - * NULL if the default adjuster is good enough. - * param CapacityRequestAdjusterClientData - * Any client data needed for the capacity adjustment. - * - * return - * Array list handle if sufficient memory was available, - * otherwise a handle to NULL. - */ -ArrayList_pa ArrayListAlloc(LgIndex_t EstimatedCapacity, - ArrayListType_e Type, - ArrayListCapacityRequestAdjuster_pf CapacityRequestAdjuster, - ArbParam_t CapacityRequestAdjusterClientData) -{ - ArrayList_pa Result; - - REQUIRE(EstimatedCapacity >= 0); - REQUIRE(VALID_ENUM(Type, ArrayListType_e)); - - Result = ALLOC_ITEM(ArrayList_s, "ArrayList structure"); - if (Result != NULL) - { - Result->Array = NULL; - Result->Type = Type; - Result->ItemSize = GetElementSize(Type); - Result->Count = 0; - Result->Capacity = 0; - Result->IsVisitingItems = FALSE; - if (CapacityRequestAdjuster != NULL) - { - /* install the client's capacity request adjuster */ - Result->CapacityRequestAdjuster = CapacityRequestAdjuster; - Result->CapacityRequestAdjusterClientData = CapacityRequestAdjusterClientData; - } - else - { - /* install the default capacity request adjuster */ - Result->CapacityRequestAdjuster = AdjustCapacityRequest; - Result->CapacityRequestAdjusterClientData = 0; - } - - /* enalarge the list to the estimated capacity */ - if (!ArrayListEnlargeCapacity(Result, EstimatedCapacity)) - ArrayListDealloc(&Result, NULL, 0); - } - - ENSURE(ArrayListIsValid(Result) || Result == NULL); - ENSURE(IMPLICATION(Result != NULL, Result->Capacity >= EstimatedCapacity)); - return Result; -} - - -/** - * Deallocates the list handle and set the handle to NULL. - * - * param ArrayList - * Reference to an array list handle. - * param ItemDestructor - * Destructor responsible for array list item cleanup or - * NULL if no item cleanup is desired. - * param ClientData - * Any client data needed for cleanup. - */ -void ArrayListDealloc(ArrayList_pa *ArrayList, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData) -{ - REQUIRE(VALID_REF(ArrayList)); - REQUIRE(ArrayListIsValid(*ArrayList) || *ArrayList == NULL); - REQUIRE(VALID_FN_REF(ItemDestructor) || ItemDestructor == NULL); - - if (*ArrayList != NULL) - { - /* request item cleanup if a destructor was supplied */ - if (ItemDestructor != NULL && (*ArrayList)->Count != 0) - DestroyItems(*ArrayList, 0, (*ArrayList)->ItemSize, (*ArrayList)->Count, - ItemDestructor, ClientData); - - /* release the list */ - if ((*ArrayList)->Capacity != 0) - FREE_ARRAY((*ArrayList)->Array, "array list"); - - /* release the list structure itself */ - FREE_ITEM(*ArrayList, "ArrayList structure"); - *ArrayList = NULL; - } - - ENSURE(*ArrayList == NULL); -} - - -#if !defined USE_MACROS_FOR_FUNCTIONS -/** - * Gets the number of items currently maintained by the list. - * - * param - * Array list in question. - * - * return - * Number of items maintained by the list. - */ -LgIndex_t ArrayListGetCount_FUNC(ArrayList_pa ArrayList) -{ - LgIndex_t Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - - Result = ArrayListGetCount_MACRO(ArrayList); - - ENSURE(Result >= 0); - return Result; -} -#endif - - -/** - * Empties the array list of all items. - * - * param ArrayList - * Array list from which to delete all items. - * param ItemDestructor - * Destructor responsible for array list item cleanup or - * NULL if no item cleanup is desired. - * param ClientData - * Any client data needed for cleanup. - */ -void ArrayListDeleteAllItems(ArrayList_pa ArrayList, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData) -{ - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(VALID_FN_REF(ItemDestructor) || ItemDestructor == NULL); - REQUIRE(!ArrayList->IsVisitingItems); - - /* request item cleanup if a destructor was supplied */ - if (ItemDestructor != NULL && ArrayList->Count != 0) - DestroyItems(ArrayList, 0, ArrayList->ItemSize, ArrayList->Count, - ItemDestructor, ClientData); - - /* - * Fill the vacated items with zeros. This default value of zero is necessary - * for many other array list operations. - */ - if (ArrayList->Count != 0) - memset(&ArrayList->Array[0], 0, ArrayList->Count*ArrayList->ItemSize); - - ArrayList->Count = 0; - - ENSURE(ArrayListIsValid(ArrayList) && ArrayList->Count == 0); -} - - -/** - * Deletes 'Count' items from the array list. The members following the - * items deleted are shifted down accordingly to fill the vacated space. - * - * param ArrayList - * Array list containing the items to delete. - * param ItemOffset - * Offset to the first item to delete in the list. - * param Count - * Number of items to delete. - * param ItemDestructor - * Destructor responsible for array list item cleanup or - * NULL if no item cleanup is desired. - * param ClientData - * Any client data needed for cleanup. - */ -void ArrayListDeleteItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData) -{ - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - REQUIRE(1 <= Count && ItemOffset + Count <= ArrayList->Count); - REQUIRE(VALID_FN_REF(ItemDestructor) || ItemDestructor == NULL); - REQUIRE(!ArrayList->IsVisitingItems); - - /* release the items if a destructor is installed */ - if (ItemDestructor != NULL) - DestroyItems(ArrayList, ItemOffset, ArrayList->ItemSize, Count, - ItemDestructor, ClientData); - - /* if we deleted the items from the middle of the array then */ - /* shift the end items down by 'Count' to fill the vacated space */ - if (ItemOffset + Count < ArrayList->Count) - CopyArrayItems(ArrayList->Array, ItemOffset, - ArrayList->Array, ItemOffset + Count, - ArrayList->Count - (ItemOffset + Count), - ArrayList->ItemSize); - /* - * Fill the vacated items with zeros. This default value of zero is necessary - * for many other array list operations. - */ - memset(&ArrayList->Array[(ArrayList->Count - Count)*ArrayList->ItemSize], - 0, Count*ArrayList->ItemSize); - - /* update the count but leave the capacity alone */ - ArrayList->Count -= Count; - - ENSURE(ArrayListIsValid(ArrayList)); -} - - -/** - * Deletes an item from the array list. The members following the item - * deleted are shifted down accordingly to fill the vacated space. - * - * param ArrayList - * Array list containing the item to delete. - * param ItemOffset - * Offset to the item in the list. - * param ItemDestructor - * Destructor responsible for array list item cleanup or - * NULL if no item cleanup is desired. - * param ClientData - * Any client data needed for cleanup. - */ -void ArrayListDeleteItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData) -{ - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - REQUIRE(VALID_FN_REF(ItemDestructor) || ItemDestructor == NULL); - - ArrayListDeleteItems(ArrayList, ItemOffset, 1, ItemDestructor, ClientData); - - ENSURE(ArrayListIsValid(ArrayList)); -} - - -/** - * Removes 'Count' items from the array list beginning at the specified - * item offset. The members following the items removed are shifted down - * accordingly to fill the vacated space. - * - * param ArrayList - * Array list containing the items to remove. - * param ItemOffset - * Offset to the first item to remove in the list. - * param Count - * Number of items to remove. - * - * return - * Array list handle referring to the removed items if sufficient - * memory was available, otherwise a handle to NULL. - */ -ArrayList_pa ArrayListRemoveItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count) -{ - ArrayList_pa Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - REQUIRE(1 <= Count && ItemOffset + Count <= ArrayList->Count); - REQUIRE(!ArrayList->IsVisitingItems); - - /* get a copy of the items and delete them from the source */ - Result = ArrayListGetItems(ArrayList, ItemOffset, Count); - if (Result != NULL) - ArrayListDeleteItems(ArrayList, ItemOffset, Count, NULL, 0); - - ENSURE(ArrayListIsValid(ArrayList)); - ENSURE(ArrayListIsValid(Result) || Result == NULL); - return Result; -} - - -/** - * Removes an item from the array list. The members following the item - * removed are shifted down accordingly to fill the vacated space. - * - * param ArrayList - * Array list containing the item to remove. - * param ItemOffset - * Offset to the item in the list. - * - * return - * Item removed from the array list. - */ -ArrayListItem_u ArrayListRemoveItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset) -{ - ArrayListItem_u Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - REQUIRE(!ArrayList->IsVisitingItems); - - /* record the original item */ - CopyArrayItems((char *)&Result, 0, - ArrayList->Array, ItemOffset, - 1, ArrayList->ItemSize); - - /* delete the item from the array */ - ArrayListDeleteItems(ArrayList, ItemOffset, 1, NULL, 0); - - ENSURE(ArrayListIsValid(ArrayList)); - return Result; -} - - -/** - * Inserts copies of the items from the source list to the target list at - * the specified offset. The target list will expand to accommodate the - * additional items. The source list remains unchanged. - * - * param Target - * Array list receiving the source items. - * param ItemOffset - * Offset at which to insert the source list items. - * param Source - * Array list supplying the source items. - * - * return - * TRUE if sufficient memory permitted the operation, otherwise FALSE. - */ -Boolean_t ArrayListInsert(ArrayList_pa Target, - LgIndex_t ItemOffset, - ArrayList_pa Source) -{ - Boolean_t IsOk = TRUE; - - REQUIRE(ArrayListIsValid(Target)); - REQUIRE(ItemOffset >= 0); - REQUIRE(ArrayListIsValid(Source)); - REQUIRE(Target != Source); - REQUIRE(Target->Type == Source->Type); - REQUIRE(!Target->IsVisitingItems); - - if (Source->Count != 0) - { - LgIndex_t NeededCapacity; - - /* if necessary enlarge the target list to accommodate the request */ - if (ItemOffset > Target->Count) - NeededCapacity = ItemOffset + Source->Count; - else - NeededCapacity = Target->Count + Source->Count; - if (NeededCapacity > Target->Capacity) - IsOk = ArrayListEnlargeCapacity(Target, NeededCapacity); - - if (IsOk) - { - if (ItemOffset < Target->Count) - { - /* shift all items in the target list ahead of the */ - /* insert position up by the number of items in the */ - /* source list to make room for the new items */ - CopyArrayItems(Target->Array, ItemOffset + Source->Count, - Target->Array, ItemOffset, - Target->Count - ItemOffset, - Target->ItemSize); - Target->Count += Source->Count; - } - else - { - /* no shifting to do, just update the count */ - if (ItemOffset > Target->Count) - Target->Count = ItemOffset + Source->Count; - else - Target->Count += Source->Count; - } - - /* insert the items and update the count */ - CopyArrayItems(Target->Array, ItemOffset, - Source->Array, 0, - Source->Count, Source->ItemSize); - } - } - - ENSURE(ArrayListIsValid(Target)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Inserts the item into the array list at the specified offset. The list will - * be expanded to accommodate the additional item. If the offset is beyond the - * end of the list it is sized accordingly and the intervening items between - * the last item of the original state and the last item of the new state are - * guaranteed to be 0. - * - * param ArrayList - * Array list target in which to insert the item. - * param ItemOffset - * Offset at which to insert the item. - * param Item - * Item to insert at the specified offset. - * - * return - * TRUE if sufficient memory permitted the operation, otherwise FALSE. - */ -Boolean_t ArrayListInsertItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - ArrayListItem_u Item) -{ - Boolean_t IsOk = TRUE; - LgIndex_t NeededCapacity; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(ItemOffset >= 0); - REQUIRE(!ArrayList->IsVisitingItems); - - /* if necessary enlarge the list to accommodate the request */ - if (ItemOffset > ArrayList->Count) - NeededCapacity = ItemOffset + 1; - else - NeededCapacity = ArrayList->Count + 1; - if (NeededCapacity > ArrayList->Capacity) - IsOk = ArrayListEnlargeCapacity(ArrayList, NeededCapacity); - - if (IsOk) - { - if (ItemOffset < ArrayList->Count) - { - /* shift all items in the target list ahead of the insert */ - /* position up by one to make room for the new item */ - CopyArrayItems(ArrayList->Array, ItemOffset + 1, - ArrayList->Array, ItemOffset, - ArrayList->Count - ItemOffset, - ArrayList->ItemSize); - ArrayList->Count++; - } - else - { - /* no shifting to do, just update the count */ - if (ItemOffset > ArrayList->Count) - ArrayList->Count = ItemOffset + 1; - else - ArrayList->Count++; - } - - /* insert the item */ - CopyArrayItems(ArrayList->Array, ItemOffset, - (char *)&Item, 0, - 1, ArrayList->ItemSize); - } - - ENSURE(ArrayListIsValid(ArrayList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Visits array list items calling the item visitor for each item. - * - * param ArrayList - * Array list needing its items destroyed. - * param ItemOffset - * Offset to the first item to visit from the list. - * param Count - * Number of items to visit. - * param ItemVisitor - * Function called for each array list item. - * param CientData - * Any client data needed for the visitor. - * - * return - * TRUE if the all element were visited, otherwise - * FALSE if the visitation was terminated early - */ -Boolean_t ArrayListVisitItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count, - ArrayListItemVisitor_pf ItemVisitor, - ArbParam_t ClientData) -{ - Boolean_t DoContinue = TRUE; - Boolean_t IsVisitingItems; - SmInteger_t ItemSize; - LgIndex_t Index; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(VALID_FN_REF(ItemVisitor)); - - IsVisitingItems = ArrayList->IsVisitingItems; - ArrayList->IsVisitingItems = TRUE; /* guards against structure changes */ - - for (Index = 0, ItemSize = ArrayList->ItemSize; - Index < Count && DoContinue; - Index++) - { - LgIndex_t ItemIndex = (Index + ItemOffset) * ItemSize; - DoContinue = ItemVisitor((void *) & ArrayList->Array[ItemIndex], ClientData); - } - - ArrayList->IsVisitingItems = IsVisitingItems; - - ENSURE(ArrayList->IsVisitingItems == IsVisitingItems); - ENSURE(VALID_BOOLEAN(DoContinue)); - return DoContinue; -} - - -/** - * Gets copies of 'Count' items from the array list beginning at the - * specified item offset. Note that if the items are pointer types - * the copies are of the pointers and not the pointees. - * - * param ArrayList - * Array list containing the items to copy. - * param ItemOffset - * Offset to the first item to copy from the list. - * param Count - * Number of items to copy. - * - * return - * Array list handle referring to the copied items if sufficient - * memory was available, otherwise a handle to NULL. - */ -ArrayList_pa ArrayListGetItems(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - LgIndex_t Count) -{ - ArrayList_pa Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - REQUIRE(1 <= Count && ItemOffset + Count <= ArrayList->Count); - - Result = ArrayListAlloc(Count, ArrayList->Type, - ArrayList->CapacityRequestAdjuster, - ArrayList->CapacityRequestAdjusterClientData); - if (Result != NULL) - { - /* copy the original items into the result */ - CopyArrayItems(Result->Array, 0, - ArrayList->Array, ItemOffset, - Count, ArrayList->ItemSize); - Result->Count = Count; - } - - ENSURE(ArrayListIsValid(ArrayList)); - ENSURE(ArrayListIsValid(Result) || Result == NULL); - return Result; -} - - -/** - * Gets the item at the specified offset in the list. - * - * param ArrayList - * Array list containing the desired item. - * param ItemOffset - * Offset to the item in the list. - * - * return - * The requested item. - */ -ArrayListItem_u ArrayListGetItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset) -{ - ArrayListItem_u Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - - CopyArrayItems((char *)&Result, 0, - ArrayList->Array, ItemOffset, - 1, ArrayList->ItemSize); - - return Result; -} - - -#if !defined USE_MACROS_FOR_FUNCTIONS -/** - * Gets the item's internal reference at the specified offset in the list. - * - * WARNING: - * Some array list functions modify the internal buffer. - * This will invalidate this reference however it is - * the client's responsibility not to make further use - * of it. In addition, this reference should never be - * deallocated directly as the array list assumes the - * responsible for the cleanup. - * - * param ArrayList - * Array list containing the desired item. - * param ItemOffset - * Offset to the item in the list. - * - * return - * The internal reference to the requested item. - */ -const void *ArrayListGetItemInternalRef_FUNC(ArrayList_pa ArrayList, - LgIndex_t ItemOffset) -{ - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(0 <= ItemOffset && ItemOffset <= ArrayList->Count - 1); - - const void *Result = ArrayListGetItemInternalRef_MACRO(ArrayList, ItemOffset); - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; -} -#endif - - -/** - * Places the item at the specified offset. If the offset is beyond the - * end of the list it is sized accordingly and the intervening items - * between the last item of the original state and the last item of the - * new state are guaranteed to be 0. - * - * param ArrayList - * Array list target in which to set the item. - * param ItemOffset - * Offset of the item. - * param Item - * Item to set at the specified offset. - * param ItemDestructor - * Destructor responsible for array list item cleanup or - * NULL if no item cleanup is desired. - * param ClientData - * Any client data needed for cleanup. - * - * return - * TRUE if sufficient memory permitted the operation, otherwise FALSE. - */ -Boolean_t ArrayListSetItem(ArrayList_pa ArrayList, - LgIndex_t ItemOffset, - ArrayListItem_u Item, - ArrayListItemDestructor_pf ItemDestructor, - ArbParam_t ClientData) -{ - Boolean_t IsOk = TRUE; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(ItemOffset >= 0); - REQUIRE(VALID_FN_REF(ItemDestructor) || ItemDestructor == NULL); - REQUIRE(IMPLICATION(ItemOffset + 1 > ArrayList->Count, - !ArrayList->IsVisitingItems)); - - /* release the item if a destructor is installed */ - if (ItemDestructor != NULL && ItemOffset < ArrayList->Count) - DestroyItems(ArrayList, ItemOffset, ArrayList->ItemSize, 1, - ItemDestructor, ClientData); - - /* if necessary enlarge the list to accommodate the request */ - if (ItemOffset + 1 > ArrayList->Capacity) - IsOk = ArrayListEnlargeCapacity(ArrayList, ItemOffset + 1); - - if (IsOk) - { - if (ItemOffset + 1 > ArrayList->Count) - ArrayList->Count = ItemOffset + 1; - CopyArrayItems(ArrayList->Array, ItemOffset, - (char *)&Item, 0, - 1, ArrayList->ItemSize); - } - - ENSURE(ArrayListIsValid(ArrayList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Appends the item to the list. The list will be expanded - * to accommodate the additional item. - * - * param ArrayList - * Array list target to which the item is to be appended. - * param Item - * Item to append to the array list. - * - * return - * TRUE if sufficient memory permitted the operation, otherwise FALSE. - */ -Boolean_t ArrayListAppendItem(ArrayList_pa ArrayList, - ArrayListItem_u Item) -{ - Boolean_t IsOk; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(!ArrayList->IsVisitingItems); - - IsOk = ArrayListInsertItem(ArrayList, ArrayList->Count, Item); - - ENSURE(ArrayListIsValid(ArrayList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Appends copies of the items from the source list to the target list. - * The source list remains unchanged. - * - * param Target - * Array list receiving the source items. - * param Source - * Array list supplying the source items. - * - * return - * TRUE if sufficient memory permitted the operation, otherwise FALSE. - */ -Boolean_t ArrayListAppend(ArrayList_pa Target, - ArrayList_pa Source) -{ - Boolean_t IsOk; - - REQUIRE(ArrayListIsValid(Target)); - REQUIRE(ArrayListIsValid(Source)); - REQUIRE(Target != Source); - REQUIRE(Target->Type == Source->Type); - REQUIRE(!Target->IsVisitingItems); - - IsOk = ArrayListInsert(Target, Target->Count, Source); - - ENSURE(ArrayListIsValid(Target)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Copies the items of the array list. - * - * param ArrayList - * Array list to copy. - * param ItemDuplicator - * Duplicator responsible for array list item duplication or - * NULL if an exact item copy is desired. In other words for - * pointer types the effect is copy by reference. - * param ClientData - * Any client data needed for duplication. - * - * return - * Handle to a duplicate of the specified array list if sufficient - * memory permitted the operation, otherwise NULL. - */ -ArrayList_pa ArrayListCopy(ArrayList_pa ArrayList, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData) -{ - ArrayList_pa Result; - - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(VALID_FN_REF(ItemDuplicator) || ItemDuplicator == NULL); - - Result = ArrayListAlloc(ArrayList->Count, ArrayList->Type, - ArrayList->CapacityRequestAdjuster, - ArrayList->CapacityRequestAdjusterClientData); - if (Result != NULL && ArrayList->Count != 0) - { - Boolean_t IsOk = TRUE; - if (ItemDuplicator != NULL) - /* client defines how the item duplication is performed */ - IsOk = DuplicateItems(Result->Array, 0, - ArrayList->Array, 0, - ArrayList->ItemSize, ArrayList->Count, - ItemDuplicator, ClientData); - else - /* copy the original items into the result */ - CopyArrayItems(Result->Array, 0, - ArrayList->Array, 0, - ArrayList->Count, - ArrayList->ItemSize); - if (IsOk) - Result->Count = ArrayList->Count; - else - ArrayListDealloc(&Result, NULL, 0); - } - - ENSURE(Result == NULL || - (ArrayListIsValid(Result) && Result->Count == ArrayList->Count)); - return Result; -} - - -/** - * Creates a native 'C' array containing copies of the items held in the - * source array list. - * - * param Source - * Array list containing the items of interest. - * param ItemDuplicator - * Duplicator responsible for array list item duplication or - * NULL if an exact item copy is desired. In other words for - * pointer types the effect is copy by reference. - * param ClientData - * Any client data needed for duplication. - * - * return - * Allocated array populated with copies of the members of the array list - * or NULL if there are no items in the list or if the allocation was - * not successful. The caller is responsible for deallocation of the - * array (but not the individual members unless a item duplication function - * was supplied) when it is no longer needed. - */ -void *ArrayListToArray(ArrayList_pa Source, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData) -{ - void *Result; - - REQUIRE(ArrayListIsValid(Source)); - REQUIRE(VALID_FN_REF(ItemDuplicator) || ItemDuplicator == NULL); - - if (Source->Count != 0) - Result = (void *)ALLOC_ARRAY(Source->Count * Source->ItemSize, - char, "native array"); - else - Result = NULL; - - if (Result != NULL) - { - Boolean_t IsOk = TRUE; - if (ItemDuplicator != NULL) - /* client defines how the item duplication is performed */ - IsOk = DuplicateItems((char*)Result, 0, - Source->Array, 0, - Source->ItemSize, Source->Count, - ItemDuplicator, ClientData); - else - /* copy the original items into the result */ - CopyArrayItems((char *)Result, 0, - Source->Array, 0, - Source->Count, - Source->ItemSize); - if (!IsOk) - { - /* Hack to remove delete warning... */ - char *Tmp = (char *)Result; - FREE_ARRAY(Tmp, "native array"); - } - } - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - - -/** - * Creates an array list containing copies of the items held in the - * native 'C' array. - * - * param Source - * Native 'C' array containing the items of interest. - * param Count - * Number of items contained in the native 'C' array. - * param Type - * Type of items contained in the native 'C' array. - * param ItemDuplicator - * Duplicator responsible for array list item duplication or - * NULL if an exact item copy is desired. In other words for - * pointer types the effect is copy by reference. - * param ClientData - * Any client data needed for duplication. - * - * return - * Array list handle containing copies of the items held in the - * native 'C' array if sufficient memory was available, otherwise - * a handle to NULL. - */ -ArrayList_pa ArrayListFromArray(void *Source, - LgIndex_t Count, - ArrayListType_e Type, - ArrayListItemDuplicator_pf ItemDuplicator, - ArbParam_t ClientData) -{ - ArrayList_pa Result; - - REQUIRE(VALID_REF(Source)); - REQUIRE(Count >= 0); - REQUIRE(VALID_ENUM(Type, ArrayListType_e)); - REQUIRE(VALID_FN_REF(ItemDuplicator) || ItemDuplicator == NULL); - - Result = ArrayListAlloc(Count, Type, NULL, 0); - if (Result != NULL && Count != 0) - { - Boolean_t IsOk = TRUE; - if (ItemDuplicator != NULL) - /* client defines how the item duplication is performed */ - IsOk = DuplicateItems(Result->Array, 0, - (char*)Source, 0, - Result->ItemSize, Count, - ItemDuplicator, ClientData); - else - /* copy the original items into the result */ - CopyArrayItems(Result->Array, 0, - (char *)Source, 0, - Count, Result->ItemSize); - if (IsOk) - Result->Count = Count; - else - ArrayListDealloc(&Result, NULL, 0); - } - - ENSURE(ArrayListIsValid(Result) || Result == NULL); - return Result; -} - - -/** - * Holds the comparator function pointer for sorting. - */ -static ArrayListItemComparator_pf ComparatorFunction = NULL; - - -/** - * Holds the context for comparisons. This information is forwarded to - * the item comparator function for sorting. - */ -static ArbParam_t ComparatorClientData = 0; - - -/** - * Holds the item size of the individual array components for sorting. - */ -static SmInteger_t ComparatorItemSize = 0; - - -/** - * Forwards the comparison test to the 'Comparator' supplied to the - * 'ArrayListQSort' function. - * - * param Item1Ref - * Reference to base address of Item1. - * param Item2Ref - * Reference to base address of Item2. - * - * return - * - A value less than zero if Item1 is less than Item2. - * - A value of zero if Item1 is equal to Item2. - * - A value greater than zero if Item1 is greater than Item2. - */ -static int QSortCompareItemsAdapter(const void *Item1Ref, - const void *Item2Ref) -{ - int Result; - ArrayListItem_u Item1; - ArrayListItem_u Item2; - - REQUIRE(Item1Ref != NULL); - REQUIRE(Item2Ref != NULL); - - /* collect up the items */ - CopyArrayItems((char *)&Item1, 0, - (char *)Item1Ref, 0, - 1, ComparatorItemSize); - CopyArrayItems((char *)&Item2, 0, - (char *)Item2Ref, 0, - 1, ComparatorItemSize); - - /* forward the call */ - Result = ComparatorFunction(Item1, Item2, ComparatorClientData); - - ENSURE(Result == -1 || Result == 0 || Result == 1); - return Result; -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/** - * Sorts the array list using the qsort algorithm. - * - * param ArrayList - * Array list to sort. - * param Comparator - * Function called to compare two array list elements. - * param ClientData - * Contextual information that is passed along to the comparator function. - */ -void ArrayListQSort(ArrayList_pa ArrayList, - ArrayListItemComparator_pf Comparator, - ArbParam_t ClientData) -{ - ArrayListItemComparator_pf CurComparatorFunction; - ArbParam_t CurComparatorClientData; - SmInteger_t CurComparatorItemSize; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(VALID_FN_REF(Comparator)); - - /* to support sort recursion we need to save off the current values */ - CurComparatorFunction = ComparatorFunction; - CurComparatorClientData = ComparatorClientData; - CurComparatorItemSize = ComparatorItemSize; - - /* set up for comparison proxy */ - ComparatorFunction = Comparator; - ComparatorClientData = ClientData; - ComparatorItemSize = ArrayList->ItemSize; - - /* sort the array */ - qsort(ArrayList->Array, ArrayList->Count, - ArrayList->ItemSize, QSortCompareItemsAdapter); - - /* cleanup */ - ComparatorFunction = CurComparatorFunction; - ComparatorClientData = CurComparatorClientData; - ComparatorItemSize = CurComparatorItemSize; - - ENSURE(ArrayListIsValid(ArrayList)); -} - -/** - * Binary searches a sorted array looking for a match using the supplied - * comparator function. If a match is found the resulting item index refers to - * the location otherwise it refers to the location where the item could be - * inserted in sorted order. - * - * param ArrayList - * Array list to sort. - * param Item - * The item for which to search. - * param Comparator - * Function called to compare the Item to the array list elements. - * param ClientData - * Contextual information that is passed along to the comparator function. - * param ItemIndex - * Pointer to the resulting position where the item was found or where the - * item could be inserted in sorted order. If the pointer is NULL the - * result position is not returned. - * - * result - * TRUE if the item was found in the list, FALSE otherwise. - */ -Boolean_t ArrayListBSearch(ArrayList_pa ArrayList, - ArrayListItem_u Item, - ArrayListItemComparator_pf Comparator, - ArbParam_t ClientData, - LgIndex_t *ItemIndex) -{ - REQUIRE(ArrayListIsValid(ArrayList)); - REQUIRE(VALID_FN_REF(Comparator)); - REQUIRE(ItemIndex == NULL || VALID_REF(ItemIndex)); - - LgIndex_t MiddleItemIndex = 0; - LgIndex_t FirstItemIndex = 0; - LgIndex_t NumItems = ArrayListGetCount(ArrayList); - LgIndex_t LastItemIndex = NumItems - 1; - Boolean_t Found = FALSE; - while (FirstItemIndex <= LastItemIndex && !Found) - { - /* calculate the middle item index for current sub-range */ - MiddleItemIndex = (FirstItemIndex + LastItemIndex) / 2; - - int CompareResult = Comparator(ArrayListGetItem(ArrayList, MiddleItemIndex), Item, ClientData); - if (CompareResult > 0) - LastItemIndex = MiddleItemIndex - 1; - else if (CompareResult < 0) - FirstItemIndex = MiddleItemIndex + 1; - else - Found = TRUE; - } - - if (ItemIndex != NULL) - { - if (Found || NumItems == 0 || FirstItemIndex < NumItems) - *ItemIndex = MiddleItemIndex; - else - *ItemIndex = NumItems; /* ...in other words it goes on the end */ - } - - ENSURE(IMPLICATION(ItemIndex != NULL, - 0 <= *ItemIndex && *ItemIndex <= ArrayListGetCount(ArrayList))); - ENSURE(VALID_BOOLEAN(Found)); - return Found; -} - -#if !defined USE_MACROS_FOR_FUNCTIONS -/** - * Gets the array list's internal buffer representation. - * - * WARNING: - * Some array list functions modify the internal buffer. - * This will invalidate this reference however it is - * the client's responsibility not to make further use - * of it. In addition, this reference should never be - * deallocated directly as the array list assumes the - * responsible for the cleanup. - * - * param ArrayList - * Array list for which a reference to the internal - * buffer is desired. - * - * return - * Reference to the array list's internal buffer. - */ -const void *ArrayListGetInternalRef_FUNC(ArrayList_pa ArrayList) -{ - REQUIRE(ArrayListIsValid(ArrayList)); - - const void *Result = ArrayListGetInternalRef_MACRO(ArrayList); - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; -} -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/auxdata.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/auxdata.cpp deleted file mode 100644 index c42b222046..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/auxdata.cpp +++ /dev/null @@ -1,809 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* - ***************************************************************** - ***************************************************************** - ******* ******** - ****** Copyright (C) 1988-2008 Tecplot, Inc. ******** - ******* All Rights Reserved. ******** - ******* ******** - ***************************************************************** - ***************************************************************** - */ - -#define AUXDATAMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "ALLOC.h" -#include "STRUTIL.h" -#include "ARRLIST.h" -#include "DATASET.h" -#include "STRLIST.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "SET.h" -#include "AUXDATA.h" - -using namespace tecplot::strutil; - -/** - * Private auxiliary data item structure. - */ -typedef struct -{ - const char *Name; - ArbParam_t Value; - AuxDataType_e Type; - Boolean_t Retain; -} AuxDataItem_s; - -/** - * Private auxiliary data item container structure. - */ -typedef struct _AuxData_s -{ - /* invariant: ItemList is case-insensitive sorted by AuxDataItem->Name */ - ArrayList_pa ItemList; /* [dynamic] */ -} AuxData_s; - -static Mutex_pa AuxDataMutex = NULL; - - -/** - * A valid auxiliary data name character must begin with a '_' or alpha - * character and may be followed by one or more '_', '.', alpha or digit - * characters. - */ -Boolean_t AuxDataIsValidNameChar(char Char, - Boolean_t IsLeadChar) -{ - Boolean_t IsValidNameChar; - - REQUIRE("Char can be any value"); - REQUIRE(VALID_BOOLEAN(IsLeadChar)); - - IsValidNameChar = (Char == '_' || - isalpha(Char)); - if (!IsLeadChar) - IsValidNameChar = (IsValidNameChar || - Char == '.' || - isdigit(Char)); - - ENSURE(VALID_BOOLEAN(IsValidNameChar)); - return IsValidNameChar; -} - -/** - * Indicates if the auxiliary data name is valid. A valid auxiliary data name - * must begin with a '_' or alpha character and may be followed by one or - * more '_', '.', alpha or digit characters. - */ -Boolean_t AuxDataIsValidName(const char *Name) -{ - Boolean_t IsValidName; - const char *NPtr; - REQUIRE(VALID_REF(Name)); - - for (NPtr = Name, IsValidName = AuxDataIsValidNameChar(*NPtr, TRUE); - IsValidName && *NPtr != '\0'; - NPtr++) - { - IsValidName = AuxDataIsValidNameChar(*NPtr, FALSE); - } - - ENSURE(VALID_BOOLEAN(IsValidName)); - return IsValidName; -} - -/** - * Deallocates an auxiliary data item and its contents and sets the target to - * NULL. - * - * param AuxDataItem - * Reference to an auxiliary data item. - */ -static void AuxDataItemDealloc(AuxDataItem_s **AuxDataItem) -{ - REQUIRE(VALID_REF(AuxDataItem)); - REQUIRE(VALID_REF(*AuxDataItem) || *AuxDataItem == NULL); - - if (*AuxDataItem != NULL) - { - char *Name = (char *)(*AuxDataItem)->Name; - if (Name != NULL) - FREE_ARRAY(Name, "auxiliary name"); - - if ((*AuxDataItem)->Type == AuxDataType_String) - { - char *Value = (char *)(*AuxDataItem)->Value; - if (Value != NULL) - FREE_ARRAY(Value, "auxiliary value"); - } - else - CHECK(FALSE); - - FREE_ITEM(*AuxDataItem, "auxiliary data item"); - *AuxDataItem = NULL; - } - - ENSURE(*AuxDataItem == NULL); -} - -/** - * Allocates an auxiliary data item. - * - * NOTE: Copies are made of the name and value. - * - * param Name - * Auxiliary data item's name (case insenstive). - * param Value - * Auxiliary data item's value. - * param Type - * Auxiliary data item's value type. - * param Retain - * Indicates if the auxiliary data item should persist. In other words - * copied, saved, etc. - * - * return - * A new auxiliary data item or NULL if sufficient memory was not - * available. - */ -static AuxDataItem_s *AuxDataItemAlloc(const char *Name, - ArbParam_t Value, - AuxDataType_e Type, - Boolean_t Retain) -{ - AuxDataItem_s *Result; - - REQUIRE(VALID_REF(Name) && AuxDataIsValidName(Name)); - REQUIRE(IMPLICATION(Type == AuxDataType_String, - (VALID_REF((char *)Value) || - (char *)Value == NULL))); - REQUIRE(VALID_ENUM(Type, AuxDataType_e)); - REQUIRE(VALID_BOOLEAN(Retain)); - - Result = ALLOC_ITEM(AuxDataItem_s, "auxiliary data item"); - if (Result != NULL) - { - Boolean_t IsOk; - Result->Type = Type; - Result->Retain = Retain; - Result->Name = DupString(dontTranslate(Name)); - IsOk = (Result->Name != NULL); - Result->Value = 0; /* to satisfy some compilers' uninitialized warnings */ - if (IsOk && Type == AuxDataType_String) - { - char *strValue = (char *)Value; - if (strValue != NULL) - { - char *strCopy = DupString(dontTranslate(strValue)); - Result->Value = (ArbParam_t)strCopy; - IsOk = (strCopy != NULL); - } - else - Result->Value = (ArbParam_t)NULL; - } - else - CHECK(FALSE); - - if (!IsOk) - AuxDataItemDealloc(&Result); - } - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - * Destroys an auxiliary data item list item. This is an item destructor - * callback for ArrayList's private data. - * - * param ItemRef - * Reference to the auxiliary data item to cleanup. - * param ClientData - * Not used. - * - * return - * TRUE is a requirement - */ -static Boolean_t AuxDataItemListItemDestructor(void *ItemRef, - ArbParam_t ClientData) -{ - AuxDataItem_s **AuxDataItemRef = (AuxDataItem_s **)ItemRef; - - REQUIRE(VALID_REF(AuxDataItemRef)); - REQUIRE(VALID_REF(*AuxDataItemRef) || *AuxDataItemRef == NULL); - - if (*AuxDataItemRef != NULL) - AuxDataItemDealloc(AuxDataItemRef); - - ENSURE(*AuxDataItemRef == NULL); - return TRUE; -} - -/** - * Destroys an auxiliary data item. This is an item destructor - * callback for ArrayList's private data. - * - * param ItemRef - * Reference to the auxiliary data to cleanup. - * param ClientData - * Not used. - * - * return - * TRUE is a requirement - */ -Boolean_t AuxDataItemDestructor(void *ItemRef, - ArbParam_t ClientData) -{ - AuxData_pa *AuxDataRef = (AuxData_pa *)ItemRef; - - REQUIRE(VALID_REF(AuxDataRef)); - REQUIRE(VALID_REF(*AuxDataRef) || *AuxDataRef == NULL); - - if (*AuxDataRef != NULL) - AuxDataDealloc(AuxDataRef); - - ENSURE(*AuxDataRef == NULL); - return TRUE; -} - - -/** - * Duplicates an auxiliary data item if its Retain flag is TRUE or if directed - * by the callback data. This is an item duplicator callback for ArrayList. - * - * param TargetItemRef - * Reference to the auxiliary data item to receive duplicate. - * param SourceItemRef - * Reference to the auxiliary data item to duplicate. - * param ClientData - * Boolean indicating if the Retain flag should be considered. - * - * return - * TRUE if the duplication was a success - * FALSE otherwise. - */ -static Boolean_t AuxDataItemDuplicator(void *TargetItemRef, - void *SourceItemRef, - ArbParam_t ClientData) -{ - Boolean_t IsOk = TRUE; - AuxDataItem_s **TargetAuxDataItemRef = (AuxDataItem_s **)TargetItemRef; - AuxDataItem_s **SourceAuxDataItemRef = (AuxDataItem_s **)SourceItemRef; - Boolean_t ConsiderRetain; - - REQUIRE(VALID_REF(TargetAuxDataItemRef)); - REQUIRE(VALID_REF(SourceAuxDataItemRef)); - REQUIRE(VALID_REF(*SourceAuxDataItemRef) || *SourceAuxDataItemRef == NULL); - REQUIRE(VALID_BOOLEAN((Boolean_t)ClientData)); - - ConsiderRetain = (Boolean_t)ClientData; - - /* duplicate the item */ - if (*SourceAuxDataItemRef != NULL && - (!ConsiderRetain || (*SourceAuxDataItemRef)->Retain)) - { - *TargetAuxDataItemRef = AuxDataItemAlloc((*SourceAuxDataItemRef)->Name, - (*SourceAuxDataItemRef)->Value, - (*SourceAuxDataItemRef)->Type, - (*SourceAuxDataItemRef)->Retain); - IsOk = (*TargetAuxDataItemRef != NULL); - } - else - *TargetAuxDataItemRef = NULL; - - ENSURE(VALID_REF(*TargetAuxDataItemRef) || *TargetAuxDataItemRef == NULL); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - * Deallocates an auxiliary data handle and sets the handle to NULL. - * - * param AuxData - * Reference to an auxiliary data handle or reference to NULL. - */ -void AuxDataDealloc(AuxData_pa *AuxData) -{ - REQUIRE(VALID_REF(AuxData)); - REQUIRE(VALID_REF(*AuxData) || *AuxData == NULL); - - if (*AuxData != NULL) - { - ArrayListDealloc(&(*AuxData)->ItemList, AuxDataItemListItemDestructor, 0); - FREE_ITEM(*AuxData, "auxiliary data container"); - *AuxData = NULL; - } - - ENSURE(*AuxData == NULL); -} - -/** - * Allocates an auxiliary data handle. - * - * return - * Auxiliary data handle or NULL if sufficient memory was not available. - */ -AuxData_pa AuxDataAlloc(void) -{ - AuxData_pa Result = ALLOC_ITEM(AuxData_s, "auxiliary data container"); - if (Result != NULL) - { - Result->ItemList = ArrayListAlloc(0, ArrayListType_VoidPtr, NULL, 0); - if (Result->ItemList == NULL) - AuxDataDealloc(&Result); - } - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - * Copies the auxiliary data and all its members who's Retain flag is TRUE - * if the ConsiderRetain flag is TRUE otherwise it copies everything. - */ -AuxData_pa AuxDataCopy(AuxData_pa AuxData, - Boolean_t ConsiderRetain) -{ - AuxData_pa Result; - - REQUIRE(VALID_REF(AuxData)); - REQUIRE(VALID_BOOLEAN(ConsiderRetain)); - - Result = ALLOC_ITEM(AuxData_s, "auxiliary data container"); - if (Result != NULL) - { - Result->ItemList = ArrayListCopy(AuxData->ItemList, - AuxDataItemDuplicator, - ConsiderRetain); - if (Result->ItemList != NULL) - { - if (ConsiderRetain) - { - /* - * Now pass through the array cleaning up the holes left by those - * auxiliary data item member who's Retain flag was FALSE and - * therefore left a VOID pointer because it was not copied. - */ - LgIndex_t ItemOffset = 0; - LgIndex_t ItemCount = ArrayListGetCount(Result->ItemList); - while (ItemOffset < ItemCount) - { - /* if there is more than one in a row remove them all at once */ - if (ArrayListGetVoidPtr(Result->ItemList, ItemOffset) == NULL) - { - LgIndex_t BaseOffsetToRemove = ItemOffset; - LgIndex_t NumItemsToRemove = 1; - while (BaseOffsetToRemove + NumItemsToRemove < ItemCount && - ArrayListGetVoidPtr(Result->ItemList, - BaseOffsetToRemove + NumItemsToRemove) == NULL) - NumItemsToRemove++; - - /* delete the NULL items */ - ArrayListDeleteItems(Result->ItemList, - BaseOffsetToRemove, - NumItemsToRemove, - NULL, 0); - - /* - * Update ItemCount but leave ItemOffset alone as it is now - * indexing the next item to examine. - */ - ItemCount = ArrayListGetCount(Result->ItemList); - } - else - ItemOffset++; - } - } - } - else - AuxDataDealloc(&Result); - } - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - * Gets the current number of auxiliary data items maintained by the auxiliary. - * - * param AuxData - * Handle to auxiliary data. - * - * return - * Number of items maintained by the auxiliary data. - */ -LgIndex_t AuxDataGetNumItems(AuxData_pa AuxData) -{ - LgIndex_t NumItems; - - REQUIRE(VALID_REF(AuxData)); - - NumItems = ArrayListGetCount(AuxData->ItemList); - - ENSURE(NumItems >= 0); - return NumItems; -} - -/** - * Gets the item index of the name if found or if not found the index where an - * auxiliary data item could be inserted. - * - * param AuxData - * Handle to auxiliary data. - * param Name - * Name used for the search (case insensitive). - * param ItemIndex - * Address to hold the index of the found item or the index where an - * auxiliary data item could be inserted. - * - * return - * TRUE if the named item was found, - * FALSE otherwise. - */ -Boolean_t AuxDataGetItemIndex(AuxData_pa AuxData, - const char *Name, - LgIndex_t *ItemIndex) -{ - Boolean_t FoundItem = FALSE; - LgIndex_t Index; - LgIndex_t NumItems; - - REQUIRE(VALID_REF(AuxData)); - INVARIANT("AuxData->ItemList is case-insensitive sorted by AuxDataItem->Name"); - REQUIRE(VALID_REF(Name) && AuxDataIsValidName(Name)); - REQUIRE(VALID_REF(ItemIndex)); - - /* - * Note that the current implementation just does a linear search - * though the array looking for the index of the item or if not - * found the index of the insertion point. This should be replaced - * with a binary search. - */ - NumItems = AuxDataGetNumItems(AuxData); - -# if defined DO_LINEAR_SEARCH - { - for (Index = 0; Index < NumItems; Index++) - { - AuxDataItem_s *AuxDataItem = - (AuxDataItem_s *)ArrayListGetVoidPtr(AuxData->ItemList, Index); - int CompareResult = ustrcmp(AuxDataItem->Name, Name); - if (CompareResult >= 0) - { - FoundItem = (CompareResult == 0); - break; - } - } - } -# else - { - int low, high; - low = 0; - high = NumItems - 1; - Index = 0; - while (low <= high) - { - AuxDataItem_s *AuxDataItem; - int CompareResult; - Index = (low + high) / 2; - AuxDataItem = (AuxDataItem_s *)ArrayListGetVoidPtr(AuxData->ItemList, Index); - CompareResult = ustrcmp(Name, AuxDataItem->Name); - if (CompareResult < 0) - high = Index - 1; /* If the new name is "less" than the one we're comparing to, - don't change Index since Index is already in the right spot */ - else if (CompareResult > 0) - low = ++Index; /* If the new name it "greater" than the one we're comparing - against, we want to make sure its Index is greater than - the current name's index as well, that's why we increment Index here. */ - else - { - FoundItem = TRUE; - break; - } - } - } -# endif - - *ItemIndex = Index; - - ENSURE(VALID_BOOLEAN(FoundItem)); - ENSURE(0 <= *ItemIndex && - ((FoundItem && *ItemIndex < NumItems) || - (!FoundItem && *ItemIndex <= NumItems))); - return FoundItem; -} - -/** - * Gets the auxiliary data item at the specified index. - * - * NOTE: The name and value are a references, NOT copies. - * - * param AuxData - * Handle to auxiliary data. - * param Index - * Index of the auxiliary data item of interest. - * param Name - * Address to hold the auxiliary data item name. - * param Value - * Address to hold the auxiliary data item value. - * param Type - * Address to hold the auxiliary data item type. - * param Retain - * Address to hold the auxiliary data item retain flag. - */ -void AuxDataGetItemByIndex(AuxData_pa AuxData, - LgIndex_t Index, - const char **Name, - ArbParam_t *Value, - AuxDataType_e *Type, - Boolean_t *Retain) -{ - AuxDataItem_s *AuxDataItem; - - REQUIRE(VALID_REF(AuxData)); - INVARIANT("AuxData->ItemList is case-insensitive sorted by AuxDataItem->Name"); - REQUIRE(0 <= Index && Index < ArrayListGetCount(AuxData->ItemList)); - REQUIRE(VALID_REF(Name)); - REQUIRE(VALID_REF(Value)); - REQUIRE(VALID_REF(Type)); - REQUIRE(VALID_REF(Retain)); - - AuxDataItem = (AuxDataItem_s *)ArrayListGetVoidPtr(AuxData->ItemList, Index); - *Name = AuxDataItem->Name; - *Value = AuxDataItem->Value; - *Type = AuxDataItem->Type; - *Retain = AuxDataItem->Retain; - - ENSURE(VALID_REF(*Name) && AuxDataIsValidName(*Name)); - ENSURE(IMPLICATION(*Type == AuxDataType_String, - (VALID_REF((char *)(*Value)) || - (char *)(*Value) == NULL))); - ENSURE(VALID_ENUM(*Type, AuxDataType_e)); - ENSURE(VALID_BOOLEAN(*Retain)); -} - -/** - * Gets the auxiliary data item by the specified name if it exists. - * - * NOTE: The name and value are a references, NOT copies. - * - * param AuxData - * Handle to auxiliary data. - * param Name - * Name used for the search (case insensitive). - * param Value - * Address to hold the auxiliary data item value. - * param Type - * Address to hold the auxiliary data item type. - * param Retain - * Address to hold the auxiliary data item retain flag. - * - * return - * TRUE if the an auxilary data item by the specified name was found, - * FALSE otherwise. - */ -Boolean_t AuxDataGetItemByName(AuxData_pa AuxData, - const char *Name, - ArbParam_t *Value, - AuxDataType_e *Type, - Boolean_t *Retain) -{ - Boolean_t FoundItem; - LgIndex_t ItemIndex; - - REQUIRE(VALID_REF(AuxData)); - INVARIANT("AuxData->ItemList is case-insensitive sorted by AuxDataItem->Name"); - REQUIRE(VALID_REF(Name) && AuxDataIsValidName(Name)); - REQUIRE(VALID_REF(Value)); - REQUIRE(VALID_REF(Type)); - REQUIRE(VALID_REF(Retain)); - - FoundItem = AuxDataGetItemIndex(AuxData, Name, &ItemIndex); - if (FoundItem) - { - const char *SameName; - AuxDataGetItemByIndex(AuxData, ItemIndex, &SameName, - Value, Type, Retain); - CHECK(ustrcmp(Name, SameName) == 0); - } - - ENSURE(VALID_BOOLEAN(FoundItem)); - ENSURE(IMPLICATION(FoundItem, - IMPLICATION(*Type == AuxDataType_String, - (VALID_REF((char *)(*Value)) || - (char *)(*Value) == NULL)))); - ENSURE(IMPLICATION(FoundItem, - VALID_ENUM(*Type, AuxDataType_e))); - ENSURE(IMPLICATION(FoundItem, - VALID_BOOLEAN(*Retain))); - return FoundItem; -} - - -/** - * Get a string value from AuxData and convert it to a boolean. - */ -Boolean_t AuxDataGetBooleanItemByName(AuxData_pa AuxData, /* IN */ - const char *Name, /* IN */ - Boolean_t *Value, /* OUT */ - AuxDataType_e *Type, /* OUT */ - Boolean_t *Retain) /* OUT */ -{ - Boolean_t FoundItem; - - REQUIRE(VALID_REF(AuxData)); - INVARIANT("AuxData->ItemList is case-insensitive sorted by AuxDataItem->Name"); - REQUIRE(VALID_REF(Name) && AuxDataIsValidName(Name)); - REQUIRE(VALID_REF(Value)); - REQUIRE(VALID_REF(Type)); - REQUIRE(VALID_REF(Retain)); - - ArbParam_t strValue; - FoundItem = AuxDataGetItemByName(AuxData, - Name, - &strValue, - Type, - Retain); - - if (FoundItem && - (ustrcmp((char *)strValue, "YES") == 0 || - ustrcmp((char *)strValue, "YEP") == 0 || - ustrcmp((char *)strValue, "Y") == 0 || - ustrcmp((char *)strValue, "TRUE") == 0 || - ustrcmp((char *)strValue, "T") == 0 || - ustrcmp((char *)strValue, "ON") == 0 || - ustrcmp((char *)strValue, "1") == 0)) - { - *Value = TRUE; - } - else - { - *Value = FALSE; - } - - ENSURE(VALID_BOOLEAN(FoundItem)); - ENSURE(VALID_BOOLEAN(*Value)); - return FoundItem; -} - - -/** - * Adds the auxiliary data item to the auxiliary data or replaces it if one - * already exists by the same name. - * - * NOTE: The auxiliary data makes copies of the name and value. - * - * param AuxData - * Auxiliary data handle. - * param Name - * Auxiliary data item's name (case insenstive). - * param Value - * Auxiliary data item's value. - * param Type - * Auxiliary data item's value type. - * param Retain - * Indicates if the auxiliary data item should persist. - * - * return - * TRUE if the item was added to the auxiliary data. - */ -Boolean_t AuxDataSetItem(AuxData_pa AuxData, - const char *Name, - ArbParam_t Value, - AuxDataType_e Type, - Boolean_t Retain) -{ - Boolean_t IsOk; - AuxDataItem_s *AuxDataItem; - - REQUIRE(VALID_REF(AuxData)); - INVARIANT("AuxData->ItemList is case-insensitive sorted by AuxDataItem->Name"); - REQUIRE(VALID_REF(Name) && AuxDataIsValidName(Name)); - REQUIRE(IMPLICATION(Type == AuxDataType_String, - (VALID_REF((char *)Value) || - (char *)Value == NULL))); - REQUIRE(VALID_ENUM(Type, AuxDataType_e)); - REQUIRE(VALID_BOOLEAN(Retain)); - - AuxDataItem = AuxDataItemAlloc(Name, Value, Type, Retain); - IsOk = (AuxDataItem != NULL); - if (IsOk) - { - LgIndex_t ItemIndex; - ArrayListItem_u ListItem; - - /* add or replace the item to the list */ - ListItem.VoidPtr = (void *)AuxDataItem; - if (!AuxDataGetItemIndex(AuxData, Name, &ItemIndex)) - IsOk = ArrayListInsertItem(AuxData->ItemList, ItemIndex, ListItem); - else - IsOk = ArrayListSetItem(AuxData->ItemList, ItemIndex, ListItem, - AuxDataItemListItemDestructor, 0); - - if (!IsOk) - AuxDataItemDealloc(&AuxDataItem); - } - - ENSURE(VALID_BOOLEAN(IsOk)); - INVARIANT("AuxData->ItemList is case-insensitive sorted by AuxDataItem->Name"); - return IsOk; -} - -/** - * Deletes the auxiliary data item at the specified index. - * - * param AuxData - * Auxiliary data handle. - * param Index - * Index of the auxiliary data item of interest. - */ -void AuxDataDeleteItemByIndex(AuxData_pa AuxData, - LgIndex_t Index) -{ - REQUIRE(VALID_REF(AuxData)); - REQUIRE(0 <= Index && Index < ArrayListGetCount(AuxData->ItemList)); - - ArrayListDeleteItem(AuxData->ItemList, Index, AuxDataItemListItemDestructor, 0); -} - -/** - * Deletes the auxiliary data item by the specified name if it exists. - * - * param AuxData - * Auxiliary data handle. - * param Name - * Name used for the search (case insensitive). - * - * return - * TRUE if the an auxilary data item by the specified name was found, - * FALSE otherwise. - */ -Boolean_t AuxDataDeleteItemByName(AuxData_pa AuxData, - const char *Name) -{ - Boolean_t FoundItem; - LgIndex_t ItemIndex; - - REQUIRE(VALID_REF(AuxData)); - REQUIRE(VALID_REF(Name) && AuxDataIsValidName(Name)); - - FoundItem = AuxDataGetItemIndex(AuxData, Name, &ItemIndex); - if (FoundItem) - AuxDataDeleteItemByIndex(AuxData, ItemIndex); - - ENSURE(VALID_BOOLEAN(FoundItem)); - return FoundItem; -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataio.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataio.cpp deleted file mode 100644 index a88c7c1f43..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataio.cpp +++ /dev/null @@ -1,695 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define DATAIOMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "TranslatedString.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else -#ifdef MSWIN -/* Disable warning about conversion from long to short. - Even if we have disabled it in stdafx.h, - we still need to disable here also for - tecio, which includes this cpp file. */ - -#pragma warning (disable : 4244) -#endif -/* - * Temp text and geom buffers. - */ -static Geom_s TempGeom; -static Text_s TempText; -#endif - -#include "DATASET0.h" -#include "SET.h" -#include "FILESTREAM.h" -#include "DATAIO.h" -#include "DATAIO4.h" -#include "STRUTIL.h" -#include "AUXDATA.h" -#include "ARRLIST.h" -#include "STRLIST.h" -#include "ALLOC.h" -#include "DATASET.h" -#include "SYSTEM.h" -#include "Q_MSG.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -using namespace tecplot::strutil; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE -#endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#endif /* TECPLOTKERNEL */ - - -/* - * Multi-Purpose datafile header reader. This is designed so that - * not all parts of the header is loaded and so that the task of loading - * the header information is separated out from installing of that - * information into a dataset. - * - */ - -Boolean_t ReadDataFileHeader(FileStream_s *FileStream, - short IVersion, - Boolean_t ShowDataIOStatus, - EntIndex_t *NumZones, - EntIndex_t *NumVars, - SmInteger_t *NumCustomLabelSets, - char **DataSetTitle, - Text_s **BaseText, - Geom_s **BaseGeom, - StringList_pa **CustomLabelBase, - StringList_pa *UserRec, - AuxData_pa *DataSetAuxData, - Set_pa **IsVarCellCentered, /* Create an Array dim by zones */ - Boolean_t *HasText, - Boolean_t *HasGeoms, - ArrayList_pa *ZoneSpecList, - StringList_pa *VarNames, - ArrayList_pa *VarAuxDataList, /*[NumVars]*/ - Set_pa *IsRawFNAvailable, /* classic data only */ - LgIndex_t **FNNumBndryConns, /* classic data only */ - DataFileType_e *FileType) -{ - Boolean_t IsOk = TRUE; - Boolean_t SentError = FALSE; - double X1; - int Pass; - FileOffset_t InitialFilePosition; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(IVersion > 0); - REQUIRE(VALID_BOOLEAN(ShowDataIOStatus)); - REQUIRE(VALID_REF(NumZones)); - REQUIRE(VALID_REF(NumVars)); - REQUIRE(VALID_REF(DataSetTitle) || (DataSetTitle == NULL)); - REQUIRE(VALID_REF(BaseText) || (BaseText == NULL)); - REQUIRE(VALID_REF(BaseGeom) || (BaseGeom == NULL)); - REQUIRE(VALID_REF(HasText) || (HasText == NULL)); - REQUIRE(VALID_REF(HasGeoms) || (HasGeoms == NULL)); - REQUIRE(VALID_REF(ZoneSpecList) || (ZoneSpecList == NULL)); - REQUIRE(VALID_REF(VarNames) || (VarNames == NULL)); - REQUIRE(VALID_REF(NumCustomLabelSets) || (NumCustomLabelSets == NULL)); - REQUIRE(VALID_REF(UserRec) || (UserRec == NULL)); - REQUIRE((VALID_REF(DataSetAuxData) && - (VALID_REF(*DataSetAuxData) || *DataSetAuxData == NULL)) || - DataSetAuxData == NULL); - REQUIRE((VALID_REF(VarAuxDataList) && - (VALID_REF(*VarAuxDataList) || *VarAuxDataList == NULL)) || - VarAuxDataList == NULL); - REQUIRE(VALID_REF(IsVarCellCentered) || (IsVarCellCentered == NULL)); - REQUIRE((VALID_REF(CustomLabelBase) && VALID_REF(NumCustomLabelSets)) || (CustomLabelBase == NULL)); - REQUIRE(VALID_REF(IsRawFNAvailable) || (IsRawFNAvailable == NULL)); - REQUIRE(VALID_REF(FNNumBndryConns) || (FNNumBndryConns == NULL)); - REQUIRE(VALID_REF(FileType) || (FileType == NULL)); - - if (DataSetTitle) - *DataSetTitle = NULL; - if (BaseText) - *BaseText = NULL; - if (BaseGeom) - *BaseGeom = NULL; - if (HasText) - *HasText = FALSE; - if (HasGeoms) - *HasGeoms = FALSE; - if (ZoneSpecList) - *ZoneSpecList = NULL; - if (VarNames) - *VarNames = NULL; - if (NumCustomLabelSets) - *NumCustomLabelSets = 0; - if (CustomLabelBase) - *CustomLabelBase = NULL; - if (DataSetAuxData != NULL) - { - /* - * Note unlike most of the other output only parameters that we nullify, - * DataSetAuxData is both an input and output parameter therefore we do - * not nullify it. The CHECK is here for clarity. - */ - CHECK(VALID_REF(*DataSetAuxData) || *DataSetAuxData == NULL); - } - if (VarAuxDataList != NULL) - { - /* - * Note unlike most of the other output only parameters that we nullify, - * VarAuxDataList is both an input and output parameter therefore we do - * not nullify it. The CHECK is here for clarity. - */ - CHECK(VALID_REF(*VarAuxDataList) || *VarAuxDataList == NULL); - } - if (UserRec) - *UserRec = NULL; - if (IsVarCellCentered) - *IsVarCellCentered = NULL; - - if (IsRawFNAvailable) - *IsRawFNAvailable = NULL; - - if (FNNumBndryConns) - *FNNumBndryConns = NULL; - - if (FileType) - *FileType = DataFileType_Full; - - /* - * Pass 1 is used only to count up the number of zones and custom label sets, - * Also determine if there are any preset zone colors. - */ - - InitialFilePosition = TP_FTELL(FileStream->File); - - for (Pass = 1; IsOk && (Pass <= 2); Pass++) - { - if (Pass == 2) - { - if (TP_FSEEK(FileStream->File, InitialFilePosition, SEEK_SET) != 0) - IsOk = FALSE; - - if (IsOk && (*NumZones > 0 && ZoneSpecList != NULL && *ZoneSpecList == NULL)) - { - *ZoneSpecList = ArrayListAlloc(*NumZones, ArrayListType_VoidPtr, - ZoneOrVarListAdjustCapacityRequest, 0); - IsOk = (*ZoneSpecList != NULL); - } - if (IsOk && (CustomLabelBase != NULL && - *CustomLabelBase == NULL && - *NumCustomLabelSets > 0)) - { - *CustomLabelBase = ALLOC_ARRAY(*NumCustomLabelSets, StringList_pa, "CustomLabel Sets"); - IsOk = (*CustomLabelBase != NULL); - if (IsOk) - { - SmInteger_t N; - for (N = 0; N < *NumCustomLabelSets; N++) - (*CustomLabelBase)[N] = NULL; - } - } - if (IsOk && (UserRec != NULL && *UserRec == NULL)) - { - *UserRec = StringListAlloc(); - IsOk = (Boolean_t)(*UserRec != NULL); - } - if (IsOk && (DataSetAuxData != NULL && *DataSetAuxData == NULL)) - { - *DataSetAuxData = AuxDataAlloc(); - IsOk = (Boolean_t)(*DataSetAuxData != NULL); - } - if (IsOk && (VarAuxDataList != NULL && *VarAuxDataList == NULL) && *NumVars > 0) - { - *VarAuxDataList = ArrayListAlloc(0, ArrayListType_VoidPtr, - ZoneOrVarListAdjustCapacityRequest, 0); - IsOk = (*VarAuxDataList != NULL && - ArrayListSetVoidPtr(*VarAuxDataList, *NumVars - 1, NULL)); - } - if (IsOk && - (*NumZones > 0) && - (IsVarCellCentered != NULL) && - (*IsVarCellCentered == NULL)) - { - /* - * First construct the array of sets... - */ - *IsVarCellCentered = ALLOC_ARRAY(*NumZones, Set_pa, "Array of IsVarCellCentered sets"); - if (*IsVarCellCentered) - { - EntIndex_t Z; - for (Z = 0; IsOk && (Z < *NumZones); Z++) - { - /* - * Now allocate a set for each zone - */ - (*IsVarCellCentered)[Z] = AllocSet(FALSE); - IsOk = (Boolean_t)((*IsVarCellCentered)[Z] != NULL); - } - } - else - IsOk = FALSE; - } - if (IsOk && *NumZones > 0 && IsRawFNAvailable != NULL) - { - *IsRawFNAvailable = AllocSet(FALSE); - IsOk = (*IsRawFNAvailable != NULL); - } - if (IsOk && *NumZones > 0 && FNNumBndryConns != NULL) - { - *FNNumBndryConns = ALLOC_ARRAY(*NumZones, LgIndex_t, "Array of FNNumBndryConns"); - IsOk = (*FNNumBndryConns != NULL); - if (IsOk) - for (LgIndex_t i = 0; i < *NumZones; i++) - (*FNNumBndryConns)[i] = 0; - } - } - - if (NumCustomLabelSets != NULL) - *NumCustomLabelSets = 0; - - EntIndex_t TotalNumZones = *NumZones; /* ...only meaningful for pass 2 */ - - *NumZones = 0; - *NumVars = 0; - - if (IsOk) - { - char *S = NULL; - int INumVars; - - IsOk = ReadInDataFileTypeTitleAndVarNames(FileStream, - IVersion, - ((Pass == 2) ? &S : (char **)NULL), - ((Pass == 2) ? FileType : (DataFileType_e *)NULL), - &INumVars, - ((Pass == 2) ? VarNames : (StringList_pa *)NULL)); - - if (IsOk) - *NumVars = (EntIndex_t)INumVars; - - if ((Pass == 2) && S && IsOk && DataSetTitle) - *DataSetTitle = S; - else if (S != NULL) - FREE_ARRAY(S, "data set title"); - } - - if (IsOk) - { -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no dialog feedback */ - LgIndex_t NumGeoms = 0; - LgIndex_t NumTexts = 0; -#endif - - if (IsOk) - X1 = GetNextValue(FileStream, FieldDataType_Float, 0.0, 1000.0, &IsOk); - - while (IsOk && (X1 != EndHeaderMarker)) - { - if (X1 == ZoneMarker) - { - ZoneSpec_s *ZoneSpec = ZoneSpecAlloc(); - Boolean_t OkToLoad = (Pass == 2 && - IsVarCellCentered != NULL); - IsOk = (ZoneSpec != NULL); - if (IsOk) - { - Boolean_t LocalIsRawFNAvailable; - LgIndex_t LocalFNNumBndryConns; - IsOk = ReadInZoneHeader(FileStream, IVersion, ZoneSpec, - OkToLoad ? (*IsVarCellCentered)[*NumZones] : NULL, - *NumVars, &LocalIsRawFNAvailable, - &LocalFNNumBndryConns); - if (IsOk && OkToLoad && IsRawFNAvailable != NULL) - { - if (LocalIsRawFNAvailable) - IsOk = AddToSet(*IsRawFNAvailable, *NumZones, FALSE); - } - if (IsOk && OkToLoad && FNNumBndryConns != NULL) - (*FNNumBndryConns)[*NumZones] = LocalFNNumBndryConns; - } - - if (IsOk && - ZoneSpecList != NULL && - Pass == 2) - { - IsOk = (ZoneSpec->ParentZone == BAD_SET_VALUE || - (ZoneSpec->ParentZone != *NumZones && - (0 <= ZoneSpec->ParentZone && ZoneSpec->ParentZone < TotalNumZones))); - if (IsOk) - { - ArrayListItem_u CurZoneSpecItem; - CurZoneSpecItem.VoidPtr = (void *)ZoneSpec; - ArrayListSetItem(*ZoneSpecList, *NumZones, - CurZoneSpecItem, - ZoneSpecItemDestructor, 0); - } - else - { - if (ZoneSpec->ParentZone == *NumZones) - ErrMsg(translate("Parent zone assignment for zone %d " - "may not be self referencing."), - *NumZones + 1); - else - ErrMsg(translate("Parent zone assignment for zone %d " - "must be to an existing zone within the datafile."), - *NumZones + 1); - ZoneSpecDealloc(&ZoneSpec); - SentError = TRUE; - } - } - else - ZoneSpecDealloc(&ZoneSpec); - - if (IsOk) - (*NumZones)++; - if (*NumZones > MaxNumZonesOrVars) - { - ErrMsg(translate("Exceeding Tecplot's current zone limit of %d. " - "Reduce the number of zones being loaded."), MaxNumZonesOrVars); - IsOk = FALSE; - SentError = TRUE; - } - } - else if (X1 == GeomMarker) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else - IsOk = ReadInGeometry(FileStream, - IVersion, - FALSE, - &TempGeom, - 5000); -#endif - if (IsOk) - { - if (Pass == 1) - { - if (HasGeoms) - *HasGeoms = TRUE; - } -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - } -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#endif - } - else if (X1 == TextMarker) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else - IsOk = ReadInText(FileStream, - IVersion, - FALSE, - &TempText, - 200); -#endif - if (IsOk) - { - if (Pass == 1) - { - if (HasText) - *HasText = TRUE; - } -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - } -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#endif - } - else if (X1 == CustomLabelMarker) - { - Boolean_t OkToLoad; - - OkToLoad = (Pass == 2) && - NumCustomLabelSets && - (*NumCustomLabelSets < MaxCustomLabelSets) && - CustomLabelBase; - - IsOk = ReadInCustomLabels(FileStream, - IVersion, - OkToLoad, - (OkToLoad ? &(*CustomLabelBase)[*NumCustomLabelSets] : NULL)); - if (IsOk && NumCustomLabelSets) - (*NumCustomLabelSets)++; - } - else if (X1 == UserRecMarker) - { - Boolean_t OkToLoad; - char *CurUserRec = NULL; - - OkToLoad = (Boolean_t)((Pass == 2) && UserRec); - - IsOk = ReadInUserRec(FileStream, - IVersion, - 500, - OkToLoad ? &CurUserRec : (char **)NULL); - if (IsOk && OkToLoad) - IsOk = StringListAppendString(*UserRec, CurUserRec); - if (CurUserRec) - FREE_ARRAY(CurUserRec, "temp user rec"); - CurUserRec = NULL; - } - else if (X1 == DataSetAuxMarker) - { - Boolean_t OkToLoad; - CHECK(IVersion >= 101); - OkToLoad = (Pass == 2 && - DataSetAuxData != NULL); - IsOk = ReadInAuxData(FileStream, IVersion, - OkToLoad ? *DataSetAuxData : NULL); - if (!IsOk) - { - ErrMsg(translate("Invalid DATASETAUXDATA record in binary datafile")); - SentError = TRUE; - } - } - else if (X1 == VarAuxMarker) - { - Boolean_t OkToLoad; - LgIndex_t VarNum; - CHECK(IVersion >= 102); - OkToLoad = (Pass == 2 && - VarAuxDataList != NULL); - VarNum = GetIoFileInt(FileStream, IVersion, 0, *NumVars - 1, &IsOk); - if (IsOk) - { - AuxData_pa VarAuxData; - if (OkToLoad) - { - VarAuxData = (AuxData_pa)ArrayListGetVoidPtr(*VarAuxDataList, VarNum); - if (VarAuxData == NULL) - { - VarAuxData = AuxDataAlloc(); - IsOk = (VarAuxData != NULL && - ArrayListSetVoidPtr(*VarAuxDataList, VarNum, VarAuxData)); - } - } - else - VarAuxData = NULL; - - IsOk = IsOk && ReadInAuxData(FileStream, IVersion, VarAuxData); - if (!IsOk) - { - ErrMsg(translate("Invalid VARAUXDATA record in binary datafile")); - SentError = TRUE; - } - } - else - { - ErrMsg(translate("Invalid VARAUXDATA variable number association")); - SentError = TRUE; - } - } - else - IsOk = FALSE; - if (IsOk) - X1 = GetNextValue(FileStream, FieldDataType_Float, 0.0, 1000.0, &IsOk); - } - } - } - - /* - * Old plt files that did not contain data still contained variable name - * definitions in the header. This is no longer necessary and in fact can - * cause confusion in the data read options dialog. If the number of zones - * in the datafile is zero set the number of variables to 0 and dealloc the - * variable name list. - */ - - if (IsOk && (*NumZones == 0) && (*NumVars > 0)) - { - *NumVars = 0; - if (VarNames && *VarNames) - { - StringListDealloc(VarNames); - } - } - - - if (!IsOk) - { - if (ZoneSpecList && *ZoneSpecList) - ArrayListDealloc(ZoneSpecList, ZoneSpecItemDestructor, 0); - if (DataSetTitle && *DataSetTitle) - { - FREE_ARRAY(*DataSetTitle, "DataSetTitle"); - *DataSetTitle = NULL; - } -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - if (VarNames && *VarNames) - { - StringListDealloc(VarNames); - } -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - if (UserRec && *UserRec) - StringListDealloc(UserRec); - } - - /* If there was an error, get rid of the auxiliary data list. */ - if ((DataSetAuxData != NULL && *DataSetAuxData != NULL) && - (!IsOk)) - AuxDataDealloc(DataSetAuxData); - - if (!IsOk && !SentError) - ErrMsg(translate("Invalid header in binary datafile")); - - /* - * NOTE: Do not close the file. Some calling functions will continue - * to read from this point on. - */ - - ENSURE((VarNames == NULL) || (*VarNames == NULL) || StringListValid(*VarNames)); - ENSURE(IMPLICATION(UserRec != NULL, - (*UserRec == NULL || - StringListValid(*UserRec)))); - ENSURE(IMPLICATION(DataSetAuxData != NULL, - (*DataSetAuxData == NULL || - VALID_REF(*DataSetAuxData)))); - return (IsOk); -} - - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - - -Boolean_t OpenBinaryFileAndCheckMagicNumber(FileStream_s **FileStream, - char *FName, - FileOffset_t StartOffset, - short *IVersion) -{ - Boolean_t Result = TRUE; - REQUIRE(VALID_REF(FileStream)); - REQUIRE(*FileStream == NULL); - REQUIRE(VALID_REF(FName)); - REQUIRE(StartOffset >= 0); - REQUIRE(VALID_REF(IVersion)); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else - FILE *File = TP_FOPEN(FName, "rb"); - if (File == NULL) - Result = FALSE; -#endif - if (Result) - { - *FileStream = FileStreamAlloc(File, TRUE); - Result = (*FileStream != NULL); - } - Result = Result && (TP_FSEEK((*FileStream)->File, StartOffset, SEEK_SET) == 0); - if (Result) - { - *IVersion = GetInputVersion(*FileStream); - /* - * After version 71 we started listing individual valid - * versions. Before that time we just listed ranges. Also, - * note that versions 72, 73, and 74 were invalid. - */ - Result = (/* past valid plt file version ranges follow: */ - (40 <= *IVersion && *IVersion <= 71) || - (*IVersion == 75) || - (100 <= *IVersion && *IVersion <= TecplotBinaryFileVersion)); - - /* - * This check is put here to make sure that the above code gets visited - * when the TecplotBinaryFileVersion number changes. When the version - * changes the "past valid plt file version ranges" above and the number - * compared to the TecplotBinaryFileVersion below may need to be - * adjusted such as when we skip a consecutive number as we did between - * version 71 and 75, and between 75 and 100. - */ - CHECK(TecplotBinaryFileVersion == 112); - } - - ENSURE(VALID_BOOLEAN(Result)); - return (Result); -} - - - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ - #if !defined NO_ASSERTS - #endif - #if !defined NO_ASSERTS - #endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#if !defined ENGINE /* TODO(RMS)-M 12/13/2005: ENGINE-P2 - no status feedback */ -#endif -#if !defined ENGINE /* TODO(RMS)-H 12/12/2005: ENGINE: refactor to use just the Interrupted flag as-is */ -#else -#endif -#if 0 /* we changed this behavior... not sure when */ -#endif -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataio4.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataio4.cpp deleted file mode 100644 index 18374dfe7b..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataio4.cpp +++ /dev/null @@ -1,3357 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define DATAIO4MODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "ALLOC.h" - -#include "AUXDATA.h" -#include "DATASET.h" -#include "FILESTREAM.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#include "GEOM2.h" -#include "GEOM.h" -#include "INPUT.h" -#include "SET.h" -#include "TEXT.h" -#include "DATAIO4.h" -#include "DATASET0.h" - -#include "STRUTIL.h" -#include "ARRLIST.h" -#include "STRLIST.h" -#include "Q_MSG.h" - -#if defined IRIS -#include -#endif - -using namespace tecplot::strutil; - -#if !defined(TECPLOTKERNEL) && defined(MSWIN) -# pragma warning(disable : 4244) -#endif - -/*END HEADER*/ - -/* - * This module contains mostly low level i/o functions. - */ - -#if defined DECALPHA || defined COMPAQALPHA -#define _IEEE_FP_INEXACT -#define _IEEE_FP -#endif - -#if defined SUN41 -#define SEEK_SET 0 -#define SEEK_CUR 1 -#define SEEK_END 2 -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/********************************************************************** - ********************************************************************** - ********************** INPUT ************************** - ********************************************************************** - **********************************************************************/ - -static char FilterFloatChar(float X) -{ - char C; - if (((X >= 32.0) && (X <= 127.0)) || - ((X >= 160.0) && (X <= 255.0)) || - (X == 0.0)) - C = (char)X; - else - C = '?'; - return (C); -} - - -double GetNextValue(FileStream_s *FileStream, - FieldDataType_e FieldDataType, - double VMin, - double VMax, - Boolean_t *IsOk) -{ - double X = 0.0; - - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - REQUIRE(!(*IsOk) || VALID_FIELD_DATA_TYPE(FieldDataType)); - REQUIRE(!(*IsOk) || VALID_REF(FileStream)); - - if (*IsOk) - { - switch (FieldDataType) - { - case FieldDataType_Float : - { - float XX; - - *IsOk = (TP_FREAD(&XX, 4, 1, FileStream->File) == 1); - - if (!FileStream->IsByteOrderNative) - REVERSE_4_BYTES(&XX); - - if (*IsOk) - X = XX; - else - X = 0.0; - } break; - case FieldDataType_Double : - { - double XX; - - *IsOk = (TP_FREAD(&XX, sizeof(double), 1, FileStream->File) == 1); - if (!FileStream->IsByteOrderNative) - REVERSE_8_BYTES(&XX); - - if (*IsOk) - X = XX; - else - X = 0.0; - } break; - case FieldDataType_Int32 : - { - Int32_t L; - *IsOk = (TP_FREAD(&L, sizeof(Int32_t), 1, FileStream->File) == 1); - if (!FileStream->IsByteOrderNative) - REVERSE_4_BYTES(&L); - if (*IsOk) - X = (double)L; - } break; - case FieldDataType_Int16 : - { - Int16_t S; - *IsOk = (TP_FREAD(&S, sizeof(Int16_t), 1, FileStream->File) == 1); - if (!FileStream->IsByteOrderNative) - REVERSE_2_BYTES(&S); - if (*IsOk) - X = (double)S; - } break; - case FieldDataType_Byte : - { - Byte_t B; - *IsOk = (TP_FREAD(&B, sizeof(Byte_t), 1, FileStream->File) == 1); - if (*IsOk) - X = (double)B; - } break; - case FieldDataType_Bit : - { - /* - * Important note: - * Reading bit data a value at a time is only valid for a - * single bit value. If the file contains a block of more than - * one bit value and you attempt to read it a bit at a time it - * will not work as Tecplot does not buffer the read. In order - * to read a block of bits you must perform a block read. - */ - Byte_t B; - *IsOk = (TP_FREAD(&B, sizeof(Byte_t), 1, FileStream->File) == 1); - if (*IsOk) - X = (double)(B & (Byte_t)01); - } break; - default: CHECK(FALSE); break; - } - - if (*IsOk) - { - if ((X < VMin) || (X > VMax)) - { - *IsOk = FALSE; - } - } - } - - return X; -} - - -LgIndex_t GetNextI(FileStream_s *FileStream, - Boolean_t *IsOk) -{ - LgIndex_t I = 0; - - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - REQUIRE(!(*IsOk) || (VALID_REF(FileStream) && VALID_REF(FileStream->File))); - - if (*IsOk) - { - Int32_t Int32Val; - *IsOk = (TP_FREAD((void *) & Int32Val, 4, 1, FileStream->File) == 1); - if (!FileStream->IsByteOrderNative) - REVERSE_4_BYTES(&Int32Val); - - I = Int32Val; - } - return I; -} - - -LgIndex_t GetIoFileInt(FileStream_s *FileStream, - short Version, - LgIndex_t IMin, - LgIndex_t IMax, - Boolean_t *IsOk) -{ - LgIndex_t I = 0; - - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - REQUIRE(!(*IsOk) || (0 < Version && Version <= TecplotBinaryFileVersion)); - REQUIRE(!(*IsOk) || (VALID_REF(FileStream) && VALID_REF(FileStream->File))); - REQUIRE(!(*IsOk) || IMin <= IMax); - - if (!(*IsOk)) - return (0); - - if (Version <= 63) - { - float X; - if (*IsOk) - { - X = (float)GetNextValue(FileStream, FieldDataType_Float, - (double)IMin - 1.0e-10, - (double)IMax + 1.0e-10, IsOk); - if (*IsOk) - { - if (ABS(X) < (float)MAXINDEX) - I = (LgIndex_t)X; - else - *IsOk = FALSE; - } - else - *IsOk = FALSE; - } - } - else - { - I = GetNextI(FileStream, IsOk); - } - - if ((I < IMin) || (I > IMax)) - *IsOk = FALSE; - - return (I); -} - -/** - * Basically this is "realloc" but apparently "realloc" doesn't behave reliably - * on all platforms. - */ -static Boolean_t ReallocString(char **String, - LgIndex_t NewLength) -{ - Boolean_t IsOk; - char *NewString; - - REQUIRE(VALID_REF(String)); - REQUIRE(*String == NULL || VALID_REF(*String)); - REQUIRE((*String != NULL && NewLength >= (LgIndex_t)strlen(*String)) || - (*String == NULL && NewLength >= 0)); - - NewString = ALLOC_ARRAY(NewLength + 1, char, "reallocated string"); - IsOk = (NewString != NULL); - if (IsOk) - { - if (*String == NULL) - { - NewString[0] = '\0'; - } - else - { - strcpy(NewString, *String); - FREE_ARRAY(*String, "old string"); - } - *String = NewString; - } - - ENSURE(VALID_BOOLEAN(IsOk)); - ENSURE(IMPLICATION(IsOk, VALID_REF(*String))); - return IsOk; -} - - -/** - * Reads a string from all versions of a binary plt file. - * - * param FileStream - * Open file stream positioned at the string to read. - * param IVersion - * Binary file version number. - * param MaxCharacters - * IVersion < 63 - * This value is exactly the number of characters (actually floats, each - * one representing a character's ordinal value) to read from the file. - * IVersion >= 63 and ProcessData == TRUE - * If non-zero, this value represents the largest string to be returned. - * In other words, larger strings are read from the file but an allocated - * string of up to MaxCharacters is returned. A zero value indicates that - * the string size is unlimited and determined only by the actual length - * of the string in the file. - * param TargetStr - * Pointer to hold the allocated string if ProcessData == TRUE. - * param ProcessData - * Indicates if the read string should be retrieved. - * - * return - * TRUE if the read was successful with an allocated string *TargetStr - * containing the string read (no larger than requested or necessary), - * FALSE otherwise. - */ -Boolean_t ReadInString(FileStream_s *FileStream, - short IVersion, - int MaxCharacters, - char **TargetStr, - Boolean_t ProcessData) -{ - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(0 < IVersion && IVersion <= TecplotBinaryFileVersion); - REQUIRE(IMPLICATION(IVersion < 63 || ProcessData, MaxCharacters >= 0)); - REQUIRE(IMPLICATION(ProcessData, VALID_REF(TargetStr))); - REQUIRE(VALID_BOOLEAN(ProcessData)); - - if (IVersion < 63) - { - /* - * One word per character. Read Exactly "MaxCharacters" number of words. - */ - float X; - - if (ProcessData) - { - *TargetStr = ALLOC_ARRAY(MaxCharacters + 1, char, "target string"); - IsOk = (*TargetStr != NULL); - } - - if (IsOk) - { - LgIndex_t I; - for (I = 0; IsOk && I < MaxCharacters; I++) - { - X = (float)GetNextValue(FileStream, FieldDataType_Float, 0.0, 127.0, &IsOk); - if (!IsOk) - break; - if (ProcessData) - (*TargetStr)[I] = FilterFloatChar(X); - } - if (ProcessData) - (*TargetStr)[I] = '\0'; - } - else - { - ErrMsg(translate("Cannot allocate memory for string during read", - "'string' meaning the computer science data type")); - } - } - else - { -#define MAX_STRBUFFER_LEN 4095 - static char StrBuffer[MAX_STRBUFFER_LEN+1]; - LgIndex_t StrBufferLen = 0; - LgIndex_t TargetStrLen = 0; - LgIndex_t I = 0; - LgIndex_t CharValue = 0; - - if (ProcessData) - *TargetStr = NULL; - - do - { - CharValue = GetIoFileInt(FileStream, IVersion, 0, 255, &IsOk); - if (IsOk && ProcessData) - { - /* massage the character if necessary */ - if ((CharValue < 32 && CharValue != '\0' && CharValue != '\n') || - (CharValue >= 128 && CharValue < 160)) - CharValue = ' '; - - /* - * if the limit is not exceded, stuff the - * character into the buffer - */ - if (CharValue != '\0' && - (I < MaxCharacters || MaxCharacters == 0)) - { - StrBuffer[StrBufferLen] = (char)CharValue; - StrBufferLen++; - } - - if (CharValue == '\0' || - StrBufferLen == MAX_STRBUFFER_LEN) - { - if (StrBufferLen != 0 || *TargetStr == NULL) - { - StrBuffer[StrBufferLen] = '\0'; - TargetStrLen += StrBufferLen; - IsOk = ReallocString(TargetStr, TargetStrLen); - if (IsOk) - strcat(*TargetStr, StrBuffer); - StrBufferLen = 0; /* reset the string buffer */ - } - } - } - - I++; - } - while (IsOk && (char)CharValue != '\0'); - - /* if we failed cleanup if necessary */ - if (!IsOk && - ProcessData && - *TargetStr != NULL) - { - FREE_ARRAY(*TargetStr, "failed read string"); - *TargetStr = NULL; - } - } - - ENSURE(IMPLICATION(ProcessData, - (VALID_REF(*TargetStr) || *TargetStr == NULL))); - ENSURE(VALID_BOOLEAN(IsOk)); - return (IsOk); -} - -/** - */ -static void ReadDoubleBlock(FileStream_s *FileStream, - Boolean_t DoRead, - double *Buffer, - LgIndex_t StartIndex, - LgIndex_t NumValues, - Boolean_t *IsOk) -{ - if (DoRead) - { - double *DPtr = Buffer + StartIndex; - *IsOk = (TP_FREAD(DPtr, sizeof(double), NumValues, FileStream->File) == (size_t)NumValues); - if (!FileStream->IsByteOrderNative && *IsOk) - { - LgIndex_t N; - for (N = 0; N < NumValues; N++) - REVERSE_8_BYTES(&DPtr[N]); - } - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumValues * sizeof(double), SEEK_CUR) == 0); -} - -/** - */ -static void ReadFloatBlock(FileStream_s *FileStream, - Boolean_t DoRead, - float *Buffer, - LgIndex_t StartIndex, - LgIndex_t NumValues, - Boolean_t *IsOk) -{ - if (DoRead) - { - float *FPtr = Buffer + StartIndex; - *IsOk = (TP_FREAD(FPtr, sizeof(float), NumValues, FileStream->File) == (size_t)NumValues); - if (!FileStream->IsByteOrderNative && *IsOk) - { - LgIndex_t N; - for (N = 0; N < NumValues; N++) - REVERSE_4_BYTES(&FPtr[N]); - } - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumValues * sizeof(float), SEEK_CUR) == 0); -} - - -/** - */ -static void ReadBitBlock(FileStream_s *FileStream, - Boolean_t DoRead, - Byte_t *Buffer, - LgIndex_t NumValues, - Boolean_t *IsOk) -{ - /* - * Do not allow reading of bit values if startindex is not 0. - * (This means geometries cannot use bit data. - */ - LgIndex_t NumBytes = (NumValues + 7) / 8; - if (DoRead) - { - *IsOk = (TP_FREAD(Buffer, - sizeof(Byte_t), - NumBytes, - FileStream->File) == (size_t)NumBytes); - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumBytes * sizeof(Byte_t), SEEK_CUR) == 0); -} - -/** - */ -void ReadByteBlock(FileStream_s *FileStream, - Boolean_t DoRead, - Byte_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk) -{ - if (DoRead) - { - *IsOk = (TP_FREAD(Buffer + StartIndex, - sizeof(Byte_t), - NumValues, - FileStream->File) == (size_t)NumValues); - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumValues * sizeof(Byte_t), SEEK_CUR) == 0); -} - - -/** - */ -void ReadInt16Block(FileStream_s *FileStream, - Boolean_t DoRead, - Int16_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk) -{ - if (DoRead) - { - Int16_t *IntPtr = Buffer + StartIndex; - *IsOk = (TP_FREAD(IntPtr, - sizeof(Int16_t), - NumValues, - FileStream->File) == (size_t)NumValues); - - if (!FileStream->IsByteOrderNative && *IsOk) - { - LgIndex_t N; - for (N = 0; N < NumValues; N++) - REVERSE_2_BYTES(&IntPtr[N]); - } - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumValues * sizeof(Int16_t), SEEK_CUR) == 0); -} - -/** - */ -void ReadInt16BlockToInt32(FileStream_s *FileStream, - Boolean_t DoRead, - Int32_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk) -{ - REQUIRE(VALID_REF(FileStream)); - REQUIRE(VALID_BOOLEAN(DoRead)); - REQUIRE(VALID_REF(Buffer)); - REQUIRE(StartIndex >= 0); - REQUIRE(NumValues >= 0); - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - - if (DoRead) - { - HgIndex_t EndIndex = StartIndex + NumValues; - for (HgIndex_t ValueIndex = StartIndex; *IsOk && ValueIndex < EndIndex; ValueIndex++) - { - Int16_t Value; - *IsOk = (TP_FREAD(&Value, sizeof(Int16_t), 1, FileStream->File) == 1); - if (!FileStream->IsByteOrderNative && *IsOk) - REVERSE_2_BYTES(&Value); - Buffer[ValueIndex] = (Int32_t)Value; - } - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumValues * sizeof(Int16_t), SEEK_CUR) == 0); -} - -/** - */ -void ReadInt32Block(FileStream_s *FileStream, - Boolean_t DoRead, - Int32_t *Buffer, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk) -{ - if (DoRead) - { - Int32_t *IntPtr = Buffer + StartIndex; - *IsOk = (TP_FREAD(IntPtr, - sizeof(Int32_t), - NumValues, - FileStream->File) == (size_t)NumValues); - - if (!FileStream->IsByteOrderNative && *IsOk) - { - LgIndex_t N; - for (N = 0; N < NumValues; N++) - REVERSE_4_BYTES(&IntPtr[N]); - } - } - else - *IsOk = (TP_FSEEK(FileStream->File, NumValues * sizeof(Int32_t), SEEK_CUR) == 0); -} - -/** - */ -void ReadPureBlock(FileStream_s *FileStream, - Boolean_t DoRead, - void *Buffer, - FieldDataType_e FieldDataType, - HgIndex_t StartIndex, - HgIndex_t NumValues, - Boolean_t *IsOk) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_BOOLEAN(DoRead)); - REQUIRE(!DoRead || VALID_REF(Buffer)); - REQUIRE(VALID_FIELD_DATA_TYPE(FieldDataType)); - REQUIRE(StartIndex >= 0); - REQUIRE(NumValues >= 0); - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - - switch (FieldDataType) - { - case FieldDataType_Float : - { - ReadFloatBlock(FileStream, - DoRead, - (float *)Buffer, - StartIndex, - NumValues, - IsOk); - } break; - case FieldDataType_Double : - { - ReadDoubleBlock(FileStream, - DoRead, - (double *)Buffer, - StartIndex, - NumValues, - IsOk); - } break; - case FieldDataType_Bit : - { - if (StartIndex != 0) - { - ErrMsg(translate("Internal Error: Attempt to read bit data at non-zero offset", - "see Tecplot User's manual for a definition of 'bit' data")); - *IsOk = FALSE; - } - else - ReadBitBlock(FileStream, - DoRead, - (Byte_t *)Buffer, - NumValues, - IsOk); - } break; - case FieldDataType_Byte : - { - ReadByteBlock(FileStream, - DoRead, - (Byte_t *)Buffer, - StartIndex, - NumValues, - IsOk); - } break; - case FieldDataType_Int16 : - { - ReadInt16Block(FileStream, - DoRead, - (Int16_t *)Buffer, - StartIndex, - NumValues, - IsOk); - } break; - case FieldDataType_Int32 : - { - ReadInt32Block(FileStream, - DoRead, - (Int32_t *)Buffer, - StartIndex, - NumValues, - IsOk); - } break; - case FieldDataType_IJKFunction : /* Not used yet */ - case FieldDataType_Int64 : /* Not used yet */ - default: CHECK(FALSE); break; - } - ENSURE(VALID_BOOLEAN(*IsOk)); -} - -/** - */ -void ReadBlock(FileStream_s *FileStream, - FieldData_pa FieldData, - Boolean_t DoRead, - FieldDataType_e FieldDataTypeInFile, - HgIndex_t StartIndex, - HgIndex_t EndIndex, - Boolean_t *IsOk) -{ - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - REQUIRE(IMPLICATION(IsOk, VALID_REF(FileStream))); - REQUIRE(IMPLICATION(IsOk, VALID_FIELD_DATA_TYPE(FieldDataTypeInFile))); - REQUIRE(VALID_BOOLEAN(DoRead)); - REQUIRE(IMPLICATION(DoRead, VALID_REF(FieldData))); - - /* - * Bit data is packed into bytes. Since Tecplot doesn't buffer reads it can - * not perform bit by bit value reads and therefore must only perform block - * reads of bit data. - */ - Boolean_t ReadByBlock = IMPLICATION(DoRead, GetFieldDataType(FieldData) == FieldDataTypeInFile); - REQUIRE(ReadByBlock || (FieldDataTypeInFile != FieldDataType_Bit)); - - if (*IsOk) - { - LgIndex_t NumValues = EndIndex - StartIndex + 1; - if (ReadByBlock) - { - void *data_array; - if (DoRead) - data_array = GetFieldDataVoidPtr(FieldData); - else - data_array = NULL; - ReadPureBlock(FileStream, - DoRead, - data_array, - FieldDataTypeInFile, - StartIndex, - NumValues, - IsOk); - } - else - { - LgIndex_t N; - for (N = 0; *IsOk && (N < NumValues); N++) - { - double D = GetNextValue(FileStream, FieldDataTypeInFile, -LARGEDOUBLE, LARGEDOUBLE, IsOk); - if (DoRead) - SetFieldValue(FieldData, N + StartIndex, D); - } - } - } -} - -/** - */ -void ReadClassicOrderedCCBlock(FileStream_s *DataFileStream, - FieldData_pa FieldData, - FieldDataType_e FieldDataTypeInFile, - LgIndex_t NumIPtsInFile, - LgIndex_t NumJPtsInFile, - LgIndex_t NumKPtsInFile, - Boolean_t *IsOk) -{ - REQUIRE(IMPLICATION(*IsOk, VALID_REF(DataFileStream))); - REQUIRE(IMPLICATION(*IsOk, VALID_FIELD_DATA_TYPE(FieldDataTypeInFile))); - REQUIRE(VALID_REF(FieldData)); - REQUIRE(NumIPtsInFile >= 0); - REQUIRE(NumJPtsInFile >= 0); - REQUIRE(NumKPtsInFile >= 0); - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - - if (*IsOk) - { - LgIndex_t J, K; - LgIndex_t NumIJPts = NumIPtsInFile * NumJPtsInFile; - LgIndex_t IEnd = MAX(NumIPtsInFile - 1, 1); - LgIndex_t JEnd = MAX(NumJPtsInFile - 1, 1); - LgIndex_t KEnd = MAX(NumKPtsInFile - 1, 1); - LgIndex_t NumValues = (IEnd * JEnd * KEnd); - Boolean_t IsLinear = ((NumJPtsInFile == 1 && NumKPtsInFile == 1) || - (NumIPtsInFile == 1 && NumKPtsInFile == 1) || - (NumIPtsInFile == 1 && NumJPtsInFile == 1)); - if (IsLinear) - ReadBlock(DataFileStream, FieldData, TRUE, FieldDataTypeInFile, - 0, NumValues - 1, IsOk); - else - for (K = 0; K < KEnd && IsOk; K++) - for (J = 0; J < JEnd && IsOk; J++) - { - LgIndex_t CellIndex = 0 + (J * NumIPtsInFile) + (K * NumIJPts); - ReadBlock(DataFileStream, FieldData, TRUE, FieldDataTypeInFile, - CellIndex, CellIndex + IEnd - 1, IsOk); - } - } - - ENSURE(VALID_BOOLEAN(*IsOk)); -} - -/** - */ -static void AdjustCustomColor(short IVersion, - ColorIndex_t *BColor) -{ - REQUIRE(0 < IVersion && IVersion <= TecplotBinaryFileVersion); - REQUIRE(VALID_REF(BColor)); - - if ((IVersion < 70) && (*BColor >= 15) && (*BColor <= 22)) - *BColor -= 7; -} - - -/* - * ReadInDataFileTypeTitleAndVarNames replaces ReadInDataFileTitleAndVarNames - * and reads in the filetype as well in files with version >= 109. - */ -Boolean_t ReadInDataFileTypeTitleAndVarNames(FileStream_s *FileStream, - short IVersion, - char **DataSetTitle, - DataFileType_e *FileType, - int *NumVars, - StringList_pa *VarNames) -{ - EntIndex_t CurVar; - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(0 < IVersion && IVersion <= TecplotBinaryFileVersion); - REQUIRE(VALID_REF(DataSetTitle) || (DataSetTitle == NULL)); - REQUIRE(VALID_REF(FileType) || (FileType == NULL)); - REQUIRE(VALID_REF(NumVars)); - REQUIRE(VALID_REF(VarNames) || (VarNames == NULL)); - - *NumVars = 0; - if (DataSetTitle) - *DataSetTitle = NULL; - if (IVersion >= 109) - { - if (FileType) - *FileType = (DataFileType_e)GetIoFileInt(FileStream, - IVersion, - 0, - DataFileType_Solution, - &IsOk); - else - GetIoFileInt(FileStream, - IVersion, - 0, - DataFileType_Solution, - &IsOk); - } - if (ReadInString(FileStream, - IVersion, - ((IVersion < 63) ? 80 : MaxChrsDatasetTitle), - DataSetTitle, - (Boolean_t)(DataSetTitle != NULL))) - { - if (DataSetTitle) - TrimLeadAndTrailSpaces(*DataSetTitle); - *NumVars = GetIoFileInt(FileStream, IVersion, 0, MAXZONEMAP, &IsOk); - } - else - IsOk = FALSE; - - if (IsOk && (*NumVars > MaxNumZonesOrVars)) - { - ErrMsg(translate("Too many variables")); - IsOk = FALSE; - } - - if (IsOk && VarNames) - { - if (*NumVars > 0) - { - /* allocate a string list filled with NULL's */ - *VarNames = StringListAlloc(); - IsOk = (*VarNames != NULL); - if (IsOk) - IsOk = StringListSetString(*VarNames, *NumVars - 1, NULL); - - if (!IsOk) - { - if (*VarNames != NULL) - StringListDealloc(VarNames); - ErrMsg(translate("Out of space while allocating var names")); - } - } - } - - for (CurVar = 0; IsOk && (CurVar < *NumVars); CurVar++) - { - char *VName = NULL; - - IsOk = ReadInString(FileStream, - IVersion, - ((IVersion < 63) ? 5 : MaxChrsVarName), - VarNames ? &VName : NULL, - (Boolean_t)(VarNames != NULL)); - if (IsOk && VarNames) - { - if (VName == NULL) - { - /* NULL variable names are converted to empty names */ - VName = ALLOC_ARRAY(1, char, "empty variable name"); - strcpy(VName, ""); - } - TrimLeadAndTrailSpaces(VName); - - /* - * variables are not allowed to have litteral new line characters - * within them but they can sneek in from ASCII data files so - * convert any to their appropriate two character representation - */ - IsOk = ReplaceNewlineWithBackslashN(&VName); - - IsOk = IsOk && StringListSetString(*VarNames, CurVar, VName); - if (VName != NULL) - FREE_ARRAY(VName, "variable name"); - } - - if (!IsOk) - { - if (VarNames && *VarNames) - StringListDealloc(VarNames); - ErrMsg(translate("Out of space while allocating variable names")); - } - } - ENSURE(VALID_BOOLEAN(IsOk)); - return (IsOk); -} - - - - -/** - */ -static Boolean_t ReadInPresetZoneColor(FileStream_s *FileStream, - short IVersion, - ZoneSpec_s *ZoneSpec) -{ - Boolean_t IsOk = TRUE; - LgIndex_t ZoneColor; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(0 < IVersion && IVersion <= TecplotBinaryFileVersion); - REQUIRE(VALID_REF(ZoneSpec)); - - ZoneColor = GetIoFileInt(FileStream, IVersion, -1, LastBasicColor, &IsOk); - if (IsOk) - { - if (VALID_BASIC_COLOR(ZoneColor)) - { - ZoneSpec->ZoneLoadInfo.PresetZoneColor = (EntIndex_t)ZoneColor; - AdjustCustomColor(IVersion, &ZoneSpec->ZoneLoadInfo.PresetZoneColor); - } - else if (ZoneColor != -1) - IsOk = FALSE; - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - */ -static void ConvertCommonTimeToSolutionTime(ZoneSpec_s *ZoneSpec) -{ - REQUIRE(VALID_REF(ZoneSpec)); - REQUIRE(ZoneSpec->AuxData == NULL || VALID_REF(ZoneSpec->AuxData)); - - LgIndex_t ItemIndex; - if (ZoneSpec->AuxData != NULL && - AuxDataGetItemIndex(ZoneSpec->AuxData, AuxData_Common_Time, &ItemIndex)) - { - const char *SameName; - ArbParam_t Value; - AuxDataType_e Type; - Boolean_t Retain; - - AuxDataGetItemByIndex(ZoneSpec->AuxData, ItemIndex, - &SameName, &Value, &Type, &Retain); - CHECK(ustrcmp(AuxData_Common_Time, SameName) == 0); - CHECK(Type == AuxDataType_String); - - char *EndPtr = NULL; - double SolutionTime = strtod((const char *)Value, &EndPtr); - if (EndPtr != (char *)Value) - { - /* we only allow white space to trail a value */ - while (isspace(*EndPtr)) - EndPtr++; - } - if (EndPtr != (char *)Value && *EndPtr == '\0') - { - ZoneSpec->SolutionTime = SolutionTime; - ZoneSpec->StrandID = STRAND_ID_PENDING; - AuxDataDeleteItemByIndex(ZoneSpec->AuxData, ItemIndex); - } - } -} - -/* - * Pass1 for a zone reads in and initializes the zone structures. - * These structures are released later if the user elects to not read them - * in. - */ -Boolean_t ReadInZoneHeader(FileStream_s *FileStream, - short IVersion, - ZoneSpec_s *ZoneSpec, - Set_pa IsVarCellCentered, - EntIndex_t NumVars, - Boolean_t *IsRawFNAvailable, - LgIndex_t *FNNumBndryConns) -{ - EntIndex_t Var; - Boolean_t IsOk = TRUE; - LgIndex_t I1; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(0 < IVersion && IVersion <= TecplotBinaryFileVersion); - REQUIRE(VALID_REF(ZoneSpec)); - REQUIRE(IsVarCellCentered == NULL || VALID_REF(IsVarCellCentered)); - REQUIRE(NumVars >= 0); - REQUIRE(VALID_REF(IsRawFNAvailable)); - REQUIRE(VALID_REF(FNNumBndryConns)); - - SetZoneSpecDefaults(ZoneSpec); - - if (IsVarCellCentered != NULL) - { - /* assign default variable value location: nodal */ - ClearSet(IsVarCellCentered); - IsOk = ExpandSet(IsVarCellCentered, NumVars, FALSE); - } - - if (IsOk) - IsOk = ReadInString(FileStream, IVersion, - ((IVersion < 63) ? 10 : MaxChrsZnTitle), - &ZoneSpec->Name, - TRUE); - - if (IsOk && ZoneSpec->Name == NULL) - { - /* NULL zone names are converted to empty names */ - ZoneSpec->Name = ALLOC_ARRAY(1, char, "empty zone name"); - IsOk = (ZoneSpec->Name != NULL); - if (IsOk) - strcpy(ZoneSpec->Name, ""); - } - - if (IsOk) - TrimLeadAndTrailSpaces(ZoneSpec->Name); - - if (IVersion < 101) - { - Boolean_t IsZoneFinite; - DataFormat_e ZoneDataFormat; - - I1 = GetIoFileInt(FileStream, IVersion, 0, 3, &IsOk); - - if ((I1 < 0) || (I1 > 3)) - { - return (FALSE); - } - - ZoneDataFormat = (DataFormat_e)I1; - - IsZoneFinite = (ZoneDataFormat == DataFormat_FEPoint || - ZoneDataFormat == DataFormat_FEBlock); - - ZoneSpec->ZoneLoadInfo.IsInBlockFormat = (ZoneDataFormat == DataFormat_IJKBlock || - ZoneDataFormat == DataFormat_FEBlock); - - if (IVersion > 62) - IsOk = ReadInPresetZoneColor(FileStream, IVersion, ZoneSpec); - - if (IVersion < 60) - GetNextValue(FileStream, FieldDataType_Float, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); /* Old ZPlane Value */ - - if (IsOk) - { - ZoneSpec->NumPtsI = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->NumPtsJ = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - if (IVersion >= 60) - ZoneSpec->NumPtsK = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - else - ZoneSpec->NumPtsK = 1; - } - - if (IsOk) - { - /* If IMax,JMax, & KMax are all zero then this zone was "zombied" by - a partial read to make layout files align. */ - - if (!((ZoneSpec->NumPtsI == 0) && - (ZoneSpec->NumPtsJ == 0) && - (ZoneSpec->NumPtsK == 0)) && - ((ZoneSpec->NumPtsI <= 0) || - (ZoneSpec->NumPtsJ <= 0) || - (ZoneSpec->NumPtsK < 0) || - ((!IsZoneFinite && (ZoneSpec->NumPtsK == 0))))) - { - ErrMsg(translate("Datafile is corrupted")); - IsOk = FALSE; - } - - if (IsZoneFinite) - { - if (IVersion >= 61) - { - ZoneSpec->Type = (ZoneType_e)(ZoneSpec->NumPtsK + 1); - switch (ZoneSpec->Type) - { - case ZoneType_FETriangle: ZoneSpec->NumPtsK = 3; break; - case ZoneType_FEQuad: ZoneSpec->NumPtsK = 4; break; - case ZoneType_FETetra: ZoneSpec->NumPtsK = 4; break; - case ZoneType_FEBrick: ZoneSpec->NumPtsK = 8; break; - case ZoneType_FELineSeg: ZoneSpec->NumPtsK = 2; break; - default: - { - ErrMsg(translate("Datafile corrupted: Invalid element type for FE DataSet")); - IsOk = FALSE; - } - } - } - else - { - ZoneSpec->Type = ZoneType_FEQuad; - ZoneSpec->NumPtsK = 4; - } - } - else - { - ZoneSpec->Type = ZoneType_Ordered; - - ZoneSpec->ICellDim = ZoneSpec->NumPtsI - 1; - ZoneSpec->JCellDim = ZoneSpec->NumPtsJ - 1; - ZoneSpec->KCellDim = ZoneSpec->NumPtsK - 1; - } - } - - /* - * Raw and user defined boundary face neighbors connections were not in - * this or previous versions of the binary data files. - */ - *IsRawFNAvailable = FALSE; - *FNNumBndryConns = 0; - } - else - { - if (IsOk && (IVersion >= 107)) - { - ZoneSpec->ParentZone = GetIoFileInt(FileStream, IVersion, -1, MAXZONEMAP - 1, &IsOk); - if (!IsOk) - ErrMsg(translate("Invalid datafile: parent zone assignment must be to an existing zone within the same datafile.")); - } - - if (IsOk && (IVersion >= 106)) - { - /* Strand ID and solution time. Strand ID's of STRAND_ID_PENDING, -2, instruct Tecplot to generate strand ID's */ - ZoneSpec->StrandID = GetIoFileInt(FileStream, IVersion, -2, MAXZONEMAP - 1, &IsOk); - ZoneSpec->SolutionTime = GetNextValue(FileStream, FieldDataType_Double, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (!IsOk) - ErrMsg(translate("Invalid datafile: bad StrandID or SolutionTime")); - } - - /* preset zone color */ - IsOk = IsOk && ReadInPresetZoneColor(FileStream, IVersion, ZoneSpec); - - /* ZoneType */ - I1 = (ZoneType_e)GetIoFileInt(FileStream, IVersion, 0, 7, &IsOk); - switch (I1) - { - case 0: ZoneSpec->Type = ZoneType_Ordered; break; - case 1: ZoneSpec->Type = ZoneType_FELineSeg; break; - case 2: ZoneSpec->Type = ZoneType_FETriangle; break; - case 3: ZoneSpec->Type = ZoneType_FEQuad; break; - case 4: ZoneSpec->Type = ZoneType_FETetra; break; - case 5: ZoneSpec->Type = ZoneType_FEBrick; break; - case 6: ZoneSpec->Type = ZoneType_FEPolygon; break; - case 7: ZoneSpec->Type = ZoneType_FEPolyhedron; break; - default: - { - ErrMsg(translate("Invalid datafile: unknown zone type.")); - IsOk = FALSE; - } break; - } - - /* DataPacking (Always BLOCK starting with file version 112 so removed from binary format) */ - if (IVersion < 112) - ZoneSpec->ZoneLoadInfo.IsInBlockFormat = - ((DataPacking_e)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk) == DataPacking_Block); - else - ZoneSpec->ZoneLoadInfo.IsInBlockFormat = TRUE; - - /* is the variable value location specified? */ - if ((Boolean_t)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk) && IsOk) - { - /* Variable Value Location foreach Var */ - for (Var = 0; Var < NumVars && IsOk; Var++) - { - if ((Boolean_t)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk) && IsOk && - IsVarCellCentered != NULL) - { - IsOk = (ZoneSpec->ZoneLoadInfo.IsInBlockFormat); - if (IsOk) - IsOk = AddToSet(IsVarCellCentered, Var, FALSE); - else - ErrMsg(translate("Invalid datafile: cell centered " - "variable must be in block format.", - "See the Tecplot User's Manual for a definition of 'block format'")); - } - } - } - - /* are raw face neighbors supplied in the data section? */ - if (IVersion >= 108 && IsOk) - { - *IsRawFNAvailable = GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - if (*IsRawFNAvailable && - (ZoneSpec->Type == ZoneType_Ordered || - ZoneSpec->Type == ZoneType_FELineSeg)) - { - IsOk = FALSE; - ErrMsg(translate("Invalid datafile: raw face neighbors may not be " - "supplied for ordered or FE line segment zones.")); - } - } - else - *IsRawFNAvailable = FALSE; - - /* - * If raw face neighbors are available in the datafile then Tecplot - * should not auto-assign the neighbors after the load. - */ - ZoneSpec->FNAreCellFaceNbrsSupplied = *IsRawFNAvailable; - - /* miscellaneous face neighbor info */ - *FNNumBndryConns = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - if (*FNNumBndryConns != 0) - ZoneSpec->FNMode = (FaceNeighborMode_e)GetIoFileInt(FileStream, IVersion, 0, 3, &IsOk); - - if (IVersion >= 108 && IsOk) - { - Boolean_t FaceNeighborsComplete = FALSE; - if (*FNNumBndryConns != 0 && - ZoneSpec->Type != ZoneType_Ordered) - FaceNeighborsComplete = (Boolean_t)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - - /* - * If the user defined face neighbors completely specify all the - * face neighbors then we don't want to auto-assign the cell face - * neighbors after loading. If they are not complete then leave the - * setting (as set above) dependent on the availability of the raw - * face neighbors. - * - * NOTE: - * This is a rather inefficient way to specify face neighbors. - */ - if (FaceNeighborsComplete) - ZoneSpec->FNAreCellFaceNbrsSupplied = TRUE; - } - - if (ZoneSpec->Type == ZoneType_Ordered) - { - /* IMax, JMax, KMax */ - ZoneSpec->NumPtsI = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->NumPtsJ = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->NumPtsK = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - /* - * if not a zombie zone (zombie zone: points in all dimensions are - * zero) then points in each direction must be specified - */ - if (IsOk && - !(ZoneSpec->NumPtsI == 0 && - ZoneSpec->NumPtsJ == 0 && - ZoneSpec->NumPtsK == 0) && - (ZoneSpec->NumPtsI == 0 || - ZoneSpec->NumPtsJ == 0 || - ZoneSpec->NumPtsK == 0)) - { - ErrMsg(translate("Invalid data file: incorrect specification of " - "I, J, or K points for ordered data set.")); - IsOk = FALSE; - } - } - else - { - ZoneSpec->NumPtsI = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - if (ZoneSpec->Type == ZoneType_FEPolygon || ZoneSpec->Type == ZoneType_FEPolyhedron) - { - ZoneSpec->NumPtsK = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); // ...NumFaces - if (IVersion >= 111) - { - ZoneSpec->NumFaceNodes = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->NumFaceBndryFaces = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->NumFaceBndryItems = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - } - } - else - { - switch (ZoneSpec->Type) - { - case ZoneType_FETriangle: ZoneSpec->NumPtsK = 3; break; - case ZoneType_FEQuad: ZoneSpec->NumPtsK = 4; break; - case ZoneType_FETetra: ZoneSpec->NumPtsK = 4; break; - case ZoneType_FEBrick: ZoneSpec->NumPtsK = 8; break; - case ZoneType_FELineSeg: ZoneSpec->NumPtsK = 2; break; - default : - { - ErrMsg(translate("Invalid data file: invalid element type for FE data set.")); - IsOk = FALSE; - } - } - } - ZoneSpec->NumPtsJ = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - - ZoneSpec->ICellDim = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->JCellDim = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - ZoneSpec->KCellDim = GetIoFileInt(FileStream, IVersion, 0, MAXINDEX, &IsOk); - } - - /* Zone Auxiliary Data indicator followed by Zone Auxiliary Data */ - for (I1 = GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - IsOk && I1 != 0; - I1 = GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk)) - { - if (ZoneSpec->AuxData == NULL) - ZoneSpec->AuxData = AuxDataAlloc(); - IsOk = (ZoneSpec->AuxData != NULL); - if (IsOk) - IsOk = ReadInAuxData(FileStream, IVersion, ZoneSpec->AuxData); - } - } - - /* - * Convert AuxZone's Common.Time from non-time aware data files to zone - * solution time if it exists. - */ - if (IVersion < 106 && IsOk) - ConvertCommonTimeToSolutionTime(ZoneSpec); - - ENSURE(VALID_BOOLEAN(IsOk)); - return (IsOk); -} - - - - -/* - * Pass1 for Custom labels simply acknowledges that a custom label was - * parsed and skips over the labels. - */ - -Boolean_t ReadInCustomLabels(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - StringList_pa *CustomLabelBase) -{ - LgIndex_t NumLabels; - short I; - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(IVersion > 0); - REQUIRE(VALID_BOOLEAN(OkToLoad)); - REQUIRE(!(OkToLoad) || VALID_REF(CustomLabelBase)); - - NumLabels = (short)GetIoFileInt(FileStream, IVersion, 1, MAXINDEX, &IsOk); - if (IsOk && NumLabels != 0 && OkToLoad) - { - *CustomLabelBase = StringListAlloc(); - IsOk = (*CustomLabelBase != NULL); - if (!IsOk) - ErrMsg(translate("Cannot allocate memory for Custom Labels.")); - } - - for (I = 0; IsOk && (I < NumLabels); I++) - { - char *TLabel = NULL; - - IsOk = ReadInString(FileStream, IVersion, - 1024, - &TLabel, - OkToLoad); - TrimLeadAndTrailSpaces(TLabel); - - if (IsOk && OkToLoad) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - IsOk = StringListAppendString(*CustomLabelBase, TLabel); - if (TLabel != NULL) - FREE_ARRAY(TLabel, "custom label"); - if (!IsOk) - ErrMsg(translate("Cannot allocate memory for Custom Label.")); - } - } - if (!IsOk) - ErrMsg(translate("Invalid custom axis label record in binary datafile")); - - ENSURE(VALID_BOOLEAN(IsOk)); - ENSURE(!(IsOk && NumLabels != 0 && OkToLoad) || - StringListValid(*CustomLabelBase)); - return IsOk; -} - - -Boolean_t ReadInUserRec(FileStream_s *FileStream, - short IVersion, - int MaxCharactersAllowed, - char **UserRec) /* NULL if to ignore */ -{ - if (!ReadInString(FileStream, IVersion, - MaxCharactersAllowed, - UserRec, - (Boolean_t)(UserRec != NULL))) - { - ErrMsg(translate("Invalid USERREC record in binary datafile")); - return (FALSE); - } - return (TRUE); -} - - -/** - */ -Boolean_t ReadInAuxData(FileStream_s *FileStream, - short IVersion, - AuxData_pa AuxData) -{ - Boolean_t IsOk; - Boolean_t DoCollectData; - char *AuxName = NULL; - LgIndex_t AuxValueType; - char *AuxValue = NULL; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(0 < IVersion && IVersion <= TecplotBinaryFileVersion); - REQUIRE(AuxData == NULL || VALID_REF(AuxData)); - - DoCollectData = (AuxData != NULL); - IsOk = ReadInString(FileStream, - IVersion, - MaxChrsVarName, /* ... seems reasonable */ - &AuxName, - DoCollectData); - if (IsOk && DoCollectData && !AuxDataIsValidName(AuxName)) - { - ErrMsg(translate("Invalid auxiliary data name.")); - IsOk = FALSE; - } - - /* - * currently only one value type is supported - * 0: AuxiliaryValueFormat_String - */ - if (IsOk) - { - AuxValueType = GetIoFileInt(FileStream, IVersion, 0, 0, &IsOk); - if (IsOk && (AuxValueType != (LgIndex_t)AuxDataType_String)) - { - ErrMsg(translate("Unsupported auxiliary data type")); - IsOk = FALSE; - } - } - - if (IsOk) - IsOk = ReadInString(FileStream, - IVersion, - MaxChrsAuxValueString, - &AuxValue, - DoCollectData); - if (IsOk && DoCollectData) - IsOk = AuxDataSetItem(AuxData, - AuxName, (ArbParam_t)AuxValue, - AuxDataType_String, - TRUE); /* Retain */ - - /* cleanup: auxiliary data made a copy of the name and value */ - if (AuxName != NULL) - FREE_ARRAY(AuxName, "data set auxiliary data item name"); - if (AuxValue != NULL) - FREE_ARRAY(AuxValue, "data set auxiliary data item value"); - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -static void GetZoneAttachment(FileStream_s *FileStream, - short IVersion, - EntIndex_t *Z, - Boolean_t *IsAttached, - Boolean_t *IsOk) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(Z)); - REQUIRE(VALID_REF(IsAttached)); - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - - if (IVersion >= 47) - *Z = (EntIndex_t)GetIoFileInt(FileStream, IVersion, -1, MAXZONEMAP, IsOk); - else - *Z = 0; - - if (IVersion < 70) - (*Z)--; - - if (*Z == -1) - { - *Z = 0; - *IsAttached = FALSE; - } - else - *IsAttached = TRUE; - - ENSURE(VALID_BOOLEAN(*IsAttached)); - ENSURE(VALID_BOOLEAN(*IsOk)); - ENSURE(*Z >= 0); -} - - -static Boolean_t ReadMacroFunctionCommand(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - char **MacroFunctionCommand) -{ - Boolean_t Result = FALSE; - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(IVersion > 0); - REQUIRE(VALID_BOOLEAN(OkToLoad)); - REQUIRE(VALID_REF(MacroFunctionCommand)); - - Result = ReadInString(FileStream, IVersion, 0, MacroFunctionCommand, OkToLoad); - - ENSURE(VALID_BOOLEAN(Result)); - return (Result); -} - - -/* - * Pass1 for Geometries simply acknowledges that a geometry was - * parsed and skips over the geometry. - */ -Boolean_t ReadInGeometry(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - Geom_s *Geom, - LgIndex_t MaxDataPts) -{ - LgIndex_t I; - LgIndex_t S; - FieldDataType_e FFT; - Boolean_t IsOk = TRUE; - TranslatedString ErrMsgString = translate("Invalid geometry record"); - - REQUIRE(VALID_REF(Geom)); - - if (IVersion < 70) - FFT = FieldDataType_Float; - else - FFT = FieldDataType_Double; - - if (IVersion < 101) - I = GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - else - I = GetIoFileInt(FileStream, IVersion, 0, 4, &IsOk); - - if (I == 0) - Geom->PositionCoordSys = CoordSys_Grid; - else if (I == 1) - Geom->PositionCoordSys = CoordSys_Frame; - /* - * I == 2 is for CoordSys_FrameOffset and is not used currently - * - * I == 3 is for the old window coordinate system - */ - else if (I == 4) - Geom->PositionCoordSys = CoordSys_Grid3D; - else - { - ErrMsgString = translate("Invalid geometry coordinate system"); - IsOk = FALSE; - } - - Geom->Scope = (Scope_e)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - if (IVersion >= 102) - Geom->DrawOrder = (DrawOrder_e)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - Geom->AnchorPos.Generic.V1 = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - Geom->AnchorPos.Generic.V2 = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (IVersion >= 45) - Geom->AnchorPos.Generic.V3 = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - else - Geom->AnchorPos.Generic.V3 = 0.0; - - GetZoneAttachment(FileStream, IVersion, &Geom->Zone, &Geom->AttachToZone, &IsOk); - - Geom->BColor = (SmInteger_t)GetIoFileInt(FileStream, IVersion, 0, 255, &IsOk); - - AdjustCustomColor(IVersion, &Geom->BColor); - - if (IVersion > 47) - { - Geom->FillBColor = (SmInteger_t)GetIoFileInt(FileStream, IVersion, 0, 255, &IsOk); - Geom->IsFilled = (Boolean_t)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - AdjustCustomColor(IVersion, &Geom->FillBColor); - } - else - { - Geom->FillBColor = Geom->BColor; - Geom->IsFilled = FALSE; - } - - if (IVersion < 101) - { - Geom->GeomType = (GeomType_e)GetIoFileInt(FileStream, IVersion, 0, 5, &IsOk); - if (Geom->GeomType == GeomType_LineSegs3D) - { - /* - * GeomType_LineSegs3D is deprecated, converter to GeomType_LineSegs - * with CoordSys_Grid3D instead - */ - Geom->GeomType = GeomType_LineSegs; - Geom->PositionCoordSys = CoordSys_Grid3D; /*...should have been anyway */ - } - } - else - { - Geom->GeomType = (GeomType_e)GetIoFileInt(FileStream, IVersion, 0, 4, &IsOk); - } - - /* - * Check geom coord sys versus geom type - */ - if (Geom->PositionCoordSys == CoordSys_Grid3D && - Geom->GeomType != GeomType_LineSegs) - { - ErrMsgString = translate("Mismatch between geometry coordinate system and geometry type"); - IsOk = FALSE; - } - - if (IVersion > 41) - { - Geom->LinePattern = (LinePattern_e)GetIoFileInt(FileStream, IVersion, 0, (LgIndex_t)LinePattern_DashDotDot, &IsOk); - } - else - { - Geom->LinePattern = (LinePattern_e)((int)Geom->GeomType % 2); - Geom->GeomType = (GeomType_e)((int)Geom->GeomType / 10); - } - - if ((IVersion < 49) && ((short)(Geom->GeomType) == 2)) - { - Geom->GeomType = GeomType_Rectangle; - Geom->IsFilled = TRUE; - } - - if ((IVersion < 70) && ((short)(Geom->GeomType) > 1)) - Geom->GeomType = (GeomType_e)((short)Geom->GeomType + 1); - - ResetString(&Geom->MacroFunctionCommand, NULL, TRUE); - - Geom->ImageResizeFilter = ImageResizeFilter_Texture; - - if (IVersion >= 70) - { - Geom->PatternLength = GetNextValue(FileStream, FFT, - PatternLengthInputSpec.Min, - PatternLengthInputSpec.Max, - &IsOk); - Geom->LineThickness = GetNextValue(FileStream, FFT, - LineThicknessInputSpec.Min, - LineThicknessInputSpec.Max, - &IsOk); - Geom->NumEllipsePts = (SmInteger_t)GetIoFileInt(FileStream, IVersion, 2, MaxPtsCircleOrEllipse, &IsOk); - Geom->ArrowheadStyle = (ArrowheadStyle_e)GetIoFileInt(FileStream, IVersion, 0, (LgIndex_t)ArrowheadStyle_Hollow, &IsOk); - Geom->ArrowheadAttachment = (ArrowheadAttachment_e)GetIoFileInt(FileStream, IVersion, - 0, - (LgIndex_t)ArrowheadAttachment_AtBothEnds, - &IsOk); - - Geom->ArrowheadSize = GetNextValue(FileStream, FFT, - ArrowheadSizeInputSpec.Min, - ArrowheadSizeInputSpec.Max, - &IsOk); - Geom->ArrowheadAngle = GetNextValue(FileStream, FFT, - ArrowheadAngleInputSpec.Min, - ArrowheadAngleInputSpec.Max, - &IsOk); - - if (IVersion >= 75) - { - IsOk = ReadMacroFunctionCommand(FileStream, - IVersion, - OkToLoad, - &Geom->MacroFunctionCommand); - } /* version >= 75 */ - } /* version >= 70 */ - else - { - Geom->LineThickness = 0.001; - Geom->PatternLength = 0.02; - Geom->ArrowheadStyle = ArrowheadStyle_Plain; - Geom->ArrowheadAttachment = ArrowheadAttachment_None; - Geom->ArrowheadSize = 0.05; - Geom->ArrowheadAngle = 12.0 / DEGPERRADIANS; - } - - if (IVersion < 41) - { - GetNextValue(FileStream, FieldDataType_Float, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - GetNextValue(FileStream, FieldDataType_Float, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - GetNextValue(FileStream, FieldDataType_Float, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - } - - if (IVersion < 70) - Geom->DataType = FieldDataType_Float; - else - Geom->DataType = (FieldDataType_e)GetIoFileInt(FileStream, IVersion, 1, 2, &IsOk); - CHECK(VALID_GEOM_FIELD_DATA_TYPE(Geom->DataType)); - - Geom->Clipping = Clipping_ClipToViewport; /* default value for pre 101 versions */ - if (IVersion >= 101) - { - Geom->Clipping = (Clipping_e)GetIoFileInt(FileStream, IVersion, 0, 2, &IsOk); - /* - * The second clipping value was deprecated during v10 development and thus removed. - * This moved Clipping_ClipToFrame to the 2nd position from the 3rd, so we convert - * value 2 to ClipToFrame to support files made during v10 developement. - */ - if (Geom->Clipping == (Clipping_e)2) - Geom->Clipping = Clipping_ClipToFrame; - } - - if (IVersion < 50 || - Geom->GeomType == GeomType_LineSegs) - { - Geom->NumSegments = (SmInteger_t)GetIoFileInt(FileStream, IVersion, 1, MaxGeoSegments, &IsOk); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - S = -1; - I = 0; - while ((S + 1 < Geom->NumSegments) && - !feof(FileStream->File) && IsOk) - { - S++; - Geom->NumSegPts[S] = GetIoFileInt(FileStream, IVersion, 1, MAXINDEX, &IsOk); - if ((I + Geom->NumSegPts[S] > MaxDataPts) && OkToLoad) - { - ErrMsgString = translate("Geometry is too big"); - IsOk = FALSE; - } - else - { - ReadBlock(FileStream, Geom->GeomData.Generic.V1Base, OkToLoad, Geom->DataType, I, I + Geom->NumSegPts[S] - 1, &IsOk); - ReadBlock(FileStream, Geom->GeomData.Generic.V2Base, OkToLoad, Geom->DataType, I, I + Geom->NumSegPts[S] - 1, &IsOk); - if (Geom->PositionCoordSys == CoordSys_Grid3D) - ReadBlock(FileStream, Geom->GeomData.Generic.V3Base, OkToLoad, Geom->DataType, I, I + Geom->NumSegPts[S] - 1, &IsOk); - I += Geom->NumSegPts[S]; - } - } - if (IsOk && (Geom->GeomType == GeomType_Rectangle)) /* IVersion < 50 */ - { - if (OkToLoad) - { - CopyFieldValue(Geom->GeomData.Generic.V1Base, 0, Geom->GeomData.Generic.V1Base, 2); - CopyFieldValue(Geom->GeomData.Generic.V2Base, 0, Geom->GeomData.Generic.V2Base, 2); - } - } - } - else if (Geom->GeomType == GeomType_Rectangle || - Geom->GeomType == GeomType_Ellipse) - { - double XX, YY; - XX = GetNextValue(FileStream, Geom->DataType, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - YY = GetNextValue(FileStream, Geom->DataType, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (OkToLoad) - { - SetFieldValue(Geom->GeomData.XYZ.XBase, 0, XX); - SetFieldValue(Geom->GeomData.XYZ.YBase, 0, YY); - } - Geom->NumSegments = 1; - Geom->NumSegPts[0] = 1; - } - else - { - double XX; - CHECK((Geom->GeomType == GeomType_Square) || - (Geom->GeomType == GeomType_Circle)); - XX = GetNextValue(FileStream, Geom->DataType, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (OkToLoad) - { - SetFieldValue(Geom->GeomData.XYZ.XBase, 0, XX); - } - Geom->NumSegments = 1; - Geom->NumSegPts[0] = 1; - } - - if (!IsOk) - ErrMsg(ErrMsgString); - - return (IsOk); -} - -/* - * Pass1 for text simply acknowledges that a text was - * parsed and skips over the text. - */ -Boolean_t ReadInText(FileStream_s *FileStream, - short IVersion, - Boolean_t OkToLoad, - Text_s *Text, - LgIndex_t MaxTextLen) -{ - LgIndex_t I; - FieldDataType_e FFT; - SmInteger_t TextLength = 0; - Boolean_t IsOk = TRUE; - TranslatedString ErrMsgString = translate("Invalid text record"); - - REQUIRE(VALID_REF(Text)); - - if (IVersion < 70) - FFT = FieldDataType_Float; - else - FFT = FieldDataType_Double; - - if (IVersion < 101) - I = GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - else - I = GetIoFileInt(FileStream, IVersion, 0, 4, &IsOk); - - if (I == 0) - Text->PositionCoordSys = CoordSys_Grid; - else if (I == 1) - Text->PositionCoordSys = CoordSys_Frame; - /* - * I == 2 is for CoordSys_FrameOffset and is not used currently - * - * I == 3 is for the old window coordinate system - */ - else if (I == 4) - Text->PositionCoordSys = CoordSys_Grid3D; - else - { - ErrMsgString = translate("Invalid text coordinate system."); - IsOk = FALSE; - } - - Text->Scope = (Scope_e)GetIoFileInt(FileStream, IVersion, 0, 1, &IsOk); - Text->AnchorPos.Generic.V1 = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - Text->AnchorPos.Generic.V2 = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (IVersion >= 101) - Text->AnchorPos.Generic.V3 = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - else - Text->AnchorPos.Generic.V3 = 0.0; /* default value for pre 101 versions */ - - if (IVersion > 40) - Text->TextShape.Font = (Font_e)GetIoFileInt(FileStream, IVersion, 0, (LgIndex_t)Font_CourierBold, &IsOk); - else - Text->TextShape.Font = Font_Helvetica; - if (IVersion < 43) - GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (IVersion < 70) - { - if (Text->PositionCoordSys == CoordSys_Grid) - Text->TextShape.SizeUnits = Units_Grid; - else - Text->TextShape.SizeUnits = Units_Frame; - } - else - Text->TextShape.SizeUnits = (Units_e)GetIoFileInt(FileStream, IVersion, 0, (LgIndex_t)Units_Point, &IsOk); - - Text->TextShape.Height = GetNextValue(FileStream, FFT, -LARGEDOUBLE, LARGEDOUBLE, &IsOk); - if (IVersion > 47) - { - Text->Box.BoxType = (TextBox_e)GetIoFileInt(FileStream, IVersion, 0, (LgIndex_t)TextBox_Hollow, &IsOk); - if (IVersion < 70) - { - if (Text->Box.BoxType == TextBox_Hollow) - Text->Box.BoxType = TextBox_Filled; - else if (Text->Box.BoxType == TextBox_Filled) - Text->Box.BoxType = TextBox_Hollow; - } - Text->Box.Margin = GetNextValue(FileStream, FFT, - TextBoxMarginInputSpec.Min, - TextBoxMarginInputSpec.Max, - &IsOk); - if (IVersion >= 70) - Text->Box.LineThickness = GetNextValue(FileStream, FFT, - LineThicknessInputSpec.Min, - LineThicknessInputSpec.Max, - &IsOk); - else - Text->Box.LineThickness = 0.01; - Text->Box.BColor = (ColorIndex_t)GetIoFileInt(FileStream, IVersion, 0, 255, &IsOk); - Text->Box.FillBColor = (ColorIndex_t)GetIoFileInt(FileStream, IVersion, 0, 255, &IsOk); - AdjustCustomColor(IVersion, &Text->Box.BColor); - AdjustCustomColor(IVersion, &Text->Box.FillBColor); - } - else - { - Text->Box.BoxType = TextBox_None; - Text->Box.Margin = 0.0; - Text->Box.BColor = White_C; - Text->Box.FillBColor = Black_C; - } - if (IVersion < 70) - { - Text->Angle = GetIoFileInt(FileStream, IVersion, -720, 720, &IsOk) / DEGPERRADIANS; - Text->LineSpacing = 1; - Text->Anchor = TextAnchor_Left; - } - else - { - Text->Angle = GetNextValue(FileStream, FFT, - TextAngleInputSpec.Min, - TextAngleInputSpec.Max, - &IsOk); - Text->LineSpacing = GetNextValue(FileStream, FFT, - TextLineSpacingInputSpec.Min, - TextLineSpacingInputSpec.Max, - &IsOk); - Text->Anchor = (TextAnchor_e)GetIoFileInt(FileStream, IVersion, 0, (LgIndex_t)TextAnchor_HeadRight, &IsOk); - } - - GetZoneAttachment(FileStream, IVersion, &Text->Zone, &Text->AttachToZone, &IsOk); - - Text->BColor = (ColorIndex_t)GetIoFileInt(FileStream, IVersion, 0, 255, &IsOk); - AdjustCustomColor(IVersion, &Text->BColor); - if (IVersion < 70) - TextLength = (short)GetIoFileInt(FileStream, IVersion, 0, 5000, &IsOk); - - ResetString(&Text->MacroFunctionCommand, NULL, TRUE); - - Text->Clipping = Clipping_ClipToViewport; /* default value for pre 101 versions */ - - if (IVersion < 70) - { - short I, S; - for (I = 0; I < TextLength; I++) - { - S = (short)GetIoFileInt(FileStream, IVersion, 0, 1000, &IsOk); - if (OkToLoad && (I <= MaxTextLen)) - Text->Text[I] = (char)S; - } - if (OkToLoad) - Text->Text[MIN(TextLength, MaxTextLen)] = '\0'; - } - else - { - char *S = NULL; - - if (IVersion >= 75) - { - IsOk = ReadMacroFunctionCommand(FileStream, - IVersion, - OkToLoad, - &Text->MacroFunctionCommand); - } /* IVersion >= 75 */ - - if (IVersion >= 101) - { - /* - * The second clipping value was deprecated during v10 development and thus removed. - * This moved Clipping_ClipToFrame to the 2nd position from the 3rd, so we convert - * value 2 to ClipToFrame to support files made during v10 developement. - */ - Text->Clipping = (Clipping_e)GetIoFileInt(FileStream, IVersion, 0, 2, &IsOk); - if (Text->Clipping == (Clipping_e)2) - Text->Clipping = Clipping_ClipToFrame; - } - - if (ReadInString(FileStream, - IVersion, - MaxTextLen, - &S, - OkToLoad)) - { - REQUIRE(!(S || OkToLoad) || VALID_REF(Text->Text)); - if (S) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - if (IsOk) - { - strcpy(Text->Text, S); - } - FREE_ARRAY(S, "Release temp string for new text label"); - } - else if (OkToLoad) - Text->Text[0] = '\0'; - } - else - IsOk = FALSE; - } - - if (!IsOk) - ErrMsg(ErrMsgString); - - return (IsOk); -} - - -static Boolean_t CompareVersion(float Version, - char *VersionString, - Boolean_t IsByteOrderNative) -{ - char *VersionBuf = (char *) & Version; - - REQUIRE(VALID_REF(VersionString)); - - if (IsByteOrderNative) - return ((VersionString[0] == VersionBuf[0]) && - (VersionString[1] == VersionBuf[1]) && - (VersionString[2] == VersionBuf[2]) && - (VersionString[3] == VersionBuf[3])); - else - return ((VersionString[3] == VersionBuf[0]) && - (VersionString[2] == VersionBuf[1]) && - (VersionString[1] == VersionBuf[2]) && - (VersionString[0] == VersionBuf[3])); -} - -static float ValidVersions[] = {7.0F, - 6.3F, 6.2F, 6.1F, 6.0F, - 5.0F, - 4.7F, 4.6F, 4.5F, 4.4F, 4.3F, 4.2F, 4.1F, 4.0F - }; -#define NUMVALIDVERSIONS ((int)(sizeof(ValidVersions)/sizeof(ValidVersions[0]))) - - -/* - * Extra caution taken here in case value read is invalid float - */ -static Boolean_t GetDoubleVersion(char *VersionString, - float *FInputVersion, - Boolean_t IsByteOrderNative) -{ - int I; - REQUIRE(VALID_REF(FInputVersion)); - - for (I = 0; I < NUMVALIDVERSIONS; I++) - if (CompareVersion(ValidVersions[I], VersionString, IsByteOrderNative)) - { - *FInputVersion = ValidVersions[I]; - return (TRUE); - } - return (FALSE); -} - - -static short GetNewInputVersion(FileStream_s *FileStream) -{ - /* - * - */ - char Buf[4]; - short IVersion = 0; - short I; - LgIndex_t OneValue; - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(FileStream->IsByteOrderNative); - - if (TP_FREAD(Buf, 4, 1, FileStream->File) != 1) - return (0); - - if (strncmp(Buf, "#!TD", 4)) - return (0); - - if (TP_FREAD(Buf, 4, 1, FileStream->File) != 1) - return (0); - - if (Buf[0] != 'V') - return (0); - - I = 1; - while ((I < 4) && isdigit(Buf[I])) - IVersion = IVersion * 10 + Buf[I++] - '0'; - - if (IVersion < 70) - return (0); - else if (IVersion > TecplotBinaryFileVersion) - { - ErrMsg(translate("Binary file version newer than Tecplot version. " - "Upgrade Tecplot or use an older Preplot to produce " - "the datafile.")); - return (IVersion); - } - - /* - * Determine Byte Order. - */ - - OneValue = GetIoFileInt(FileStream, - IVersion, - -MAXINDEX, - MAXINDEX, - &IsOk); - - if (!IsOk) - return (0); - - FileStream->IsByteOrderNative = (OneValue == 1); - - return (IVersion); -} - -/** - * Return value of zero is to be considered as an invalid - * tecplot binary datafile header. Actually binary files - * older than version 4.0 (return value of 40) are not supported - * (See notes in preplot.c). - */ -short GetInputVersion(FileStream_s *FileStream) -{ - Boolean_t IsOk = TRUE; - float FInputVersion; - short IVersion; - char VersionString[4]; - FileOffset_t StartOffset = 0; - - /* - * First check to see if file uses new - * input version format. - */ - - /* keep track of our start offset */ - StartOffset = TP_FTELL(FileStream->File); - - IVersion = GetNewInputVersion(FileStream); - - if (IVersion > TecplotBinaryFileVersion) - return IVersion; /* unsupported version */ - else if (IVersion == 0) - { - /* rewind to clear any errors and seek to the start offset */ - rewind(FileStream->File); - IsOk = (TP_FSEEK(FileStream->File, StartOffset, SEEK_SET) == 0); - - if (IsOk && TP_FREAD(VersionString, 4, 1, FileStream->File) == 1) - { - /* try both native and foreign versions numbers */ - if (!GetDoubleVersion(VersionString, &FInputVersion, FileStream->IsByteOrderNative)) - { - FileStream->IsByteOrderNative = !FileStream->IsByteOrderNative; /* ...reverse the byte order */ - IsOk = GetDoubleVersion(VersionString, &FInputVersion, FileStream->IsByteOrderNative); - } - if (IsOk) - IVersion = ROUNDS(FInputVersion * 10); - } - } - - if (IsOk) - return (IVersion); - else - return ((short)0); -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE /* TODO(RMS)-H 12/12/2005: ENGINE: refactor to use just the Interrupted flag as-is */ -#else -#endif -#endif - - - -/********************************************************************** - ********************************************************************** - ********************** OUTPUT ************************** - ********************************************************************** - **********************************************************************/ - - -/** - * Byte blocks cannot be unaligned or reversed in bytes - */ -Boolean_t WriteBinaryByteBlock(FileStream_s *FileStream, - const Byte_t *ByteValues, - const HgIndex_t NumValues) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(ByteValues)); - REQUIRE(NumValues >= 0); - - Boolean_t IsOk = TP_FWRITE(ByteValues, - sizeof(Byte_t), - (size_t)NumValues, - FileStream->File) == (size_t)NumValues; - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - * Type Byte_t cannot be unaligned or reversed in byte order - */ -static inline Boolean_t WriteBinaryByte(FileStream_s *FileStream, - Byte_t ByteValue) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - Boolean_t IsOk = WriteBinaryByteBlock(FileStream, &ByteValue, 1); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - */ -template -void CopyAndReverseUnalignedBytes(T *DstBuffer, - const Byte_t *SrcBuffer) -{ - REQUIRE(VALID_REF(DstBuffer)); - REQUIRE(VALID_REF(SrcBuffer)); - size_t typeSize = sizeof(T); - for (size_t ii = 0; ii < typeSize; ii++) - ((Byte_t *)(DstBuffer))[ii] = ((Byte_t *)(SrcBuffer))[typeSize-1-ii]; -} - -/** - */ -template -void CopyUnalignedBytes(T *DstBuffer, - const Byte_t *SrcBuffer) -{ - REQUIRE(VALID_REF(DstBuffer)); - REQUIRE(VALID_REF(SrcBuffer)); - for (size_t ii = 0; ii < sizeof(T); ii++) - ((Byte_t *)(DstBuffer))[ii] = ((Byte_t *)(SrcBuffer))[ii]; -} - -/** - */ -template -Boolean_t WriteBinaryDataUnaligned(FileStream_s *FileStream, - const Byte_t *ValueBuffer, - const Boolean_t ValueInNativeOrder) -{ - REQUIRE(VALID_REF(FileStream) && VALID_FILE_HANDLE(FileStream->File)); - REQUIRE(VALID_REF(ValueBuffer)); - REQUIRE(VALID_BOOLEAN(ValueInNativeOrder)); - - T DataValue; - if (ValueInNativeOrder != FileStream->IsByteOrderNative) - CopyAndReverseUnalignedBytes(&DataValue, ValueBuffer); - else - CopyUnalignedBytes(&DataValue, ValueBuffer); - - Boolean_t IsOk = TP_FWRITE(&DataValue, sizeof(T), 1, FileStream->File) == 1; - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * This is used in many places and requires the value be in proper order. - */ -Boolean_t WriteBinaryInt16(FileStream_s *FileStream, - Int16_t Value) -{ - Boolean_t IsOk; - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE("Value can be any Int16_t"); - IsOk = WriteBinaryDataUnaligned(FileStream, (Byte_t *) & Value, TRUE/*ValueInNativeOrder*/); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - * This is used in many places and requires the value be in proper order. - */ -Boolean_t WriteBinaryInt32(FileStream_s *FileStream, - Int32_t Value) -{ - Boolean_t IsOk; - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE("Value can be any Int32_t"); - IsOk = WriteBinaryDataUnaligned(FileStream, (Byte_t *) & Value, TRUE/*ValueInNativeOrder*/); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - */ -template -Boolean_t WriteBinaryBlockUnaligned(FileStream_s *FileStream, - const Byte_t *Values, - const HgIndex_t NumValues, - const Boolean_t ValuesInNativeOrdering) -{ - Boolean_t IsOk = TRUE; - Boolean_t WriteEachValueSeparately; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(Values)); - REQUIRE(NumValues >= 0); - REQUIRE(VALID_BOOLEAN(ValuesInNativeOrdering)); - - WriteEachValueSeparately = (ValuesInNativeOrdering != FileStream->IsByteOrderNative); - - if (WriteEachValueSeparately) - { - for (HgIndex_t NIndex = 0; IsOk && NIndex < NumValues; NIndex++) - { - IsOk = WriteBinaryDataUnaligned(FileStream, Values + NIndex * sizeof(T), ValuesInNativeOrdering); - } - } - else - { -#if 1 - size_t NumBytesToWrite = NumValues * sizeof(T); - size_t NumBytesWritten = TP_FWRITE(Values, sizeof(Byte_t), NumBytesToWrite, FileStream->File); - IsOk = NumBytesToWrite == NumBytesWritten; -#else - IsOk = WriteBinaryByteBlock(FileStream, Values, NumValues * sizeof(T)); -#endif - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Use Byte_t instead of Int16_t to support unaligned values - */ -Boolean_t WriteBinaryInt16BlockUnaligned(FileStream_s *FileStream, - Byte_t *Int16Values, - HgIndex_t NumValues, - Boolean_t ValuesInNativeOrdering) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(Int16Values)); - REQUIRE(NumValues >= 0); - REQUIRE(VALID_BOOLEAN(ValuesInNativeOrdering)); - - Boolean_t IsOk = WriteBinaryBlockUnaligned(FileStream, - Int16Values, - NumValues, - ValuesInNativeOrdering); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/** - * Use Byte_t instead of Int32_t to support unaligned values - */ -Boolean_t WriteBinaryInt32BlockUnaligned(FileStream_s *FileStream, - Byte_t *Int32Values, - HgIndex_t NumValues, - Boolean_t ValuesInNativeOrdering) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(Int32Values)); - REQUIRE(NumValues >= 0); - REQUIRE(VALID_BOOLEAN(ValuesInNativeOrdering)); - - Boolean_t IsOk = WriteBinaryBlockUnaligned(FileStream, - Int32Values, - NumValues, - ValuesInNativeOrdering); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - - -/** - */ -Boolean_t WriteBinaryReal(FileStream_s *FileStream, - double RR, - FieldDataType_e FieldDataType) -{ - Boolean_t IsOk = FALSE; /* ...quite compiler */ - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE((FieldDataType == FieldDataType_Float) || - (FieldDataType == FieldDataType_Double) || - (FieldDataType == FieldDataType_Byte)); - - switch (FieldDataType) - { - case FieldDataType_Float : - { - float FloatVal = CONVERT_DOUBLE_TO_FLOAT(RR); - IsOk = WriteBinaryDataUnaligned(FileStream, (Byte_t *) & FloatVal, TRUE/*NativeOrdering*/); - } break; - case FieldDataType_Double : - { - double DoubleVal = CLAMP_DOUBLE(RR); - IsOk = WriteBinaryDataUnaligned(FileStream, (Byte_t *) & DoubleVal, TRUE/*NativeOrdering*/); - } break; - case FieldDataType_Byte : - { - /* Note: type Byte cannot be unaligned or reversed in bytes */ - Byte_t B; - if (RR > 255) - B = 255; - else if (RR < 0) - B = 0; - else - B = (Byte_t)RR; - IsOk = WriteBinaryByte(FileStream, B); - } break; - default: CHECK(FALSE); break; - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -Boolean_t WriteFieldDataType(FileStream_s *FileStream, - FieldDataType_e FDT, - Boolean_t WriteBinary) -{ - if (WriteBinary) - return (WriteBinaryInt32(FileStream, (LgIndex_t)FDT)); - else - { - short S = 0; - switch (FDT) - { - case FieldDataType_Float : S = fprintf(FileStream->File, "SINGLE "); break; - case FieldDataType_Double : S = fprintf(FileStream->File, "DOUBLE "); break; - case FieldDataType_Int32 : S = fprintf(FileStream->File, "LONGINT "); break; - case FieldDataType_Int16 : S = fprintf(FileStream->File, "SHORTINT "); break; - case FieldDataType_Byte : S = fprintf(FileStream->File, "BYTE "); break; - case FieldDataType_Bit : S = fprintf(FileStream->File, "BIT "); break; - default: CHECK(FALSE); - } - return (FPRINTFOK(S)); - } -} - -/** - */ -template -Boolean_t WriteBinaryChecksumByteValues(FileStream_s *FileStream, - const Byte_t *ByteValues, - const HgIndex_t NumValues) -{ - REQUIRE(VALID_REF(FileStream) && VALID_FILE_HANDLE(FileStream->File)); - REQUIRE(VALID_REF(ByteValues)); - REQUIRE(NumValues >= 1); - - Boolean_t IsOk; - if (NumValues == 1) - IsOk = WriteBinaryDataUnaligned(FileStream, ByteValues, TRUE); - else - IsOk = WriteBinaryBlockUnaligned(FileStream, ByteValues, NumValues, TRUE); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - * For FieldData of Type Bit, use WriteBinaryFieldDataBlockOfTypeBit instead. - */ -template -Boolean_t WriteBinaryFieldDataBlockOfType(FileStream_s *FileStream, - const FieldData_pa FieldData, - const LgIndex_t StartOffset, - const LgIndex_t NumValues) -{ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - Boolean_t IsOk = FALSE; - if (IsFieldDataDirectAccessAllowed(FieldData)) - { - Byte_t *ByteArray = GetFieldDataBytePtr(FieldData) + StartOffset * sizeof(T); - IsOk = WriteBinaryChecksumByteValues(FileStream, ByteArray, (HgIndex_t)NumValues); - } - else - { - for (LgIndex_t Offset = StartOffset; Offset < NumValues; Offset++) - { - T ValueBuffer = (T)GetFieldValue(FieldData, Offset); - Byte_t *ByteValue = (Byte_t *) & ValueBuffer; - IsOk = WriteBinaryChecksumByteValues(FileStream, ByteValue, 1); - } - } - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -static Boolean_t WriteBinaryFieldDataBlockOfTypeBit(FileStream_s *FileStream, - const FieldData_pa FieldData, - const LgIndex_t StartOffset, /* Not used */ - const LgIndex_t NumValues) -{ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - Boolean_t IsOk = FALSE; - size_t NumBytes = 1 + (NumValues - 1) / 8; - if (IsFieldDataDirectAccessAllowed(FieldData)) - { - Byte_t *ByteArray = GetFieldDataBytePtr(FieldData); - IsOk = WriteBinaryChecksumByteValues(FileStream, ByteArray, (HgIndex_t)NumBytes); - } - else - { - // Bits are written out a Byte at a time and since we only come in here every 8th - // bit, make sure to assemble a Byte value from the next 8 bits. - for (LgIndex_t Offset = 0; Offset < NumValues; Offset += 8) - { - Byte_t ValueBuffer = 0; - for (int ii = 0; ii < 8; ii++) - { - Byte_t CurBit = (Byte_t)GetFieldValue(FieldData, Offset + ii); - ValueBuffer |= (CurBit << ii); - } - IsOk = WriteBinaryChecksumByteValues(FileStream, &ValueBuffer, 1); - } - } - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/* - */ -Boolean_t WriteBinaryFieldDataBlock(FileStream_s *FileStream, - FieldData_pa FieldData, - LgIndex_t StartOffset, - LgIndex_t NumValues) -{ -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - Boolean_t IsOk = FALSE; - switch (GetFieldDataType(FieldData)) - { - case FieldDataType_Float : IsOk = WriteBinaryFieldDataBlockOfType(FileStream, FieldData, StartOffset, NumValues); break; - case FieldDataType_Double : IsOk = WriteBinaryFieldDataBlockOfType(FileStream, FieldData, StartOffset, NumValues); break; - case FieldDataType_Int32 : IsOk = WriteBinaryFieldDataBlockOfType(FileStream, FieldData, StartOffset, NumValues); break; - case FieldDataType_Int16 : IsOk = WriteBinaryFieldDataBlockOfType(FileStream, FieldData, StartOffset, NumValues); break; - case FieldDataType_Byte : IsOk = WriteBinaryFieldDataBlockOfType(FileStream, FieldData, StartOffset, NumValues); break; - case FieldDataType_Bit : IsOk = WriteBinaryFieldDataBlockOfTypeBit(FileStream, FieldData, StartOffset, NumValues); break; - default: CHECK(FALSE); break; - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -static Boolean_t WriteASCIIFieldDataValue(FileStream_s *FileStream, - FieldData_pa FieldData, - LgIndex_t Offset, - SmInteger_t AsciiPrecision) -{ - Boolean_t IsOk = FALSE; /* ...quiet compiler */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - double V = 0.0; - char buffer[100*MAX_SIZEOFUTF8CHAR]; - char *AsciiValue = buffer; - -#ifdef TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - V = GetFieldValue(FieldData, Offset); - - switch (GetFieldDataType(FieldData)) - { - case FieldDataType_Float : - case FieldDataType_Double : - /*IsOk = FPRINTFOK(fprintf(FileStream->File," %.*E",(int)AsciiPrecision,V)); */ - sprintf(buffer, " %.*E", (int)AsciiPrecision, V); - break; - case FieldDataType_Int32 : - /* IsOk = FPRINTFOK(fprintf(FileStream->File," %*d",(int)AsciiPrecision,ROUNDL(V))); */ - sprintf(buffer, " %*d", (int)AsciiPrecision, ROUNDL(V)); - break; - case FieldDataType_Int16 : - /* IsOk = FPRINTFOK(fprintf(FileStream->File," %6d",ROUND2(V))); */ - sprintf(buffer, " %6d", ROUND2(V)); - break; - case FieldDataType_Byte : - /* IsOk = FPRINTFOK(fprintf(FileStream->File," %3d",ROUNDS(V))); */ - sprintf(buffer, " %3d", ROUNDS(V)); - break; - case FieldDataType_Bit : - /* IsOk = FPRINTFOK(fprintf(FileStream->File," %c",((V == 0) ? '0' : '1'))); */ - sprintf(buffer, " %c", ((V == 0) ? '0' : '1')); - break; - default: CHECK(FALSE); break; - } - IsOk = FPRINTFOK(fprintf(FileStream->File, buffer)); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - ENSURE(VALID_BOOLEAN(IsOk)); - return (IsOk); -} - - -/** - */ -Boolean_t WriteCCFieldDataBlock(FileStream_s *FileStream, - FieldData_pa FieldData, - Boolean_t IsOrderedData, - LgIndex_t NumIPts, - LgIndex_t NumJPts, - LgIndex_t NumKPts, - Boolean_t WriteBinary, - SmInteger_t AsciiPrecision) -{ - Boolean_t IsOk = TRUE; - LgIndex_t NumValues; - LgIndex_t I, J, K; - LgIndex_t NumIJPts = -1; - LgIndex_t IEnd = -1; - LgIndex_t JEnd = -1; - LgIndex_t KEnd = -1; - Boolean_t IsLinear = -1; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(FieldData)); - REQUIRE(VALID_BOOLEAN(IsOrderedData)); - REQUIRE(NumIPts >= 0); - REQUIRE(NumJPts >= 0); - REQUIRE(NumKPts >= 0); - REQUIRE(VALID_BOOLEAN(WriteBinary)); - REQUIRE(IMPLICATION(!WriteBinary, AsciiPrecision >= 0)); - - /* - * As of version 103 Tecplot writes binary data files so that ordered cell - * centered field data includes the ghost cells. This makes it much easier - * for Tecplot to map the data when reading by simply writing out - * FieldData->NumValues. As of version 104 the ghost cells of the slowest - * moving index are not included but that does effect the output as it is - * still FieldData->NumValues. - */ - if (IsOrderedData && !WriteBinary) - { - /* - * Ordered ASCII output is always layed out using - * DataValueStructure_Classic format. - */ - NumIJPts = NumIPts * NumJPts; - IEnd = MAX(NumIPts - 1, 1); - JEnd = MAX(NumJPts - 1, 1); - KEnd = MAX(NumKPts - 1, 1); - NumValues = (IEnd * JEnd * KEnd); - IsLinear = ((NumJPts == 1 && NumKPts == 1) || - (NumIPts == 1 && NumKPts == 1) || - (NumIPts == 1 && NumJPts == 1)); - } - else - { - NumValues = GetFieldDataNumValues(FieldData); - } - - if (WriteBinary) - { - IsOk = WriteBinaryFieldDataBlock(FileStream, FieldData, 0, NumValues); - } - else - { - LgIndex_t NumValuesPerLine = 80 / (AsciiPrecision + 5); - if (IsOrderedData && !IsLinear) - { - LgIndex_t ValueIndex = 0; - for (K = 0; K < KEnd && IsOk; K++) - for (J = 0; J < JEnd && IsOk; J++) - for (I = 0; I < IEnd && IsOk; I++) - { - LgIndex_t CellIndex = I + (J * NumIPts) + (K * NumIJPts); - IsOk = WriteASCIIFieldDataValue(FileStream, - FieldData, - CellIndex, - AsciiPrecision); - if ((ValueIndex + 1) % NumValuesPerLine == 0 || ValueIndex == NumValues - 1) - IsOk = (fputc('\n', FileStream->File) != EOF); - ValueIndex++; - } - } - else - { - for (I = 0; I < NumValues && IsOk; I++) - { - IsOk = WriteASCIIFieldDataValue(FileStream, - FieldData, - I, - AsciiPrecision); - if ((I + 1) % NumValuesPerLine == 0 || I == NumValues - 1) - IsOk = (fputc('\n', FileStream->File) != EOF); - } - } - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -Boolean_t DumpDatafileString(FileStream_s *FileStream, - const char *S, - Boolean_t WriteBinary) -{ - Boolean_t IsOk = TRUE; - const char *CPtr = S; - if (WriteBinary) - { - const char *CPtr = S; - while (IsOk && CPtr && *CPtr) - IsOk = WriteBinaryInt32(FileStream, (LgIndex_t)(unsigned char) * CPtr++); - if (IsOk) - IsOk = WriteBinaryInt32(FileStream, 0); - } - else - { - fputc('"', FileStream->File); - while (CPtr && *CPtr) - { - if (*CPtr == '\n') - { - CPtr++; - fputc('\\', FileStream->File); - fputc('\\', FileStream->File); - fputc('n', FileStream->File); - } - else - { - if ((*CPtr == '"') || (*CPtr == '\\')) - fputc('\\', FileStream->File); - fputc(*CPtr++, FileStream->File); - } - } - fputc('"', FileStream->File); - IsOk = (fputc('\n', FileStream->File) != EOF); - } - return (IsOk); -} - - -static void WriteAsciiColor(FILE *File, - ColorIndex_t Color) -{ - if (Color >= FirstCustomColor && Color <= LastCustomColor) - fprintf(File, "CUST%1d ", Color - FirstCustomColor + 1); - else - { - switch (Color) - { - case Black_C : fprintf(File, "BLACK "); break; - case Red_C : fprintf(File, "RED "); break; - case Green_C : fprintf(File, "GREEN "); break; - case Blue_C : fprintf(File, "BLUE "); break; - case Cyan_C : fprintf(File, "CYAN "); break; - case Yellow_C : fprintf(File, "YELLOW "); break; - case Purple_C : fprintf(File, "PURPLE "); break; - case White_C : fprintf(File, "WHITE "); break; - } - } -} - -static void WriteAsciiTextGeomBasics(FILE* File, - CoordSys_e CoordSys, - Boolean_t AttachToZone, - EntIndex_t Zone, - ColorIndex_t Color, - Scope_e Scope, - Boolean_t IncludeZ, - Boolean_t WriteGridDataAsPolar, - AnchorPos_u const* AnchorPos, - double ScaleFact) -{ - REQUIRE(VALID_REF(File)); - REQUIRE(VALID_TEXT_COORDSYS(CoordSys) || VALID_GEOM_COORDSYS(CoordSys)); - REQUIRE(VALID_BOOLEAN(AttachToZone)); - REQUIRE(IMPLICATION(AttachToZone, Zone >= 0)); - REQUIRE(VALID_ENUM(Scope, Scope_e)); - REQUIRE(VALID_BOOLEAN(IncludeZ)); - REQUIRE(VALID_BOOLEAN(WriteGridDataAsPolar)); - REQUIRE(VALID_REF(AnchorPos)); - - fprintf(File, "CS="); - if (CoordSys == CoordSys_Frame) - fprintf(File, "FRAME"); - else if (CoordSys == CoordSys_Grid) - fprintf(File, "GRID"); - /* - * Not currently used - * - else if (CoordSys == CoordSys_FrameOffset) - fprintf(File,"FRAMEOFFSET"); - */ - else if (CoordSys == CoordSys_Grid3D) - fprintf(File, "GRID3D"); - else - CHECK(FALSE); - - if (CoordSys == CoordSys_Grid && !IncludeZ && WriteGridDataAsPolar) - { - fprintf(File, "\nTHETA=%.12G,R=%.12G", - ScaleFact*AnchorPos->ThetaR.Theta, - ScaleFact*AnchorPos->ThetaR.R); - CHECK(!IncludeZ); - } - else - { - fprintf(File, "\nX=%.12G,Y=%.12G", - ScaleFact*AnchorPos->XYZ.X, - ScaleFact*AnchorPos->XYZ.Y); - if (IncludeZ) - fprintf(File, ",Z=%.12G", ScaleFact*AnchorPos->XYZ.Z); - } - - if (AttachToZone) - fprintf(File, "\nZN=%d", Zone + 1); - - fprintf(File, "\nC="); - WriteAsciiColor(File, Color); - - fprintf(File, "\nS="); - if (Scope == Scope_Global) - fprintf(File, "GLOBAL"); - else if (Scope == Scope_Local) - fprintf(File, "LOCAL"); - else - CHECK(FALSE); - - fputc('\n', File); -} - - -bool DumpGeometry(FileStream_s* FileStream, - Geom_s const* Geom, - Boolean_t WriteBinary, - Boolean_t WriteGridDataAsPolar) -{ - LgIndex_t I, Index; - LgIndex_t SegIndex; - bool IsOk = TRUE; - FieldDataType_e FDT; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(Geom)); - REQUIRE(Geom->GeomType != GeomType_Image); - - if (WriteBinary) - { - WriteBinaryReal(FileStream, GeomMarker, FieldDataType_Float); - if (Geom->PositionCoordSys == CoordSys_Grid) - WriteBinaryInt32(FileStream, 0); - else if (Geom->PositionCoordSys == CoordSys_Frame) - WriteBinaryInt32(FileStream, 1); -#if 0 /* - * Not currently used - */ - else if (Geom->PositionCoordSys == CoordSys_FrameOffset) - WriteBinaryInt32(FileStream, 2); -#endif - /* - * PositionCoordSys == 3 is for old window coordinate system - */ - else if (Geom->PositionCoordSys == CoordSys_Grid3D) - WriteBinaryInt32(FileStream, 4); - else - CHECK(FALSE); - - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->Scope); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->DrawOrder); - WriteBinaryReal(FileStream, Geom->AnchorPos.Generic.V1, FieldDataType_Double); - WriteBinaryReal(FileStream, Geom->AnchorPos.Generic.V2, FieldDataType_Double); - WriteBinaryReal(FileStream, Geom->AnchorPos.Generic.V3, FieldDataType_Double); - if (Geom->AttachToZone) - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->Zone); - else - WriteBinaryInt32(FileStream, (LgIndex_t) - 1); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->BColor); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->FillBColor); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->IsFilled); - CHECK(Geom->GeomType != GeomType_LineSegs3D); /* deprecated */ - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->GeomType); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->LinePattern); - WriteBinaryReal(FileStream, Geom->PatternLength, FieldDataType_Double); - WriteBinaryReal(FileStream, Geom->LineThickness, FieldDataType_Double); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->NumEllipsePts); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->ArrowheadStyle); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->ArrowheadAttachment); - WriteBinaryReal(FileStream, Geom->ArrowheadSize, FieldDataType_Double); - - WriteBinaryReal(FileStream, Geom->ArrowheadAngle, FieldDataType_Double); - - /* MACRO FUNCTION COMMAND */ - DumpDatafileString(FileStream, Geom->MacroFunctionCommand, TRUE); - - /* - * Assume geometry has X,Y (and Z) all using same field - * data type. - */ - FDT = GetGeomFieldDataType(Geom); - WriteFieldDataType(FileStream, FDT, TRUE); - WriteBinaryInt32(FileStream, (LgIndex_t)Geom->Clipping); - - if (Geom->GeomType == GeomType_LineSegs) - { - short S; - WriteBinaryInt32(FileStream, Geom->NumSegments); - I = 0; - for (S = 0; IsOk && (S < Geom->NumSegments); S++) - { - WriteBinaryInt32(FileStream, Geom->NumSegPts[S]); - WriteBinaryFieldDataBlock(FileStream, Geom->GeomData.Generic.V1Base, I, Geom->NumSegPts[S]); - IsOk = WriteBinaryFieldDataBlock(FileStream, Geom->GeomData.Generic.V2Base, I, Geom->NumSegPts[S]) == TRUE; - if (Geom->PositionCoordSys == CoordSys_Grid3D) - IsOk = WriteBinaryFieldDataBlock(FileStream, Geom->GeomData.Generic.V3Base, I, Geom->NumSegPts[S]) == TRUE; - I += Geom->NumSegPts[S]; - } - } - else if (Geom->GeomType == GeomType_Rectangle || - Geom->GeomType == GeomType_Ellipse) - { - WriteBinaryReal(FileStream, GetFieldValue(Geom->GeomData.XYZ.XBase, 0), FDT); - IsOk = WriteBinaryReal(FileStream, GetFieldValue(Geom->GeomData.XYZ.YBase, 0), FDT) == TRUE; - } - else - { - CHECK((Geom->GeomType == GeomType_Square) || - (Geom->GeomType == GeomType_Circle)); - IsOk = WriteBinaryReal(FileStream, GetFieldValue(Geom->GeomData.XYZ.XBase, 0), FDT) == TRUE; - } - - } - else - { - double ScaleFact; - if (Geom->PositionCoordSys == CoordSys_Frame) - ScaleFact = 100.0; - else - ScaleFact = 1.0; - - fprintf(FileStream->File, "GEOMETRY\nF=POINT\n"); - WriteAsciiTextGeomBasics(FileStream->File, - Geom->PositionCoordSys, - Geom->AttachToZone, - Geom->Zone, - Geom->BColor, - Geom->Scope, - TRUE, - WriteGridDataAsPolar, - &Geom->AnchorPos, - ScaleFact); - - switch (Geom->LinePattern) - { - case LinePattern_Solid : fprintf(FileStream->File, "L=SOLID\n"); break; - case LinePattern_Dashed : fprintf(FileStream->File, "L=DASHED\n"); break; - case LinePattern_DashDot : fprintf(FileStream->File, "L=DASHDOT\n"); break; - case LinePattern_Dotted : fprintf(FileStream->File, "L=DOTTED\n"); break; - case LinePattern_LongDash : fprintf(FileStream->File, "L=LONGDASH\n"); break; - case LinePattern_DashDotDot : fprintf(FileStream->File, "L=DASHDOTDOT\n"); break; - default: CHECK(FALSE); break; - } - fprintf(FileStream->File, "PL=%.12G\n", - Geom->PatternLength*PatternLengthInputSpec.InterfaceAdjust.ScaleFact); - fprintf(FileStream->File, "LT=%.12G\n", - Geom->LineThickness*LineThicknessInputSpec.InterfaceAdjust.ScaleFact); - - if (Geom->IsFilled) - { - fprintf(FileStream->File, "FC="); - WriteAsciiColor(FileStream->File, Geom->FillBColor); - } - - if (Geom->Clipping == Clipping_ClipToViewport) - fprintf(FileStream->File, "CLIPPING=CLIPTOVIEWPORT\n"); - else if (Geom->Clipping == Clipping_ClipToFrame) - fprintf(FileStream->File, "CLIPPING=CLIPTOFRAME\n"); - else - CHECK(FALSE); - - if (Geom->DrawOrder == DrawOrder_AfterData) - fprintf(FileStream->File, "DRAWORDER=AFTERDATA\n"); - else if (Geom->DrawOrder == DrawOrder_BeforeData) - fprintf(FileStream->File, "DRAWORDER=BEFOREDATA\n"); - else - CHECK(FALSE); - - /* Macro function command */ - fprintf(FileStream->File, "MFC="); - DumpDatafileString(FileStream, Geom->MacroFunctionCommand, FALSE); - - if ((Geom->GeomType == GeomType_Circle) || (Geom->GeomType == GeomType_Ellipse)) - fprintf(FileStream->File, "EP=%ld\n", (long)Geom->NumEllipsePts); - - if (Geom->GeomType == GeomType_LineSegs && Geom->PositionCoordSys != CoordSys_Grid3D) - { - switch (Geom->ArrowheadStyle) - { - case ArrowheadStyle_Plain : fprintf(FileStream->File, "AST=PLAIN\n"); break; - case ArrowheadStyle_Filled : fprintf(FileStream->File, "AST=FILLED\n"); break; - case ArrowheadStyle_Hollow : fprintf(FileStream->File, "AST=HOLLOW\n"); break; - default: CHECK(FALSE); break; - } - - switch (Geom->ArrowheadAttachment) - { - case ArrowheadAttachment_None : break; - case ArrowheadAttachment_AtBeginning : fprintf(FileStream->File, "AAT=BEGINNING\n"); break; - case ArrowheadAttachment_AtEnd : fprintf(FileStream->File, "AAT=END\n"); break; - case ArrowheadAttachment_AtBothEnds : fprintf(FileStream->File, "AAT=BOTH\n"); break; - default: CHECK(FALSE); break; - } - if (Geom->ArrowheadAttachment != ArrowheadAttachment_None) - { - fprintf(FileStream->File, "ASZ=%.12G\n", - Geom->ArrowheadSize*ArrowheadSizeInputSpec.InterfaceAdjust.ScaleFact); - fprintf(FileStream->File, "AAN=%.12G\n", - Geom->ArrowheadAngle*ArrowheadAngleInputSpec.InterfaceAdjust.ScaleFact); - } - } - - switch (Geom->GeomType) - { - case GeomType_LineSegs : - { - fprintf(FileStream->File, "T=LINE\n"); - fprintf(FileStream->File, "DT="); - WriteFieldDataType(FileStream, GetFieldDataType(Geom->GeomData.Generic.V1Base), FALSE); - fputc('\n', FileStream->File); - fprintf(FileStream->File, "%d\n", (int)Geom->NumSegments); - SegIndex = 0; - for (I = 0; IsOk && (I < Geom->NumSegments); I++) - { - fprintf(FileStream->File, "%ld\n", (long)Geom->NumSegPts[I]); - for (Index = 0; Index < Geom->NumSegPts[I]; Index++) - { - fprintf(FileStream->File, "%.12G ", GetFieldValue(Geom->GeomData.Generic.V1Base, SegIndex + Index)*ScaleFact); - fprintf(FileStream->File, "%.12G", GetFieldValue(Geom->GeomData.Generic.V2Base, SegIndex + Index)*ScaleFact); - if (Geom->PositionCoordSys == CoordSys_Grid3D) - IsOk = FPRINTFOK(fprintf(FileStream->File, " %.12G\n", GetFieldValue(Geom->GeomData.Generic.V3Base, SegIndex + Index))); - else - IsOk = (Boolean_t)(fputc('\n', FileStream->File) != EOF); - } - SegIndex += Geom->NumSegPts[I]; - } - } break; - case GeomType_Rectangle : - { - fprintf(FileStream->File, "T=RECTANGLE %.12G %.12G\n", - GetFieldValue(Geom->GeomData.XYZ.XBase, 0)*ScaleFact, - GetFieldValue(Geom->GeomData.XYZ.YBase, 0)*ScaleFact); - } break; - case GeomType_Square : - { - fprintf(FileStream->File, "T=SQUARE %.12G\n", - GetFieldValue(Geom->GeomData.XYZ.XBase, 0)*ScaleFact); - } break; - case GeomType_Circle : - { - fprintf(FileStream->File, "T=CIRCLE %.12G\n", - GetFieldValue(Geom->GeomData.XYZ.XBase, 0)*ScaleFact); - } break; - case GeomType_Ellipse : - { - fprintf(FileStream->File, "T=ELLIPSE %.12G %.12G\n", - GetFieldValue(Geom->GeomData.XYZ.XBase, 0)*ScaleFact, - GetFieldValue(Geom->GeomData.XYZ.YBase, 0)*ScaleFact); - } break; - default: CHECK(FALSE); - } - } - return IsOk; -} - -/** - */ -bool DumpText(FileStream_s* FileStream, - Text_s const* Text, - Boolean_t WriteBinary, - Boolean_t WriteGridDataAsPolar) -{ - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_REF(Text)); - REQUIRE(VALID_BOOLEAN(WriteBinary)); - REQUIRE(VALID_BOOLEAN(WriteGridDataAsPolar)); - - if (WriteBinary) - { - WriteBinaryReal(FileStream, TextMarker, FieldDataType_Float); - if (Text->PositionCoordSys == CoordSys_Grid) - WriteBinaryInt32(FileStream, 0); - else if (Text->PositionCoordSys == CoordSys_Frame) - WriteBinaryInt32(FileStream, 1); -#if 0 /* - * Not currently used - */ - else if (Geom->PositionCoordSys == CoordSys_FrameOffset) - WriteBinaryInt32(FileStream, 2); -#endif - /* - * 3 is used for old window coordinate system - */ - else if (Text->PositionCoordSys == CoordSys_Grid3D) - WriteBinaryInt32(FileStream, 4); - else - CHECK(FALSE); - - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Scope); - WriteBinaryReal(FileStream, Text->AnchorPos.Generic.V1, FieldDataType_Double); - WriteBinaryReal(FileStream, Text->AnchorPos.Generic.V2, FieldDataType_Double); - WriteBinaryReal(FileStream, Text->AnchorPos.Generic.V3, FieldDataType_Double); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->TextShape.Font); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->TextShape.SizeUnits); - WriteBinaryReal(FileStream, Text->TextShape.Height, FieldDataType_Double); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Box.BoxType); - WriteBinaryReal(FileStream, Text->Box.Margin, FieldDataType_Double); - WriteBinaryReal(FileStream, Text->Box.LineThickness, FieldDataType_Double); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Box.BColor); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Box.FillBColor); - WriteBinaryReal(FileStream, Text->Angle, FieldDataType_Double); - WriteBinaryReal(FileStream, Text->LineSpacing, FieldDataType_Double); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Anchor); - if (Text->AttachToZone) - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Zone); - else - WriteBinaryInt32(FileStream, (LgIndex_t) - 1); - WriteBinaryInt32(FileStream, (LgIndex_t)Text->BColor); - } - else - { - double ScaleFact; - Boolean_t IncludeZ = Text->PositionCoordSys == CoordSys_Grid3D; - if (Text->PositionCoordSys == CoordSys_Frame) - ScaleFact = 100.0; - else - ScaleFact = 1.0; - fprintf(FileStream->File, "TEXT\n"); - WriteAsciiTextGeomBasics(FileStream->File, - Text->PositionCoordSys, - Text->AttachToZone, - Text->Zone, - Text->BColor, - Text->Scope, - IncludeZ, - WriteGridDataAsPolar, - &Text->AnchorPos, - ScaleFact); - fprintf(FileStream->File, "HU="); - switch (Text->TextShape.SizeUnits) - { - case Units_Grid : fprintf(FileStream->File, "GRID\n"); break; - case Units_Frame : fprintf(FileStream->File, "FRAME\n"); break; - case Units_Point : fprintf(FileStream->File, "POINT\n"); break; - case Units_AxisPercentage : /* Not allowed */ - default: CHECK(FALSE); break; - } - - fprintf(FileStream->File, "LS=%.4G ", Text->LineSpacing); - - fprintf(FileStream->File, "AN="); - switch (Text->Anchor) - { - case TextAnchor_Left : fprintf(FileStream->File, "LEFT\n"); break; - case TextAnchor_Center : fprintf(FileStream->File, "CENTER\n"); break; - case TextAnchor_Right : fprintf(FileStream->File, "RIGHT\n"); break; - case TextAnchor_MidLeft : fprintf(FileStream->File, "MIDLEFT\n"); break; - case TextAnchor_MidCenter : fprintf(FileStream->File, "MIDCENTER\n"); break; - case TextAnchor_MidRight : fprintf(FileStream->File, "MIDRIGHT\n"); break; - case TextAnchor_HeadLeft : fprintf(FileStream->File, "HEADLEFT\n"); break; - case TextAnchor_HeadCenter : fprintf(FileStream->File, "HEADCENTER\n"); break; - case TextAnchor_HeadRight : fprintf(FileStream->File, "HEADRIGHT\n"); break; - default: CHECK(FALSE); break; - } - - switch (Text->Box.BoxType) - { - case TextBox_Hollow : fprintf(FileStream->File, "BX=Hollow "); break; - case TextBox_Filled : fprintf(FileStream->File, "BX=Filled "); break; - default :; - } - fprintf(FileStream->File, "BXM=%.4G ", Text->Box.Margin*100); - fprintf(FileStream->File, "LT=%.4G ", Text->Box.LineThickness*100.0); - fprintf(FileStream->File, "BXO="); WriteAsciiColor(FileStream->File, Text->Box.BColor); - fprintf(FileStream->File, "BXF="); WriteAsciiColor(FileStream->File, Text->Box.FillBColor); - - fprintf(FileStream->File, "\nF="); - switch (Text->TextShape.Font) - { - case Font_Helvetica : fprintf(FileStream->File, "HELV"); break; - case Font_HelveticaBold : fprintf(FileStream->File, "HELV-BOLD"); break; - case Font_Times : fprintf(FileStream->File, "TIMES"); break; - case Font_TimesBold: fprintf(FileStream->File, "TIMES-BOLD"); break; - case Font_TimesItalic : fprintf(FileStream->File, "TIMES-ITALIC"); break; - case Font_TimesItalicBold : fprintf(FileStream->File, "TIMES-ITALIC-BOLD"); break; - case Font_Courier : fprintf(FileStream->File, "COURIER"); break; - case Font_CourierBold : fprintf(FileStream->File, "COURIER-BOLD"); break; - case Font_Greek : fprintf(FileStream->File, "GREEK"); break; - case Font_Math : fprintf(FileStream->File, "MATH"); break; - case Font_UserDefined : fprintf(FileStream->File, "USER-DEF"); break; - default: CHECK(FALSE); break; - } - if (Text->TextShape.SizeUnits == Units_Frame) - ScaleFact = 100.0; - else - ScaleFact = 1.0; - fprintf(FileStream->File, "\nH=%.12G A=%.12G", - Text->TextShape.Height*ScaleFact, - Text->Angle*DEGPERRADIANS); - } - - - if (!WriteBinary) - fprintf(FileStream->File, "\nMFC="); - - DumpDatafileString(FileStream, Text->MacroFunctionCommand, WriteBinary); - - if (!WriteBinary) - { - if (Text->Clipping == Clipping_ClipToViewport) - fprintf(FileStream->File, "CLIPPING=CLIPTOVIEWPORT\n"); - else if (Text->Clipping == Clipping_ClipToFrame) - fprintf(FileStream->File, "CLIPPING=CLIPTOFRAME\n"); - else - CHECK(FALSE); - } - else - { - WriteBinaryInt32(FileStream, (LgIndex_t)Text->Clipping); - } - - if (!WriteBinary) - fprintf(FileStream->File, "T="); - - return DumpDatafileString(FileStream, Text->Text, WriteBinary) == TRUE; -} - -Boolean_t DumpCustomAxisLabels(FileStream_s *FileStream, - Boolean_t WriteBinary, - StringList_pa LabelBase) -{ - Boolean_t IsOk = TRUE; - LgIndex_t Index = 0; - LgIndex_t Count = 0; - - REQUIRE(VALID_REF(FileStream) && VALID_REF(FileStream->File)); - REQUIRE(VALID_BOOLEAN(WriteBinary)); - REQUIRE(StringListValid(LabelBase)); - - Count = StringListCount(LabelBase); - if (WriteBinary) - { - WriteBinaryReal(FileStream, CustomLabelMarker, FieldDataType_Float); - WriteBinaryInt32(FileStream, Count); - } - else - { - fprintf(FileStream->File, " CUSTOMLABELS = \n"); - } - - for (Index = 0, IsOk = TRUE; Index < Count && IsOk; Index++) - { - const char *CurLabel = StringListGetStringRef(LabelBase, Index); - IsOk = DumpDatafileString(FileStream, CurLabel, WriteBinary); - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -/** - */ -Boolean_t WriteBinaryMagic(FileStream_s *FileStream) -{ - /* - * Write an integer value of 1 to the file. This is used - * by the reader to determine byte order of the file. - */ - return (WriteBinaryInt32(FileStream, 1)); -} - -/** - */ -bool writeBinaryVersionNumber(FileStream_s& fileStream, - int versionNumber) -{ - char buffer[5]; - sprintf(buffer, - "V%-3d", - versionNumber); - CHECK(strlen(buffer) == 4); - return fprintf(fileStream.File, - "#!TD%s", - buffer) > 0; -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined SUN -#else -#endif -#if !defined NO_ASSERTS -#endif -#if defined ALLOW_USERDEF_NO_NEIGHBORING_ELEMENT -#else -#endif -#if 0 /* not used yet */ -#endif -#if defined TECPLOTKERNEL -#endif -#if defined TECPLOTKERNEL -#endif -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataset.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataset.cpp deleted file mode 100644 index fd35a87dcf..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataset.cpp +++ /dev/null @@ -1,283 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define DATASETMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "STRUTIL.h" -#include "AUXDATA.h" -#include "ARRLIST.h" -#include "STRLIST.h" -#include "ALLOC.h" -#include "SET.h" -#include "DATASET.h" -#include "FILESTREAM.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "DATASET0.h" - - -#include - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE /* TODO(RMS)-H 12/12/2005: ENGINE: refactor to use just the Interrupted flag as-is */ -#else -#endif -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined USE_MACROS_FOR_FUNCTIONS -#endif -#if !defined USE_MACROS_FOR_FUNCTIONS -#endif -#endif /* TECPLOTKERNEL */ - -/** - * Cleanout the contents of the zone spec item but leaves the zone spec item. - * This effectively leaves the zone spec structure in the same state as calling - * ZoneSpecAlloc initially. - * - * param ZoneSpec - * Zone spec item to cleanup. - */ -void CleanoutZoneSpec(ZoneSpec_s *ZoneSpec) -{ - REQUIRE(VALID_REF(ZoneSpec)); - - if (ZoneSpec->Name != NULL) - FREE_ARRAY(ZoneSpec->Name, "ZoneSpec name"); - if (ZoneSpec->AuxData != NULL) - AuxDataDealloc(&ZoneSpec->AuxData); - SetZoneSpecDefaults(ZoneSpec); -} - - -/** - */ -void ZoneSpecDealloc(ZoneSpec_s **ZoneSpec) -{ - REQUIRE(VALID_REF(ZoneSpec)); - REQUIRE(VALID_REF(*ZoneSpec) || *ZoneSpec == NULL); - - if (*ZoneSpec != NULL) - { - CleanoutZoneSpec(*ZoneSpec); - - FREE_ITEM(*ZoneSpec, "ZoneSpec structure"); - *ZoneSpec = NULL; - } - - ENSURE(*ZoneSpec == NULL); -} - -/** - */ -Boolean_t ZoneSpecItemDestructor(void *ItemRef, - ArbParam_t ClientData) -{ - ZoneSpec_s **ZoneSpecRef = (ZoneSpec_s **)ItemRef; - - REQUIRE(VALID_REF(ZoneSpecRef)); - REQUIRE(VALID_REF(*ZoneSpecRef) || *ZoneSpecRef == NULL); - - if (*ZoneSpecRef != NULL) - ZoneSpecDealloc(ZoneSpecRef); - - ENSURE(*ZoneSpecRef == NULL); - return TRUE; -} - -/** - */ -void SetZoneSpecDefaults(ZoneSpec_s *ZoneSpec) -{ - REQUIRE(VALID_REF(ZoneSpec)); - ZoneSpec->Name = NULL; - ZoneSpec->UniqueID = INVALID_UNIQUE_ID; - ZoneSpec->ParentZone = BAD_SET_VALUE; - ZoneSpec->StrandID = STRAND_ID_STATIC; - ZoneSpec->SolutionTime = 0.0; - ZoneSpec->NumPtsI = 0; - ZoneSpec->NumPtsJ = 0; - ZoneSpec->NumPtsK = 0; - ZoneSpec->ICellDim = 0; // ...currently not used - ZoneSpec->JCellDim = 0; // ...currently not used - ZoneSpec->KCellDim = 0; // ...currently not used - ZoneSpec->Type = ZoneType_Ordered; - ZoneSpec->ZoneLoadInfo.PresetZoneColor = NoColor_C; - ZoneSpec->ZoneLoadInfo.IsInBlockFormat = TRUE; - ZoneSpec->AuxData = NULL; - ZoneSpec->BuildZoneOptInfo = TRUE; - - /* classic data only */ - ZoneSpec->FNMode = FaceNeighborMode_LocalOneToOne; - ZoneSpec->FNAreCellFaceNbrsSupplied = FALSE; - - /* polytope data only */ - ZoneSpec->NumFaceNodes = 0; - ZoneSpec->NumFaceBndryFaces = 0; - ZoneSpec->NumFaceBndryItems = 0; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -/** - */ -void ZoneSpecExcludeBndryConnsFromMetrics(ZoneSpec_s* ZoneSpec) -{ - REQUIRE(VALID_REF(ZoneSpec)); - - /* classic data face connectivity fixup (leave FNMode as-is) */ - ZoneSpec->FNAreCellFaceNbrsSupplied = FALSE; // ...if we invalidate boundary connections CellFaceNbrs must now be auto-generated - - /* polytope data face connectivity fixup */ - ZoneSpec->NumFaceBndryFaces = 0; - ZoneSpec->NumFaceBndryItems = 0; -} - -/** - */ -ZoneSpec_s *ZoneSpecAlloc(void) -{ - ZoneSpec_s *Result; - - Result = (ZoneSpec_s *)ALLOC_ITEM(ZoneSpec_s, "ZoneSpec structure"); - if (Result != NULL) - SetZoneSpecDefaults(Result); - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/** - * Adjusts the capacity request as necessary to minimize memory reallocations - * for large lists. The adjusted capacity will be at least as big as requested - * however it may be larger if it is determined that the space requirement is - * growing faster. - * - * param ZoneOrVarArrayList - * Array list requesting the change in capacity. - * param CurrentCapacity - * Current capacity of the array list. - * param RequestedCapacity - * Capacity request or zero for default size. - * param ClientData - * Any client data needed for the adjustment. - * - * return - * Adjusted capacity that is at least as large as the request or zero if - * unable to satisfy the requested capacity. - */ -LgIndex_t ZoneOrVarListAdjustCapacityRequest(ArrayList_pa ZoneOrVarArrayList, - LgIndex_t CurrentCapacity, - LgIndex_t RequestedCapacity, - ArbParam_t ClientData) -{ - LgIndex_t Result; - - REQUIRE(ArrayListIsValid(ZoneOrVarArrayList)); - REQUIRE((RequestedCapacity == 0 && CurrentCapacity == 0) || - RequestedCapacity > CurrentCapacity); - REQUIRE(CurrentCapacity <= MaxNumZonesOrVars); - - if (RequestedCapacity <= MaxNumZonesOrVars) - { - if (RequestedCapacity != 0 && CurrentCapacity == 0) - { - /* first allocation; assume the request is the desired capacityy */ - Result = RequestedCapacity; - } - else - { - const LgIndex_t DEFAULT_CAPACITY = 32; - LgIndex_t BlockSize = MAX(DEFAULT_CAPACITY, CurrentCapacity / 2); - if (RequestedCapacity == 0) - Result = DEFAULT_CAPACITY; - else - Result = ((RequestedCapacity - 1) / BlockSize + 1) * BlockSize; - - /* put a cap on the maximum */ - if (Result > MaxNumZonesOrVars) - Result = MaxNumZonesOrVars; - } - } - else - Result = 0; /* request exceeded maximum; unable to satisfy request */ - - ENSURE(Result == 0 || Result >= RequestedCapacity); - ENSURE(Result <= MaxNumZonesOrVars); - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined USE_MACROS_FOR_FUNCTIONS -#endif -# if defined DEBUGUNIQUE -# endif -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataset0.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataset0.cpp deleted file mode 100644 index c18ca539d9..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/dataset0.cpp +++ /dev/null @@ -1,1668 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define DATASET0MODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "ALLOC.h" -#include "ARRLIST.h" -#include "DATASET.h" -#include "SET.h" -#include "DATASHR.h" -#include "FILESTREAM.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "Q_MSG.h" -#include "DATASET0.h" - -using namespace tecplot::strutil; -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/* - * Low level dataset functions. No references to zones, vars or - * the DataSet_s master structure here. - */ - - -/* - */ -void OutOfMemoryMsg(void) -{ - ErrMsg(translate("Cannot allocate enough memory for this operation.")); -} /* OutOfMemoryMsg() */ - - -/** - */ -FieldData_pa FieldDataAlloc(void) -{ - FieldData_pa Result; - - Result = (FieldData_pa)ALLOC_ITEM(struct _FieldData_a, "FieldDataPtr"); - if (Result != NULL) - { - Result->Data = NULL; - -# if defined TECPLOTKERNEL /* TecIO doesn't require these features yet */ -/* CORE SOURCE CODE REMOVED */ -# else /* ...for TecIO only */ - Result->GetValueCallback[0] = NULL; - Result->SetValueCallback[0] = NULL; -# endif - -# if defined TECPLOTKERNEL /* TecIO doesn't require these features yet */ -/* CORE SOURCE CODE REMOVED */ -# endif - - Result->Type = FieldDataType_Invalid; - Result->ValueLocation = ValueLocation_Invalid; - Result->RefCount = 1; /* self */ - Result->VarShareRefCount = 1; /* self */ - Result->NumValues = 0; -# if defined TECPLOTKERNEL /* TecIO doesn't require these features yet */ -/* CORE SOURCE CODE REMOVED */ -# endif - } - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - * Most clients should not call this function but FieldDataCleanup() instead. - * An exception to this would be Tecplot's own storable load-on-demand - * functions. - */ -void FieldDataDeallocData(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - if (FieldData->Data != NULL) - { - /* Hack to remove 'deleting void* is undefined' warning... */ - char *Tmp = (char *)FieldData->Data; - FREE_ARRAY(Tmp, "FieldData _Data"); - FieldData->Data = NULL; - } - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - ENSURE(FieldData->Data == NULL); -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/** - */ -void FieldDataCleanup(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else - FieldDataDeallocData(FieldData); -# endif -} - -/** - */ -void FieldDataDealloc(FieldData_pa *FieldData, - Boolean_t DoTrackVarSharing) -{ - REQUIRE(VALID_REF(FieldData)); - REQUIRE(VALID_REF(*FieldData) || *FieldData == NULL); - REQUIRE(IMPLICATION(*FieldData != NULL, - IsStructureReferenced(*FieldData))); - REQUIRE(IMPLICATION(*FieldData != NULL && DoTrackVarSharing, - IsVarStructureReferenced(*FieldData))); - REQUIRE(VALID_BOOLEAN(DoTrackVarSharing)); - REQUIRE(IMPLICATION(*FieldData != NULL, - (*FieldData)->RefCount >= (*FieldData)->VarShareRefCount)); - - if (*FieldData != NULL) - { - if (DoTrackVarSharing) - DecVarStructureReference(*FieldData); - DecStructureReference(*FieldData); - if (!IsStructureReferenced(*FieldData)) - { - FieldDataCleanup(*FieldData); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - FREE_ITEM(*FieldData, "field data"); - } - *FieldData = NULL; - } - - ENSURE(*FieldData == NULL); -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined NDEBUG || defined CHECKED_BUILD -#endif -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined NDEBUG || defined CHECKED_BUILD -#endif -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -template -static void copyTypedValueArray(void* DstArray, - LgIndex_t DstStart, - void* SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd) -{ - T* SrcPtr = ((T*)SrcArray) + SrcStart; - T* DstPtr = ((T*)DstArray) + DstStart; - size_t numBytes = sizeof(T) * (SrcEnd - SrcStart + 1); - memcpy(DstPtr, SrcPtr, numBytes); -} -/** - * DstArray and SrcArray are aligned on proper word boundaries. - */ -void CopyTypedValueArray(FieldDataType_e ValueType, - void *DstArray, - LgIndex_t DstStart, - void *SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd) -{ - REQUIRE(VALID_FIELD_DATA_TYPE(ValueType) && - ValueType != FieldDataType_Bit); - REQUIRE(VALID_REF(DstArray)); - REQUIRE(DstStart >= 0); - REQUIRE(VALID_REF(SrcArray)); - REQUIRE(0 <= SrcStart && SrcStart <= SrcEnd); - REQUIRE(DstArray != SrcArray); - - switch (ValueType) - { - case FieldDataType_Int64 : CHECK(FALSE); /* Future work: remove check */ - case FieldDataType_Double : - { - CHECK(sizeof(UInt64_t) == 8 && sizeof(double) == 8); - copyTypedValueArray(DstArray, - DstStart, - SrcArray, - SrcStart, - SrcEnd); - } break; - case FieldDataType_Float : - case FieldDataType_Int32 : - { - CHECK(sizeof(UInt32_t) == 4 && sizeof(float) == 4); - copyTypedValueArray(DstArray, - DstStart, - SrcArray, - SrcStart, - SrcEnd); - } break; - case FieldDataType_Int16 : - { - CHECK(sizeof(UInt16_t) == 2); - copyTypedValueArray(DstArray, - DstStart, - SrcArray, - SrcStart, - SrcEnd); - } break; - case FieldDataType_Byte : - { - copyTypedValueArray(DstArray, - DstStart, - SrcArray, - SrcStart, - SrcEnd); - } break; - default : CHECK(FALSE); - } -} - -/** - * SrcArray is aligned on proper word boundaries. - */ -void SwapBytesInTypedValueArray(FieldDataType_e ValueType, - void *SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd, - LgIndex_t SrcSkip) -{ - REQUIRE(VALID_FIELD_DATA_TYPE(ValueType) && - ValueType != FieldDataType_Bit); - REQUIRE(VALID_REF(SrcArray)); - REQUIRE(0 <= SrcStart && SrcStart <= SrcEnd); - REQUIRE(SrcSkip > 0); - - switch (ValueType) - { - case FieldDataType_Int64: CHECK(FALSE); /* Future work: remove CHECK */ - case FieldDataType_Double: - { - /* swap 8 bytes blocks */ - UInt64_t *SrcPtr = ((UInt64_t *)SrcArray) + SrcStart; - UInt64_t *SrcPtrEnd = ((UInt64_t *)SrcArray) + SrcEnd; - CHECK(sizeof(UInt64_t) == 8 && sizeof(double) == 8); - while (SrcPtr <= SrcPtrEnd) - { - REVERSE_8_BYTES(SrcPtr); - SrcPtr += SrcSkip; - } - } break; - case FieldDataType_Float: - case FieldDataType_Int32: - { - /* swap 4 bytes blocks */ - UInt32_t *SrcPtr = ((UInt32_t *)SrcArray) + SrcStart; - UInt32_t *SrcPtrEnd = ((UInt32_t *)SrcArray) + SrcEnd; - CHECK(sizeof(UInt32_t) == 4 && sizeof(float) == 4); - while (SrcPtr <= SrcPtrEnd) - { - REVERSE_4_BYTES(SrcPtr); - SrcPtr += SrcSkip; - } - } break; - case FieldDataType_Int16: - { - /* swap 4 bytes blocks */ - UInt16_t *SrcPtr = ((UInt16_t *)SrcArray) + SrcStart; - UInt16_t *SrcPtrEnd = ((UInt16_t *)SrcArray) + SrcEnd; - CHECK(sizeof(UInt16_t) == 2); - while (SrcPtr <= SrcPtrEnd) - { - REVERSE_2_BYTES(SrcPtr); - SrcPtr += SrcSkip; - } - } break; - case FieldDataType_Byte: - case FieldDataType_Bit: - { - /* nothing to do */ - } break; - default: CHECK(FALSE); - } -} - -/** - * Same as SwapBytesInTypedValueArray, but does extra work. Doesn't assume - * DstArray and SrcArray are aligned on proper word boundaries. - */ -void SwapBytesInUnalignedTypedValueArray(FieldDataType_e ValueType, - void *SrcArray, - LgIndex_t SrcStart, - LgIndex_t SrcEnd, - LgIndex_t SrcSkip) -{ - REQUIRE(VALID_FIELD_DATA_TYPE(ValueType) && - ValueType != FieldDataType_Bit); - REQUIRE(VALID_REF(SrcArray)); - REQUIRE(0 <= SrcStart && SrcStart <= SrcEnd); - REQUIRE(SrcSkip > 0); - - switch (ValueType) - { - case FieldDataType_Int64: CHECK(FALSE); /* Future work: remove CHECK */ - case FieldDataType_Double: - { - /* swap 8-byte blocks */ - Byte_t *SrcPtr = ((Byte_t *)SrcArray) + SrcStart * sizeof(UInt64_t); - Byte_t *SrcPtrEnd = ((Byte_t *)SrcArray) + SrcEnd * sizeof(UInt64_t); - size_t byte_skip = SrcSkip * sizeof(UInt64_t); - CHECK(sizeof(UInt64_t) == 8 && sizeof(double) == 8); - while (SrcPtr <= SrcPtrEnd) - { - REVERSE_8_BYTES_1_AT_A_TIME(SrcPtr); - SrcPtr += byte_skip; - } - } break; - case FieldDataType_Float: - case FieldDataType_Int32: - { - /* swap 4-byte blocks */ - Byte_t *SrcPtr = ((Byte_t *)SrcArray) + SrcStart * sizeof(UInt32_t); - Byte_t *SrcPtrEnd = ((Byte_t *)SrcArray) + SrcEnd * sizeof(UInt32_t); - size_t byte_skip = SrcSkip * sizeof(UInt32_t); - CHECK(sizeof(UInt32_t) == 4 && sizeof(float) == 4); - while (SrcPtr <= SrcPtrEnd) - { - REVERSE_4_BYTES_1_AT_A_TIME(SrcPtr); - SrcPtr += byte_skip; - } - } break; - case FieldDataType_Int16: - { - /* swap 2-byte blocks */ - Byte_t *SrcPtr = ((Byte_t *)SrcArray) + SrcStart * sizeof(UInt16_t); - Byte_t *SrcPtrEnd = ((Byte_t *)SrcArray) + SrcEnd * sizeof(UInt16_t); - size_t byte_skip = SrcSkip * sizeof(UInt16_t); - CHECK(sizeof(UInt16_t) == 2); - while (SrcPtr <= SrcPtrEnd) - { - REVERSE_2_BYTES_1_AT_A_TIME(SrcPtr); - SrcPtr += byte_skip; - } - } break; - case FieldDataType_Byte: - case FieldDataType_Bit: - { - /* No swapping required. */ - } break; - default: CHECK(FALSE); - } -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined DEBUG_FIELDVALUES -# define DEBUG_FIELDVALUES_BAD_VALUE 0x11 -static unsigned char BadValueStr[] = -{ - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE, - DEBUG_FIELDVALUES_BAD_VALUE -}; -/** - * If Tecplot is responsible for managing (allocating and deallocating) the - * raw data then - */ -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else -# define FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, type) \ - ((sizeof(type) < 4) /* cannot make reliably test with less than four bytes */ || \ - memcmp(BadValueStr,((char *)((fd)->Data))+sizeof(type)*(pt), sizeof(type)) != 0) -# endif -#else -# define FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, type) TRUE -#endif - - - -/** - * Used in macros, thus not static - */ -double STDCALL GetFieldValueForFloat(const FieldData_pa fd, - LgIndex_t pt) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, float)); - - double Result = (double)GetFieldDataFloatPtr(fd)[pt]; - - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - * Used in macros, thus not static - */ -double STDCALL GetFieldValueForDouble(const FieldData_pa fd, - LgIndex_t pt) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, double)); - - double Result = GetFieldDataDoublePtr(fd)[pt]; - - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -double STDCALL GetFieldValueForInt32(const FieldData_pa fd, - LgIndex_t pt) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, Int32_t)); - - double Result = (double)GetFieldDataInt32Ptr(fd)[pt]; - - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -double STDCALL GetFieldValueForInt16(const FieldData_pa fd, - LgIndex_t pt) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, Int16_t)); - - double Result = (double)GetFieldDataInt16Ptr(fd)[pt]; - - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -double STDCALL GetFieldValueForByte(const FieldData_pa fd, - LgIndex_t pt) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(fd->Type == FieldDataType_Byte); - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, Byte_t)); - - double Result = (double)GetFieldDataBytePtr(fd)[pt]; - - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -double STDCALL GetFieldValueForBit(const FieldData_pa fd, - LgIndex_t pt) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(fd->Type == FieldDataType_Bit); - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt / 8, Byte_t)); - - LgIndex_t ByteOffset = pt / 8; - Byte_t BitMask = (01 << (pt % 8)); - - Byte_t *byte_array = GetFieldDataBytePtr(fd); - double Result = (byte_array[ByteOffset] & BitMask) ? 1.0 : 0.0; - - return Result; -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -FieldValueGetFunction_pf DetermineFieldDataGetFunction(FieldDataType_e DataType, - Boolean_t IsFragmented) -{ - FieldValueGetFunction_pf Result; - - REQUIRE(VALID_FIELD_DATA_TYPE(DataType)); - REQUIRE(VALID_BOOLEAN(IsFragmented)); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - { - switch (DataType) - { - case FieldDataType_Float : - { - Result = GetFieldValueForFloat; - } break; - case FieldDataType_Double : - { - Result = GetFieldValueForDouble; - } break; - case FieldDataType_Int32 : - { - Result = GetFieldValueForInt32; - } break; - case FieldDataType_Int16 : - { - Result = GetFieldValueForInt16; - } break; - case FieldDataType_Byte : - { - Result = GetFieldValueForByte; - } break; - case FieldDataType_Bit : - { - Result = GetFieldValueForBit; - } break; - default : - { - CHECK(FALSE); - Result = NULL; /* satisfy compiler */ - } break; - } - } - return (Result); -} - -/** - */ -static void STDCALL SetFieldValueForFloat(FieldData_pa fd, - LgIndex_t pt, - double val) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE("val can have any value"); - - GetFieldDataFloatPtr(fd)[pt] = CONVERT_DOUBLE_TO_FLOAT(val); - - ENSURE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, float)); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -static void STDCALL SetFieldValueForDouble(FieldData_pa fd, - LgIndex_t pt, - double val) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE("val can have any value"); - - GetFieldDataDoublePtr(fd)[pt] = CLAMP_DOUBLE(val); - - ENSURE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, double)); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -static void STDCALL SetFieldValueForInt32(FieldData_pa fd, - LgIndex_t pt, - double val) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE("val can have any value"); - - GetFieldDataInt32Ptr(fd)[pt] = CONVERT_DOUBLE_TO_INT32(val); - - ENSURE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, Int32_t)); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -static void STDCALL SetFieldValueForInt16(FieldData_pa fd, - LgIndex_t pt, - double val) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE("val can have any value"); - - GetFieldDataInt16Ptr(fd)[pt] = CONVERT_DOUBLE_TO_INT16(val); - - ENSURE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, Int16_t)); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -static void STDCALL SetFieldValueForByte(FieldData_pa fd, - LgIndex_t pt, - double val) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(fd->Type == FieldDataType_Byte); - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE("val can have any value"); - - if (val < 1.0) - GetFieldDataBytePtr(fd)[pt] = 0; - else if (val > 255.0) - GetFieldDataBytePtr(fd)[pt] = 255; - else - GetFieldDataBytePtr(fd)[pt] = (Byte_t)val; - - ENSURE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt, Byte_t)); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -static void STDCALL SetFieldValueForBit(FieldData_pa fd, - LgIndex_t pt, - double val) -{ - REQUIRE(VALID_REF(fd)); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - REQUIRE(fd->Type == FieldDataType_Bit); - REQUIRE(0 <= pt && pt < GetFieldDataNumValues(fd)); - REQUIRE("val can have any value"); - - LgIndex_t ByteOffset = pt / 8; - Byte_t BitMask = (01 << (pt % 8)); - - if (val < 1.0) - GetFieldDataBytePtr(fd)[ByteOffset] &= ~BitMask; - else - GetFieldDataBytePtr(fd)[ByteOffset] |= BitMask; - - ENSURE(FIELD_DATA_VALUE_IS_INITIALIZED(fd, pt / 8, Byte_t)); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - */ -FieldValueSetFunction_pf DetermineFieldDataSetFunction(FieldDataType_e DataType, - Boolean_t IsFragmented) -{ - FieldValueSetFunction_pf Result; - - REQUIRE(VALID_FIELD_DATA_TYPE(DataType)); - REQUIRE(VALID_BOOLEAN(IsFragmented)); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - { - switch (DataType) - { - case FieldDataType_Float : - { - Result = SetFieldValueForFloat; - } break; - case FieldDataType_Double : - { - Result = SetFieldValueForDouble; - } break; - case FieldDataType_Int32 : - { - Result = SetFieldValueForInt32; - } break; - case FieldDataType_Int16 : - { - Result = SetFieldValueForInt16; - } break; - case FieldDataType_Byte : - { - Result = SetFieldValueForByte; - } break; - case FieldDataType_Bit : - { - Result = SetFieldValueForBit; - } break; - default : - { - CHECK(FALSE); - Result = NULL; /* satisfy compiler */ - } break; - } - } - return (Result); -} - - -/** - */ -Int64_t FieldDataGetBytesNeeded(LgIndex_t NumValues, - FieldDataType_e DataType) -{ - Int64_t Result = 0; /* ...quite compiler */ - - REQUIRE(NumValues >= 0); - REQUIRE(VALID_FIELD_DATA_TYPE(DataType)); - - switch (DataType) - { - case FieldDataType_Float: Result = ((Int64_t)NumValues)*sizeof(float); break; - case FieldDataType_Double: Result = ((Int64_t)NumValues)*sizeof(double); break; - case FieldDataType_Int32: Result = ((Int64_t)NumValues)*sizeof(LgIndex_t); break; - case FieldDataType_Int16: Result = ((Int64_t)NumValues)*sizeof(SmInteger_t); break; - case FieldDataType_Byte: Result = ((Int64_t)NumValues)*sizeof(Byte_t); break; - case FieldDataType_Bit: Result = ((Int64_t)(NumValues+7)/8)*sizeof(Byte_t); break; - default: CHECK(FALSE); break; - } - - ENSURE(Result >= 0); - return Result; -} - -/** - * On the SGI, HP, and Sun machines 64 bit objects such as doubles must be 8 - * byte aligned while on all other machines 32 bit alignment suffices. Some - * allow 1 byte alignment but we won't bother with that. - */ -#if defined IRISX || defined HPUX || defined SUNX -# define SIZEOF_LARGEST_OBJECT_TO_ALIGN sizeof(Int64_t) -#else -# define SIZEOF_LARGEST_OBJECT_TO_ALIGN sizeof(Int32_t) -#endif - -/** - */ -Boolean_t IsOffsetAlignedForFieldDataType(FieldDataType_e FieldDataType, - Int64_t Offset) -{ - REQUIRE(VALID_FIELD_DATA_TYPE(FieldDataType)); - REQUIRE(Offset >= 0); - - Int64_t SizeOfType = FieldDataGetBytesNeeded(1, FieldDataType); - if (SizeOfType > (Int64_t)SIZEOF_LARGEST_OBJECT_TO_ALIGN) - SizeOfType = SIZEOF_LARGEST_OBJECT_TO_ALIGN; - - Boolean_t HasValidAlignment = (Offset % SizeOfType == 0); - - ENSURE(VALID_BOOLEAN(HasValidAlignment)); - return HasValidAlignment; -} - -/** - */ -Int64_t GetAlignedOffsetForFieldDataType(FieldDataType_e FieldDataType, - Int64_t Offset) -{ - REQUIRE(VALID_FIELD_DATA_TYPE(FieldDataType)); - REQUIRE(Offset >= 0); - - Int64_t SizeOfType = FieldDataGetBytesNeeded(1, FieldDataType); - if (SizeOfType > (Int64_t)SIZEOF_LARGEST_OBJECT_TO_ALIGN) - SizeOfType = SIZEOF_LARGEST_OBJECT_TO_ALIGN; - - Int64_t NumBytesPastAlignment = (Offset % SizeOfType); - Int64_t Result = Offset - NumBytesPastAlignment; - - ENSURE(0 <= Result && Result <= Offset); - ENSURE(IsOffsetAlignedForFieldDataType(FieldDataType, Result)); - return Result; -} - -/** - */ -void FieldDataDefineData(FieldData_pa FieldData, - LgIndex_t NumValues, - FieldDataType_e DataType, - ValueLocation_e ValueLocation) -{ - REQUIRE(VALID_REF(FieldData)); - REQUIRE(NumValues >= 0); - REQUIRE(VALID_FIELD_DATA_TYPE(DataType)); - REQUIRE(VALID_ENUM(ValueLocation, ValueLocation_e)); - - /* - * Remove any old data (transformed UVW is one example that calls this - * function with a non-null data pointer when switching the value location - * when style changes the value location and therefore the amount of data - * allocated.) - */ - FieldDataCleanup(FieldData); - - /* - * The reference count is not modified here. This function only allocates the - * structure and makes adjustments to the some of the members. The reference - * count was initialized when the structure was initially created and the - * structure may be shared before the data portion is even allocated. - */ - FieldData->NumValues = NumValues; - FieldData->Type = DataType; - FieldData->ValueLocation = ValueLocation; -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else /* ...for TecIO only */ - FieldData->GetValueCallback[0] = (void *)DetermineFieldDataGetFunction(DataType, FALSE); - FieldData->SetValueCallback[0] = (void *)DetermineFieldDataSetFunction(DataType, FALSE); -#endif - - ENSURE(FieldData->Data == NULL); -} - -/** - */ -Boolean_t FieldDataAllocData(FieldData_pa FieldData, - Boolean_t ShowErrMsg) -{ - REQUIRE(VALID_REF(FieldData)); - REQUIRE(FieldData->Type != FieldDataType_Invalid); /* ...must call FieldDataDefineData first */ - REQUIRE(FieldData->Data == NULL); - REQUIRE(VALID_BOOLEAN(ShowErrMsg)); - - /* - * The size of size_t may be smaller than our unsigned 64 bit integer value - * so we might have to squeeze it down possibly loosing precision. - */ - Int64_t ActualBytesNeeded = FieldDataGetBytesNeeded(FieldData->NumValues, FieldData->Type); - size_t BytesToAllocate = (size_t)ActualBytesNeeded; - - /* - * 64 bit architectures are effectively unlimited in their allocation size - * while 32 architectures are limited to 4GB (some may limit further to 2GB - * which will be borne out by the call to malloc). - */ - CHECK(sizeof(size_t) == 4 || sizeof(size_t) == 8); - Boolean_t IsOk = (FieldData->NumValues <= MAXINDEX && - IMPLICATION(sizeof(size_t) == 4, - ActualBytesNeeded <= (Int64_t)0xffffffff)); - if (IsOk) - { - if (FieldData->NumValues > 0) - { - FieldData->Data = (void *)ALLOC_ARRAY(BytesToAllocate, char, "FieldData's Data"); - #if defined DEBUG_FIELDVALUES - { - if (FieldData->Data != NULL) - memset(FieldData->Data, DEBUG_FIELDVALUES_BAD_VALUE, BytesToAllocate); - } - #endif - /* - * For bit type data zero the last byte in the data array. We do - * this because NumValues is probably not a multiple of 8 bits and - * thus the valid bit values will not occupy all bits of the last - * byte. By zeroing the unused bits at the end of the array we - * produce consistent data files when written to disk. - */ - if (FieldData->Type == FieldDataType_Bit) - ((char*)FieldData->Data)[BytesToAllocate-1] = '\0'; - } - IsOk = (FieldData->NumValues == 0 || - FieldData->Data != NULL); - if (!IsOk && ShowErrMsg) - OutOfMemoryMsg(); - } - else if (ShowErrMsg) - ErrMsg(translate("Storage limit (%ld) exceeded for a single variable."), (long)MAXINDEX); - -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - - ENSURE(VALID_REF(FieldData->Data) || FieldData->Data == NULL); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if !defined NO_ASSERTS -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/** - * Allocates a field data pointer with space for "num_pts" of field data type - * "field_data_type" nodal values. - * - * IMPORTANT: - * This field data may NOT be used for zones but only for things like - * geometries or other temporary field data that will never be placed - * into a COB or zone. - */ -FieldData_pa AllocScratchNodalFieldDataPtr(LgIndex_t NumValues, - FieldDataType_e Type, - Boolean_t ShowErrMsg) -{ - REQUIRE(NumValues >= 0); - REQUIRE(VALID_FIELD_DATA_TYPE(Type)); - REQUIRE(VALID_BOOLEAN(ShowErrMsg)); - - FieldData_pa Result = FieldDataAlloc(); - if (Result != NULL) - { - FieldDataDefineData(Result, NumValues, Type, ValueLocation_Nodal); - if (!FieldDataAllocData(Result, ShowErrMsg)) - FieldDataDealloc(&Result, FALSE); - } - else if (ShowErrMsg) - OutOfMemoryMsg(); - - ENSURE(VALID_REF(Result) || Result == NULL); -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# endif - ENSURE(IMPLICATION(Result != NULL, - (Result->NumValues >= 0 && - IMPLICATION(Result->NumValues != 0, - VALID_REF(Result->Data)) && - VALID_FIELD_DATA_TYPE(Result->Type)))); - - return Result; -} - - -/** - * Frees memory allocated with AllocScratchNodalFieldDataPtr(). - * - * @param ScratchFieldData - * Scratch field data pointer to deallocate. This should NEVER be a field - * data from a zone or COB. See note in AllocScratchNodalFieldDataPtr(). - */ -void DeallocScratchNodalFieldDataPtr(FieldData_pa *FieldDataRef) -{ - FieldDataDealloc(FieldDataRef, - FALSE); /* DoTrackVarSharing */ -} - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -FieldDataType_e GetFieldDataType_FUNC(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - - FieldDataType_e Result = GetFieldDataType_MACRO(FieldData); - - ENSURE(VALID_FIELD_DATA_TYPE(Result)); - return Result; -} -#endif /* !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS */ - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -FieldValueGetFunction_pf GetFieldDataGetFunction_FUNC(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - - FieldValueGetFunction_pf Result = GetFieldDataGetFunction_MACRO(FieldData); - - ENSURE(VALID_FN_REF(Result)); - return Result; -} -#endif /* !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS */ - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -FieldValueSetFunction_pf GetFieldDataSetFunction_FUNC(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - - FieldValueSetFunction_pf Result = GetFieldDataSetFunction_MACRO(FieldData); - - ENSURE(VALID_FN_REF(Result)); - return Result; -} -#endif /* !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS */ - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -LgIndex_t GetFieldDataNumValues_FUNC(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - - LgIndex_t Result = GetFieldDataNumValues_MACRO(FieldData); - - ENSURE(Result >= 0); - return Result; -} -#endif /* !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS */ - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -ValueLocation_e GetFieldDataValueLocation_FUNC(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - - ValueLocation_e Result = GetFieldDataValueLocation_MACRO(FieldData); - - ENSURE(Result == ValueLocation_Invalid || /* i.e. pending assignment */ - VALID_ENUM(Result, ValueLocation_e)); - return Result; -} -#endif /* !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS */ - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -Boolean_t IsFieldDataDirectAccessAllowed_FUNC(FieldData_pa FieldData) -{ - REQUIRE(VALID_REF(FieldData)); - - Boolean_t Result = IsFieldDataDirectAccessAllowed_MACRO(FieldData); - - ENSURE(VALID_BOOLEAN(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -float *GetFieldDataFloatPtr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - - float *Result = GetFieldDataFloatPtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -double *GetFieldDataDoublePtr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - - double *Result = GetFieldDataDoublePtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -Int64_t *GetFieldDataInt64Ptr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - - Int64_t *Result = GetFieldDataInt64Ptr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -Int32_t *GetFieldDataInt32Ptr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - - Int32_t *Result = GetFieldDataInt32Ptr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - */ -Int16_t *GetFieldDataInt16Ptr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - - Int16_t *Result = GetFieldDataInt16Ptr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/* - * No byte ordering or alignment issues with single bytes (which are also used with the "Bit" type) - */ -Byte_t *GetFieldDataBytePtr_FUNC(FieldData_pa fd) -{ - /* - * This function gets called for Byte and Bit types, but we cannot REQUIRE - * those types because it is also used for non-aligned values. We can't - * check for non-aligned because we might be copying aligned bytes to a - * non-aligned location. - */ - REQUIRE(VALID_REF(fd)); - - Byte_t *Result = GetFieldDataBytePtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/** - * Gets a ptr to 2-byte blocks regardless of byte ordering, but still has to - * worry about byte alignment - */ -UInt16_t *GetFieldData2BytePtr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - REQUIRE(fd->Type == FieldDataType_Int16); - - UInt16_t *Result = GetFieldData2BytePtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/* - * Gets a ptr to 4-byte blocks regardless of byte ordering, but still has to - * worry about byte alignment - */ -UInt32_t *GetFieldData4BytePtr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - REQUIRE(fd->Type == FieldDataType_Int32 || fd->Type == FieldDataType_Float); - - UInt32_t *Result = GetFieldData4BytePtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/* - * Gets a ptr to 8-byte blocks regardless of byte ordering, but still has to - * worry about byte alignment - */ -UInt64_t *GetFieldData8BytePtr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - REQUIRE(fd->Type == FieldDataType_Int64 || fd->Type == FieldDataType_Double); - - UInt64_t *Result = GetFieldData8BytePtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - - -#if !defined USE_MACROS_FOR_FIELD_DATA_FUNCTIONS -/* - * WARNING: GetFieldDataVoidPtr checks nothing, and thus should only be - * used with extreme caution (that is, checking the alignment - * and byte order by hand). - */ -void *GetFieldDataVoidPtr_FUNC(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); - - void *Result = GetFieldDataVoidPtr_MACRO(fd); - - ENSURE(VALID_REF(Result)); - return Result; -} -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/* - */ -void CopyFieldValue(FieldData_pa dst, - LgIndex_t dstindex, - FieldData_pa src, - LgIndex_t srcindex) -{ - REQUIRE(VALID_REF(dst)); - REQUIRE(VALID_REF(src)); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - REQUIRE(dstindex >= 0 && dstindex < GetFieldDataNumValues(dst) && - srcindex >= 0 && srcindex < GetFieldDataNumValues(src)); - - Boolean_t DoBruteForceCopy = TRUE; - - if (IsFieldDataDirectAccessAllowed(src) && - IsFieldDataDirectAccessAllowed(dst) && - GetFieldDataType(src) == GetFieldDataType(dst)) - { - switch (GetFieldDataType(src)) - { - case FieldDataType_Int64 : CHECK(FALSE); /* Future work: remove and let fall through */ - case FieldDataType_Double : - { - CHECK(sizeof(UInt64_t) == 8 && sizeof(double) == 8); - UInt64_t *dst_ptr = GetFieldData8BytePtr(dst) + dstindex; - UInt64_t *src_ptr = GetFieldData8BytePtr(src) + srcindex; - *dst_ptr = *src_ptr; - DoBruteForceCopy = FALSE; - } break; - case FieldDataType_Float : - case FieldDataType_Int32 : - { - CHECK(sizeof(UInt32_t) == 4 && sizeof(float) == 4); - UInt32_t *dst_ptr = GetFieldData4BytePtr(dst) + dstindex; - UInt32_t *src_ptr = GetFieldData4BytePtr(src) + srcindex; - *dst_ptr = *src_ptr; - DoBruteForceCopy = FALSE; - } break; - case FieldDataType_Int16 : - { - CHECK(sizeof(UInt16_t) == 2); - UInt16_t *dst_ptr = GetFieldData2BytePtr(dst) + dstindex; - UInt16_t *src_ptr = GetFieldData2BytePtr(src) + srcindex; - *dst_ptr = *src_ptr; - } break; - case FieldDataType_Byte : - { - GetFieldDataBytePtr(dst)[dstindex] = GetFieldDataBytePtr(src)[srcindex]; - DoBruteForceCopy = FALSE; - } break; - case FieldDataType_Bit : break; /* handle below */ - default : CHECK(FALSE); /* Future work: when more complex types are added, remove this CHECK */ - } - } - - if (DoBruteForceCopy) - { - double val = GetFieldValue(src, srcindex); - SetFieldValue(dst, dstindex, val); - } -} /* CopyFieldValue() */ - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - - -/* - */ -void SetFieldDataPtrToAllZeros(FieldData_pa fd) -{ - REQUIRE(VALID_REF(fd)); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - - LgIndex_t NumValues = GetFieldDataNumValues(fd); - - /* - * memset each byte to 0 works for floats and doubles and works regardless - * of byte ordering or alignment. - */ - size_t NumBytesToMemSet = 0; - if (IsFieldDataDirectAccessAllowed(fd)) - { - switch (GetFieldDataType(fd)) - { - case FieldDataType_Int64 : CHECK(FALSE); /* Future work: remove CHECK */ - case FieldDataType_Double : - { - CHECK(sizeof(UInt64_t) == 8 && sizeof(double) == 8); - NumBytesToMemSet = NumValues * sizeof(Int64_t); - } break; - case FieldDataType_Int32 : - case FieldDataType_Float : - { - CHECK(sizeof(UInt32_t) == 4 && sizeof(float) == 4); - NumBytesToMemSet = NumValues * sizeof(Int32_t); - } break; - case FieldDataType_Int16 : - { - CHECK(sizeof(UInt16_t) == 2); - NumBytesToMemSet = NumValues * sizeof(Int16_t); - } break; - case FieldDataType_Byte : - { - NumBytesToMemSet = NumValues * sizeof(Byte_t); - } break; - case FieldDataType_Bit : - { - NumBytesToMemSet = ((NumValues + 7) / 8) * sizeof(Byte_t); - } break; - default : - { - CHECK(FALSE); - } break; - } - } - - if (NumBytesToMemSet > 0) - { - void *fd_data = GetFieldDataVoidPtr(fd); - memset(fd_data, 0, NumBytesToMemSet); - } - else - { - int ii; - for (ii = 0; ii < NumValues; ii++) - SetFieldValue(fd, ii, 0.0); - } - -} /* SetFieldDataPtrToAllZeros() */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/datautil.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/datautil.cpp deleted file mode 100644 index 783abec0c4..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/datautil.cpp +++ /dev/null @@ -1,941 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -/* - * datautil.c: - * - * version 1.00 : 12/10/91 (cm) changes made for manual - * version 1.01 : 12/30/91 Get and ReturnHugeBlock are now ptr to function - * version 6.00 : 04/21/92 updated to match version 6 of tecplot. - * version 6.30 : 10/15/92 updated to match binary file version 6.3 - * version 6.30a: 05/04/93 (cm) minor changes to prototypes - * version : 11/01/93 (cm) put in D4GW stuff - * version 6.30b: 12/27/93 (cm) fixed missing NumKPts in DumpZone - * version 6.30c: 12/27/93 (cm) put back in D4GW stuff -BEGIN CODELOG TECXXX -C 03/06/96 (BDP) -C Update to V7 -C -C 03/14/97 (BDP) -C Added code to main tecplot source. Now can -C be built stand alone or added so TecUtil_ functions -C can access. -C 06/02/98 (bdp) -C v75 coding. Also removed Array of ZoneSpec_s -C structs in favor of zonenames, i,j,and k dimensions -C and zonetype array. -END CODELOG - */ - - - -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "SYSTEM.h" -#include "ALLOC.h" -#include "TECXXX.h" -#include "ARRLIST.h" -#include "SET.h" -#include "DATASET.h" -#include "FILESTREAM.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "DATAIO.h" -#include "DATAIO4.h" -#include "DATAUTIL.h" -#include "STRLIST.h" -#include "Q_MSG.h" -#if defined MAKEARCHIVE -#define INITMODULE -#endif -#include "INPUT.h" - -using namespace tecplot::strutil; - -#if defined MAKEARCHIVE -#define ANGLEEPSILON 1.0e-10 - -void InitInputSpecs(void) -{ - LineThicknessInputSpec.Type = Input_Double; - LineThicknessInputSpec.Min = 0.000001; - LineThicknessInputSpec.Max = 1.0; - LineThicknessInputSpec.InterfaceAdjust.ScaleFact = 100.0; - LineThicknessInputSpec.SuffixModifier = NULL; - - PatternLengthInputSpec.Type = Input_Double; - PatternLengthInputSpec.Min = 0.0001; - PatternLengthInputSpec.Max = 1.0; - PatternLengthInputSpec.InterfaceAdjust.ScaleFact = 100.0; - PatternLengthInputSpec.SuffixModifier = NULL; - - TextBoxMarginInputSpec.Type = Input_Double; - TextBoxMarginInputSpec.Min = 0.0; - TextBoxMarginInputSpec.Max = 20.0; - TextBoxMarginInputSpec.InterfaceAdjust.ScaleFact = 100.0; - TextBoxMarginInputSpec.SuffixModifier = NULL; - - TextLineSpacingInputSpec.Type = Input_Double; - TextLineSpacingInputSpec.Min = 0.0; - TextLineSpacingInputSpec.Max = 5.0; - TextLineSpacingInputSpec.InterfaceAdjust.ScaleFact = 1.0; - TextLineSpacingInputSpec.SuffixModifier = NULL; - - - ArrowheadSizeInputSpec.Type = Input_Double; - ArrowheadSizeInputSpec.Min = 0.0; - ArrowheadSizeInputSpec.Max = 0.5; - ArrowheadSizeInputSpec.InterfaceAdjust.ScaleFact = 100.0; - ArrowheadSizeInputSpec.SuffixModifier = NULL; - - TextAngleInputSpec.Type = Input_Double; - TextAngleInputSpec.Min = -PI - ANGLEEPSILON; - TextAngleInputSpec.Max = PI + ANGLEEPSILON; - TextAngleInputSpec.InterfaceAdjust.ScaleFact = DEGPERRADIANS; - TextAngleInputSpec.SuffixModifier = NULL; - - ArrowheadAngleInputSpec.Type = Input_Double; - ArrowheadAngleInputSpec.Min = 1.0 / DEGPERRADIANS - ANGLEEPSILON; - ArrowheadAngleInputSpec.Max = PIOVER2 + ANGLEEPSILON; - ArrowheadAngleInputSpec.InterfaceAdjust.ScaleFact = DEGPERRADIANS; - ArrowheadAngleInputSpec.SuffixModifier = NULL; -} -#endif - - - - -void LocalReadBlock(FileStream_s *FileStream, - double *CurVPtr, - FieldDataType_e FieldDataTypeInFile, - HgIndex_t NumValues, - Boolean_t *IsOk) -{ - REQUIRE(VALID_REF(IsOk) && VALID_BOOLEAN(*IsOk)); - REQUIRE(!(*IsOk) || VALID_REF(FileStream)); - REQUIRE(!(*IsOk) || VALID_FIELD_DATA_TYPE(FieldDataTypeInFile)); - - if (*IsOk) - { - Boolean_t DoRead = (CurVPtr != NULL); - Boolean_t ReadByBlock = (FieldDataType_Double == FieldDataTypeInFile) || !DoRead; - if (ReadByBlock) - { - ReadPureBlock(FileStream, - DoRead, - (void *)CurVPtr, - FieldDataTypeInFile, - 0, - NumValues, - IsOk); - } - else - { - LgIndex_t N; - for (N = 0; *IsOk && (N < NumValues); N++) - { - double D = GetNextValue(FileStream, FieldDataTypeInFile, -LARGEDOUBLE, LARGEDOUBLE, IsOk); - if (DoRead) - CurVPtr[N] = D; - } - } - } -} - - - - -/* - * - * NOTE: ReadTec only allocates space for NodeMap and VDataBase - * if RawDataSpaceAllocated == FALSE and GetHeaderInfoOnly - * is FALSE. - * - * Also note that all data read in by ReadTec is currently - * limited to be in double precision. - * - */ - - -Boolean_t STDCALL ReadTec(Boolean_t GetHeaderInfoOnly, - char *FName, - short *IVersion, - char **DataSetTitle, - EntIndex_t *NumZones, - EntIndex_t *NumVars, - StringList_pa *VarNames, - StringList_pa *ZoneNames, - LgIndex_t **NumPtsI, - LgIndex_t **NumPtsJ, - LgIndex_t **NumPtsK, - ZoneType_e **ZoneType, - StringList_pa *UserRec, - Boolean_t RawDataSpaceAllocated, - NodeMap_t ***NodeMap, - double ***VDataBase) -{ - Boolean_t InputIsOk = FALSE; - ArrayList_pa ZoneSpecList = NULL; - LgIndex_t *FNNumBndryConns = NULL; /* [NumZones] */ - FileStream_s *ReadTecFileStream = NULL; - Set_pa *IsVarCellCentered = NULL; /* [NumZones] */ - - REQUIRE(VALID_BOOLEAN(GetHeaderInfoOnly)); - REQUIRE(VALID_NON_ZERO_LEN_STR(FName)); - REQUIRE(VALID_REF(IVersion)); - REQUIRE(VALID_REF(DataSetTitle) || DataSetTitle == NULL); - REQUIRE(VALID_REF(NumZones)); - REQUIRE(VALID_REF(NumVars)); - REQUIRE(VarNames == NULL || VALID_REF(VarNames)); - REQUIRE(ZoneNames == NULL || VALID_REF(ZoneNames)); - REQUIRE(NumPtsI == NULL || VALID_REF(NumPtsI)); - REQUIRE(NumPtsJ == NULL || VALID_REF(NumPtsJ)); - REQUIRE(NumPtsK == NULL || VALID_REF(NumPtsK)); - REQUIRE(ZoneType == NULL || VALID_REF(ZoneType)); - REQUIRE(UserRec == NULL || VALID_REF(UserRec)); - REQUIRE(VALID_BOOLEAN(RawDataSpaceAllocated)); - REQUIRE(IMPLICATION(!GetHeaderInfoOnly && RawDataSpaceAllocated, - VALID_REF(NodeMap) && VALID_REF(VDataBase))); - -#if defined MAKEARCHIVE - InitInputSpecs(); -#endif - - InputIsOk = OpenBinaryFileAndCheckMagicNumber(&ReadTecFileStream, - FName, - 0, - IVersion); - - if (InputIsOk) - InputIsOk = ReadDataFileHeader(ReadTecFileStream, - *IVersion, - FALSE, - NumZones, - NumVars, - (SmInteger_t *)NULL, - DataSetTitle, - (Text_s **)NULL, - (Geom_s **)NULL, - (StringList_pa **)NULL, - UserRec, - (AuxData_pa *)NULL, - &IsVarCellCentered, - (Boolean_t *)NULL, - (Boolean_t *)NULL, - &ZoneSpecList, - VarNames, - (ArrayList_pa *)NULL, - (Set_pa *)NULL, - &FNNumBndryConns, - (DataFileType_e *)NULL); - - - - if (InputIsOk) - { - if (*NumZones == 0) - *NumVars = 0; - else if (*IVersion > 112) - { - /* - * This may not be true but we put it hear to remind us to make - * updates to this code when we change the version number. - */ - ErrMsg(translate("ReadTec does not yet support version %d " - "Tecplot binary data files."), *IVersion); - InputIsOk = FALSE; - } - else if (!GetHeaderInfoOnly) - { - EntIndex_t Z; - for (Z = 0; Z < *NumZones && InputIsOk; Z++) - { - InputIsOk = (MemberCount(IsVarCellCentered[Z]) == 0); - if (!InputIsOk) - ErrMsg(translate("Cell centered data not supported by ReadTec.")); - } - } - } - - if (IsVarCellCentered != NULL) - { - EntIndex_t Z; - for (Z = 0; Z < *NumZones; Z++) - DeallocSet(&IsVarCellCentered[Z]); - FREE_ARRAY(IsVarCellCentered, "Array of IsVarCellCentered sets"); - } - - if (InputIsOk) - { - EntIndex_t Z; - /* - * Allocate space for the zone info pieces. - */ - if (ZoneNames) - *ZoneNames = StringListAlloc(); - if (NumPtsI) - *NumPtsI = ALLOC_ARRAY(*NumZones, LgIndex_t, "numptsi"); - if (NumPtsJ) - *NumPtsJ = ALLOC_ARRAY(*NumZones, LgIndex_t, "numptsj"); - if (NumPtsK) - *NumPtsK = ALLOC_ARRAY(*NumZones, LgIndex_t, "numptsk"); - if (ZoneType) - *ZoneType = ALLOC_ARRAY(*NumZones, ZoneType_e, "zonetype"); - for (Z = 0; Z < *NumZones; Z++) - { - ZoneSpec_s *ZoneSpec = GetZoneSpec(ZoneSpecList, Z); - if (ZoneSpec != NULL) - { - if (ZoneNames && *ZoneNames) - StringListAppendString(*ZoneNames, ZoneSpec->Name); - - if (NumPtsI && *NumPtsI) - (*NumPtsI)[Z] = ZoneSpec->NumPtsI; - - if (NumPtsJ && *NumPtsJ) - (*NumPtsJ)[Z] = ZoneSpec->NumPtsJ; - - if (NumPtsK && *NumPtsK) - (*NumPtsK)[Z] = ZoneSpec->NumPtsK; - - if (ZoneType && *ZoneType) - (*ZoneType)[Z] = ZoneSpec->Type; - } - else - { - if (ZoneNames && *ZoneNames) - StringListAppendString(*ZoneNames, NULL); - - if (NumPtsI && *NumPtsI) - (*NumPtsI)[Z] = 0; - - if (NumPtsJ && *NumPtsJ) - (*NumPtsJ)[Z] = 0; - - if (NumPtsK && *NumPtsK) - (*NumPtsK)[Z] = 0; - - if (ZoneType && *ZoneType) - (*ZoneType)[Z] = ZoneType_Invalid; - } - } - } - if (!GetHeaderInfoOnly && InputIsOk && (*NumZones > 0)) - { - EntIndex_t *VarSharesFromZone = NULL; /* [NumVars] */ - Boolean_t *IsVarPassive = NULL; /* [NumVars] */ - EntIndex_t *ConnectivitySharesFromZone = NULL; /* [NumZones] */ - FieldDataType_e *VarType = NULL; - int CurZone; - int CurVar; - LgIndex_t NumIPts = 0; - LgIndex_t NumJPts = 0; - LgIndex_t NumKPts = 0; - LgIndex_t TotalNumPts; - LgIndex_t I, J; - - if ((*NumZones > 0) && !RawDataSpaceAllocated) - { - *VDataBase = ALLOC_ARRAY(*NumZones * (*NumVars), double *, "vdatabase array"); - if (*VDataBase == NULL) - { - ErrMsg(translate("Cannot allocate space for field data")); - InputIsOk = FALSE; - } - else - { - int I; - for (I = 0; I < *NumZones*(*NumVars); I++) - (*VDataBase)[I] = NULL; - } - - if (InputIsOk) - { - *NodeMap = ALLOC_ARRAY(*NumZones, NodeMap_t *, "nodemap array"); - if (*NodeMap == NULL) - { - ErrMsg(translate("Cannot allocate space for nodemap")); - InputIsOk = FALSE; - } - else - { - int I; - for (I = 0; I < *NumZones; I++) - (*NodeMap)[I] = NULL; - } - } - } - - if (InputIsOk) - { - VarType = ALLOC_ARRAY(*NumVars + 1, FieldDataType_e, "Var Type"); - VarSharesFromZone = ALLOC_ARRAY(*NumVars + 1, EntIndex_t, "VarSharesFromZone"); - IsVarPassive = ALLOC_ARRAY(*NumVars + 1, Boolean_t, "IsVarPassive"); - - ConnectivitySharesFromZone = ALLOC_ARRAY(*NumZones, EntIndex_t, "ConnectivitySharesFromZone"); - InputIsOk = (VarType != NULL && - VarSharesFromZone != NULL && - IsVarPassive != NULL && - ConnectivitySharesFromZone != NULL); - } - - /* for each zone */ - for (CurZone = 0; CurZone < *NumZones && InputIsOk; CurZone++) - { - double X1 = GetNextValue(ReadTecFileStream, FieldDataType_Float, 0.0, 1000.0, &InputIsOk); - if (InputIsOk && (X1 == ZoneMarker)) - { - ZoneSpec_s *CurZoneSpec = GetZoneSpec(ZoneSpecList, CurZone); - Boolean_t ZoneIsFinite = (CurZoneSpec->Type != ZoneType_Ordered); - Boolean_t ZoneIsFEPoly = (CurZoneSpec->Type == ZoneType_FEPolygon || - CurZoneSpec->Type == ZoneType_FEPolyhedron); - Boolean_t InBlockFormat = CurZoneSpec->ZoneLoadInfo.IsInBlockFormat; - for (J = 0; J < *NumVars; J++) - { - VarSharesFromZone[J] = -1; /* eumulate DupVar: no DupVar */ - VarType[J] = FieldDataType_Float; - IsVarPassive[J] = FALSE; - } - - /* dupvars */ - if (*IVersion > 45 && *IVersion < 101 && InputIsOk) - { - EntIndex_t NumDupVars, ZZ; - - NumDupVars = (EntIndex_t)GetIoFileInt(ReadTecFileStream, *IVersion, 0, (LgIndex_t) * NumVars, &InputIsOk); - for (J = 0; J < NumDupVars; J++) - { - ZZ = (EntIndex_t)GetIoFileInt(ReadTecFileStream, *IVersion, 0, *NumVars, &InputIsOk) - 1; - VarSharesFromZone[ZZ] = CurZone - 1; /* emulate DupVar: share from previous zone */ - } - /* Can't duplicate from the first zone */ - if ((NumDupVars > 0) && (CurZone == 0)) - { - ErrMsg(translate("Cannot duplicate variables from the first zone since there are " - "no previous zones to duplicate from.")); - InputIsOk = FALSE; - } - } - - /* get the data type for each variable */ - if (*IVersion >= 70 && InputIsOk) - { - for (J = 0; J < *NumVars; J++) - { - VarType[J] = (FieldDataType_e)GetIoFileInt(ReadTecFileStream, *IVersion, - 0, - (LgIndex_t)FieldDataType_Bit, - &InputIsOk); - if (!InputIsOk) - { - ErrMsg(translate("Invalid data type - binary input file corrupted")); - InputIsOk = FALSE; - } - } - } - - if (InputIsOk) - { - NumIPts = CurZoneSpec->NumPtsI; - NumJPts = CurZoneSpec->NumPtsJ; - NumKPts = CurZoneSpec->NumPtsK; - } - - if (ZoneIsFinite) - TotalNumPts = NumIPts; - else - TotalNumPts = (NumIPts * NumJPts * NumKPts); - - for (CurVar = 0; CurVar < *NumVars && InputIsOk; CurVar++) - { - if (!RawDataSpaceAllocated && TotalNumPts >= 1) - { - /* - * The calling program did not allocate space for the - * data so do it here. - */ - (*VDataBase)[CurVar+CurZone*(*NumVars)] = - ALLOC_ARRAY(TotalNumPts, double, "raw data"); - } - } - - if (*IVersion >= 105 && InputIsOk) - { - /* passive variables */ - if ((Boolean_t)GetIoFileInt(ReadTecFileStream, *IVersion, 0, 1, &InputIsOk) && InputIsOk) - { - for (CurVar = 0; CurVar < *NumVars && InputIsOk; CurVar++) - { - IsVarPassive[CurVar] = (Boolean_t)GetIoFileInt(ReadTecFileStream, - *IVersion, - 0, 1, &InputIsOk); - } - } - } - - if (*IVersion >= 101 && InputIsOk) - { - /* variable sharing: equivalent to DupVar for ReadTec */ - if ((Boolean_t)GetIoFileInt(ReadTecFileStream, *IVersion, 0, 1, &InputIsOk) && InputIsOk) - { - for (CurVar = 0; CurVar < *NumVars && InputIsOk; CurVar++) - { - EntIndex_t SharedZone = GetIoFileInt(ReadTecFileStream, *IVersion, - -1, MaxNumZonesOrVars - 1, - &InputIsOk); - if (SharedZone != -1 && InputIsOk) - VarSharesFromZone[CurVar] = SharedZone; - } - } - - /* face neighbor or FE node connectivity sharing */ - if (InputIsOk) - { - EntIndex_t SharedZone = GetIoFileInt(ReadTecFileStream, *IVersion, - -1, MaxNumZonesOrVars - 1, - &InputIsOk); - if (InputIsOk) - ConnectivitySharesFromZone[CurZone] = SharedZone; - } - } - - /* - * Non-shared variable min/max (but not for Zombie zones). - */ - if (*IVersion >= 103 && InputIsOk) - { - for (CurVar = 0; CurVar < *NumVars && InputIsOk; CurVar++) - { - if (VarSharesFromZone[CurVar] == -1 && !IsVarPassive[CurVar]) - { - /* - * Currently ReadTec doesn't do anything with the - * min/max values. - */ - GetNextValue(ReadTecFileStream, FieldDataType_Double, - -LARGEDOUBLE, LARGEDOUBLE, - &InputIsOk); - GetNextValue(ReadTecFileStream, FieldDataType_Double, - -LARGEDOUBLE, LARGEDOUBLE, - &InputIsOk); - } - } - } - - if (InBlockFormat) - { - CurVar = -1; - while (InputIsOk && ((CurVar + 1) < *NumVars)) - { - CurVar++; - if ((CurVar < *NumVars) && (TotalNumPts > 0)) - { - double *CurVPtr = (*VDataBase)[CurVar+CurZone*(*NumVars)]; - J = 0; - if (VarSharesFromZone[CurVar] != -1) - { - LgIndex_t M; - EntIndex_t SourceZone = VarSharesFromZone[CurVar]; - double *SourceVPtr = (*VDataBase)[CurVar+SourceZone*(*NumVars)]; - for (M = 0; M < TotalNumPts; M++) - CurVPtr[M] = SourceVPtr[M]; - } - else if (!IsVarPassive[CurVar]) - { - LocalReadBlock(ReadTecFileStream, - CurVPtr, - VarType[CurVar], - TotalNumPts, - &InputIsOk); - } - } - } - if (!InputIsOk) - ErrMsg(translate("Invalid raw data section of binary file")); - } - else if (TotalNumPts > 0) - { - /* - * Zone is not empty and is in POINT format - */ - J = -1; - if (InputIsOk) - { - LgIndex_t N; - N = 0; - while (InputIsOk && (N < TotalNumPts)) - { - EntIndex_t CurVar; - for (CurVar = 0; InputIsOk && (CurVar < *NumVars); CurVar++) - { - double *CurVPtr = (*VDataBase)[CurVar+CurZone*(*NumVars)]; - if (VarSharesFromZone[CurVar] != -1) - { - EntIndex_t SourceZone = VarSharesFromZone[CurVar]; - double *SourceVPtr = (*VDataBase)[CurVar+SourceZone*(*NumVars)]; - CurVPtr[N] = SourceVPtr[N]; - } - else if (!IsVarPassive[CurVar]) - { - double D = GetNextValue(ReadTecFileStream, - VarType[CurVar], - -LARGEDOUBLE, - LARGEDOUBLE, - &InputIsOk); - - if (InputIsOk && CurVPtr) - CurVPtr[N] = D; - } - } - - if (!InputIsOk) - ErrMsg(translate("Binary datafile corrupted!")); - N++; - } - } - } - - if (InputIsOk && *IVersion < 101) - { - if (ZoneIsFinite) - { - /* - * Pre-version 101 had FE connectivity sharing, - * FECONNECT, information here. - */ - Boolean_t DupConnectivity; - if (*IVersion > 61) - DupConnectivity = GetIoFileInt(ReadTecFileStream, *IVersion, 0, 1, &InputIsOk); - else - DupConnectivity = FALSE; - - if (DupConnectivity) - ConnectivitySharesFromZone[CurZone] = CurZone - 1; /* previous zone */ - else - ConnectivitySharesFromZone[CurZone] = -1; - } - else - ConnectivitySharesFromZone[CurZone] = -1; - } - - if (InputIsOk && ZoneIsFinite && !ZoneIsFEPoly) - { - Boolean_t SkipNodemap; - NodeMap_t *NM = NULL; - NodeMap_t *ONM = NULL; - /* - * Allocate the nodemap ptr if necessary Note that if - * RawDataSpaceAllocated is TRUE then (*NodeMap)[CurZone] - * can either contain a valid address (read the connectivity - * list) or be NULL (skip the list). - */ - if (!RawDataSpaceAllocated && NumKPts*NumJPts >= 1) - { - (*NodeMap)[CurZone] = ALLOC_ARRAY(NumKPts * NumJPts, NodeMap_t, "node map"); - if ((*NodeMap)[CurZone] == NULL) - ErrMsg(translate("Cannot allocate space for connectivity list", - "See the Tecplot User's Manual for a definition of 'connectivity list'")); - } - - if (InputIsOk) - NM = (*NodeMap)[CurZone]; - - SkipNodemap = (NM == NULL); - - if (InputIsOk && ConnectivitySharesFromZone[CurZone] != -1) - { - EntIndex_t SourceZone = ConnectivitySharesFromZone[CurZone]; - if (SourceZone >= CurZone) - { - ErrMsg(translate("Zone %d is attempting to share connectivity " - "with a zone that has not yet been loaded."), - CurZone + 1); - InputIsOk = FALSE; - } - else - { - ONM = (*NodeMap)[SourceZone]; - if (ONM == NULL) - { - ErrMsg(translate("Zone %d is attempting to share connectivity " - "with a zone that is not finite element."), - CurZone + 1); - InputIsOk = FALSE; - } - } - } - - if (InputIsOk) - { - /* load the FE node connectivity */ - for (J = 0; J < NumJPts; J++) - for (I = 0; I < NumKPts; I++) - { - LgIndex_t M; - LgIndex_t L = J * NumKPts + I; - if (ConnectivitySharesFromZone[CurZone] != -1) - M = ONM[L]; - else - M = GetNextI(ReadTecFileStream, &InputIsOk) - 1; - if (!SkipNodemap) - NM[L] = M; - } - } - } - - /* skip over the face neighbor connectivity */ - if (*IVersion >= 101 && InputIsOk) - { - EntIndex_t SharedZone = ConnectivitySharesFromZone[CurZone]; - if (SharedZone == -1 && FNNumBndryConns[CurZone] != 0) - { - LgIndex_t Connection = 0; - while (Connection < FNNumBndryConns[CurZone] && InputIsOk) - { - /* - * Face neighbor connection have the following format for both - * ASCII and binary: - * - * FaceNeighborMode_LocalOneToOne 3 cz,fz,cz - * FaceNeighborMode_LocalOneToMany nz+4 cz,fz,oz,nz,cz1,cz2,...,czn - * FaceNeighborMode_GlobalOneToOne 4 cz,fz,ZZ,CZ - * FaceNeighborMode_GlobalOneToMany 2*nz+4 cz,fz,oz,nz,ZZ1,CZ1,ZZ2,CZ2,...,ZZn,CZn - * - * Where: - * cz = cell in current zone - * fz = face of cell in current zone - * oz = face obsuration flag (only applies to one-to-many): - * 0 = face partially obscured - * 1 = face entirely obscured - * nz = number of cell or zone/cell associations (only applies to one-to-many) - * ZZ = remote Zone - * CZ = cell in remote zone - */ - (void)GetNextI(ReadTecFileStream, &InputIsOk); /* read cz */ - if (!InputIsOk) - ErrMsg(translate("Unexpected end-of-file while reading face neighbor data.")); - - (void)GetNextI(ReadTecFileStream, &InputIsOk); /* read fz */ - - if (InputIsOk) - { - /* - * read FaceNeighborMode_LocalOneToOne: cz || - * FaceNeighborMode_LocalOneToMany: oz || - * FaceNeighborMode_GlobalOneToOne: ZZ || - * FaceNeighborMode_GlobalOneToMany: oz - */ - if (CurZoneSpec->FNMode == FaceNeighborMode_LocalOneToOne) - (void)GetNextI(ReadTecFileStream, &InputIsOk); - else if (CurZoneSpec->FNMode == FaceNeighborMode_LocalOneToMany) - (void)GetNextI(ReadTecFileStream, &InputIsOk); - else if (CurZoneSpec->FNMode == FaceNeighborMode_GlobalOneToOne) - (void)GetNextI(ReadTecFileStream, &InputIsOk); - else if (CurZoneSpec->FNMode == FaceNeighborMode_GlobalOneToMany) - (void)GetNextI(ReadTecFileStream, &InputIsOk); - else - CHECK(FALSE); - - if (CurZoneSpec->FNMode != FaceNeighborMode_LocalOneToOne && InputIsOk) - { - LgIndex_t NumAssociations = 0; - /* - * read FaceNeighborMode_LocalOneToMany: nz || - * FaceNeighborMode_GlobalOneToOne: CZ || - * FaceNeighborMode_GlobalOneToMany: nz - */ - if (CurZoneSpec->FNMode == FaceNeighborMode_LocalOneToMany) - NumAssociations = GetNextI(ReadTecFileStream, &InputIsOk); - else if (CurZoneSpec->FNMode == FaceNeighborMode_GlobalOneToOne) - (void)GetNextI(ReadTecFileStream, &InputIsOk); - else if (CurZoneSpec->FNMode == FaceNeighborMode_GlobalOneToMany) - NumAssociations = GetNextI(ReadTecFileStream, &InputIsOk); - else - CHECK(FALSE); - - if (CurZoneSpec->FNMode != FaceNeighborMode_GlobalOneToOne && InputIsOk) - { - LgIndex_t Assoc; - if (CurZoneSpec->FNMode == FaceNeighborMode_LocalOneToMany) - for (Assoc = 0; Assoc < NumAssociations && InputIsOk; Assoc++) - (void)GetNextI(ReadTecFileStream, &InputIsOk); /* read czn */ - else if (CurZoneSpec->FNMode == FaceNeighborMode_GlobalOneToMany) - for (Assoc = 0; Assoc < NumAssociations && InputIsOk; Assoc++) - { - (void)GetNextI(ReadTecFileStream, &InputIsOk); /* read ZZn */ - (void)GetNextI(ReadTecFileStream, &InputIsOk); /* read CZn */ - } - else - CHECK(FALSE); - - if (InputIsOk) - Connection += NumAssociations; - } - else if (InputIsOk) /* CurZoneSpec->FNMode == FaceNeighborMode_GlobalOneToOne */ - Connection += 1; - } - else if (InputIsOk) /* CurZoneSpec->FNMode == FaceNeighborMode_LocalOneToOne */ - Connection += 1; - - if (!InputIsOk) - ErrMsg(translate("Corrupt input file: invalid face neighbors.")); - } - } - } - }/* face neighbor connectivity */ - /* skip over face map section */ - if (ZoneIsFEPoly && - *IVersion >= 110 && - ConnectivitySharesFromZone[CurZone] != -1 && - InputIsOk) - { - if (!InBlockFormat) - { - ErrMsg(translate("Poly zones must be in block format")); - InputIsOk = FALSE; - } - if (InputIsOk) - { - HgIndex_t NumFaces = CurZoneSpec->NumPtsK; - if (*IVersion == 110) // ...version 111 moved these to the zone header - { - CurZoneSpec->NumFaceNodes = GetNextI(ReadTecFileStream, &InputIsOk); - CurZoneSpec->NumFaceBndryFaces = GetNextI(ReadTecFileStream, &InputIsOk); - CurZoneSpec->NumFaceBndryItems = GetNextI(ReadTecFileStream, &InputIsOk); - } - HgIndex_t TotalNumFaceNodes = CurZoneSpec->NumFaceNodes; - HgIndex_t TotalNumBndryFaces = CurZoneSpec->NumFaceBndryFaces; - HgIndex_t TotalNumBndryItems = CurZoneSpec->NumFaceBndryItems; - if (CurZoneSpec->Type == ZoneType_FEPolyhedron) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, NumFaces + 1, &InputIsOk); - if (InputIsOk) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, TotalNumFaceNodes, &InputIsOk); - if (InputIsOk) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, NumFaces, &InputIsOk); - if (InputIsOk) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, NumFaces, &InputIsOk); - if (TotalNumBndryFaces > 0) - { - if (InputIsOk) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, TotalNumBndryFaces + 1, &InputIsOk); - if (InputIsOk) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, TotalNumBndryItems, &InputIsOk); - if (InputIsOk) - { - if (*IVersion >= 112) - ReadInt32Block(ReadTecFileStream, FALSE, NULL, 0, TotalNumBndryItems, &InputIsOk); - else - ReadInt16Block(ReadTecFileStream, FALSE, NULL, 0, TotalNumBndryItems, &InputIsOk); - } - } - } - }/* face map section */ - } - else - { - ErrMsg(translate("Corrupt input file")); - InputIsOk = FALSE; - } - } - - if (VarSharesFromZone) - FREE_ARRAY(VarSharesFromZone, "VarSharesFromZone"); - if (IsVarPassive) - FREE_ARRAY(IsVarPassive, "IsVarPassive"); - if (ConnectivitySharesFromZone) - FREE_ARRAY(ConnectivitySharesFromZone, "ConnectivitySharesFromZone"); - if (VarType) - FREE_ARRAY(VarType, "VarType"); - - if (!InputIsOk && !RawDataSpaceAllocated) - { - int I; - if (*VDataBase) - { - for (I = 0; I < *NumZones*(*NumVars); I++) - { - if ((*VDataBase)[I]) - FREE_ARRAY((*VDataBase)[I], "vdatabase array"); - } - FREE_ARRAY(*VDataBase, "vdatabase pointer array"); - } - - - if (*NodeMap) - { - for (I = 0; I < *NumZones; I++) - { - if ((*NodeMap)[I]) - FREE_ARRAY((*NodeMap)[I], "connectivity list"); - } - FREE_ARRAY(*NodeMap, "connectivity pointer array"); - } - } - } /*Reading Raw Data*/ - - if (FNNumBndryConns != NULL) - FREE_ARRAY(FNNumBndryConns, "FNNumBndryConns"); - if (ZoneSpecList) - ArrayListDealloc(&ZoneSpecList, ZoneSpecItemDestructor, 0); - - if (ReadTecFileStream) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else - TP_FCLOSE(ReadTecFileStream->File); - free(ReadTecFileStream); -#endif - } - return (InputIsOk); -} - - -void * STDCALL TecAlloc(size_t size) -{ - return (void *)ALLOC_ARRAY(size, char, "TecAlloc"); -} - -void STDCALL TecFree(void *ptr) -{ - /* Hack to remove delete warning... */ - char *Tmp = (char *)ptr; - FREE_ARRAY(Tmp, "TecAlloc"); -} - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/filestream.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/filestream.cpp deleted file mode 100644 index 049f99ed74..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/filestream.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* - ***************************************************************** - ***************************************************************** - ******* ******** - ****** Copyright (C) 1988-2008 Tecplot, Inc. ******* - ******* ******** - ***************************************************************** - ***************************************************************** -*/ - -#define FILESTREAMMODULE - -#include "GLOBAL.h" -#include "TASSERT.h" -#include "ALLOC.h" -#include "SYSTEM.h" -#include "FILESTREAM.h" - -/** - */ -FileStream_s *FileStreamAlloc(FILE *File, - Boolean_t IsByteOrderNative) -{ - REQUIRE(VALID_REF(File) || File == NULL); - - FileStream_s *Result = ALLOC_ITEM(FileStream_s, "FileStream"); - if (Result != NULL) - { - Result->File = File; - Result->IsByteOrderNative = IsByteOrderNative; - } - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - */ -void FileStreamDealloc(FileStream_s **FileStream) -{ - REQUIRE(VALID_REF(FileStream)); - REQUIRE(VALID_REF(*FileStream) || *FileStream == NULL); - - if (*FileStream != NULL) - { - FREE_ITEM(*FileStream, "FileStream"); - *FileStream = NULL; - } - - ENSURE(*FileStream == NULL); -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/geom2.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/geom2.cpp deleted file mode 100644 index 198f096fd9..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/geom2.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#define GEOM2MODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "ALLOC.h" - -#include "GEOM.h" -#include "TEXT.h" -#include "STRUTIL.h" -#include "GEOM2.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "DATASET0.h" - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# if 0 /* 3D geometry arrowheads are not drawn at this time. */ -#endif -# if 0 /* 3D geometry arrowheads are not drawn at this time. */ -# endif -#if 0 -#endif -# ifndef NO_ASSERTS -# endif -# ifndef NO_ASSERTS -# endif -#endif /* TECPLOTKERNEL */ - - -FieldDataType_e GetGeomFieldDataType(Geom_s const* Geom) -{ - FieldDataType_e Result; - - REQUIRE(VALID_REF(Geom)); - REQUIRE(VALID_REF(Geom->GeomData.Generic.V1Base)); - - Result = Geom->DataType; - - ENSURE(VALID_GEOM_FIELD_DATA_TYPE(Result)); - /* - * Check that the geom's field data arrays (if they exist) - * have the same type as the geometry. - */ - ENSURE(IMPLICATION(VALID_REF(Geom->GeomData.Generic.V1Base), Result == GetFieldDataType(Geom->GeomData.Generic.V1Base))); - ENSURE(IMPLICATION(VALID_REF(Geom->GeomData.Generic.V2Base), Result == GetFieldDataType(Geom->GeomData.Generic.V2Base))); - ENSURE(IMPLICATION(VALID_REF(Geom->GeomData.Generic.V3Base), Result == GetFieldDataType(Geom->GeomData.Generic.V3Base))); - - return Result; -} diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/q_msg.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/q_msg.cpp deleted file mode 100644 index 6a20cf5604..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/q_msg.cpp +++ /dev/null @@ -1,415 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" - -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define Q_MSGMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "ALLOC.h" -#include "ARRLIST.h" - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE -#if defined MOTIF -#endif -#if defined MSWIN -#endif -#endif -#endif - -#include "STRUTIL.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -using std::string; -using namespace tecplot::strutil; -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#define MAXCHARACTERSPERLINE 60 -/* - * Wrap a string so it contains at most CharactersPerLine - * characters. Embedded newlines are left alone. Spaces - * following newlines are also left alone. - */ -Boolean_t WrapString(const char *OldString, - char **NewString) -{ - size_t L; - if (OldString == NULL) - return (FALSE); - - /* - * Assume Old string has ample spaces. Will only be - * replacing some spaces with newlines and removing - * other spaces. New string can be allocated to be - * same length as old string. - */ - - L = strlen(OldString); - *NewString = ALLOC_ARRAY(L + 1, char, "new error message string"); - if (*NewString == NULL) - return (FALSE); - - strcpy(*NewString, OldString); - - if (L > MAXCHARACTERSPERLINE) - { - char *LineStart = *NewString; - char *LastWord = *NewString; - char *WPtr = *NewString; - while (WPtr && (*WPtr != '\0')) - { - size_t CurLen; - /* - * Find next hard newline. If there is one befor the - * line should be chopped then reset the Last Word to - * be at the first word after the newline. - */ - WPtr = strchr(LineStart, '\n'); - if (WPtr && ((WPtr - LineStart) < MAXCHARACTERSPERLINE)) - { - WPtr++; - while (*WPtr == '\n') - WPtr++; - LineStart = WPtr; - /* - * Skip over trailing spaces. Special handling to - * allow indent after hard newline. - */ - while (*WPtr == ' ') - WPtr++; - LastWord = WPtr; - continue; - } - /* - * Find next "word" - */ - WPtr = strchr(LastWord, ' '); - if (WPtr != NULL) - { - while (*WPtr == ' ') - WPtr++; - } - - if (WPtr == NULL) - { - CurLen = strlen(LineStart); - } - else - { - CurLen = WPtr - LineStart; - } - - if (CurLen > MAXCHARACTERSPERLINE) - { - /* - * Line is too long. Back up to previous - * word and replace preceeding space with - * a newline. - */ - if (LastWord == LineStart) - { - /* - * Bad news, line has very long word. - */ - if (WPtr && (*WPtr != '\0')) - { - *(WPtr - 1) = '\n'; - LastWord = WPtr; - } - } - else - { - *(LastWord - 1) = '\n'; - } - LineStart = LastWord; - } - else - LastWord = WPtr; - } - } - return (TRUE); -} - - -static void SendWarningToFile(FILE *F, - const char *S) -{ - char *S2; - REQUIRE(VALID_REF(F)); - REQUIRE(VALID_REF(S)); - if (WrapString(S, &S2)) - { - fprintf(F, "Warning: %s\n", S2); - FREE_ARRAY(S2, "temp warning string"); - } -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - -/** - * Show the warning message. Note that the Format string can be the only - * argument, in which case it is essentially the warning message itself. - * - * param Format - * C Format string or a simple message. - * param ... - * Zero or more variable arguments. The number of arguments must correspond - * to the placeholders in the format string. - */ -void Warning(TranslatedString Format, - ...) /* zero or more arguments */ -{ - REQUIRE(!Format.isNull()); - - static Boolean_t InWarning = FALSE; /* ...used to prevent recursive deadlock */ - if (!InWarning) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - InWarning = TRUE; - { - /* - * Attempt to format the string. Failing that simply use the original format - * string argument which, if we ran out of memory while formatting, is - * probably just an warning message saying that we ran out of memory in some - * previous operation anyway. - */ - Boolean_t cleanUp = TRUE; - - va_list Arguments; - va_start(Arguments, Format); - char* message = vFormatString(Format.c_str(), Arguments); - va_end(Arguments); - - if (message == NULL) - { - cleanUp = FALSE; // ...this boolean allows us to "carefully" cast away the const'ness - message = (char*)Format.c_str(); - } - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#ifdef MSWIN -#endif -#if defined UNIXX -#endif -#if defined MSWIN -#endif -#else /* !TECPLOTKERNEL */ - { - SendWarningToFile(stderr, message); - } -#endif - - if (cleanUp) - FREE_ARRAY(message, "message"); - } - InWarning = FALSE; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - } -} - - -static void SendErrToFile(FILE *File, - const char *Msg) -{ - char *FormattedMsg; - REQUIRE(VALID_REF(File)); - REQUIRE(VALID_REF(Msg)); - if (WrapString(Msg, &FormattedMsg)) - { - fprintf(File, "Err: %s\n", FormattedMsg); - FREE_ARRAY(FormattedMsg, "temp error string"); - } - else - fprintf(File, "Err: %s\n", Msg); -} - - -/* Fall-back ErrMsg procedure when nothing else works */ -static void DefaultErrMsg(const char *Msg) -{ - REQUIRE(VALID_REF(Msg)); - -#ifdef MSWIN -#ifdef TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else - MessageBox(NULL, Msg, "Error", MB_OK | MB_ICONERROR); -#endif -#else - SendErrToFile(stderr, Msg); -#endif -} - -static void PostErrorMessage(TranslatedString Format, - va_list Arguments) -{ - REQUIRE(!Format.isNull()); - - /* - * Attempt to format the string. Failing that simply use the original format - * string argument which, if we ran out of memory while formatting, is - * probably just an error message saying that we ran out of memory in some - * previous operation anyway. - */ - Boolean_t cleanUp = TRUE; - char* messageString = vFormatString(Format.c_str(), Arguments); - if (messageString == NULL) - { - cleanUp = FALSE; // ...this boolean allows us to "carefully" cast away the const'ness - messageString = (char*)Format.c_str(); - } - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#ifdef MSWIN -#endif -#if defined UNIXX -#if !defined ENGINE -#endif -#endif -#else /* !TECPLOTKERNEL */ - { - DefaultErrMsg(messageString); - } -#endif - - /* cleanup if we allocated the string */ - if (cleanUp) - FREE_ARRAY(messageString, "messageString"); -} - -/* - * NOTES: - * This function is thread safe in that it may be safely called by multiple - * threads however when running interactively only the first error message is - * queued for display on idle. In batch mode all messages are sent to the - * batch log file. - */ -void vErrMsg(TranslatedString Format, - va_list Arguments) -{ - REQUIRE(!Format.isNull()); - - static Boolean_t InErrMsg = FALSE; /* ...used to prevent recursive deadlock */ - if (!InErrMsg) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - InErrMsg = TRUE; - { - PostErrorMessage(Format, Arguments); - } - InErrMsg = FALSE; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - } -} - -/** - * Show the error message. Note that the Format string can be the only - * argument, in which case it is essentially the error message itself. - * - * @param Format - * C Format string or a simple message. - * @param ... - * Zero or more variable arguments. The number of arguments must correspond - * to the placeholders in the format string. - */ -void ErrMsg(TranslatedString Format, - ...) /* zero or more arguments */ -{ - REQUIRE(!Format.isNull()); - - va_list Arguments; - va_start(Arguments, Format); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#else - PostErrorMessage(Format, Arguments); -#endif - va_end(Arguments); -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined ENGINE -#endif -#if !defined ENGINE -#if defined MOTIF -#endif -#if defined MSWIN -#endif -#endif -#if !defined ENGINE -#if defined MOTIF -#endif -#if defined MSWIN -#endif -#endif -#if !defined ENGINE -#if defined MOTIF -#endif /* MOTIF */ -#if defined MSWIN -#endif -#if defined MOTIF -#endif /* MOTIF */ -#endif -#if !defined ENGINE -#endif -#endif /* TECPLOTKERNEL */ - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/q_unicode.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/q_unicode.cpp deleted file mode 100644 index 4d4db61e1d..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/q_unicode.cpp +++ /dev/null @@ -1,447 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" - -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -#define Q_UNICODEMODULE - -#include "GLOBAL.h" -#include "TASSERT.h" - -#if !defined TECPLOTKERNEL -#include "TranslatedString.h" -#endif - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#include "ALLOC.h" - -#include "Q_UNICODE.h" - -using namespace std; - -namespace tecplot -{ -namespace strutil -{ - -typedef std::map EnvStringPoolMap_t; -static EnvStringPoolMap_t mapEnvStringPool; - - -#if defined MSWIN - - -string WStringToString(wstring str) -{ - REQUIRE("str is any wide string"); - string Result = WideCharToUtf8(str.c_str()); - - ENSURE("Result is any string"); - return Result; -} - -wstring StringToWString(string str) -{ - REQUIRE("str is any string"); - - wstring Result = Utf8ToWideChar(str.c_str()); - - ENSURE("Result is any string"); - return Result; -} -#endif - -/************************************************ - * Utf8Api - ************************************************/ -#define VALID_CODE_PAGE(cp) \ - ( (cp) == 932 || (cp) == CP_UTF8 || (cp) == CP_ACP || (cp) == CP_OEMCP || (cp) == CP_THREAD_ACP ) - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined MSWIN && !defined ENGINE -#endif -#if defined MSWIN -#endif -#endif - - -#if defined MSWIN - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -std::string WideCharToMultiByte(const wchar_t* WideString, - unsigned int CodePage) -{ - REQUIRE(VALID_REF(WideString)); - REQUIRE(VALID_CODE_PAGE(CodePage)); - - string strResult; - wstring wString(WideString); - - - if (wString.length() > 0) - { - size_t nLen = - (size_t) ::WideCharToMultiByte(CodePage, - 0, - wString.c_str(), - -1, - NULL, - 0, - NULL, - NULL); - if (nLen > 0) - { - char *pBuffer = ALLOC_ARRAY(nLen, char, "pBuffer"); - - VERIFY(::WideCharToMultiByte(CodePage, - 0, - WideString, - (int)(wString.length() + 1), - pBuffer, - (int)nLen, - NULL, - NULL) != 0); - - strResult = pBuffer; - FREE_ARRAY(pBuffer, "pBuffer"); - - } - else - { - // this should never be an error - CHECK(FALSE); - } - } - else - { - // output 'str' remains empty - } - - ENSURE("strResult is a valid STL string"); - return strResult; - - -} - -wstring MultiByteToWideChar(const char *UTF8String, - unsigned int CodePage) -{ - REQUIRE(VALID_REF(UTF8String)); - REQUIRE(VALID_CODE_PAGE(CodePage)); - - wstring strResult; - string UTF8str(UTF8String); - - size_t wLen; - - if (UTF8str.length() > 0) - { - wLen = - (size_t) ::MultiByteToWideChar(CodePage, - 0, - UTF8str.c_str(), - -1, - NULL, - 0); - if (wLen > 0) - { - wchar_t *wBuffer = ALLOC_ARRAY(wLen + 1, wchar_t, "wBuffer"); - VERIFY(::MultiByteToWideChar(CodePage, - 0, - UTF8str.c_str(), - (int)(UTF8str.length() + 1), - wBuffer, - (int)wLen) != 0); - - strResult = wBuffer; - FREE_ARRAY(wBuffer, "wBuffer"); - - } - else - { - CHECK(FALSE); // We should never get an error here - } - } - else - { - // strResult is left empty - } - - ENSURE("strResult is a valid CString"); - - wstring strRet(strResult); - return strRet; - -} -#endif - - - -#if defined MSWIN -std::string WideCharToUtf8(const wchar_t *str) -{ - REQUIRE(VALID_REF(str)); /* really cannot be NULL - 2007-10-22 CAM/DTO */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - UINT CodePage = CP_ACP; - - string Result = ""; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - Result = WideCharToMultiByte(str, CodePage); - - ENSURE("Result is any string"); - return Result; -} - -wstring Utf8ToWideChar(const char *str) -{ - REQUIRE(VALID_REF(str)); /* really cannot be NULL - 2007-10-22 CAM/DTO */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - UINT CodePage = CP_ACP; - wstring Result; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - Result = MultiByteToWideChar(str, CodePage); - - ENSURE("Result is any string"); - return Result; -} -#endif - - -Boolean_t IsValidUtf8LeadByte(Byte_t uch) -{ - REQUIRE("uch is any byte"); - Boolean_t Result = - uch <= 0x7F || - (uch >= 0xC0 && uch <= 0xDF) || - (uch >= 0xE0 && uch <= 0xEF) || - (uch >= 0xF0 && uch <= 0xF4); - - ENSURE(VALID_BOOLEAN(Result)); - return Result; -} - -Boolean_t IsValidUtf8ContinuingByte(Byte_t uch) -{ - REQUIRE("uch is any char"); - - Boolean_t Result = - (uch >= 0x80 && uch <= 0xBF); - - ENSURE(VALID_BOOLEAN(Result)); - return Result; -} - -Boolean_t IsValidUtf8Byte(Byte_t uch) -{ - REQUIRE("uch is any char"); - Boolean_t Result = - IsValidUtf8LeadByte(uch) || - IsValidUtf8ContinuingByte(uch); - - REQUIRE(VALID_BOOLEAN(Result)); - return Result; -} - - -Boolean_t ShouldConvertWideStringToUtf8String(const wchar_t *str) -{ - Boolean_t Result = FALSE; - -#if defined MSWIN && defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* MSWIN and TECPLOTKERNEL */ - - ENSURE(VALID_BOOLEAN(Result)); - return Result; - -} - -Boolean_t IsValidUtf8String(const char *str) -{ - Boolean_t IsValid = TRUE; - REQUIRE(VALID_REF(str)); - -#if defined MSWIN - size_t len = strlen(str); - Boolean_t InUtf8Sequence = FALSE; - int Utf8SequenceCount = 0; - int MaxUtf8SequenceCount = 0; - - /* we want to process the final \0, so go to <= len */ - - for (size_t ii = 0; IsValid && ii <= len; ii++) - { - Byte_t uch = (Byte_t)str[ii]; - - if (uch <= 0x7F) - { - /* This must be the end of a sequence, - so the sequence count must match - the max sequence count */ - - InUtf8Sequence = FALSE; - IsValid = (Utf8SequenceCount == MaxUtf8SequenceCount); - Utf8SequenceCount = 0; - MaxUtf8SequenceCount = 0; - } - else if (uch >= 0x80 && uch <= 0xBF) - { - /* Continuing byte in a multi byte sequence */ - if (InUtf8Sequence) - { - Utf8SequenceCount++; - } - else - { - IsValid = FALSE; - } - - } - else if (uch >= 0xC0 && uch <= 0xDF) - { - /* Lead byte of 000080-0007FF */ - IsValid = (Utf8SequenceCount == MaxUtf8SequenceCount); - InUtf8Sequence = TRUE; - Utf8SequenceCount = 0; - MaxUtf8SequenceCount = 1; - } - else if (uch >= 0xE0 && uch <= 0xEF) - { - /* Lead byte of 000800-00FFFF */ - IsValid = (Utf8SequenceCount == MaxUtf8SequenceCount); - InUtf8Sequence = TRUE; - Utf8SequenceCount = 0; - MaxUtf8SequenceCount = 2; - } - else if (uch >= 0xF0 && uch <= 0xF4) - { - /* Lead byte of 010000-10FFFF */ - IsValid = (Utf8SequenceCount == MaxUtf8SequenceCount); - Utf8SequenceCount = 0; - InUtf8Sequence = TRUE; - MaxUtf8SequenceCount = 3; - } - - else - { - /* Invalid Utf 8 */ - IsValid = FALSE; - } - } -#endif - - ENSURE(VALID_BOOLEAN(IsValid)); - return IsValid; -} - - -/** - */ -Boolean_t IsNullOrZeroLengthString(const char *str) -{ - REQUIRE(VALID_REF_OR_NULL(str)); - - Boolean_t Result = (str == NULL || strlen(str) == 0); - - ENSURE(VALID_BOOLEAN(Result)); - return Result; -} - -/** - */ -Boolean_t IsNullOrZeroLengthString(TranslatedString TS) -{ - REQUIRE(TS.isValid()); - return TS.isNullOrZeroLength(); -} - - -} -} - -#if defined MSWIN && TECPLOTKERNEL && (!defined NO_ASSERTS || defined CHECKED_BUILD) -/* Keeping Trace out of the release builds - will verify for us that it has been optimized away. - - See the definition of TRACE in MASTER.h for - more information... */ -void MSWinTrace(const char *Format, ...) -{ - REQUIRE(VALID_REF(Format)); - - const int BufferSize = 512; /* Only print the first 512 characers */ - va_list Arguments; - - /* Don't use ALLOC_ARRAY here */ - char *buffer = new char[BufferSize]; - memset(buffer, 0, BufferSize); - - va_start(Arguments, Format); - _vsnprintf(buffer, BufferSize - 1, Format, Arguments); - va_end(Arguments); - - ::OutputDebugStringA(buffer); - - delete [] buffer; -} - - - -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/set.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/set.cpp deleted file mode 100644 index 2f6252a4c9..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/set.cpp +++ /dev/null @@ -1,696 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - - -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - - - -#define SETMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "ALLOC.h" -#include "SET.h" - - -/* * SET FUNCTIONS * */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if InitNumZones > InitNumVars -#else -#endif -#if ZoneExpansionFactor > VarExpansionFactor -#else -#endif -#else -#define SetInitSize (PadOut(1,SetBitSize)) -#define SetExpansionFactor 2 -#endif - -using namespace tecplot::strutil; - -/* - */ -Set_pa AllocSet(Boolean_t show_error_msg) -{ - Set_pa Set = ALLOC_ITEM(struct _Set_a, "Set header"); - if (Set) - { - Set->size = SetInitSize; - Set->data = ALLOC_ARRAY(SetInitSize / SetBitSize, SetData_t, "Set data"); - if (Set->data == NULL) - DeallocSet(&Set); - else - ClearSet(Set); - } - if ((Set == NULL) && show_error_msg) - { -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else - fprintf(stderr, "Out of memory for sets"); -# endif - } - return Set; -} /* AllocSet() */ - - -/* - */ -void DeallocSet(Set_pa *Set) -{ - if (Set && *Set) - { - if ((*Set)->data) - FREE_ARRAY((*Set)->data, "Set data"); - FREE_ITEM(*Set, "Set header"); - *Set = NULL; - } -} /* DeallocSet() */ - - -/** - * This function adapts the DeallocSet function to work with the - * ArrayList's deallocation callback. - */ -Boolean_t SetItemDestructor(void *ItemRef, - ArbParam_t ClientData) -{ - Set_pa *SetRef = (Set_pa *)ItemRef; - - REQUIRE(VALID_REF(SetRef)); - REQUIRE(VALID_REF(*SetRef) || *SetRef == NULL); - - if (*SetRef != NULL) - DeallocSet(SetRef); - - ENSURE(*SetRef == NULL); - return TRUE; -} - - -/* - */ -Boolean_t ExpandSet(Set_pa Set, - SetIndex_t max_val, - Boolean_t show_error_msg) -{ - SetData_t *data; - long new_size; - - REQUIRE(max_val >= 0); - - if (!Set) - { - if (show_error_msg) - { -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else - fprintf(stderr, "Null Set expand"); -# endif - } - return FALSE; - } - - if (max_val <= Set->size) - return TRUE; - - new_size = Set->size; - while (new_size < max_val) - new_size *= SetExpansionFactor; - - new_size = PadOut(new_size, SetBitSize); - - data = ALLOC_ARRAY(new_size / SetBitSize, SetData_t, "new Set data"); - - if (!data) - { - if (show_error_msg) - { -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else - fprintf(stderr, "Out of memory for sets"); -# endif - } - return FALSE; - } - size_t old_set_size_in_bytes = sizeof(data[0]) * (Set->size / SetBitSize); - memcpy(data, Set->data, old_set_size_in_bytes); - - size_t new_set_size_in_bytes = sizeof(data[0]) * (new_size / SetBitSize); - size_t numBytesToReset = new_set_size_in_bytes - old_set_size_in_bytes; - memset(((char*)data) + old_set_size_in_bytes, 0, numBytesToReset); - - FREE_ARRAY(Set->data, "old Set data"); - Set->data = data; - Set->size = new_size; - return TRUE; -} /* ExpandSet() */ - - -/* - */ -Boolean_t CopySet(Set_pa dst, - Set_pa src, - Boolean_t show_error_msg) -{ - if (dst && dst->data && - src && src->data && - ExpandSet(dst, src->size, show_error_msg)) - { - SetIndex_t src_size_in_words = src->size / SetBitSize; - size_t numBytesToCopy = sizeof(dst->data[0]) * src_size_in_words; - memcpy(dst->data, src->data, numBytesToCopy); - - SetIndex_t dst_size_in_words = dst->size / SetBitSize; - CHECK(dst_size_in_words>=src_size_in_words); // ...guaranteed by above ExpandSet() call - size_t numBytesToReset = sizeof(dst->data[0]) * (dst_size_in_words - src_size_in_words); - memset((char*)(dst->data + src_size_in_words), 0, numBytesToReset); - - return TRUE; - } - else - return FALSE; -} /* CopySet() */ - - -/* - */ -Boolean_t AppendSet(Set_pa dst, - Set_pa src, - Boolean_t show_error_msg) -{ - if (dst && dst->data && - src && src->data) - { - SetIndex_t member; - ForAllMembersInSet(member, src) - { - if (!AddToSet(dst, member, TRUE)) - return FALSE; - } - return TRUE; - } - else - return FALSE; -} /* AppendSet() */ - - -/* - */ -void ClearSet(Set_pa Set) -{ - if (Set && Set->data) - memset(Set->data, 0, Set->size / SetBitSize * sizeof(Set->data[0])); -} /* ClearSet() */ - - -#if defined USE_FUNCTIONS_FOR_SETS -/* - */ -Boolean_t AddToSet(Set_pa Set, - SetIndex_t member, - Boolean_t show_error_msg) -{ - REQUIRE(member >= 0); - if (Set && - Set->data && - ((member + 1 <= Set->size) || ExpandSet(Set, member + 1, show_error_msg))) - { - SetIndex_t word = member / SetBitSize; - SetData_t bit = (SetData_t)1 << (member % SetBitSize); - Set->data[word] |= bit; - return TRUE; - } - else - return FALSE; -} /* AddToSet() */ -#endif - - -/* - */ -void RemoveFromSet(Set_pa Set, - SetIndex_t member) -{ - REQUIRE(member >= 0); - if (Set && (member < Set->size) && Set->data) - { - SetIndex_t word = member / SetBitSize; - SetData_t bit = (SetData_t)1 << (member % SetBitSize); - Set->data[word] &= (((SetData_t) - 1) ^ bit); - } -} /* RemoveFromSet() */ - - -/** - * Similar to RemoveFromSet except it shifts the Set. - */ -void DeleteSetMember(Set_pa Set, - SetIndex_t Member) -{ - SetIndex_t LastMember; - - REQUIRE(VALID_REF(Set)); - REQUIRE(Member >= 0); - - LastMember = GetPrevMember(Set, BAD_SET_VALUE); - if (Member <= LastMember) - { - ShiftSet(Set, Member + 1, LastMember, -1); - RemoveFromSet(Set, LastMember); - } -} - - -/** - * Similar to AddToSet except that if the new member is within the currently - * defined set the members are shifted accordingly. - */ -Boolean_t InsertSetMember(Set_pa Set, - SetIndex_t Member, - Boolean_t ShowErrMsg) -{ - Boolean_t IsOk = TRUE; - SetIndex_t OrigLastMember; - - REQUIRE(VALID_REF(Set)); - - /* first, determine if we need to shift the set */ - OrigLastMember = GetPrevMember(Set, BAD_SET_VALUE); - if (Member <= OrigLastMember) - { - IsOk = ExpandSet(Set, (OrigLastMember + 1) + 1, ShowErrMsg); - ShiftSet(Set, Member, OrigLastMember, 1); - } - - if (IsOk) - IsOk = AddToSet(Set, Member, ShowErrMsg); - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - -#if defined USE_FUNCTIONS_FOR_SETS -/* - */ -Boolean_t InSet(Set_pa Set, - SetIndex_t member) -{ - /* - * Sometimes InSet is called with negative numbers. This is not correct, but - * its what we have to work with. Maybe some day, we can make this assertion. - REQUIRE(member>=0); - */ - if (Set && (0 <= member && member < Set->size)) - { - SetIndex_t word = member / SetBitSize; - SetData_t bit = (SetData_t)1 << (member % SetBitSize); - return (Set->data[word]&bit) != 0; - } - else - return FALSE; -} /* InSet() */ -#endif - - -/* - */ -Boolean_t IsEmpty(Set_pa Set) -{ - if (Set && Set->data) - { - SetIndex_t set_size_in_words = Set->size / SetBitSize; - SetIndex_t word; - for (word = 0; word < set_size_in_words; word++) - if (Set->data[word] != 0) - return FALSE; - } - return TRUE; -} /* IsEmpty() */ - - -/* - */ -Boolean_t HasVoids(Set_pa Set) -{ - Boolean_t Result = FALSE; - SetIndex_t ContiguousMember = 0; - SetIndex_t Member = 0; - - REQUIRE(VALID_REF(Set)); - - /* look for voids in the set */ - ForAllMembersInSet(Member, Set) - { - if (Member == ContiguousMember) - { - ContiguousMember++; - } - else - { - Result = TRUE; - break; - } - } - - ENSURE(VALID_BOOLEAN(Result)); - return Result; -} - - -/* - */ -SetIndex_t MemberCount(Set_pa Set) -{ - SetIndex_t count = 0; - if (Set && Set->data) - { - SetIndex_t set_size_in_words = Set->size / SetBitSize; - SetIndex_t word; - for (word = 0; word < set_size_in_words; word++) - { - SetData_t word_val = Set->data[word]; - while (word_val) - { - if (word_val&1) - count++; - word_val = word_val >> 1; - } - } - } - return count; -} /* MemberCount() */ - - -/* - */ -SetIndex_t GetNextMember(Set_pa Set, - SetIndex_t start_at) -{ - SetIndex_t next_member = BAD_SET_VALUE; - if (Set && Set->data) - { - SetIndex_t set_size_in_words = Set->size / SetBitSize; - SetIndex_t word; - SetData_t word_val = 0; - int bit; - if (start_at == BAD_SET_VALUE) - { - word = 0; - bit = 0; - if (word < set_size_in_words) - word_val = Set->data[0]; - } - else if (start_at + 1 < Set->size) - { - word = (start_at + 1) / SetBitSize; - bit = (start_at + 1) % SetBitSize; - if (word < set_size_in_words) - word_val = Set->data[word] >> bit; - } - else - { - return BAD_SET_VALUE; - } - while ((word < set_size_in_words) && (word_val == 0)) - { - word++; - bit = 0; - if (word < set_size_in_words) - word_val = Set->data[word]; - } - if (word < set_size_in_words) - { - while (!(word_val&1)) - { - word_val >>= 1; - bit++; - } - next_member = word * SetBitSize + bit; - } - } - return next_member; -} /* GetNextMember() */ - - -/* - */ -SetIndex_t GetPrevMember(Set_pa Set, - SetIndex_t start_at) -{ - SetIndex_t next_member = BAD_SET_VALUE; - if (Set && Set->data) - { - SetIndex_t set_size_in_words = Set->size / SetBitSize; - SetIndex_t word; - SetData_t word_val = 0; - int bit; - if (start_at == BAD_SET_VALUE) - { - word = set_size_in_words - 1; - bit = SetBitSize - 1; - if (word >= 0) - word_val = Set->data[word]; - } - else if (start_at > 0) - { - word = (start_at - 1) / SetBitSize; - bit = (start_at - 1) % SetBitSize; - if (word >= 0) - word_val = Set->data[word] << (SetBitSize - bit - 1); - } - else - { - return BAD_SET_VALUE; - } - while ((word >= 0) && (word_val == 0)) - { - word--; - bit = SetBitSize - 1; - if (word >= 0) - word_val = Set->data[word] << (SetBitSize - bit - 1); - } - if (word >= 0) - { - while (!(word_val&SetLastBit)) - { - word_val <<= 1; - bit--; - } - next_member = word * SetBitSize + bit; - } - } - return next_member; -} /* GetPrevMember() */ - - -/* - */ -Boolean_t EqualSets(Set_pa set1, - Set_pa set2) -{ - SetIndex_t set1_size_in_words, - set2_size_in_words, - min_set_size_in_words, - ii; - if (!set1 || !set2) - return FALSE; - - set1_size_in_words = set1->size / SetBitSize; - set2_size_in_words = set2->size / SetBitSize; - min_set_size_in_words = MIN(set1_size_in_words, set2_size_in_words); - - for (ii = 0; ii < min_set_size_in_words; ii++) - if (set1->data[ii] != set2->data[ii]) - return FALSE; - for (ii = min_set_size_in_words; ii < set1_size_in_words; ii++) - if (set1->data[ii] != 0) - return FALSE; - for (ii = min_set_size_in_words; ii < set2_size_in_words; ii++) - if (set2->data[ii] != 0) - return FALSE; - - return TRUE; - -} /* EqualSets() */ - - -Boolean_t IsSubSet(Set_pa childset, - Set_pa parentset) -{ - SetIndex_t s; - - ForAllMembersInSet(s, childset) - { - if (!InSet(parentset, s)) - return (FALSE); - } - - return (TRUE); - -} /* IsSubSet() */ - - - - - - -/* - * functions added 11/7 by byron. These are roughed in for now and could - * stand to be optimized later..... - */ - -/* - * Return the number of members in a set that preceed a given member. - */ - -SetIndex_t MemberOffset(Set_pa Set, - SetIndex_t Member) -{ - SetIndex_t I; - SetIndex_t Offset = -1; - if (InSet(Set, Member)) - { - for (I = 0; I <= Member; I++) - { - if (InSet(Set, I)) - Offset++; - } - } - return (Offset); -} - -/* - * Return the position in the set of the nth member of a set. - */ -SetIndex_t OffsetMember(Set_pa Set, - SetIndex_t Offset) -{ - SetIndex_t I; - SetIndex_t Member = BAD_SET_VALUE; - for (I = 0; I <= Offset; I++) - { - Member = GetNextMember(Set, Member); - if (Member == BAD_SET_VALUE) - break; - } - return (Member); -} - -Boolean_t CopySetMember(Set_pa DstSet, - SetIndex_t DstOffset, - Set_pa SrcSet, - SetIndex_t SrcOffset) -{ - if (InSet(SrcSet, SrcOffset)) - return (AddToSet(DstSet, DstOffset, TRUE)); - else - RemoveFromSet(DstSet, DstOffset); - return (TRUE); -} - - - -/* - * Initial: - * v---ShiftPos1 v--ShiftPos2 - * +-------------------------------------+ - * | | | | | | | |x| | | | | | | |x| | | | - * +-------------------------------------+ - * - * Shift +2 - * v---ShiftPos1 v--ShiftPos2 - * +-------------------------------------+ - * | | | | | | | | | |x| | | | | | | |x| | - * +-------------------------------------+ - * - * - * Shift all bits between ShiftPos1 and ShiftPos2 - * by ShiftAmount. The bits that the shift - * replaces fill in the hole left by the shift - * - * - */ -void ShiftSet(Set_pa Set, - SetIndex_t ShiftPos1, - SetIndex_t ShiftPos2, - SetIndex_t ShiftAmount) -{ - Set_pa NewSet; - SetIndex_t DPos; - SetIndex_t SPos; - - if ((Set == NULL) || (IsEmpty(Set))) - return; - - NewSet = AllocSet(TRUE); - - if (NewSet == NULL) - return; - - if (!CopySet(NewSet, Set, TRUE)) - return; - - if (ShiftAmount < 0) - { - DPos = ShiftPos2; - SPos = ShiftPos1 - 1; - while (DPos > ShiftPos2 + ShiftAmount) - CopySetMember(NewSet, DPos--, Set, SPos--); - SPos = ShiftPos2; - while (SPos >= ShiftPos1) - CopySetMember(NewSet, DPos--, Set, SPos--); - } - else if (ShiftAmount > 0) - { - DPos = ShiftPos1; - SPos = ShiftPos2 + 1; - while (DPos < ShiftPos1 + ShiftAmount) - CopySetMember(NewSet, DPos++, Set, SPos++); - SPos = ShiftPos1; - while (SPos <= ShiftPos2) - CopySetMember(NewSet, DPos++, Set, SPos++); - } - CopySet(Set, NewSet, TRUE); - DeallocSet(&NewSet); -} - - - diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/stdafx.h b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/stdafx.h deleted file mode 100644 index 066d102e7c..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/stdafx.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#if !defined STDAFX_H_ -# define STDAFX_H_ - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -/* - * stdafx.h : include file for standard system include files, - * or project specific include files that are used frequently, but - * are changed infrequently - * Used for Windows only - */ -#if defined _WIN32 - -/* - * Set NDEBUG before including "custafx.h" since that file may - * use NDEBUG. (In fact, for SmartHeap builds this is the case.) - * CAM 2007-04-11 - * - * Previous comment: "Note that _DEBUG is defined by the Windows compiler - * if any of the multi-threaded DLL runtime libraries are used." - */ -#if !defined _DEBUG -#if !defined NDEBUG -#define NDEBUG -#endif -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -#if !defined MSWIN -#define MSWIN -#endif - -#define ENGLISH_ONLY // remove to support non-english dll's - -#if !defined WINVER -#define WINVER 0x0500 -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined CHECKED_BUILD || defined _DEBUG && !defined COREAPI -#if defined _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES -#endif -#else -#endif -#endif /* TECPLOTKERNEL */ - -/* Windows builds are UNICODE */ -#pragma warning(disable : 4786) /* truncated identifiers in debug symbol table. */ -#pragma warning(disable : 4996) /* deprecated functions */ - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined UNICODE -#endif -#if !defined _AFXDLL -#endif -#if defined _M_IX86 -#else -#endif -#if defined _WIN64 -#if !defined _M_IA64 && !defined _M_AMD64 -#endif -#endif -#if !defined MSWIN -#endif -#if !defined THREED -#endif -#ifndef _AFX_NO_AFXCMN_SUPPORT -#endif /* _AFX_NO_AFXCMN_SUPPORT */ -#ifndef _AFX -#endif -#else /* !TECPLOTKERNEL */ -#define AfxIsValidAddress(ptr,bb) ((ptr)!=NULL) -#endif - -/* 64-bit adjustments */ -#if defined _M_IA64 || defined _M_AMD64 -#define WININT INT_PTR -#define WINUINT UINT_PTR -#else -#define WININT int -#define WINUINT UINT -#endif - -#define WINCALLBACK CALLBACK - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined (NDEBUG) -#else -#endif -#endif /* TECPLOTKERNEL */ -#endif /* _WIN32 */ - - -#endif /* STDAFX_H_ */ diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/strlist.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/strlist.cpp deleted file mode 100644 index ab34a5274c..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/strlist.cpp +++ /dev/null @@ -1,1065 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define STRLISTMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "STRUTIL.h" -#include "ALLOC.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "ARRLIST.h" -#include "STRLIST.h" - -/* END HEADER */ - -using namespace tecplot::strutil; - -/* - * This set of functions provide a wrapper around the array list utilities - * thereby making it aware of item allocation and deallocation. All strings - * given to the string list and returned to the client are copies. Therefore - * it is the client's responsibility to deallocate string results when no - * longer needed. - */ - - -/* - * Destructor for cleaning up string allocations. - * - * param ItemRef - * Reference to the string item to destroy. - * param ClientData - * Any client data needed for destroying the string. - * - * return - * TRUE is a requirement - */ -static Boolean_t StringListItemDestructor(void *ItemRef, - ArbParam_t ClientData) -{ - char **StringRef = (char **)ItemRef; - - REQUIRE(VALID_REF(StringRef)); - REQUIRE(VALID_REF(*StringRef) || *StringRef == NULL); - - if (*StringRef != NULL) - { - FREE_ARRAY(*StringRef, "string"); - *StringRef = NULL; - } - - ENSURE(*StringRef == NULL); - return TRUE; -} - -/* - * String item duplicator. - * - * param TargetItemRef - * Reference to the string list item to receive the duplicate. - * param SourceItemRef - * Reference to the string list item to duplicate. - * param ClientData - * Any client data required for duplication. - * - * return - * TRUE if the duplication was a success - * FALSE otherwise. If the duplication failed it - * is the client's responsibility to cleanup any - * partial duplication - */ -static Boolean_t StringListItemDuplicator(void *TargetItemRef, - void *SourceItemRef, - ArbParam_t ClientData) -{ - Boolean_t IsOk = TRUE; - char **TargetStringRef = (char **)TargetItemRef; - char **SourceStringRef = (char **)SourceItemRef; - - REQUIRE(VALID_REF(TargetStringRef)); - REQUIRE(VALID_REF(SourceStringRef)); - REQUIRE(VALID_REF(*SourceStringRef) || *SourceStringRef == NULL); - - if (*SourceStringRef != NULL) - IsOk = ((*TargetStringRef = DupString(dontTranslate(*SourceStringRef))) != NULL); - else - *TargetStringRef = NULL; - - ENSURE(VALID_REF(*TargetStringRef) || *TargetStringRef == NULL); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; -} - - -/* - * Determine if the string list handle and its members are sane. - */ -Boolean_t StringListValid(StringList_pa stringList) -{ - Boolean_t isValid = ArrayListIsValid((ArrayList_pa)stringList); - - if (isValid) - { - LgIndex_t stringCount = ArrayListGetCount((ArrayList_pa)stringList); - -#if defined PERFORM_EXPENSIVE_STRLIST_TESTS - { - for (LgIndex_t index = 0; index < stringCount; index++) - { - char *string = ArrayListGetCharPtr((ArrayList_pa)stringList, index); - if (string != NULL && !VALID_REF(string)) - { - isValid = FALSE; - break; - } - } -#else - { - /* Check first and last only */ - if (stringCount > 0) - { - char *string = ArrayListGetCharPtr((ArrayList_pa)stringList, 0); - if (string != NULL && !VALID_REF(string)) - { - isValid = FALSE; - } - } - if (isValid && stringCount > 1) - { - char *string = ArrayListGetCharPtr((ArrayList_pa)stringList, stringCount - 1); - if (string != NULL && !VALID_REF(string)) - { - isValid = FALSE; - } - } - } -#endif /* PERFORM_SKIP_EXPENSIVE_STRLIST_TESTS */ - } - - ENSURE(VALID_BOOLEAN(isValid)); - return isValid; - } - - - /* - * Remove all members of the string list. - */ - void StringListClear(StringList_pa StringList) - { - REQUIRE(StringListValid(StringList)); - - ArrayListDeleteAllItems((ArrayList_pa)StringList, StringListItemDestructor, 0); - - ENSURE(StringListValid(StringList) && StringListCount(StringList) == 0); - } - - - /* - * Remove 'Count' strings from the list beginning at the specified offset. - * The members following the items removed are shifted down accordingly to - * fill the vacated space. - */ - void StringListRemoveStrings(StringList_pa StringList, - LgIndex_t StringOffset, - LgIndex_t Count) - { - REQUIRE(StringListValid(StringList)); - REQUIRE(0 <= StringOffset && StringOffset <= StringListCount(StringList) - 1); - REQUIRE(1 <= Count && StringOffset + Count <= StringListCount(StringList)); - - ArrayListDeleteItems((ArrayList_pa)StringList, StringOffset, Count, - StringListItemDestructor, 0); - - ENSURE(StringListValid(StringList)); - } - - - /* - * Remove the string from the list at the specified offset. The members - * following the item removed are shifted down accordingly to fill the - * vacated space. - */ - void StringListRemoveString(StringList_pa StringList, - LgIndex_t StringOffset) - { - REQUIRE(StringListValid(StringList)); - REQUIRE(0 <= StringOffset && StringOffset <= StringListCount(StringList) - 1); - - ArrayListDeleteItems((ArrayList_pa)StringList, StringOffset, 1, - StringListItemDestructor, 0); - - ENSURE(StringListValid(StringList)); - } - - - /* - * Deallocate the string list members and handle and set the handle to NULL. - */ - void LIBCALL StringListDealloc(StringList_pa *StringList) - { - REQUIRE(VALID_REF(StringList)); - REQUIRE(*StringList == NULL || StringListValid(*StringList)); - - if (*StringList != NULL) - ArrayListDealloc((ArrayList_pa *)StringList, StringListItemDestructor, 0); - - ENSURE(*StringList == NULL); - } - - - /* - * Allocate a string list handle. A handle of NULL is - * returned if sufficient memory is not available. - */ - StringList_pa StringListAlloc(void) - { - StringList_pa Result; - - Result = (StringList_pa)ArrayListAlloc(0, ArrayListType_CharPtr, NULL, 0); - - ENSURE(Result == NULL || StringListValid(Result)); - return Result; - } - - - /* - * Append a copy of the string to the string list. The string list will be - * expanded to accommodate the additional item. A return value of TRUE - * indicates the operation was successful otherwise FALSE is returned - * indicating that sufficient memory was not available for the additional - * item. - */ - Boolean_t StringListAppendString(StringList_pa StringList, - const char *String) - { - Boolean_t IsOk; - - REQUIRE(StringListValid(StringList)); - REQUIRE(String == NULL || VALID_REF(String)); - - IsOk = StringListSetString(StringList, StringListCount(StringList), String); - - ENSURE(StringListValid(StringList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; - } - - - /* - * Return the number of strings currently in the string list. - */ - LgIndex_t LIBCALL StringListCount(StringList_pa StringList) - { - LgIndex_t Result; - - REQUIRE(StringListValid(StringList)); - - Result = ArrayListGetCount((ArrayList_pa)StringList); - - ENSURE(Result >= 0); - return Result; - } - - - /* - * Return a copy of the string at the specified offset in the string list. - */ - char * LIBCALL StringListGetString(StringList_pa StringList, - LgIndex_t StringOffset) - { - char *Result; - const char *StringRef; - - REQUIRE(StringListValid(StringList)); - REQUIRE(0 <= StringOffset && StringOffset <= StringListCount(StringList) - 1); - - StringRef = StringListGetStringRef(StringList, StringOffset); - if (StringRef == NULL) - Result = NULL; - else - Result = DupString(dontTranslate(StringRef)); - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; - } - - -#if !defined USE_MACROS_FOR_FUNCTIONS - /* - * Returns actual string at the specified offset in the string list. Do not - * attempt to free this string. Changing this string should be done with - * utmost caution. - */ - const char *StringListGetStringRef_FUNC(StringList_pa StringList, - LgIndex_t StringOffset) - { - const char *Result; - - REQUIRE(StringListValid(StringList)); - REQUIRE(0 <= StringOffset && StringOffset <= StringListCount(StringList) - 1); - - Result = StringListGetStringRef_MACRO(StringList, StringOffset); - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; - } -#endif - - - /* - * Place a copy of the specified string at the specified offset. If the offset - * is beyond the end of the string list it is sized accordingly and the - * intervening string references between the last item of the original - * state and the last item of the new state are assigned NULL. If a string - * already exists at the specified location its resources are released. - * A return value of TRUE indicates the operation was successful otherwise - * FALSE is returned indicating that sufficient memory was not available - * for the additional item at the specified offset. - */ - Boolean_t StringListSetString(StringList_pa StringList, - LgIndex_t StringOffset, - const char *String) - { - Boolean_t IsOk; - ArrayListItem_u ItemCopy; - - REQUIRE(StringListValid(StringList)); - REQUIRE(StringOffset >= 0); - REQUIRE(String == NULL || VALID_REF(String)); - - if (String != NULL) - { - ItemCopy.CharPtr = DupString(dontTranslate(String)); - IsOk = (ItemCopy.CharPtr != NULL); - } - else - { - ItemCopy.CharPtr = NULL; - IsOk = TRUE; - } - - if (IsOk) - IsOk = ArrayListSetItem((ArrayList_pa)StringList, StringOffset, ItemCopy, - StringListItemDestructor, 0); - - ENSURE(StringListValid(StringList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; - } - - - /* - * Insert a copy of the string into the string list at the specified offset. - * The string list will be expanded to accommodate the additional item. - * A return value of TRUE indicates the operation was successful otherwise - * FALSE is returned indicating that sufficient memory was not available - * for the additional item. - */ - Boolean_t StringListInsertString(StringList_pa StringList, - LgIndex_t StringOffset, - const char *String) - { - Boolean_t IsOk; - ArrayListItem_u ItemCopy; - - REQUIRE(StringListValid(StringList)); - REQUIRE(StringOffset >= 0); - REQUIRE(String == NULL || VALID_REF(String)); - - if (String != NULL) - { - ItemCopy.CharPtr = DupString(dontTranslate(String)); - IsOk = (ItemCopy.CharPtr != NULL); - } - else - { - ItemCopy.CharPtr = NULL; - IsOk = TRUE; - } - - if (IsOk) - IsOk = ArrayListInsertItem( - (ArrayList_pa)StringList, StringOffset, ItemCopy); - - ENSURE(StringListValid(StringList)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; - } - - - /* - * Return a handle to a duplicate of the specified string list and its contents. - * A handle of NULL is returned if sufficient memory is not available. - */ - StringList_pa StringListCopy(StringList_pa StringList) - { - StringList_pa Result; - - REQUIRE(StringListValid(StringList)); - - Result = (StringList_pa)ArrayListCopy((ArrayList_pa)StringList, - StringListItemDuplicator, 0); - - ENSURE(Result == NULL || - (StringListValid(Result) && - StringListCount(Result) == StringListCount(StringList))); - return Result; - } - - - - /* - * Append a copy of the contents of the source list to the target list. - * A return value of TRUE indicates the operation was successful otherwise - * FALSE is returned indicating that sufficient memory was not available - * for the request. - */ - Boolean_t StringListAppend(StringList_pa Target, - StringList_pa Source) - { - Boolean_t IsOk; - StringList_pa SourceCopy; - - REQUIRE(StringListValid(Target)); - REQUIRE(StringListValid(Source)); - - SourceCopy = StringListCopy(Source); - IsOk = (SourceCopy != NULL); - if (IsOk) - { - ArrayListAppend((ArrayList_pa)Target, (ArrayList_pa)SourceCopy); - /* deallocate the list but not the string items since Target now owns them */ - ArrayListDealloc((ArrayList_pa *)(void *)&SourceCopy, NULL, 0); - } - - ENSURE(StringListValid(Target)); - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; - } - - - - /* - * Return a new line, '\n', separated string representation of the string list. - * Caller is responsible for de-allocating the result. - */ - char *StringListToNLString(StringList_pa StringList) - { - char *Result; - int Count; - size_t Length = 0; - - REQUIRE(StringListValid(StringList)); - - /* determine the resulting new line, '\n', separated string length */ - Count = StringListCount(StringList); - if (Count >= 1) - { - int Index; - for (Index = 0, Length = strlen("\n") * (Count - 1); - Index < Count; - Index++) - { - char *String = ArrayListGetCharPtr((ArrayList_pa)StringList, Index); - if (String != NULL) - Length += strlen(String); - } - } - - /* create a new line, '\n', separated string */ - Result = ALLOC_ARRAY(Length + 1, char, "new line separated string"); - if (Result != NULL) - { - int Index; - for (Index = 0, strcpy(Result, ""); - Index < Count; - Index++) - { - char *String = ArrayListGetCharPtr( - (ArrayList_pa)StringList, Index); - - if (Index != 0) - strcat(Result, "\n"); - - if (String != NULL) - strcat(Result, String); - } - } - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; - } - - - /* - * Create a string list from the new line, '\n', separated string. The string - * is copied and therefore owned and managed by the caller. - */ - StringList_pa StringListFromNLString(const char *String) - { - StringList_pa Result; - LgIndex_t StartIndex; - LgIndex_t EndIndex; - - REQUIRE(VALID_REF(String)); - - /* create the string list and scan the entire string */ - Result = StringListAlloc(); - for (StartIndex = EndIndex = 0; Result != NULL; EndIndex++) - { - /* end of sub-string ? */ - if (String[EndIndex] == '\n' || String[EndIndex] == '\0') - { - /* extract the sub-string and append it to the string list */ - LgIndex_t Length = EndIndex - StartIndex; - char *SubString = ALLOC_ARRAY(Length + 1, char, "sub string"); - if (SubString != NULL) - { - CopySubString(SubString, String, StartIndex, Length); - StringListAppendString(Result, SubString); - - FREE_ARRAY(SubString, "sub string"); - - if (String[EndIndex] != '\0') - StartIndex = EndIndex + 1; - else - break; /* nothing left to scan */ - } - else - { - /* memory allocation failure: bail out */ - StringListDealloc(&Result); - Result = NULL; - break; - } - } - } - - ENSURE(Result == NULL || StringListValid(Result)); - return Result; - } - - - /* - * Return a 'C' string array representation of the string list. - * Caller is responsible for de-allocating the result. - */ - char **StringListToArray(StringList_pa StringList) - { - char **Result; - - REQUIRE(StringListValid(StringList)); - - Result = (char **)ArrayListToArray((ArrayList_pa)StringList, - StringListItemDuplicator, 0); - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; - } - - - - /* - * Create a string list from the 'C' string array. The string array - * is copied and therefore owned and managed by the caller. - */ - StringList_pa StringListFromArray(const char **StringArray, - LgIndex_t Count) - { - StringList_pa Result; - - REQUIRE((Count == 0 && StringArray == NULL) || - (Count >= 1 && VALID_REF(StringArray))); - - Result = (StringList_pa)ArrayListFromArray((void *)StringArray, - Count, ArrayListType_CharPtr, - StringListItemDuplicator, 0); - - ENSURE(Result == NULL || StringListValid(Result)); - return Result; - } - - - -#define ISJOINCHAR(c) ((c == ';') || (c == '+')) - - static void SkipWhiteSpaceOrComma(const char **CPtr) - { - REQUIRE(VALID_REF(CPtr) && VALID_REF(*CPtr)); - while (ISWHITESPACE(**CPtr) || (**CPtr == ',')) - (*CPtr)++; - } - - /* - * Obtain the next sub-string. This can be of the form: - * - * [del]any-character-sequence[del] - * - * or - * - * limited-character-sequence - * - * where a limited-character-sequence cannot contain - * any of the following characters: +;, - * - */ - static Boolean_t GetNextSubString(const char **OriginalCPtr, - char **NextSubString) - { - Boolean_t IsOk = TRUE; - const char *CStart; - const char *CPtr; - char InsideDelimiter = '\0'; - - REQUIRE(VALID_REF(OriginalCPtr) && (VALID_REF(*OriginalCPtr))); - REQUIRE(VALID_REF(NextSubString)); - - *NextSubString = NULL; - - CPtr = *OriginalCPtr; - SkipWhiteSpaceOrComma(&CPtr); - - if (*CPtr == '"' || *CPtr == '\'') - { - InsideDelimiter = *CPtr; - CPtr++; - } - - CStart = CPtr; - - while (*CPtr && - ((InsideDelimiter && (*CPtr != InsideDelimiter)) || - (!InsideDelimiter && (*CPtr != ',') && - !ISJOINCHAR(*CPtr) && - !ISWHITESPACE(*CPtr)))) - { - if (InsideDelimiter && - (*CPtr == '\\') && - (*(CPtr + 1) == InsideDelimiter)) - CPtr += 2; - else - CPtr++; - } - - if (InsideDelimiter && (*CPtr != InsideDelimiter)) - IsOk = FALSE; - - - if (IsOk && CStart < CPtr) - { - size_t StrLen = (size_t)(CPtr - CStart); - *NextSubString = ALLOC_ARRAY(StrLen + 1, char, "GetNextSubString: NextSubString"); - if (*NextSubString) - { - char *NPtr = *NextSubString; - /* - * Don't just copy the string because escaped delimiters need to have - * the escape removed... - */ - while (CStart < CPtr) - { - if ((*CStart == '\\') && (*(CStart + 1) == InsideDelimiter)) - CStart++; - *NPtr++ = *CStart++; - } - *NPtr = '\0'; - } - else - IsOk = FALSE; - } - - if (IsOk) - { - if (InsideDelimiter) - CPtr++; - SkipWhiteSpaceOrComma(&CPtr); - *OriginalCPtr = CPtr; - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return IsOk; - } - - - - - /* - * Return a string list representation of a compound string. - * - * The compound String parameter has the following form: - * - * [del][del] [GroupJoinCharacter] [del][del] [GroupJoinCharacter] ..... - * or - * ... - * - * where: - * [del] is an optional single quote or a double quote. [del] must be used - * if contains spaces, commas, or the plus symbol. - * - * GroupJoinCharacter can be either a "+" or a ";" - * - * The GroupJoinCharacter symbol is used to separate character sequences that - * are to be grouped together. If the GroupJoinCharacter symbol is omitted then - * a new group is started. - * - * Internally, the original string is converted to a list of strings where - * each string uses newlines to separate one sub-string from the next. - */ - StringList_pa StringListFromCompound(const char *String) - { - const char *CPtr; - StringList_pa Result; - Boolean_t IsOk = TRUE; - char *CurString = NULL; - - REQUIRE(VALID_REF(String)); - SkipWhiteSpaceOrComma(&String); - REQUIRE(!ISJOINCHAR(*String)); - - /* extract character sequences */ - Result = StringListAlloc(); - CPtr = String; - - while (IsOk && *CPtr != '\0') - { - char *NextSubString = NULL; - Boolean_t WantsToJoin = FALSE; - - if (ISJOINCHAR(*CPtr)) - { - WantsToJoin = TRUE; - CPtr++; - SkipWhiteSpaceOrComma(&CPtr); - } - - IsOk = GetNextSubString(&CPtr, - &NextSubString); - - if (IsOk) - { - /* - * Tack on the sub-string to the running string. - */ - if (WantsToJoin) - TackOnChar(&CurString, '\n'); - if (NextSubString != NULL && strlen(NextSubString) != 0) - IsOk = TackOnString(&CurString, NextSubString, FALSE, FALSE); - else if (CurString == NULL) - CurString = DupString(dontTranslate("")); - } - - if (NextSubString != NULL) - FREE_ARRAY(NextSubString, "StringListFromCompound: NextSubString"); - - /* - * If this is the end of processing or if the next character is - * not a join character then add the current string to the stringlist. - */ - - if (IsOk && !ISJOINCHAR(*CPtr)) - { - StringListAppendString(Result, CurString); - if (CurString != NULL) - FREE_ARRAY(CurString, "current string"); - CurString = NULL; - } - } - - if (CurString != NULL) - FREE_ARRAY(CurString, "current string"); - - if (!IsOk) - StringListDealloc(&Result); - - ENSURE(Result == NULL || StringListValid(Result)); - return Result; - } - - - /* - * Return a compound string representation of a string list. - * - * One common usage in Tecplot: - * The $!OpenLayout command in tecplot has the sub-option - * ALTDATALOADINSTRUCTIONS that has the form: - * '"instr-string1" [GroupJoinCharacter] "instr-string2" [+] ...' - */ - char *StringListToCompound(StringList_pa StringList, - char GroupJoinCharacter, - const char *CharsToEscape) - { - Boolean_t IsOk = TRUE; - LgIndex_t Index; - LgIndex_t Count; - char *Result = NULL; - - REQUIRE(StringListValid(StringList)); - REQUIRE(StringListCount(StringList) >= 1); - REQUIRE(ISJOINCHAR(GroupJoinCharacter)); - REQUIRE(VALID_REF(CharsToEscape)); - - for (Index = 0, Count = StringListCount(StringList), IsOk = TRUE; - Index < Count && IsOk; - Index++) - { - char *String = StringListGetString(StringList, Index); - - if (String != NULL && strlen(String) != 0) - { - char *CStart = NULL; - char *CEnd = NULL; - char *EscapedString = NULL; - const char *EscChar = NULL; - char *StrChar = NULL; - - /* First scan the string and escape any specified characters. */ - /* Note that the Escape sequence is a double backslash because */ - /* it the first escape escapes the escape for variable usage. */ - for (StrChar = String; *StrChar != '\0'; StrChar++) - { - for (EscChar = CharsToEscape; *EscChar != '\0'; EscChar++) - if (*StrChar == *EscChar) - { - IsOk = TackOnChar(&EscapedString, '\\'); - IsOk = TackOnChar(&EscapedString, '\\'); - break; - } - IsOk = TackOnChar(&EscapedString, *StrChar); - } - - CEnd = EscapedString; - while (IsOk && *CEnd != '\0') - { - int Len = 0; - char *TString; - - CStart = CEnd; - while (*CEnd != '\0' && *CEnd != '\n') - { - Len++; - if (*CEnd == '"') - Len++; - CEnd++; - } - - TString = ALLOC_ARRAY(Len + 4, char, "temp compound sub-string"); - if (TString != NULL) - { - char *TStr; - - /* prepend the new string with either */ - /* a space character or the plus symbol */ - if (CStart == EscapedString) - { - if (Index != 0) - IsOk = TackOnChar(&Result, ' '); - } - else - { - IsOk = TackOnChar(&Result, GroupJoinCharacter); - } - - /* stuff TString and append the new string */ - TStr = TString; - *TStr++ = '"'; - while (CStart != CEnd) - { - if (*CStart == '"') - *TStr++ = '\\'; - *TStr++ = *CStart++; - } - *TStr++ = '"'; - *TStr = '\0'; - - TackOnString(&Result, TString, FALSE, FALSE); - FREE_ARRAY(TString, "StringListToCompound"); - TString = NULL; - if (*CEnd) - CEnd++; - } - else - { - IsOk = FALSE; - } - } - - if (EscapedString != NULL) - FREE_ARRAY(EscapedString, "escaped string"); - } - else - { - /* a null pointer or length of zero indicates an empty sub-string */ - if (Index == 0) - TackOnString(&Result, "\"\"", FALSE, FALSE); - else - TackOnString(&Result, " \"\"", FALSE, FALSE); - } - - if (String != NULL) - FREE_ARRAY(String, "string list item"); - } - - if (!IsOk) - { - if (Result != NULL) - { - FREE_ARRAY(Result, "StringListToCompound"); - Result = NULL; - } - } - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; - } - - - /** - * Holds the comparator function pointer. - */ - static StringListStringComparator_pf ComparatorFunction = NULL; - - - /** - * Forwards the comparison test to the 'Comparator' supplied to the - * 'StringListSort' function. - * - * param Item1 - * Item to compare against Item2. - * param Item2 - * Item to compare against Item1. - * param ClientData - * Contextual information that was passed to the 'ArrayListQSort' function. - * - * return - * -1: if Item1 is less than Item2 - * 0: if Item1 is equal to Item2 - * 1: if Item1 is greater than Item2 - */ - static int STDCALL ComparatorProxy(ArrayListItem_u Item1, - ArrayListItem_u Item2, - ArbParam_t ClientData) - { - /* forward the request */ - return ComparatorFunction(Item1.CharPtr, Item2.CharPtr, ClientData); - } - - - /** - * Compares two strings from a list string. Note that either string may be - * NULL as StringLists allow for NULL elements. - * - * param String1 - * String to compare against String2. - * param String2 - * String to compare against String1. - * param ClientData - * Contextual information that was passed to the 'StringListSort' function. - * - * return - * - A value less than zero if String1 is less than String2. - * - A value of zero if String1 is equal to String2. - * - A value greater than zero if String1 is greater than String2. - */ - static int STDCALL DefaultStrcmpComparator(const char *String1, - const char *String2, - ArbParam_t ClientData) - { - int Result = 0; /* ...quite compiler */ - - REQUIRE(VALID_REF(String1) || String1 == NULL); - REQUIRE(VALID_REF(String2) || String2 == NULL); - - if (String1 != NULL && String2 != NULL) - { - Result = strcmp(String1, String2); - if (Result < 0) - Result = -1; - else if (Result > 0) - Result = 1; - } - else if (String1 == NULL && String2 == NULL) - Result = 0; - else if (String1 == NULL) - Result = -1; - else if (String2 == NULL) - Result = 1; - else - CHECK(FALSE); - - ENSURE((Result == -1) || (Result == 0) || (Result == 1)); - return Result; - } - - /** - * Sorts the string list by repeatedly calling the 'Comparator' function until - * the list is in order. - * - * param StringList - * String list to sort. - * param Comparator - * Function called to compare two string list strings or NULL for the - * default sort. The default sorting handles NULL elements and uses the - * system's strcmp utility for comparing valid strings elements. - * param ClientData - * Contextual information that is passed along to the comparator function. - */ - void StringListSort(StringList_pa StringList, - StringListStringComparator_pf Comparator, - ArbParam_t ClientData) - { -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - REQUIRE(VALID_REF(StringList)); - REQUIRE(VALID_FN_REF(Comparator) || Comparator == NULL); - - /* set up for comparator proxy */ - if (Comparator != NULL) - ComparatorFunction = Comparator; - else - ComparatorFunction = DefaultStrcmpComparator; - - /* sort the array using the comparator proxy to forward */ - /* the comparison request to the supplied comparator */ - ArrayListQSort((ArrayList_pa)StringList, ComparatorProxy, ClientData); - - /* cleanup */ - ComparatorFunction = NULL; - } diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/strutil.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/strutil.cpp deleted file mode 100644 index 9611722224..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/strutil.cpp +++ /dev/null @@ -1,936 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ - -#define STRUTILMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "ARRLIST.h" -#include "STRLIST.h" -#include "STRUTIL.h" -#include "ALLOC.h" - -#include "Q_MSG.h" - -#include -#include // ...needed to find std::tolower and std::toupper -#include -#include "TranslatedString.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -using namespace std; -using namespace tecplot::strutil; - -#ifdef MSWIN -# pragma warning (disable : 4786) /* STL warning about trucated identifiers */ -#endif - -/* END HEADER */ - -/** - */ -#define INITIAL_FORMAT_BUFFER_SIZE 16384*3 -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -static char *FormatStringBuffer = NULL; -static int FormatStringBufferSize = INITIAL_FORMAT_BUFFER_SIZE; - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined MSWIN -#else -#endif /* !MSWIN */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -/** - * This should be one of the last functions called by Tecplot while mopping up. - */ -void FormatStringBufferCleanup(void) -{ - /* - * NOTE: We use free instead of FREE_ARRAY for the scratch buffer because in - * debug mode FREE_ARRAY uses ErrMsg which uses vFormatString causing - * infinite recursion. - */ - if (FormatStringBuffer != NULL) - free(FormatStringBuffer); - FormatStringBuffer = NULL; -} - -/** - */ -char *vFormatString(const char *Format, - va_list Arguments) -{ - char *Result = NULL; - - REQUIRE(VALID_REF(Format)); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - /* - * NOTE: We use malloc instead of ALLOC_ARRAY for the scratch buffer because - * in debug mode ALLOC_ARRAY uses ErrMsg which uses vFormatString - * causing infinite recursion. - */ - if (FormatStringBuffer == NULL) - FormatStringBuffer = (char *)malloc(FormatStringBufferSize); - - if (FormatStringBuffer != NULL) - { - Boolean_t TryAgain = FALSE; - do - { - /* - * Assign a value other than '\0' to the end of the buffer so that we - * can determine if the buffer needs to be expanded. If after we call - * vsnprintf the end of the buffer has a '\0' we need to expand it. - */ - FormatStringBuffer[FormatStringBufferSize - 1] = (char)!'\0'; - -# if defined MSWIN - memset(FormatStringBuffer, 0, FormatStringBufferSize - 1); - - TryAgain = - _vsnprintf(FormatStringBuffer, - FormatStringBufferSize, - Format, - Arguments) == -1; -# elif defined IRIX62 - vsprintf(FormatStringBuffer, - Format, - Arguments); - CHECK(strlen(FormatStringBuffer) < FormatStringBufferSize); -# else - vsnprintf(FormatStringBuffer, - FormatStringBufferSize, - Format, - Arguments); -# endif - -#ifndef MSWIN - TryAgain = (FormatStringBuffer[FormatStringBufferSize - 1] == '\0'); -#endif - if (TryAgain) - { - /* - * Reallocate the buffer and try again. - * - * NOTE: We use malloc/free instead of ALLOC/FREE_ARRAY for the - * scratch buffer because in debug mode ALLOC/FREE_ARRAY - * uses ErrMsg which uses vFormatString causing infinite - * recursion. - */ - free(FormatStringBuffer); - FormatStringBufferSize += MAX(1, FormatStringBufferSize / 2); - FormatStringBuffer = (char *)malloc(FormatStringBufferSize); - TryAgain = (FormatStringBuffer != NULL); - if (!TryAgain) - FormatStringBufferSize = INITIAL_FORMAT_BUFFER_SIZE; - } - } - while (TryAgain); - - if (FormatStringBuffer != NULL) - Result = DupString(dontTranslate(FormatStringBuffer)); - } - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - */ -char *FormatString(TranslatedString Format, - ...) /* 0 or more variable arguments */ -{ - REQUIRE(!Format.isNull()); - - va_list Arguments; - va_start(Arguments, Format); - char *Result = vFormatString(Format.c_str(), Arguments); - va_end(Arguments); - - ENSURE(VALID_REF(Result) || Result == NULL); - return Result; -} - -/** - */ -int FormatString(string& Buffer, - TranslatedString Format - ...) /* 0 or more variable arguments */ -{ - REQUIRE(!Format.isNull()); - - va_list Arguments; - va_start(Arguments, Format); - char *FormattedString = vFormatString(Format.c_str(), Arguments); - va_end(Arguments); - - int Result; - if (FormattedString != NULL) - { - Buffer.assign(FormattedString); - Result = (int)Buffer.size(); - FREE_ARRAY(FormattedString, "FormattedString"); - } - else - Result = -1; - - - ENSURE(Result == -1 || Result >= 0); - return Result; -} - -/** - * Returns a duplicate of the string or NULL if sufficient memory is not - * available. - * - * NOTE: This function was created because ResetString(...) does not - * duplicate zero length strings but returns NULL instead. - */ -char *DupString(TranslatedString String) -{ - REQUIRE(VALID_TRANSLATED_STRING(String)); - - char *Result = ALLOC_ARRAY(strlen(String.c_str()) + 1, char, "duplicate string"); - if (Result != NULL) - strcpy(Result, String.c_str()); - - ENSURE(Result == NULL || (VALID_REF(Result) && strcmp(Result, String.c_str()) == 0)); - return Result; -} - - -/* - * Copy up to 'Count' characters from the 'Source' string beginning at - * position 'Index' to the 'Target' string. The actual number of characters - * copied may be less than 'Count' if a '\0' was encountered in the - * 'Source' string before 'Count' characters were copied. - * - * NOTE: The 'Target' and 'Source' strings may overlap. - */ -void CopySubString(char *Target, - const char *Source, - int Index, - int Count) -{ - LgIndex_t Length = 0; - - REQUIRE(VALID_REF(Target)); - REQUIRE("Target string is sized to accommodate a string who's length " - "is at least MIN(strlen(&Source[Index]), Count) characters."); - REQUIRE(VALID_REF(Source)); - REQUIRE(0 <= Index && Index <= (LgIndex_t)strlen(Source)); - REQUIRE(Count >= 0); - - Length = MIN((LgIndex_t)strlen(&Source[Index]), Count); - memmove(Target, &Source[Index], Length); - Target[Length] = '\0'; - - ENSURE(VALID_REF(Target) && (LgIndex_t)strlen(Target) == Length); -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - -/* - * Remove any leading white space from the string and return - * a reference to it. NOTE: The input string is modified. - */ -char *StringFlushLeft(char *String) -{ - char *Result = String; - char *Start = String; - - REQUIRE(VALID_REF(String)); - - /* move the substring beginning at the first non-whitespace */ - /* character to the head of the string */ - while (isspace(*Start)) - Start++; - if (Start != String) - memmove(String, Start, strlen(Start) + 1); - - ENSURE(VALID_REF(Result) && Result == String); - return Result; -} - - -/* - * Remove any trailing white space from the string and return - * a reference to it. NOTE: The input string is modified. - */ -static char *StringFlushRight(char *String) -{ - char *Result = String; - char *End = NULL; - - REQUIRE(VALID_REF(String)); - - for (End = EndOfString(String); End != String && isspace(End[-1]); End--) - End[-1] = '\0'; - - ENSURE(VALID_REF(Result) && Result == String); - return Result; -} - - -/* - * Remove any leading and trailing white space from the string - * and return a reference to it. The return value is not - * absolutely necessary since the input string is modified - * but it is convenient sometimes. - * NOTE: The input string is modified but no memory is - * allocated nor deallocated. - */ -char *TrimLeadAndTrailSpaces(char *String) -{ - REQUIRE((String == NULL) || VALID_REF(String)); - if (String) - return (StringFlushLeft(StringFlushRight(String))); - else - return String; -} - - -/* - * If the specified string is longer than the maximum specified length - * truncate it and return a reference to it. - * - * String - * String to truncate if necessary. - * MaxLength - * Length at which to truncate the specified string if exceeded. - * - * Return - * Reference to the input string. - */ - -// Okay for UTF-8 -char *StringTruncate(char *String, - LgIndex_t MaxLength) -{ - REQUIRE(VALID_REF(String)); - REQUIRE(MaxLength >= 0); - - if ((LgIndex_t)strlen(String) > MaxLength) - String[MaxLength] = '\0';/* UTF8_SetAt(String,'\0',MaxLength); */ - - ENSURE(VALID_REF(String)); - ENSURE((LgIndex_t)strlen(String) <= MaxLength); - return String; -} - - -/* - * Trim and truncate the specified string such that its trimmed length - * does not exceed the specified length and return a reference to it. - * - * String - * String to trim and truncate if necessary. - * MaxLength - * Length at which to truncate the trimmed string if exceeded. - * - * Return - * Reference to the input string. - */ -char *StringTrimAndTruncate(char *String, - LgIndex_t MaxLength) -{ - REQUIRE(VALID_REF(String)); - REQUIRE(MaxLength >= 0); - - TrimLeadAndTrailSpaces(String); - StringTruncate(String, MaxLength); - - ENSURE(VALID_REF(String)); - ENSURE((LgIndex_t)strlen(String) <= MaxLength); - return String; -} - -/** - */ - -#ifndef MSWIN -StringList_pa LineBreakString(const char *String, - UInt32_t WrapMargin) -{ - REQUIRE(VALID_REF(String)); - - StringList_pa Result = StringListAlloc(); - if (Result != NULL) - { - Boolean_t IsOk = TRUE; - if (strlen(String) > WrapMargin) - { - char *StringCopy = DupString(dontTranslate(String)); - IsOk = (StringCopy != NULL); - if (IsOk) - { - char *CPtr = StringCopy; - char *SubString = StringCopy; - UInt32_t SubStringLen = 0; - while (*CPtr != '\0' && IsOk) - { - while (*CPtr != '\0' && SubStringLen < WrapMargin) - { - /* look for a hard break */ - if (*CPtr == '\n') - { - *CPtr = '\0'; /* replace the newline */ - CPtr++; - break; - } - - CPtr++; - SubStringLen++; - } - - /* - * If we didn't find a hard break or the end of the string - * then we need to back up and find the closest space. - */ - if (*CPtr != '\0' && SubStringLen == WrapMargin) - { - /* find the closes space from the right */ - if (*CPtr != ' ') - { - while (CPtr != SubString && *CPtr != ' ') - CPtr--; - if (*CPtr != ' ') - { - /* - * Bummer, this line will exceed the wrap margin. - * Search forward for the next space or newline. - */ - while (*CPtr != '\0' && *CPtr != ' ' && *CPtr != '\n') - CPtr++; - while (*CPtr != '\0' && *CPtr == ' ') - CPtr++; /* skip over the white space */ - } - } - - if (*CPtr != '\0') - { - *CPtr = '\0'; - CPtr++; - } - StringFlushRight(SubString); - } - - IsOk = StringListAppendString(Result, SubString); - SubString = CPtr; - SubStringLen = 0; - } - - FREE_ARRAY(StringCopy, "StringCopy"); - } - } - else - IsOk = StringListAppendString(Result, String); - - if (!IsOk) - StringListDealloc(&Result); - } - - ENSURE(Result == NULL || VALID_REF(Result)); - return Result; -} -#endif - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif /* TECPLOTKERNEL */ - - -/** - * Lexicographically compares, at most, the first 'Len' characters of - * s1 and s2. - * - * param s1 - * First string or NULL. - * param s2 - * Second string or NULL. - * param Len - * Maximum number of characters to compare. - * return - * Integer value greater than, equal to, or less than zero according - * to whether the first 'Len' characters of 's1' are greater than, - * equal to, or less than 's2'. - */ - -// Okay for UTF-8 -int ustrncmp(const char *s1, - const char *s2, - size_t Len) -{ - REQUIRE((s1 == NULL) || VALID_REF(s1)); - REQUIRE((s2 == NULL) || VALID_REF(s2)); - REQUIRE(Len >= 0); - - char *t1; - char *t2; - char ct1; - char ct2; - size_t I = 0; - if ((s1 == NULL) && (s2 == NULL)) - return 0; - if (s1 == NULL) - return -1; - else if (s2 == NULL) - return 1; - - t1 = (char*)s1; - t2 = (char*)s2; - - while (*t1 && *t2 && (I < Len)) - { - ct1 = CAPITAL(*t1); - ct2 = CAPITAL(*t2); - if (ct1 != ct2) - return (ct1 - ct2); - t1++; - t2++; - I++; - } - if ((I == Len) || - ((*t1 == '\0') && (*t2 == '\0'))) - return 0; - else - return CAPITAL(*t1) - CAPITAL(*t2); - - -} - - -/** - * Lexicographically compares the characters of s1 and s2. - * - * param s1 - * First string or NULL. - * param s2 - * Second string or NULL. - * return - * Integer value greater than, equal to, or less than zero according to - * whether the characters of 's1' are greater than, equal to, or less - * than 's2'. - */ -int ustrcmp(const char *s1, - const char *s2) -{ - REQUIRE((s1 == NULL) || VALID_REF(s1)); - REQUIRE((s2 == NULL) || VALID_REF(s2)); - - return (ustrncmp(s1, s2, INT_MAX)); -} - - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if !defined NO_ASSERTS && defined DEBUG_ALLOC -#endif -#endif /* TECPLOTKERNEL */ - - -/* - * The problem with passing file names for release builds is that - * the full path name is used (i.e., c:\user\craig\v7.5\tecplot\alloc.c) - */ - -// Okay for UTF-8 - -#if !defined NO_ASSERTS -Boolean_t InternalResetString(char **SBase, - const char *NewString, - Boolean_t IssueErrMsg, - const char *FileName, - int LineNumber) -#else -Boolean_t InternalResetString(char **SBase, - const char *NewString, - Boolean_t IssueErrMsg) -#endif -{ - REQUIRE(VALID_REF(SBase)); - REQUIRE(*SBase == NULL || VALID_REF(*SBase)); - REQUIRE(NewString == NULL || VALID_REF(NewString)); - REQUIRE(IMPLICATION(VALID_REF(*SBase), *SBase != NewString)); /* Prevent calling with same string. */ - REQUIRE(VALID_BOOLEAN(IssueErrMsg)); - REQUIRE(VALID_NON_ZERO_LEN_STR(FileName)); - REQUIRE(LineNumber >= 1); - - if (*SBase) - { -#if !defined NO_ASSERTS && defined DEBUG_ALLOC - char S[80+1]; - MakeDebugRecord(FileName, LineNumber, "releasing", *SBase, S, 80); - FREE_ARRAY(*SBase, S); -#else - FREE_ARRAY(*SBase, ""); -#endif - } - if (NewString == NULL) - { - *SBase = NULL; - return (TRUE); - } - else - { -#if !defined NO_ASSERTS && defined DEBUG_ALLOC - char S[80+1]; - MakeDebugRecord(FileName, LineNumber, "duplicating", NewString, S, 80); - *SBase = ALLOC_ARRAY(strlen(NewString) + 1, char, S); -#else -# if defined MSWIN && defined _DEBUG && !defined(MAKEARCHIVE) && !defined(NO_ASSERTS) - /* Allow the MFC memory leak detection to report the leak at the - * calling programs location, and not here (which is fairly useless). - * But first, we have to turn off the preprocessor definition of new - * and get to the original. */ -# undef new - *SBase = new(FileName, LineNumber) char[strlen(NewString)+1]; -# define new DEBUG_NEW -# else - *SBase = ALLOC_ARRAY(strlen(NewString) + 1, char, ""); -# endif -#endif - if (*SBase) - { - strcpy(*SBase, NewString); - return (TRUE); - } - else - { - if (IssueErrMsg) - ErrMsg(translate("Out of memory")); - return (FALSE); - } - } -} - - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - - -/* - * Unfortunately, this routine uses the interface of DeleteStringToAdd - * forcing StringToAdd to be non-const. Another copy of this routine - * for const char *'s is below. Eventually we should get rid of - * the two routines and DeleteStringToAdd, always using the const version - * and deleting the string if necessary in the code that calls TackOnString. - */ -Boolean_t TackOnString(char **SBase, - const char *StringToAdd, - Boolean_t DeleteStringToAdd, - Boolean_t ConvertNewlinesToAscii) -{ - size_t CurLen; - size_t NewLen; - int NumNewlines = 0; - char *NewString; - const char *CPtr = StringToAdd; - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(SBase)); - REQUIRE((StringToAdd == NULL) || VALID_REF(StringToAdd)); - REQUIRE(VALID_BOOLEAN(DeleteStringToAdd)); - REQUIRE(VALID_BOOLEAN(ConvertNewlinesToAscii)); - - if ((StringToAdd == NULL) || - (*StringToAdd == '\0')) - { - if (StringToAdd && - (*StringToAdd == '\0') && - DeleteStringToAdd) - { - char *TMP = (char *)StringToAdd; - FREE_ARRAY(TMP, "empty string to add"); - } - } - else - { - - if (*SBase == NULL) - CurLen = 0; - else - CurLen = strlen(*SBase); - - while (*CPtr) - if (*CPtr++ == '\n') - NumNewlines++; - - NewLen = CurLen + strlen(StringToAdd) + 1 + NumNewlines; - - NewString = ALLOC_ARRAY(NewLen, char, StringToAdd); - - if (NewString == NULL) - { - if (DeleteStringToAdd) - { - char *TMP = (char *)StringToAdd; - FREE_ARRAY(TMP, StringToAdd); - } - IsOk = FALSE; - } - else - { - if (*SBase) - { - strcpy(NewString, *SBase); - FREE_ARRAY(*SBase, (CurLen > 0 ? *SBase : "previous text")); - } - else - *NewString = '\0'; - - { - char *NPtr = EndOfString(NewString); - const char *APtr = StringToAdd; - while (*APtr) - { - if ((*APtr == '\n') && ConvertNewlinesToAscii) - { - *NPtr++ = '\\'; - *NPtr++ = 'n'; - } - else - *NPtr++ = *APtr; //UTF8_AssignAndIncrement(&NPtr,(char**)&APtr,TRUE,FALSE); //*NPtr++ = *APtr; - APtr++; - } - *NPtr = '\0'; - } - - if (DeleteStringToAdd) - { - char *TMP = (char *)StringToAdd; - FREE_ARRAY(TMP, StringToAdd); - } - - *SBase = NewString; - } - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return (IsOk); -} - - -/* - * See TackOnString for discussion. - */ - -// Okay for UTF-8 -Boolean_t TackOnConstString(char **SBase, - const char *StringToAdd, - Boolean_t ConvertNewlinesToAscii) -{ - size_t CurLen; - size_t NewLen; - int NumNewlines = 0; - char *NewString; - const char *CPtr = StringToAdd; - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(SBase)); - REQUIRE((StringToAdd == NULL) || VALID_REF(StringToAdd)); - REQUIRE(VALID_BOOLEAN(ConvertNewlinesToAscii)); - - if ((StringToAdd != NULL) && - (*StringToAdd != '\0')) - { - if (*SBase == NULL) - CurLen = 0; - else - CurLen = strlen(*SBase); - - while (*CPtr) - if (*CPtr++ == '\n') - NumNewlines++; - - NewLen = CurLen + strlen(StringToAdd) + 1 + NumNewlines; - - NewString = ALLOC_ARRAY(NewLen, char, StringToAdd); - - if (NewString == NULL) - { - IsOk = FALSE; - } - else - { - if (*SBase) - { - strcpy(NewString, *SBase); - FREE_ARRAY(*SBase, (CurLen > 0 ? *SBase : "previous text")); - } - else - *NewString = '\0'; - - { - char *NPtr = EndOfString(NewString); - const char *APtr = StringToAdd; - while (*APtr) - { - if ((*APtr == '\n') && ConvertNewlinesToAscii) - { - *NPtr++ = '\\'; - *NPtr++ = 'n'; - } - else - *NPtr++ = *APtr; // UTF8_AssignAndIncrement(&NPtr,(char**)&APtr,TRUE,FALSE); - APtr++; - } - *NPtr = '\0'; - } - *SBase = NewString; - } - } - - ENSURE(VALID_BOOLEAN(IsOk)); - return (IsOk); -} - - -// Okay for UTF-8 -Boolean_t TackOnChar(char **SBase, - char CharToAdd) -{ - REQUIRE(VALID_REF(SBase)); - - char S[2]; - S[0] = CharToAdd; - S[1] = '\0'; - - return (TackOnString(SBase, S, FALSE, FALSE)); -} - - - -/** - * Converts all one character new line characters in the allocated string - * to a two character "\n" sequence. - * - * param String - * String to scan and convert if necessary. Note that the string will - * be reallocated if any new line characters are discovered. - * - * return - * TRUE if the request was successfull, FALSE otherwise. - */ - -// Okay for UTF-8 -Boolean_t ReplaceNewlineWithBackslashN(char **String) -{ - size_t I; - LgIndex_t NewlineCount; - size_t Length; - char *Replacement; - - REQUIRE(VALID_REF(String)); - REQUIRE(VALID_REF(*String)); - - /* count how many new line character are present */ - NewlineCount = 0; - Length = strlen(*String); - for (I = 0; I < Length; I++) - if ((*String)[I] == '\n') - NewlineCount++; - - if (NewlineCount != 0) - { - /* allocate a new string and convert */ - Replacement = ALLOC_ARRAY(Length + NewlineCount + 1, char, - "replacement string"); - if (Replacement != NULL) - { - size_t J; - for (I = J = 0; I < Length + 1; I++, J++) - { - if ((*String)[I] == '\n') - { - Replacement[J] = '\\'; - J++; - Replacement[J] = 'n'; - } - else - { - Replacement[J] = (*String)[I]; - } - } - - /* sanity check */ - CHECK(I == Length + 1); - CHECK(J == Length + NewlineCount + 1); - } - - /* release the old string and record the new one */ - FREE_ARRAY(*String, "original string"); - *String = Replacement; - } - - ENSURE(*String == NULL || VALID_REF(*String)); - return (*String != NULL); -} - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined TECPLOTKERNEL -#if !defined NO_ASSERTS -#endif /* !NO_ASSERTS */ -#endif /*TECPLOTKERNEL*/ -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/tassert.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/tassert.cpp deleted file mode 100644 index 75b3586225..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/tassert.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" -#define TECPLOTENGINEMODULE - -/* -***************************************************************** -***************************************************************** -******* ******** -****** Copyright (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -***************************************************************** -***************************************************************** -*/ - -#define TASSERTMODULE -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined (MSWIN) -#endif -#endif - -#include "STRUTIL.h" - -using namespace tecplot::strutil; -using namespace std; - -#define MAX_ERRMSG_LENGTH 2096 - -/* the mopup from assert and the writing out of crash.lay are */ -/* used by TUASSERT and thus are needed even if NO_ASSERTS */ -/* is set */ -#if !defined NO_TU_ASSERTS || !defined NO_ASSERTS - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined MSWIN /* ...Unix/Linux calls this via signal handlers */ -#endif -#endif /* TECPLOTKERNEL */ - -#endif /* Mopup function needed ... */ - - - -#if !defined STD_ASSERTS -/* - * Define the final assertion notification function. - */ -#if defined UNIXX && !defined NO_ASSERTS -/******************************************************************* - * * - * UNIX * - * * - *******************************************************************/ - - -# if defined NDEBUG -/* - * if NDEBUG is defined __assert is NOT defined so we must supply - * our own assertion notification function..... - */ -# define ASSERT assert -static void UnixAssert(const char *expression, - const char *file_name, - int line) -{ - fprintf(stderr, "Assertion: %s\n" - "Tecplot version: %s\n" - "File Name: %s\n" - "Line Number: %d\n", - expression, TecVersionId, file_name, line); - exit(ExitCode_AssertionFailure); -} -static TAssertFailureNotifyFunc assert_failure_notify = UnixAssert; -# else -/* - * NDEBUG is not defined so __assert is available.... - */ -# if defined LINUX -# define LOWLEVELASSERTFUNCTION __linuxassertproxy -/* - * In linux, __assert does not exist but rather - * __assert_fail which has a differnt API. Thus - * a proxy is provided - */ -static void __linuxassertproxy(const char *__assertion, - const char *__file, - int __line) -{ - __assert_fail(__assertion, __file, __line, __ASSERT_FUNCTION); -} -# elif defined DARWIN -# define LOWLEVELASSERTFUNCTION __darwinassertproxy -/* - * In Darwin (Mac OS X), __assert is #defined to a call to __eprintf, - * which also has a different API. Another proxy... - */ -static void __darwinassertproxy(const char *__assertion, - const char *__file, - int __line) -{ - __eprintf("Assertion: %s\n" - "Tecplot version: %s\n" - "File Name: %s\n" - "Line Number: %d\n", - __assertion, TecVersionId, __file, (unsigned)__line); -} -# else -# define LOWLEVELASSERTFUNCTION __assert -# endif - -static TAssertFailureNotifyFunc assert_failure_notify = (TAssertFailureNotifyFunc) LOWLEVELASSERTFUNCTION; - -# endif -#endif /* UNIXX */ - -#if defined UNIXX && !defined NO_ASSERTS -/* - * Replace the current assert failure notification function and - * return the current one. - * - * Assumptions: - * new function points to valid function (not null) that - * conforms to the specified prototype - * - * Guarantees: - * result is a pointer to the previously installed - * function (not null) - */ -TAssertFailureNotifyFunc InstallTAssertFailureNotify( - TAssertFailureNotifyFunc new_function) /* new notification function */ -{ - TAssertFailureNotifyFunc result = 0; /* old function address */ - - ASSERT(new_function != 0); - - result = assert_failure_notify; - assert_failure_notify = new_function; - - ASSERT(result != 0); - return result; -} - - - - - - -/* - * Perform the installed assert failure notification action. - */ -void TAssert(const char *expression, /* text representation of the assertion */ - const char *file_name, /* name of the file containing the assertion */ - int line) /* line number in the file of the assertion */ -{ - static Boolean_t InTAssert = FALSE; -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - char Message[MAX_ERRMSG_LENGTH+1]; - ASSERT(expression != 0 && strlen(expression) != 0); - ASSERT(file_name != 0 && strlen(file_name) != 0); - ASSERT(line >= 1); - - /* check for recursion */ - if (InTAssert) - { - fprintf(stderr, "Already in assert!\n"); - fprintf(stderr, "Assertion: %s\n" - "Tecplot version: %s\n" - "File Name: %s\n" - "Line Number: %d\n", - expression, TecVersionId, file_name, line); - PrintCurBacktrace(stderr, 100); - ASSERT(FALSE); /*... really exit */ - } - - InTAssert = TRUE; - - sprintf(Message, "Assertion: %s\n" - "Tecplot version: %s\n" - "File Name: %s\n" - "Line Number: %d\n", - expression, TecVersionId, file_name, line); - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -# if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -# else - fprintf(stderr, "%s", Message); -# endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - (*assert_failure_notify)(expression, file_name, line); -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif - - InTAssert = FALSE; /* just in case assert_failure_notify has an ignore */ -} -#endif /* defined UNIXX && !defined NO_ASSERTS */ -#endif /* STD_ASSERTS */ - - -#if defined MSWIN && defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#if defined CHECKED_BUILD -#endif -#if !defined ENGINE -# if defined CHECKED_BUILD -# endif // CHECKED_BUILD -#endif //!ENGINE -#endif /* MSWIN */ - - -#if defined NICE_NOT_IMPLEMENTED -static Boolean_t NotImplementedCalled = FALSE; -void NiceNotImplemented(void) -{ - if (!NotImplementedCalled) - { - Warning("Not Implemented!"); - NotImplementedCalled = TRUE; - } -} -#endif diff --git a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/tecxxx.cpp b/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/tecxxx.cpp deleted file mode 100644 index dbace9f91f..0000000000 --- a/applications/utilities/postProcessing/dataConversion/foamToTecplot360/tecio/tecsrc/tecxxx.cpp +++ /dev/null @@ -1,4812 +0,0 @@ -/* - * NOTICE and LICENSE for Tecplot Input/Output Library (TecIO) - OpenFOAM - * - * Copyright (C) 1988-2009 Tecplot, Inc. All rights reserved worldwide. - * - * Tecplot hereby grants OpenCFD limited authority to distribute without - * alteration the source code to the Tecplot Input/Output library, known - * as TecIO, as part of its distribution of OpenFOAM and the - * OpenFOAM_to_Tecplot converter. Users of this converter are also hereby - * granted access to the TecIO source code, and may redistribute it for the - * purpose of maintaining the converter. However, no authority is granted - * to alter the TecIO source code in any form or manner. - * - * This limited grant of distribution does not supersede Tecplot, Inc.'s - * copyright in TecIO. Contact Tecplot, Inc. for further information. - * - * Tecplot, Inc. - * 3535 Factoria Blvd, Ste. 550 - * Bellevue, WA 98006, USA - * Phone: +1 425 653 1200 - * http://www.tecplot.com/ - * - */ -#include "stdafx.h" -#include "MASTER.h" - -#define TECPLOTENGINEMODULE - -/* -****************************************************************** -****************************************************************** -******* ******** -****** (C) 1988-2008 Tecplot, Inc. ******* -******* ******** -****************************************************************** -****************************************************************** -*/ -/* Source file revision $Revision: 7627 $ */ - -#include "GLOBAL.h" -#include "TASSERT.h" -#include "Q_UNICODE.h" -#include "SYSTEM.h" -#include "FILESTREAM.h" -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -#include "DATAIO4.h" -#include "DATASET0.h" -#include "TECXXX.h" -#include "DATAUTIL.h" -#include "ALLOC.h" -#include - -#if !defined MAKEARCHIVE -#include "AUXDATA.h" -#endif /* MAKEARCHIVE */ - -#if defined MSWIN -#include -#endif - -#if defined UNIXX -#include -#include -#include -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif -using namespace std; - -#if defined MAKEARCHIVE - #if defined MSWIN && defined _DEBUG -/* For debug .dll builds, send debug info to debug window. */ - #define PRINT0(s) do { OutputDebugString(s); } while (0) - #define PRINT1(s,a1) do { char buffer[512]; sprintf(buffer,s,a1); OutputDebugString(buffer); } while (0) - #define PRINT2(s,a1,a2) do { char buffer[512]; sprintf(buffer,s,a1,a2); OutputDebugString(buffer); } while (0) - #else -/* For all other builds (including release .dll), send debug info to stdout. */ - #define PRINT0(s) printf(s) - #define PRINT1(s,a1) printf(s,a1) - #define PRINT2(s,a1,a2) printf(s,a1,a2) -#endif -#else - #if defined MSWIN -/* For nonarchive, Windows, don't send debug info. */ - #define PRINT0(s) ((void)0) - #define PRINT1(s,a1) ((void)0) - #define PRINT2(s,a1,a2) ((void)0) - #else -/* For nonarchive, nonwindows, send debug info to stdout. */ - #define PRINT0(s) printf(s) - #define PRINT1(s,a1) printf(s,a1) - #define PRINT2(s,a1,a2) printf(s,a1,a2) - #endif -#endif - -typedef char *FNameType; -typedef FILE *FilePtr; - -#define MaxNumFiles 10 -#define MAX_DUPLIST_VARS 50 /* maybe crank up in the future */ - -#define BYTES_PER_CHUNK 4096 -#define TECIO_NO_NEIGHBORING_ELEM 0 -#define TECIO_NO_NEIGHBORING_ZONE 0 - -#if defined MAKEARCHIVE -static LgIndex_t DebugLevel[MaxNumFiles] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -#endif -static INTEGER4 IsOpen[MaxNumFiles] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -static INTEGER4 NumErrs[MaxNumFiles] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -static INTEGER4 NumVars[MaxNumFiles]; -static FNameType DestFName[MaxNumFiles] = {NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL - }; -static FNameType BlckFName[MaxNumFiles] = {NULL, NULL, NULL, NULL, NULL, - NULL, NULL, NULL, NULL, NULL - }; -static FileStream_s* BlckFile[MaxNumFiles]; -static FileStream_s* HeadFile[MaxNumFiles]; -static vector MinMaxOffset[MaxNumFiles]; /* vector dimensioned by num zones */ -static vector VarMinValue[MaxNumFiles]; /* vector dimensioned by num vars */ -static vector VarMaxValue[MaxNumFiles]; /* vector dimensioned by num vars */ -static INTEGER4 DoWriteForeign = FALSE; /* ...default is to write native */ -static INTEGER4 IsWritingNative[MaxNumFiles]; -static INTEGER4 IsBlock[MaxNumFiles]; -static INTEGER4 ZoneType[MaxNumFiles]; -static LgIndex_t IMax[MaxNumFiles]; /* ones based indices */ -static LgIndex_t JMax[MaxNumFiles]; /* ones based indices */ -static LgIndex_t KMax[MaxNumFiles]; /* ones based indices */ -static vector TotalNumFaceNodes[MaxNumFiles]; /* vector dimensioned by num zones */ -static LgIndex_t TotalNumFaceBndryFaces[MaxNumFiles]; -static LgIndex_t TotalNumFaceBndryConns[MaxNumFiles]; -static LgIndex_t ICellMax[MaxNumFiles]; -static LgIndex_t JCellMax[MaxNumFiles]; -static LgIndex_t KCellMax[MaxNumFiles]; -static vector NumFaceConnections[MaxNumFiles]; /* vector dimensioned by num zones */ -static INTEGER4 FaceNeighborMode[MaxNumFiles]; -static vector FaceNeighborsOrMapWritten[MaxNumFiles]; /* vector dimensioned by num zones */ -static INTEGER4 NumIndices[MaxNumFiles]; -static LgIndex_t NumDataValuesWritten[MaxNumFiles]; -static LgIndex_t NumOrderedCCDataValuesWritten[MaxNumFiles]; /* CC data only */ -static LgIndex_t NumDataValuesToWrite[MaxNumFiles]; -static vector NumRunningVarValues[MaxNumFiles]; /* vector dimensioned by num vars */ -static vector IsSharedVar[MaxNumFiles]; /* vector dimensioned by num vars */ -static vector IsPassiveVar[MaxNumFiles]; /* vector dimensioned by num vars */ -static INTEGER4 CurZone[MaxNumFiles]; /* zero based zone numbers */ -static INTEGER4 CurVar[MaxNumFiles]; /* zero based var numbers */ -static INTEGER4 FieldDataType; -static INTEGER4 CurFile = -1; -static vector IsCellCentered[MaxNumFiles]; /* vector dimensioned by num vars */ -static Boolean_t HasFECONNECT[MaxNumFiles]; -static INTEGER4 FileTypes[MaxNumFiles]; -static vector NumConnectivityNodes[MaxNumFiles]; /* vector dimensioned by num zones */ -static vector ConnectivityWritten[MaxNumFiles]; /* vector dimensioned by num zones */ - -/* - * From preplot.cpp: - * - * ZoneType 0=ORDERED,1=FELINESEG,2=FETRIANGLE, - * 3=FEQUADRILATERAL,4=FETETRAHEDRON,5=FEBRICK, - * 6=FEPOLYGON,7=FEPOLYHEDRON - */ -#define ORDERED 0 -#define FELINESEG 1 -#define FETRIANGLE 2 -#define FEQUADRILATERAL 3 -#define FETETRAHEDRON 4 -#define FEBRICK 5 -#define FEPOLYGON 6 -#define FEPOLYHEDRON 7 -/* - * FileType 0=FULLFILE,1=GRIDFILE,2=SOLUTIONFILE - */ -#define FULLFILE 0 -#define GRIDFILE 1 -#define SOLUTIONFILE 2 - -#if defined MAKEARCHIVE -static char const* ZoneTypes[] = -{ - "ORDERED", - "FELINESEG", - "FETRIANGLE", - "FEQUADRILATERAL", - "FETETRAHEDRON", - "FEBRICK", - "FEPOLYGON", - "FEPOLYHEDRON" -}; -#endif /* MAKEARCHIVE */ - - -static void WriteErr(const char *routine_name) -{ - #if defined MAKEARCHIVE - PRINT2("Err: (%s) Write failure on file %d.\n", routine_name, CurFile + 1); - #endif - NumErrs[CurFile]++; -} - -static LgIndex_t TecXXXZoneNum = 0; - -Boolean_t ParseDupList(LgIndex_t **ShareVarFromZone, - LgIndex_t *ShareConnectivityFromZone, - const char *DupList) -{ - Boolean_t IsOk = TRUE; - - REQUIRE(VALID_REF(ShareVarFromZone) && *ShareVarFromZone == NULL); - REQUIRE(VALID_REF(ShareConnectivityFromZone)); - REQUIRE(VALID_REF(DupList)); - - while (IsOk && *DupList) - { - /* skip leading spaces */ - while (*DupList && *DupList == ' ') - DupList++; - - /* is this the FECONNECT keyword? */ - if (*DupList && !strncmp(DupList, "FECONNECT", 9)) - *ShareConnectivityFromZone = TecXXXZoneNum; - - else if (*DupList && !isdigit(*DupList)) - IsOk = FALSE; /* syntax error */ - - else if (*DupList) - { - char *NotUsed = NULL; - EntIndex_t WhichVar = strtol(DupList, &NotUsed, 10); - EntIndex_t numVarsForFile = NumVars[CurFile]; - - if (0 < WhichVar && WhichVar < numVarsForFile) - { - if (!(*ShareVarFromZone)) - { - *ShareVarFromZone = ALLOC_ARRAY(numVarsForFile, LgIndex_t, "Variable sharing list"); - if (*ShareVarFromZone) - memset(*ShareVarFromZone, (char)0, numVarsForFile * sizeof(LgIndex_t)); - } - - if (*ShareVarFromZone) - (*ShareVarFromZone)[WhichVar - 1] = TecXXXZoneNum; - else - IsOk = FALSE; - } - else - { - /* Invalid var num */ - IsOk = FALSE; - } - } - - /* - * Skip to the comma. This - * will also allow the syntax error - * of more than one consecutive comma - */ - - while (*DupList && *DupList != ',') - DupList++; - - /* skip past the comma (can handle the syntax error of more than 1 comma) */ - while (*DupList && *DupList == ',') - DupList++; - } - - return IsOk; -} - -/** - */ -static FileStream_s *OpenFileStream(const char *FilePath, - const char *AccessMode, - Boolean_t IsByteOrderNative) -{ - REQUIRE(VALID_REF(FilePath)); - REQUIRE(VALID_REF(AccessMode)); - - FileStream_s *Result = NULL; - FILE *File = TP_FOPEN(FilePath, AccessMode); - if (File != NULL) - { - Result = FileStreamAlloc(File, IsByteOrderNative); - if (Result == NULL) - TP_FCLOSE(File); - } - - ENSURE((VALID_REF(Result) && VALID_REF(Result->File)) || Result == NULL); - return Result; -} - -/** - */ -static void CloseFileStream(FileStream_s **FileStream) -{ - REQUIRE(VALID_REF(FileStream)); - REQUIRE(VALID_REF(*FileStream) || *FileStream == NULL); - - if (*FileStream != NULL) - { - TP_FCLOSE((*FileStream)->File); - FileStreamDealloc(FileStream); - } - - ENSURE(*FileStream == NULL); -} - -/** - * Get the best terminator (separator) character to use for the string. First - * precedence goes to the new line then the command and finally by default the - * space. NOTE: We use a do loop to allow it to be used as a single statement. - */ -#define GET_BEST_TERMINATOR_CHAR(CompoundStr, TerminatorChar) \ - do \ - { \ - if (strchr((CompoundStr), '\n') != NULL) \ - (TerminatorChar) = '\n'; \ - else if (strchr((CompoundStr), ',') != NULL) \ - (TerminatorChar) = ','; \ - else \ - (TerminatorChar) = ' '; \ - } while (0) - - -/** - * TECINIXXX - */ -INTEGER4 LIBCALL TECINI112(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *FileType, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - size_t L; - int I; - char RName[80]; - char *CPtr; - int NewFile = -1; - - /* - * Note that users should not mix TECXXX, TEC100XXX, and TEC110XXX calls, but - * just in case, initialize the TecXXXZoneNum variable. It may not help, but - * it doesn't hurt... - */ - TecXXXZoneNum = 0; - - #if defined MAKEARCHIVE - InitInputSpecs(); - #endif - - for (I = 0; (I < MaxNumFiles) && (NewFile == -1); I++) - { - if (!IsOpen[I]) - NewFile = I; - } - - if (NewFile == -1) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECINI112) Too many files (%d) opened for printing.\n", NewFile); - #endif - return (-1); - } - - if (CurFile == -1) - CurFile = 0; - - #if defined MAKEARCHIVE - DebugLevel[NewFile] = *Debug; - #endif - /* check sizes for array sized by number of variables */ - CHECK(VarMinValue[NewFile].empty()); - CHECK(VarMaxValue[NewFile].empty()); - CHECK(NumRunningVarValues[NewFile].empty()); - CHECK(IsSharedVar[NewFile].empty()); - CHECK(IsPassiveVar[NewFile].empty()); - CHECK(IsCellCentered[NewFile].empty()); - - /* check sizes for array sized by number of zones */ - CHECK(MinMaxOffset[NewFile].empty()); - CHECK(TotalNumFaceNodes[NewFile].empty()); - CHECK(NumFaceConnections[NewFile].empty()); - CHECK(FaceNeighborsOrMapWritten[NewFile].empty()); - CHECK(NumConnectivityNodes[NewFile].empty()); - CHECK(ConnectivityWritten[NewFile].empty()); - - CurZone[NewFile] = -1; - L = 0; - if (FName != NULL) - L = strlen(FName); - if (L == 0) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECINI112) Bad file name for file %d.\n", NewFile); - #endif - return (-1); - } - DestFName[NewFile] = ALLOC_ARRAY(L + 1, char, "data set fname"); - strcpy(DestFName[NewFile], FName); - - #if defined (DOS) - { - sprintf(RName, "BLCKFILE.%03d", (int)(NewFile + 1)); - } - #else - { - sprintf(RName, "tp%1dXXXXXX", NewFile + 1); - } - #endif - - L = strlen(RName); - if (ScratchDir != NULL) - L += strlen(ScratchDir) + 1; /* +1 for the slash delimeter */ - BlckFName[NewFile] = ALLOC_ARRAY(L + 1, char, "data set fname"); - if (ScratchDir != NULL) - { - strcpy(BlckFName[NewFile], ScratchDir); - #if defined DOS || defined MSWIN - { - strcat(BlckFName[NewFile], "\\"); - } - #else - { - strcat(BlckFName[NewFile], "/"); - } - #endif - } - else - BlckFName[NewFile][0] = '\0'; - - strcat(BlckFName[NewFile], RName); - CHECK(strlen(BlckFName[NewFile]) <= L); - - #if defined MSWIN - { - _mktemp(BlckFName[NewFile]); - } - #elif defined UNIXX - { - /* - * POSIX compiant behavior is to make - * sure umask is set correctly first. - */ - mode_t OrigUmask = umask(0022); /* ...should produce rw------- */ - int FileDesc = mkstemp(BlckFName[NewFile]); - if (FileDesc != -1) - close(FileDesc); - umask(OrigUmask); - } - #endif - - #if defined MAKEARCHIVE - if (DebugLevel[NewFile]) - { - PRINT2("Scratch File #%d: %s\n", NewFile + 1, BlckFName[NewFile]); - PRINT2("Dest File #%d: %s\n", NewFile + 1, DestFName[NewFile]); - } - #endif - - IsWritingNative[NewFile] = !DoWriteForeign; - - #if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ - #endif - - HeadFile[NewFile] = OpenFileStream(DestFName[NewFile], "wb", IsWritingNative[NewFile]); - BlckFile[NewFile] = OpenFileStream(BlckFName[NewFile], "wb", IsWritingNative[NewFile]); - - if (BlckFile[NewFile] == NULL) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECINI112) Cannot open scratch file for output.\n"); - PRINT0(" Check permissions in scratch directory.\n"); - #endif - NumErrs[NewFile]++; - return (-1); - } - if (HeadFile[NewFile] == NULL) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECINI112) Cannot open plot file. Check permissions.\n"); - #endif - NumErrs[NewFile]++; - return (-1); - } - - writeBinaryVersionNumber(*HeadFile[NewFile], - TecplotBinaryFileVersion); - WriteBinaryMagic(HeadFile[NewFile]); - - /* Write file type */ - if (*FileType >= FULLFILE && *FileType <= SOLUTIONFILE) - FileTypes[NewFile] = *FileType; - else - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECINI112) Bad filetype argument. Check documentation.\n"); - #endif - NumErrs[NewFile]++; - return (-1); - } - - CHECK(TecplotBinaryFileVersion == 112); - if (!WriteBinaryInt32(HeadFile[NewFile], (LgIndex_t)FileTypes[NewFile])) - { - WriteErr("TECINI112"); - return (-1); - } - - if (!DumpDatafileString(HeadFile[NewFile], - Title, - TRUE)) - { - WriteErr("TECINI112"); - return (-1); - } - - NumVars[NewFile] = 0; - CPtr = Variables; - - - /* - * Three possible variable name separators are accepted with the following - * precidence: newline, comma, and space. - */ - { - char terminator; - - GET_BEST_TERMINATOR_CHAR(CPtr, terminator); - while (*CPtr) - { - /* strip leading spaces */ - while (*CPtr && *CPtr == ' ') - CPtr++; - - if (*CPtr) - { - NumVars[NewFile]++; - /* skip to terminating character */ - while (*CPtr && *CPtr != terminator) - CPtr++; - /* skip past terminating character */ - if (*CPtr) - CPtr++; - } - } - } - -#if 0 - /* A grid file can have no variables in it as long as there is a connectivity list */ - if (NumVars[NewFile] == 0 && FileTypes[NewFile] != GRIDFILE) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECINI110) No variable names were defined.\n"); - #endif - NumErrs[NewFile]++; - return (-1); - } -#endif - - #if defined MAKEARCHIVE - if (DebugLevel[NewFile]) - PRINT1("NumVars=%d\n", NumVars[NewFile]); - #endif - /* make sure var-sized arrays are big enough for all vars */ - try - { - VarMinValue[NewFile].resize(NumVars[NewFile]); - VarMaxValue[NewFile].resize(NumVars[NewFile]); - NumRunningVarValues[NewFile].resize(NumVars[NewFile]); - IsSharedVar[NewFile].resize(NumVars[NewFile]); - IsPassiveVar[NewFile].resize(NumVars[NewFile]); - IsCellCentered[NewFile].resize(NumVars[NewFile]); - } - catch (std::bad_alloc const&) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECINI112) Memory allocation error.\n"); - #endif - NumErrs[NewFile]++; - return (-1); - } - - if (!WriteBinaryInt32(HeadFile[NewFile], (LgIndex_t)NumVars[NewFile])) - { - WriteErr("TECINI110"); - return (-1); - } - - CPtr = Variables; - { - char terminator; - char TString[MaxChrsVarName+1]; - int I; - - GET_BEST_TERMINATOR_CHAR(CPtr, terminator); - while (*CPtr) - { - /* skip leading space characters */ - while (*CPtr && *CPtr == ' ') - CPtr++; - if (*CPtr) - { - I = 0; - /* skip to terminator */ - while (*CPtr && *CPtr != terminator) - { - TString[I++] = *CPtr++; - } - /* skip past terminator */ - if (*CPtr) - CPtr++; - - /* strip trailing spaces */ - I--; - while (I >= 0 && TString[I] == ' ') - I--; - - TString[I+1] = '\0'; - - if (!DumpDatafileString(HeadFile[NewFile], TString, TRUE)) - { - WriteErr("TECINI110"); - return (-1); - } - } - } - } - - IsOpen[NewFile] = 1; - - if (*VIsDouble) - FieldDataType = FieldDataType_Double; - else - FieldDataType = FieldDataType_Float; - - return (0); -} - -INTEGER4 LIBCALL TECINI111(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *FileType, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - return TECINI112(Title, - Variables, - FName, - ScratchDir, - FileType, - Debug, - VIsDouble); -} - -INTEGER4 LIBCALL TECINI110(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - INTEGER4 FType = FULLFILE; - - TecXXXZoneNum = 0; - return TECINI112(Title, - Variables, - FName, - ScratchDir, - &FType, - Debug, - VIsDouble); -} - -INTEGER4 LIBCALL TECINI100(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - INTEGER4 FType = FULLFILE; - - TecXXXZoneNum = 0; - return TECINI112(Title, - Variables, - FName, - ScratchDir, - &FType, - Debug, - VIsDouble); -} - -INTEGER4 LIBCALL TECINI(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - INTEGER4 FType = FULLFILE; - - TecXXXZoneNum = 0; - return TECINI112(Title, - Variables, - FName, - ScratchDir, - &FType, - Debug, - VIsDouble); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecini112_(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *FileType, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - return TECINI112(Title, Variables, FName, ScratchDir, FileType, Debug, VIsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecini111_(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *FileType, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - return TECINI112(Title, Variables, FName, ScratchDir, FileType, Debug, VIsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecini110_(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - INTEGER4 FType = FULLFILE; - return TECINI112(Title, Variables, FName, ScratchDir, &FType, Debug, VIsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecini100_(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - INTEGER4 FType = FULLFILE; - return TECINI112(Title, Variables, FName, ScratchDir, &FType, Debug, VIsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecini_(char *Title, - char *Variables, - char *FName, - char *ScratchDir, - INTEGER4 *Debug, - INTEGER4 *VIsDouble) -{ - INTEGER4 FType = FULLFILE; - return TECINI112(Title, - Variables, - FName, - ScratchDir, - &FType, - Debug, - VIsDouble); -} -#endif - - -static int CheckData(const char *routine_name) -{ - - if (NumDataValuesToWrite[CurFile] != NumDataValuesWritten[CurFile]) - { - #if defined MAKEARCHIVE - PRINT2("Err: (%s) Wrong number of data values in file %d:\n", routine_name, CurFile + 1); - PRINT2(" %d data values for Zone %d were processed,\n", NumDataValuesWritten[CurFile], CurZone[CurFile] + 1); - PRINT1(" %d data values were expected.\n", NumDataValuesToWrite[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - return (0); -} - -static int CheckFile(const char *routine_name) -{ - if ((CurFile == -1) || (!IsOpen[CurFile])) - { - #if defined MAKEARCHIVE - PRINT2("Err: (%s) Attempt to use invalid file (%d).\n", - routine_name, CurFile + 1); - #endif - return (-1); - } - return (0); -} - -/** - * Advances CurVar[CurFile] to the next non-shared active variable. TECDATXXX - * clients should not supply values for shared or passive variables. - */ -static void AdvanceToNextVarWithValues(void) -{ - /* search for the next variable with values */ - do - { - CurVar[CurFile]++; - } - while (CurVar[CurFile] < NumVars[CurFile] && - (IsSharedVar[CurFile][CurVar[CurFile]] || - IsPassiveVar[CurFile][CurVar[CurFile]])); -} - -/** - * TECZNEXXX - */ -INTEGER4 LIBCALL TECZNE112(char *ZnTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMxOrNumFaces, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *NumFaceNodes, - INTEGER4 *NumFaceBndryFaces, - INTEGER4 *NumFaceBndryConns, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - int I; - int IsOk = 1; - - if (CheckFile("TECZNE112") < 0) - return (-1); - - if (CurZone[CurFile] > -1) - { - if (CheckData("TECZNE112") < 0) - return (-1); - } - - if (NumVars[CurFile] == 0) - { - WriteErr("TECZNE112"); - #if defined MAKEARCHIVE - PRINT1("Err: (TECZNE112) Cannot write out zones if numvars is equal to zero (file %d).\n", - CurFile + 1); - #endif - return (-1); - } - - if (CurZone[CurFile] > MaxNumZonesOrVars - 2) /* -1 based */ - { - WriteErr("TECZNE112"); - #if defined MAKEARCHIVE - PRINT2("Err: (TECZNE112) Exceeded max number of zones (%d) in file %d.\n", - MaxNumZonesOrVars, CurFile + 1); - #endif - return (-1); - } - - if (*StrandID < -1) - { - #if defined MAKEARCHIVE - PRINT2("Err: (TECZNE112) Invalid StrandID supplied for file %d, zone %d.\n", - CurFile + 1, CurZone[CurFile] + 1 + 1); - #endif - return (-1); - } - - if (*ParentZone < 0) - { - #if defined MAKEARCHIVE - PRINT2("Err: (TECZNE112) Invalid ParentZone supplied for file %d, zone %d.\n", - CurFile + 1, CurZone[CurFile] + 1 + 1); - #endif - return (-1); - } - - /* - * This is a temporary error. Point format should no longer be written to the file - * and should instead be converted to block format before being written. Since the - * conversion has not yet been implemented, it is an error to use point data. - * TODO (JN): Remove this error when point to block conversion has been implemented. - */ - if (*IsBlk != 1) - { - #if defined MAKEARCHIVE - PRINT2("Err: (TECZNE112) Point data is not currently allowed. " - " Please use block format for file %d, zone %d.\n", - CurFile + 1, CurZone[CurFile] + 1 + 1); - #endif - return (-1); - } - - NumDataValuesWritten[CurFile] = 0; - NumOrderedCCDataValuesWritten[CurFile] = 0; - CurZone[CurFile]++; - - /* Resize zone-dimensioned arrays (CurZone[] is 0-based) */ - try - { - MinMaxOffset[CurFile].resize(CurZone[CurFile] + 1); - TotalNumFaceNodes[CurFile].resize(CurZone[CurFile] + 1); - NumFaceConnections[CurFile].resize(CurZone[CurFile] + 1); - FaceNeighborsOrMapWritten[CurFile].resize(CurZone[CurFile] + 1); - NumConnectivityNodes[CurFile].resize(CurZone[CurFile] + 1); - ConnectivityWritten[CurFile].resize(CurZone[CurFile] + 1); - } - catch (std::bad_alloc const&) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECZNE112) Memory allocation error.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - ZoneType[CurFile] = *ZnType; - IMax[CurFile] = *IMxOrNumPts; - JMax[CurFile] = *JMxOrNumElements; - KMax[CurFile] = *KMxOrNumFaces; - ICellMax[CurFile] = *ICellMx; - JCellMax[CurFile] = *JCellMx; - KCellMax[CurFile] = *KCellMx; - /* Set the flags that connectivity, face neighbors or face map hasn't been written for the zone yet. */ - FaceNeighborsOrMapWritten[CurFile][CurZone[CurFile]] = FALSE; - ConnectivityWritten[CurFile][CurZone[CurFile]] = FALSE; - - if (ZoneType[CurFile] == ZoneType_FEPolygon || - ZoneType[CurFile] == ZoneType_FEPolyhedron) - { - NumFaceConnections[CurFile][CurZone[CurFile]] = 0; /* ...not used for polytope data */ - FaceNeighborMode[CurFile] = 0; /* ...not used for polytope data */ - NumConnectivityNodes[CurFile][CurZone[CurFile]] = 0; /* ...not used for polytope data */ - - IsBlock[CurFile] = TRUE; /* ...polytope data is always block */ - TotalNumFaceNodes[CurFile][CurZone[CurFile]] = *NumFaceNodes; - TotalNumFaceBndryFaces[CurFile] = *NumFaceBndryFaces; - TotalNumFaceBndryConns[CurFile] = *NumFaceBndryConns; - } - else /* ...classic data */ - { - IsBlock[CurFile] = *IsBlk; - NumFaceConnections[CurFile][CurZone[CurFile]] = *NumFaceConn; - FaceNeighborMode[CurFile] = *FNMode; - - TotalNumFaceNodes[CurFile][CurZone[CurFile]] = 0; /* ...not used for classic data */ - TotalNumFaceBndryFaces[CurFile] = 0; /* ...not used for classic data */ - TotalNumFaceBndryConns[CurFile] = 0; /* ...not used for classic data */ - } - - WriteBinaryReal(HeadFile[CurFile], - (double)ZoneMarker, - FieldDataType_Float); - if (!DumpDatafileString(HeadFile[CurFile], - ZnTitle, - TRUE)) - { - WriteErr("TECZNE112"); - return (-1); - } - - if ((ShareVarFromZone && *ShareConnectivityFromZone) && - CurZone[CurFile] == 0) - { - /* can't have a duplist if there's nothing to duplicate */ - IsOk = 0; - } - - if (IsOk == 0) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECZNE112) Bad zone format for file %d.\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - - switch (ZoneType[CurFile]) - { - case ORDERED: - NumIndices[CurFile] = 0; - break; - case FELINESEG: - NumIndices[CurFile] = 2; - break; - case FETRIANGLE: - NumIndices[CurFile] = 3; - break; - case FEQUADRILATERAL: - NumIndices[CurFile] = 4; - break; - case FETETRAHEDRON: - NumIndices[CurFile] = 4; - break; - case FEBRICK: - NumIndices[CurFile] = 8; - break; - } - - /* ...not used for poly or ordered data and don't count sharing or solution files. */ - if (ZoneType[CurFile] != ZoneType_FEPolygon && - ZoneType[CurFile] != ZoneType_FEPolyhedron && - *ShareConnectivityFromZone == 0 && - FileTypes[CurFile] != SOLUTIONFILE) - NumConnectivityNodes[CurFile][CurZone[CurFile]] = NumIndices[CurFile] * JMax[CurFile]; - - /* - * We do not check any return values until the end. If these calls fail, - * WriteFieldDataType below should fail as well. - */ - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)(*ParentZone) - 1); /* ...ParentZone is zero based for binary file */ - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)(*StrandID) - 1); /* ...StrandID is zero based for binary file */ - WriteBinaryReal(HeadFile[CurFile], *SolutionTime, FieldDataType_Double); - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t) - 1); /* No Zone Color Assignment */ - WriteBinaryInt32(HeadFile[CurFile], ZoneType[CurFile]); - - NumDataValuesToWrite[CurFile] = 0; - for (I = 0; I < NumVars[CurFile]; I++) - { - IsSharedVar[CurFile][I] = (ShareVarFromZone != NULL && ShareVarFromZone[I] != 0); /* ...shared? */ - IsPassiveVar[CurFile][I] = (PassiveVarList != NULL && PassiveVarList[I] == 1); /* ...passive? */ - } - - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)(ValueLocation != NULL ? 1 : 0)); /* ...are var locations specified? */ - if (ValueLocation) - { - for (I = 0; I < NumVars[CurFile]; I++) - { - int VIndex; - LgIndex_t NumNodes; - LgIndex_t NumCells; - - if (ZoneType[CurFile] == ORDERED) - { - NumNodes = IMax[CurFile] * JMax[CurFile] * KMax[CurFile]; - NumCells = (MAX(IMax[CurFile] - 1, 1) * - MAX(JMax[CurFile] - 1, 1) * - MAX(KMax[CurFile] - 1, 1)); - } - else - { - NumNodes = IMax[CurFile]; - NumCells = JMax[CurFile]; - } - - if (IsSharedVar[CurFile][I]) - VIndex = ShareVarFromZone[I] - 1; - else - VIndex = I; - - if (VIndex == 0) - NumRunningVarValues[CurFile][I] = 0; - else - NumRunningVarValues[CurFile][VIndex] = NumRunningVarValues[CurFile][VIndex-1]; - - IsCellCentered[CurFile][VIndex] = (ValueLocation[I] == ValueLocation_CellCentered); - if (ValueLocation[I] == ValueLocation_CellCentered) - { - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)1); - if (!IsSharedVar[CurFile][I] && !IsPassiveVar[CurFile][I]) - { - NumDataValuesToWrite[CurFile] += NumCells; - NumRunningVarValues[CurFile][VIndex] += NumCells; - } - } - else if (ValueLocation[I] == ValueLocation_Nodal) - { - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)0); - if (!IsSharedVar[CurFile][I] && !IsPassiveVar[CurFile][I]) - { - NumDataValuesToWrite[CurFile] += NumNodes; - NumRunningVarValues[CurFile][VIndex] += NumNodes; - } - } - else - { - #if defined MAKEARCHIVE - PRINT2("Err: (TECZNE112) Bad zone value location for file %d, variable %d.\n", CurFile + 1, I + 1); - #endif - NumErrs[CurFile]++; - return(-1); - } - } - } - else - { - LgIndex_t NumNodes; - if (ZoneType[CurFile] == ORDERED) - { - NumNodes = IMax[CurFile] * JMax[CurFile] * KMax[CurFile]; - } - else - { - NumNodes = IMax[CurFile]; - } - - for (I = 0; I < NumVars[CurFile]; I++) - { - int VIndex; - if (IsSharedVar[CurFile][I]) - VIndex = ShareVarFromZone[I] - 1; - else - VIndex = I; - - if (VIndex == 0) - NumRunningVarValues[CurFile][I] = 0; - else - NumRunningVarValues[CurFile][VIndex] = NumRunningVarValues[CurFile][VIndex-1]; - - IsCellCentered[CurFile][VIndex] = FALSE; - if (!IsSharedVar[CurFile][I] && !IsPassiveVar[CurFile][I]) - { - NumDataValuesToWrite[CurFile] += NumNodes; - NumRunningVarValues[CurFile][VIndex] += NumNodes; - } - } - } - - /* - * As of binary version 108 Tecplot introduced - * the ability to output its auto-generated face - * neighbor array in its raw form. For now - * TecIO will always decline to perform this - * step and instead fall back to the delivering - * one neighbor at a time. - */ - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)0); /* IsRawFNAvailable */ - - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)NumFaceConnections[CurFile][CurZone[CurFile]]); - if (NumFaceConnections[CurFile][CurZone[CurFile]] > 0) - { - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)FaceNeighborMode[CurFile]); - if (ZoneType[CurFile] != ORDERED) - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)0); /* FEFaceNeighborsComplete */ - } - - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)IMax[CurFile]); - if (ZoneType[CurFile] == FEPOLYGON || - ZoneType[CurFile] == FEPOLYHEDRON) - { - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)KMax[CurFile]); - - /* - * As of binary version 111 these items moved from the data section to - * the header. - */ - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)TotalNumFaceNodes[CurFile][CurZone[CurFile]]); - if (TotalNumFaceBndryFaces[CurFile] > 0) - { - /* Each boundary face must have >= 1 boundary connection. */ - if (TotalNumFaceBndryConns[CurFile] < TotalNumFaceBndryFaces[CurFile]) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECZNE112) There must be at least 1 boundary connection for each boundary face in zone %d.\n", - CurZone[CurFile] + 1); - PRINT2(" %d boundary faces and %d boundary connections were specified.\n", - TotalNumFaceBndryFaces[CurFile], TotalNumFaceBndryConns[CurFile]); - #endif - NumErrs[CurFile]++; - return(-1); - } - - /* - * As a convenience for the ASCII format, TecUtil, and TECIO layers if any - * boundary connections exists we automatically add a no-neighboring - * connection as the first item so that they can user 0 for no-neighboring - * element in the element list regardless if they have boundary connections - * or not. - */ - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)TotalNumFaceBndryFaces[CurFile] + 1); /* ...add a boundary face for no neighboring element as a convenience */ - } - else - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)TotalNumFaceBndryFaces[CurFile]); - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)TotalNumFaceBndryConns[CurFile]); - } - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)JMax[CurFile]); - - if (ZoneType[CurFile] == ORDERED) - { - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)KMax[CurFile]); - } - else - { - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)ICellMax[CurFile]); - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)JCellMax[CurFile]); - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)KCellMax[CurFile]); - } - - /* - * Aux data. This has to be over-written by the aux data writing routine. - * Because it currently at the end of the header section we don't need to - * keep track of the position for seeking back to it. - */ - WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)0); - - WriteBinaryReal(BlckFile[CurFile], - (double)ZoneMarker, - FieldDataType_Float); - - for (I = 0; I < NumVars[CurFile]; I++) - { - if (!WriteFieldDataType(BlckFile[CurFile], - (FieldDataType_e)FieldDataType, - TRUE)) - { - WriteErr("TECZNE112"); - return (-1); - } - } - - /* Passive variable identification */ - if (PassiveVarList) - { - WriteBinaryInt32(BlckFile[CurFile], 1); - for (I = 0; I < NumVars[CurFile]; I++) - WriteBinaryInt32(BlckFile[CurFile], PassiveVarList[I]); - } - else - WriteBinaryInt32(BlckFile[CurFile], 0); - - /* get the CurVar[CurFile] on the first active variable */ - CurVar[CurFile] = -1; - AdvanceToNextVarWithValues(); - - /* Variable & Connectivity Sharing */ - if (ShareVarFromZone) - { - WriteBinaryInt32(BlckFile[CurFile], 1); - for (I = 0; I < NumVars[CurFile]; I++) - WriteBinaryInt32(BlckFile[CurFile], ShareVarFromZone[I] - 1); - } - else - WriteBinaryInt32(BlckFile[CurFile], 0); - WriteBinaryInt32(BlckFile[CurFile], *ShareConnectivityFromZone - 1); - - /* - * Create place holders or the variable min/max value. We will come back - * later after writing the data portion with the real min/max values. In the - * mean time, keep track of the starting point so we can seek back to this - * place. - */ - MinMaxOffset[CurFile][CurZone[CurFile]] = (FileOffset_t)TP_FTELL(BlckFile[CurFile]->File); - - for (I = 0; I < NumVars[CurFile]; I++) - { - /* initialize to unset values */ - VarMinValue[CurFile][I] = LARGEDOUBLE; - VarMaxValue[CurFile][I] = -LARGEDOUBLE; - - if (!IsSharedVar[CurFile][I] && !IsPassiveVar[CurFile][I]) - { - WriteBinaryReal(BlckFile[CurFile], 0.0, FieldDataType_Double); - WriteBinaryReal(BlckFile[CurFile], 0.0, FieldDataType_Double); - } - } - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - { - PRINT1("Writing Zone %d:\n", CurZone[CurFile] + 1); - PRINT1(" Title = %s\n", ZnTitle); - PRINT1(" Type = %s\n", ZoneTypes[ZoneType[CurFile]]); - PRINT1(" IMax = %d\n", IMax[CurFile]); - PRINT1(" JMax = %d\n", JMax[CurFile]); - PRINT1(" KMax = %d\n", KMax[CurFile]); - if (ShareVarFromZone) - { - char DupList[1024] = ""; - - for (I = 0; I < NumVars[CurFile]; I++) - { - if (I > 0) - strcat(DupList, ","); - sprintf(&DupList[strlen(DupList)], "%d", ShareVarFromZone[I]); - } - PRINT1(" DupList = %s\n", DupList); - } - } - #endif - - return (0); -} - -INTEGER4 LIBCALL TECZNE111(char *ZnTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMxOrNumFaces, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *NumFaceNodes, - INTEGER4 *NumFaceBndryFaces, - INTEGER4 *NumFaceBndryConns, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - return TECZNE112(ZnTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMxOrNumFaces, - ICellMx, - JCellMx, - KCellMx, - SolutionTime, - StrandID, - ParentZone, - IsBlk, - NumFaceConn, - FNMode, - NumFaceNodes, - NumFaceBndryFaces, - NumFaceBndryConns, - PassiveVarList, - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -INTEGER4 LIBCALL TECZNE110(char *ZnTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMx, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - INTEGER4 NumFaceNodes = 0; - INTEGER4 NumFaceBndryFaces = 0; - INTEGER4 NumFaceBndryConns = 0; - - return TECZNE112(ZnTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMx, - ICellMx, - JCellMx, - KCellMx, - SolutionTime, - StrandID, - ParentZone, - IsBlk, - NumFaceConn, - FNMode, - &NumFaceNodes, - &NumFaceBndryFaces, - &NumFaceBndryConns, - PassiveVarList, - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -INTEGER4 LIBCALL TECZNE100(char *ZnTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMx, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - double SolutionTime = 0.0; - INTEGER4 StrandID = STRAND_ID_STATIC + 1; /* TECXXX is ones based for StrandID */ - INTEGER4 ParentZone = BAD_SET_VALUE + 1; /* TECXXX is ones based for ParentZone */ - INTEGER4 NumFaceNodes = 0; - INTEGER4 NumFaceBndryFaces = 0; - INTEGER4 NumFaceBndryConns = 0; - - return TECZNE112(ZnTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMx, - ICellMx, - JCellMx, - KCellMx, - &SolutionTime, - &StrandID, - &ParentZone, - IsBlk, - NumFaceConn, - FNMode, - &NumFaceNodes, - &NumFaceBndryFaces, - &NumFaceBndryConns, - NULL, /* PassiveVarList */ - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -#if !defined INDEX_16_BIT // not supported in this test-only mode -INTEGER4 LIBCALL TECZNE(char *ZoneTitle, - INTEGER4 *IMx, - INTEGER4 *JMx, - INTEGER4 *KMx, - char *ZFormat, - char *DupList) -{ - - LgIndex_t ZoneType; - LgIndex_t IsBlock; - LgIndex_t *ShareVarFromZone = NULL; - LgIndex_t ShareConnectivityFromZone; - LgIndex_t Result = 0; - - - if (ZFormat == NULL) - Result = -1; - else if (!strcmp(ZFormat, "BLOCK")) - { - IsBlock = 1; - ZoneType = ZoneType_Ordered; - } - else if (!strcmp(ZFormat, "FEBLOCK")) - { - IsBlock = 1; - switch (*KMx) - { - /* - * From preplot.c: - * - * ZoneType 0=ORDERED,1=FELINESEG,2=FETRIANGLE, - * 3=FEQUADRILATERAL,4=FETETRAHEDRON,5=FEBRICK - */ - case 0: /* Triangular. */ - ZoneType = 2; - break; - case 1: /* Quadrilateral */ - ZoneType = 3; - break; - case 2: /* Tetrahedral */ - ZoneType = 4; - break; - case 3: /* Brick. */ - ZoneType = 5; - break; - } - } - else if (!strcmp(ZFormat, "POINT")) - { - IsBlock = 0; - ZoneType = ZoneType_Ordered; - } - else if (!strcmp(ZFormat, "FEPOINT")) - { - IsBlock = 0; - switch (*KMx) - { - case 0: /* Triangular. */ - ZoneType = 2; - break; - case 1: /* Quadrilateral */ - ZoneType = 3; - break; - case 2: /* Tetrahedral */ - ZoneType = 4; - break; - case 3: /* Brick. */ - ZoneType = 5; - break; - } - } - else - Result = -1; - - ShareConnectivityFromZone = 0; - - - if (Result == 0 && - DupList && - !ParseDupList(&ShareVarFromZone, &ShareConnectivityFromZone, DupList)) - { - Result = -1; - } - - /*Result = TECZNE((char *)ZoneTitle, IMx, JMx, KMx, (char *)ZFormat,(char*)DupList);*/ - if (Result == 0) - { - INTEGER4 ICellMx = 0; - INTEGER4 JCellMx = 0; - INTEGER4 KCellMx = 0; - INTEGER4 NumFaceConnections = 0; - INTEGER4 FaceNeighborMode = FaceNeighborMode_LocalOneToOne; - double SolutionTime = 0.0; - INTEGER4 StrandID = STRAND_ID_STATIC + 1; /* TECXXX is ones based for StrandID */ - INTEGER4 ParentZone = BAD_SET_VALUE + 1; /* TECXXX is ones based for ParentZone */ - INTEGER4 NumFaceNodes = 0; - INTEGER4 NumFaceBndryFaces = 0; - INTEGER4 NumFaceBndryConns = 0; - - Result = TECZNE112((char *)ZoneTitle, - &ZoneType, - IMx, - JMx, - KMx, - &ICellMx, - &JCellMx, - &KCellMx, - &SolutionTime, - &StrandID, - &ParentZone, - &IsBlock, - &NumFaceConnections, - &FaceNeighborMode, - &NumFaceNodes, - &NumFaceBndryFaces, - &NumFaceBndryConns, - NULL, /* PassiveVarList */ - NULL, /* ValueLocation */ - DupList ? ShareVarFromZone : NULL, - &ShareConnectivityFromZone); - TecXXXZoneNum++; - } - - if (ShareVarFromZone) - FREE_ARRAY(ShareVarFromZone, "Variable sharing list"); - - return (INTEGER4) Result; -} -#endif // INDEX_16_BIT -- not supported in this test-only mode - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL teczne112_(char *ZoneTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMx, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *NumFaceNodes, - INTEGER4 *NumFaceBndryFaces, - INTEGER4 *NumFaceBndryConns, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - return TECZNE112(ZoneTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMx, - ICellMx, - JCellMx, - KCellMx, - SolutionTime, - StrandID, - ParentZone, - IsBlk, - NumFaceConn, - FNMode, - NumFaceNodes, - NumFaceBndryFaces, - NumFaceBndryConns, - PassiveVarList, - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -LIBFUNCTION INTEGER4 LIBCALL teczne111_(char *ZoneTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMx, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *NumFaceNodes, - INTEGER4 *NumFaceBndryFaces, - INTEGER4 *NumFaceBndryConns, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - return TECZNE112(ZoneTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMx, - ICellMx, - JCellMx, - KCellMx, - SolutionTime, - StrandID, - ParentZone, - IsBlk, - NumFaceConn, - FNMode, - NumFaceNodes, - NumFaceBndryFaces, - NumFaceBndryConns, - PassiveVarList, - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -LIBFUNCTION INTEGER4 LIBCALL teczne110_(char *ZoneTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMx, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - double *SolutionTime, - INTEGER4 *StrandID, - INTEGER4 *ParentZone, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *PassiveVarList, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - INTEGER4 NumFaceNodes = 0; - INTEGER4 NumFaceBndryFaces = 0; - INTEGER4 NumFaceBndryConns = 0; - - return TECZNE112(ZoneTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMx, - ICellMx, - JCellMx, - KCellMx, - SolutionTime, - StrandID, - ParentZone, - IsBlk, - NumFaceConn, - FNMode, - &NumFaceNodes, - &NumFaceBndryFaces, - &NumFaceBndryConns, - PassiveVarList, - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -LIBFUNCTION INTEGER4 LIBCALL teczne100_(char *ZoneTitle, - INTEGER4 *ZnType, - INTEGER4 *IMxOrNumPts, - INTEGER4 *JMxOrNumElements, - INTEGER4 *KMx, - INTEGER4 *ICellMx, - INTEGER4 *JCellMx, - INTEGER4 *KCellMx, - INTEGER4 *IsBlk, - INTEGER4 *NumFaceConn, - INTEGER4 *FNMode, - INTEGER4 *ValueLocation, - INTEGER4 *ShareVarFromZone, - INTEGER4 *ShareConnectivityFromZone) -{ - return TECZNE100(ZoneTitle, - ZnType, - IMxOrNumPts, - JMxOrNumElements, - KMx, - ICellMx, - JCellMx, - KCellMx, - IsBlk, - NumFaceConn, - FNMode, - ValueLocation, - ShareVarFromZone, - ShareConnectivityFromZone); -} - -LIBFUNCTION INTEGER4 LIBCALL teczne_(char *ZoneTitle, - INTEGER4 *IMx, - INTEGER4 *JMx, - INTEGER4 *KMx, - char *ZFormat, - char *DupList) -{ - return TECZNE(ZoneTitle, - IMx, - JMx, - KMx, - ZFormat, - DupList); -} -#endif - -/** - * Rewrite the var min/max place holders which currently have zero in them. - */ -static void RewritePendingMinMaxValues(void) -{ - FileOffset_t CurrentOffset = (FileOffset_t)TP_FTELL(BlckFile[CurFile]->File); - - TP_FSEEK(BlckFile[CurFile]->File, MinMaxOffset[CurFile][CurZone[CurFile]], SEEK_SET); - int I; - for (I = 0; I < NumVars[CurFile]; I++) - { - if (!IsSharedVar[CurFile][I] && !IsPassiveVar[CurFile][I]) - { - WriteBinaryReal(BlckFile[CurFile], VarMinValue[CurFile][I], FieldDataType_Double); - WriteBinaryReal(BlckFile[CurFile], VarMaxValue[CurFile][I], FieldDataType_Double); - } - } - - /* return the original position */ - TP_FSEEK(BlckFile[CurFile]->File, CurrentOffset, SEEK_SET); -} - -/** - * TECDATXXX - */ -INTEGER4 LIBCALL TECDAT112(INTEGER4 *N, - void *Data, - INTEGER4 *IsDouble) -{ - LgIndex_t I; - double *dptr = (double *)Data; - float *fptr = (float *)Data; - - if (CheckFile("TECDAT112") < 0) - return (-1); - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile] && (*N > 1)) - PRINT2("Writing %d values to file %d.\n", *N, CurFile + 1); - #endif - - for (I = 0; I < *N; I++) - { - double Value = (*IsDouble == 1 ? dptr[I] : fptr[I]); - - /* keep track of var min/max */ - if (Value < VarMinValue[CurFile][CurVar[CurFile]]) - VarMinValue[CurFile][CurVar[CurFile]] = Value; - if (Value > VarMaxValue[CurFile][CurVar[CurFile]]) - VarMaxValue[CurFile][CurVar[CurFile]] = Value; - - if (!WriteBinaryReal(BlckFile[CurFile], Value, (FieldDataType_e)FieldDataType)) - { - WriteErr("TECDAT112"); - return (-1); - } - - /* - * As of version 103 Tecplot writes binary data files so that the ordered - * cell centered field data includes the ghost cells. This makes it much - * easier for Tecplot to map the data when reading by simply writing out - * field data's as a block. As of version 104 the ghost cells of the - * slowest moving index are not included. - */ - if (IsCellCentered[CurFile][CurVar[CurFile]] && ZoneType[CurFile] == ORDERED) - { - CHECK(IsBlock[CurFile]); /* ...ordered CC data must be block format */ - LgIndex_t PIndex = (NumOrderedCCDataValuesWritten[CurFile]); - LgIndex_t FinalIMax = MAX(IMax[CurFile] - 1, 1); - LgIndex_t FinalJMax = MAX(JMax[CurFile] - 1, 1); - LgIndex_t FinalKMax = MAX(KMax[CurFile] - 1, 1); - LgIndex_t IIndex = (PIndex % IMax[CurFile]); - LgIndex_t JIndex = ((PIndex % (IMax[CurFile] * JMax[CurFile])) / IMax[CurFile]); - LgIndex_t KIndex = (PIndex / (IMax[CurFile] * JMax[CurFile])); - LgIndex_t IMaxAdjust = 0; - LgIndex_t JMaxAdjust = 0; - LgIndex_t KMaxAdjust = 0; - if (KMax[CurFile] > 1) - KMaxAdjust = 1; /* ...K is slowest */ - else if (JMax[CurFile] > 1) - JMaxAdjust = 1; /* ...J is slowest */ - else if (IMax[CurFile] > 1) - IMaxAdjust = 1; /* ...I is slowest */ - - if (IIndex + 1 == FinalIMax && FinalIMax < IMax[CurFile] - IMaxAdjust) - { - NumOrderedCCDataValuesWritten[CurFile]++; - if (!WriteBinaryReal(BlckFile[CurFile], 0.0, (FieldDataType_e)FieldDataType)) - { - WriteErr("TECDAT112"); - return (-1); - } - } - if (IIndex + 1 == FinalIMax && - (JIndex + 1 == FinalJMax && FinalJMax < JMax[CurFile] - JMaxAdjust)) - { - LgIndex_t II; - for (II = 1; II <= IMax[CurFile] - IMaxAdjust; II++) - { - NumOrderedCCDataValuesWritten[CurFile]++; - if (!WriteBinaryReal(BlckFile[CurFile], 0.0, (FieldDataType_e)FieldDataType)) - { - WriteErr("TECDAT112"); - return (-1); - } - } - } - if (IIndex + 1 == FinalIMax && - JIndex + 1 == FinalJMax && - (KIndex + 1 == FinalKMax && FinalKMax < KMax[CurFile] - KMaxAdjust)) - { - LgIndex_t JJ, II; - for (JJ = 1; JJ <= JMax[CurFile] - JMaxAdjust; JJ++) - for (II = 1; II <= IMax[CurFile] - IMaxAdjust; II++) - { - NumOrderedCCDataValuesWritten[CurFile]++; - if (!WriteBinaryReal(BlckFile[CurFile], 0.0, (FieldDataType_e)FieldDataType)) - { - WriteErr("TECDAT112"); - return (-1); - } - } - } - - /* increment for the original cell value */ - NumOrderedCCDataValuesWritten[CurFile]++; - } - - /* update the number of data points written */ - NumDataValuesWritten[CurFile]++; - - if (IsBlock[CurFile]) - { - /* for block format update the variable when all values have been given */ - if (NumRunningVarValues[CurFile][CurVar[CurFile]] == NumDataValuesWritten[CurFile]) - { - AdvanceToNextVarWithValues(); /* ...move on to the next variable */ - if (CurVar[CurFile] < NumVars[CurFile] && - IsCellCentered[CurFile][CurVar[CurFile]] && - ZoneType[CurFile] == ORDERED) - NumOrderedCCDataValuesWritten[CurFile] = 0; /* reset for next CC variable */ - } - } - else - { - /* for point format update the variable after each value */ - AdvanceToNextVarWithValues(); - if (CurVar[CurFile] >= NumVars[CurFile]) - { - /* reset to the first active variable */ - CurVar[CurFile] = -1; - AdvanceToNextVarWithValues(); - } - } - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile] > 1) - PRINT2("%d %G\n", NumDataValuesWritten[CurFile] + I + 1, Value); - #endif - } - - /* - * If this is the last call to TECDAT112, - * then we may have to set the 'repeat adjacency list' - * flag in the file. - */ - if (HasFECONNECT[CurFile] && - - /* (essentialy this is CheckData() but we don't want to print - an error message) */ - (NumDataValuesToWrite[CurFile] == NumDataValuesWritten[CurFile])) - { - if (!WriteBinaryInt32(BlckFile[CurFile], (LgIndex_t)1)) - { - WriteErr("TECDAT112"); - return (-1); - } - } - - /* re-write min/max values when all data has been delivered */ - if (NumDataValuesToWrite[CurFile] == NumDataValuesWritten[CurFile]) - RewritePendingMinMaxValues(); - - return (0); -} - -INTEGER4 LIBCALL TECDAT111(INTEGER4 *N, - void *Data, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, - Data, - IsDouble); -} - -INTEGER4 LIBCALL TECDAT110(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, - FieldData, - IsDouble); -} - -INTEGER4 LIBCALL TECDAT100(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, - FieldData, - IsDouble); -} - -INTEGER4 LIBCALL TECDAT(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, - FieldData, - IsDouble); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecdat112_(INTEGER4 *N, - void *Data, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, Data, IsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecdat111_(INTEGER4 *N, - void *Data, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, Data, IsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecdat110_(INTEGER4 *N, - void *Data, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, Data, IsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecdat100_(INTEGER4 *N, - void *Data, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, Data, IsDouble); -} - -LIBFUNCTION INTEGER4 LIBCALL tecdat_(INTEGER4 *N, - void *FieldData, - INTEGER4 *IsDouble) -{ - return TECDAT112(N, - FieldData, - IsDouble); -} -#endif - -/** - * TECNODXXX - */ -INTEGER4 LIBCALL TECNOD112(INTEGER4 *NData) -{ - LgIndex_t L = NumConnectivityNodes[CurFile][CurZone[CurFile]]; - LgIndex_t I; - - ConnectivityWritten[CurFile][CurZone[CurFile]] = TRUE; - - if (CheckFile("TECNOD112") < 0) - return (-1); - - if (ZoneType[CurFile] == FEPOLYGON || - ZoneType[CurFile] == FEPOLYHEDRON) - { - /* Wrong way to specify connectivity for polygons and polyhedrons */ - #if defined MAKEARCHIVE - PRINT0("Err: (TECNOD112) Cannot call TECNOD112 for polygonal or polyhedral zones.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if (HasFECONNECT[CurFile]) - { - /* - * The connectivity list is duplicated, - * so we shouldn't be calling TECNOD112() - */ - return (-1); - } - - if (FileTypes[CurFile] == SOLUTIONFILE) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECNOD112) Cannot call TECNOD112 if file type is SOLUTIONFILE.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if (ZoneType[CurFile] == ORDERED) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECNOD112) Cannot call TECNOD110 if zone type is ORDERED.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if (CheckData("TECNOD112") < 0) - return (-1); - - for (I = 0; I < L; I++) - { - if ((NData[I] > IMax[CurFile]) || - (NData[I] < 1)) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECNOD112) Invalid node map value at position %d:\n", I); - PRINT2(" node map value = %d, max value = %d.\n", NData[I], IMax[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - /* - * As of version 103 Tecplot assumes that node maps are zero based - * instead of ones based. Since we have to maintain the contract we - * subtract 1 for the caller. - */ - if (!WriteBinaryInt32(BlckFile[CurFile], NData[I] - 1)) /* zero based */ - { - WriteErr("TECNOD112"); - return (-1); - } - } - return (0); -} - -INTEGER4 LIBCALL TECNOD111(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -INTEGER4 LIBCALL TECNOD110(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -INTEGER4 LIBCALL TECNOD100(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -INTEGER4 LIBCALL TECNOD(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecnod112_(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -LIBFUNCTION INTEGER4 LIBCALL tecnod111_(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -LIBFUNCTION INTEGER4 LIBCALL tecnod110_(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -LIBFUNCTION INTEGER4 LIBCALL tecnod100_(INTEGER4 *NData) -{ - return TECNOD112(NData); -} - -LIBFUNCTION INTEGER4 LIBCALL tecnod_(INTEGER4 *NData) -{ - return TECNOD112(NData); -} -#endif - -/** - * TECENDXXX - */ -INTEGER4 LIBCALL TECEND112(void) -{ - int RetVal = 0; - - /** - * Validate that all zone data was given for the file since there are no - * more chances to give it. Note that solution files don't define the - * connectivity again. - */ - if (FileTypes[CurFile] != SOLUTIONFILE) - { - for (int ZoneIndex = 0; (RetVal == 0) && (ZoneIndex <= CurZone[CurFile]); ZoneIndex++) - { - if (((NumConnectivityNodes[CurFile][ZoneIndex] > 0) && - (ConnectivityWritten[CurFile][ZoneIndex] == FALSE))) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECEND112) File %d is being closed without writing connectivity data.\n", CurFile + 1); - PRINT1(" Zone %d was defined with a Classic FE zone type but TECNOD112() was not called.\n", ZoneIndex + 1); - #endif - NumErrs[CurFile]++; - RetVal = -1; - } - if (((NumFaceConnections[CurFile][ZoneIndex] > 0) && - (FaceNeighborsOrMapWritten[CurFile][ZoneIndex] == FALSE))) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECEND112) File %d is being closed without writing face neighbor data.\n", CurFile + 1); - PRINT2(" %d connections were specified for zone %d but TECFACE112() was not called.\n", - NumFaceConnections[CurFile][ZoneIndex], ZoneIndex + 1); - #endif - NumErrs[CurFile]++; - RetVal = -1; - } - else if (((TotalNumFaceNodes[CurFile][ZoneIndex] > 0) && - (FaceNeighborsOrMapWritten[CurFile][ZoneIndex] == FALSE))) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECEND112) File %d is being closed without writing face map data.\n", CurFile + 1); - PRINT2(" %d face nodes were specified for zone %d but TECPOLY112() was not called.\n", - TotalNumFaceNodes[CurFile][ZoneIndex], ZoneIndex + 1); - #endif - NumErrs[CurFile]++; - RetVal = -1; - } - } - } - - if (RetVal == 0) - { - if (CheckFile("TECEND112") < 0) - RetVal = -1; - } - - if (RetVal == 0) - { - if (CheckData("TECEND112") < 0) - RetVal = -1; - } - - if (RetVal == 0) - if (!WriteBinaryReal(HeadFile[CurFile], EndHeaderMarker, FieldDataType_Float)) - { - WriteErr("TECEND112"); - RetVal = -1; - } - - CloseFileStream(&BlckFile[CurFile]); - - if (RetVal == 0) - { - BlckFile[CurFile] = OpenFileStream(BlckFName[CurFile], "rb", IsWritingNative[CurFile]); - - /* Append data from BlckFile to HeadFile... */ - char buffer[BYTES_PER_CHUNK]; - size_t bytesRead = 0; - while ((RetVal == 0) && - (feof(BlckFile[CurFile]->File) == 0)) - { - bytesRead = fread((void*)buffer, 1, BYTES_PER_CHUNK, BlckFile[CurFile]->File); - if (ferror(BlckFile[CurFile]->File) == 0) - { - if (bytesRead != fwrite((void*)buffer, 1, bytesRead, HeadFile[CurFile]->File)) - { - /* do not call WriteErr, use custom message instead */ - #if defined MAKEARCHIVE - PRINT1("Err: (TECEND112) Write failure during repack on file %d.\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - RetVal = -1; - } - } - else - { - /* do not call WriteErr, use custom message instead */ - #if defined MAKEARCHIVE - PRINT1("Err: (TECEND112) Write failure during repack on file %d.\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - RetVal = -1; - } - } - CloseFileStream(&BlckFile[CurFile]); - } - - TP_UNLINK(BlckFName[CurFile]); - - CloseFileStream(&HeadFile[CurFile]); - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - { - PRINT1("File %d closed.\n", CurFile + 1); - if (NumErrs[CurFile]) - { - PRINT0("********************************************\n"); - PRINT1(" %d Errors occurred on this file\n", NumErrs[CurFile]); - PRINT0("********************************************\n"); - } - } - #endif - - NumErrs[CurFile] = 0; - IsOpen[CurFile] = 0; - if (DestFName[CurFile]) - FREE_ARRAY(DestFName[CurFile], "data set fname"); - if (BlckFName[CurFile]) - FREE_ARRAY(BlckFName[CurFile], "data set fname"); - BlckFName[CurFile] = NULL; - DestFName[CurFile] = NULL; - - /* reset arrays sized by number of variables */ - VarMinValue[CurFile].clear(); - VarMaxValue[CurFile].clear(); - NumRunningVarValues[CurFile].clear(); - IsSharedVar[CurFile].clear(); - IsPassiveVar[CurFile].clear(); - IsCellCentered[CurFile].clear(); - - /* reset arrays sized by number of zones */ - MinMaxOffset[CurFile].clear(); - TotalNumFaceNodes[CurFile].clear(); - NumFaceConnections[CurFile].clear(); - FaceNeighborsOrMapWritten[CurFile].clear(); - NumConnectivityNodes[CurFile].clear(); - ConnectivityWritten[CurFile].clear(); - - CurFile = 0; - while ((CurFile < MaxNumFiles) && !IsOpen[CurFile]) - CurFile++; - - if (CurFile == MaxNumFiles) - CurFile = -1; - - return RetVal; -} - -INTEGER4 LIBCALL TECEND111(void) -{ - return TECEND112(); -} - -INTEGER4 LIBCALL TECEND110(void) -{ - return TECEND112(); -} - -INTEGER4 LIBCALL TECEND100(void) -{ - return TECEND112(); -} - -INTEGER4 LIBCALL TECEND(void) -{ - return TECEND112(); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecend112_(void) -{ - return TECEND112(); -} - -LIBFUNCTION INTEGER4 LIBCALL tecend111_(void) -{ - return TECEND112(); -} - -LIBFUNCTION INTEGER4 LIBCALL tecend110_(void) -{ - return TECEND112(); -} - -LIBFUNCTION INTEGER4 LIBCALL tecend100_(void) -{ - return TECEND112(); -} - -LIBFUNCTION INTEGER4 LIBCALL tecend_(void) -{ - return TECEND112(); -} -#endif - - - - -static void GetNextLabel(const char **CPtr, - char *NextLabel) -{ - int N = 0; - char *NPtr = NextLabel; - *NPtr = '\0'; - /* Find label start */ - while ((**CPtr) && (**CPtr != '"')) - (*CPtr)++; - if (**CPtr) - (*CPtr)++; - while ((N < 60) && (**CPtr) && (**CPtr != '"')) - { - if (**CPtr == '\\') - { - (*CPtr)++; - } - *NPtr++ = **CPtr; - N++; - (*CPtr)++; - } - if (**CPtr) - (*CPtr)++; - *NPtr = '\0'; -} - - -/** - * TECLABXXX - */ -INTEGER4 LIBCALL TECLAB112(char *S) -{ - const char *CPtr = (const char *)S; - LgIndex_t N = 0; - char Label[60]; - - if (CheckFile("TECLAB112") < 0) - return (-1); - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT0("\nInserting Custom Labels:\n"); - #endif - - do - { - GetNextLabel(&CPtr, Label); - if (*Label) - N++; - } - while (*Label); - - if (N == 0) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECLAB112) Invalid custom label string: %s\n", - (S ? S : " ")); - #endif - NumErrs[CurFile]++; - return (-1); - } - - WriteBinaryReal(HeadFile[CurFile], CustomLabelMarker, FieldDataType_Float); - if (!WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)N)) - { - WriteErr("TECLAB112"); - return (-1); - } - - CPtr = (const char *)S; - do - { - GetNextLabel(&CPtr, Label); - if (*Label) - { - if (!DumpDatafileString(HeadFile[CurFile], Label, TRUE)) - { - WriteErr("TECLAB112"); - return (-1); - } - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf(" %s\n", Label); - #endif - } - } - while (*Label); - - return (0); -} - -INTEGER4 LIBCALL TECLAB111(char *S) -{ - return TECLAB112(S); -} - -INTEGER4 LIBCALL TECLAB110(char *S) -{ - return TECLAB112(S); -} - -INTEGER4 LIBCALL TECLAB100(char *S) -{ - return TECLAB112(S); -} - -INTEGER4 LIBCALL TECLAB(char *S) -{ - return TECLAB112(S); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL teclab112_(char *S) -{ - return TECLAB112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL teclab111_(char *S) -{ - return TECLAB112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL teclab110_(char *S) -{ - return TECLAB112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL teclab100_(char *S) -{ - return TECLAB112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL teclab_(char *S) -{ - return TECLAB112(S); -} -#endif - - -/** - * TECUSRXXX - */ -INTEGER4 LIBCALL TECUSR112(char *S) -{ - if (CheckFile("TECUSR112") < 0) - return (-1); - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT1("\nInserting UserRec: %s\n", S); - #endif - - if ((S == NULL) || (*S == '\0')) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECUSR112) Invalid TECUSR110 string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - WriteBinaryReal(HeadFile[CurFile], UserRecMarker, FieldDataType_Float); - if (!DumpDatafileString(HeadFile[CurFile], S, TRUE)) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf("Err: (TECUSR112) Write failure for file %d\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - return (0); -} - -INTEGER4 LIBCALL TECUSR111(char *S) -{ - return TECUSR112(S); -} - -INTEGER4 LIBCALL TECUSR110(char *S) -{ - return TECUSR112(S); -} - -INTEGER4 LIBCALL TECUSR100(char *S) -{ - return TECUSR112(S); -} - -INTEGER4 LIBCALL TECUSR(char *S) -{ - return TECUSR112(S); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecusr112_(char *S) -{ - return TECUSR112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL tecusr111_(char *S) -{ - return TECUSR112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL tecusr110_(char *S) -{ - return TECUSR112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL tecusr100_(char *S) -{ - return TECUSR112(S); -} - -LIBFUNCTION INTEGER4 LIBCALL tecusr_(char *S) -{ - return TECUSR112(S); -} -#endif - -#if 0 // NOT_CURRENTLY_USED -static int WriteGeomDataBlock(float *Data, - LgIndex_t NumPts) -{ - LgIndex_t I; - - for (I = 0; I < NumPts; I++) - { - if (!WriteBinaryReal(HeadFile[CurFile], Data[I], FieldDataType_Float)) - { - return (-1); - } - } - return (0); -} - - -static void ShowDebugColor(LgIndex_t Color) -{ - #if defined MAKEARCHIVE - switch (Color) - { - case 0 : PRINT0("BLACK\n"); break; - case 1 : PRINT0("RED\n"); break; - case 2 : PRINT0("GREEN\n"); break; - case 3 : PRINT0("BLUE\n"); break; - case 4 : PRINT0("CYAN\n"); break; - case 5 : PRINT0("YELLOW\n"); break; - case 6 : PRINT0("PURPLE\n"); break; - case 7 : PRINT0("WHITE\n"); break; - case 8 : - case 9 : - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: PRINT1("CUSTOM%1d\n", Color-7); break; - default : PRINT0("INVALID\n"); - } - #endif -} -#endif /* NOT_CURRENTLY_USED */ - - -/** - * TECGEOXXX - */ -INTEGER4 LIBCALL TECGEO112(double *XOrThetaPos, - double *YOrRPos, - double *ZPos, - INTEGER4 *PosCoordMode, /* 0=Grid, 1=Frame, 3=Grid3D */ - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XOrThetaGeomData, - float *YOrRGeomData, - float *ZGeomData, - char *mfc) -{ - int I, RetVal; - int RawDataSize = 0; - double Fract; - - Geom_s Geom; - - if (CheckFile("TECGEO112") < 0) - return (-1); - - Geom.PositionCoordSys = (CoordSys_e) * PosCoordMode; - if (Geom.PositionCoordSys == CoordSys_Frame) - Fract = 0.01; - else - Fract = 1.0; - - Geom.AnchorPos.Generic.V1 = (*XOrThetaPos) * Fract; - Geom.AnchorPos.Generic.V2 = (*YOrRPos) * Fract; - Geom.AnchorPos.Generic.V3 = (*ZPos) * Fract; - Geom.AttachToZone = *AttachToZone != 0; - Geom.Zone = *Zone - 1; - Geom.BColor = (ColorIndex_t) * Color; - Geom.FillBColor = (ColorIndex_t) * FillColor; - Geom.IsFilled = *IsFilled; - Geom.GeomType = (GeomType_e) * GeomType; - Geom.LinePattern = (LinePattern_e) * LinePattern; - Geom.PatternLength = *PatternLength / 100.0; - Geom.LineThickness = *LineThickness / 100.0; - Geom.NumEllipsePts = *NumEllipsePts; - Geom.ArrowheadStyle = (ArrowheadStyle_e) * ArrowheadStyle; - Geom.ArrowheadAttachment = (ArrowheadAttachment_e) * ArrowheadAttachment; - Geom.ArrowheadSize = *ArrowheadSize / 100.0; - Geom.ArrowheadAngle = *ArrowheadAngle / DEGPERRADIANS; - Geom.Scope = (Scope_e) * Scope; - Geom.DrawOrder = DrawOrder_AfterData; - Geom.Clipping = (Clipping_e) * Clipping; - Geom.NumSegments = *NumSegments; - Geom.MacroFunctionCommand = mfc; - Geom.ImageFileName = NULL; - Geom.ImageNumber = 0; - Geom.MaintainAspectRatio = TRUE; - Geom.PixelAspectRatio = 1.0; - Geom.ImageResizeFilter = ImageResizeFilter_Texture; - - if (Geom.GeomType == GeomType_LineSegs3D) - { - Geom.GeomType = GeomType_LineSegs; - Geom.PositionCoordSys = CoordSys_Grid3D; - } - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT0("\nInserting Geometry\n"); - #endif - - switch (Geom.GeomType) - { - case GeomType_LineSegs : - { - int I; - RawDataSize = 0; - for (I = 0; I < *NumSegments; I++) - { - Geom.NumSegPts[I] = NumSegPts[I]; - RawDataSize += NumSegPts[I]; - } - } break; - case GeomType_Rectangle : - case GeomType_Square : - case GeomType_Circle : - case GeomType_Ellipse : - { - RawDataSize = 1; - } break; - case GeomType_Image : - { - CHECK(FALSE); /* Images not allowed in data files. */ - } break; - default : - { - CHECK(FALSE); - } break; - } - - Geom.DataType = FieldDataType_Float; - Geom.GeomData.Generic.V1Base = AllocScratchNodalFieldDataPtr(RawDataSize, FieldDataType_Float, TRUE); - Geom.GeomData.Generic.V2Base = AllocScratchNodalFieldDataPtr(RawDataSize, FieldDataType_Float, TRUE); - Geom.GeomData.Generic.V3Base = AllocScratchNodalFieldDataPtr(RawDataSize, FieldDataType_Float, TRUE); - - for (I = 0; I < RawDataSize; I++) - { - SetFieldValue(Geom.GeomData.Generic.V1Base, I, (double)XOrThetaGeomData[I]*Fract); - SetFieldValue(Geom.GeomData.Generic.V2Base, I, (double)YOrRGeomData[I]*Fract); - SetFieldValue(Geom.GeomData.Generic.V3Base, I, (double)ZGeomData[I]*Fract); - } - - if (DumpGeometry(HeadFile[CurFile], &Geom, TRUE, FALSE)) - RetVal = 0; - else - RetVal = -1; - - DeallocScratchNodalFieldDataPtr(&Geom.GeomData.Generic.V1Base); - DeallocScratchNodalFieldDataPtr(&Geom.GeomData.Generic.V2Base); - DeallocScratchNodalFieldDataPtr(&Geom.GeomData.Generic.V3Base); - - return RetVal; -} - -INTEGER4 LIBCALL TECGEO111(double *XOrThetaPos, - double *YOrRPos, - double *ZPos, - INTEGER4 *PosCoordMode, /* 0=Grid, 1=Frame, 3=Grid3D */ - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XOrThetaGeomData, - float *YOrRGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XOrThetaPos, - YOrRPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XOrThetaGeomData, - YOrRGeomData, - ZGeomData, - mfc); -} - -INTEGER4 LIBCALL TECGEO110(double *XOrThetaPos, - double *YOrRPos, - double *ZPos, - INTEGER4 *PosCoordMode, /* 0=Grid, 1=Frame, 3=Grid3D */ - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XOrThetaGeomData, - float *YOrRGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XOrThetaPos, - YOrRPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XOrThetaGeomData, - YOrRGeomData, - ZGeomData, - mfc); -} - -INTEGER4 LIBCALL TECGEO100(double *XOrThetaPos, - double *YOrRPos, - double *ZPos, - INTEGER4 *PosCoordMode, /* 0=Grid, 1=Frame, 3=Grid3D */ - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XOrThetaGeomData, - float *YOrRGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XOrThetaPos, - YOrRPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XOrThetaGeomData, - YOrRGeomData, - ZGeomData, - mfc); -} - -INTEGER4 LIBCALL TECGEO(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc) -{ - int Clipping = (int)Clipping_ClipToViewport; - return TECGEO112(XPos, - YPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - &Clipping, - NumSegments, - NumSegPts, - XGeomData, - YGeomData, - ZGeomData, - mfc); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecgeo112_(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XPos, - YPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XGeomData, - YGeomData, - ZGeomData, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tecgeo111_(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XPos, - YPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XGeomData, - YGeomData, - ZGeomData, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tecgeo110_(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XPos, - YPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XGeomData, - YGeomData, - ZGeomData, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tecgeo100_(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *Clipping, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO112(XPos, - YPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - Clipping, - NumSegments, - NumSegPts, - XGeomData, - YGeomData, - ZGeomData, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tecgeo_(double *XPos, - double *YPos, - double *ZPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *Color, - INTEGER4 *FillColor, - INTEGER4 *IsFilled, - INTEGER4 *GeomType, - INTEGER4 *LinePattern, - double *PatternLength, - double *LineThickness, - INTEGER4 *NumEllipsePts, - INTEGER4 *ArrowheadStyle, - INTEGER4 *ArrowheadAttachment, - double *ArrowheadSize, - double *ArrowheadAngle, - INTEGER4 *Scope, - INTEGER4 *NumSegments, - INTEGER4 *NumSegPts, - float *XGeomData, - float *YGeomData, - float *ZGeomData, - char *mfc) -{ - return TECGEO(XPos, - YPos, - ZPos, - PosCoordMode, - AttachToZone, - Zone, - Color, - FillColor, - IsFilled, - GeomType, - LinePattern, - PatternLength, - LineThickness, - NumEllipsePts, - ArrowheadStyle, - ArrowheadAttachment, - ArrowheadSize, - ArrowheadAngle, - Scope, - NumSegments, - NumSegPts, - XGeomData, - YGeomData, - ZGeomData, - mfc); -} -#endif - -/** - * TECTXTXXX - */ -INTEGER4 LIBCALL TECTXT112(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - int RetVal; - Text_s Text; - double Fract; - if (CheckFile("TECTXT112") < 0) - return (-1); - - Text.PositionCoordSys = (CoordSys_e) * PosCoordMode; - if (Text.PositionCoordSys == CoordSys_Frame) - Fract = 0.01; - else - Fract = 1.0; - - Text.AnchorPos.Generic.V1 = (*XOrThetaPos) * Fract; - Text.AnchorPos.Generic.V2 = (*YOrRPos) * Fract; - Text.AnchorPos.Generic.V3 = (*ZOrUnusedPos) * Fract; - Text.AttachToZone = *AttachToZone != 0; - Text.Zone = *Zone - 1; - Text.BColor = (ColorIndex_t) * TextColor; - Text.TextShape.Font = (Font_e) * BFont; - Text.TextShape.SizeUnits = (Units_e) * FontHeightUnits; - if (Text.TextShape.SizeUnits == Units_Frame) - Text.TextShape.Height = (*FontHeight) / 100.0; - else - Text.TextShape.Height = *FontHeight; - Text.Box.BoxType = (TextBox_e) * BoxType; - Text.Box.Margin = *BoxMargin / 100.0; - Text.Box.LineThickness = *BoxLineThickness / 100.0; - Text.Box.BColor = (ColorIndex_t) * BoxColor; - Text.Box.FillBColor = (ColorIndex_t) * BoxFillColor; - Text.Anchor = (TextAnchor_e) * Anchor; - Text.LineSpacing = *LineSpacing; - Text.Angle = *Angle / DEGPERRADIANS; - Text.Scope = (Scope_e) * Scope; - Text.Text = String; - Text.MacroFunctionCommand = mfc; - Text.Clipping = (Clipping_e) * Clipping; - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT1("\nInserting Text: %s\n", String); - #endif - - if (DumpText(HeadFile[CurFile], &Text, TRUE, FALSE)) - RetVal = 0; - else - RetVal = -1; - - return RetVal; -} - -INTEGER4 LIBCALL TECTXT111(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -INTEGER4 LIBCALL TECTXT110(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -INTEGER4 LIBCALL TECTXT100(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -INTEGER4 LIBCALL TECTXT(double *XPos, - double *YPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - char *Text, - char *mfc) -{ - double ZPos = 0.0; - int Clipping = (int)Clipping_ClipToViewport; - return TECTXT112(XPos, - YPos, - &ZPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - &Clipping, - Text, - mfc); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tectxt112_(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tectxt111_(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tectxt110_(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tectxt100_(double *XOrThetaPos, - double *YOrRPos, - double *ZOrUnusedPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - INTEGER4 *Clipping, - char *String, - char *mfc) -{ - return TECTXT112(XOrThetaPos, - YOrRPos, - ZOrUnusedPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Clipping, - String, - mfc); -} - -LIBFUNCTION INTEGER4 LIBCALL tectxt_(double *XPos, - double *YPos, - INTEGER4 *PosCoordMode, - INTEGER4 *AttachToZone, - INTEGER4 *Zone, - INTEGER4 *BFont, - INTEGER4 *FontHeightUnits, - double *FontHeight, - INTEGER4 *BoxType, - double *BoxMargin, - double *BoxLineThickness, - INTEGER4 *BoxColor, - INTEGER4 *BoxFillColor, - double *Angle, - INTEGER4 *Anchor, - double *LineSpacing, - INTEGER4 *TextColor, - INTEGER4 *Scope, - char *Text, - char *mfc) -{ - return TECTXT(XPos, - YPos, - PosCoordMode, - AttachToZone, - Zone, - BFont, - FontHeightUnits, - FontHeight, - BoxType, - BoxMargin, - BoxLineThickness, - BoxColor, - BoxFillColor, - Angle, - Anchor, - LineSpacing, - TextColor, - Scope, - Text, - mfc); -} -#endif - - -/** - * TECFILXXX - */ -INTEGER4 LIBCALL TECFIL112(INTEGER4 *F) -{ - if ((*F < 1) || (*F > MaxNumFiles)) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECFIL112) Invalid file number requested (%d). File not changed.\n", *F); - #endif - return (-1); - } - - if (!IsOpen[*F-1]) - { - #if defined MAKEARCHIVE - int I; - PRINT1("Err: (TECFIL112) file %d is not open. File not changed.\n", *F); - PRINT0("\n\nFile states are:\n"); - for (I = 0; I < MaxNumFiles; I++) - PRINT2("file %d, IsOpen=%d\n", I + 1, IsOpen[I]); - PRINT1("Current File is: %d\n", CurFile + 1); - #endif - return (-1); - } - CurFile = *F - 1; - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - { - PRINT1("Switching to file #%d\n\n", CurFile + 1); - PRINT0("Current State is:\n"); - PRINT1(" Debug = %d\n", DebugLevel[CurFile]); - PRINT1(" NumVars = %d\n", NumVars[CurFile]); - PRINT1(" DestFName = %s\n", DestFName[CurFile]); - PRINT1(" BlckFName = %s\n", BlckFName[CurFile]); - PRINT1(" ZoneType = %s\n", ZoneTypes[ZoneType[CurFile]]); - - if (ZoneType[CurFile] == ORDERED) - { - PRINT1(" IMax = %d\n", IMax[CurFile]); - PRINT1(" JMax = %d\n", JMax[CurFile]); - PRINT1(" KMax = %d\n", KMax[CurFile]); - } - else - { - PRINT1(" NumPoints = %d\n", IMax[CurFile]); - PRINT1(" NumElmnts = %d\n", JMax[CurFile]); - } - PRINT1(" NumDataValuesWritten = %d\n", NumDataValuesWritten[CurFile]); - PRINT1(" CurZone = %d\n", CurZone[CurFile] + 1); - } - #endif /* MAKEARCHIVE */ - return (0); -} - -INTEGER4 LIBCALL TECFIL111(INTEGER4 *F) -{ - return TECFIL112(F); -} - -INTEGER4 LIBCALL TECFIL110(INTEGER4 *F) -{ - return TECFIL112(F); -} - -INTEGER4 LIBCALL TECFIL100(INTEGER4 *F) -{ - return TECFIL112(F); -} - -INTEGER4 LIBCALL TECFIL(INTEGER4 *F) -{ - return TECFIL112(F); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecfil112_(INTEGER4 *F) -{ - return TECFIL112(F); -} - -LIBFUNCTION INTEGER4 LIBCALL tecfil111_(INTEGER4 *F) -{ - return TECFIL112(F); -} - -LIBFUNCTION INTEGER4 LIBCALL tecfil110_(INTEGER4 *F) -{ - return TECFIL112(F); -} - -LIBFUNCTION INTEGER4 LIBCALL tecfil100_(INTEGER4 *F) -{ - return TECFIL112(F); -} - -LIBFUNCTION INTEGER4 LIBCALL tecfil_(INTEGER4 *F) -{ - return TECFIL112(F); -} -#endif - -/** - * TECFOREIGNXXX - */ -void LIBCALL TECFOREIGN112(INTEGER4 *OutputForeignByteOrder) -{ - REQUIRE(VALID_REF(OutputForeignByteOrder)); - - DoWriteForeign = (*OutputForeignByteOrder != 0); -} - -void LIBCALL TECFOREIGN111(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} - -void LIBCALL TECFOREIGN110(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} - -void LIBCALL TECFOREIGN100(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION void LIBCALL tecforeign112_(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} - -LIBFUNCTION void LIBCALL tecforeign111_(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} - -LIBFUNCTION void LIBCALL tecforeign110_(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} - -LIBFUNCTION void LIBCALL tecforeign100_(INTEGER4 *OutputForeignByteOrder) -{ - TECFOREIGN112(OutputForeignByteOrder); -} -#endif - -#if defined MAKEARCHIVE - -/** - * A valid auxiliary data name character must begin with a '_' or alpha - * character and may be followed by one or more '_', '.', alpha or digit - * characters. - */ -static Boolean_t AuxDataIsValidNameChar(char Char, - Boolean_t IsLeadChar) -{ - Boolean_t IsValidNameChar; - - REQUIRE(0 <= Char && "Char <= 127"); - REQUIRE(VALID_BOOLEAN(IsLeadChar)); - - IsValidNameChar = (Char == '_' || - isalpha(Char)); - if (!IsLeadChar) - IsValidNameChar = (IsValidNameChar || - Char == '.' || - isdigit(Char)); - - ENSURE(VALID_BOOLEAN(IsValidNameChar)); - return IsValidNameChar; -} - -/** - * Indicates if the auxiliary data name is valid. A valid auxiliary data name - * must begin with a '_' or alpha character and may be followed by one or - * more '_', '.', alpha or digit characters. - */ -static Boolean_t AuxDataIsValidName(const char *Name) -{ - Boolean_t IsValidName; - const char *NPtr; - REQUIRE(VALID_REF(Name)); - - for (NPtr = Name, IsValidName = AuxDataIsValidNameChar(*NPtr, TRUE); - IsValidName && *NPtr != '\0'; - NPtr++) - { - IsValidName = AuxDataIsValidNameChar(*NPtr, FALSE); - } - - ENSURE(VALID_BOOLEAN(IsValidName)); - return IsValidName; -} - -#endif /* MAKEARCHIVE */ - -/** - * TECAUXSTRXXX - */ -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR112(char *Name, - char *Value) -{ - if (CheckFile("TECAUXSTR112") < 0) - return (-1); - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT2("\nInserting data set aux data: '%s' = '%s'\n", Name, Value); - #endif - - if ((Name == NULL) || !AuxDataIsValidName(Name)) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECAUXSTR112) Invalid Name string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if ((Value == NULL) || (*Value == '\0')) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT0("Err: (TECAUXSTR112) Invalid Value string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - /* - * Because the auxiliary data is at the end of the header section we don't - * need to seek back to it. - */ - if (!WriteBinaryReal(HeadFile[CurFile], DataSetAuxMarker, FieldDataType_Float) || - !DumpDatafileString(HeadFile[CurFile], Name, TRUE /* WriteBinary */) || - !WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)AuxDataType_String) || - !DumpDatafileString(HeadFile[CurFile], (const char *)Value, TRUE /* WriteBinary */)) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf("Err: (TECAUXSTR112) Write failure for file %d\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - return (0); -} - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR111(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR110(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL TECAUXSTR100(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecauxstr112_(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL tecauxstr111_(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL tecauxstr110_(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL tecauxstr100_(char *Name, - char *Value) -{ - return TECAUXSTR112(Name, Value); -} -#endif - - -/** - * TECZAUXSTRXXX - */ -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR112(char *Name, - char *Value) -{ - if (CheckFile("TECZAUXSTR112") < 0) - return (-1); - - if (CurZone[CurFile] == -1) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECZAUXSTR112) Must call TECZNE112 prior to TECZAUXSTR112\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT2("\nInserting zone aux data: '%s' = '%s'\n", Name, Value); - #endif - - if ((Name == NULL) || !AuxDataIsValidName(Name)) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECZAUXSTR112) Invalid Name string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if ((Value == NULL) || (*Value == '\0')) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT0("Err: (TECZAUXSTR112) Invalid Value string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - /* - * Have to back over the 0 already written, then write another one afterward. - */ - if (TP_FSEEK(HeadFile[CurFile]->File, -4, SEEK_CUR) || - !WriteBinaryInt32(HeadFile[CurFile], 1) || - !DumpDatafileString(HeadFile[CurFile], Name, TRUE /* WriteBinary */) || - !WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)AuxDataType_String) || - !DumpDatafileString(HeadFile[CurFile], (const char *)Value, TRUE /* WriteBinary */) || - !WriteBinaryInt32(HeadFile[CurFile], 0)) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf("Err: (TECZAUXSTR112) Write failure for file %d\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - - return (0); -} - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR111(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR110(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL TECZAUXSTR100(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL teczauxstr112_(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL teczauxstr111_(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL teczauxstr110_(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL teczauxstr100_(char *Name, - char *Value) -{ - return TECZAUXSTR112(Name, Value); -} -#endif - - -/** - * TECVAUXSTRXXX - */ -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR112(INTEGER4 *Var, - char *Name, - char *Value) -{ - if (CheckFile("TECVAUXSTR112") < 0) - return (-1); - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT2("\nInserting variable aux data: '%s' = '%s'\n", Name, Value); - #endif - - if ((Name == NULL) || !AuxDataIsValidName(Name)) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECVAUXSTR112) Invalid Name string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if ((Value == NULL) || (*Value == '\0')) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT0("Err: (TECVAUXSTR112) Invalid Value string\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if (!WriteBinaryReal(HeadFile[CurFile], VarAuxMarker, FieldDataType_Float) || - !WriteBinaryInt32(HeadFile[CurFile], *Var - 1) || - !DumpDatafileString(HeadFile[CurFile], Name, TRUE /* WriteBinary */) || - !WriteBinaryInt32(HeadFile[CurFile], (LgIndex_t)AuxDataType_String) || - !DumpDatafileString(HeadFile[CurFile], (const char *)Value, TRUE /* WriteBinary */)) - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf("Err: (TECVAUXSTR112) Write failure for file %d\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - - return (0); -} - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR111(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR110(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL TECVAUXSTR100(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecvauxstr112_(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL tecvauxstr111_(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL tecvauxstr110_(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} - -LIBFUNCTION INTEGER4 LIBCALL tecvauxstr100_(INTEGER4 *Var, - char *Name, - char *Value) -{ - return TECVAUXSTR112(Var, Name, Value); -} -#endif - - -/** - * TECFACEXXX - */ -LIBFUNCTION INTEGER4 LIBCALL TECFACE112(INTEGER4 *FaceConnections) -{ - INTEGER4 i, *Ptr; - - /* Mark that the face neighbors have been written for the zone even if it fails so as not to add extra error messages. */ - FaceNeighborsOrMapWritten[CurFile][CurZone[CurFile]] = TRUE; - - if (CheckFile("TECFACE112") < 0) - return (-1); - - if (ZoneType[CurFile] == FEPOLYGON || - ZoneType[CurFile] == FEPOLYHEDRON) - { - /* Wrong way to specify face neighbors for polygons and polyhedrons */ - #if defined MAKEARCHIVE - PRINT0("Err: (TECFACE112) Cannot call TECFACE112 for polygonal or polyhedral zones.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if (FileTypes[CurFile] == SOLUTIONFILE) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECFACE112) Cannot call TECFACE112 if the file type is SOLUTIONFILE.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - PRINT0("\nInserting face neighbor data\n"); - #endif - - if (FaceConnections == NULL) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECFACE112) Invalid array\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - - /* - * Face neighbor connection have the following format for both - * binary: - * - * LOCALONETOONE 3 cz,fz,cz - * LOCALONETOMANY nz+4 cz,fz,oz,nz,cz1,cz2,...,czn - * GLOBALONETOONE 4 cz,fz,ZZ,CZ - * GLOBALONETOMANY 2*nz+4 cz,fz,oz,nz,ZZ1,CZ1,ZZ2,CZ2,...,ZZn,CZn - * - * Where: - * cz = cell in current zone - * fz = face of cell in current zone - * oz = face obsuration flag (only applies to one-to-many): - * 0 = face partially obscured - * 1 = face entirely obscured - * nz = number of cell or zone/cell associations (only applies to one-to-many) - * ZZ = remote Zone - * CZ = cell in remote zone - * - * NOTE: - * As of version 103 Tecplot assumes that face neighbors are zero based - * instead of ones based. Since we have to maintain the contract we - * subtract 1 for the caller. - */ - Ptr = FaceConnections; - i = 0; - while (i < NumFaceConnections[CurFile][CurZone[CurFile]]) - { - INTEGER4 n; - INTEGER4 NumNum = 0; - - switch (FaceNeighborMode[CurFile]) - { - case FaceNeighborMode_LocalOneToOne: - NumNum = 3; - i++; - break; - case FaceNeighborMode_LocalOneToMany: - NumNum = 4 + Ptr[3]; - i += Ptr[3]; - break; - case FaceNeighborMode_GlobalOneToOne: - NumNum = 4; - i++; - break; - case FaceNeighborMode_GlobalOneToMany: - NumNum = 4 + 2 * Ptr[3]; - i += Ptr[3]; - break; - default: - CHECK(FALSE); - break; - } - - n = 0; - if (FaceNeighborMode[CurFile] == FaceNeighborMode_LocalOneToMany || - FaceNeighborMode[CurFile] == FaceNeighborMode_GlobalOneToMany) - { - /* - * Write cz,fz,oz,nz: we do this by hand because the oz and nz values - * are not zero based values. - */ - if (!WriteBinaryInt32(BlckFile[CurFile], Ptr[n++] - 1) || /* zero based as of version 103 */ - !WriteBinaryInt32(BlckFile[CurFile], Ptr[n++] - 1) || /* zero based as of version 103 */ - !WriteBinaryInt32(BlckFile[CurFile], Ptr[n++]) || /* ones based */ - !WriteBinaryInt32(BlckFile[CurFile], Ptr[n++])) /* ones based */ - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf("Err: (TECFACE112) Write failure for file %d\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - - } - /* starting from where we left off, output the remaining values */ - for (; n < NumNum; n++) - if (!WriteBinaryInt32(BlckFile[CurFile], Ptr[n] - 1)) /* zero based as of version 103 */ - { - #if defined MAKEARCHIVE - if (DebugLevel[CurFile]) - printf("Err: (TECFACE112) Write failure for file %d\n", CurFile + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - Ptr += NumNum; - } - - return (0); -} - -LIBFUNCTION INTEGER4 LIBCALL TECFACE111(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} - -LIBFUNCTION INTEGER4 LIBCALL TECFACE110(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} - -LIBFUNCTION INTEGER4 LIBCALL TECFACE100(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecface112_(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} - -LIBFUNCTION INTEGER4 LIBCALL tecface111_(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} - -LIBFUNCTION INTEGER4 LIBCALL tecface110_(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} - -LIBFUNCTION INTEGER4 LIBCALL tecface100_(INTEGER4 *FaceConnections) -{ - return TECFACE112(FaceConnections); -} -#endif - - -/** - * TECPOLYXXX - */ -LIBFUNCTION INTEGER4 LIBCALL TECPOLY112(INTEGER4 *FaceNodeCounts, - INTEGER4 *FaceNodes, - INTEGER4 *FaceLeftElems, - INTEGER4 *FaceRightElems, - INTEGER4 *FaceBndryConnectionCounts, - INTEGER4 *FaceBndryConnectionElems, - INTEGER4 *FaceBndryConnectionZones) -{ - INTEGER4 NumFaces = KMax[CurFile]; - INTEGER4 Result = 0; - LgIndex_t Index; - LgIndex_t MinNeighborValue = TECIO_NO_NEIGHBORING_ELEM; - - /* Mark that the face map has been written for the zone even if it fails so as not to add extra error messages. */ - FaceNeighborsOrMapWritten[CurFile][CurZone[CurFile]] = TRUE; - - if (NumFaces == 0 || - (ZoneType[CurFile] != FEPOLYGON && - ZoneType[CurFile] != FEPOLYHEDRON)) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECPOLY112) The zone type must be FEPOLYGON or FEPOLYHEDRON and have NumFaces (KMax) > 0.\n"); - PRINT1(" NumFaces = %d\n", NumFaces); - #endif - NumErrs[CurFile]++; - return (-1); - } - - if (ZoneType[CurFile] == FEPOLYHEDRON) /* FEPOLYGON doesn't need TotalNumFaceNodes since this is 2*NumFaces */ - { - if (TotalNumFaceNodes[CurFile][CurZone[CurFile]] <= 0) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECPOLY112) TotalNumFaceNodes MUST be specified for polyhedral zones.\n"); - PRINT1(" TotalNumFaceNodes = %d\n", TotalNumFaceNodes[CurFile][CurZone[CurFile]]); - #endif - NumErrs[CurFile]++; - return (-1); - } - } - else - { - if (TotalNumFaceNodes[CurFile][CurZone[CurFile]] != (2 * NumFaces)) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECPOLY112) TotalNumFaceNodes is specified for the polygonal zone but is not equal to 2 * NumFaces.\n"); - PRINT2(" TotalNumFaceNodes = %d. If specified, it must be 2 * %d.", TotalNumFaceNodes[CurFile][CurZone[CurFile]], NumFaces); - #endif - NumErrs[CurFile]++; - return (-1); - } - } - - if ((TotalNumFaceBndryFaces[CurFile] > 0 && - TotalNumFaceBndryConns[CurFile] > 0) || - (TotalNumFaceBndryFaces[CurFile] == 0 && - TotalNumFaceBndryConns[CurFile] == 0)) - { - if (TotalNumFaceBndryFaces[CurFile] > 0) - MinNeighborValue = -TotalNumFaceBndryFaces[CurFile]; - } - else - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECPOLY112) TotalNumFaceBndryFaces and TotalNumFaceBndryConns must both be 0 or both be > 0.\n"); - PRINT2(" TotalNumFaceBndryFaces = %d, TotalNumFaceBndryConns = %d\n", TotalNumFaceBndryFaces[CurFile], TotalNumFaceBndryConns[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - - /* Write the facenodesoffsets array from the facenodecounts array. */ - if (Result == 0) - { - if (ZoneType[CurFile] == FEPOLYHEDRON) /* FEPOLYGON doesn't need to specify facenodesoffsets */ - { - Int32_t FaceNodeSum = 0; - if (!WriteBinaryInt32(BlckFile[CurFile], 0)) - Result = -1; - for (Index = 0; (Result == 0) && (Index < NumFaces); Index++) - { - FaceNodeSum += FaceNodeCounts[Index]; - if (FaceNodeCounts[Index] < 3) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid face node count value at face %d. There must be at least 3 nodes in a face.\n", Index + 1); - PRINT1(" Face node count value = %d.\n", FaceNodeCounts[Index]); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (FaceNodeSum > TotalNumFaceNodes[CurFile][CurZone[CurFile]]) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) The running face node count exceeds the TotalNumFaceNodes (%d) specified.\n", TotalNumFaceNodes[CurFile][CurZone[CurFile]]); - PRINT1(" Face node count value = %d.\n", FaceNodeCounts[Index]); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], FaceNodeSum)) - Result = -1; - } - } - } - - /* Write the facenodes array but convert 1-based to 0-based. */ - for (Index = 0; (Result == 0) && (Index < TotalNumFaceNodes[CurFile][CurZone[CurFile]]); Index++) - { - if (FaceNodes[Index] < 1 || - FaceNodes[Index] > IMax[CurFile]) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid face node value at node %d:\n", Index + 1); - PRINT2(" face node value = %d, valid values are are 1 to %d (inclusive).\n", FaceNodes[Index], IMax[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], FaceNodes[Index] - 1)) - Result = -1; - } - - /* Write the left elements array but convert 1-based to 0-based. */ - for (Index = 0; (Result == 0) && (Index < NumFaces); Index++) - { - if (FaceLeftElems[Index] < MinNeighborValue || - FaceLeftElems[Index] > JMax[CurFile]) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid left neighbor value at face %d:\n", Index); - PRINT2(" left neighbor value = %d, min value = %d,", FaceLeftElems[Index], MinNeighborValue); - PRINT1(" max value = %d.\n", JMax[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], FaceLeftElems[Index] - 1)) - Result = -1; - } - /* Write the right elements array but convert 1-based to 0-based. */ - for (Index = 0; (Result == 0) && (Index < NumFaces); Index++) - { - if (FaceRightElems[Index] < MinNeighborValue || - FaceRightElems[Index] > JMax[CurFile]) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid right neighbor value at face %d:\n", Index); - PRINT2(" right neighbor value = %d, min value = %d,", FaceRightElems[Index], MinNeighborValue); - PRINT1(" max value = %d.\n", JMax[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], FaceRightElems[Index] - 1)) - Result = -1; - - if (Result == 0 && - (FaceLeftElems[Index] == TECIO_NO_NEIGHBORING_ELEM && - FaceRightElems[Index] == TECIO_NO_NEIGHBORING_ELEM)) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Both left and right neighbors are set to no neighboring element at face %d.\n", Index); - #endif - NumErrs[CurFile]++; - return (-1); - } - } - - /* Write the boundary arrays. */ - if (Result == 0 && TotalNumFaceBndryFaces[CurFile] > 0) - { - /* Write the boundaryconnectionoffsets array from the boundaryconnectioncounts array. */ - - /* - * As a convenience for the ASCII format, TecUtil, and TECIO layers if any - * boundary connections exists we automatically add a no-neighboring - * connection as the first item so that they can user 0 for no-neighboring - * element in the element list regardless if they have boundary connections - * or not. - * - * The first 2 offsets are always 0 so that -1 in the left/right element - * arrays always indicates "no neighboring element". - */ - if (!(WriteBinaryInt32(BlckFile[CurFile], 0) && - WriteBinaryInt32(BlckFile[CurFile], 0))) - Result = -1; - - Int32_t BndryConnCount = 0; - for (Index = 0; (Result == 0) && (Index < TotalNumFaceBndryFaces[CurFile]); Index++) - { - BndryConnCount += FaceBndryConnectionCounts[Index]; - if (FaceBndryConnectionCounts[Index] < 0 || - BndryConnCount > TotalNumFaceBndryConns[CurFile]) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid boundary connection count at boundary face %d:\n", Index + 1); - PRINT1(" boundary connection count = %d.\n", FaceBndryConnectionCounts[Index]); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], BndryConnCount)) - Result = -1; - } - if (BndryConnCount != TotalNumFaceBndryConns[CurFile]) - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECPOLY112) Invalid number of boundary connections:\n"); - PRINT2(" number of boundary connections written = %d, total number of boundary connections = %d.", - BndryConnCount, TotalNumFaceBndryConns[CurFile]); - #endif - NumErrs[CurFile]++; - return (-1); - } - - /* Write the boundary connection elements but convert 1-based to 0-based. */ - BndryConnCount = 0; - for (Index = 0; (Result == 0) && (Index < TotalNumFaceBndryFaces[CurFile]); Index++) - { - for (LgIndex_t BIndex = 0; (Result == 0) && (BIndex < FaceBndryConnectionCounts[Index]); BIndex++) - { - if (BIndex > 0 && - FaceBndryConnectionElems[BndryConnCount] == TECIO_NO_NEIGHBORING_ELEM) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Partially obscured faces must specify no neighboring element first. See boundary connections for face %d.\n", Index + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - if (FaceBndryConnectionElems[BndryConnCount] < TECIO_NO_NEIGHBORING_ELEM) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid boundary element value at boundary connections for face %d:\n", Index + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - if (FaceBndryConnectionElems[BndryConnCount] == TECIO_NO_NEIGHBORING_ELEM && - FaceBndryConnectionZones[BndryConnCount] != TECIO_NO_NEIGHBORING_ZONE) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid boundary element/zone pair at boundary connections for face %d:\n", Index + 1); - PRINT0(" Boundary elements specified as no neighboring element must also specify no neighboring zone.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], FaceBndryConnectionElems[BndryConnCount] - 1)) - Result = -1; - BndryConnCount++; - } - } - - /* Write the boundary connection zones but convert 1-based to 0-based. */ - BndryConnCount = 0; - for (Index = 0; (Result == 0) && (Index < TotalNumFaceBndryFaces[CurFile]); Index++) - { - for (LgIndex_t BIndex = 0; (Result == 0) && (BIndex < FaceBndryConnectionCounts[Index]); BIndex++) - { - if (FaceBndryConnectionZones[BndryConnCount] < TECIO_NO_NEIGHBORING_ZONE) - { - #if defined MAKEARCHIVE - PRINT1("Err: (TECPOLY112) Invalid boundary zone value at boundary connections for face %d:\n", Index + 1); - #endif - NumErrs[CurFile]++; - return (-1); - } - else if (!WriteBinaryInt32(BlckFile[CurFile], FaceBndryConnectionZones[BndryConnCount] - 1)) - Result = -1; - BndryConnCount++; - } - } - } - if (Result != 0) - { - Result = -1; - WriteErr("TECPOLY112"); - } - - return Result; -} - -#if !defined INDEX_16_BIT // not supported in this test-only mode -LIBFUNCTION INTEGER4 LIBCALL TECPOLY111(INTEGER4 *FaceNodeCounts, - INTEGER4 *FaceNodes, - INTEGER4 *FaceLeftElems, - INTEGER4 *FaceRightElems, - INTEGER4 *FaceBndryConnectionCounts, - INTEGER4 *FaceBndryConnectionElems, - INTEGER2 *FaceBndryConnectionZones) -{ - INTEGER4 Result = 0; - EntIndex_t *FBCZones = NULL; - - if (TotalNumFaceBndryConns[CurFile] > 0) - { - ALLOC_ARRAY(TotalNumFaceBndryConns[CurFile], EntIndex_t, "32-bit FaceBndryConnectionZones"); - - if (FBCZones != NULL) - { - for (LgIndex_t ZoneI = 0; ZoneI < TotalNumFaceBndryFaces[CurFile]; ZoneI++) - FBCZones[ZoneI] = (EntIndex_t)FaceBndryConnectionZones[ZoneI]; - } - else - { - #if defined MAKEARCHIVE - PRINT0("Err: (TECPOLY111) Out of memory allocating temporary data.\n"); - #endif - NumErrs[CurFile]++; - return (-1); - } - } - - Result = TECPOLY112(FaceNodeCounts, - FaceNodes, - FaceLeftElems, - FaceRightElems, - FaceBndryConnectionCounts, - FaceBndryConnectionElems, - FBCZones); - - if (FBCZones != NULL) - FREE_ARRAY(FBCZones, "32-bit FaceBndryConnectionZones"); - - return Result; -} -#endif // INDEX_16_BIT -- not supported in this test-only mode - -#if defined MAKEARCHIVE && !defined _WIN32 /* every platform but Windows Intel */ -LIBFUNCTION INTEGER4 LIBCALL tecpoly112_(INTEGER4 *FaceNodeCounts, - INTEGER4 *FaceNodes, - INTEGER4 *FaceLeftElems, - INTEGER4 *FaceRightElems, - INTEGER4 *FaceBndryConnectionOffsets, - INTEGER4 *FaceBndryConnectionElems, - INTEGER4 *FaceBndryConnectionZones) -{ - return TECPOLY112(FaceNodeCounts, - FaceNodes, - FaceLeftElems, - FaceRightElems, - FaceBndryConnectionOffsets, - FaceBndryConnectionElems, - FaceBndryConnectionZones); -} - -LIBFUNCTION INTEGER4 LIBCALL tecpoly111_(INTEGER4 *FaceNodeCounts, - INTEGER4 *FaceNodes, - INTEGER4 *FaceLeftElems, - INTEGER4 *FaceRightElems, - INTEGER4 *FaceBndryConnectionOffsets, - INTEGER4 *FaceBndryConnectionElems, - INTEGER2 *FaceBndryConnectionZones) -{ - return TECPOLY111(FaceNodeCounts, - FaceNodes, - FaceLeftElems, - FaceRightElems, - FaceBndryConnectionOffsets, - FaceBndryConnectionElems, - FaceBndryConnectionZones); -} -#endif - -#if defined TECPLOTKERNEL -/* CORE SOURCE CODE REMOVED */ -#endif diff --git a/doc/changes/dynamicCode.org b/doc/changes/dynamicCode.org index 9ea400ef4b..beae07b217 100644 --- a/doc/changes/dynamicCode.org +++ b/doc/changes/dynamicCode.org @@ -132,6 +132,19 @@ }; #+END_SRC +* Pitfalls + The syntax of =#codeStream= can be quite hard to get right. These are some + common pitfalls: + + the =code= string has to be a valid set of C++ expressions so has to end in + a ';' + + the C++ code upon execution has to print a valid dictionary entry. In above example it + prints 'uniform 12.34;'. Note the ';' at the end. It is advised to use the + =writeEntry= as above to handle this and also e.g. binary streams (=codeStream= + inherits the stream type from the dictionary) + + the =code=, =codeInclude=, =codeOptions= entries are just like any other + dictionary string entry so there has to be a ';' after the string + + the =#codeStream= entry (itself a dictionary) has to end in a ';' + * Exceptions There are unfortunately some exceptions. Following applications read the field as a dictionary, not as an =IOdictionary=: @@ -146,8 +159,6 @@ value. * Other - - the implementation is still a bit raw - it compiles code overly much - - both =codeStream= and =codedFixedValue= take the contents of the dictionary - and extract values and re-assemble list of files and environment vars to - replace. Should just directly pass the dictionary into =codeStreamTools=. - - parallel running not tested a lot. What about distributed data parallel? + - the implementation is still changing though the syntax is fixed + - parallel running not tested a lot. What about distributed data + (i.e. non-=NFS=) parallel? diff --git a/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.C b/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.C index d24f4db67c..f6c697ca28 100644 --- a/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.C +++ b/src/OpenFOAM/db/dictionary/functionEntries/codeStream/codeStream.C @@ -98,6 +98,13 @@ bool Foam::functionEntries::codeStream::execute // see if library is loaded void* lib = dlLibraryTable::findLibrary(libPath); + + if (!lib) + { + Info<< "Using #codeStream with " << libPath << endl; + } + + // nothing loaded // avoid compilation if possible by loading an existing library if (!lib && dlLibraryTable::open(libPath, false)) diff --git a/src/finiteVolume/fvMesh/fvMeshGeometry.C b/src/finiteVolume/fvMesh/fvMeshGeometry.C index f2007115c8..93d4efb212 100644 --- a/src/finiteVolume/fvMesh/fvMeshGeometry.C +++ b/src/finiteVolume/fvMesh/fvMeshGeometry.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -64,7 +64,10 @@ void fvMesh::makeSf() const "S", pointsInstance(), meshSubDir, - *this + *this, + IOobject::NO_READ, + IOobject::NO_WRITE, + false ), *this, dimArea, diff --git a/src/lagrangian/basic/Cloud/Cloud.H b/src/lagrangian/basic/Cloud/Cloud.H index 488fc63f3d..b7d39f61f4 100644 --- a/src/lagrangian/basic/Cloud/Cloud.H +++ b/src/lagrangian/basic/Cloud/Cloud.H @@ -207,7 +207,7 @@ public: //- Switch to specify if particles of the cloud can return // non-zero wall distance values. By default, assume // that they can't (default for wallImpactDistance in - // Particle is 0.0). + // particle is 0.0). virtual bool hasWallImpactDistance() const { return false; diff --git a/src/lagrangian/basic/particle/particle.C b/src/lagrangian/basic/particle/particle.C index c2ae9af0d2..c4ed3fd7d6 100644 --- a/src/lagrangian/basic/particle/particle.C +++ b/src/lagrangian/basic/particle/particle.C @@ -130,6 +130,14 @@ void Foam::particle::transformProperties(const vector&) {} +Foam::scalar Foam::particle::wallImpactDistance(const vector&) const +{ + Info<< "particle::wallImpactDistance" << endl; + + return 0.0; +} + + // * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * * // bool Foam::operator==(const particle& pA, const particle& pB) diff --git a/src/lagrangian/basic/particle/particle.H b/src/lagrangian/basic/particle/particle.H index f9b832348f..d6d9210d35 100644 --- a/src/lagrangian/basic/particle/particle.H +++ b/src/lagrangian/basic/particle/particle.H @@ -38,7 +38,6 @@ Description #include "labelList.H" #include "pointField.H" #include "faceList.H" -//#include "typeInfo.H" #include "OFstream.H" #include "tetPointRef.H" #include "FixedList.H" @@ -445,10 +444,6 @@ public: const label faceI ) const; - //- The nearest distance to a wall that - // the particle can be in the n direction - inline scalar wallImpactDistance(const vector& n) const; - //- Return the fraction of time-step completed inline scalar& stepFraction(); @@ -508,6 +503,10 @@ public: // according to the given separation vector virtual void transformProperties(const vector& separation); + //- The nearest distance to a wall that + // the particle can be in the n direction + virtual scalar wallImpactDistance(const vector& n) const; + // Parallel transfer diff --git a/src/lagrangian/basic/particle/particleI.H b/src/lagrangian/basic/particle/particleI.H index a2d974f52f..79d2315662 100644 --- a/src/lagrangian/basic/particle/particleI.H +++ b/src/lagrangian/basic/particle/particleI.H @@ -891,7 +891,6 @@ bool Foam::particle::boundaryFace(const label faceI) const inline Foam::label Foam::particle::patch(const label faceI) const { -// return cloud_.facePatch(faceI); return mesh_.boundaryMesh().whichPatch(faceI); } @@ -902,18 +901,10 @@ inline Foam::label Foam::particle::patchFace const label faceI ) const { -// return cloud_.patchFace(patchI, faceI); return mesh_.boundaryMesh()[patchI].whichFace(faceI); } -inline Foam::scalar -Foam::particle::wallImpactDistance(const vector&) const -{ - return 0.0; -} - - inline Foam::label Foam::particle::faceInterpolation() const { return faceI_; diff --git a/src/lagrangian/basic/particle/particleTemplates.C b/src/lagrangian/basic/particle/particleTemplates.C index dbe8457a5c..f497313b64 100644 --- a/src/lagrangian/basic/particle/particleTemplates.C +++ b/src/lagrangian/basic/particle/particleTemplates.C @@ -689,11 +689,15 @@ void Foam::particle::hitWallFaces tetIndices& closestTetIs ) { + typedef typename CloudType::particleType particleType; + if (!(cloud.hasWallImpactDistance() && cloud.cellHasWallFaces()[cellI_])) { return; } + particleType& p = static_cast(*this); + const faceList& pFaces = mesh_.faces(); const Foam::cell& thisCell = mesh_.cells()[cellI_]; @@ -734,7 +738,7 @@ void Foam::particle::hitWallFaces // triangle. Assuming that the wallImpactDistance // does not change as the particle or the mesh moves // forward in time. - scalar r = wallImpactDistance(nHat); + scalar r = p.wallImpactDistance(nHat); vector toPlusRNHat = to + r*nHat; diff --git a/src/lagrangian/dieselSpray/parcel/parcel.H b/src/lagrangian/dieselSpray/parcel/parcel.H index 295f4ccac7..136fd51125 100644 --- a/src/lagrangian/dieselSpray/parcel/parcel.H +++ b/src/lagrangian/dieselSpray/parcel/parcel.H @@ -52,8 +52,9 @@ class parcel { // Private member data - // Reference to the names of the liquid components - List liquidComponents_; + //- Reference to the names of the liquid components + List liquidComponents_; + // Defining data (read and written to field files) @@ -384,11 +385,11 @@ public: //- Transform the position and physical properties of the particle // according to the given transformation tensor - void transformProperties(const tensor& T); + virtual void transformProperties(const tensor& T); //- Transform the position and physical properties of the particle // according to the given separation vector - void transformProperties(const vector& separation); + virtual void transformProperties(const vector& separation); //- fix the 2D plane normal, // when particle hits a face it is slightly perturbed diff --git a/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.H b/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.H index 2ddd8ef060..54dc027235 100644 --- a/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.H +++ b/src/lagrangian/dsmc/parcels/Templates/DsmcParcel/DsmcParcel.H @@ -293,11 +293,11 @@ public: //- Transform the physical properties of the particle // according to the given transformation tensor - void transformProperties(const tensor& T); + virtual void transformProperties(const tensor& T); //- Transform the physical properties of the particle // according to the given separation vector - void transformProperties(const vector& separation); + virtual void transformProperties(const vector& separation); // I-O diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C index 10f7f5c1e8..6554dda83b 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.C @@ -157,6 +157,13 @@ Foam::CollidingCloud::~CollidingCloud() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +bool Foam::CollidingCloud::hasWallImpactDistance() const +{ + return !collision().controlsWallInteraction(); +} + + template void Foam::CollidingCloud::storeState() { diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H index 68fbc0000e..efc9890fec 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloud.H @@ -180,7 +180,7 @@ public: // then the wall impact distance should be zero. // Otherwise, it should be allowed to be the value from // the Parcel. - inline bool hasWallImpactDistance() const; + virtual bool hasWallImpactDistance() const; // Sub-models diff --git a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H index fb473bc0b3..bdfe101bda 100644 --- a/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/CollidingCloud/CollidingCloudI.H @@ -33,13 +33,6 @@ Foam::CollidingCloud::cloudCopy() const } -template -inline bool Foam::CollidingCloud::hasWallImpactDistance() const -{ - return !collision().controlsWallInteraction(); -} - - template inline const Foam::CollisionModel >& Foam::CollidingCloud::collision() const diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 26cae658c6..1c59cae4a6 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -218,10 +218,10 @@ void Foam::KinematicCloud::evolveCloud(TrackData& td) { // this->surfaceFilm().injectSteadyState(td); - this->injection().injectSteadyState(td, solution_.deltaTValue()); + this->injection().injectSteadyState(td, solution_.trackTime()); td.part() = TrackData::tpLinearTrack; - CloudType::move(td, solution_.deltaTValue()); + CloudType::move(td, solution_.trackTime()); } } @@ -491,6 +491,13 @@ Foam::KinematicCloud::~KinematicCloud() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +bool Foam::KinematicCloud::hasWallImpactDistance() const +{ + return true; +} + + template void Foam::KinematicCloud::checkParcelProperties ( @@ -504,7 +511,7 @@ void Foam::KinematicCloud::checkParcelProperties parcel.rho() = constProps_.rho0(); } - const scalar carrierDt = solution_.deltaTValue(); + const scalar carrierDt = mesh_.time().deltaTValue(); parcel.stepFraction() = (carrierDt - lagrangianDt)/carrierDt; parcel.typeId() = constProps_.parcelTypeId(); } @@ -582,7 +589,7 @@ template void Foam::KinematicCloud::motion(TrackData& td) { td.part() = TrackData::tpLinearTrack; - CloudType::move(td, solution_.deltaTValue()); + CloudType::move(td, solution_.trackTime()); updateCellOccupancy(); } diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index 1ab7054e77..3f628e644f 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -304,7 +304,9 @@ public: //- Return a reference to the cloud copy inline const KinematicCloud& cloudCopy() const; - inline bool hasWallImpactDistance() const; + //- Switch to specify if particles of the cloud can return + // non-zero wall distance values - true for kinematic parcels + virtual bool hasWallImpactDistance() const; // References to the mesh and databases diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H index 05bd862d8a..5987192bfd 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H @@ -35,13 +35,6 @@ Foam::KinematicCloud::cloudCopy() const } -template -inline bool Foam::KinematicCloud::hasWallImpactDistance() const -{ - return true; -} - - template inline const Foam::fvMesh& Foam::KinematicCloud::mesh() const { diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C index 6a6b0c8ce2..2d726f45e8 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C @@ -41,7 +41,7 @@ Foam::cloudSolution::cloudSolution calcFrequency_(1), maxCo_(0.3), iter_(1), - deltaT_(0.0), + trackTime_(0.0), coupled_(false), cellValueSourceCorrection_(false), maxTrackTime_(0.0), @@ -67,7 +67,7 @@ Foam::cloudSolution::cloudSolution calcFrequency_(cs.calcFrequency_), maxCo_(cs.maxCo_), iter_(cs.iter_), - deltaT_(cs.deltaT_), + trackTime_(cs.trackTime_), coupled_(cs.coupled_), cellValueSourceCorrection_(cs.cellValueSourceCorrection_), maxTrackTime_(cs.maxTrackTime_), @@ -88,7 +88,7 @@ Foam::cloudSolution::cloudSolution calcFrequency_(0), maxCo_(GREAT), iter_(0), - deltaT_(0.0), + trackTime_(0.0), coupled_(false), cellValueSourceCorrection_(false), maxTrackTime_(0.0), @@ -159,10 +159,8 @@ Foam::scalar Foam::cloudSolution::relaxCoeff(const word& fieldName) const } } - FatalErrorIn - ( - "scalar cloudSolution::relaxCoeff(const word& fieldName) const" - ) << "Field name " << fieldName << " not found in schemes" + FatalErrorIn("scalar cloudSolution::relaxCoeff(const word&) const") + << "Field name " << fieldName << " not found in schemes" << abort(FatalError); return 1.0; @@ -179,10 +177,8 @@ bool Foam::cloudSolution::semiImplicit(const word& fieldName) const } } - FatalErrorIn - ( - "bool cloudSolution::semiImplicit(const word& fieldName) const" - ) << "Field name " << fieldName << " not found in schemes" + FatalErrorIn("bool cloudSolution::semiImplicit(const word&) const") + << "Field name " << fieldName << " not found in schemes" << abort(FatalError); return false; @@ -202,14 +198,13 @@ bool Foam::cloudSolution::solveThisStep() const bool Foam::cloudSolution::canEvolve() { - // Set the calculation time step if (transient_) { - deltaT_ = mesh_.time().deltaTValue(); + trackTime_ = mesh_.time().deltaTValue(); } else { - deltaT_ = maxTrackTime_; + trackTime_ = maxTrackTime_; } return solveThisStep(); diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H index cb1c8330b3..6c2430e408 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H @@ -77,8 +77,8 @@ class cloudSolution //- Current cloud iteration label iter_; - //- Cloud solution time step - scalar deltaT_; + //- Particle track time + scalar trackTime_; // Run-time options @@ -168,11 +168,8 @@ public: //- Increment and return iter counter inline label nextIter(); - //- Return the time step - inline scalar deltaTValue() const; - - //- Return the time step - inline const dimensionedScalar deltaT() const; + //- Return the particle track time + inline scalar trackTime() const; //- Return const access to the coupled flag inline const Switch coupled() const; diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H index a5da04150d..0fc183bf9d 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolutionI.H @@ -95,15 +95,9 @@ inline Foam::label Foam::cloudSolution::nextIter() } -inline Foam::scalar Foam::cloudSolution::deltaTValue() const +inline Foam::scalar Foam::cloudSolution::trackTime() const { - return deltaT_; -} - - -inline const Foam::dimensionedScalar Foam::cloudSolution::deltaT() const -{ - return dimensionedScalar("cloudSolution::deltaT", dimTime, deltaT_); + return trackTime_; } diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C index 40e3efcb73..b75b20f845 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C @@ -470,6 +470,16 @@ void Foam::KinematicParcel::transformProperties } +template +Foam::scalar Foam::KinematicParcel::wallImpactDistance +( + const vector& +) const +{ + return 0.5*d_; +} + + // * * * * * * * * * * * * * * IOStream operators * * * * * * * * * * * * * // #include "KinematicParcelIO.C" diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H index 9c230a49d5..a937ba3f7a 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H @@ -496,10 +496,6 @@ public: // Helper functions - //- The nearest distance to a wall that - // the particle can be in the n direction - inline scalar wallImpactDistance(const vector& n) const; - //- Return the index of the face to be used in the interpolation // routine inline label faceInterpolation() const; @@ -631,11 +627,15 @@ public: //- Transform the physical properties of the particle // according to the given transformation tensor - void transformProperties(const tensor& T); + virtual void transformProperties(const tensor& T); //- Transform the physical properties of the particle // according to the given separation vector - void transformProperties(const vector& separation); + virtual void transformProperties(const vector& separation); + + //- The nearest distance to a wall that the particle can be + // in the n direction + virtual scalar wallImpactDistance(const vector& n) const; // I-O diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H index 74ae8492d3..754677803c 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcelI.H @@ -421,16 +421,6 @@ inline Foam::vector& Foam::KinematicParcel::UTurb() } -template -inline Foam::scalar Foam::KinematicParcel::wallImpactDistance -( - const vector& -) const -{ - return 0.5*d_; -} - - template inline Foam::label Foam::KinematicParcel::faceInterpolation() const { diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C index fb077dba51..8a4d63100e 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C @@ -520,7 +520,7 @@ void Foam::InjectionModel::inject(TrackData& td) } const scalar time = this->owner().db().time().value(); - const scalar carrierDt = this->owner().solution().deltaTValue(); + const scalar trackTime = this->owner().solution().trackTime(); const polyMesh& mesh = this->owner().mesh(); // Prepare for next time step @@ -533,7 +533,7 @@ void Foam::InjectionModel::inject(TrackData& td) // Duration of injection period during this timestep const scalar deltaT = - max(0.0, min(carrierDt, min(time - SOI_, timeEnd() - time0_))); + max(0.0, min(trackTime, min(time - SOI_, timeEnd() - time0_))); // Pad injection time if injection starts during this timestep const scalar padTime = max(0.0, SOI_ - time0_); diff --git a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H index f2d5d758aa..54bdb51b9f 100644 --- a/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H +++ b/src/lagrangian/molecularDynamics/molecule/molecule/molecule.H @@ -281,9 +281,9 @@ public: bool move(trackingData&, const scalar trackTime); - void transformProperties(const tensor& T); + virtual void transformProperties(const tensor& T); - void transformProperties(const vector& separation); + virtual void transformProperties(const vector& separation); void setSitePositions(const constantProperties& constProps); diff --git a/src/lagrangian/solidParticle/solidParticle.C b/src/lagrangian/solidParticle/solidParticle.C index e477e3bdc4..19dca67cab 100644 --- a/src/lagrangian/solidParticle/solidParticle.C +++ b/src/lagrangian/solidParticle/solidParticle.C @@ -171,4 +171,10 @@ void Foam::solidParticle::transformProperties(const vector& separation) } +Foam::scalar Foam::solidParticle::wallImpactDistance(const vector&) const +{ + return 0.5*d_; +} + + // ************************************************************************* // diff --git a/src/lagrangian/solidParticle/solidParticle.H b/src/lagrangian/solidParticle/solidParticle.H index 017b05a71b..2b07f8c0a7 100644 --- a/src/lagrangian/solidParticle/solidParticle.H +++ b/src/lagrangian/solidParticle/solidParticle.H @@ -174,10 +174,6 @@ public: //- Return velocity inline const vector& U() const; - //- The nearest distance to a wall that - // the particle can be in the n direction - inline scalar wallImpactDistance(const vector& n) const; - // Tracking @@ -223,17 +219,15 @@ public: //- Transform the physical properties of the particle // according to the given transformation tensor - void transformProperties - ( - const tensor& T - ); + virtual void transformProperties(const tensor& T); //- Transform the physical properties of the particle // according to the given separation vector - void transformProperties - ( - const vector& separation - ); + virtual void transformProperties(const vector& separation); + + //- The nearest distance to a wall that + // the particle can be in the n direction + virtual scalar wallImpactDistance(const vector& n) const; // I-O diff --git a/src/lagrangian/solidParticle/solidParticleCloud.C b/src/lagrangian/solidParticle/solidParticleCloud.C index 364f448546..4292a97ccf 100644 --- a/src/lagrangian/solidParticle/solidParticleCloud.C +++ b/src/lagrangian/solidParticle/solidParticleCloud.C @@ -28,14 +28,6 @@ License #include "volFields.H" #include "interpolationCellPoint.H" -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ -// defineParticleTypeNameAndDebug(solidParticle, 0); -// defineTemplateTypeNameAndDebug(Cloud, 0); -} - // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::solidParticleCloud::solidParticleCloud @@ -71,6 +63,12 @@ Foam::solidParticleCloud::solidParticleCloud // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +bool Foam::solidParticleCloud::hasWallImpactDistance() const +{ + return true; +} + + void Foam::solidParticleCloud::move(const dimensionedVector& g) { const volScalarField& rho = mesh_.lookupObject("rho"); diff --git a/src/lagrangian/solidParticle/solidParticleCloud.H b/src/lagrangian/solidParticle/solidParticleCloud.H index d99d7b0eee..c5dffdd4aa 100644 --- a/src/lagrangian/solidParticle/solidParticleCloud.H +++ b/src/lagrangian/solidParticle/solidParticleCloud.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -94,7 +94,7 @@ public: // Access - inline bool hasWallImpactDistance() const; + virtual bool hasWallImpactDistance() const; inline const fvMesh& mesh() const; diff --git a/src/lagrangian/solidParticle/solidParticleCloudI.H b/src/lagrangian/solidParticle/solidParticleCloudI.H index 15dd6d7ebf..76c36a37ac 100644 --- a/src/lagrangian/solidParticle/solidParticleCloudI.H +++ b/src/lagrangian/solidParticle/solidParticleCloudI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,12 +25,6 @@ License // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -inline bool Foam::solidParticleCloud::hasWallImpactDistance() const -{ - return true; -} - - inline const Foam::fvMesh& Foam::solidParticleCloud::mesh() const { return mesh_; diff --git a/src/lagrangian/solidParticle/solidParticleI.H b/src/lagrangian/solidParticle/solidParticleI.H index 83f5120ea7..ec661f95ee 100644 --- a/src/lagrangian/solidParticle/solidParticleI.H +++ b/src/lagrangian/solidParticle/solidParticleI.H @@ -93,12 +93,6 @@ inline Foam::scalar Foam::solidParticle::d() const } -inline Foam::scalar Foam::solidParticle::wallImpactDistance(const vector&) const -{ - return 0.5*d_; -} - - inline const Foam::vector& Foam::solidParticle::U() const { return U_; diff --git a/src/postProcessing/functionObjects/systemCall/controlDict b/src/postProcessing/functionObjects/systemCall/controlDict new file mode 100644 index 0000000000..db2105c440 --- /dev/null +++ b/src/postProcessing/functionObjects/systemCall/controlDict @@ -0,0 +1,80 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application icoFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 0.5; + +deltaT 0.005; + +writeControl timeStep; + +writeInterval 20; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + +functions +{ + systemCall1 + { + type systemCall; + functionObjectLibs ("libsystemCall.so"); + enabled true; + outputControl outputTime; + + // called every time step + executeCalls + ( + "echo execute" + ); + + // called at the end of the run + endCalls + ( + "echo \*\*\* writing .bashrc \*\*\*" + "cat ~/.bashrc" + "echo \*\*\* done \*\*\*" + ); + + // called every ouput time + writeCalls + ( + "echo \*\*\* writing data \*\*\*" + ); + } +} + + +// ************************************************************************* // diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C index 538d10c0eb..ec82fddc88 100644 --- a/src/triSurface/triSurface/triSurface.C +++ b/src/triSurface/triSurface/triSurface.C @@ -327,7 +327,7 @@ void Foam::triSurface::checkEdges(const bool verbose) << " has no edgeFaces" << exit(FatalError); } - else if (myFaces.size() > 2) + else if (myFaces.size() > 2 && verbose) { WarningIn ( diff --git a/tutorials/incompressible/icoFoam/cavity/system/controlDict b/tutorials/incompressible/icoFoam/cavity/system/controlDict index db2105c440..8644d48460 100644 --- a/tutorials/incompressible/icoFoam/cavity/system/controlDict +++ b/tutorials/incompressible/icoFoam/cavity/system/controlDict @@ -45,36 +45,5 @@ timePrecision 6; runTimeModifiable true; -functions -{ - systemCall1 - { - type systemCall; - functionObjectLibs ("libsystemCall.so"); - enabled true; - outputControl outputTime; - - // called every time step - executeCalls - ( - "echo execute" - ); - - // called at the end of the run - endCalls - ( - "echo \*\*\* writing .bashrc \*\*\*" - "cat ~/.bashrc" - "echo \*\*\* done \*\*\*" - ); - - // called every ouput time - writeCalls - ( - "echo \*\*\* writing data \*\*\*" - ); - } -} - // ************************************************************************* //