Main Page   File List   Globals  

TECUTILO.h File Reference

More...

Go to the source code of this file.

Defines

#define EXTERN   extern
#define TecUtilSetForEachMember(Member, Set)

Functions

Boolean_t TecUtilTimerAddCallback (UInt32_t Interval, ArbParam_t ClientData, AddOnTimerCallback_pf TimerCallback)
 Adds a timer callback, a function which is called by Tecplot at a set interval of time. More...

Boolean_t TecUtilOnIdleQueueAddCallback (OnIdleCallback_pf Callback, ArbParam_t ClientData)
 Adds the function to a list of functions that Tecplot calls only one time when Tecplot is in an idle state. More...

Boolean_t TecUtilDialogGetFolderName (const char *Title, char **FolderName)
 Browse for a folder name. More...

Boolean_t TecUtilDialogGetFileName (SelectFileOption_e DialogOption, char **FileName, const char *FileTypeName, const char *DefaultFileName, const char *DefaultFilter)
 Launch a dialog to prompt the user for a file name Note: This function cannot be called when Tecplot is running in batch mode. More...

Boolean_t TecUtilDialogGetFileNames (SelectFileOption_e DialogOption, StringList_pa *FileNames, const char *FileTypeName, StringList_pa DefaultFileNames, const char *DefaultFilter)
 Launch a dialog to prompt the user for one or more file names. More...

Boolean_t TecUtilFileDownloadURL (const char *SourceURL, const char *LocalDestinationFile, Boolean_t IsAscii, Boolean_t ConfirmOverwrite)
 Download a file given a valid URL. More...

Boolean_t TecUtilFileUploadURL (const char *LocalSourceFile, const char *DestinationURL, Boolean_t IsAscii, Boolean_t ConfirmOverwrite)
 Upload a file given a valid URL. More...

Boolean_t TecUtilFileIsURL (const char *URLFName)
 Convenience function that will determine if a supplied string uses valid URL syntax.. More...

void TecUtilArrayDealloc (void **Array)
 Deallocate an arbituary array previously allocated by Tecplot. More...

MouseButtonMode_e TecUtilMouseGetCurrentMode (void)
 Get the current mouse mode. More...

Boolean_t TecUtilMouseIsValidMode (MouseButtonMode_e MouseMode)
 This function will tell you if the specified mouse mode is valid for the current state of Tecplot. More...

Boolean_t TecUtilMouseSetMode (MouseButtonMode_e MouseMode)
 Sets Tecplot's mouse mode to the one specified. More...

void TecUtilSidebarAutoSensitivity (Boolean_t DoAuto)
void TecUtilSidebarSetSensitivity (MouseButtonMode_e MouseMode, Boolean_t IsSensitive)
Boolean_t TecUtilProbeInstallCallback (ProbeDestination_pf ProbeDestination, const char *InformationLineText)
 If the current frame mode is XY, 2D, or 3D, change the mouse mode to be the probe tool and instruct Tecplot to call a different function when the user completes a probe-like operation in the work area. More...

void TecUtilProbeAllowCOBs (void)
 Instructs Tecplot to include COBs (iso-surfaces, slices, streamtraces, and so forth) along with zones during a probe when an addon has a callback registered with TecUtilProbeInstallCallback and if the user is pressing the Alt key. More...

double TecUtilProbeXYGetIndValue (void)
double TecUtilProbeLinePlotGetIndValue (void)
 Call this function from a probe destination callback to get the independent value from the previous probe event in an Line-plot. More...

Boolean_t TecUtilProbeXYGetDepValue (EntIndex_t MapNum, double *DepValue)
Boolean_t TecUtilProbeLinePlotGetDepValue (EntIndex_t MapNum, double *DepValue)
 Call this function from a probe destination callback to get a dependent value from the previous probe event in an Line-plot. More...

EntIndex_t TecUtilProbeXYGetSourceMap (void)
EntIndex_t TecUtilProbeLinePlotGetSourceMap (void)
 Call this function from a probe destination callback to get the Line-map whose point was selected in the previous nearest-point probe. More...

LgIndex_t TecUtilProbeGetPointIndex (void)
 Call this function from a probe destination callback to get the point index from the previous nearest-point probe event in a field plot or an XY-plot. More...

CZType_e TecUtilProbeFieldGetCZType (void)
 Indicates type type of COB or zone that was selected during the probe event. More...

double TecUtilProbeFieldGetValue (EntIndex_t VarNum)
 Call this function from a probe destination callback to get a field variable value from the previous probe event in a field plot. More...

EntIndex_t TecUtilProbeFieldGetZone (void)
 Call this function from a probe destination callback to get the zone number from the previous probe event in a field plot. More...

IJKPlanes_e TecUtilProbeFieldGetPlane (void)
 Call this function from a probe destination callback to get the I-, J-, or K-plane from the previous probe event in a field plot. More...

LgIndex_t TecUtilProbeFieldGetFaceCell (void)
 Call this function from a probe destination callback to get the cell from the previous probe event in a field plot. More...

LgIndex_t TecUtilProbeFieldGetCell (void)
 Call this function from a probe destination callback to get the cell from the previous probe event in a field plot. More...

Boolean_t TecUtilExtractInstallCallback (ExtractDestination_pf ExtractDestination, const char *InformationLineText)
 If the current frame is 2D or 3D, change the mouse mode to be the extract discrete points tool and instruct Tecplot to call a different function when the user completes an extract-like operation in the work area. More...

Boolean_t TecUtilDataSetCreate (const char *DataSetTitle, StringList_pa VarNames, Boolean_t ResetStyle)
 Create a new data set and attach it to the current frame. More...

VarLoadMode_e TecUtilDataSetGetVarLoadMode (void)
 Get the variable load mode for the current data set. More...

void TecUtilZoneSetBuildZoneOptInfo (EntIndex_t Zone, Boolean_t BuildZoneOptInfo)
 Instruct Tecplot to either build or forgo building zone optimization information. More...

Boolean_t TecUtilDataSetAddZone (const char *Name, LgIndex_t IMax, LgIndex_t JMax, LgIndex_t KMax, ZoneType_e ZoneType, FieldDataType_e *VarDataType_Array)
 Add a zone to the data set attached to the current frame. More...

Boolean_t TecUtilDataSetAddZoneX (ArgList_pa ArgList)
 Add a zone to the current data set. More...

Boolean_t TecUtilDataSetAddVarX (ArgList_pa ArgList)
 Add a variable to the current data set. More...

Boolean_t TecUtilZoneRealloc (EntIndex_t Zone, LgIndex_t NewIMaxOrNumDataPoints, LgIndex_t NewJMaxOrNumElements, LgIndex_t NewKMax)
 Reallocate a zone in the data set attached to the current frame. More...

Boolean_t TecUtilDataSetAddVar (const char *VarName, FieldDataType_e *FieldDataType_Array)
 Add a variable to the current data set. More...

Boolean_t TecUtilQuitAddQueryCallback (MopupQueryAddOnCallback_pf QuitQueryCallback)
 Include a function in the list of functions to call when Tecplot is considering shutting down. More...

Boolean_t TecUtilStateChangeSetMode (StateChangeAddOnCallback_pf Callback, StateChangeMode_e Mode)
 Set the mode in which state changes are propagated to the specified state change callback. More...

Boolean_t TecUtilStateChangeAddCallback (StateChangeAddOnCallback_pf StateChangeCallback)
 Include a function in the list of functions to call when a state change occurs in Tecplot. More...

void TecUtilStateChanged (StateChange_e StateChange, ArbParam_t CallData)
 Inform tecplot of a state change. More...

Boolean_t TecUtilStateChangeAddCallbackX (ArgList_pa ArgList)
 Register a callback to receive state changes. More...

Boolean_t TecUtilStateChangeGetIndex (LgIndex_t *Index)
 Retrieve Index supplemental information from the previous state change. More...

Boolean_t TecUtilStateChangeGetArbEnum (LgIndex_t *ArbEnum)
 Retrieve enumerated supplemental information from the previous state change. More...

Boolean_t TecUtilStateChangeGetZoneSet (Set_pa *ZoneSet)
 Retrieve the set of zones associated with the previous state change. More...

Boolean_t TecUtilStateChangeGetVarSet (Set_pa *VarSet)
 Retrieve the set of variables associated with the previous state change. More...

Boolean_t TecUtilStateChangeGetZone (EntIndex_t *Zone)
 Retrieve the number of the zone associated with the previous state change. More...

Boolean_t TecUtilStateChangeGetStyleParam (int Param, const char **StyleParam)
 Retrieve one of the P1,P2,P3,P4,P5, or P6 style parameters from the previous style state change. More...

void TecUtilStateChangedX (ArgList_pa ArgList)
 Inform Tecplot of a state change. More...

Boolean_t TecUtilMacroAddCommandCallback (const char *AddOnIDString, MacroCommandAddOnCallback_pf MacroCommandCallback)
 Include a function in the list of functions to call when the $!ADDONCOMMAND macro command is processed. More...

Boolean_t TecUtilMacroRecordAddOnCommand (const char *AddOnIDString, const char *Command)
 Instruct Tecplot to record a macro command for your addon to the macro file which is currently being recorded. More...

Boolean_t TecUtilMacroRecordAddOnComRaw (const char *AddOnIDString, const char *Command, const char *RawData)
 Instruct Tecplot to record an addon macro command, that includes raw data, to the macro file. More...

Boolean_t TecUtilMacroRecordRawCommand (const char *Command)
 Send anything you want to the Tecplot record file. More...

Boolean_t TecUtilDataSetAddJournalCommand (const char *AddOnIDString, const char *Instructions, const char *RawData)
 Adds a command to the data journal. More...

Boolean_t TecUtilDataSetAddRawJournalCom (const char *Command)
 Adds a raw macro command to the data journal. More...

Boolean_t TecUtilDataSetAddPostConvInstr (const char *AddOnIDString, const char *Instructions, const char *RawData)
void TecUtilDataSetSuspendMarking (Boolean_t DoSuspend)
 Stops Tecplot for altering or marking the loaded dataset. More...

void TecUtilDispatchWorkAreaEvent (int I, int J, int ButtonOrKey, Event_e Event, Boolean_t IsShifted, Boolean_t IsAlted, Boolean_t IsControlled)
 Send an event to the Tecplot event dispatcher. More...

void TecUtilMenuClearAll (void)
 Remove all menus, submenus, and menu items from the Tecplot menu bar. More...

Boolean_t TecUtilMenuAddOption (const char *MenuPath, const char *MenuLabel, char Mnemonic, DynamicMenuCallback_pf MenuOptionCallback)
 Create a menu button to add to a menu option in Tecplot. More...

Boolean_t TecUtilMenuAddSeparator (const char *MenuPath)
 Adds menu separator to the end of the specified parent menu. More...

Boolean_t TecUtilMenuSetSensitivity (const char *MenuPath, const char *MenuLabel, Boolean_t IsSensitive)
 Set the sensitivity of a menu option. More...

Boolean_t TecUtilImportAddConverter (DataSetConverter_pf ConverterCallback, const char *ConverterName, const char *FNameExtension)
 Register a data set converter with Tecplot. More...

Boolean_t TecUtilImportAddLoader (DataSetLoader_pf LoaderCallback, const char *DataSetLoaderName, DynamicMenuCallback_pf LoaderSelectedCallback, DataSetLoaderInstructionOverride_pf InstructionOverrideCallback)
 Register a data set loader with Tecplot. More...

Boolean_t TecUtilImportSetLoaderInstr (const char *DataSetLoaderName, StringList_pa Instructions)
 Inform Tecplot about the instructions used to load the current data set. More...

void TecUtilImportWriteLoaderInstr (const char *DataSetLoaderName, StringList_pa Instructions)
 Writes a $!READDATASET macro command to the macro file if macro recording is on. More...

void TecUtilAddOnRegisterInfo (const char *OfficialName, const char *Version, const char *Author)
AddOn_pa TecUtilAddOnRegister (int TecplotVersionNumber, const char *OfficialName, const char *Version, const char *Author)
 Register information about your addon with Tecplot. More...

Boolean_t TecUtilAddOnGetRegisteredInfo (const char *OfficialName, char **Version, char **Author)
 Query Tecplot's list of loaded addons for the specified addon's version and author strings. More...

Boolean_t TecUtilCurveRegisterExtCrvFit (const char *CurveFitName, GetLinePlotDataPointsCallback_pf GetLinePlotDataPointsCallback, GetProbeValueCallback_pf GetProbeValueCallback, GetCurveInfoStringCallback_pf GetCurveInfoStringCallback, GetCurveSettingsCallback_pf GetCurveSettingsCallback, GetAbbreviatedSettingsStringCallback_pf GetAbbreviatedSettingsStringCallback)
 Registers an extended curve fit addon. More...

void TecUtilDialogErrMsg (const char *Message)
 Launch a dialog with an error message. More...

void TecUtilDataValueShare (EntIndex_t SourceZone, EntIndex_t DestZone, EntIndex_t Var)
 Sets the properties of the variable so that it is shared between source and destination zones (using the source for values). More...

Boolean_t TecUtilDataValueAlloc (EntIndex_t Zone, EntIndex_t Var)
 Allocates the space needed for the variable. More...

Boolean_t TecUtilDataValueCanMemMapData (EntIndex_t Zone, EntIndex_t Var, MemMapOffset_t Offset, Boolean_t IsNativeByteOrder)
 Indicates if Tecplot can map the requested variable to a file. More...

Boolean_t TecUtilDataValueMemMapData (EntIndex_t Zone, EntIndex_t Var, int FileDescriptor, MemMapOffset_t Offset, Boolean_t IsNativeByteOrder)
 Maps the Tecplot variable to the file. More...

Boolean_t TecUtilDataValueBranchShared (EntIndex_t Zone, EntIndex_t Var)
 Branch off a shared variable. More...

void TecUtilDataConnectShare (EntIndex_t SourceZone, EntIndex_t DestZone)
 Returns the share count for connectivity for the given zone. More...

Boolean_t TecUtilDataConnectBranchShared (EntIndex_t Zone)
 Branch the connectivity information. More...

void TecUtilDataValueArraySetByRef (FieldData_pa DestFieldData, LgIndex_t DestOffset, LgIndex_t DestCount, void *SourceValueArray)
 Copies the specified number of values from the base of the source value array to the destination field data starting at the specified offset. More...

void TecUtilDataValueSetByRef (FieldData_pa FD, LgIndex_t PointIndex, double Value)
 Assign a value to a field variable at a specific position. More...

void TecUtilDataNodeSetByZone (EntIndex_t Zone, LgIndex_t Element, LgIndex_t Corner, LgIndex_t Node)
 Set the node index for a particular corner of a finite-element. More...

void TecUtilDataNodeSetByRef (NodeMap_pa NM, LgIndex_t Element, LgIndex_t Corner, LgIndex_t Node)
 Set the node index for a particular corner of a finite-element. More...

void TecUtilLockOn (void)
 Lock Tecplot. More...

void TecUtilLockOff (void)
 Lock Tecplot. More...

void TecUtilLockStart (AddOn_pa AddOn)
 Lock Tecplot. More...

void TecUtilLockFinish (AddOn_pa AddOn)
 Unlock Tecplot. More...

char * TecUtilLockGetCurrentOwnerName (void)
 Queries for and returns the name of the object currently locking Tecplot. More...

void TecUtilStatusStartPercentDone (const char *PercentDoneText, Boolean_t ShowStopButton, Boolean_t ShowProgressBar)
 Start monitoring the percent an operation is done. More...

void TecUtilStatusSetPercentDoneText (const char *PercentDoneText)
 Sets string to be displayed when operation completed. More...

Boolean_t TecUtilStatusCheckPercentDone (int PercentDone)
 Checks percent of current operation is completed. More...

void TecUtilStatusFinishPercentDone (void)
 Checks when current operation is completed. More...

void TecUtilDialogLaunchPercentDone (const char *Label, Boolean_t ShowTheScale)
 Launch the Percent Done dialog. More...

void TecUtilDialogSetPercentDoneText (const char *Text)
 Update the text in the Percent Done dialog. More...

Boolean_t TecUtilDialogCheckPercentDone (int PercentDone)
 Set the current value of the Percent Done dialog and check to see if the user has clicked Cancel. More...

void TecUtilDialogDropPercentDone (void)
 Drop the Percent Done dialog. More...

Boolean_t TecUtilMacroExecuteCommand (const char *Command)
 Instruct Tecplot to execute a single macro command. More...

Boolean_t TecUtilMacroSetMacroVar (const char *MacroVar, const char *ValueString)
 Set the value for a macro variable. More...

void TecUtilInterrupt (void)
 Interrupt Tecplot execution. More...

void TecUtilGeomDelete (Geom_ID GID)
 Deletes the specified geometry object. More...

void TecUtilTextDelete (Text_ID TID)
 Deletes the specified text object. More...

Boolean_t TecUtilPickGeom (Geom_ID GID)
 Add the specified geometry to the pick list. More...

Boolean_t TecUtilPickText (Text_ID TID)
 Add the specified text to the pick list. More...

Boolean_t TecUtilGeomIsValid (Geom_ID GID)
 Validate a geometry ID. More...

Boolean_t TecUtilTextIsValid (Text_ID TID)
 Determine if the text object is valid in the current frame context. More...

char * TecUtilStringConvOldFormatting (const char *OldString, Font_e BaseFont)
 Convert a text string using the old formatting syntax into the new formatting syntax. More...

char * TecUtilStringAlloc (int MaxLength, const char *DebugInfo)
 Allocate a character string. More...

void TecUtilStringDealloc (char **S)
 Free a string previously allocated with TecUtilStringAlloc, or one that was allocated and returned as the result of calling any other TecUtilxxx function. More...

void TecUtilStringListClear (StringList_pa StringList)
 Remove all members of the string list. More...

void TecUtilStringListRemoveStrings (StringList_pa StringList, LgIndex_t StringNumber, LgIndex_t Count)
 Remove the specified number of strings beginning at the nth string. More...

void TecUtilStringListRemoveString (StringList_pa StringList, LgIndex_t StringNumber)
 Remove the nth string from the string list. More...

void TecUtilStringListDealloc (StringList_pa *StringList)
 Deallocate the string list members and handle, and set the handle to NULL. More...

StringList_pa TecUtilStringListAlloc (void)
 Create an empty string list. More...

Boolean_t TecUtilStringListAppendString (StringList_pa StringList, const char *String)
 Append a copy of the string to the string list. More...

LgIndex_t TecUtilStringListGetCount (StringList_pa StringList)
 Count the number of strings currently maintained by the string list. More...

char * TecUtilStringListGetRawStringPtr (StringList_pa StringList, LgIndex_t StringNumber)
 Return a reference to the nth string in a string list. More...

char * TecUtilStringListGetString (StringList_pa StringList, LgIndex_t StringNumber)
 Return a copy of the nth string from a string list. More...

Boolean_t TecUtilStringListSetString (StringList_pa StringList, LgIndex_t StringNumber, const char *String)
 Place a copy of the specified string at the nth position in the string list. More...

Boolean_t TecUtilStringListInsertString (StringList_pa StringList, LgIndex_t StringNumber, const char *String)
 Insert a copy of the string into the nth position of the string list. More...

StringList_pa TecUtilStringListCopy (StringList_pa StringList)
 Return a handle to a duplicate of the specified string list and its contents. More...

Boolean_t TecUtilStringListAppend (StringList_pa Target, StringList_pa Source)
 Append a copy of the contents of the source string list to the target string list. More...

char * TecUtilStringListToNLString (StringList_pa StringList)
 Return a newline delimited string representation of the string list. More...

StringList_pa TecUtilStringListFromNLString (const char *String)
 Create a string list from a newline delimited string. More...

Set_pa TecUtilSetAlloc (Boolean_t ShowErr)
 Allocate a new empty set. More...

void TecUtilSetDealloc (Set_pa *Set)
 Free all memory associated with the specified set and assign the set to be NULL. More...

Boolean_t TecUtilSetCopy (Set_pa DstSet, Set_pa SrcSet, Boolean_t ShowErr)
 Copy one set to another. More...

void TecUtilSetClear (Set_pa Set)
 Empties the specified set. More...

Boolean_t TecUtilSetAddMember (Set_pa Set, SetIndex_t Member, Boolean_t ShowErr)
 Add the specified member to the specified set. More...

void TecUtilSetRemoveMember (Set_pa Set, SetIndex_t Member)
 Remove a member from a set. More...

Boolean_t TecUtilSetIsMember (Set_pa Set, SetIndex_t Member)
 Determine if the specified member is in the specified set. More...

Boolean_t TecUtilSetIsEmpty (Set_pa Set)
 Determine if the specified set is NULL or contains no members. More...

SetIndex_t TecUtilSetGetMemberCount (Set_pa Set)
 Get the count of the number of members in a set. More...

Boolean_t TecUtilSetIsEqual (Set_pa Set1, Set_pa Set2)
 Determines if the specified sets are equal (have the same members). More...

SetIndex_t TecUtilSetGetMember (Set_pa Set, SetIndex_t Position)
 Get the member of the specified set at the specified position. More...

SetIndex_t TecUtilSetGetPosition (Set_pa Set, SetIndex_t Member)
 Get the position in the specified set at which the specified member is located. More...

SetIndex_t TecUtilSetGetNextMember (Set_pa Set, SetIndex_t Member)
 Get the next member in the specified set which is located after the specified member. More...

double TecUtilConvertXPosition (CoordSys_e OldCoordSys, CoordSys_e NewCoordSys, double OldX)
 Convert the specified X-coordinate value from one coordinate system to another. More...

double TecUtilConvertXDimension (CoordSys_e OldCoordSys, CoordSys_e NewCoordSys, double OldDimension)
 Convert the specified horizontal dimension from one coordinate system to another. More...

double TecUtilConvertYPosition (CoordSys_e OldCoordSys, CoordSys_e NewCoordSys, double OldY)
 Convert the specified Y-coordinate value from one specified coordinate system to another specified coordinate system. More...

double TecUtilConvertYDimension (CoordSys_e OldCoordSys, CoordSys_e NewCoordSys, double OldDimension)
 Convert the specified vertical dimension from one coordinate system to another. More...

double TecUtilConvertUnits (Units_e OldUnits, Units_e NewUnits, double OldSize)
 Convert from one measurement system to another. More...

LgIndex_t TecUtilTecIni (const char *Title, const char *Variables, const char *FName, const char *ScratchDir, LgIndex_t *Debug, LgIndex_t *VIsDouble)
 Initializes the process of writing a binary data file. More...

LgIndex_t TecUtilTecZne (const char *ZoneTitle, LgIndex_t *IMx, LgIndex_t *JMx, LgIndex_t *KMx, const char *ZFormat, const char *DupList)
 Writes header information about the next zone to be added to the data file. More...

LgIndex_t TecUtilTecZneX (ArgList_pa ArgList)
 Writes the zone to the data file. More...

LgIndex_t TecUtilTecDat (LgIndex_t *N, void *FieldData_Array, LgIndex_t *IsDouble)
 Writes an array of data to the data file. More...

LgIndex_t TecUtilTecNod (LgIndex_t *NData_Array)
 Writes an array of node data to the binary data file. More...

LgIndex_t TecUtilTecEnd (void)
 Must be called to close out the current data file. More...

LgIndex_t TecUtilTecLab (const char *S)
 Write a set of custom labels to the data file. More...

LgIndex_t TecUtilTecUsr (const char *S)
 Add a user-defined record, in the form of a character string, to the Tecplot data file. More...

LgIndex_t TecUtilTecFil (LgIndex_t *F)
 Switch output context to a different file. More...

LgIndex_t TecUtilTecTxt (double *XPos, double *YPos, LgIndex_t *PosCoordMode, LgIndex_t *AttachToZone, LgIndex_t *Zone, LgIndex_t *Font, LgIndex_t *FontHeightUnits, double *FontHeight, LgIndex_t *BoxType, double *BoxMargin, double *BoxLineThickness, LgIndex_t *BoxColor, LgIndex_t *BoxFillColor, double *Angle, LgIndex_t *Anchor, double *LineSpacing, LgIndex_t *TextColor, LgIndex_t *Scope, const char *Text, const char *MacroFunctionCommand)
 Write a text label to a binary tecplot data file. More...

LgIndex_t TecUtilTecTxtX (ArgList_pa ArgList)
 Writes the text item to the data file. More...

LgIndex_t TecUtilTecGeo (double *XPos, double *YPos, double *ZPos, LgIndex_t *PosCoordMode, LgIndex_t *AttachToZone, LgIndex_t *Zone, LgIndex_t *Color, LgIndex_t *FillColor, LgIndex_t *IsFilled, LgIndex_t *GeomType, LgIndex_t *LinePattern, double *PatternLength, double *LineThickness, LgIndex_t *NumEllipsePts, LgIndex_t *ArrowheadStyle, LgIndex_t *ArrowheadAttachment, double *ArrowheadSize, double *ArrowheadAngle, LgIndex_t *Scope, LgIndex_t *NumSegments, LgIndex_t *NumSegPts, float *XGeomData, float *YGeomData, float *ZGeomData, const char *MacroFunctionCommand)
 Write a geometry to a binary tecplot datafile. More...

LgIndex_t TecUtilTecGeoX (ArgList_pa ArgList)
 Writes the geometry item to the data file. More...

LgIndex_t TecUtilTecAux (char *Name, char *Value)
 Writes the name/value data set auxiliary data pair to the data file.. More...

LgIndex_t TecUtilTecZAux (char *Name, char *Value)
 Writes the name/value zone auxiliary data pair to the data file. More...

LgIndex_t TecUtilTecFace (LgIndex_t *FaceConnections)
 Writes the face neighbor connections to the data file. More...

Clipping_e TecUtilTextGetClipping (Text_ID TID)
 Get the clipping properties of a text object. More...

void TecUtilTextGetAnchorPos (Text_ID TID, double *XOrThetaPos, double *YOrRPos, double *ZPos)
 Get the anchor coordinate position of the text object in the current coordinate system. More...

void TecUtilTextGetXYPos (Text_ID TID, double *XPos, double *YPos)
CoordSys_e TecUtilTextGetPositionCoordSys (Text_ID TID)
 Get the coordinate system to which the text is associated. More...

EntIndex_t TecUtilTextGetZoneOrMap (Text_ID TID)
 Get the zone or map with which the text object is associated (if it is attached). More...

Boolean_t TecUtilTextIsAttached (Text_ID TID)
 Determine if the text object is attached to a zone or map. More...

ColorIndex_t TecUtilTextGetColor (Text_ID TID)
 Get the color of the text object. More...

Font_e TecUtilTextGetFont (Text_ID TID)
 Get the font used for the text object. More...

double TecUtilTextGetHeight (Text_ID TID)
 Get the text height in the currently defined text size units. More...

Units_e TecUtilTextGetSizeUnits (Text_ID TID)
 Get the size units for the text object. More...

TextBox_e TecUtilTextBoxGetType (Text_ID TID)
 Get the type of the box surrounding the text object. More...

double TecUtilTextBoxGetMargin (Text_ID TID)
 Get the margin between the text and the box surrounding the text object. More...

double TecUtilTextBoxGetLineThickness (Text_ID TID)
 Get the line thickness of the text box border. More...

ColorIndex_t TecUtilTextBoxGetColor (Text_ID TID)
 Get the line color of the box surrounding the text object. More...

ColorIndex_t TecUtilTextBoxGetFillColor (Text_ID TID)
 Get the fill color of the box surrounding the text object. More...

double TecUtilTextGetAngle (Text_ID TID)
 Get the text angle. More...

TextAnchor_e TecUtilTextGetAnchor (Text_ID TID)
 Get the text anchor style. More...

double TecUtilTextGetLineSpacing (Text_ID TID)
 Get the spacing between lines of text. More...

Scope_e TecUtilTextGetScope (Text_ID TID)
 Get the scope of the text object. More...

Boolean_t TecUtilTextGetMacroFunctionCmd (Text_ID TID, char **MacroFunctionCommand)
 Get the macro function command string associated with the text object. More...

Boolean_t TecUtilTextGetString (Text_ID TID, char **TextString)
 Get the string associated with the text object. More...

Text_ID TecUtilTextGetNext (Text_ID TID)
 Get the next text object, relative to the specified text object, from the list of text objects maintained by the current frame. More...

Text_ID TecUtilTextGetPrev (Text_ID TID)
 Get the previous text object, relative to the specified text object, from the list of text objects maintained by the current frame. More...

Clipping_e TecUtilGeomGetClipping (Geom_ID GID)
 Function will get the clipping properties of a geometry. More...

void TecUtilGeomGetAnchorPos (Geom_ID GID, double *XOrThetaPos, double *YOrRPos, double *ZPos)
 Gets the anchor postion of the specified geometry.. More...

void TecUtilGeomImageSetUseRatio (Geom_ID GID, Boolean_t MaintainAspectRatio)
 Queries the state of the "preserve aspect ratio" toggle for an image geometry. More...

void TecUtilGeomGetXYZAnchorPos (Geom_ID GID, double *XPos, double *YPos, double *ZPos)
EntIndex_t TecUtilGeomGetZoneOrMap (Geom_ID GID)
 Get the zone or Line-mapping to which the geometry is attached. More...

Boolean_t TecUtilGeomIsAttached (Geom_ID GID)
 Determine whether or not a geometry is attached to a zone or Line-mapping. More...

ColorIndex_t TecUtilGeomGetColor (Geom_ID GID)
 Get the geometry line color. More...

ColorIndex_t TecUtilGeomGetFillColor (Geom_ID GID)
 Get the geometry fill color. More...

Boolean_t TecUtilGeomGetIsFilled (Geom_ID GID)
 Determine if a geometry if filled. More...

GeomForm_e TecUtilGeomGetType (Geom_ID GID)
 Get the geometry type. More...

LinePattern_e TecUtilGeomGetLinePattern (Geom_ID GID)
 Get the line pattern of a geometry. More...

double TecUtilGeomGetPatternLength (Geom_ID GID)
 Get the geometry line pattern length. More...

double TecUtilGeomGetLineThickness (Geom_ID GID)
 Get the geometry line thickness. More...

SmInteger_t TecUtilGeomEllipseGetNumPoints (Geom_ID GID)
 Get the number of points used to draw a circle or ellipse geometry. More...

ArrowheadStyle_e TecUtilGeomArrowheadGetStyle (Geom_ID GID)
 Get the geometry arrowhead style. More...

ArrowheadAttachment_e TecUtilGeomArrowheadGetAttach (Geom_ID GID)
 Get the geometry arrowhead attachment. More...

double TecUtilGeomArrowheadGetSize (Geom_ID GID)
 Get the geometry arrowhead size. More...

double TecUtilGeomArrowheadGetAngle (Geom_ID GID)
 Get the geometry arrowhead angle. More...

Scope_e TecUtilGeomGetScope (Geom_ID GID)
 Get the geometry scope. More...

CoordSys_e TecUtilGeomGetPositionCoordSys (Geom_ID GID)
 Get the geometry position coordinate system. More...

ImageResizeFilter_e TecUtilGeomImageGetResizeFilter (Geom_ID GID)
 Get the name of the file associated with an image geometry. More...

void TecUtilGeomImageSetResizeFilter (Geom_ID GID, ImageResizeFilter_e ResizeFilter)
 Sets the resize filter of an image geometry. More...

void TecUtilGeomImageGetFileName (Geom_ID GID, char **FileName)
 Get the name of the file associated with an image geometry. More...

void TecUtilGeomImageSetWidth (Geom_ID GID, double Width)
 Sets the width of an image geometry. More...

void TecUtilGeomImageSetHeight (Geom_ID GID, double Height)
 Sets the Height of an image geometry. More...

void TecUtilGeomImageGetSize (Geom_ID GID, double *Width, double *Height)
 Get the width and height of an image geometry. More...

void TecUtilGeomImageResetAspectRatio (Geom_ID GID)
 Resets the aspect ratio after any changes have been made in the position of an image geometry. More...

Boolean_t TecUtilGeomGetMacroFunctionCmd (Geom_ID GID, char **MacroFunctionCmd)
 Get the geometry macro function command. More...

Geom_ID TecUtilGeomImageCreate (const char *FName, double CornerXOrTheta, double CornerYOrR, double Size)
 Create an image geometry. More...

Geom_ID TecUtilGeomGetNext (Geom_ID GID)
 Get the next geometry in the list of geometries attached to the current frame. More...

Geom_ID TecUtilGeomGetPrev (Geom_ID GID)
 Get the previous geometry in the list of geometries attached to the current frame. More...

void TecUtilTextSetClipping (Text_ID TID, Clipping_e Clipping)
 Set the clipping properties of a text object. More...

void TecUtilTextSetAnchorPos (Text_ID TID, double XOrThetaPos, double YOrRPos, double ZPos)
 Set the XY-position for the text object. More...

void TecUtilTextSetXYPos (Text_ID TID, double XPos, double YPos)
void TecUtilTextSetCoordSysAndUnits (Text_ID TID, CoordSys_e PositionCoordSys, Units_e HeightUnits)
 Set the coordinate system for the position and the units for the character height of a text object. More...

void TecUtilTextSetZoneOrMap (Text_ID TID, EntIndex_t ZoneOrMap)
 Set the zone or map to which the text object is associated (if it is attached). More...

void TecUtilTextSetAttached (Text_ID TID, Boolean_t Attached)
 Indicate if the the text object should be attached to a zone or map. More...

void TecUtilTextSetColor (Text_ID TID, ColorIndex_t Color)
 Set the color of a text object. More...

void TecUtilTextSetFont (Text_ID TID, Font_e Font)
 Set the font for a text object. More...

void TecUtilTextSetHeight (Text_ID TID, double Height)
 Set the character height for a text object. More...

void TecUtilTextBoxSetType (Text_ID TID, TextBox_e TextBoxType)
 Set the type of the box surrounding the text object. More...

void TecUtilTextBoxSetMargin (Text_ID TID, double Margin)
 Set the margin between the text and the box surrounding the text object. More...

void TecUtilTextBoxSetLineThickness (Text_ID TID, double LineThickness)
 Set the line thickness of the box surrounding the text object. More...

void TecUtilTextBoxSetColor (Text_ID TID, ColorIndex_t BoxColor)
 Set the line color for the box surrounding a text object. More...

void TecUtilTextBoxSetFillColor (Text_ID TID, ColorIndex_t BoxFillColor)
 Set the fill color of the box surrounding a text object. More...

void TecUtilTextSetAngle (Text_ID TID, double Angle)
 Set the angle in degrees for a text object. More...

void TecUtilTextSetAnchor (Text_ID TID, TextAnchor_e Anchor)
 Set the anchor style for a text object. More...

void TecUtilTextSetLineSpacing (Text_ID TID, double LineSpacing)
 Set the line spacing for a text object. More...

void TecUtilTextSetScope (Text_ID TID, Scope_e Scope)
 Set the scope of the text object. More...

Boolean_t TecUtilTextSetMacroFunctionCmd (Text_ID TID, const char *Command)
 Set the macro function command associated with a text object. More...

Boolean_t TecUtilTextSetString (Text_ID TID, const char *TextString)
 Set the text string for a text object. More...

void TecUtilGeomSetClipping (Geom_ID GID, Clipping_e Clipping)
 Set the clipping properties of a geometry. More...

void TecUtilGeomSetAnchorPos (Geom_ID GID, double XPos, double YPos, double ZPos)
 Set the anchor position for a geometry. More...

void TecUtilGeomSetXYZAnchorPos (Geom_ID GID, double XPos, double YPos, double ZPos)
void TecUtilGeomSetZoneOrMap (Geom_ID GID, EntIndex_t ZoneOrMap)
 Set the zone or Line-mapping attachment for a geometry. More...

void TecUtilGeomSetAttached (Geom_ID GID, Boolean_t Attached)
 Set whether or not a geometry is attached to a zone or Line-mapping. More...

void TecUtilGeomSetColor (Geom_ID GID, ColorIndex_t Color)
 Set the line color of a geometry. More...

void TecUtilGeomSetFillColor (Geom_ID GID, ColorIndex_t FillColor)
 Set the fill color of a geometry. More...

void TecUtilGeomSetIsFilled (Geom_ID GID, Boolean_t IsFilled)
 Set whether or not a geometry is filled with a color. More...

void TecUtilGeomSetLinePattern (Geom_ID GID, LinePattern_e LinePattern)
 Set the line pattern for a geometry. More...

void TecUtilGeomSetPatternLength (Geom_ID GID, double PatternLength)
 Set the line pattern length for a geometry. More...

void TecUtilGeomSetLineThickness (Geom_ID GID, double LineThickness)
 Set the line thickness for a geometry. More...

void TecUtilGeomEllipseSetNumPoints (Geom_ID GID, SmInteger_t NumEllipsePts)
 Set the number of points used to draw a circle or an ellipse geometry. More...

void TecUtilGeomArrowheadSetStyle (Geom_ID GID, ArrowheadStyle_e ArrowheadStyle)
 Set the arrowhead style for a geometry. More...

void TecUtilGeomArrowheadSetAttach (Geom_ID GID, ArrowheadAttachment_e ArrowheadAttachment)
 Set the arrowhead attachment for a geometry. More...

void TecUtilGeomArrowheadSetSize (Geom_ID GID, double ArrowheadSize)
 Set the arrowhead size for a geometry. More...

void TecUtilGeomArrowheadSetAngle (Geom_ID GID, double ArrowheadAngle)
 Set the arrowhead angle for a geometry. More...

void TecUtilGeomSetDrawOrder (Geom_ID GID, DrawOrder_e DrawOrder)
 Sets the draw order of a geometry. More...

Boolean_t TecUtilGeomImageGetUseRatio (Geom_ID GID)
 Queries the state of the "preserve aspect ratio" toggle for an image geometry. More...

DrawOrder_e TecUtilGeomGetDrawOrder (Geom_ID GID)
 Gets the draw order of a geometry. More...

void TecUtilGeomSetScope (Geom_ID GID, Scope_e Scope)
 Set the scope for a geometry. More...

void TecUtilGeomSetPositionCoordSys (Geom_ID GID, CoordSys_e CoordSys)
 Set the position coordinate system for a geometry. More...

Boolean_t TecUtilGeomSetMacroFunctionCmd (Geom_ID GID, const char *Command)
 Set the macro function command for a geometry. More...

void TecUtilDropOpeningBanner (void)
 Forces drop of opening banner. More...

Text_ID TecUtilTextCreate (CoordSys_e PositionCoordSys, double PosX, double PosY, Units_e HeightUnits, double Height, const char *Text)
 Creates a text object. More...

Text_ID TecUtilText3DCreate (double PosX, double PosY, double PosZ, Units_e HeightUnits, double Height, const char *Text)
 Create a 3D text label in Tecplot. More...

Geom_ID TecUtilGeomSquareCreate (CoordSys_e PositionCoordSys, double CornerX, double CornerY, double Size)
 Create a square geometry. More...

Geom_ID TecUtilGeomCircleCreate (CoordSys_e PositionCoordSys, double CenterX, double CenterY, double Radius)
 Create a circle geometry. More...

Geom_ID TecUtilGeomRectangleCreate (CoordSys_e PositionCoordSys, double CornerX, double CornerY, double Width, double Height)
 Create a rectangle geometry. More...

Geom_ID TecUtilGeomEllipseCreate (CoordSys_e PositionCoordSys, double CenterX, double CenterY, double HAxis, double VAxis)
 Create an ellipse geometry. More...

Geom_ID TecUtilGeom2DPolylineCreate (CoordSys_e PositionCoordSys, double *PtsX_Array, double *PtsY_Array, LgIndex_t NumPts)
 Create a 2-D polyline geometry. More...

Geom_ID TecUtilGeom3DPolylineCreate (double *PtsX_Array, double *PtsY_Array, double *PtsZ_Array, LgIndex_t NumPts)
 Create a 3-D polyline geometry. More...

Geom_ID TecUtilGeom2DMPolyCreate (CoordSys_e PositionCoordSys, LgIndex_t NumPolys, LgIndex_t *NumPointsInPolylines_Array)
 Create a 2-D multi-polyline geometry. More...

Geom_ID TecUtilGeom3DMPolyCreate (LgIndex_t NumPolys, LgIndex_t *NumPointsInPolylines_Array)
 Create a 3-D multi-polyline geometry. More...

Geom_ID TecUtilGeomArcCreate (CoordSys_e PositionCoordSys, double CenterX, double CenterY, double Radius, double StartAngle, double EndAngle)
 Create a 2-D arc. More...

Geom_ID TecUtilGeom2DLineSegmentCreate (CoordSys_e PositionCoordSys, double X1, double Y1, double X2, double Y2)
 Create a 2-D line geometry. More...

Geom_ID TecUtilGeom3DLineSegmentCreate (double X1, double Y1, double Z1, double X2, double Y2, double Z2)
 Create a 3-D line. More...

LgIndex_t TecUtilGeomMPolyGetPolylineCnt (Geom_ID GID)
 Get the number of polylines in a multi-polyline geometry. More...

LgIndex_t TecUtilGeomPolyGetPointCount (Geom_ID GID)
 Get the number of points in a polyline geometry. More...

LgIndex_t TecUtilGeomMPolyGetPointCount (Geom_ID GID, LgIndex_t PolyNum)
 Get information about the number of points in a polyline of a multi-polyline geometry. More...

void TecUtilGeom2DMPolyGetPoint (Geom_ID GID, LgIndex_t PolyNum, LgIndex_t PointIndex, double *X, double *Y)
 Gets the 2-D (X,Y) value of point in a 2-D multi-polyline geometry. More...

void TecUtilGeom2DPolylineGetPoint (Geom_ID GID, LgIndex_t PointIndex, double *X, double *Y)
 Get a point (X,Y) of a 2-D polyline. More...

void TecUtilGeom2DMPolySetPoint (Geom_ID GID, LgIndex_t PolyNum, LgIndex_t PointIndex, double X, double Y)
 Set the 2-D (X,Y) value of point in a 2-D multi-polyline geometry. More...

void TecUtilGeom2DPolylineSetPoint (Geom_ID GID, LgIndex_t PointIndex, double X, double Y)
 Set a point (X,Y) of a 2-D polyline. More...

void TecUtilGeom2DMPolySetPolyline (Geom_ID GID, LgIndex_t PolyNum, double *X_Array, double *Y_Array)
 Set the points for a polyline in a 2-D multi-polyline geometry. More...

void TecUtilGeom3DMPolyGetPoint (Geom_ID GID, LgIndex_t PolyNum, LgIndex_t PointIndex, double *X, double *Y, double *Z)
 Get the 3-D (X, Y, Z) value of point in a 3-D multi-polyline geometry. More...

void TecUtilGeom3DPolylineGetPoint (Geom_ID GID, LgIndex_t PointIndex, double *X, double *Y, double *Z)
 Get a point (X, Y, Z) of a 3-D polyline. More...

void TecUtilGeom3DMPolySetPoint (Geom_ID GID, LgIndex_t PolyNum, LgIndex_t PointIndex, double X, double Y, double Z)
 Set the 3-D (X, Y, Z) value of point in a 3-D multi-polyline geometry. More...

void TecUtilGeom3DPolylineSetPoint (Geom_ID GID, LgIndex_t PointIndex, double X, double Y, double Z)
 Set a point (X, Y, Z) of a 3-D polyline. More...

void TecUtilGeom3DMPolySetPolyline (Geom_ID GID, LgIndex_t PolyNum, double *X_Array, double *Y_Array, double *Z_Array)
 Set the points for a polyline in a 3-D multi-polyline geometry. More...

double TecUtilGeomCircleGetRadius (Geom_ID GID)
 Return the radius of a circle geometry. More...

void TecUtilGeomCircleSetRadius (Geom_ID GID, double Radius)
 Set the radius of a circle geometry. More...

double TecUtilGeomSquareGetSize (Geom_ID GID)
 Get the size of a square geometry. More...

void TecUtilGeomSquareSetSize (Geom_ID GID, double Size)
 Set the size of a square geometry. More...

void TecUtilGeomRectangleGetSize (Geom_ID GID, double *Width, double *Height)
 Get the width and height of a rectangle geometry. More...

void TecUtilGeomRectangleSetSize (Geom_ID GID, double Width, double Height)
 Set the width and height of a rectangle geometry. More...

void TecUtilGeomEllipseGetSize (Geom_ID GID, double *HAxis, double *VAxis)
 Get length of the axes of an ellipse. More...

void TecUtilGeomEllipseSetSize (Geom_ID GID, double HAxis, double VAxis)
 Set the length of the axes of an ellipse. More...

char * TecUtilGetCurLayoutFName (void)
 Get the current layout file name. More...

void TecUtilHelp (const char *HelpFileOrURL, Boolean_t GoToID, int HelpID)
 Use either WinHelp or a browser to view help information. More...

Boolean_t TecUtilDataSetLockOn (const char *LockString)
 Lock the data set attached to the current frame. More...

Boolean_t TecUtilDataSetLockOff (const char *LockString)
 Unlock the data set attached to the current frame. More...

Boolean_t TecUtilDataSetIsLocked (char **LockString)
 Query to see of the data set attached to the current frame is locked. More...

void TecUtilPleaseWait (const char *WaitMessage, Boolean_t DoWait)
 Shows or hides the wait cursor and optionally displayes a wait message. More...

Boolean_t TecUtilUndoCanUndo (void)
 Determine if you can undo the last operation. More...

Boolean_t TecUtilUndoDoUndo (void)
 Undo the last opeartion. More...


Detailed Description


Define Documentation

#define EXTERN   extern
 

#define TecUtilSetForEachMember Member,
Set   
 

Value:

for (Member = TecUtilSetGetNextMember(Set, TECUTILSETNOTMEMBER); \
                 Member != TECUTILSETNOTMEMBER; \
                 Member = TecUtilSetGetNextMember(Set, Member))


Function Documentation

Boolean_t TecUtilAddOnGetRegisteredInfo const char *    OfficialName,
char **    Version,
char **    Author
 

Query Tecplot's list of loaded addons for the specified addon's version and author strings.

Parameters:
OfficialName  Official name of the addon. This is the same unique name with which an addon was registered.
Version  A pointer to a character pointer. If the addon is loaded, *Version is assigned a copy of the addon's version string, otherwise a value of NULL is assigned. You must free this string with TecUtilStringDealloc.
Author  A pointer to a character pointer. If the addon is loaded, *Author is assigned a copy of the addon's version string, otherwise a value of NULL is assigned. You must free this string with TecUtilStringDealloc.
Returns:
Returns TRUE if the addon is loaded, FALSE if not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilAddOnGetRegisteredInfo(
   &                   OfficialName,
   &                   Version,
   &                   VersionLength,
   &                   Author,
   &                   AuthorLength)
    CHARACTER*(*)   OfficialName
    CHARACTER*(*)   Version
    INTEGER*4       VersionLength
    CHARACTER*(*)   Author
    INTEGER*4       AuthorLength

To find out if the addon Circular Stream is loaded into Tecplot:

   char *version = NULL;
   char *author = NULL;
   if (TecUtilAddOnGetRegisteredInfo("Circular Stream".&version, &author))
    {
    / * Circular Stream loaded, do something special * /
    DeallocString(&version);
    DeallocString(&author);
    }

AddOn_pa TecUtilAddOnRegister int    TecplotVersionNumber,
const char *    OfficialName,
const char *    Version,
const char *    Author
 

Register information about your addon with Tecplot.

This information will mainly be used in an addon information dialog accessible via the Help menu option. Note: This function must be called from within your addon initialization function, and cannot be called from anywhere else.

Parameters:
TecplotVersionNumber  The TecUtilAPIVersion use 100 for v10. This tells Tecplot that your addon was built "TecplotVersionNumber" aware. For example, if you use 100, then Tecplot will assume that your addon knows how to deal with shared variables since they were introduced in version 10.
OfficialName  The official name of your addon.
Version  A string indicating the version of your addon.
Author  A string indicating the author of the addon (usually the company name).
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilAddOnRegister(
   &           TecplotVersionNumber,
   &           OfficialName,
   &           Version,
   &           Author,
   &           ResultPtr)
    INTEGER*4       TecplotVersionNumber
    CHARACTER*(*)   OfficialName
    CHARACTER*(*)   Version
    CHARACTER*(*)   Author
    POINTER         (ResultPtr, Result)

*

   To register an addon called Circular Stream from Tecplot, Inc.:
   AddOn_pa AddOnID;
   void InitTecAddOn(void)
   {
     TecUtilLockOn();
     AddOnID=TecUtilAddOnRegister(100,"Circular Stream",
                              "1.0 - 05/01/1998",
                              "Tecplot, Inc.");
   / * other initialization * /
     TecUtilLockOff();
   }

void TecUtilAddOnRegisterInfo const char *    OfficialName,
const char *    Version,
const char *    Author
 

Deprecated:
See also:
TecUtilAddOnRegister

void TecUtilArrayDealloc void **    Array
 

Deallocate an arbituary array previously allocated by Tecplot.

Parameters:
Array  Pointer to the Array to be deallocated.
Fortran Syntax:

    SUBROUTINE TecUtilArrayDealloc(Array)
    POINTER (ArrayPtr, Array)

See TecGUIListGetSelectedItems for a complete example.

double TecUtilConvertUnits Units_e    OldUnits,
Units_e    NewUnits,
double    OldSize
 

Convert from one measurement system to another.

Parameters:
OldUnits  Units in which OldSize is measured. The possible values are: Units_Grid, Units_Frame, Units_Point or Units_Screen.
NewUnits  Unit space in which the return value is measured. The possible values are: Units_Grid, Units_Frame, Units_Point or Units_Screen.
OldSize  Size in the old measurement system.
Returns:
Converted size in the new measurement system.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilConvertUnits(
   &                   OldUnits,
   &                   NewUnits,
   &                   OldSize)
    INTEGER*4       OldUnits
    INTEGER*4       NewUnits
    REAL*8          OldSize

To create a line with a line thickness of three points:

   Geom_ID g;
   double frame_units;
   frame_units = TecUtilConvertUnits(Units_Point, Units_Frame, 3.);
   g = TecUtilGeom2DLineSegmentCreate(CoordSys_Frame, 5., 5., 95., 95.);
   TecUtilGeomSetLineThickness(g, frame_units)

double TecUtilConvertXDimension CoordSys_e    OldCoordSys,
CoordSys_e    NewCoordSys,
double    OldDimension
 

Convert the specified horizontal dimension from one coordinate system to another.

Parameters:
OldCoordSys  Coordinate system in which OldDimension is measured. The possible values are: CoordSys_Grid, CoordSys_Frame, CoordSys_Paper, CoordSys_Screen or CoordSys_Hardcopy
NewCoordSys  Coordinate system in which the return value is measured. The possible values are: CoordSys_Grid, CoordSys_Frame, CoordSys_Paper, CoordSys_Screen or CoordSys_Hardcopy
OldDimension  Dimension to convert
Returns:
Converted dimension in the new coordinate system.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilConvertXDimension(
   &                   OldCoordSys,
   &                   NewCoordSys,
   &                   OldDimension)
    INTEGER*4       OldCoordSys
    INTEGER*4       NewCoordSys
    REAL*8          OldDimension

Find the size of the current frame in screen pixels.

   double X, Y, Width, Height;
   / * get frame width and height in inches * /
   TecUtilFrameGetPosAndSize(&X,&Y, &Width, &Height);
   / * convert width and height to screen coordinates (pixels) * /
   Width = TecUtilConvertXDimension(CoordSys_Paper,
                                    CoordSys_Screen, Width);
   Height = TecUtilConvertYDimension(CoordSys_Paper,
                                     CoordSys_Screen, Height);

double TecUtilConvertXPosition CoordSys_e    OldCoordSys,
CoordSys_e    NewCoordSys,
double    OldX
 

Convert the specified X-coordinate value from one coordinate system to another.

Parameters:
OldCoordSys  The coordinate system in which OldX is currently defined. The possible values are: CoordSys_Grid, CoordSys_Frame, CoordSys_FrameOffset, CoordSys_Paper, or CoordSys_Screen.
NewCoordSys  The coordinate system into which to transform OldX. See OldCoordSys for the possible values
OldX  The value to convert from one coordinate system to another
Returns:
The value OldX converted into the new coordinate system.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilConvertXPosition(
   &                   OldCoordSys,
   &                   NewCoordSys,
   &                   OldX)
    INTEGER*4       OldCoordSys
    INTEGER*4       NewCoordSys
    REAL*8          OldX

Determine the position on the paper of a text label. Assume the Text_ID has already been obtained (See TecUtilPickListxxx functions or TecUtilTextxxx functions for examples on how to obtain a Text_ID).

   Text_ID TID;
   double  XPos,YPos;
   double PaperXPos,PaperYPos;
   
   ... Text_ID obtained....
   
   TecUtilTextGetXYPos(TID,&XPos,&YPos);
   
   PaperXPos = TecUtilConvertXPosition(TecUtilTextGetPositionCoordSys(TID),
                                       CoordSys_Paper,
                                       XPos);
   PaperYPos = TecUtilConvertYPosition(TecUtilTextGetPositionCoordSys(TID),
                                       CoordSys_Paper,
                                       YPos);

double TecUtilConvertYDimension CoordSys_e    OldCoordSys,
CoordSys_e    NewCoordSys,
double    OldDimension
 

Convert the specified vertical dimension from one coordinate system to another.

Parameters:
OldCoordSys  Coordinate system in which OldDimension is measured. The possible values are: CoordSys_Grid, CoordSys_Frame, CoordSys_Paper, CoordSys_Screen or CoordSys_Hardcopy
NewCoordSys  Coordinate system in which OldDimension is measured. The possible values are: CoordSys_Grid, CoordSys_Frame, CoordSys_Paper, CoordSys_Screen or CoordSys_Hardcopy
OldDimension  Dimension to convert
Returns:
Converted dimension in the new coordinate system.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilConvertYDimension(
   &                   OldCoordSys,
   &                   NewCoordSys,
   &                   OldDimension)
    INTEGER*4       OldCoordSys
    INTEGER*4       NewCoordSys
    REAL*8          OldDimension

double TecUtilConvertYPosition CoordSys_e    OldCoordSys,
CoordSys_e    NewCoordSys,
double    OldY
 

Convert the specified Y-coordinate value from one specified coordinate system to another specified coordinate system.

Parameters:
OldCoordSys  The coordinate system in which OldY is currently defined. The possible values are: CoordSys_Grid, CoordSys_Frame, CoordSys_FrameOffset, CoordSys_Paper, or CoordSys_Screen
NewCoordSys  The coordinate system into which to transform OldY. See OldCoordSys for the possible values
OldY  The value to convert from one coordinate system to another
Returns:
The value OldY converted into the new coordinate system.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilConvertYPosition(
   &                   OldCoordSys,
   &                   NewCoordSys,
   &                   OldY)
    INTEGER*4       OldCoordSys
    INTEGER*4       NewCoordSys
    REAL*8          OldY

Boolean_t TecUtilCurveRegisterExtCrvFit const char *    CurveFitName,
GetLinePlotDataPointsCallback_pf    GetLinePlotDataPointsCallback,
GetProbeValueCallback_pf    GetProbeValueCallback,
GetCurveInfoStringCallback_pf    GetCurveInfoStringCallback,
GetCurveSettingsCallback_pf    GetCurveSettingsCallback,
GetAbbreviatedSettingsStringCallback_pf    GetAbbreviatedSettingsStringCallback
 

Registers an extended curve fit addon.

This will add an option to the single selection list launched by the Curve Type/Extended option on the Curves page of the Plot Attributes dialog.

Parameters:
CurveFitName  Unique name given to the extended curve fit. This name is used in the list of extended curve fits in the Extended Curve Fits dialog, launched from Curve Type/Extended in the Plot Attributes dialog
GetLinePlotDataPointsCallback  The name of the function that will calculate the curve fit. This is the only function that needs to be defined to create an extended curve fit addon. See GetLinePlotDataPointsCallback_pf in Chapter 2.
GetProbeValueCallback  The name of the function that will return the dependent value when the extended curve fit is probed at a given independent value. If this function is set to NULL, Tecplot will perform a linear interpolation based on the values returned by the GetLinePlotDataPoints function. See GetProbeValueCallback_pf in Chapter 2
GetCurveInfoStringCallback  The name of the function that will create a string to be presented in the Data/LinePlot Curve Info dialog. This callback may be set to NULL if you do not wish to present a string to the LinePlot Curve Info dialog. See GetCurveInfoStringCallback_pf in Chapter 2
GetCurveSettingsCallback  The name of the function that is called when the Curve Settings button on the Curves page of the Plot Attributes dialog is pressed while the extended curve fit is set as the Curve Type. This function may be set to NULL if there are not configurable settings for the extended curve fit. If settings are changed, it is the responsibility of the addon writer to inform Tecplot of the change by calling the function TecUtilCurveSetExtendedSettings. This function is usually called when OK is clicked on the addon dialog. See GetCurveSettingsCallback_pf in Chapter 2
GetAbbreviatedSettingsStringCallback  See GetAbbreviatedSettingsStringCallback_pf in Chapter 2
Returns:
Returns TRUE if the extended curve fit was added.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilCurveRegisterExtCrvFit(
   &                   CurveFitName,
   &                   GetLinePlotDataPointsCallback,
   &                   GetProbeValueCallback,
   &                   GetCurveInfoStringCallback,
   &                   GetCurveSettingsCallback,
   &                   GetAbbreviatedSettingsStringCallback)
    CHARACTER*(*)   CurveFitName
    POINTER         (GetLinePlotDataPointsCallbackPtr, GetLinePlotDataPointsCallback)
    POINTER         (GetProbeValueCallbackPtr, GetProbeValueCallback)
    POINTER         (GetCurveInfoStringCallbackPtr, GetCurveInfoStringCallback)
    POINTER         (GetCurveSettingsCallbackPtr, GetCurveSettingsCallback)
    POINTER         (GetAbbreviatedSettingsStringCallbackPtr, GetAbbreviatedSettingsStringCallback)

Boolean_t TecUtilDataConnectBranchShared EntIndex_t    Zone
 

Branch the connectivity information.

Returns False if out of memory.

Parameters:
Zone  Zone number where connectivity is to be branched.
Returns:
TRUE if connectivity is branched, FALSE if out of memory.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataConnectBranchShared(Zone)
    INTEGER*4 Zone

void TecUtilDataConnectShare EntIndex_t    SourceZone,
EntIndex_t    DestZone
 

Returns the share count for connectivity for the given zone.

This is the number of times the connectivity is shared. 1 means not shared (shared once), 2 means two zones share it, etc.

Parameters:
SourceZone  Zone number to share its connectivity.
DestZone  Zone number that will share the source zone's connectivity
Returns:
Number of zones sharing connectivity.
Fortran Syntax:

    SUBROUTINE TecUtilDataConnectShare(
   &           SourceZone,
   &           DestZone)
    INTEGER*4       SourceZone
    INTEGER*4       DestZone

void TecUtilDataNodeSetByRef NodeMap_pa    NM,
LgIndex_t    Element,
LgIndex_t    Corner,
LgIndex_t    Node
 

Set the node index for a particular corner of a finite-element.

To use this function you must have already obtained the handle to the node map. Be sure to call TecUtilStateChanged after using this function.

Parameters:
NM  Handle to the connectiivty list (that is, the node map). Use TecUtilDataNodeGetRef or TecUtilZoneGetInfo to get a handle to the node map
Element  The element number (starts at 1)
Corner  The element corner (starts at 1).
Node  The new node index for that element at that corner
Fortran Syntax:

    SUBROUTINE TecUtilDataNodeSetByRef(
   &           NMPtr,
   &           Element,
   &           Corner,
   &           Node)
    POINTER         (NMPtr, NM)
    INTEGER*4       Element
    INTEGER*4       Corner
    INTEGER*4       Node

Set the first two nodes of the 43rd element of zone 5 to be 127 and 128 respectively:

   Set_pa altered_zones;
   NodeMap_pa nm;
   nm = TecUtilDataNodeGetRef(5);
   if ( nm )
     {
       TecUtilDataNodeSetByRef(nm, 43, 1, 127);
       TecUtilDataNodeSetByRef(nm, 43, 2, 128);
       / * inform Tecplot of node map change * /
       altered_zones = TecUtilSetAlloc(TRUE);
       TecUtilSetAddMember(altered_zones, 5);
       TecUtilStateChanged(StateChange_NodeMapsAltered,
                           (ArbParam_t)altered_zones);
       TecUtilSetDealloc(&altered_zones);
   }

void TecUtilDataNodeSetByZone EntIndex_t    Zone,
LgIndex_t    Element,
LgIndex_t    Corner,
LgIndex_t    Node
 

Set the node index for a particular corner of a finite-element.

This function does not require you to obtain the handle to the node map as does TecUtilDataNodeSetByRef, however, this function is not very efficient. Use TecUtilDataValueSetByRef if you are setting multiple nodes for the same zone. You do not need to call TecUtilStateChanged after calling this function as Tecplot does that for you.

Parameters:
Zone  Zone number.
Element  The element number (starts at 1).
Corner  The element corner (starts at 1).
Node  The new node index for that element at that corner.
Fortran Syntax:

    SUBROUTINE TecUtilDataNodeSetByZone(
   &           Zone,
   &           Element,
   &           Corner,
   &           Node)
    INTEGER*4       Zone
    INTEGER*4       Element
    INTEGER*4       Corner
    INTEGER*4       Node

Set the third node of the 43rd element of zone 5 to be 129:

   TecUtilDataNodeSetByRef(5, 43, 3, 129);

Boolean_t TecUtilDataSetAddJournalCommand const char *    AddOnIDString,
const char *    Instructions,
const char *    RawData
 

Adds a command to the data journal.

Parameters:
AddOnIDString  The ID string of the addon
Instructions  Command Instrunctions
RawData  Raw Data.
Returns:
Returns TRUE if successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetAddJournalCommand(
   &                   AddOnIDString,
   &                   Instructions,
   &                   RawData)
    CHARACTER*(*)   AddOnIDString
    CHARACTER*(*)   Instructions
    CHARACTER*(*)   RawData

Boolean_t TecUtilDataSetAddPostConvInstr const char *    AddOnIDString,
const char *    Instructions,
const char *    RawData
 

Deprecated:
See also:
TecUtilDataSetAddJournalCommand

Boolean_t TecUtilDataSetAddRawJournalCom const char *    Command
 

Adds a raw macro command to the data journal.

Parameters:
Command  The raw macro command to add to the journal.
Returns:
Returns TRUE if successful (i.e., the command is valid and could be attached to the journal), FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetAddRawJournalCom(Command)
    CHARACTER*(*) Command

Boolean_t TecUtilDataSetAddVar const char *    VarName,
FieldDataType_e   FieldDataType_Array
 

Add a variable to the current data set.

Call TecUtilStateChanged after adding a variable. This function is superceded by TecUtilDataSetAddVarX.

Parameters:
VarName  Name of the variable being added.
FieldDataType_Array  This is an array of the data types to use for each zone. If you pass NULL, the data types of the variables in variable 1 of the existing data set are used. The possible choices are: FieldDataType_Float FieldDataType_Double FieldDataType_LongInt FieldDataType_ShortInt FieldDataType_Byte FieldDataType_Bit
Returns:
Returns TRUE if the variable was added successfully, otherwise FALSE.
Add a variable to the current data set:

   if ( TecUtilDataSetAddVar("New Variable", NULL) )
     {
       / * New variable is always last variable. * /
       EntIndex_t newvar;
       TecUtilDataSetGetInfo(NULL, NULL, &newvar);
       / * Fill new var with values for all zones. * /
       .
       .
       .
       / * Inform Tecplot a variable has been added. * /
       TecUtilStateChanged(StateChange_VarsAdded,
                           (ArbParam_t)NULL);
     }

Boolean_t TecUtilDataSetAddVarX ArgList_pa    ArgList
 

Add a variable to the current data set.

Make sure and call TecUtilStateChanged after adding variables.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_NAME
Type: char *
Arg Function: TecUtilArgListAppendString
Default: ---
Required: Yes
Notes: Name of newly created variable.

SV_VARDATATYPE
Type: FieldDataType_e *
Arg Function: TecUtilArgListAppendArray
Default: NULL
Required: No
Notes: Array of FieldDataType_e where each member specifies type of data.

SV_VALUELOCATION
Type: ValueLocation_e *
Arg Function: TecUtilArgListAppendArray
Default: NULL
Required: No
Notes: Array of ValueLocation_e where each member specifies the data value location.

SV_SHAREVARWITHALLZONES
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: FALSE
Required: No
Notes: A boolean property that will make the variable applicable to all zones


Returns:
TRUE if the variable was added, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetAddVarX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

Add a variable called "newvar" to the dataset.

   ArgList_pa ArgList;
   FieldDataType_e *VarDataType;   / * dimension by zone * /
   ValueLocation_e *ValueLocation; / * dimension by zone * /
   
   TecUtilLockStart(AddOnID);
   
   ...
   
   / *
    * Allocate and populate VarDataType and ValueLocation
    * with the appropriate value for each zone.
    * /
   
   ...
   
   / * collect the function arguments * /
   ArgList = TecUtilArgListAlloc();
   TecUtilArgListAppendString(ArgList,
                              SV_NAME,
                              "newvar");
   TecUtilArgListAppendArray(ArgList,
                             SV_VARDATATYPE,
                             (void *)VarDataType);
   TecUtilArgListAppendArray(ArgList,
                             SV_VALUELOCATION,
                             (void *)ValueLocation);
   TecUtilArgListAppendInt(ArgList,
                           SV_SHAREVARWITHALLZONES,
                           FALSE);
   
   / * add the variable for each zone * /
   TecUtilDataSetAddVarX(ArgList);
   
   / * cleanup * /
   TecUtilArgListDealloc(&ArgList);
   
   / * Inform Tecplot that a variable was added * /
   
   VarsAdded = TecUtilSetAlloc(FALSE);
   if (VarsAdded)
     {
       EntIndex_t NumVars;
       TecUtilDataSetGetInfo((char **)NULL,
                             (EntIndex_t *)NULL,
                             &NumVars);
       TecUtilSetAddMamber(VarsAdded,NumVars,FALSE);
       TecUtilStateChanged(StateChange_VarsAdded,
                           (ArbParam_t)VarsAdded);
       TecUtilSetDealloc(&VarsAdded);
     }
   
   ...
   
   / * cleanup VarDataType and ValueLocation allocations * /
   
   TecUtilLockFinish(AddOnID);

Boolean_t TecUtilDataSetAddZone const char *    Name,
LgIndex_t    IMax,
LgIndex_t    JMax,
LgIndex_t    KMax,
ZoneType_e    ZoneType,
FieldDataType_e   VarDataType_Array
 

Add a zone to the data set attached to the current frame.

This function call does not load any data into the zone. In the case of finite-element zones, this function also does not assign values to the connectivity list. This function only allocates space for the zone. Call TecUtilStateChanged after adding a zone.

Parameters:
Name  Name of the zone.
IMax  I-Dimension of the zone if ordered. If the zone is finite-element then IMax is the number of data points.
JMax  J-Dimension of the zone if ordered. If the zone is finite-element then IMax is the number of data points, JMax is the number of elements, and KMax is not used
KMax  K-Dimension of the zone. If the zone is finite-element KMax is not used.
ZoneType  The possible values are: ZoneType_Ordered, ZoneType_FETriangle, ZoneType_FEQuad, ZoneType_FETetra or ZoneType_FEBrick
VarDataType_Array  This is an array of the data types to use for each variable. If you set this to NULL then the data types of the variables in zone 1 of the existing data set are used or FieldDataType_Float if this is the first zone. The possible values are: FieldDataType_Float, FieldDataType_Double, FieldDataType_LongInt, FieldDataType_ShortInt, FieldDataType_ByteFieldDataType_Bit.
Returns:
Returns TRUE if the zone was successfully added, otherwise FALSE.
Add a 10 by 10 by 10 zone to the current data set:

   if ( TecUtilDataSetAddZone("New Ordered Zone", 10, 10, 1,
                              ZoneType_Ordered, NULL) )
     {
       Set_pa zones_added = TecUtilSetAlloc(TRUE);
       / * new zone is always last zone * /
       EntIndex_t newzone;
       TecUtilDataSetGetInfo(NULL, &newzone, NULL);
       / * fill new zone with values for all variables * /
       .
       .
       .
       / * inform Tecplot of new zone * /
       TecUtilSetAddMember(zones_added, newzone, TRUE);
       TecUtilStateChanged(StateChange_ZonesAdded,
                           (ArbParam_t)zones_added);
       TecUtilSetDealloc(&zones_added);
     }

Boolean_t TecUtilDataSetAddZoneX ArgList_pa    ArgList
 

Add a zone to the current data set.

This function was extended from TecUtilDataSetAddZone() to allow addition of zones in locations where zombie zones currently exist in a data set. For a simpler interface use TecUtilDataSetAddZone() instead.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_NAME
Type: char *
Arg Function: TecUtilArgListAppendString
Default: ---
Required: Yes
Notes: The name of the zone to create

SV_ZONETYPE
Type: ZoneType_e
Arg Function: TecUtilArgListAppendInt
Default: ZoneType_Ordered
Required: No
Notes: The possible values are: ZoneType_Ordered, ZoneType_FETriangle, ZoneType_FEQuad, ZoneType_FETetra or ZoneType_FEBrick

SV_ZONE
Type: EntIndex_t
Arg Function: TecUtilArgListAppendInt
Default: NumZones+1
Required: No
Notes: function to replace a zone in a data set

SV_BUILDZONEOPTINFO
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: TRUE
Required: No
Notes: performance but has an upfront performance cost.

SV_IMAX
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 1
Required: No
Notes: Dimensions of the zone. If the zone is finite-element then IMax is the number of data points, JMax is the number of elements, and KMax is not used.

SV_JMAX
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 1
Required: No
Notes:

SV_KMAX
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 1
Required: No
Notes:

SV_VARDATATYPE
Type: FieldDataType_e *
Arg Function: TecUtilArgListAppendArray
Default: NULL
Required: No
Notes: *

SV_VARSHAREZONELIST
Type: EntIndex_t *
Arg Function: TecUtilArgListAppendArray
Default: NULL
Required: No
Notes: *

SV_DEFERVARCREATION
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: FALSE
Required: No
Notes: *

SV_CONNECTSHAREZONE
Type: EntIndex_t
Arg Function: TecUtilArgListAppendInt
Default: TECUTILBADZONENUMBER
Required: No
Notes: Number of the zone to use for sharing of connectivity information. If not supplied the connectivity will not be shared

SV_VALUELOCATION
Type: ValueLocation_e *
Arg Function: TecUtilArgListAppendArray
Default: NULL
Required: No
Notes: ValueLocation_Nodal

SV_FACENEIGHBORMODE
Type: FaceNeighborMode_e
Arg Function: TecUtilArgListAppendInt
Default: FaceNeighborMode_LocalOneToOne
Required: No
Notes: default is FaceNeighborMode_LocalOneToOne


Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetAddZoneX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

Add a 10 by 20 ordered zone as zone number 3.

   Arglist_pa ArgList;
   TecUtilLockStart(AddOnID);
   ArgList = TecUtilArgListAlloc();
   TecUtilArgListAppendString(ArgList, SV_NAME, "New Zone");
   TecUtilArgListAppendInt(ArgList, SV_ZONE, 3);
   TecUtilArgListAppendInt(ArgList, SV_ZONETYPE,
                           (ArbParam_t)ZoneType_Ordered);
   TecUtilArgListAppendInt(ArgList, SV_IMAX, 10);
   TecUtilArgListAppendInt(ArgList, SV_JMAX, 20);
   TecUtilDataSetAddZoneX(ArgList);
   TecUtilArgListDealloc(&ArgList);
   TecUtilLockFinish(AddOnID);

Boolean_t TecUtilDataSetCreate const char *    DataSetTitle,
StringList_pa    VarNames,
Boolean_t    ResetStyle
 

Create a new data set and attach it to the current frame.

This only allocates space for a data set specification. You must immediately begin to add zones to the data set by calling TecUtilDataSetAddZone after creating a data set.

Parameters:
DataSetTitle  Title for the data set.
VarNames  String list of variable names. See TecUtilStringListXXX functions for string list details
ResetStyle  Clears out all style information for the current frame before creating the data set. It is highly recommended that you always pass TRUE for this parameter.
Returns:
Returns TRUE if a data set could be allocated and attached.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetCreate(
   &                   DataSetTitle,
   &                   VarNamesPtr,
   &                   ResetStyle)
    CHARACTER*(*)   DataSetTitle
    POINTER         (VarNamesPtr, VarNames)
    INTEGER*4       ResetStyle

Create a data set with two variables:

   StringList_pa sl = TecUtilStringListAlloc();
   TecUtilStringListAppendString(sl,"V1");  / * first variable * /
   TecUtilStringListAppendString(sl,"V2");  / * second variable * /
   
   if ( TecUtilDataSetCreate("My Data Set",sl, TRUE));
      {
   
      / * Immediately call TecUtilDataSetAddZone() here * /
      }
   TecUtilStringListDealloc(&sl);

VarLoadMode_e TecUtilDataSetGetVarLoadMode void   
 

Get the variable load mode for the current data set.

Returns:
The variable load mode. Possible values are VarLoadMode_ByName and VarLoadMode_ByPosition.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetGetVarLoadMode()

Get the variable load mode for the current data set:

   VarLoadMode_e VarLoadMode;
   if ( TecUtilDataSetIsAvailable() )
     {
        VarLoadMode = TecUtilDataSetGetVarLoadMode();
       ...
     }

Boolean_t TecUtilDataSetIsLocked char **    LockString
 

Query to see of the data set attached to the current frame is locked.

Parameters:
LockString  Allocated return string telling you the identifier originally used to lock the data set. You must deallocate this string when you are through with it. You can pass NULL for this parameter if you do not need to know who locked the data set
Returns:
Returns TRUE if the data set is locked, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetIsLocked(
   &                   LockString,
   &                   LockStringLength)
    CHARACTER*(*)   LockString
    INTEGER*4       LockStringLength

Boolean_t TecUtilDataSetLockOff const char *    LockString
 

Unlock the data set attached to the current frame.

Parameters:
LockString  Unique string identifier originally used to lock the data set.
Returns:
Returns TRUE if the data set can be unlocked, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetLockOff(LockString)
    CHARACTER*(*) LockString

Boolean_t TecUtilDataSetLockOn const char *    LockString
 

Lock the data set attached to the current frame.

Parameters:
LockString  Unique string identifier originally used to lock the data set.
Returns:
Returns TRUE if the data set can be locked, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataSetLockOn(LockString)
    CHARACTER*(*) LockString

Lock the data set using the identifier "banana."

   Boolean_t IsBananaLocked = FALSE;
   if (!TecUtilLockIsOn((char **)NULL))
     {
       IsLocked = TecUtilDataSetLockOn("banana");
     }
   ...
   if (IsBananaLocked)
     TecUtilDataSetLockOff("banana");

void TecUtilDataSetSuspendMarking Boolean_t    DoSuspend
 

Stops Tecplot for altering or marking the loaded dataset.

Parameters:
DoSuspend  A TRUE value to suspend the marking of the dataset and a FALSE value to allow marking.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilDataSetSuspendMarking(DoSuspend)
    INTEGER*4 DoSuspend

Set the Marking property to be TRUE:

Boolean_t TecUtilDataValueAlloc EntIndex_t    Zone,
EntIndex_t    Var
 

Allocates the space needed for the variable.

The function is only applicable for defered variable creation. See TecUtilDataSetAddZoneX's SV_DEFERVARCREATION option for details.

Parameters:
Zone  The zone needing the variable allocated.
Var  The variable to be allocated.
Returns:
TRUE if the variable was sucessfully allocated, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataValueAlloc(
   &                   Zone,
   &                   Var)
    INTEGER*4       Zone
    INTEGER*4       Var

Allocate the first variable of zone 3. Note that this example is only valid if the zone was added with the deferred variable creation option set to true.

   IsOk = TecUtilDataValueAlloc(3, 1);

See also:
TecUtilDataSetAddZoneX

void TecUtilDataValueArraySetByRef FieldData_pa    DestFieldData,
LgIndex_t    DestOffset,
LgIndex_t    DestCount,
void *    SourceValueArray
 

Copies the specified number of values from the base of the source value array to the destination field data starting at the specified offset.

Note that the source value array must be of the same data type as the destination field data.

Parameters:
DestFieldData  Field data to receive the source values.
DestOffset  Member offset in the destination field data to begin assigning values.
DestCount  Number of values to assign to the destination field data.
SourceValueArray  An array containing the members to copy. The first member is assumed to be at the base of the array.

Boolean_t TecUtilDataValueBranchShared EntIndex_t    Zone,
EntIndex_t    Var
 

Branch off a shared variable.

The specified variable of the specified zone is branched so it is no longer shared with anything.

Parameters:
Zone  Zone in which the shared variable is located.
Var  Variable that will be branched
Returns:
TRUE if successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDataValueBranchShared(
   &                   Zone,
   &                   Var)
    INTEGER*4       Zone
    INTEGER*4       Var

Branch variable 2 in zone 1.

Boolean_t TecUtilDataValueCanMemMapData EntIndex_t    Zone,
EntIndex_t    Var,
MemMapOffset_t    Offset,
Boolean_t    IsNativeByteOrder
 

Indicates if Tecplot can map the requested variable to a file.

In order to map a Tecplot variable to a file certain requirements must be met. Some of them are checked by this function while others rely on Scout's honor.

The following conditions are checked by this function and must be true before a variable can be mapped to a file:

  • Memory mapped I/O must be enabled for Tecplot: $!FileConfig UseMemoryMappedIO = Yes
  • Offset must be word aligned.
  • The number of bytes needed for the variable must be larger than the mapping block size.
  • If the zone is ordered the variable must have a nodal value locatation.
  • Finite element data can be nodal or cell centered.
The add-on must ensure the following condition:
  • The entire data for the variable must be continguous.
  • The file is at least open for reading.
Parameters:
Zone  Zone to containing the varaible to map to the file.
Var  Variable to map to the file.
Offset  Offset of the start of the variable in the file.
IsNativeByteOrder  Indicates if the byte ordering of the data in the file maches the machine's native byte ordering.
Returns:
TRUE if the variable can be mapped to the file, FALSE otherwise.
See also:
TecUtilDataValueMemMapData.

Boolean_t TecUtilDataValueMemMapData EntIndex_t    Zone,
EntIndex_t    Var,
int    FileDescriptor,
MemMapOffset_t    Offset,
Boolean_t    IsNativeByteOrder
 

Maps the Tecplot variable to the file.

A call to TecUtilDataValueCanMemMapData must have preceded the call to this function to determine if the variable can be mapped. The file must at least be open for reading at the time of this call but does not need to remain open after the variable is mapped. However, it is the responsibility of the add-on to ensure that the file remains present and unaltered while Tecplot maintains a reference to this mapping as Tecplot uses the file as it's backing store for the data.

Parameters:
Zone  Zone to containing the varaible to map to the file.
Var  Variable to map to the file.
FileDescriptor  File descriptor to an open file containing the variable to map. The file must at least be open for reading at the time of this call but does not need to remain open after the variable is mapped.
Offset  Absolute offset to the start of the variable in the file.
IsNativeByteOrder  Indicates if the byte ordering of the data in the file maches the machine's native byte ordering.
Returns:
TRUE if the mapping was sucessful, FALSE otherwise.
See also:
TecUtilDataValueCanMemMapData.

void TecUtilDataValueSetByRef FieldData_pa    FD,
LgIndex_t    PointIndex,
double    Value
 

Assign a value to a field variable at a specific position.

If the zone referenced is IJ- or IJK-ordered, the position is calculated by treating the two- or three-dimensional array as a one-dimensional array. Be sure to call TecUtilStateChanged after changing field data in this way.

Parameters:
FD  Handle to the field data. Use TecUtilDataValueGetRef or TecUtilZoneGetInfo to get handles to field data
PointIndex  Position in the array of field data values. Position starts at one. For cell centered variables in ordered zones, the array includes values for IMax, JMax and KMax, even though these values are not used. You must account for these "ghost" cells in calculating the PointIndex. The formula for PointIndex in terms of I,J, and K is the same for both Nodal and cell centered variables.PointIndex = I + (J-1)*IMax + (K-1)*IMax*JMax;
Value  New value for the position in the field data
Fortran Syntax:

    SUBROUTINE TecUtilDataValueSetByRef(
   &           FDPtr,
   &           PointIndex,
   &           Value)
    POINTER         (FDPtr, FD)
    INTEGER*4       PointIndex
    REAL*8          Value

Set the first two values of the second variable of zone 5 to be 1.25 and 1.35 respectively:

   Set_pa altered_vars;
   FieldData_pa fd;
   fd = TecUtilDataValueGetRef(5, 2);
   if ( fd )
     {
       TecUtilDataValueSetByRef(fd, 1, 1.25);
       TecUtilDataValueSetByRef(fd, 2, 1.35);
   
       / * inform Tecplot of var value change * /
   
       altered_vars = TecUtilSetAlloc(TRUE);
   
       TecUtilSetAddMember(altered_vars, var);
       TecUtilStateChanged(StateChange_VarsAltered,
                           (ArbParam_t)altered_vars);
       TecUtilSetDealloc(&altered_vars);
     }

void TecUtilDataValueShare EntIndex_t    SourceZone,
EntIndex_t    DestZone,
EntIndex_t    Var
 

Sets the properties of the variable so that it is shared between source and destination zones (using the source for values).

Both zones must have the same structure (both Ordered with the same I,J, and K values; or both are finite-elements with the same element type and same number of nodes.

Parameters:
SourceZone  The zone number where the data values are based.
DestZone  The zone number where the data values will be shared from the source zone.
Var  The variable to be shared.
Fortran Syntax:

    SUBROUTINE TecUtilDataValueShare(
   &           SourceZone,
   &           DestZone,
   &           Var)
    INTEGER*4       SourceZone
    INTEGER*4       DestZone
    INTEGER*4       Var

Set the first variable of zone 3 to be shared with zone 2:

Boolean_t TecUtilDialogCheckPercentDone int    PercentDone
 

Set the current value of the Percent Done dialog and check to see if the user has clicked Cancel.

Note: This function cannot be called when Tecplot is running in batch mode.

Parameters:
PercentDone  Value to which Percent Done dialog is to be set. If the TecUtilDialogLaunchPercentDone call had ShowTheScale set to FALSE, then this parameter is ignored.
Returns:
Returns TRUE if the user has not clicked Cancel (that is, it is OK to continue processing). Returns FALSE if Cancel has been clicked.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDialogCheckPercentDone(PercentDone)
    INTEGER*4 PercentDone

Launch, check, and destroy Percent Done dialog.

   TecUtilDialogLaunchPercentDone("Calculate",TRUE);
    / * do some processing * /
   if (!TecUtilDialogCheckPercentDone(35))
   {
    / * user pressed cancel button * /
   }
   else
   {
    / * do some more processing * /
   }
   / * finished processing * /
   TecUtilDialogDropPercentDone();

void TecUtilDialogDropPercentDone void   
 

Drop the Percent Done dialog.

Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilDialogDropPercentDone()

void TecUtilDialogErrMsg const char *    Message
 

Launch a dialog with an error message.

Parameters:
Message  String containing the error message.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilDialogErrMsg(Message)
    CHARACTER*(*) Message

Display an error message:

   TecUtilDialogErrMsg("File not found.");

Boolean_t TecUtilDialogGetFileName SelectFileOption_e    DialogOption,
char **    FileName,
const char *    FileTypeName,
const char *    DefaultFileName,
const char *    DefaultFilter
 

Launch a dialog to prompt the user for a file name Note: This function cannot be called when Tecplot is running in batch mode.

Parameters:
DialogOption  Choose the mode of operation for the dialog. The possible values are:SelectFileOption_ReadSingleFile (allows you to read a file).SelectFileOption_WriteFile (allows you to bring up single file selection dialog to choose a file to write to).
FileName  Returns a string containing the name of the file selected. You must call TecUtilStringDealloc after using this parameter
FileTypeName  A string describing the file type. Example: "Text file." Must not be NULL.
DefaultFileName  The initial file name. May be NULL
DefaultFilter  The default filter (that is, extension). Example: "*.txt." May be NULL
Returns:
TRUE if a file name was successfully entered, FALSE otherwise. FALSE usually indicates that Cancel on the dialog was clicked.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDialogGetFileName(
   &                   DialogOption,
   &                   FileName,
   &                   FileNameLength,
   &                   FileTypeName,
   &                   DefaultFileName,
   &                   DefaultFilter)
    INTEGER*4       DialogOption
    CHARACTER*(*)   FileName
    INTEGER*4       FileNameLength
    CHARACTER*(*)   FileTypeName
    CHARACTER*(*)   DefaultFileName
    CHARACTER*(*)   DefaultFilter

Prompt the user for a single file to read:

   char *FileName = NULL; // should initialize to NULL
   
   if (TecUtilDialogGetFileName(SelectFileOption_ReadSingleFile,
    &FileName, "Text Files", "myfile.txt", "*.txt"))
      {
           .
           .
           .
           do something with FileName
           .
           .
           .
        // free Tecplot's copy
        TecUtilStringDealloc(&FileName);
      }

Boolean_t TecUtilDialogGetFileNames SelectFileOption_e    DialogOption,
StringList_pa   FileNames,
const char *    FileTypeName,
StringList_pa    DefaultFileNames,
const char *    DefaultFilter
 

Launch a dialog to prompt the user for one or more file names.

It is assumed that the files selected will be opened only for reading. Use TecUtilGetFileName to open a file for writing.

Note: This function cannot be called when Tecplot is running in batch mode.

Parameters:
DialogOption  Choose the mode of operation for the dialog. The possible values are:SelectFileOption_ReadMultiFile (brings up the multi-file section dialog).SelectFileOption_AllowMultiFileRead (brings up single file section to start with but includes a button the user can press to get a multi-file selection dialog)
FileNames  Returns a string containing the name of the file(s) selected. You must call TecUtilStringDealloc after using this parameter
FileTypeName  A string describing the file type. Example: "Text file." Must not be NULL.
DefaultFileNames  A string list containing the default file name(s). May be NULL.
DefaultFilter  The default filter (that is, extension). Example: "*.txt." May be NULL
Returns:
TRUE if a file name was successfully entered, FALSE otherwise. FALSE usually indicates that Cancel on the dialog was clicked.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDialogGetFileNames(
   &                   DialogOption,
   &                   FileNamesPtr,
   &                   FileTypeName,
   &                   DefaultFileNamesPtr,
   &                   DefaultFilter)
    INTEGER*4       DialogOption
    POINTER         (FileNamesPtr, FileNames)
    CHARACTER*(*)   FileTypeName
    POINTER         (DefaultFileNamesPtr, DefaultFileNames)
    CHARACTER*(*)   DefaultFilter

Prompt the user for one or more files to read:

   StringList_pa FileNames; = NULL;
   StringList_pa DefaultName = TecUtilStringListAlloc();
   
   TecUtilStringListAppendString(DefaultName,"myfile.txt");
   
   if (TecUtilDialogGetFileNames(SelectFileOption_ReadMultiFile,
                                 &FileNames,
                                 "Text Files",
                                 DefaultName,
                                 "*.txt"))
     {
       // get the first file name
       char *f = TecUtilStringListGetString(FileNames,1);
       .
       .
       .
       do something with FileNames 
       .
       .
       .
       TecUtilStringDealloc(&f); // and free Tecplot's copy
    
       TecUtilStringListDealloc(FileNames);// done with str list
     }
   
   TecUtilStringListDealloc(&DefaultName); // done with str list

Boolean_t TecUtilDialogGetFolderName const char *    Title,
char **    FolderName
 

Browse for a folder name.

Launch a dialog to prompt the user for a folder name

Parameters:
FolderName  Returns a string containing the name of the file selected. You must call TecUtilStringDealloc after using this parameter. You must initialize this parameter to NULL.
Title  Null-terminated string that is displayed above the tree view control in the dialog box. This string can be used to specify instructions to the user.
Returns:
TRUE if a folder name was successfully entered. FALSE if there was an error or if the user cancelled.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilDialogGetFolderName(
   &                   Title,
   &                   FolderName)
    CHARACTER*(*)   Title
    CHARACTER*(*)   FileName
 *

Prompt the user for a single folder to read:

   char *FolderName = NULL; // must initialize to NULL
   
   if (TecUtilDialogGetFolderName("Please select a folder",
                                     &FolderName)
      {
           .
           .
           .
           do something with FolderName
           .
           .
           .
        // free Tecplot's copy
        TecUtilStringDealloc(&FolderName);
      }

void TecUtilDialogLaunchPercentDone const char *    Label,
Boolean_t    ShowTheScale
 

Launch the Percent Done dialog.

Parameters:
Label  Text to describe the action about to be performed.
ShowTheScale  Set to TRUE if you want the scale to be used, otherwise set to FALSE
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilDialogLaunchPercentDone(
   &           Label,
   &           ShowTheScale)
    CHARACTER*(*)   Label
    INTEGER*4       ShowTheScale

void TecUtilDialogSetPercentDoneText const char *    Text
 

Update the text in the Percent Done dialog.

Parameters:
Text  Text to display in the percent done dialog.
Fortran Syntax:

    SUBROUTINE TecUtilDialogSetPercentDoneText(Text)
    CHARACTER*(*) Text

Update the text in the Percent Done dialog to say "Phase II."

void TecUtilDispatchWorkAreaEvent int    I,
int    J,
int    ButtonOrKey,
Event_e    Event,
Boolean_t    IsShifted,
Boolean_t    IsAlted,
Boolean_t    IsControlled
 

Send an event to the Tecplot event dispatcher.

This can be used to simulate a user action in the work area.

Parameters:
I  I-Location in the work area where the event occurs (in screen coordinates) with 0 being the left edge of the work area.
J  J-Location in the work area where the event occurs (in screen coordinates) with 0 being the top edge of the work area.
ButtonOrKey  The ButtonOrKey parameter assumes the following: If the event is a button press, then: ButtonOrKey = 1 ....... Mouse button 1. ButtonOrKey = 2 ....... Mouse button 2. If the event is a key press then: ButtonOrKey = 32 to 127 for ASCII characters on the keyboard.
Event  Event type. The possible values are: Event_ButtonPress, Event_ButtonRelease, Event_ButtonDoublePress, Event_Motion, Event_Drag or Event_KeyPress
IsShifted  Set to TRUE if Shift is held down
IsAlted  Set to TRUE if Alt is held down
IsControlled  Set to TRUE if Ctrl is held down.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilDispatchWorkAreaEvent(
   &           I,
   &           J,
   &           ButtonOrKey,
   &           Event,
   &           IsShifted,
   &           IsAlted,
   &           IsControlled)
    INTEGER*4       I
    INTEGER*4       J
    INTEGER*4       ButtonOrKey
    INTEGER*4       Event
    INTEGER*4       IsShifted
    INTEGER*4       IsAlted
    INTEGER*4       IsControlled

Simulate a mouse button one click.

void TecUtilDropOpeningBanner void   
 

Forces drop of opening banner.

If this function is not called, the opening banner will stay up until all addons are loaded.

Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilDropOpeningBanner()

Boolean_t TecUtilExtractInstallCallback ExtractDestination_pf    ExtractDestination,
const char *    InformationLineText
 

If the current frame is 2D or 3D, change the mouse mode to be the extract discrete points tool and instruct Tecplot to call a different function when the user completes an extract-like operation in the work area.

This function callback will remain in effect until the user changes mouse modes in the Tecplot interface.

Parameters:
ExtractDestination  Function to call when the extract event has been completed
InformationLineText  Text to write on the information line when the override is in effect
Returns:
TRUE if successfully installed.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilExtractInstallCallback(
   &                   ExtractDestination,
   &                   InformationLineText)
    POINTER         (ExtractDestinationPtr, ExtractDestination)
    CHARACTER*(*)   InformationLineText

Change the mouse mode to be the Extract Discrete Points tool and install an extract callback function.

   void MyExtractFunction(LgIndex_t NumPts,
                                  double   *XValues,
                                  double   *YValues)
   {
     / * do something * /
   }
   .
   .
   .
     / * elsewhere in the addon * /
     TecUtilExtractInstallCallback(MyExtractFunction,
                             "Status line info for my function");

Boolean_t TecUtilFileDownloadURL const char *    SourceURL,
const char *    LocalDestinationFile,
Boolean_t    IsAscii,
Boolean_t    ConfirmOverwrite
 

Download a file given a valid URL.

Parameters:
SourceURL  A string representing the URL for the file to download. Must be valid URL syntax
LocalDestinationFile  A string representing a local filename where the data is to be stored
IsAscii  Set to TRUE if the file is to be treated as an ASCII file during the download. Set to FALSE if it is to be treated as a Binary file during the download
ConfirmOverwrite  Set to TRUE if you want the user to be prompted with a message and options if LocalDestinationFile exists. The user can then choose to cancel the operation. If set to FALSE and LocalDestinationFile exists it will be overwritten with no warning
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilFileDownloadURL(
   &                   SourceURL,
   &                   LocalDestinationFile,
   &                   IsAscii,
   &                   ConfirmOverwrite)
    CHARACTER*(*)   SourceURL
    CHARACTER*(*)   LocalDestinationFile
    INTEGER*4       IsAscii
    INTEGER*4       ConfirmOverwrite

Boolean_t TecUtilFileIsURL const char *    URLFName
 

Convenience function that will determine if a supplied string uses valid URL syntax..

Parameters:
URLFName  A string containing the URL to test
Returns:
Returns TRUE if URL is valid, FALSE otherwise
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilFileIsURL(URLFName)
    CHARACTER*(*) URLFName

Boolean_t TecUtilFileUploadURL const char *    LocalSourceFile,
const char *    DestinationURL,
Boolean_t    IsAscii,
Boolean_t    ConfirmOverwrite
 

Upload a file given a valid URL.

Parameters:
LocalSourceFile  A string representing the local file to upload
DestinationURL  A string representing the remote filename where the data is to be stored. Must be valid URL syntax,
IsAscii  Set to TRUE if the file is to be treated as an ASCII file during the upload. Set to FALSE if it is to be treated as a Binary file during the upload
ConfirmOverwrite  Set to TRUE if you want the user to be prompted with a message and options if exists. The user can then choose to cancel the operation. If set to FALSE and DestinationURL exists it will be overwritten with no warning
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilFileUploadURL(
   &                   LocalSourceFile,
   &                   DestinationURL,
   &                   IsAscii,
   &                   ConfirmOverwrite)
    CHARACTER*(*)   LocalSourceFile
    CHARACTER*(*)   DestinationURL
    INTEGER*4       IsAscii
    INTEGER*4       ConfirmOverwrite

Geom_ID TecUtilGeom2DLineSegmentCreate CoordSys_e    PositionCoordSys,
double    X1,
double    Y1,
double    X2,
double    Y2
 

Create a 2-D line geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. The possible values are: CoordSys_Grid or CoordSys_Frame
X1  X-Coordinate for the starting position of the line.
Y1  Y-Coordinate for the starting position of the line.
X2  X-Coordinate for the ending position of the line.
Y2  Y-Coordinate for the ending position of the line.
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DLineSegmentCreate(
   &           PositionCoordSys,
   &           X1,
   &           Y1,
   &           X2,
   &           Y2,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         X1
    REAL*8         Y1
    REAL*8         X2
    REAL*8         Y2
    POINTER        (ResultPtr, Result)

Create a 2-D line geometry from (0.1, 0.2) to (0.5, 0.6):

Geom_ID TecUtilGeom2DMPolyCreate CoordSys_e    PositionCoordSys,
LgIndex_t    NumPolys,
LgIndex_t   NumPointsInPolylines_Array
 

Create a 2-D multi-polyline geometry.

After creating the 2-D multi-polyline geometry, you must assign values to the points in it with TecUtilGeom2DPolylineSetPoint or TecUtilGeom2DMPolySetPolyline. Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
PositionCoordSys  Coordinate System. The possible values are: CoordSys_Grid or CoordSys_Frame.
NumPolys  Number of polylines in the multi-polyline. Must be greater than zero
NumPointsInPolylines_Array  Array of points in each polyline. Each polyline must have at least two points
Returns:
The geometry ID of the 2-D multi polyline.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeom2DMPolyCreate(
   &                   PositionCoordSys,
   &                   NumPolys,
   &                   NumPointsInPolylines_Array)
    INTEGER*4       PositionCoordSys
    INTEGER*4       NumPolys
    INTEGER*4       NumPointsInPolylines_Array

Create a 2-D multi-polyline with two polylines. The first polyline has three points, the second has two:

   LgIndex_t pts_per_line[2] = { 3, Z }; / * two polylines * /
   double x_polyline_1 = { 0.0, 1.0, 2.0 }; / * three points * /
   double y_polyline_1 = { 0.0, 1.0, 0.0 };
   double x_polyline_2 = { 1.0, 2.0 }; / * two points * /
   double y_polyline_2 = { 1.0, 0.0 };
   Geom_ID g;
   
   g = TecUtilGeom2DMPolyCreate(CoordSys_Grid, Z, pts_per_line);
   TecUtilGeom2DMPolySetPolyline(g, 1, x_polyline_1, y_polyline_1);
   TecUtilGeom2DMPolySetPolyline(g, 2, x_polyline_2, y_polyline_2);

void TecUtilGeom2DMPolyGetPoint Geom_ID    GID,
LgIndex_t    PolyNum,
LgIndex_t    PointIndex,
double *    X,
double *    Y
 

Gets the 2-D (X,Y) value of point in a 2-D multi-polyline geometry.

Parameters:
GID  Geometry ID. This must be a 2-D multi-polyline geometry
PolyNum  Polyline number. Must be greater than or equal to one, and less than or equal to the number of polylines in the geometry
PointIndex  Index of the point in the polyline. Must be greater than or equal to one, and less than or equal to the number of points in the polyline
X  Receives the X-value of the point. Must not be NULL
Y  Receives the Y-value of the point. Must not be NULL
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DMPolyGetPoint(
   &           GID,
   &           PolyNum,
   &           PointIndex,
   &           X,
   &           Y)
    INTEGER*4       GID
    INTEGER*4       PolyNum
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y

Get the value of the tenth point in the second polyline of a 2-D multi-polyline geometry:

   double X,Y;
   extern Geom_ID g; / * assume this was allocated somewhere * /
   TecUtilGeom2DMPolyGetPoint(g,2,10,&X,&Y);

void TecUtilGeom2DMPolySetPoint Geom_ID    GID,
LgIndex_t    PolyNum,
LgIndex_t    PointIndex,
double    X,
double    Y
 

Set the 2-D (X,Y) value of point in a 2-D multi-polyline geometry.

Parameters:
GID  Geometry ID. This must be a 2-D multi-polyline geometry
PolyNum  Polyline number. Must be greater than or equal to one, and less than or equal to the number of polylines in the geometry
PointIndex  Index of the point in the polyline. Must be greater than or equal to one, and less than or equal to the number of points in the polyline
X  New X-value of the point
Y  New Y-value of the point
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DMPolySetPoint(
   &           GID,
   &           PolyNum,
   &           PointIndex,
   &           X,
   &           Y)
    INTEGER*4       GID
    INTEGER*4       PolyNum
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y

Set the value of the tenth point in the second polyline of a 2-D multi-polyline geometry:

   extern Geom_ID g; / * assume this was allocated somewhere * /
   TecUtilGeom2DMPolySetPoint(g,2,10,1.5,2.2);/ *set to (1.5,2.2)* /

void TecUtilGeom2DMPolySetPolyline Geom_ID    GID,
LgIndex_t    PolyNum,
double *    X_Array,
double *    Y_Array
 

Set the points for a polyline in a 2-D multi-polyline geometry.

Parameters:
GID  Geometry ID. This must be a 2-D multi-polyline geometry
PolyNum  Polyline number. Must be greater than or equal to one, and less than or equal to the number of polylines in the geometry
X_Array  Array of X-values. The number of X-values must be equal to the number of points in the polyline specified by PolyNum. Must not be NULL
Y_Array  Array of Y-values. The number of Y-values must be equal to the number of points in the polyline specified by PolyNum. Must not be NULL
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DMPolySetPolyline(
   &           GID,
   &           PolyNum,
   &           X_Array,
   &           Y_Array)
    INTEGER*4       GID
    INTEGER*4       PolyNum
    REAL*8          X_Array
    REAL*8          Y_Array

Geom_ID TecUtilGeom2DPolylineCreate CoordSys_e    PositionCoordSys,
double *    PtsX_Array,
double *    PtsY_Array,
LgIndex_t    NumPts
 

Create a 2-D polyline geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions. By default, the anchor position is set to (0, 0). All points are drawn relative to the anchor position. The anchor position can be changed using TecUtilGeomSetXYZAnchorPos.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. The possible values are: CoordSys_Grid or CoordSys_Frame
PtsX_Array  Array of X-coordinates of the polyline
PtsY_Array  Array of Y-coordinates of the polyline
NumPts  Number of points in the array (that is, number of points in the polyline). Must be at least two points
Returns:
If successfully created, then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DPolylineCreate(
   &           PositionCoordSys,
   &           PtsX_Array,
   &           PtsY_Array,
   &           NumPts,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         PtsX_Array
    REAL*8         PtsY_Array
    INTEGER*4      NumPts
    POINTER        (ResultPtr, Result)

Create a 2-D polyline with four points:

   double X[4] = {.2,.5,.6,.4}; / *x coords of the polyline* /
   double Y[4] = {.2,.5,.1,.7}; / *y coords of the polyline* /
   Geom_ID G;
   G = TecUtilGeom2DPolylineCreate(CoordSys_Grid,X,Y,4);

void TecUtilGeom2DPolylineGetPoint Geom_ID    GID,
LgIndex_t    PointIndex,
double *    X,
double *    Y
 

Get a point (X,Y) of a 2-D polyline.

Parameters:
GID  Geometry ID. This must be a 2-D multi-polyline geometry
PointIndex  Index of the point in the polyline. Must be greater than or equal to one, and less than or equal to the number of points in the polyline
X  Receives the X-value of the point. Must not be NULL
Y  Receives the Y-value of the point. Must not be NULL
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DPolylineGetPoint(
   &           GID,
   &           PointIndex,
   &           X,
   &           Y)
    INTEGER*4       GID
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y

Get the second point of a 2-D polyline geometry:

   double X,Y;
   extern Geom_ID g; / * allocated somewhere else * /
   TecUtilGeom2DPolylineGetPoint(g,2,&X,&Y);

void TecUtilGeom2DPolylineSetPoint Geom_ID    GID,
LgIndex_t    PointIndex,
double    X,
double    Y
 

Set a point (X,Y) of a 2-D polyline.

Parameters:
GID  Geometry ID. This must be a 2-D multi-polyline geometry
PointIndex  Index of the point to set. Must be greater than or equal to one, and less than or equal to the number of points in the polyline
X  The new X-value of the point
Y  The new Y-value of the point
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeom2DPolylineSetPoint(
   &           GID,
   &           PointIndex,
   &           X,
   &           Y)
    INTEGER*4       GID
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y

Set the second point of a 2-D polyline geometry:

   extern Geom_ID g; / * allocated somewhere else * /
   
   / * set to (1.1,2.5) * /
   TecUtilGeom2DPolylineSetPoint(g,2,1.1,2.5);

Geom_ID TecUtilGeom3DLineSegmentCreate double    X1,
double    Y1,
double    Z1,
double    X2,
double    Y2,
double    Z2
 

Create a 3-D line.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions. All coordinates are in grid coordinates.

Parameters:
X1  X-Coordinate for Starting position of the line.
Y1  Y-Coordinate for Starting position of the line.
Z1  Z-Coordinate for Starting position of the line.
X2  X-Coordinate for ending position of the line.
Y2  Y-Coordinate for ending position of the line.
Z2  Z-Coordinate for ending position of the line.
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DLineSegmentCreate(
   &           X1,
   &           Y1,
   &           Z1,
   &           X2,
   &           Y2,
   &           Z2,
   &           ResultPtr)
    REAL*8         X1
    REAL*8         Y1
    REAL*8         Z1
    REAL*8         X2
    REAL*8         Y2
    REAL*8         Z2
    POINTER        (ResultPtr, Result)

Create a 3-D line geometry from (0.1, 0.2, 0.2) to (0.5, 0.6, 0.1):

   Geom_ID G;
   G = TecUtilGeom3DLineSegmentCreate(.1,.2,.2,.5,.6,.1);

Geom_ID TecUtilGeom3DMPolyCreate LgIndex_t    NumPolys,
LgIndex_t   NumPointsInPolylines_Array
 

Create a 3-D multi-polyline geometry.

After creating the 3-D multi-polyline, you must assign values to the points in it with either TecUtilGeom3DMPolySetPoint or TecUtilGeom3DMPolySetPolyline. Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
NumPolys  Number of polylines in the 3-D multi-polyline. Must be greater than zero.
NumPointsInPolylines_Array  Array of points in each polyline. Each polyline must have at least two points.
Returns:
The geometry ID of the 3-D multi-polyline.
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DMPolyCreate(
   &           NumPolys,
   &           NumPointsInPolylines_Array,
   &           ResultPtr)
    INTEGER*4      NumPolys
    INTEGER*4      NumPointsInPolylines_Array
    POINTER        (ResultPtr, Result)

Create a 3-D multi-polyline with 2 polylines. The first polyline has three points, the second has two:

   LgIndex_t pts_per_line[2] = { 3, 2 }; / * two polylines * /
   double x_polyline_1 = { 0.0, 1.0, 2.0 }; / * three points * /
   double y_polyline_1 = { 0.0, 1.0, 0.0 };
   double z_polyline_1 = { 0.0, 0.5, 0.0 };
   double x_polyline_2 = { 1.0, 2.0 }; / * two points * /
   double y_polyline_2 = { 1.0, 0.0 };
   double z_polyline_2 = { 0.5, 0.5 };
   Geom_ID g;
   
   g = TecUtilGeom3DMPolyCreate(CoordSys_Grid, 2, pts_per_line);
   TecUtilGeom3DMPolySetPolyline(g, 1, x_polyline_1,
                                 y_polyline_1, z_polyline_1);
   TecUtilGeom3DMPolySetPolyline(g, 2, x_polyline_2,
                                 y_polyline_2, z_polyline_2);

void TecUtilGeom3DMPolyGetPoint Geom_ID    GID,
LgIndex_t    PolyNum,
LgIndex_t    PointIndex,
double *    X,
double *    Y,
double *    Z
 

Get the 3-D (X, Y, Z) value of point in a 3-D multi-polyline geometry.

Parameters:
GID  Geometry ID. This must be a 3-D multi-polyline geometry
PolyNum  Polyline number. Must be greater than or equal to one and less than or equal to the number of polylines in the geometry
PointIndex  Index of the point in the polyline. Must be greater than or equal to one and less than or equal to the number of points in the polyline
X  Receives the X-value of the point. Must not be NULL.
Y  Receives the Y-value of the point. Must not be NULL
Z  Receives the Z-value of the point. Must not be NULL
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DMPolyGetPoint(
   &           GID,
   &           PolyNum,
   &           PointIndex,
   &           X,
   &           Y,
   &           Z)
    INTEGER*4       GID
    INTEGER*4       PolyNum
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y
    REAL*8          Z

Get the value of the tenth point in the second 3-D polyline of a multi-polyline geometry:

   double X,Y,Z;
   extern Geom_ID g; / * assume this was allocated somewhere * /
   TecUtilGeom3DMPolyGetPoint(g,2,10,&X,&Y,&Z);

void TecUtilGeom3DMPolySetPoint Geom_ID    GID,
LgIndex_t    PolyNum,
LgIndex_t    PointIndex,
double    X,
double    Y,
double    Z
 

Set the 3-D (X, Y, Z) value of point in a 3-D multi-polyline geometry.

Parameters:
GID  Geometry ID. This must be a 3-D multi-polyline geometry
PolyNum  Polyline number. Must be greater than or equal to one and less than or equal to the number of polylines in the geometry
PointIndex  Index of the point in the polyline. Must be greater than or equal to one and less than or equal to the number of points in the polyline
X  New X-value of the point
Y  New Y-value of the point
Z  New Z-value of the point
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DMPolySetPoint(
   &           GID,
   &           PolyNum,
   &           PointIndex,
   &           X,
   &           Y,
   &           Z)
    INTEGER*4       GID
    INTEGER*4       PolyNum
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y
    REAL*8          Z

Set the value of the tenth point in the second polyline of a 3-D multi-polyline geometry:

   extern Geom_ID g; / * assume this was allocated somewhere * /
   / * set to (2.3,5.4,1.1) * /
   TecUtilGeom3DMPolySetPoint(g,2,10,2.3,5.4,1.1);

void TecUtilGeom3DMPolySetPolyline Geom_ID    GID,
LgIndex_t    PolyNum,
double *    X_Array,
double *    Y_Array,
double *    Z_Array
 

Set the points for a polyline in a 3-D multi-polyline geometry.

Parameters:
GID  Geometry ID. This must be a 3-D multi-polyline geometry
PolyNum  Polyline number. Must be greater than or equal to one and less than or equal to the number of polylines in the geometry
X_Array  Array of X-values. The number of X-values must be equal to the number of points in the polyline specified by PolyNum. Must not be NULL
Y_Array  Array of Y-values. The number of Y-values must be equal to the number of points in the polyline specified by PolyNum. Must not be NULL
Z_Array  Array of Z-values. The number of Z-values must be equal to the number of points in the polyline specified by PolyNum. Must not be NULL
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DMPolySetPolyline(
   &           GID,
   &           PolyNum,
   &           X_Array,
   &           Y_Array,
   &           Z_Array)
    INTEGER*4       GID
    INTEGER*4       PolyNum
    REAL*8          X_Array
    REAL*8          Y_Array
    REAL*8          Z_Array

Geom_ID TecUtilGeom3DPolylineCreate double *    PtsX_Array,
double *    PtsY_Array,
double *    PtsZ_Array,
LgIndex_t    NumPts
 

Create a 3-D polyline geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx function. By default, the anchor position is set to (0, 0). All points are drawn relative to the anchor position. The anchor position can be changed using TecUtilGeomSetXYZAnchorPos. All units are in grid coordinates.

Parameters:
PtsX_Array  Array of X-coordinates of the polyline.
PtsY_Array  Array of Y-coordinates of the polyline.
PtsZ_Array  Array of Z-coordinates of the polyline.
NumPts  Number of points in the array (that is, number of points in the polyline). Must be at least two points
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DPolylineCreate(
   &           PtsX_Array,
   &           PtsY_Array,
   &           PtsZ_Array,
   &           NumPts,
   &           ResultPtr)
    REAL*8         PtsX_Array
    REAL*8         PtsY_Array
    REAL*8         PtsZ_Array
    INTEGER*4      NumPts
    POINTER        (ResultPtr, Result)

Create a 3-D polyline with four points:

   double X[4] = {.2,.5,.6,.4}; / *x coords of the polyline* /
   double Y[4] = {.2,.5,.1,.7}; / *y coords of the polyline* /
   double Z[4] = {.1,.2,.3,.4}; / *z coords of the polyline* /
   Geom_ID G;
   G = TecUtilGeom3DPolylineCreate(X,Y,Z,4)

void TecUtilGeom3DPolylineGetPoint Geom_ID    GID,
LgIndex_t    PointIndex,
double *    X,
double *    Y,
double *    Z
 

Get a point (X, Y, Z) of a 3-D polyline.

Parameters:
GID  Geometry ID. This must be a 3-D multi-polyline geometry
PointIndex  Index of the point to get. Must be greater than or equal to one and less than or equal to the number of points in the polyline.
X  Receives the X-value of the point. Must not be NULL
Y  Receives the Y-value of the point. Must not be NULL
Z  Receives the Z-value of the point. Must not be NULL
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DPolylineGetPoint(
   &           GID,
   &           PointIndex,
   &           X,
   &           Y,
   &           Z)
    INTEGER*4       GID
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y
    REAL*8          Z

Get the second point of a 3-D polyline geometry:

   double X,Y,Z;
   extern Geom_ID g; / * allocated somewhere else * /
   TecUtilGeom3DPolylineGetPoint(g,2,&X,&Y,&Z);

void TecUtilGeom3DPolylineSetPoint Geom_ID    GID,
LgIndex_t    PointIndex,
double    X,
double    Y,
double    Z
 

Set a point (X, Y, Z) of a 3-D polyline.

Parameters:
GID  Geometry ID. This must be a 3-D multi-polyline geometry
PointIndex  Index of the point to set. Must be greater than or equal to one and less than or equal to the number of points in the polyline.
X  The new X-value of the point
Y  The new Y-value of the point
Z  The new Z-value of the point
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeom3DPolylineSetPoint(
   &           GID,
   &           PointIndex,
   &           X,
   &           Y,
   &           Z)
    INTEGER*4       GID
    INTEGER*4       PointIndex
    REAL*8          X
    REAL*8          Y
    REAL*8          Z

Set the second point of a 3-D polyline geometry:

   extern Geom_ID g; / * allocated somewhere else * /
   TecUtilGeom3DPolylineSetPoint(g,2,1.1,2.5,1.0);
   / * set to (1.1,2.5,1.0) * /

Geom_ID TecUtilGeomArcCreate CoordSys_e    PositionCoordSys,
double    CenterX,
double    CenterY,
double    Radius,
double    StartAngle,
double    EndAngle
 

Create a 2-D arc.

The arc is currently implemented as a 2-D polyline geometry, thus, the type of object returned is a 2-D polyline geometry object. Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. Valid values are CoordSys_Grid or CoordSys_Frame.
CenterX  X-Coordinate for the Center of the arc.
CenterY  Y-Coordinate for the Center of the arc.
Radius  Radius of the arc. Must be greater than zero
StartAngle  Starting angle of the arc in degrees. Must be between zero and 360. (The 2-D polyline that is created has on segment per degree of arc.)
EndAngle  Ending angle of the arc in degrees.
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeomArcCreate(
   &           PositionCoordSys,
   &           CenterX,
   &           CenterY,
   &           Radius,
   &           StartAngle,
   &           EndAngle,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         CenterX
    REAL*8         CenterY
    REAL*8         Radius
    REAL*8         StartAngle
    REAL*8         EndAngle
    POINTER        (ResultPtr, Result)

Create an arc of a circle of radius 0.5 centered at (0, 0) with an arc angle from 35 to 90 degrees (a 2-D polyline with 56 points, one point at each degree between 35 and 90):

   Geom_ID G;
   G = TecUtilGeomArcCreate(CoordSys_Grid, .3,.3,.5,35,90);

double TecUtilGeomArrowheadGetAngle Geom_ID    GID
 

Get the geometry arrowhead angle.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
Returns:
The arrowhead angle in degrees.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilGeomArrowheadGetAngle(GID)
    INTEGER*4 GID

ArrowheadAttachment_e TecUtilGeomArrowheadGetAttach Geom_ID    GID
 

Get the geometry arrowhead attachment.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
Returns:
The arrowhead attachment. The possible values are: ArrowheadAttach_None, ArrowheadAttach_AtBeginning, ArrowheadAttach_AtEnd, ArrowheadAttach_AtBothEnds.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomArrowheadGetAttach(GID)
    INTEGER*4 GID

double TecUtilGeomArrowheadGetSize Geom_ID    GID
 

Get the geometry arrowhead size.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
Returns:
The arrowhead size in frame units.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilGeomArrowheadGetSize(GID)
    INTEGER*4 GID

ArrowheadStyle_e TecUtilGeomArrowheadGetStyle Geom_ID    GID
 

Get the geometry arrowhead style.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
Returns:
The arrowhead style. The possible values are: Arrowhead_Plain, Arrowhead_Filled or Arrowhead_Hollow.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomArrowheadGetStyle(GID)
    INTEGER*4 GID

void TecUtilGeomArrowheadSetAngle Geom_ID    GID,
double    ArrowheadAngle
 

Set the arrowhead angle for a geometry.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
ArrowheadAngle  Angle for the arrowhead measured in degrees
Fortran Syntax:

    SUBROUTINE TecUtilGeomArrowheadSetAngle(
   &           GID,
   &           ArrowheadAngle)
    INTEGER*4       GID
    REAL*8          ArrowheadAngle

Create a line with a 15 degree arrowhead at the end:

void TecUtilGeomArrowheadSetAttach Geom_ID    GID,
ArrowheadAttachment_e    ArrowheadAttachment
 

Set the arrowhead attachment for a geometry.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
ArrowheadAttachment  The arrowhead attachment style. The possible values are: ArrowheadAttach_None ArrowheadAttach_AtBeginning ArrowheadAttach_AtEnd ArrowheadAttach_AtBothEnds
Fortran Syntax:

    SUBROUTINE TecUtilGeomArrowheadSetAttach(
   &           GID,
   &           ArrowheadAttachment)
    INTEGER*4       GID
    INTEGER*4       ArrowheadAttachment

Create a line with arrowheads at both ends:

void TecUtilGeomArrowheadSetSize Geom_ID    GID,
double    ArrowheadSize
 

Set the arrowhead size for a geometry.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
ArrowheadSize  The arrowhead size in frame units
Fortran Syntax:

    SUBROUTINE TecUtilGeomArrowheadSetSize(
   &           GID,
   &           ArrowheadSize)
    INTEGER*4       GID
    REAL*8          ArrowheadSize

Create a line with a ten percent (frame units) arrowhead at the end:

void TecUtilGeomArrowheadSetStyle Geom_ID    GID,
ArrowheadStyle_e    ArrowheadStyle
 

Set the arrowhead style for a geometry.

Parameters:
GID  ID of the geometry. This must be a polyline or a multi-polyline geometry
ArrowheadStyle  The arrowhead style. The possible values are: Arrowhead_Plain, Arrowhead_Filled or Arrowhead_Hollow.
Fortran Syntax:

    SUBROUTINE TecUtilGeomArrowheadSetStyle(
   &           GID,
   &           ArrowheadStyle)
    INTEGER*4       GID
    INTEGER*4       ArrowheadStyle

Create a line with a filled arrowhead at the end:

Geom_ID TecUtilGeomCircleCreate CoordSys_e    PositionCoordSys,
double    CenterX,
double    CenterY,
double    Radius
 

Create a circle geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions. To set the number of points used to draw the circle use TecUtilGeomEllipseSetNumPoints.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. The possible values are: CoordSys_Grid or CoordSys_Frame
CenterX  X-Coordinate for the center of the circle.
CenterY  Y-Coordinate for the center of the circle.
Radius  Radius of the circle. Must be non-zero
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeomCircleCreate(
   &           PositionCoordSys,
   &           CenterX,
   &           CenterY,
   &           Radius,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         CenterX
    REAL*8         CenterY
    REAL*8         Radius
    POINTER        (ResultPtr, Result)

Create a circle at 0.5, 0.5, with a radius of 0.2:

double TecUtilGeomCircleGetRadius Geom_ID    GID
 

Return the radius of a circle geometry.

Parameters:
GID  Geometry ID. This must be a circle geometry
Returns:
The radius of the circle.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilGeomCircleGetRadius(GID)
    INTEGER*4 GID

void TecUtilGeomCircleSetRadius Geom_ID    GID,
double    Radius
 

Set the radius of a circle geometry.

Parameters:
GID  Geometry ID. This must be a circle geometry
Radius  New radius of the circle. This must be non-zero
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomCircleSetRadius(
   &           GID,
   &           Radius)
    INTEGER*4       GID
    REAL*8          Radius

Set the radius of a circle to one:

   extern Geom_id g; / * must be a circle * /
   TecUtilGeomCircleSetRadius(g,1.0);

void TecUtilGeomDelete Geom_ID    GID
 

Deletes the specified geometry object.

Parameters:
GID  Handle to a geometry object
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeomDelete(GID)
    INTEGER*4 GID

Delete the first geometry object from the list of geometry objects maintained by the current frame.

   Geom_ID Geom;
   Geom = TecUtilGeomGetBase();
   if (Geom !=TECUTILBADID)
     {
       TecUtilGeomDelete(Geom);
     }

Geom_ID TecUtilGeomEllipseCreate CoordSys_e    PositionCoordSys,
double    CenterX,
double    CenterY,
double    HAxis,
double    VAxis
 

Create an ellipse geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. Valid values are CoordSys_Grid or CoordSys_Frame
CenterX  X-Coordinate for the center of the ellipse
CenterY  Y-Coordinate for the center of the ellipse
HAxis  Length of the horizontal axis. Must be non-zero
VAxis  Length of the vertical Axis. Must be non-zero
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeomEllipseCreate(
   &           PositionCoordSys,
   &           CenterX,
   &           CenterY,
   &           HAxis,
   &           VAxis,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         CenterX
    REAL*8         CenterY
    REAL*8         HAxis
    REAL*8         VAxis
    POINTER        (ResultPtr, Result)

Create an ellipse centered at 0.5, 0.5, with a horizontal axis of length 0.2 and a vertical axis of length 0.3:

SmInteger_t TecUtilGeomEllipseGetNumPoints Geom_ID    GID
 

Get the number of points used to draw a circle or ellipse geometry.

Parameters:
GID  ID of a geometry. This must be a circle or ellipse geometry
Returns:
The number of points used to draw the circle or geometry.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomEllipseGetNumPoints(GID)
    INTEGER*4 GID

void TecUtilGeomEllipseGetSize Geom_ID    GID,
double *    HAxis,
double *    VAxis
 

Get length of the axes of an ellipse.

Parameters:
GID  ID of a geometry. This must be an ellipse geometry
HAxis  Receives the length of the horizontal axis. Must not be NULL
VAxis  Receives the length of the vertical axis. Must not be NULL
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeomEllipseGetSize(
   &           GID,
   &           HAxis,
   &           VAxis)
    INTEGER*4       GID
    REAL*8          HAxis
    REAL*8          VAxis

Get the length of the axes of an ellipse:

   extern Geom_ID g; / * must be an ellipse * /
   double A,B;
   TecUtilGeomEllipseGetSize(g,&A,&B);

void TecUtilGeomEllipseSetNumPoints Geom_ID    GID,
SmInteger_t    NumEllipsePts
 

Set the number of points used to draw a circle or an ellipse geometry.

Parameters:
GID  GID of a geometry. This must be a circle or ellipse geometry
NumEllipsePts  The number of points use to draw the circle or ellipse. This must be at least three points
Fortran Syntax:

    SUBROUTINE TecUtilGeomEllipseSetNumPoints(
   &           GID,
   &           NumEllipsePts)
    INTEGER*4       GID
    INTEGER*4       NumEllipsePts

Create a circle approximated by only five points. (This will look like a pentagon.)

void TecUtilGeomEllipseSetSize Geom_ID    GID,
double    HAxis,
double    VAxis
 

Set the length of the axes of an ellipse.

Parameters:
GID  Geometry ID. The must be an ellipse geometry
HAxis  The length for the horizontal axis. This must be non-zero
VAxis  The length for the vertical axis. This must be non-zero
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomEllipseSetSize(
   &           GID,
   &           HAxis,
   &           VAxis)
    INTEGER*4       GID
    REAL*8          HAxis
    REAL*8          VAxis

Set the major and minor axes of an ellipse:

   extern Geom_ID g; / * must be an ellipse * /
   TecUtilGeomEllipseGetSize(g,2.0,1.0);

void TecUtilGeomGetAnchorPos Geom_ID    GID,
double *    XOrThetaPos,
double *    YOrRPos,
double *    ZPos
 

Gets the anchor postion of the specified geometry..

Parameters:
GID  Geometry ID. The must be an ellipse geometry
XOrThetaPos  The X or Theta axis position of the geometry anchor
YOrRPos  The Y or Radian axis position of the geometry anchor
ZPos  The Z axis position of the geometry anchor
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomGetAnchorPos(
   &           GID,
   &           XOrThetaPos,
   &           YOrRPos,
   &           ZPos)
    INTEGER*4       GID
    REAL*8          XOrThetaPos
    REAL*8          YOrRPos
    REAL*8          ZPos

Get the achor position of a newly created circle:

   double XPos, YPos, ZPos;
   
   Geom_ID Geom;
   Geom = TecUtilGeomCircleCreate(CoordSys_Grid,
     4.0, 3.0, 5.0);
   
   TecUtilGeomGetAnchorPos(Geom, &XPos, &YPos, &ZPos);

Clipping_e TecUtilGeomGetClipping Geom_ID    GID
 

Function will get the clipping properties of a geometry.

Parameters:
GID  ID of a geometry.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetClipping(GID)
    INTEGER*4 GID

Create a red circle and set the clipping to "ClipToFrame":

ColorIndex_t TecUtilGeomGetColor Geom_ID    GID
 

Get the geometry line color.

Parameters:
GID  ID of a geometry.
Returns:
The line color of the geometry. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, or CustomXX_C where XX ranges from 1 to 64.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetColor(GID)
    INTEGER*4 GID

DrawOrder_e TecUtilGeomGetDrawOrder Geom_ID    GID
 

Gets the draw order of a geometry.

Parameters:
GID  ID of a geometry.
Returns:
The draw order of the geometry. Returns either DrawOrder_BeforeData or DrawOrder_AfterData.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetDrawOrder(GID)
    INTEGER*4 GID

Get the draw order of a geometry:

ColorIndex_t TecUtilGeomGetFillColor Geom_ID    GID
 

Get the geometry fill color.

Use TecUtilGeomGetIsFilled to determine whether or not the geometry is filled with a color.

Parameters:
GID  ID of a geometry.
Returns:
The geometry fill color. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, or CustomXX_C where XX ranges from 1 to 64.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetFillColor(GID)
    INTEGER*4 GID

Boolean_t TecUtilGeomGetIsFilled Geom_ID    GID
 

Determine if a geometry if filled.

Parameters:
GID  ID of a geometry.
Returns:
TRUE if the geometry is filled, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetIsFilled(GID)
    INTEGER*4 GID

LinePattern_e TecUtilGeomGetLinePattern Geom_ID    GID
 

Get the line pattern of a geometry.

Parameters:
GID  ID of a geometry. This must be a circle or ellipse geometry
Returns:
The geometry line pattern. The possible values are: LinePattern_Solid, LinePattern_Dashed, LinePattern_DashDot, LinePattern_Dotted, LinePattern_LongDash, LinePattern_DashDotDot.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetLinePattern(GID)
    INTEGER*4 GID

double TecUtilGeomGetLineThickness Geom_ID    GID
 

Get the geometry line thickness.

Parameters:
GID  ID of a geometry.
Returns:
The geometry line thickness in frame units.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilGeomGetLineThickness(GID)
    INTEGER*4 GID

Boolean_t TecUtilGeomGetMacroFunctionCmd Geom_ID    GID,
char **    MacroFunctionCmd
 

Get the geometry macro function command.

Parameters:
GID  ID of a geometry.
MacroFunctionCmd  Character string containing the macro command. You must free this string using TecUtilStringDealloc when you are done with it
Returns:
Returns TRUE if space can be allocated for the command string, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetMacroFunctionCmd(
   &                   GID,
   &                   MacroFunctionCmd,
   &                   MacroFunctionCmdLength)
    INTEGER*4       GID
    CHARACTER*(*)   MacroFunctionCmd
    INTEGER*4       MacroFunctionCmdLength

Geom_ID TecUtilGeomGetNext Geom_ID    GID
 

Get the next geometry in the list of geometries attached to the current frame.

Parameters:
GID  ID of a geometry.
Returns:
Returns the ID of the next geometry or TECUTILBADID if there are no more geometries.
Fortran Syntax:

    SUBROUTINE TecUtilGeomGetNext(
   &           GIDPtr,
   &           ResultPtr)
    POINTER        (GIDPtr, GID)
    POINTER        (ResultPtr, Result)

Change all geometries in the current frame to be red:

double TecUtilGeomGetPatternLength Geom_ID    GID
 

Get the geometry line pattern length.

Parameters:
GID  ID of a geometry.
Returns:
The line pattern length in frame units.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilGeomGetPatternLength(GID)
    INTEGER*4 GID

CoordSys_e TecUtilGeomGetPositionCoordSys Geom_ID    GID
 

Get the geometry position coordinate system.

Parameters:
GID  ID of a geometry.
Returns:
The coordinate system. The possible values are: CoordSys_Grid3D or CoordSys_Frame.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetPositionCoordSys(GID)
    INTEGER*4 GID

Geom_ID TecUtilGeomGetPrev Geom_ID    GID
 

Get the previous geometry in the list of geometries attached to the current frame.

Parameters:
GID  ID of a geometry.
Returns:
Returns the ID of the previous geometry or TECUTILBADID if GID was the base geometry.
Fortran Syntax:

    SUBROUTINE TecUtilGeomGetPrev(
   &           GIDPtr,
   &           ResultPtr)
    POINTER        (GIDPtr, GID)
    POINTER        (ResultPtr, Result)

Create a circle with color of the previous circle:

   Geom_ID new_geom, prev_geom;
   new_geom = TecUtilGeomCircleCreate(CoordSys_Frame, 50., 50., 25.);
   prev_geom = TecUtilGeomGetPrev(new_geom);
   while ( prev_geom != TECUTILBADID &&
           TecUtilGeomGetType(prev_geom) != Geom_Circle )
     prev_geom = TecUtilGeomGetPrev(prev_geom);
   if ( prev_geom != TECUTILBADID )
     TecUtilGeomSetColor(new_geom,TecUtilGeomGetColor(prev_geom));

Scope_e TecUtilGeomGetScope Geom_ID    GID
 

Get the geometry scope.

Parameters:
GID  ID of a geometry.
Returns:
The geometry scope. The possible values are: Scope_Local (show in current frame only), Scope_Global (show in all frames with the same data set as the current frame).
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetScope(GID)
    INTEGER*4 GID

GeomForm_e TecUtilGeomGetType Geom_ID    GID
 

Get the geometry type.

Parameters:
GID  ID of a geometry.
Returns:
The geometry type. This can be one of: GeomType_LineSegs (includes 2-D and 3-D line, polyline and multi-polyline geometries), GeomType_Rectangle, GeomType_Square, GeomType_Circle, GeomType_Ellipse.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetType(GID)
    INTEGER*4 GID

void TecUtilGeomGetXYZAnchorPos Geom_ID    GID,
double *    XPos,
double *    YPos,
double *    ZPos
 

Deprecated:
See also:
TecUtilGeomGetAnchorPos

EntIndex_t TecUtilGeomGetZoneOrMap Geom_ID    GID
 

Get the zone or Line-mapping to which the geometry is attached.

Use TecUtilGeomIsAttached to determine whether or not the geometry is attached at all.

Parameters:
GID  ID of a geometry.
Returns:
The zone number or the Line-mapping number.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomGetZoneOrMap(GID)
    INTEGER*4 GID

See TecUtilGeomIsAttached for an example of using TecUtilGeomGetZoneOrMap.

Geom_ID TecUtilGeomImageCreate const char *    FName,
double    CornerXOrTheta,
double    CornerYOrR,
double    Size
 

Create an image geometry.

Use the ID obtained from this function to set geometry attributes such as position and coordinates system.

Parameters:
FName  Image file to attach. The format of this file must be Microsoft Windows Bitmap (*.bmp), JPEG (*.jpg or *.jpeg) or Portable Network Graphics (*.png)
CornerXOrTheta  X or Theta coordinate for the location to initially place the image (frame coordinates).
CornerYOrR  Y or Theta coordinate for the location to initially place the image (frame coordinates).
Size  The default size of the image. You may change the size later using TecUtilImageSetWidth() and TecUtilImageSetHeight().
Returns:
If successfully created, then the return is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned. If the return value is TECUTILBADID, then the most likely cause is the file does not exist.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageCreate(
   &           FName,
   &           CornerXOrTheta,
   &           CornerYOrR,
   &           Size,
   &           ResultPtr)
    CHARACTER*(*)  FName
    REAL*8         CornerXOrTheta
    REAL*8         CornerYOrR
    REAL*8         Size
    POINTER        (ResultPtr, Result)

Create an image geometry anchored at (0.1,0.1) with a size of 0.5, using the file "myimage.png":

   Geom_ID G;
   G = TecUtilGeomImageCreate("c:\\myimage.png",0.1,0.1,0.5);

void TecUtilGeomImageGetFileName Geom_ID    GID,
char **    FileName
 

Get the name of the file associated with an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
FileName  Receives the file name associated with this geometry. This is always an absolute path. Note: You must call TecUtilStringDealloc() to free this string when you are done with it
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageGetFileName(
   &           GID,
   &           FileName,
   &           FileNameLength)
    INTEGER*4       GID
    CHARACTER*(*)   FileName
    INTEGER*4       FileNameLength

Get the name of the file associated with a geometry.

   char *GeomFileName = NULL;
   GTecUtilGeomImageGetFileName(G, &GeomFileName);

ImageResizeFilter_e TecUtilGeomImageGetResizeFilter Geom_ID    GID
 

Get the name of the file associated with an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
Returns:
The resize filter of the indicated geometry. See ImageResizeFilter_e.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomImageGetResizeFilter(GID)
    INTEGER*4 GID

Get the resize filter of a geometry.

void TecUtilGeomImageGetSize Geom_ID    GID,
double *    Width,
double *    Height
 

Get the width and height of an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
Width  Receives the width of the specified image geometry.
Height  Receives the height of the specified image geometry.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageGetSize(
   &           GID,
   &           Width,
   &           Height)
    INTEGER*4       GID
    REAL*8          Width
    REAL*8          Height

Get the width and height of an image in an image geometry.

   double Width;
   double Height;
   TecUtilGeomImageGetFileName(GID, &Width, &Height);

Boolean_t TecUtilGeomImageGetUseRatio Geom_ID    GID
 

Queries the state of the "preserve aspect ratio" toggle for an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
Returns:
Returns TRUE if the "preserve aspect ratio" toggle for an image geometry, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomImageGetUseRatio(GID)
    INTEGER*4 GID

Get the state of the preserve aspect ration toggle in an image geometry:

   Boolean_t UsePreserveAspect = TecUtilGeomImageSetUseRatio(GID);

void TecUtilGeomImageResetAspectRatio Geom_ID    GID
 

Resets the aspect ratio after any changes have been made in the position of an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageResetAspectRatio(GID)
    INTEGER*4 GID

Reset the aspect ratio of an image geometry:

void TecUtilGeomImageSetHeight Geom_ID    GID,
double    Height
 

Sets the Height of an image geometry.

Note that the size of a geometry when it is displayed in a frame is not necessarily the size of the image in the file. The image will be resized to fit the dimension specified when calling this function.

Parameters:
GID  Geometry ID. Must be an image geometryGeometry ID. Must be an image geometry
Height  New height of the image, must be greater than 0.0
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageSetHeight(
   &           GID,
   &           Height)
    INTEGER*4       GID
    REAL*8          Height

Set the height of an image geometry to 5.0:

void TecUtilGeomImageSetResizeFilter Geom_ID    GID,
ImageResizeFilter_e    ResizeFilter
 

Sets the resize filter of an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
ResizeFilter  Resize filter. See ImageResizeFilter_e.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageSetResizeFilter(
   &           GID,
   &           ResizeFilter)
    INTEGER*4       GID
    INTEGER*4       ResizeFilter

Set the resize filter for an image geometry to Box:

void TecUtilGeomImageSetUseRatio Geom_ID    GID,
Boolean_t    MaintainAspectRatio
 

Queries the state of the "preserve aspect ratio" toggle for an image geometry.

Parameters:
GID  Geometry ID. Must be an image geometry
MaintainAspectRatio  TRUE to preserve the aspect ratio when drawing an image geometry
Returns:
TRUE if the "preserve aspect ratio" toggle is set, FALSE otherwise.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageSetUseRatio(
   &           GID,
   &           MaintainAspectRatio)
    INTEGER*4       GID
    INTEGER*4       MaintainAspectRatio

Set the state of the preserve aspect ration toggle in an image to TRUE:

void TecUtilGeomImageSetWidth Geom_ID    GID,
double    Width
 

Sets the width of an image geometry.

Note that the size of a geometry when it is displayed in a frame is not necessarily the size of the image in the file. The image will be resized to fit the dimensions specified when calling this function.

Parameters:
GID  Geometry ID. Must be an image geometry
Width  New width of the geometry. Must be greater than 0.0
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomImageSetWidth(
   &           GID,
   &           Width)
    INTEGER*4       GID
    REAL*8          Width

Set the width of an image geometry to 5.0:

Boolean_t TecUtilGeomIsAttached Geom_ID    GID
 

Determine whether or not a geometry is attached to a zone or Line-mapping.

Use TecUtilGeomGetZoneOrMap to get the zone or Line-mapping number to which the geometry is attached.

Parameters:
GID  Geometry ID. Must be an image geometry
Returns:
TRUE if the geometry is attached to a zone or Line-mapping, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomIsAttached(GID)
    INTEGER*4 GID

Determine the zone or Line-mapping that a geometry is attached to:

   extern Geom_ID g; / * created elsewhere * /
   EntIndex_t zone = 0;
   EntIndex_t LineMap = 0;
   if ( TecUtilFrameGetMode() == Frame_XY )
      LineMap = TecUtilGeomGetZoneOrMap(g);
   else if ( TecUtilFrameGetMode() != Frame_Sketch )
      zone = TecUtilGeomGetZoneOrMap(g);

Boolean_t TecUtilGeomIsValid Geom_ID    GID
 

Validate a geometry ID.

Parameters:
GID  Geometry ID.
Returns:
TRUE if GID is a valid geometry ID. FALSE if not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomIsValid(GID)
    INTEGER*4 GID

Determine if a geometry ID is still valid, and if it is valid, change its color to red:

   extern Geom_ID g; / * created elsewhere * /
   if ( TecUtilGeomIsValid(g) )
      TecUtilGeomSetColor(g, Red_C);

LgIndex_t TecUtilGeomMPolyGetPointCount Geom_ID    GID,
LgIndex_t    PolyNum
 

Get information about the number of points in a polyline of a multi-polyline geometry.

Parameters:
GID  Geometry ID. Must be a multi-polyline geometry
PolyNum  Polyline of the multi-polyline geometry (starts at one)
Returns:
The number of points in the polyline.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomMPolyGetPointCount(
   &                   GID,
   &                   PolyNum)
    INTEGER*4       GID
    INTEGER*4       PolyNum

To determine the number of points in the second polyline of a multi-polyline geometry:

   extern Geom_ID g; / *created elsewhere, must be a multi-polyline geometry* /
   LgIndex_t npts_2nd_polyline = TecUtilGeomMPolyGetPointCount(g, 2);

LgIndex_t TecUtilGeomMPolyGetPolylineCnt Geom_ID    GID
 

Get the number of polylines in a multi-polyline geometry.

Parameters:
GID  Geometry ID. Must be a multi-polyline geometry
Returns:
The number of polylines in a multi-polyline geometry.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomMPolyGetPolylineCnt(GID)
    INTEGER*4 GID

To determine the number of polylines in a multi-polyline geometry:

   extern Geom_ID g; / *created elsewhere, must be a multi-polyline geometry* /
   LgIndex_t npolylines = TecUtilGeomMPolyGetPolylineCnt(g, 2);

LgIndex_t TecUtilGeomPolyGetPointCount Geom_ID    GID
 

Get the number of points in a polyline geometry.

Parameters:
GID  Geometry ID. Must be a multi-polyline geometry
Returns:
The number of points in a polyline geometry.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomPolyGetPointCount(GID)
    INTEGER*4 GID

Geom_ID TecUtilGeomRectangleCreate CoordSys_e    PositionCoordSys,
double    CornerX,
double    CornerY,
double    Width,
double    Height
 

Create a rectangle geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. The possible values are: CoordSys_Grid or CoordSys_Frame
CornerX  X-Coordinate for rectangle anchor position (left side of the rectangle).
CornerY  Y-Coordinate for rectangle anchor position (top of the rectangle).
Width  Width the rectangle. Must be non-zero.
Height  Height of the rectangle. Must be non-zero.
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeomRectangleCreate(
   &           PositionCoordSys,
   &           CornerX,
   &           CornerY,
   &           Width,
   &           Height,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         CornerX
    REAL*8         CornerY
    REAL*8         Width
    REAL*8         Height
    POINTER        (ResultPtr, Result)

Create a rectangle anchored at (0.1, 0.1), with a width of 0.2 and a height of 0.3:

   Geom_ID G;
   G = TecUtilGeomRectangleCreate(.1,.1,0.2,0.3);

void TecUtilGeomRectangleGetSize Geom_ID    GID,
double *    Width,
double *    Height
 

Get the width and height of a rectangle geometry.

Parameters:
GID  Geometry ID. Must be a rectangle geometry
Width  Receives the width of the rectangle. Must not be NULL
Height  Receives the height of the rectangle. Must not be NULL
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilGeomRectangleGetSize(
   &           GID,
   &           Width,
   &           Height)
    INTEGER*4       GID
    REAL*8          Width
    REAL*8          Height

Get the width and height of a rectangle:

   double W,H;
   extern Geom_ID g; / * must be a rectangle * /
   TecUtilGeomRectangleGetSize(g,&W,&H);

void TecUtilGeomRectangleSetSize Geom_ID    GID,
double    Width,
double    Height
 

Set the width and height of a rectangle geometry.

Parameters:
GID  Geometry ID. Must be a rectangle geometry
Width  New width of the rectangle. Must be non-zero
Height  New height of the rectangle. Must be non-zero
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomRectangleSetSize(
   &           GID,
   &           Width,
   &           Height)
    INTEGER*4       GID
    REAL*8          Width
    REAL*8          Height

Set the width and height of a rectangle:

   extern Geom_ID g; / * must be a rectangle * /
   TecUtilGeomRectangleSetSize(g,4,1);

void TecUtilGeomSetAnchorPos Geom_ID    GID,
double    XPos,
double    YPos,
double    ZPos
 

Set the anchor position for a geometry.

For circles and ellipses, this is the center. For squares and rectangles, this is the base corner. For lines, this is the offset added to all points of the geometry.

Parameters:
GID  ID of a geometry
XPos  X-anchor position of geometry
YPos  Y-anchor position of geometry
ZPos  Z-anchor position of geometry (3-D geometries only)
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetAnchorPos(
   &           GID,
   &           XPos,
   &           YPos,
   &           ZPos)
    INTEGER*4       GID
    REAL*8          XPos
    REAL*8          YPos
    REAL*8          ZPos

Create a circle and then move it:

void TecUtilGeomSetAttached Geom_ID    GID,
Boolean_t    Attached
 

Set whether or not a geometry is attached to a zone or Line-mapping.

Use TecUtilGeom to set which zone or Line-mapping the geometry is attached to.

Parameters:
GID  Id of the geometry.
Attached  TRUE to attach the geometry to a zone or an Line-mapping.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetAttached(
   &           GID,
   &           Attached)
    INTEGER*4       GID
    INTEGER*4       Attached

Attach a geometry to zone or mapping 5:

   extern Geom_ID g; / * created elsewhere * /
   TecUtilGeomSetAttached(g, TRUE);
   TecUtilGeomSetZoneOrMap(g, 5);

void TecUtilGeomSetClipping Geom_ID    GID,
Clipping_e    Clipping
 

Set the clipping properties of a geometry.

Parameters:
GID  ID of the geometry
Clipping  New clipping property for the geometry. The possible values are: Clipping_ClipToViewport and Clipping_ClipToFrame
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetClipping(
   &           GID,
   &           Clipping)
    INTEGER*4       GID
    INTEGER*4       Clipping

Create a red circle and set the clipping to "ClipToFrame":

void TecUtilGeomSetColor Geom_ID    GID,
ColorIndex_t    Color
 

Set the line color of a geometry.

Parameters:
GID  ID of the geometry
Color  New line color for the geometry. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, or CustomXX_C where XX ranges from 1 to 64.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetColor(
   &           GID,
   &           Color)
    INTEGER*4       GID
    INTEGER*4       Color

Create a red circle:

void TecUtilGeomSetDrawOrder Geom_ID    GID,
DrawOrder_e    DrawOrder
 

Sets the draw order of a geometry.

Parameters:
GID  ID of the geometry
DrawOrder  Must be DrawOrder_BeforeData or DrawOrder_AfterData.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetDrawOrder(
   &           GID,
   &           DrawOrder)
    INTEGER*4       GID
    INTEGER*4       DrawOrder

void TecUtilGeomSetFillColor Geom_ID    GID,
ColorIndex_t    FillColor
 

Set the fill color of a geometry.

Use TecUtilGeomSetIsFilled to specify whether or not a geometry is filled with color.

Parameters:
GID  ID of the geometry
FillColor  New fill color for the geometry. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, or CustomXX_C where XX ranges from 1 to 64
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetFillColor(
   &           GID,
   &           FillColor)
    INTEGER*4       GID
    INTEGER*4       FillColor

Create a red circle filled with yellow:

void TecUtilGeomSetIsFilled Geom_ID    GID,
Boolean_t    IsFilled
 

Set whether or not a geometry is filled with a color.

Use TecUtilGeomSetFillColor to specify the actual color to fill the geometry with.

Parameters:
GID  ID of a geometry
IsFilled  TRUE to fill the geometry, FALSE to not fill.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetIsFilled(
   &           GID,
   &           IsFilled)
    INTEGER*4       GID
    INTEGER*4       IsFilled

void TecUtilGeomSetLinePattern Geom_ID    GID,
LinePattern_e    LinePattern
 

Set the line pattern for a geometry.

Parameters:
GID  ID of a geometry
LinePattern  Line pattern for the geometry. The possible values are LinePattern_Solid, LinePattern_Dashed, LinePattern_DashDot, LinePattern_Dotted, LinePattern_LongDash or LinePattern_DashDotDot
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetLinePattern(
   &           GID,
   &           LinePattern)
    INTEGER*4       GID
    INTEGER*4       LinePattern

Create a dotted circle:

void TecUtilGeomSetLineThickness Geom_ID    GID,
double    LineThickness
 

Set the line thickness for a geometry.

Parameters:
GID  ID of a geometry
LineThickness  Thickness of the lines in frame units
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetLineThickness(
   &           GID,
   &           LineThickness)
    INTEGER*4       GID
    REAL*8          LineThickness

Create a circle with five percent thick lines:

Boolean_t TecUtilGeomSetMacroFunctionCmd Geom_ID    GID,
const char *    Command
 

Set the macro function command for a geometry.

Parameters:
GID  ID of a geometry
Command  Macro function (and parameters) to be executed when the user holds down Ctrl and clicks the right mouse button on the geometry
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilGeomSetMacroFunctionCmd(
   &                   GID,
   &                   Command)
    INTEGER*4       GID
    CHARACTER*(*)   Command

Set a geometry so that macro function "PlotData" is called whenever the user holds down Ctrl and clicks the right mouse button on the geometry.

   extern Geom_ID g; / * created elsewhere * /
   TecUtilGeomSetMacroFunctionCmd(g, "PlotData");

void TecUtilGeomSetPatternLength Geom_ID    GID,
double    PatternLength
 

Set the line pattern length for a geometry.

Parameters:
GID  ID of a geometry
PatternLength  Length of the line pattern in frame units.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetPatternLength(
   &           GID,
   &           PatternLength)
    INTEGER*4       GID
    REAL*8          PatternLength

Create two concentric dashed circles of different line pattern lengths (two and ten percent):

void TecUtilGeomSetPositionCoordSys Geom_ID    GID,
CoordSys_e    CoordSys
 

Set the position coordinate system for a geometry.

This will convert all values in the geometry as well as the anchor position such that the geometry remains in the same position on the screen.

Parameters:
GID  ID of a geometry. This must not be a 3-D polyline.
CoordSys  Coordinate system for the position of the geometry. The possible values are: CoordSys_Frame or CoordSys_Grid
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetPositionCoordSys(
   &           GID,
   &           CoordSys)
    INTEGER*4       GID
    INTEGER*4       CoordSys

Create a 2-D line segment in frame coordinates and then convert those coordinates to grid coordinates. The geometry will be in the same location on the screen as its initial frame coordinates would indicate until the next time the view for that frame is changed.

void TecUtilGeomSetScope Geom_ID    GID,
Scope_e    Scope
 

Set the scope for a geometry.

Parameters:
GID  ID of a geometry
Scope  Scope of geometry. The possible values are:Scope_Local (Show in the current frame only).Scope_Global (Show in all frames with the same data set as the current frame).
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetScope(
   &           GID,
   &           Scope)
    INTEGER*4       GID
    INTEGER*4       Scope

void TecUtilGeomSetXYZAnchorPos Geom_ID    GID,
double    XPos,
double    YPos,
double    ZPos
 

Deprecated:
See also:
TecUtilGeomGetAnchorPos

void TecUtilGeomSetZoneOrMap Geom_ID    GID,
EntIndex_t    ZoneOrMap
 

Set the zone or Line-mapping attachment for a geometry.

Use TecUtilGeomSetAttached to specify whether or not the geometry is attached to a zone or Line-mapping.

Parameters:
GID  ID of a geometry
ZoneOrMap  Zone number or mapping number to which the geometry should be attached
Fortran Syntax:

    SUBROUTINE TecUtilGeomSetZoneOrMap(
   &           GID,
   &           ZoneOrMap)
    INTEGER*4       GID
    INTEGER*4       ZoneOrMap

Geom_ID TecUtilGeomSquareCreate CoordSys_e    PositionCoordSys,
double    CornerX,
double    CornerY,
double    Size
 

Create a square geometry.

Use the ID obtained from this function to set geometry attributes such as line style and color using the TecUtilGeomSetxxx functions.

Parameters:
PositionCoordSys  Coordinate system used to position the geometry. The possible values are: CoordSys_Grid or CoordSys_Frame
CornerX  X-Coordinate for Lower left corner of the square
CornerY  Y-Coordinate for Lower left corner of the square
Size  Width/height of the square. Must be non-zero
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this geometry. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSquareCreate(
   &           PositionCoordSys,
   &           CornerX,
   &           CornerY,
   &           Size,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         CornerX
    REAL*8         CornerY
    REAL*8         Size
    POINTER        (ResultPtr, Result)

Create a square of width 0.5 and anchored at (0.1, 0.1):

double TecUtilGeomSquareGetSize Geom_ID    GID
 

Get the size of a square geometry.

Parameters:
GID  Geometry ID. Must be a square geometry.
Returns:
The size of the square.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilGeomSquareGetSize(GID)
    INTEGER*4 GID

Get the size of a square geometry:

   extern Geom_ID g; / * must be a square * /
   double size = TecUtilGeomSquareGetSize(g);

void TecUtilGeomSquareSetSize Geom_ID    GID,
double    Size
 

Set the size of a square geometry.

Parameters:
GID  Geometry ID. Must be a square geometry.
Size  New size of the square. Must be non-zero.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilGeomSquareSetSize(
   &           GID,
   &           Size)
    INTEGER*4       GID
    REAL*8          Size

Set the size of a square to one:

   extern Geom_id g; / * must be a square * /
   TecUtilGeomSquareSetSize(g,1.0);

char* TecUtilGetCurLayoutFName void   
 

Get the current layout file name.

Returns:
The current layout file name including the path. You must call TecUtilStringDealloc on the returned string.
Fortran Syntax:

    SUBROUTINE TecUtilGetCurLayoutFName(
   &           Result,
   &           ResultLength)
    CHARACTER*(*)   Result
    INTEGER*4       ResultLength

void TecUtilHelp const char *    HelpFileOrURL,
Boolean_t    GoToID,
int    HelpID
 

Use either WinHelp or a browser to view help information.

WinHelp is only available under Windows unless you have access to the Bristol HyperHelp compiler for UNIX.

Parameters:
HelpFileOrURL  This represents either a WinHelp file or a valid URL for a browser.If HelpFileOrURL ends with .hlp then this is assumed to be a WinHelp file, and in Windows, the Windows help engine will be launched. In UNIX, HyperHelp will be launched. You can specify an absolute path, or just use the base name and Tecplot will prepend the path to the help subdirectory below the Tecplot home directory for you.If this parameter does not end in .hlp then this is assumed to be a local HTML file or a valid URL. If just a base file name is supplied, then file:/ and the help directory below the Tecplot home directory will be prepended for you. If http:/ or file:/ is not prepended, then file:/ will be prepended for you. Specifying crunch/index.html will launch the browser with file:/xxxxx/help/crunch/index.html where xxxxx is the Tecplot home directory.You must begin HelpFileOrURL with http:/ or www. if you wish to reference something on the web.In Windows a query is made to determine the currently registered browser. In UNIX you must specify the command to use to launch your browser. To specify the browser command, add the following to your tecplot.cfg file:This requires that Netscape is already up and running and is iconified. If Netscape is not up then use:$!Interface UnixBrowserLaunchCmd = "/opt/netscape/netscape 'OpenURL(@)'".
GoToID  Flag specifying whether or not to skip into the help file.This is only used if a WinHelp file is being loaded. Set to TRUE if you want to skip to the location in the help file identified by HelpID. If set to FALSE, then the index page appears first.
HelpID  Location to go to in the help file. This is only used if a WinHelp file is being loaded. If GotoID is TRUE, then set this to the marker number to skip to in the .hlp file.
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilHelp(
   &           HelpFileOrURL,
   &           GoToID,
   &           HelpID)
    CHARACTER*(*)   HelpFileOrURL
    INTEGER*4       GoToID
    INTEGER*4       HelpID

Use a browser to launch the help file myaddon.html from the help sub-directory below the Tecplot home directory:

   TecUtilHelp("myaddon.html",FALSE,0);

Boolean_t TecUtilImportAddConverter DataSetConverter_pf    ConverterCallback,
const char *    ConverterName,
const char *    FNameExtension
 

Register a data set converter with Tecplot.

This will add an option to the list of data imports accessed via the File/Import menu option. See Section 9.2, "Data Set Loaders," in the ADK User's Manual for a discussion of data set loaders.

Parameters:
ConverterCallback  Name of the function to call to convert data to the Tecplot binary format. See DataSetConverter_pf in Chapter 2.
ConverterName  Unique name given to the data set converter. This name is used in the list of importers in the dialog launched by choosing File/Import. If a layout file is created the $READDATASET macro command will also use this name to identify the converter to use.
FNameExtension  This is the file name extension used by files converted with this data set converter
Returns:
Returns TRUE if the data set converter is added.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilImportAddConverter(
   &                   ConverterCallback,
   &                   ConverterName,
   &                   FNameExtension)
    POINTER         (ConverterCallbackPtr, ConverterCallback)
    CHARACTER*(*)   ConverterName
    CHARACTER*(*)   FNameExtension

An addon is created that has the following data set converter function:

   Boolean_t  ConvertBananaData(char  *DataFName,
                                char  *TempBinFName,
                                char **MessageString);
   {
      Boolean_t IsOk = TRUE;
      / *
       * Code here to open DataFName,
       * read in the data and write out a binary
       * Tecplot datafile to TempBinFName using
       * calls to TecUtilTecxxx functions. If there is
       * a problem, call TecUtilStringAlloc on
       * MessageString, supply a message describing the
       * issue, and set ISOk to FALSE.
       * /
      return (IsOk);
   }
   The call to register the data set converter with Tecplot is then accomplished using the following:
   .
   .
       IsOk = TecUtilImportAddConverter(ConvertBananaData,
                                        "BANANA",
                                        "*.ban");

Boolean_t TecUtilImportAddLoader DataSetLoader_pf    LoaderCallback,
const char *    DataSetLoaderName,
DynamicMenuCallback_pf    LoaderSelectedCallback,
DataSetLoaderInstructionOverride_pf    InstructionOverrideCallback
 

Register a data set loader with Tecplot.

This will add an option to the list of data imports accessed via the File/Import menu option. Data set loaders are more complex than data set converters, but provide you with greater flexibility in terms of the graphical user interface and how the data can be retrieved. See Section 9.2, "Data Set Loaders," in the ADK User's Manual for a discussion of data set loaders.

Parameters:
LoaderCallback  Name of the function to call to load non-Tecplot format data into Tecplot. The data set loader itself calls this function when a request is made to load non-Tecplot format data in via the user interface. Tecplot also calls this function when processing a $!READDATASET macro command that identifies this loader. See DynamicMenuCallback_pf in Chapter 2.
DataSetLoaderName  Unique name given to the DataSet Loader. This name is used in the list of importers in the dialog launched by choosing File/Import. If a layout file is created, the $READDATASET macro command will also use this name to identify the loader to use.
LoaderSelectedCallback  Name of the function that is called when the user selects this data set loader from the list of importers in the File/Import dialog. This function typically will launch a custom dialog to prompt the user to identify the data to be loaded
InstructionOverrideCallback  Name of the function to call when the user chooses to override the data source for a given data set when a layout file is being read in. If set to NULL then Tecplot will issue an error message stating that this operation is not available.If provided, this function typically will launch a dialog that shows the user what the current settings are to load the data and provide a means by which the user can alter these instructions. The Instructions stringlist is updated according to changes made by the user and the new information is then used to load the data.The instruction override function you provide will have the following syntax:
Returns:
Returns TRUE if the data set loader is added.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilImportAddLoader(
   &                   LoaderCallback,
   &                   DataSetLoaderName,
   &                   LoaderSelectedCallback,
   &                   InstructionOverrideCallback)
    POINTER         (LoaderCallbackPtr, LoaderCallback)
    CHARACTER*(*)   DataSetLoaderName
    POINTER         (LoaderSelectedCallbackPtr, LoaderSelectedCallback)
    POINTER         (InstructionOverrideCallbackPtr, InstructionOverrideCallback)

An addon is created that has the following data set loader function:

   Boolean_t LoadBananaData (StringList_pa Instructions)
   {
     Boolean_t IsOk = TRUE;
     / *
      * Add code to scan through instructions
      * and load the data.  When done, inform
      * Tecplot about the instructions used to
      * load the data.
      * /
      if (IsOk)
        TecUtilImportSetLoaderInstr("BANANA", Instructions);
      return (IsOk);
   }
   
   A function is also created to handle user requests to use the loader from the File/Import dialog:
   
     void BananaLoaderDialog (void)
     {
      / *
       * Launch a custom dialog to prompt the
       * user to identify the data to be loaded.
       * /
     }
   A function is also created to handle user requests to modify the instructions.  This function is optional.
     Boolean_t OverrideBananaInstructions
              (StringList_pa Instructions)
     {
        Boolean_t IsOk = TRUE;
        / *
         * Code here to view the current instructions and present
         * an interface to the user to change them.
         * /
         return (IsOk);
     }
   The call to register the data set loader with Tecplot is then accomplished using the following:
      .
      .
      IsOk = TecUtilImportAddLoader(LoadBananaData,
                                    "BANANA",
                                    BananaLoaderDialog,
                                    OverrideBananaInstructions);

Boolean_t TecUtilImportSetLoaderInstr const char *    DataSetLoaderName,
StringList_pa    Instructions
 

Inform Tecplot about the instructions used to load the current data set.

It is assumed that the current data set was loaded via a data set loader. The current frame must have an attached data set when this function is used.

Parameters:
DataSetLoaderName  Unique loader name. This same name must be used in TecUtilImportAddLoader
Instructions  Instructions used to load the current data set
Returns:
Returns TRUE if the instructions were successfully loaded.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilImportSetLoaderInstr(
   &                   DataSetLoaderName,
   &                   InstructionsPtr)
    CHARACTER*(*)   DataSetLoaderName
    POINTER         (InstructionsPtr, Instructions)

void TecUtilImportWriteLoaderInstr const char *    DataSetLoaderName,
StringList_pa    Instructions
 

Writes a $!READDATASET macro command to the macro file if macro recording is on.

Note: Since TecUtilImportSetLoaderInstr will automatically call this function, you normally do not need to call this function. If you are writing a loader that does not use an instruction string (that is, does not call TecUtilImportSetLoaderInstr ), then you should call this function before displaying your data.

Parameters:
DataSetLoaderName  Unique loader name. This same name must be used when calling TecUtilImportAddLoader
Instructions  Instructions used to load the current data set. If you are not calling TecUtilImportSetLoaderInstr, then typically this would be the filename which was used to load your data.
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilImportWriteLoaderInstr(
   &           DataSetLoaderName,
   &           InstructionsPtr)
    CHARACTER*(*)   DataSetLoaderName
    POINTER         (InstructionsPtr, Instructions)

Set up an instruction containing a filename and write a $!READDATASET macro command to the current macro file:

   StringList_pa Instructs = TecUtilStringListAlloc();
   TecUtilStringListAppendString(Instructs, "myfile.dat");
   TecUtilImportWriteLoaderInstr("BANANA", Instructs);
   TecUtilStringListDealloc(&Instructs);

void TecUtilInterrupt void   
 

Interrupt Tecplot execution.

This is mainly for use with addons which use timers.

Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilInterrupt()

The function NewDataIsReady is assumed to be called when a timer goes off and some new data is ready to be read into Tecplot. OldDataIsNotDoneDrawingYet is a boolean which is TRUE if the previous data is still being drawn in Tecplot's workspace. Interrupt Tecplot if the new data is ready before the old data is finished redrawing.

   extern Boolean_t OldDataIsNotDoneDrawingYet;
   void NewDataIsReady (void)
   {
     if (OldDataIsNotDoneDrawingYet)
       TecUtilInterrupt();
     / *  Load the new data into Tecplot and redraw  * /
   }

void TecUtilLockFinish AddOn_pa    AddOn
 

Unlock Tecplot.

Call only after you have first called TecUtilLockStart. See Chapter 10, "Locking and Unlocking Tecplot," in the ADK User's Manual for more information on locks in Tecplot.

Parameters:
AddOn  The addon id from which the function is called
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilLockFinish(AddOnPtr)
    POINTER (AddOnPtr, AddOn)

char* TecUtilLockGetCurrentOwnerName void   
 

Queries for and returns the name of the object currently locking Tecplot.

Returns:
Character string containing the name of the lock owner. You must free this string using TecUtilStringDealloc when finished.
Fortran Syntax:

    SUBROUTINE TecUtilLockGetCurrentOwnerName(
   &           Result,
   &           ResultLength)
    CHARACTER*(*)   Result
    INTEGER*4       ResultLength

char *Name = NULL;

   name = TecUtilLockGetCurrentOwnerName(void);
   if (Name)
     {
      TecUtilStringDealloc(&Name);
     }

void TecUtilLockOff void   
 

Lock Tecplot.

For every call to TecUtilLockOff, you must have a matching call to TecUtilLockOn. However, both these functions have been replaced by TecUtilLockStart and TecUtilLockFinish. The only time in which these depricated functions should be used is in the InitTecAddon function when an AddonID has not yet been created. See Chapter 10, "Locking and Unlocking Tecplot," in the ADK User's Manual for more information on locks in Tecplot.

See also:
TecUtilLockFinish
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilLockOff()

void TecUtilLockOn void   
 

Lock Tecplot.

For every call to TecUtilLockOn, you must have a matching call to TecUtilLockOff. However, both these functions have been replaced by and TecUtilLockFinish. The only time in which these depricated functions should be used is in the InitTecAddon function when an AddonID has not yet been created. See Chapter 10, "Locking and Unlocking Tecplot," in the ADK User's Manual for more information on locks in Tecplot.

See also:
TecUtilLockStart
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilLockOn()

void TecUtilLockStart AddOn_pa    AddOn
 

Lock Tecplot.

For every call to TecUtilLockStart, you must have a matching call to TecUtilLockFinish. See Chapter 10, "Locking and Unlocking Tecplot," in the ADK User's Manual for more information on locks in Tecplot.

Parameters:
AddOn  The addon id from which the function is called
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilLockStart(AddOnPtr)
    POINTER (AddOnPtr, AddOn)

Boolean_t TecUtilMacroAddCommandCallback const char *    AddOnIDString,
MacroCommandAddOnCallback_pf    MacroCommandCallback
 

Include a function in the list of functions to call when the $!ADDONCOMMAND macro command is processed.

This in effect allows you to extend Tecplot's macro language so that commands needed to perform operations in your addon can be included in a Tecplot macro.

Parameters:
AddOnIDString  A unique string used to determine the function to call when an $!ADDONCOMMAND macro command is processed. Each addon should have its own unique ID string. For example, if a file converter addon responsible for converting DXF files for Tecplot defines an ID string of "DXFCONVERTTOOL-1.2" then this same ID string must be used in the calls to TecUtilMacroRecordAddOnCommand and TecUtilMacroAddCommandCallback
MacroCommandCallback  Name of the function to call when the $!ADDONCOMMAND macro command is processed. The callback function you provide will have the following syntax:.
Returns:
Returns TRUE if callback has been added. Returns FALSE if the AddOnIDString is invalid or if there is not enough room to allocate space for an additional callback (highly unlikely).
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMacroAddCommandCallback(
   &                   AddOnIDString,
   &                   MacroCommandCallback)
    CHARACTER*(*)   AddOnIDString
    POINTER         (MacroCommandCallbackPtr, MacroCommandCallback)

The following example shows how an addon can augment the Tecplot macro language with the commands "GO" and "STOP." First create a function that will be called by Tecplot when a "GO" or "STOP" command is encountered in a macro file.

   Boolean_t ProcessBananaCommands(char *Command,
                                   char **ErrMsg)
   {
     Boolean_t IsOk = TRUE;
     if (strcmp(Command,"GO") == 0)
       {
         / * code here to execute a GO command * /
       }
     else if (strcmp(Command, "STOP") == 0)
       {
         / * code here to execute a STOP command * /
       }
    else
       {
         *ErrMsg = TecUtilStringAlloc(80, "Error message string");
         sprintf(*ErrMsg, "Unknown BANANA command");
         IsOk = FALSE;
       }
     return IsOk;
   }
   In the initialization code for your addon, register the function with:
     .
     .
     TecUtilMacroAddCommandCallback("BANANA",
                                    ProcessBananaCommands);
     .
     .

Boolean_t TecUtilMacroExecuteCommand const char *    Command
 

Instruct Tecplot to execute a single macro command.

The macro command is supplied as a string. Currently this command is restricted as follows: · Only commands that do not require raw data are accepted. · Command must be all on one line-no newlines. See the Tecplot Reference Manual for details about Tecplot's macro language.

Parameters:
Command  Macro command. This must not be NULL
Returns:
TRUE if Command executed successfully, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMacroExecuteCommand(Command)
    CHARACTER*(*) Command

Execute a macro command to animate the I-planes:

   TecUtilMacroExecuteCommand("$!ANIMATEIJKPLANES PLANES = I");

Boolean_t TecUtilMacroRecordAddOnCommand const char *    AddOnIDString,
const char *    Command
 

Instruct Tecplot to record a macro command for your addon to the macro file which is currently being recorded.

Parameters:
AddOnIDString  Unique string to identify command as belonging to a particular add-on. Use TecUtilMacroAddCommandCallback to install a callback function for a particular add-on
Command  Character string containing the command. This command must be one that your addon understands since it will be passed to the function you register with TecUtilMacroAddCommandCallback
Returns:
TRUE if successful. FALSE if an I/O error occurs while writing the command to a file.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMacroRecordAddOnCommand(
   &                   AddOnIDString,
   &                   Command)
    CHARACTER*(*)   AddOnIDString
    CHARACTER*(*)   Command

Boolean_t TecUtilMacroRecordAddOnComRaw const char *    AddOnIDString,
const char *    Command,
const char *    RawData
 

Instruct Tecplot to record an addon macro command, that includes raw data, to the macro file.

Parameters:
AddOnIDString  Unique string to identify command as belonging to a particular add-on. Use TecUtilMacroAddCommandCallback to install a callback function for a particular add-on.
Command  Character string containing the command. This command must be one that your addon understands since it will be passed to the function you register with TecUtilMacroAddCommandCallback.
RawData  Character string containing the raw data. This text will follow a RAWDATA marker in the macro file. Use of newlines to organize the raw data in a readable fashion is encouraged. The RawData section cannot contain the $! since the $! marks the start of a Tecplot macro command. The # may be used in the raw data, however all text following the # up to the following newline will be discarded when the macro is processed. When the $!ADDONCOMMAND is later processed by Tecplot the text in the RAWDATA section will be concatenated to the command string (including a newline (\n) to separate the command from the raw data.
Returns:
TRUE if successful; FALSE if an I/O error occurs while writing the command to a file.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMacroRecordAddOnComRaw(
   &                   AddOnIDString,
   &                   Command,
   &                   RawData)
    CHARACTER*(*)   AddOnIDString
    CHARACTER*(*)   Command
    CHARACTER*(*)   RawData

Record an addon command that has the text "3.7 9.4" in the RAWDATA section:

   If (TecUtilMacroIsRecordingActive())
      {
         TecUtilMacroRecordAddOnComRaw("MYADDON",
                                       "LOADXY",
                                       "3.7 9.4");
      }

Boolean_t TecUtilMacroRecordRawCommand const char *    Command
 

Send anything you want to the Tecplot record file.

Parameters:
Command  Character string to write to the record file. You can send anything you want
Returns:
TRUE if successful; FALSE if an I/O error occurs while writing the command to a file.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMacroRecordRawCommand(Command)
    CHARACTER*(*) Command

Record commands that will cause Tecplot to loop to animate 3 zones when the macro is played back:

   if (TecUtilMacroIsRecordingActive())
     {
       TecUtilMacroRecordRawCommand("$!Loop 3\n"
                                    "$!ActiveFieldZones[|Loop|]\n"
                                    "$!Redraw\n"
                                    "$!EndLoop\n");

Boolean_t TecUtilMacroSetMacroVar const char *    MacroVar,
const char *    ValueString
 

Set the value for a macro variable.

Any macro executed after this call may then reference the value using |macrovar|.

Parameters:
MacroVar  Name of the macro variable you want to assign a value.
ValueString  Value to assign to MacroVar. Must be a valid string of length greater than zero
Returns:
TRUE if the MacroVar is a valid variable name and memory could be allocated to store ValueString, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMacroSetMacroVar(
   &                   MacroVar,
   &                   ValueString)
    CHARACTER*(*)   MacroVar
    CHARACTER*(*)   ValueString

Assign a file name to the macro variable FNAME, then use it in a Tecplot macro:

   IsOk = TecUtilMacroSetMacroVar("FName","/home/george/test.dat");
   ....
   In a later macro you can reference |FName|:
   $!ReadDataSet "|FName|"

Boolean_t TecUtilMenuAddOption const char *    MenuPath,
const char *    MenuLabel,
char    Mnemonic,
DynamicMenuCallback_pf    MenuOptionCallback
 

Create a menu button to add to a menu option in Tecplot.

Instruct Tecplot on the name of the function to call when this menu option is selected.

Parameters:
MenuPath  This is used to specify where you want your menu option placed in Tecplot's menu structure. You cannot put menu options in the File, View, or Plot menus unless you first call TecUtilMenuClearAll. Use the newline character ('
') to create options in sub-menu. Each sub-menus may have a mnemonic specified by putting a '&' in front of the desired letter. The mnemonic is used only if the sub-menu does not already exist, and thus is created by this call. (A mnemonic is a keyboard short-cut to access the menu.)
MenuLabel  Text to put on the menu option
Mnemonic  Character to underline in MenuLabel. Use '\0' if you don't want a mnemonic
MenuOptionCallback  Function you create which will be called when the new menu option is selected. See DynamicMenuCallback_pf in chapter 2.
Returns:
Returns TRUE if the menu option was successfully installed.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMenuAddOption(
   &                   MenuPath,
   &                   MenuLabel,
   &                   Mnemonic,
   &                   MenuOptionCallback)
    CHARACTER*(*)   MenuPath
    CHARACTER*(*)   MenuLabel
    CHARACTER*(*)   Mnemonic
    POINTER         (MenuOptionCallbackPtr, MenuOptionCallback)

Add an option to the Tools menu in Tecplot called "Banana." When selected, have Tecplot call the function BananaCallback.

First create the BananaCallback function:

   void BananaCallback(void)
   {
      // code executed when "Banana" is selected in the
      // "Tools" menu.
   }

In the initialization code for the addon add:

    IsOk = TecUtilMenuAddOption("Tools",
                                "Banana",
                                'B',
                                BananaCallback);

To put the menu item in a sub-menu of Tools called "Fruit" use:

   IsOk = TecUtilMenuAddOption("Tools\n&Fruit", "Banana", 'B', BananaCallback);

The sub-menu "Fruit" of "Tools" will be created if necessary, and if it is created, it will be given a mnemonic of 'F'.

Boolean_t TecUtilMenuAddSeparator const char *    MenuPath
 

Adds menu separator to the end of the specified parent menu.

Parameters:
MenuPath  Specify the path to where the separator should be placed.
Returns:
Returns TRUE if the menu separator was successfully added, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMenuAddSeparator(MenuPath)
    CHARACTER*(*) MenuPath

void TecUtilMenuClearAll void   
 

Remove all menus, submenus, and menu items from the Tecplot menu bar.

This will clear menu items added by other add-ons, making those add-ons inaccessible. The add-on containing this call should either be the only add-on loaded into Tecplot, or it should be loaded into Tecplot first and it should clear the menus during initialization before the other add-ons are loaded.

Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilMenuClearAll()

To wipe out Tecplot's standard menu and replace it with a single option called "Banana" which is located under a menu called "Go":

   TecUtilMenuClearAll():
   IsOk = TecUtilMenuAddOption("&Go", "Banana", `B', BananaCallBack);

Boolean_t TecUtilMenuSetSensitivity const char *    MenuPath,
const char *    MenuLabel,
Boolean_t    IsSensitive
 

Set the sensitivity of a menu option.

This function is currently not implemented. Do not use.

MouseButtonMode_e TecUtilMouseGetCurrentMode void   
 

Get the current mouse mode.

Returns:
Returns the current mode (See MouseButtonMode_e in GLOBAL.h)
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMouseGetCurrentMode()

Boolean_t TecUtilMouseIsValidMode MouseButtonMode_e    MouseMode
 

This function will tell you if the specified mouse mode is valid for the current state of Tecplot.

Parameters:
MouseMode  Mouse mode to check.
Returns:
Returns TRUE if the specified mode is appropriate, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMouseIsValidMode(MouseMode)
    INTEGER*4 MouseMode

Boolean_t TecUtilMouseSetMode MouseButtonMode_e    MouseMode
 

Sets Tecplot's mouse mode to the one specified.

This service request behaves exactly as if the user had selected the mouse mode via Tecplot's user interface.

Parameters:
MouseMode  Desired mouse mode.
Returns:
TRUE if the requested mouse mode was set otherwise FALSE
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilMouseSetMode(MouseMode)
    INTEGER*4 MouseMode

Boolean_t TecUtilOnIdleQueueAddCallback OnIdleCallback_pf    Callback,
ArbParam_t    ClientData
 

Adds the function to a list of functions that Tecplot calls only one time when Tecplot is in an idle state.

This is particularly important for any addon that needs to perform potentially disruptive Tecplot operations (such as modifying data) in response to a particular state change. It is important for an addon to set a local flag when it registers the callback (and check that the flag is not set before registering) and clears the flag after the registered callback is called by Tecplot so that only one on-idle callback is registered to handle the pending operations.

Parameters:
Callback  Function to be called only one time when Tecplot becomes idle (and is not locked). After the call the function is removed from the queue. No attempt is made to ensure only one instance of Callback is registered so it is up to the addon to keep track of registration (see the use of the PendingMyUpdateFuncOnIdle variable in the example illustrated below).The on-idle callback may have any name but must be delared as follows:void OnIdleCallback(ArbParam_t ClientData);
ClientData  This can be any 32-bit value and will be passed to the on-idle callback when the on idle callback is invoked. Typically this is a pointer to a structure needed by the callback function
Returns:
TRUE if the callback was successfully added, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilOnIdleQueueAddCallback(
   &                   Callback,
   &                   ClientDataPtr)
    POINTER         (CallbackPtr, Callback)
    POINTER         (ClientDataPtr, ClientData)

Clear the current layout.

   // Make sure only one on-idle function is registered at a time.
   static Boolean_t PendingMyUpdateFuncOnIdle = FALSE;
   
   static void MyUpdateFuncOnIdle(ArbParam_t ClientData)
   {
     // ... do some potentially disruptive work in Tecplot 
   
     // clear the flag so we can register another update if needed
     PendingMyUpdateFuncOnIdle = FALSE;
   }
   
   // A state change monitor usually used to update dialogs and
   // other addon state when Tecplot (or another addon) changes
   // the Tecplot's current state
   
   void MyStateChangeMonitor(StateChange_e StateChange,
                             ArbParam_t    CallData)
   {
     if (StateChange == StateChange_VarsAltered)
       {
         // Addon needs to do something that is disruptive so we
         // need to register an on-idle callback to do the work
         // when Tecplot is idle.
   
         // if one is not already registered ...
         if (!PendingMyUpdateFuncOnIdle)
           {
             // keep track of our registration 
             PendingMyUpdateFuncOnIdle = TRUE;
             // Queue the callback
             TecUtilOnIdleQueueAddCallback(MyUpdateFuncOnIdle,
                                           (ArbParam_t)MyData);
           }
       }
   }

Boolean_t TecUtilPickGeom Geom_ID    GID
 

Add the specified geometry to the pick list.

See Section 17.4, "The Pick List," in the ADK User's Manual for a discussion of pick lists.

Parameters:
GID  Geometry ID to pick
Returns:
TRUE if successful. A return value of FALSE usually indicates that Tecplot's limit on the number of picked objects has been exceeded.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilPickGeom(GID)
    INTEGER*4 GID

Pick the first geometry in the current frame:

   Geom_ID gid;
   gid = TecUtilGeomGetBase();
   if (gid ! = NULL)
      TecUtilPickGeom(gid);

Boolean_t TecUtilPickText Text_ID    TID
 

Add the specified text to the pick list.

See the ADK User's Manual for a discussion of pick lists.

Parameters:
TID  Text ID to pick
Returns:
TRUE if successful. A return value of FALSE usually indicates that Tecplot's limit on the number of picked objects has been exceeded.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilPickText(TID)
    INTEGER*4 TID

Pick the first text in the current frame.

   Text_ID tid;
   tid = TecUtilTextGetBase();
   if (tid ! = NULL)
      TecUtilPickText(tid);

void TecUtilPleaseWait const char *    WaitMessage,
Boolean_t    DoWait
 

Shows or hides the wait cursor and optionally displayes a wait message.

This function can be used to display an hourglass cursor and optional message during non-cancellable proceedures. (If you need a cancel button and/or progress indicator, then you must use TecUtilDialogLaunchPercentDone/TecUtilDialogDropPercentDone rather than this function.)

Parameters:
WaitMessage  Status message to be shown. The previous status message will be restored when the status is popped. If WaitMessage is NULL then "Working..." is placed on the status line
DoWait  Use TRUE at the start of a wait, FALSE at the end (calls must balance).
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilPleaseWait(
   &           WaitMessage,
   &           DoWait)
    CHARACTER*(*)   WaitMessage
    INTEGER*4       DoWait

Show a wait message for a lengthy operation:

   {
     TecUtilLockStart(AddOnID);
     TecUtilPleaseWait("Computing the first 1,000,000 digits of PI",TRUE);
     ComputePI(1000000); / * This may take awhile on a slow machine * /
     TecUtilPleaseWait(NULL,FALSE); / * Pop the wait cursor and * /
          / * restore it to its previous state * /
     TecUtilDialogMessageBox("Finished computing PI",
                              MessageBox_Information);
     TecUtilLockFinish(AddOnID);
   }

void TecUtilProbeAllowCOBs void   
 

Instructs Tecplot to include COBs (iso-surfaces, slices, streamtraces, and so forth) along with zones during a probe when an addon has a callback registered with TecUtilProbeInstallCallback and if the user is pressing the Alt key.

By default the Alt key is ignored for an addon's installed probe callback.

Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilProbeAllowCOBs()

LgIndex_t TecUtilProbeFieldGetCell void   
 

Call this function from a probe destination callback to get the cell from the previous probe event in a field plot.

In order to use this function, the value passed to the probe destination callback must have been FALSE, indicating an interpolated probe.

Returns:
The index of the cell which was probed. For ordered data, this is equivalent to the index value of the node in the lowest indexed corner of the cell. For finite-element data, this is the element number.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeFieldGetCell()

CZType_e TecUtilProbeFieldGetCZType void   
 

Indicates type type of COB or zone that was selected during the probe event.

Returns:
Type of COB selected by the probe. This can be one of seven values: CZType_FieldDataZone CZType_FEBoundaryCOB CZType_IsoSurfaceCOB CZType_SliceCOB CZType_StreamtraceCOB CZType_StreamtraceMarkerCOB CZType_StreamtraceArrowheadCOB.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeFieldGetCZType()

LgIndex_t TecUtilProbeFieldGetFaceCell void   
 

Call this function from a probe destination callback to get the cell from the previous probe event in a field plot.

In order to use this function, the value passed to the probe destination callback must have been FALSE, indicating an interpolated probe.

Returns:
The index of the cell which was probed. For ordered data, this is equivalent to the index value of the node in the lowest indexed corner of the cell. For finite-element data, this is the element number.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeFieldGetFaceCell()

IJKPlanes_e TecUtilProbeFieldGetPlane void   
 

Call this function from a probe destination callback to get the I-, J-, or K-plane from the previous probe event in a field plot.

Returns:
The plane which was probed. This can be one of Planes_I, Planes_J, or Planes_K.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeFieldGetPlane()

double TecUtilProbeFieldGetValue EntIndex_t    VarNum
 

Call this function from a probe destination callback to get a field variable value from the previous probe event in a field plot.

Parameters:
VarNum  The variable number for which to get the field value.
Returns:
The value for variable VarNum at the previous probe data point.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilProbeFieldGetValue(VarNum)
    INTEGER*4 VarNum

EntIndex_t TecUtilProbeFieldGetZone void   
 

Call this function from a probe destination callback to get the zone number from the previous probe event in a field plot.

Returns:
The number of the zone which was probed.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeFieldGetZone()

LgIndex_t TecUtilProbeGetPointIndex void   
 

Call this function from a probe destination callback to get the point index from the previous nearest-point probe event in a field plot or an XY-plot.

In order to use this function, the value passed to the probe destination callback must have been TRUE, indicating a nearest-point probe.

Returns:
The index of the data point selected in the previous nearest point probe.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeGetPointIndex()

Boolean_t TecUtilProbeInstallCallback ProbeDestination_pf    ProbeDestination,
const char *    InformationLineText
 

If the current frame mode is XY, 2D, or 3D, change the mouse mode to be the probe tool and instruct Tecplot to call a different function when the user completes a probe-like operation in the work area.

This function callback will remain in effect until the mouse mode is changed in the Tecplot interface.

Parameters:
ProbeDestination  Function to call when the probe event takes place. See ProbeDestination_pf in Chapter 2.
InformationLineText  Text to write on the status line when the override is in effect.
Returns:
TRUE if successfully installed.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeInstallCallback(
   &                   ProbeDestination,
   &                   InformationLineText)
    POINTER         (ProbeDestinationPtr, ProbeDestination)
    CHARACTER*(*)   InformationLineText

Override the behavior of the probe tool in Tecplot. When a probe occurs, just print out the results of the probe to simulate some of the capabilities of the probe dialogs in Tecplot. The task is to provide a mechanism whereby your own probe callback overrides the default behavior when a probe event occurs in Tecplot. One way to do this is to add an option to the Tools menu in Tecplot. The callback function assigned to the menu option would then turn around and install the probe callback with the following code: .

   .
   TecUtilProbeInstallCallback(MyProbeCallback,
                       "Click to print out my probe information");
   .
   TecUtilProbeAllowCOBs()
   .
   
   The function MyProbeCallback is then defined as:
   void MyProbeCallback(Boolean_t IsNearestPoint)
   {
     FrameMode_e FrameMode;
     TecUtilLockStart(AddOnID);
     FrameMode = TecUtilFrameGetMode();
   
     if (FrameMode == Frame_XY)
       {
         printf("XY Probe, Independent value is: %G\n",
                TecUtilProbeLinePlotGetIndValue());
         if (IsNearestPoint)
           {
             double DepValue;
             TecUtilProbeXYGetDepValue(1,&DepValue);
             printf("Nearest Point:  Dependent Value = %G\n",
                    DepValue);
             printf("                Source LineMap    = %d\n",
                    TecUtilProbeLinePlotGetMap());
             printf("                Point Index     = %d\n",
                    TecUtilProbeGetPointIndex());
           }
         else
           {
             EntIndex_t M;
             for (M = 1; M <= TecUtilLineMapGetCount(); M++)
               {
                 double DepValue;
                 printf("LineMap = %02d, Dependent Value = ",M);
                 if (TecUtilProbeLinePlotGetDepValue(M,&DepValue))
                   printf("%G\n",DepValue);
                 else
                   printf("Unknown\n");
               }
           }
       }
     else
       {
         EntIndex_t  SourceZone = TecUtilProbeFieldGetZone();
         ZoneType_e  ZoneType   = TecUtilZoneGetType(SourceZone);
         IJKPlanes_e Plane      = TecUtilProbeFieldGetPlane();
         EntIndex_t  V;
         EntIndex_t  NumVars;
   
         TecUtilDataSetGetInfo((char **)NULL,
                               (EntIndex_t *)NULL,
                               &NumVars);
   
         if (IsNearestPoint)
           printf("Nearest point probe:\n");
         else
          {
            LgIndex_t ProbeCell = TecUtilProbeFieldGetCell();
            printf("Interpolated  probe:(Cell = %d)\n",ProbeCell);
          }
   
         for (V = 1; V <= NumVars; V++)
           {
             char *VName;
             if (TecUtilVarGetName(V,&VName))
               {
                 printf("%20s : ",VName);
                 TecUtilStringDealloc(&VName);
               }
             else
               printf("<Unknown>            : ");
             printf("%G\n",TecUtilProbeFieldGetValue(V));
           }
       }
     TecUtilLockFinish(AddOnID);
   }
   A complete example can be found in the probtest sample addon included in the distribution.

Boolean_t TecUtilProbeLinePlotGetDepValue EntIndex_t    MapNum,
double *    DepValue
 

Call this function from a probe destination callback to get a dependent value from the previous probe event in an Line-plot.

Parameters:
MapNum  Number of the Line-map to query for its dependent value at the previous probe.
DepValue  Dependent value resulting from previous probe.Note: This parameter is ignored if the previous probe was a nearest-point probe
Returns:
TRUE if the dependent value for the selected Line-map number is valid, otherwise FALSE. A dependent value can be invalid if a probe occurs outside the range of the independent variable for a given Line-map.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeLinePlotGetDepValue(
   &                   MapNum,
   &                   DepValue)
    INTEGER*4       MapNum
    REAL*8          DepValue

double TecUtilProbeLinePlotGetIndValue void   
 

Call this function from a probe destination callback to get the independent value from the previous probe event in an Line-plot.

Returns:
The independent value from the previous probe event.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilProbeLinePlotGetIndValue()

EntIndex_t TecUtilProbeLinePlotGetSourceMap void   
 

Call this function from a probe destination callback to get the Line-map whose point was selected in the previous nearest-point probe.

In order to use this function, the value passed to the probe destination callback must have been TRUE, indicating a nearest-point probe.

Returns:
The number of the Line-map.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilProbeLinePlotGetSourceMap()

Boolean_t TecUtilProbeXYGetDepValue EntIndex_t    MapNum,
double *    DepValue
 

Deprecated:
See also:
TecUtilProbeLinePlotGetDepValue

double TecUtilProbeXYGetIndValue void   
 

Deprecated:
See also:
TecUtilProbeLinePlotGetIndValue

EntIndex_t TecUtilProbeXYGetSourceMap void   
 

Deprecated:
See also:
TecUtilProbeLinePlotGetSourceMap

Boolean_t TecUtilQuitAddQueryCallback MopupQueryAddOnCallback_pf    QuitQueryCallback
 

Include a function in the list of functions to call when Tecplot is considering shutting down.

If you are building an addon that could potentially be in a state where it is not convenient to shut down, then use this function. If the addon does not wish for Tecplot to quit then the function referenced in this call can issue an error message to the user as to why this is the case and then return FALSE. A FALSE return value back to Tecplot will abort the shutdown sequence in Tecplot. TRUE return values by all MopupQuery functions will allow the shut down sequence to occur. The quit query callback is not to be used to do mopup operations such as closing of files and freeing of memory. Instead use TecUtilStateChangeAddCallback to register a function that will listen for the message StateChange_QuitTecplot which is sent when Tecplot has begun its shutdown sequence.

Returns:
TRUE if the callback has been added. FALSE only if there is not enough room to allocate space for an additional callback (highly unlikely).
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilQuitAddQueryCallback(QuitQueryCallback)
    POINTER (QuitQueryCallbackPtr, QuitQueryCallback)

Boolean_t TecUtilSetAddMember Set_pa    Set,
SetIndex_t    Member,
Boolean_t    ShowErr
 

Add the specified member to the specified set.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set to which to add the specified member.
Member  The item to add to the specified set. Members start at one.
ShowErr  TRUE to display an error message if the function's return value is FALSE; FALSE to display no error message
Returns:
TRUE if successful, FALSE if not. A FALSE value is highly unlikely and only occurs if the set cannot be expanded to accomodate the new member.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetAddMember(
   &                   SetPtr,
   &                   Member,
   &                   ShowErr)
    POINTER         (SetPtr, Set)
    INTEGER*4       Member
    INTEGER*4       ShowErr

Create a set called ZonesToDelete and add zones 2 and 4 to it:

   Set_pa ZonesToDelete = TecUtilSetAlloc(TRUE);
   TecUtilSetAddMember(ZonesToDelete, 2, TRUE);
   TecUtilSetAddMember(ZonesToDelete, 4, TRUE);

Set_pa TecUtilSetAlloc Boolean_t    ShowErr
 

Allocate a new empty set.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
ShowErr  TRUE to display an error message if the function's return value is FALSE; FALSE to display no error message
Returns:
The new set if successful, NULL if not. An unsuccessful return value indicates that there was not enough memory to create a new set.
Fortran Syntax:

    SUBROUTINE TecUtilSetAlloc(
   &           ShowErr,
   &           ResultPtr)
    INTEGER*4       ShowErr
    POINTER         (ResultPtr, Result)

Create two sets, A and B:

void TecUtilSetClear Set_pa    Set
 

Empties the specified set.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set to empty
Fortran Syntax:

    SUBROUTINE TecUtilSetClear(SetPtr)
    POINTER (SetPtr, Set)

Get the set of active zones, then clear the set so it can be used again:

   Set_pa Zones = NULL;
   TecUtilZoneGetActive(&Zones);
   .
   . / * Use the set of active zones * /
   .
   TecUtilSetClear(Zones);
   .
   . / * Use the set for something else * /

Boolean_t TecUtilSetCopy Set_pa    DstSet,
Set_pa    SrcSet,
Boolean_t    ShowErr
 

Copy one set to another.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
DstSet  The destination set, which must already be allocated with TecUtilSetAlloc.
SrcSet  The source set
ShowErr  Set to TRUE to display an error message if an error occurs during the call
Returns:
TRUE if successful, FALSE if not. FALSE indicates that SrcSet contains elements that cannot be added to DstSet.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetCopy(
   &                   DstSetPtr,
   &                   SrcSetPtr,
   &                   ShowErr)
    POINTER         (DstSetPtr, DstSet)
    POINTER         (SrcSetPtr, SrcSet)
    INTEGER*4       ShowErr

Make a copy of the set of active Line-maps:

   Set_pa MySet, LineMaps = NULL;
   MySet = TecUtilSetAlloc(TRUE);
   TecUtilLineMapGetActive(&LineMaps);
   TecUtilSetCopy(MySet, LineMaps, TRUE);
   .
   .
   .
   TecUtilSetDealloc(&MySet);
   TecUtilSetDealloc(&LineMaps);

void TecUtilSetDealloc Set_pa   Set
 

Free all memory associated with the specified set and assign the set to be NULL.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set to deallocate.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilSetDealloc(SetPtr)
    POINTER (SetPtr, Set)

SetIndex_t TecUtilSetGetMember Set_pa    Set,
SetIndex_t    Position
 

Get the member of the specified set at the specified position.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set from which to get the member.
Position  The position in the set.
Returns:
The member of the specified set at the specified position. Members start at one. If the set does not contain a member at the specified position, the return value is TECUTILSETNOTMEMBER.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetGetMember(
   &                   SetPtr,
   &                   Position)
    POINTER         (SetPtr, Set)
    INTEGER*4       Position

Get each member from the set MySet:

   Set_pa MySet;
   .
   .
   SetIndex_t Member, Count, Position;
   Count = TecUtilSetGetMemberCount(MySet);
   for (Member = 1; Member <= Count; Member++)
     {
       Member = TecUtilSetGetMember(MySet, Position);
       .
       .
     }

SetIndex_t TecUtilSetGetMemberCount Set_pa    Set
 

Get the count of the number of members in a set.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set for which to get the count
Returns:
The count of the number of members in the set Set.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetGetMemberCount(SetPtr)
    POINTER (SetPtr, Set)

SetIndex_t TecUtilSetGetNextMember Set_pa    Set,
SetIndex_t    Member
 

Get the next member in the specified set which is located after the specified member.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set from which to get the member
Member  The member after which to return the next member. Members start at one. Use TECUTILSETNOTMEMBER to get the first member of the set
Returns:
The next member of the specified set after the specified member. Members start at one. If the specified member is not found or if it is the last member in the set, the return value is TECUTILSETNOTMEMBER.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetGetNextMember(
   &                   SetPtr,
   &                   Member)
    POINTER         (SetPtr, Set)
    INTEGER*4       Member

Loop through all members of the set MySet:

   Set_pa MySet;
   .
   .
   SetIndex_t Member =
     TecUtilSetGetNextMember(MySet, TECUTILSETNOTMEMBER);
   while (Member != TECUTILSETNOTMEMBER)
      {
        .
        .
        Member = TecUtilSetGetNextMember(MySet, Member);
      }

SetIndex_t TecUtilSetGetPosition Set_pa    Set,
SetIndex_t    Member
 

Get the position in the specified set at which the specified member is located.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set from which to get the member
Member  The member after which to get the position. Members start at one.
Returns:
The position in the specified set at which the specified member is located. If the specified member is not found, the return value is TECUTILSETNOTMEMBER.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetGetPosition(
   &                   SetPtr,
   &                   Member)
    POINTER         (SetPtr, Set)
    INTEGER*4       Member

Get the position of the member MyMember of the set MySet:

   Set_pa MySet;
   SetIndex_t Member;
   .
   .
   SetIndex_t Position =
     TecUtilSetGetPosition(MySet, MyMember);

Boolean_t TecUtilSetIsEmpty Set_pa    Set
 

Determine if the specified set is NULL or contains no members.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set to check for members
Returns:
TRUE if Set is NULL or contains no members, FALSE if not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetIsEmpty(SetPtr)
    POINTER (SetPtr, Set)

Determine if the set MySet is empty or contains no members:

   Set_pa MySet;
   
   Boolean_t SetIsEmpty = TecUtilSetIsEmpty(MySet);

Boolean_t TecUtilSetIsEqual Set_pa    Set1,
Set_pa    Set2
 

Determines if the specified sets are equal (have the same members).

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set1  The set to compare with Set2.
Set2  The set to compare with Set1
Returns:
TRUE if the specified sets are equal, FALSE if they are not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetIsEqual(
   &                   Set1Ptr,
   &                   Set2Ptr)
    POINTER         (Set1Ptr, Set1)
    POINTER         (Set2Ptr, Set2)

Determine if all enabled zones are active:

   Boolean_t AllEnabledZonesAreActive;
   Set_pa ActiveZones = NULL, EnabledZones = NULL;
   TecUtilZoneGetActive(&ActiveZones);
   TecUtilZoneGetEnabled(&EnabledZones);
   AllEnabledZonesAreActive =
     TecUtilSetIsEqual(ActiveZones, EnabledZones);

Boolean_t TecUtilSetIsMember Set_pa    Set,
SetIndex_t    Member
 

Determine if the specified member is in the specified set.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set to check for the specified member.
Member  The item for which to check the specified set. Members start at one
Returns:
TRUE if Member is a member of Set, FALSE if not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilSetIsMember(
   &                   SetPtr,
   &                   Member)
    POINTER         (SetPtr, Set)
    INTEGER*4       Member

Determine if the set MySet contains the member MyMember, and if so, remove MyMember from MySet:

   Set_pa MySet;
   SetIndex_t MyMember;
   .
   .
   if (TecUtilSetIsMember(MySet, MyMember))
     TecUtilSetRemoveMember(MySet, MyMember);

void TecUtilSetRemoveMember Set_pa    Set,
SetIndex_t    Member
 

Remove a member from a set.

See Chapter 20, "Using Sets," in the ADK User's Manual for a discussion of sets.

Parameters:
Set  The set from which to remove the specified member.
Member  The member to remove from the specified set. Members start at one
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilSetRemoveMember(
   &           SetPtr,
   &           Member)
    POINTER         (SetPtr, Set)
    INTEGER*4       Member

void TecUtilSidebarAutoSensitivity Boolean_t    DoAuto
 

Deprecated:
See also:
TecUtilMouseSetMode and TecUtilMouseIsValidMode.

void TecUtilSidebarSetSensitivity MouseButtonMode_e    MouseMode,
Boolean_t    IsSensitive
 

Deprecated:
See also:
TecUtilMouseSetMode and TecUtilMouseIsValidMode.

Boolean_t TecUtilStateChangeAddCallback StateChangeAddOnCallback_pf    StateChangeCallback
 

Include a function in the list of functions to call when a state change occurs in Tecplot.

For more detailed discussion, either see TecUtilOnIdleQueueAddCallback or the ADK User's Manual. If you want to take advantage of newer capabilities with regard to state changes then use TecUtilStateChangeAddCallbackX instead.

Parameters:
StateChangeCallback  This is the name of the callback function you provide. This function will be called by Tecplot each time a state change occurs. See StateChangeAddCallback_pf in Chapter 2.
Returns:
Returns TRUE if callback has been added. Returns FALSE only if there is not enough room to allocate space for an additional callback (highly unlikely).
The following example will set up a state change callback. This callback will do the following:

1. When the user picks an object, check and see if it is a zone. If it is, then change its color to red. 2. If anything has happened to the fourth variable, then show an error message. 3. If Tecplot is quitting, then close some files that are open. First, in the Tecplot initialization code add the callback:

   IsOk=TecUtilStateChangeAddCallback(MyStateChangeCallback);

And add the state change callback:

   void MyStateChangeCallback(StateChange_e StateChange,
                                      ArbParam_t    CallData)
   {
     .
     .
     .
     / *
      * Item 1.  Check for the case when the user picks a zone.
      * /
     if (StateChange == StateChange_PickListSingleSelect)
       {
         int NumPickedObjects;
         NumPickedObjects = TecUtilPickListGetCount();
   
          / *
          * Check to see if the last object picked is a zone.
          * /
         if (TecUtilPickListGetType(NumPickedObjects)==
             PickObject_Zone)
           {
             EntIndex_t ZonePicked;
             Set_pa     ZoneSet;
   
             / * Get the number of the zone picked * /
             ZonePicked = TecUtilPickListGetZoneNumber(
                                                NumPickedObjects);
   
             / *
              * Build the zone set to pass to TecUtilZoneSetMesh.
              * In this case there is only one zone
              * /
             ZoneSet = TecUtilSetAlloc(FALSE);
             if (ZoneSet)
               {
                 TecUtilSetAddMember(ZoneSet,ZonePicked,TRUE);
   
                 / *
                  * Change the mesh color attribute.
                  * /
                 TecUtilZoneSetMesh(SV_COLOR, ZoneSet, 0.0,
                                    (ArbParam_t)Red_C);
                 TecUtilSetDealloc(&ZoneSet);
               }
           }
       }
       / *
        * Item 2. Check for a change in the 4th variable.
        * /
       else if (StateChange == StateChange_VarsAltered)
       {
         if (TecUtilSetIsMember((Set_pa)CallData, (SetIndex_t)4))
           TecUtilDialogErrMsg("Var number 4 was altered");
       }
   
       / *
        * Item 3.  Close an open file if Tecplot is
        * shutting down.
        * /
       else if (StateChange == StateChange_QuitTecplot)
       {
         fclose(SomeOpenFile);
       }
       .
       .
       .
     }

Boolean_t TecUtilStateChangeAddCallbackX ArgList_pa    ArgList
 

Register a callback to receive state changes.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_STATECHANGEMODE
Type: StateChangeMode_e
Arg Function: TecUtilArgListAppendInt
Default: StateChangeMode_V100
Required: No
Notes: StateChangeMode_v80 and StateChangeMode_v100.

SV_CALLBACKFUNCTION
Type: void *
Arg Function: TecUtilArgListAppendFunction
Default: ---
Required: Yes
Notes: Callback Function for state changes. See StateChangeAddOnCallbackV2_pf in chapter 2.


Returns:
TRUE if successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStateChangeAddCallbackX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

Register the function MyStateChageCallback with Tecplot:

   static void MyStateChangeCallback(StateChange_e StateChange)    
   {
     TecUtilLockStart(AddOnID);
     switch (StateChange)
       {
         case StateChange_VarsAltered,
           {
             Set_pa VarsAltered  = NULL;
             if (TecUtilStateChangeGetVarSet(&VarsAltered))
               {
                 Set_pa ZonesAltered = NULL;
                 if (TecUtilStateChangeGetVarSet(&ZonesAltered))
                   {
                     ... take action knowing which vars in which
                     ... were altered.
  
                     TecUtilSetDealloc(&ZonesAltered);
                   }
                 else
                   {
                     ... assume all zones were affected.  Take action
                     ... knowing which vars were altered.
                   }
                 TecUtilSetDealloc(&VarsAltered);
               }
           } break;
         ... and so on...
       }
     TecUtilLockFinish(AddOnID);
   }
   .
   .
   .
   void InitTecAddOn(void)
   {
     ArgList_pa ArgList;
     .
     .
     .
     ArgList = TecUtilArgListAlloc();
     TecUtilArgListAppendFunction(ArgList,
                                  SV_CALLBACKFUNCTION,
                                  MyStateChangeCallback);
     TecUtilStateChangeAddCallbackX(ArgList);
     TecUtilArgListDealloc(&ArgList);
     .
     .
     .
   }

void TecUtilStateChanged StateChange_e    StateChange,
ArbParam_t    CallData
 

Inform tecplot of a state change.

Currently this must be called in the following situations:

  • Launch and dismiss of modal dialogs (Windows only).
  • After a variable has been added and subsequently modified.
  • After a variable has been modified.
  • After TecUtilDataSetAddZone has been called and the field data has been modified (Use StateChange_ZonesAdded).
  • After the node map has been altered.
The CallData parameter is required for the following state changes:

 *   StateChange_VarsAltered        (A set of variables)
 *   StateChange_VarsAdded          (A set of variables)
 *   StateChange_ZonesDeleted       (A set of zones)
 *   StateChange_ZonesAdded         (A set of zones)
 *   StateChange_NodeMapsAltered    (A set of zones)
 * 
Parameters:
StateChange  Specifies the state change of which to inform Tecplot. addons are only allowed to send specific state change messages. See the ADK User's Manual
CallData  Extra information for the state change.
Fortran Syntax:

    SUBROUTINE TecUtilStateChanged(
   &           StateChange,
   &           CallDataPtr)
    INTEGER*4       StateChange
    POINTER         (CallDataPtr, CallData)

Create a zone, modify its variable values, and inform Tecplot of the state change:

   if (TecUtilDataSetAddZone("Banana", 10, 10, 1,
                             ZoneType_Ordered, NULL))
     {
       EntIndex_t Zone;
       Set_pa     ZSet = TecUtilSetAlloc(TRUE);
       TecUtilDataSetGetInfo(NULL, &Zone, NULL);
   
       / *  Set up the variable values for the new zone  * /
   
       TecUtilSetAddMember(ZSet, Zone,TRUE);
       TecUtilStateChanged(StateChange_ZonesAdded,(ArbParam_t)ZSet);
       TecUtilSetDealloc(&ZSet);
     }

FORTRAN EXAMPLE: Send a vars altered state change telling tecplot the variable AND the zone where the alteration occurred.

       INTEGER*4 DummyArgList
       pointer (ArgListPtr,DummyArgList)
       pointer (ZoneListPtr,DummyZoneList)
       INTEGER*4 DummyZoneList
       pointer (VarListPtr,DummyVarList)
       INTEGER*4 DummyVarList
       INTEGER*4 IShowErr,IErr
 
       IShowErr = 0
 
       Call TecUtilArgListAlloc(ArgListPtr)
       Call TecUtilSetAlloc(IShowErr,ZoneListPtr)
       Call TecUtilSetAlloc(IShowErr,VarListPtr)
 
       IErr = TecUtilSetAddMember(VarListPtr,2,IShowErr)
       IErr = TecUtilSetAddMember(ZoneListPtr,2,IShowErr)
 
       IErr = TecUtilArgListAppendInt(ArgListPtr,
      &                               'STATECHANGE'//char(0),
      &                               StateChange_VarsAltered)
       IErr = TecUtilArgListAppendSet(ArgListPtr,
      &                               'ZONELIST'//char(0),
      &                               ZoneListPtr)
       IErr = TecUtilArgListAppendSet(ArgListPtr,
      &                               'VARLIST'//char(0),
      &                               VarListPtr)
 
       Call TecUtilStateChangedX(ArgListPtr)
 
       Call TecUtilArgListDealloc(ArgListPtr)
       Call TecUtilSetDealloc(ZoneListPtr)
       Call TecUtilSetDealloc(VarListPtr)

void TecUtilStateChangedX ArgList_pa    ArgList
 

Inform Tecplot of a state change.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_STATECHANGE
Type: StateChange_e
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yew
Notes: The state change to send to Tecplot. See Section 13.3, "Sending State Changes," in the ADK User's Manual for a list of possible state changes

SV_VARLIST
Type: Set_pa
Arg Function: TecUtilArgListAppendSet
Default: NULL
Required: (see below)
Notes: (see below)

SV_ZONELIST
Type: Set_pa
Arg Function: TecUtilArgListAppendSet
Default: NULL
Required: (see below)
Notes: (see below)

SV_INDEX
Type: Set_pa
Arg Function: TecUtilArgListAppendSet
Default: NULL
Required: (see below)
Notes: (see below)


Note:
The VARLIST, ZONELIST and INDEX arguments are required or optional based on the value of StateChange. The table below discribes when you can/must supply these arguments:
Returns:
TRUE if successful, FALSE otherwise.
Fortran Syntax:

    SUBROUTINE TecUtilStateChangedX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

Boolean_t TecUtilStateChangeGetArbEnum LgIndex_t   ArbEnum
 

Retrieve enumerated supplemental information from the previous state change.

Parameters:
ArbEnum  Retrieved enumerated value from the previous state change. Type cast this to the appropriate enum to get the value
Returns:
Returns TRUE successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStateChangeGetArbEnum(ArbEnum)
    INTEGER*4 ArbEnum

Your state change callback was just called with StateChange_View. Take action if the view type was View_Zoom

     LgIndex_t ArbEnumValue;
     TecUtilStateChangeGetArbEnum(&ArbEnumValue);
     if ((View_e)ArbEnumValue == View_Zoom)
        {
           .... take some action.
        }

Boolean_t TecUtilStateChangeGetIndex LgIndex_t   Index
 

Retrieve Index supplemental information from the previous state change.

Parameters:
Index  Retrieved Index value from the previous state change
Returns:
Returns TRUE successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStateChangeGetIndex(Index)
    INTEGER*4 Index

Your state change callback was just called with StateChange_VarsAltered. Take action if you can retrieve which data point index was altered.

     LgIndex_t IndexValue;
     if (TecUtilStateChangeGetIndex(&IndexValue))
       {
           .... take some action using IndexValue.
       }

Boolean_t TecUtilStateChangeGetStyleParam int    Param,
const char **    StyleParam
 

Retrieve one of the P1,P2,P3,P4,P5, or P6 style parameters from the previous style state change.

Parameters:
Param  The parameter number to retrieve. Must be a number between 1 and 6
StyleParam  Style parameter retrieved.
Returns:
Returns TRUE successful, FALSE otherwise.
Your state change callback was just called with StateChange_Style. Take action if the first two style parameters are SV_INTERFACE and SV_USEAPPROXIMATEPLOTS.

     char *P1;
     char *P2;
     if (TecUtilStateChangeGetStyleParam(1,&P1) &&
         TecUtilStateChangeGetStyleParam(2,&P2) &&
         (strcmp(P1,SV_INTERFACE) == 0)             &&
         (strcmp(P2,SV_USEAPPROXIMATEPLOTS) == 0))
       {
           .... take some action.
       }

Boolean_t TecUtilStateChangeGetVarSet Set_pa   VarSet
 

Retrieve the set of variables associated with the previous state change.

Parameters:
VarSet  Retrieved set of variables associated with the previous state change.
Returns:
Returns TRUE successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStateChangeGetVarSet(VarSetPtr)
    POINTER (VarSetPtr, VarSet)

Your state change callback was just called with StateChange_VarsAltered. Take action using the retrieved set of variables that were altered.

     Set_pa VarsAltered;
     if (TecUtilStateChangeGetVarSet(&VarsAltered))
       {
           .... take some action using VarsAltered.
           .... NOTE: Do not dealloc VarsAltered when finished.
       }

Boolean_t TecUtilStateChangeGetZone EntIndex_t   Zone
 

Retrieve the number of the zone associated with the previous state change.

Parameters:
Zone  Retreived zone number associated with previous state change
Returns:
Returns TRUE successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStateChangeGetZone(Zone)
    INTEGER*4 Zone

Your state change callback was just called with StateChange_AuxDataAdded. Take action if it was auxiliary data associated with zone 2.

     LgIndex_t ArbEnumValue;
     EntIndex_t Zone;
     if (TecUtilStateChangeGetArbEnum(&ArbEnumValue)               &&      
         ((AuxDataLocation_e)ArbEnumValue == AuxDataLocation_Zone) &&
          TecUtilStateChangeGetZone(&Zone))
        {
           .... take some knowing aux data was just added
           .... to zone Zone.
        } ;

Boolean_t TecUtilStateChangeGetZoneSet Set_pa   ZoneSet
 

Retrieve the set of zones associated with the previous state change.

Parameters:
ZoneSet  Retreived set of zones associated with the previous state change
Returns:
Returns TRUE successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStateChangeGetZoneSet(ZoneSetPtr)
    POINTER (ZoneSetPtr, ZoneSet)

Your state change callback was just called with StateChange_VarsAltered. Take action using the retrieved set of variables that were altered. In addition, if possible, make use of the set of zones that were altered if you can retrieve that information.

     Set_pa VarsAltered;
     Set_pa ZonesAltered;
     if (TecUtilStateChangeGetVarSet(&VarsAltered))
       {
          Set_pa ZonesAltered;
          if (TecUtilStateChangeGetZoneSet(&ZonesAltered))
             {
                ... take action knowing both what zones and
                ... what vars were altered.
             }
           else
             {
                .... take some action using only VarsAltered.
                .... assume all zones were altered.
             }
          NOTE:  Do not dealloc ZonesAltered or VarsAltered!
       }

Boolean_t TecUtilStateChangeSetMode StateChangeAddOnCallback_pf    Callback,
StateChangeMode_e    Mode
 

Set the mode in which state changes are propagated to the specified state change callback.

Parameters:
Callback  Function already registered to receive state change callbacks
Mode  Mode you want state changes propagated to your state change callback function. Choose either StateChangeMode_v80 or StateChangeMode_v90. See the section "Sending State Changes" in the ADK User's Manual for a complete description on what is different between these two options
Returns:
Returns TRUE successful (that is, the callback function was registered), FALSE otherwise.
Set the mode state change callbacks to the function BananaCallbackFunction to use the v90 mode.

     TecUtilStateChangeSetMode(BananaCallbackFunction,
                               StateChangeMode_v90);

Boolean_t TecUtilStatusCheckPercentDone int    PercentDone
 

Checks percent of current operation is completed.

Parameters:
PercentDone  Int value for when the percent of completion of an operation is to be checked
Returns:
TRUE if successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStatusCheckPercentDone(PercentDone)
    INTEGER*4 PercentDone

void TecUtilStatusFinishPercentDone void   
 

Checks when current operation is completed.

Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilStatusFinishPercentDone()

void TecUtilStatusSetPercentDoneText const char *    PercentDoneText
 

Sets string to be displayed when operation completed.

Parameters:
PercentDoneText  String of texts to be displayed as operation reaches completion.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilStatusSetPercentDoneText(PercentDoneText)
    CHARACTER*(*) PercentDoneText

void TecUtilStatusStartPercentDone const char *    PercentDoneText,
Boolean_t    ShowStopButton,
Boolean_t    ShowProgressBar
 

Start monitoring the percent an operation is done.

Parameters:
PercentDoneText  Text string to display as operation is done
ShowStopButton  TRUE to show button, FALSE not to.
ShowProgressBar  TRUE to show progress bar, FALSE not to
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilStatusStartPercentDone(
   &           PercentDoneText,
   &           ShowStopButton,
   &           ShowProgressBar)
    CHARACTER*(*)   PercentDoneText
    INTEGER*4       ShowStopButton
    INTEGER*4       ShowProgressBar

char* TecUtilStringAlloc int    MaxLength,
const char *    DebugInfo
 

Allocate a character string.

Use TecUtilStringDealloc to deallocate strings allocated using TecUtilStringAlloc. For the Tecplot ADK ActiveX Component, this function is not currently supported and is never required to be used.

Parameters:
MaxLength  The usable length of the string. The size must be greater than or equal to zero
DebugInfo  Character string identifying the reason why the string is being allocated. This parameter is not yet enabled, but you still must supply a string
Returns:
Returns the address of the string or NULL if the memory cannot be allocated.
The following example will allocate a string for displaying an error message and then deallocate it.

   char *S;
   S = TecUtilStringAlloc(80,"error message string");
   sprintf(S, "The error occurred on step %d", IStep);
   TecUtilDialogErrMsg(S);
   TecUtilStringDealloc(&S);

char* TecUtilStringConvOldFormatting const char *    OldString,
Font_e    BaseFont
 

Convert a text string using the old formatting syntax into the new formatting syntax.

Parameters:
OldString  Character string containing old formatting syntax.
BaseFont  Assumed base font used by the old string.
Returns:
Returns the converted character string. You must free this string when you are finished with it.
Fortran Syntax:

    SUBROUTINE TecUtilStringConvOldFormatting(
   &           OldString,
   &           BaseFont,
   &           Result,
   &           ResultLength)
    CHARACTER*(*)   OldString
    INTEGER*4       BaseFont
    CHARACTER*(*)   Result
    INTEGER*4       ResultLength

void TecUtilStringDealloc char **    S
 

Free a string previously allocated with TecUtilStringAlloc, or one that was allocated and returned as the result of calling any other TecUtilxxx function.

For the Tecplot ADK ActiveX Component, this function is not currently supported and is never required to be used.

Parameters:
S  Reference to a valid string handle. Use TecUtilStringAlloc() to create a string
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilStringDealloc(
   &           S,
   &           SLength)
    CHARACTER*(*)   S
    INTEGER*4       SLength

StringList_pa TecUtilStringListAlloc void   
 

Create an empty string list.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists. Use TecUtilStringListDealloc to deallocate the string list when it is no longer needed.

Returns:
Handle to an empty string list. A handle of NULL is returned if sufficient memory is not available.
Fortran Syntax:

    SUBROUTINE TecUtilStringListAlloc(ResultPtr)
    POINTER (ResultPtr, Result)

Allocate and deallocate a string list.

   StringList_pa Names = NULL;
   
   Names = TecUtilStringListAlloc();
   if (Names != NULL)
     {
       / * do something with the name list, append, clear, etc * /
         .
         .
         .
   
       / * get rid of the name list * /
       TecUtilStringListDealloc(&Names);
     }

Boolean_t TecUtilStringListAppend StringList_pa    Target,
StringList_pa    Source
 

Append a copy of the contents of the source string list to the target string list.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
Target  String list to which the Source string list is appended. Use TecUtilStringListAlloc to allocate a string list
Source  String list to append to the Target. Use TecUtilStringListAlloc to allocate a string list.
Returns:
A return value of TRUE indicates the operation was successful. A return value of FALSE indicates that sufficient memory was not available for the request.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStringListAppend(
   &                   TargetPtr,
   &                   SourcePtr)
    POINTER         (TargetPtr, Target)
    POINTER         (SourcePtr, Source)

Append one string list to another.

   Boolean_t     IsOk = FALSE;
   StringList_pa Names = NULL;
   StringList_pa DefaultNames = NULL;
   
   / * call some function to get a names list from the user * /
   Names = MyFuncForGettingNamesFromUser();
   
   / * call some function to get some default name list * /
   DefaultNames = MyFuncForGettingDefaultNames();
   
   / * combine the two name lists into one * /
   if (Names != NULL && DefaultNames != NULL)
     {
       IsOk = TecUtilStringListAppend(Names, DefaultNames);
       if (IsOk)
         {
           / * do more processing * /
             .
             .
             .
   
           / * get rid of the name lists * /
           TecUtilStringListDealloc(&Names);
           TecUtilStringListDealloc(&DefaultNames);
         }
     }

Boolean_t TecUtilStringListAppendString StringList_pa    StringList,
const char *    String
 

Append a copy of the string to the string list.

The string list expands to accommodate the additional item. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list.
String  A copy of String is appended to the string list. String may be NULL
Returns:
A return value of TRUE indicates the operation was successful. A return value of FALSE indicates that sufficient memory was not available for the additional item.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStringListAppendString(
   &                   StringListPtr,
   &                   String)
    POINTER         (StringListPtr, StringList)
    CHARACTER*(*)   String

Append two variable names to a string list

   Boolean_t     IsOk = FALSE;
   StringList_pa Names = NULL;
   
   Names = TecUtilStringListAlloc();
   if (Names != NULL)
     {
       IsOk = TecUtilStringListAppendString(Names, "X");
       IsOk = TecUtilStringListAppendString(Names, "Y");
       if (IsOk)
         {
           / * do some processing with the name list * /
             .
             .
             .
         }
   
       / * get rid of the name list * /
       TecUtilStringListDealloc(&Names);
     }

void TecUtilStringListClear StringList_pa    StringList
 

Remove all members of the string list.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilStringListClear(StringListPtr)
    POINTER (StringListPtr, StringList)

Clear a string list so that it no longer maintains any strings items.

   Boolean_t     ClearNames = FALSE;
   StringList_pa Names = NULL;
   
   / * do some processing to get names * /
     .
     .
     .
   
   if (ClearNames)
     {
       TecUtilStringListClear(Names);
       TecUtilDialogMessageBox("All names cleared.",
                               MessageBox_Information);
     }

StringList_pa TecUtilStringListCopy StringList_pa    StringList
 

Return a handle to a duplicate of the specified string list and its contents.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists. Note: The caller is responsible for deallocating the string list when it is no longer needed.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to create a string list.
Returns:
A handle to a duplicate string list is returned if the operation was successful. A handle of NULL is returned if sufficient memory is not available.
Fortran Syntax:

    SUBROUTINE TecUtilStringListCopy(
   &           StringListPtr,
   &           ResultPtr)
    POINTER         (StringListPtr, StringList)
    POINTER         (ResultPtr, Result)

Make a copy of a string list.

   StringList_pa Names = NULL;
   StringList_pa CopyOfNames = NULL;
   
   / * do some processing to get names * /
     .
     .
     .
   
   CopyOfNames = TecUtilStringListCopy(Names);
   if (CopyOfNames != NULL)
     {
       / * do some processing on the name list copy * /
         .
         .
         .
   
       / * get rid of the name list copy * /
       TecUtilStringListDealloc(&CopyOfNames);
     }

void TecUtilStringListDealloc StringList_pa   StringList
 

Deallocate the string list members and handle, and set the handle to NULL.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Reference to a valid string list handle. Use TecUtilStringListAlloc to create a string list
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilStringListDealloc(StringListPtr)
    POINTER (StringListPtr, StringList)

Create and then deallocate a string list:

StringList_pa TecUtilStringListFromNLString const char *    String
 

Create a string list from a newline delimited string.

A newline delimited string is a character string with newlines (
) used to separate one substring from the next. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists. Note: The caller is responsible for deallocating the string list when it is no longer needed.

Parameters:
String  The newline delimited string
Returns:
Handle to the created string list. A handle of NULL is returned if sufficient memory is not available.
Fortran Syntax:

    SUBROUTINE TecUtilStringListFromNLString(
   &           String,
   &           ResultPtr)
    CHARACTER*(*)   String
    POINTER         (ResultPtr, Result)

Given the string, Hello
\nWorld, the function will return a string list containing 3 members: "Hello, "" (that is, an empty string), and "World."

   StringList_pa List = NULL;
   
   List = TecUtilStringListFromNLString("Hello\n\nWorld");
   if (List != NULL)
     {
       LgIndex_t I = 0;
       LgIndex_t Count = 0;
   
       / * print each element of the string list * /
       for (I = 0, Count = TecUtilStringListGetCount(List);
             I < Count;
             I++)
         {
           String = TecUtilStringListGetString(List, I+1);
           if (String != NULL)
             {
               printf("Item #%d: %s\n", I+1, String);
               TecUtilStringDealloc(&String);
             }
         }
   
       / * get rid of the list * /
       TecUtilStringListDealloc(&List);
     }

LgIndex_t TecUtilStringListGetCount StringList_pa    StringList
 

Count the number of strings currently maintained by the string list.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to create a string list.
Returns:
The number of strings maintained by the string list.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStringListGetCount(StringListPtr)
    POINTER (StringListPtr, StringList)

Get each instruction used to load the current frame's data set:

   StringList_pa LoaderInstructs;
   char *LoaderName = NULL;
   if (TecUtilImportGetLoaderInstr(&LoaderName,&LoaderInstructs))
     {
      LgIndex_t ii, Count =
        TecUtilStringListGetCount(LoaderInstructs);
      for (ii = 1; ii <= Count; ii++)
       {
        char *Instruct =
          TecUtilStringListGetString(LoaderInstructs, ii);
        / * Do some processing * /
        .
        .
        .
        TecUtilStringDealloc(&Instruct);
       }
     }

char* TecUtilStringListGetRawStringPtr StringList_pa    StringList,
LgIndex_t    StringNumber
 

Return a reference to the nth string in a string list.

See Chapter 19, "Using String Lists", in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list
StringNumber  Position of string to be copied into the string list. StringNumber must be greater than or equal to one, and less than or equal to the number of items maintained by the string list. Use TecUtilStringListGetCount to get the number of items
Returns:
Returns a REFERENCE to the string. DO OT DEALLOCATE THIS REFERENCE.
Operate on the set of files retrieved using TecUtilDialogGetFileNames.

     StringList_pa FileNames = NULL;
   
     if (TecUtilDialogGetFileNames(SelectFileOption_ReadMultiFile,
                                   &FileNames,
                                   "any file",
                                   (StringList_pa)NULL,
                                   "*"))
       {
         LgIndex_t N,NumFiles;
   
         NumFiles = TecUtilStringListGetCount(FileNames);
         for (N = 1; N < Numfiles; N++)
           {
             char *RawFNamePtr = TecUtilStringListGetRawStringPtr(FileNames,N);
   
             / *
              * Do something with RawFNamePtr.  DO NOT DEALLOCATE RawFNamePtr.
              * /
           }
   
         / *
          * We do however dealloc the stringlist itself.
          * /
   
         TecUtilStringListDealloc(&FileNames);
       }

char* TecUtilStringListGetString StringList_pa    StringList,
LgIndex_t    StringNumber
 

Return a copy of the nth string from a string list.

See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists. Note: The caller is responsible for de-allocating the copy of the string when it is no longer needed.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list
StringNumber  Position of string to be copied into the string list. StringNumber must be greater than or equal to one, and less than or equal to the number of items maintained by the string list. Use TecUtilStringListGetCount to get the number of items
Returns:
Copy of the nth string.
Fortran Syntax:

    SUBROUTINE TecUtilStringListGetString(
   &           StringListPtr,
   &           StringNumber,
   &           Result,
   &           ResultLength)
    POINTER         (StringListPtr, StringList)
    INTEGER*4       StringNumber
    CHARACTER*(*)   Result
    INTEGER*4       ResultLength

Boolean_t TecUtilStringListInsertString StringList_pa    StringList,
LgIndex_t    StringNumber,
const char *    String
 

Insert a copy of the string into the nth position of the string list.

The string list expands and the items are shifted to accommodate the additional item. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list
StringNumber  Position where string is inserted in the string list. This value must be greater than or equal to one, and less than or equal to the number of items maintained by the string list. Use TecUtilStringListGetCount to get the number of items
String  A copy of String is inserted into the the the string list. String may be NULL
Returns:
A return value of TRUE indicates the operation was successful. FALSE indicates that the memory available was not sufficient for the additional item.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStringListInsertString(
   &                   StringListPtr,
   &                   StringNumber,
   &                   String)
    POINTER         (StringListPtr, StringList)
    INTEGER*4       StringNumber
    CHARACTER*(*)   String

Insert a string at the beginning and end of an existing list.

   Boolean_t     IsOk = FALSE;
   StringList_pa Names = NULL;
   LgIndex_t     Count = 0;
   
   / * do some processing to get names * /
     .
     .
     .
   
   / * insert a name at the beginning and end of the list * /
   IsOk = TecUtilStringListInsertString(Names, 1,
                                        "Very First Name");
   Count = TecUtilStringListGetCount(Names);
   IsOk = TecUtilStringListInsertString(Names, Count+1,
                                        "Very Last Name");

void TecUtilStringListRemoveString StringList_pa    StringList,
LgIndex_t    StringNumber
 

Remove the nth string from the string list.

The members following the removed item are shifted to fill the vacated space. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list.
StringNumber  Number of the string to remove. Must be greater than or equal to one, and less than or equal to the number of items maintained by the string list. Use TecUtilStringListGetCount to get the number of items
Returns:
None
Fortran Syntax:

    SUBROUTINE TecUtilStringListRemoveString(
   &           StringListPtr,
   &           StringNumber)
    POINTER         (StringListPtr, StringList)
    INTEGER*4       StringNumber

Remove the first name from a name list.

   StringList_pa Names = NULL;
   
   / * do some processing to get names * /
     .
     .
     .
   
   TecUtilStringListRemoveString(Names, 1);

void TecUtilStringListRemoveStrings StringList_pa    StringList,
LgIndex_t    StringNumber,
LgIndex_t    Count
 

Remove the specified number of strings beginning at the nth string.

The members following the items removed are shifted to fill the vacated space. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list
StringNumber  Start position in the string list. Value must be greater than or equal to one, and less than or equal to the number of items maintained by the string list. Use TecUtilStringListGetCount to get the number of strings in the string list
Count  Number of items to remove from the string list. Value must be greater than or equal to one, and less than or equal to the number of items remaining, including the string at the start position. Use TecUtilStringListGetCount to get the number of strings in the string list
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilStringListRemoveStrings(
   &           StringListPtr,
   &           StringNumber,
   &           Count)
    POINTER         (StringListPtr, StringList)
    INTEGER*4       StringNumber
    INTEGER*4       Count

Remove all but the first and last item from a name list.

   LgIndex_t     Count = 0;
   StringList_pa Names = NULL;
   
   / * do some processing to get names * /
     .
     .
     .
   
   Count = TecUtilStringListGetCount(Names);
   TecUtilStringListRemoveStrings(Names, 2, Count-2);

Boolean_t TecUtilStringListSetString StringList_pa    StringList,
LgIndex_t    StringNumber,
const char *    String
 

Place a copy of the specified string at the nth position in the string list.

If the position is beyond the end of the string list, the string list is resized, so that the string references between the last item of the string list in its original state and the last item of the string list in its new state are assigned NULL. If the position is within the boundaries of the original string list, the string at the specified position is replaced by the new value. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list
StringNumber  Item position in the string list. Value must be greater than or equal to one
String  A copy of String is appended to the string list. String may be NULL
Returns:
A return value of TRUE indicates the operation was successful. FALSE indicates that sufficient memory was not available for the additional item at the specified position.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilStringListSetString(
   &                   StringListPtr,
   &                   StringNumber,
   &                   String)
    POINTER         (StringListPtr, StringList)
    INTEGER*4       StringNumber
    CHARACTER*(*)   String

Replace the first item of a name list with a new value and put a new item ten positions past the current last item.

   LgIndex_t     Count = 0;
   StringList_pa Names = NULL;
   
   / * do some processing to get names * /
     .
     .
     .
   
   IsOk = TecUtilStringListSetString(Names, 1,
                                     "New First Name");
   Count = TecUtilStringListGetCount(Names);
   IsOk = TecUtilStringListSetString(Names, Count+10,
                                     "New Last Name");

char* TecUtilStringListToNLString StringList_pa    StringList
 

Return a newline delimited string representation of the string list.

A newline delimited string is a character string with newlines (
) used to separate one substring from the next. See Chapter 19, "Using String Lists," in the ADK User's Manual for a discussion of string lists. Note: The caller is responsible for de-allocating the copy of the newline delimited string when it is no longer needed.

Parameters:
StringList  Handle to a valid string list. Use TecUtilStringListAlloc to allocate a string list.
Returns:
A newline,
, delimited string representation of the string list.
Fortran Syntax:

    SUBROUTINE TecUtilStringListToNLString(
   &           StringListPtr,
   &           Result,
   &           ResultLength)
    POINTER         (StringListPtr, StringList)
    CHARACTER*(*)   Result
    INTEGER*4       ResultLength

Given a string list containing 3 members: "Hello", "", and "World", the function will return the following string: "Hello
\nWorld".

   StringList_pa List = NULL;
   
   List = TecUtilStringListAlloc();
   if (List != NULL)
     {
       / * add items to the string list * /
       TecUtilStringListAppendString(List, "Hello");
       TecUtilStringListAppendString(List, "");
       TecUtilStringListAppendString(List, "World");
   
       / *print the newline separated string representation * /
       String = TecUtilStringListToNLString(List);
       if (String != NULL)
         {
           printf("%s\n", String);
           TecUtilStringDealloc(&String);
         }
   
       / * get rid of the list * /
       TecUtilStringListDealloc(&List);
     }

LgIndex_t TecUtilTecAux char *    Name,
char *    Value
 

Writes the name/value data set auxiliary data pair to the data file..

Parameters:
Name  Name of the data set auxiliary item
Value  The value associates with the named data set auxiliary data item
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecAux(
   &                   Name,
   &                   Value)
    CHARACTER*(*)   Name
    CHARACTER*(*)   Value

LgIndex_t TecUtilTecDat LgIndex_t   N,
void *    FieldData_Array,
LgIndex_t   IsDouble
 

Writes an array of data to the data file.

  • If the ZoneFormat specified in TecUtilTecZne is BLOCK, the
    array must be dimensioned (IMax,JMax,KMax,NumVars) (FORTRAN
    syntax, where the first element moves the fastest).
    • If the ZoneFormat is POINT, the data must be dimensioned
      (NumVars,IMax,JMax,
      KMax).
    • If the ZoneFormat is FEBLOCK, then the data must be dimensioned
      (NumPts, NumVars).
    • If the ZoneFormat is FEPOINT, then the data must be dimensioned
      (NumVars,NumPts).
TecUtilTecDat allows you to write your data in a piecemeal fashion in case it is not contained in one contiguous block in your program. Enough calls to TECDAT must be made that the correct number of values are written for each zone and that the aggregate order for the data is correct.

In the above summary, NumVars is based on the number of variable names supplied in a previous call to TecUtilTecIni.

Parameters:
N  Handle to an integer value specifying number of values to write
FieldData_Array  Array of single or double precision data values
IsDouble  Handle to the integer flag stating whether the array Data is single (0) or double (1) precision
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecDat(
   &                   N,
   &                   FieldData_Array,
   &                   IsDouble)
    INTEGER*4       N
    POINTER         (FieldData_ArrayPtr, FieldData_Array)
    INTEGER*4       IsDouble

LgIndex_t TecUtilTecEnd void   
 

Must be called to close out the current data file.

There must be a corresponding TecUtilTecEnd for each TecUtilTecIni.

Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecEnd()

LgIndex_t TecUtilTecFace LgIndex_t   FaceConnections
 

Writes the face neighbor connections to the data file.

Parameters:
FaceConnections  Array of face connections dimensioned by the number of face neighbor connections (supplied in the call to TecUtilTecZneX) multiplied by the number of values needed for each connection. See the ADK reference manual for details.
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecFace(FaceConnections)
    INTEGER*4 FaceConnections

LgIndex_t TecUtilTecFil LgIndex_t   F
 

Switch output context to a different file.

Each time TecUtilTecIni is called, a new file "context" is switched to. This allows you to write multiple data files at the same time.

Parameters:
F  Handle to integer specifying file number to switch to
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecFil(F)
    INTEGER*4 F

LgIndex_t TecUtilTecGeo double *    XPos,
double *    YPos,
double *    ZPos,
LgIndex_t   PosCoordMode,
LgIndex_t   AttachToZone,
LgIndex_t   Zone,
LgIndex_t   Color,
LgIndex_t   FillColor,
LgIndex_t   IsFilled,
LgIndex_t   GeomType,
LgIndex_t   LinePattern,
double *    PatternLength,
double *    LineThickness,
LgIndex_t   NumEllipsePts,
LgIndex_t   ArrowheadStyle,
LgIndex_t   ArrowheadAttachment,
double *    ArrowheadSize,
double *    ArrowheadAngle,
LgIndex_t   Scope,
LgIndex_t   NumSegments,
LgIndex_t   NumSegPts,
float *    XGeomData,
float *    YGeomData,
float *    ZGeomData,
const char *    MacroFunctionCommand
 

Write a geometry to a binary tecplot datafile.

This function mimicks the TecGeo function that is part of the TecIO library.

Parameters:
MacroFunctionCommand  Macro command to execute when user cntrl-clicks on the geometry. Set to NULL to not use
XPos  X-Anchor position of the geometry
YPos  Y-Anchor position of the geometry
ZPos  Z-Anchor position of the geometry
PosCoordMode  Position coordinate mode of the geometry. Zero=Grid, one=Frame
AttachToZone  Flag specifying whether or not to attach the geometry to a zone. Zero=Attach, one=Don't attach
Zone  Zone to attach to
Color  Color of the geometry. (0-63)
FillColor  Fill Color of the geometry. (0-63)
IsFilled  Flag specifying whether or not to fill the geometry. One=Fill 0=Don't fill
GeomType  Type of geometry. Zero=2D line segments, 1=Rectangle, 2=Square, 3=Circle, 4=Ellipse, 5=3D line segments
LinePattern  Line pattern. Zero=Solid, 1=Dashed, 2=DashDot, 3=Dotted, 4=LongDash, 5=DashDotDot
PatternLength  Line Pattern Length in frame units (0 < L <= 100.0).
LineThickness  Line thickness in frame units (0 < L <= 100.0)
NumEllipsePts  Number of points to use to draw ellipses or circles
ArrowheadStyle  Style of arrowhead. Zero=Plain, 1=Filled, 2=Hollow
ArrowheadAttachment  How to attach the arrowhead(s). Zero=None, 1=Beginning, 2=End, 3=Both.
ArrowheadSize  Size of the arrowhead in frame units
ArrowheadAngle  Angle of the arrowhead in degrees
Scope  Scope for the geometry. Zero=Global, 1=Local
NumSegments  Number of polyline segments in the geometry
NumSegPts  Array of the number of points in each polyline segment
XGeomData  Array of X-values for the geometry
YGeomData  Array of Y-values for the geometry
ZGeomData  Array of Z-values for the geometry
Returns:
Returns 0 if successful, -1 if not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecGeo(
   &                   XPos,
   &                   YPos,
   &                   ZPos,
   &                   PosCoordMode,
   &                   AttachToZone,
   &                   Zone,
   &                   Color,
   &                   FillColor,
   &                   IsFilled,
   &                   GeomType,
   &                   LinePattern,
   &                   PatternLength,
   &                   LineThickness,
   &                   NumEllipsePts,
   &                   ArrowheadStyle,
   &                   ArrowheadAttachment,
   &                   ArrowheadSize,
   &                   ArrowheadAngle,
   &                   Scope,
   &                   NumSegments,
   &                   NumSegPts,
   &                   XGeomData,
   &                   YGeomData,
   &                   ZGeomData,
   &                   MacroFunctionCommand)
    REAL*8          XPos
    REAL*8          YPos
    REAL*8          ZPos
    INTEGER*4       PosCoordMode
    INTEGER*4       AttachToZone
    INTEGER*4       Zone
    INTEGER*4       Color
    INTEGER*4       FillColor
    INTEGER*4       IsFilled
    INTEGER*4       GeomType
    INTEGER*4       LinePattern
    REAL*8          PatternLength
    REAL*8          LineThickness
    INTEGER*4       NumEllipsePts
    INTEGER*4       ArrowheadStyle
    INTEGER*4       ArrowheadAttachment
    REAL*8          ArrowheadSize
    REAL*8          ArrowheadAngle
    INTEGER*4       Scope
    INTEGER*4       NumSegments
    INTEGER*4       NumSegPts
    REAL*4          XGeomData
    REAL*4          YGeomData
    REAL*4          ZGeomData
    CHARACTER*(*)   MacroFunctionCommand

LgIndex_t TecUtilTecGeoX ArgList_pa    ArgList
 

Writes the geometry item to the data file.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_GEOMTYPE
Type: GeomType_e
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes: GeomType_LineSegs3D,

SV_NUMGEOSEGMENTS
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes: Only applies to a geometry of type GeomType_LineSegs and is the number of geometry line segments. The value must be greater than or equal to 1

SV_NUMSEGPTS
Type: LgIndex_t *
Arg Function: TecUtilArgListAppendArray
Default: ---
Required: Yes
Notes: array holds the number of points defining each geometry segment

SV_ARROWHEADSTYLE
Type: ArrowheadStyle_e
Arg Function: TecUtilArgListAppendInt
Default: Arrowhead_Plain
Required: No
Notes: Arrowhead_Filled, Arrowhead_Hollow.

SV_ARROHEADATTACHMENT
Type: ArroheadAttachment_e
Arg Function: TecUtilArgListAppendInt
Default: ArrowheadAttach_None
Required: No
Notes: ArrowheadAttach_AtBothEnds,

SV_ARROWHEADSIZE
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 5.0
Required: No
Notes: than or equal to 50

SV_ARROWHEADANGLE
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 12.0
Required: No
Notes: Only applies to a geometry of type GeomType_LineSegs and is the arrowhead angle must be greater than or equal to 1 and less than or equal to 90

SV_NUMELLIPSEPTS
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 72.0
Required: No
Notes: to 3 and less than or equal to 720

SV_XGEOMDATA
Type: float *
Arg Function: TecUtilArgListAppendArray
Default: ---
Required: Yes
Notes: Floating point arrays containing the point data for the specific geometry

SV_YGEOMDATA
Type: float *
Arg Function: TecUtilArgListAppendArray
Default: ---
Required: Yes
Notes:

SV_ZGEOMDATA
Type: float *
Arg Function: TecUtilArgListAppendArray
Default: ---
Required: Yes
Notes:

SV_XPOS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes: Anchor position for the geometry

SV_YPOS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes:

SV_ZPOS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes:

SV_POSITIONCOORDSYS
Type: CoordSys_e
Arg Function: TecUtilArgListAppendInt
Default: CoordSys_Grid
Required: No
Notes: following values: CoordSys_Grid, CoordSys_Frame, CoordSys_Grid3D,

SV_ATTACHTOZONE
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: FALSE
Required: No
Notes: to a specific zone or map

SV_ZONE
Type: EntIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 1
Required: No
Notes: Zone or map number to which the geometry is attached

SV_COLOR
Type: ColorIndex_t
Arg Function: TecUtilArgListAppendInt
Default: Black_C
Required: No
Notes: Line color for the geometry may be a value greater than or equal to zero

SV_FILLCOLOR
Type: ColorIndex_t
Arg Function: TecUtilArgListAppendInt
Default: White_C
Required: No
Notes: Fill color for the geometry may be a value greater than or equal to zero

SV_ISFILLED
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: FALSE
Required: No
Notes: If applicable a value of TRUE indicates the geometry is filled.

SV_LINEPATTERN
Type: LinePattern_e
Arg Function: TecUtilArgListAppendInt
Default: LinePattern_Solid
Required: No
Notes: LinePattern_DashDotDot.

SV_PATTERNLENGTH
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 2.0
Required: No
Notes: Pattern length may be a value greater than or equal to zero and less than or equal to 100

SV_LINETHICKNESS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.1
Required: No
Notes: Line thickness may be a value greater than or equal to zero and less than or equal to 100

SV_SCOPE
Type: Scope_e
Arg Function: TecUtilArgListAppendInt
Default: Scope_Local
Required: No
Notes: or Scope_Local.

SV_CLIPPING
Type: Clipping_e
Arg Function: TecUtilArgListAppendInt
Default: Clipping_ClipToViewport
Required: No
Notes: Clipping_ClipToFrame.

SV_MACROFUNCTIONCOMMAND
Type: char *
Arg Function: TecUtilArgListAppendString
Default: NULL
Required: Np
Notes: Macro function command associated with the geometry


Returns:
TRUE if the input parameters are valid and the data was successfully written, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecGeoX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

LgIndex_t TecUtilTecIni const char *    Title,
const char *    Variables,
const char *    FName,
const char *    ScratchDir,
LgIndex_t   Debug,
LgIndex_t   VIsDouble
 

Initializes the process of writing a binary data file.

This must be called first before any other TecUtilTecxxx calls are made. You may write to multiple files by calling TecUtilTecIni more than once. Each time TecUtilTecIni is called, a new file is opened. Use TecUtilTecFil to switch between files.

Parameters:
Title  Title of the data set. Must be NULL terminated
Variables  List of variable names. Separate variable names with a comma or space. Must be NULL terminated
FName  Name of the file to create. Must be NULL terminated
ScratchDir  Name of the directory to put the scratch file. Must be NULL terminated
Debug  Handle to the integer flag for debugging. Set to 0 for no debugging or 1 to debug
VIsDouble  Handle to the integer flag for specifying whether field data generated in future calls to TecUtilTecIni are to be written in single or double precision. Set to 0 for single precision or 1 for double
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecIni(
   &                   Title,
   &                   Variables,
   &                   FName,
   &                   ScratchDir,
   &                   Debug,
   &                   VIsDouble)
    CHARACTER*(*)   Title
    CHARACTER*(*)   Variables
    CHARACTER*(*)   FName
    CHARACTER*(*)   ScratchDir
    INTEGER*4       Debug
    INTEGER*4       VIsDouble

LgIndex_t TecUtilTecLab const char *    S
 

Write a set of custom labels to the data file.

Parameters:
S  Character string of custom labels. Separate labels by a comma or space. For example, a set of custom labels for each day of the week is:"Sun Mon Tue Wed Thu Fri Sat."
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecLab(S)
    CHARACTER*(*) S

LgIndex_t TecUtilTecNod LgIndex_t   NData_Array
 

Writes an array of node data to the binary data file.

This is the connectivity list for finite element zones.

Parameters:
NData_Array  Array of integers. This is the connectivity list, dimensioned (m,JMax) (m moving fastest), where m is 3 for triangles, 4 for quads and tets, and 8 for bricks.
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecNod(NData_Array)
    INTEGER*4 NData_Array

LgIndex_t TecUtilTecTxt double *    XPos,
double *    YPos,
LgIndex_t   PosCoordMode,
LgIndex_t   AttachToZone,
LgIndex_t   Zone,
LgIndex_t   Font,
LgIndex_t   FontHeightUnits,
double *    FontHeight,
LgIndex_t   BoxType,
double *    BoxMargin,
double *    BoxLineThickness,
LgIndex_t   BoxColor,
LgIndex_t   BoxFillColor,
double *    Angle,
LgIndex_t   Anchor,
double *    LineSpacing,
LgIndex_t   TextColor,
LgIndex_t   Scope,
const char *    Text,
const char *    MacroFunctionCommand
 

Write a text label to a binary tecplot data file.

This function mimicks the TECTXT function that is part of the TecIO library.

Parameters:
XPos  X-Anchor position of the text
YPos  Y-Anchor position of the text
PosCoordMode  Coordinate system used by the anchor position 0=Grid, 1=Frame
AttachToZone  Flag specifying whether or not to attach the text to a zone. One=Attach 0=Don't attach
Zone  Zone to attach to
Font  Font to use. Zero=Helv, 1=HelvBold, 2=Greek, 3=Math, 4=UserDef, 5=Times, 6=TimesItalic, 7=TimesBold, 8=TimesItalicBold, 9=Courier, 10=CourierBold
FontHeightUnits  Units for the font height. Zero=Grid, 1=Frame, 2=Point
FontHeight  Height of the text
BoxType  Type of box to use. Zero=None, 1=Filled, 2=Hollow
BoxMargin  Box Margin in percentage of the font height
BoxLineThickness  Line thickness of the box in frame units.
TextColor  Color of the text, 0=Black, 1=Red, 2=Green, 3=Blue, 4=Cyan, 5=Yellow, 6=Purple, 7=White, 8-64 are Custom colors.
BoxColor  Color of the text box outline. 0=Black, 1=Red, 2=Green, 3=Blue, 4=Cyan, 5=Yellow, 6=Purple, 7=White, 8-64 are Custom colors.
BoxFillColor  Color of the text box interior. 0=Black, 1=Red, 2=Green, 3=Blue, 4=Cyan, 5=Yellow, 6=Purple, 7=White, 8-64 are Custom colors.
Angle  Angle of the text in degrees
Anchor  Anchor position of the text. Zero=Left, 1=Center, 2=Right, 3=MidLeft, 4=MidCenter, 5=MidRight, 6=HeadLeft, 7=HeadCenter, 8=HeadRight
LineSpacing  Line spacing of the text
Scope  Scope for the text. Zero=Global, 1=Local
Text  Actual text string
MacroFunctionCommand  Macro command to execute when user cntrl-clicks on the text label. Set to NULL to not use.
Returns:
Returns 0 if successful, -1 if not.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecTxt(
   &                   XPos,
   &                   YPos,
   &                   PosCoordMode,
   &                   AttachToZone,
   &                   Zone,
   &                   Font,
   &                   FontHeightUnits,
   &                   FontHeight,
   &                   BoxType,
   &                   BoxMargin,
   &                   BoxLineThickness,
   &                   BoxColor,
   &                   BoxFillColor,
   &                   Angle,
   &                   Anchor,
   &                   LineSpacing,
   &                   TextColor,
   &                   Scope,
   &                   Text,
   &                   MacroFunctionCommand)
    REAL*8          XPos
    REAL*8          YPos
    INTEGER*4       PosCoordMode
    INTEGER*4       AttachToZone
    INTEGER*4       Zone
    INTEGER*4       Font
    INTEGER*4       FontHeightUnits
    REAL*8          FontHeight
    INTEGER*4       BoxType
    REAL*8          BoxMargin
    REAL*8          BoxLineThickness
    INTEGER*4       BoxColor
    INTEGER*4       BoxFillColor
    REAL*8          Angle
    INTEGER*4       Anchor
    REAL*8          LineSpacing
    INTEGER*4       TextColor
    INTEGER*4       Scope
    CHARACTER*(*)   Text
    CHARACTER*(*)   MacroFunctionCommand

LgIndex_t TecUtilTecTxtX ArgList_pa    ArgList
 

Writes the text item to the data file.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_TEXT
Type: char *
Arg Function: TecUtilArgListAppendString
Default: ---
Required: Yes
Notes:

SV_XPOS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes: Anchor position for the text

SV_YPOS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes:

SV_ZPOS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes:

SV_POSITIONCOORDSYS
Type: CoordSys_e
Arg Function: TecUtilArgListAppendInt
Default: CoordSys_Grid
Required: No
Notes: following values: CoordSys_Grid, CoordSys_Frame, CoordSys_Grid3D.

SV_ATTACHZONE
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: FALSE
Required: No
Notes: a specific zone or map

SV_ZONE
Type: EntIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 1
Required: No
Notes: Zone or map number to which the text is attached

SV_FONT
Type: Font_e
Arg Function: TecUtilArgListAppendInt
Default: Font_HelveticaBold
Required: No
Notes: Font_TimesItalicBold, Font_Courier, Font_CourierBold

SV_SIZEUNITS
Type: Units_e
Arg Function: TecUtilArgListAppendInt
Default: Units_Point
Required: No
Notes: Text sizing untis may have any of the following values: Untis_Grid, Units_Frame or Untis_Point

SV_HEIGHT
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 14.0
Required: No
Notes: Text height in the specified units

SV_BOXTYPE
Type: TextBox_e
Arg Function: TecUtilArgListAppendInt
Default: TextBox_None
Required: No
Notes: Text box type may have any of the following values: TextBox_None, TextBox_Filled, or TextBox_Hollow

SV_MARGIN
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 20.0
Required: No
Notes: Margin between the text and the text box may be a value greater than or equal to zero and less than or equal to 2000

SV_LINETHICKNESS
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.1
Required: No
Notes: Text box line thickness may be a value greater than or equal to 0.001 or less than or equal to 100

SV_COLOR
Type: ColorIndex_t
Arg Function: TecUtilArgListAppendInt
Default: Black_C
Required: No
Notes: Text box line color may be a value greater or equal to zero.

SV_FILLCOLOR
Type: ColorIndex_t
Arg Function: TecUtilArgListAppendInt
Default: White_C
Required: No
Notes: Text box fill color may be a value greater or equal to zero

SV_ANGLE
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 0.0
Required: No
Notes: Text angle may have a value greater than or equal to -360 and less than or equal to 360

SV_ANCHOR
Type: TextAnchor_e
Arg Function: TecUtilArgListAppendInt
Default: TextAnchor_Left
Required: No
Notes: TextAnchor_HeadCenter, TextAnchor_HeadRight, TextAnchor_OnSide,

SV_LINESPACING
Type: double
Arg Function: TecUtilArgListAppendDouble
Default: 1.0
Required: No
Notes: Line spacing may have a value greater that or equal to zero and less than or equal to 50

SV_TEXTCOLOR
Type: ColorIndex_t
Arg Function: TecUtilArgListAppendInt
Default: Black_C
Required: No
Notes: Text color may be a value greater than or equal to zero

SV_SCOPE
Type: Scope_e
Arg Function: TecUtilArgListAppendInt
Default: Scope_Local
Required: No
Notes: values: Scope_Global or Scope_Local.

SV_CLIPPING
Type: Clipping_e
Arg Function: TecUtilArgListAppendInt
Default: Clipping_ClipToViewport
Required: No
Notes: Clipping applied to the text may have any of the following values: Clipping_ClipToViewport or Clipping_ClipToFrame

SV_MACROFUNCTIONCOMMAND
Type: char *
Arg Function: TecUtilArgListAppendString
Default: NULL
Required: No
Notes: Macro function command associated with the text


Returns:
TRUE if the input parameters are valid and the data was successfully written, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecTxtX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

LgIndex_t TecUtilTecUsr const char *    S
 

Add a user-defined record, in the form of a character string, to the Tecplot data file.

Tecplot currently ignores this record when reading Tecplot data files.

Parameters:
S  String used in the user-defined record
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecUsr(S)
    CHARACTER*(*) S

This function is comparable to $!TECUSR, a Tecplot macro command. Please refer to the examples given for $!TECUSR in the Tecplot Reference Manual.

   Insert a user-defined record with the string "Hi Mom" into the data file.
   TecUtilTecUsr("Hi Mom");

LgIndex_t TecUtilTecZAux char *    Name,
char *    Value
 

Writes the name/value zone auxiliary data pair to the data file.

Parameters:
Name  Name of the zone auxiliary data item.
Value  The value associated with the named zone auxiliary data item
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecZAux(
   &                   Name,
   &                   Value)
    CHARACTER*(*)   Name
    CHARACTER*(*)   Value

LgIndex_t TecUtilTecZne const char *    ZoneTitle,
LgIndex_t   IMx,
LgIndex_t   JMx,
LgIndex_t   KMx,
const char *    ZFormat,
const char *    DupList
 

Writes header information about the next zone to be added to the data file.

After TECZNE is called, you must call TECDAT one or more times (and then call TECNOD if the data format is FEBLOCK or FEPOINT).

Parameters:
ZoneTitle  Title of the zone. Must be NULL terminated
IMx  Pointer to integer specifying I-Dimension of the zone. If the data is finite-element then IMx is the number of data points.
JMx  Pointer to integer specifying J-Dimension of the zone if ordered otherwise the number of elements if finite element.
KMx  Pointer to integer specifying K-Dimension of the zone if ordered otherwise is set according to the following chart:
ZFormat  Must be set to one of BLOCK, POINT, FEBLOCK, or FEPOINT. Must be NULL terminated
DupList  This parameter specifies a list of variables to duplicate from the preceding zone. For a complete explination of the DupList parameter, see the Tecplot User's Manual.The DupList parameter is a string of the following form: "[n1,n2,...,nn][,FECONNECT]"where n1...nn are the numbers of the variables to duplicate. If the zone is finite element, you may optionally include FECONNECT, which will duplicate the connectivity list from the last zone.Notes for using the DupList parameter:1. You cannot use the DupList parameter for the first zone, since in that case there is nothing to duplicate.2. If you use FECONNECT, you cannot call TECNOD for this zone, since FECONNECT specifies that the entire connectivity list from the previous zone will be duplicated.3. For finite-element zones, you can pass "FECONNECT" to duplicate only the connectivity list.4. You may pass either NULL or a zero length string if you are not using this parameter.KMx for Triangles is 0, quads, is 1, tets is 2, and bricks is 3.
Returns:
0 if successful, -1 if unsuccessful.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecZne(
   &                   ZoneTitle,
   &                   IMx,
   &                   JMx,
   &                   KMx,
   &                   ZFormat,
   &                   DupList)
    CHARACTER*(*)   ZoneTitle
    INTEGER*4       IMx
    INTEGER*4       JMx
    INTEGER*4       KMx
    CHARACTER*(*)   ZFormat
    CHARACTER*(*)   DupList

LgIndex_t TecUtilTecZneX ArgList_pa    ArgList
 

Writes the zone to the data file.

Parameters:
ArgList  Set of Arglist entries. This is built using calls to TecUtilArgListAppendXXXX functions.

Arglist Values

SV_TITLE
Type: char *
Arg Function: TecUtilArgListAppendString
Default: Zone
Required: No
Notes: Zone title

SV_ZONETYPE
Type: ZoneType_e
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes: ZoneType_FELineSeg.

SV_IMAX
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes: of elements

SV_JMAX
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes:

SV_KMAX
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes:

SV_ISBLOCK
Type: Boolean_t
Arg Function: TecUtilArgListAppendInt
Default: ---
Required: Yes
Notes: If TRUE the variavles are written in block formate otherwise the less efficient point format is used.

SV_NUMFACECONNECTIONS
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 0
Required: No
Notes: be supplied. The value must be greater than or equal to zero

SV_FACENEIGHBORMODE
Type: FaceNeighborMode_e
Arg Function: TecUtilArgListAppendInt
Default: FaceNeighborMode_LocalOneToOne
Required: No
Notes: None

SV_VALUELOCATION
Type: LgIndex_t *
Arg Function: TecUtilArgListAppendArray
Default: NULL (all nodal)
Required: No
Notes: of the following values: ValueLocation_CellCentered or ValueLocation_Nodal

SV_VARSHAREZONE
Type: LgIndex_t *
Arg Function: TecUtilArgListAppendArray
Default: NULL (no sharing)
Required: No
Notes: be less than the current zone number

SV_CONNECTSHAREZONE
Type: LgIndex_t
Arg Function: TecUtilArgListAppendInt
Default: 0 (no sharing)
Required: No
Notes: doesn't share with any zone. If a zone number is specidied it must always


Returns:
TRUE if the input parameters are valid and the data was successfully written, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTecZneX(ArgListPtr)
    POINTER (ArgListPtr, ArgList)

Text_ID TecUtilText3DCreate double    PosX,
double    PosY,
double    PosZ,
Units_e    HeightUnits,
double    Height,
const char *    Text
 

Create a 3D text label in Tecplot.

Parameters:
PosX  The X-position of the text label.
PosY  The Y-position of the text label.
PosZ  The Z-position of the text label.
HeightUnits  The units to use for the text height.
Height  The height of the text.
Text  The text character string.
Returns:
Returns the ID for the created text.
Fortran Syntax:

    SUBROUTINE TecUtilText3DCreate(
   &           PosX,
   &           PosY,
   &           PosZ,
   &           HeightUnits,
   &           Height,
   &           Text,
   &           ResultPtr)
    REAL*8         PosX
    REAL*8         PosY
    REAL*8         PosZ
    INTEGER*4      HeightUnits
    REAL*8         Height
    CHARACTER*(*)  Text
    POINTER        (ResultPtr, Result)

ColorIndex_t TecUtilTextBoxGetColor Text_ID    TID
 

Get the line color of the box surrounding the text object.

Parameters:
TID  Handle to a text object.
Returns:
The text box color.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextBoxGetColor(TID)
    INTEGER*4 TID

ColorIndex_t TecUtilTextBoxGetFillColor Text_ID    TID
 

Get the fill color of the box surrounding the text object.

Parameters:
TID  Handle to a text object.
Returns:
The text box fill color.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextBoxGetFillColor(TID)
    INTEGER*4 TID

double TecUtilTextBoxGetLineThickness Text_ID    TID
 

Get the line thickness of the text box border.

Parameters:
TID  Handle to a text object.
Returns:
The text box line thickness in frame units.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilTextBoxGetLineThickness(TID)
    INTEGER*4 TID

double TecUtilTextBoxGetMargin Text_ID    TID
 

Get the margin between the text and the box surrounding the text object.

Parameters:
TID  Handle to a text object.
Returns:
The text box margin in frame units.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilTextBoxGetMargin(TID)
    INTEGER*4 TID

TextBox_e TecUtilTextBoxGetType Text_ID    TID
 

Get the type of the box surrounding the text object.

Parameters:
TID  Handle to a text object.
Returns:
The possible values are: TextBox_None, TextBox_Filled, TextBox_Hollow.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextBoxGetType(TID)
    INTEGER*4 TID

void TecUtilTextBoxSetColor Text_ID    TID,
ColorIndex_t    BoxColor
 

Set the line color for the box surrounding a text object.

Parameters:
TID  Handle to a text object.
BoxColor  Line color of the box.The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, CustomXX_C where XX is in the range 1-64.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextBoxSetColor(
   &           TID,
   &           BoxColor)
    INTEGER*4       TID
    INTEGER*4       BoxColor

Create a boxed text label with the box color set to red.

void TecUtilTextBoxSetFillColor Text_ID    TID,
ColorIndex_t    BoxFillColor
 

Set the fill color of the box surrounding a text object.

Parameters:
TID  Handle to a text object.
BoxFillColor  Fill color of the box. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, CustomXX_C where XX is in the range 1-64.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextBoxSetFillColor(
   &           TID,
   &           BoxFillColor)
    INTEGER*4       TID
    INTEGER*4       BoxFillColor

Create a filled boxed text label with a fill color of blue.

void TecUtilTextBoxSetLineThickness Text_ID    TID,
double    LineThickness
 

Set the line thickness of the box surrounding the text object.

Parameters:
TID  Handle to a text object.
LineThickness  Line thickness of the box, in frame units
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextBoxSetLineThickness(
   &           TID,
   &           LineThickness)
    INTEGER*4       TID
    REAL*8          LineThickness

void TecUtilTextBoxSetMargin Text_ID    TID,
double    Margin
 

Set the margin between the text and the box surrounding the text object.

Parameters:
TID  Handle to a text object.
Margin  Margin between the text and the box in percentage of the text height
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextBoxSetMargin(
   &           TID,
   &           Margin)
    INTEGER*4       TID
    REAL*8          Margin

Create a boxed text label with a box margin of 60 percent of the height of the text:

   Text_ID Text;
   Text = TecUtilTextCreate(CoordSys_Frame,50.0,50.0,Units_Points,30.0,
                            "Hi Mom");
   TecUtilTextBoxSetType(Text, TextBox_Hollow);
   TecUtilTextBoxSetMargin(Text, 60.0);

void TecUtilTextBoxSetType Text_ID    TID,
TextBox_e    TextBoxType
 

Set the type of the box surrounding the text object.

Parameters:
TID  Handle to a text object.
TextBoxType  Text box type. The possible values are: TextBox_None, TextBox_Filled, TextBox_Hollow
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextBoxSetType(
   &           TID,
   &           TextBoxType)
    INTEGER*4       TID
    INTEGER*4       TextBoxType

Create a hollow boxed text label.

   Text_ID Text;
   Text = TecUtilTextCreate(CoordSys_Frame,50.0,50.0,Units_Points,
                              30.0,"Hi Mom");
   TecUtilTextBoxSetType(Text, TextBox_Hollow);

Text_ID TecUtilTextCreate CoordSys_e    PositionCoordSys,
double    PosX,
double    PosY,
Units_e    HeightUnits,
double    Height,
const char *    Text
 

Creates a text object.

Use the handle obtained from this function to set text attributes using the TecUtilTextSetxxx functions. Units are in frame coordinates by default.

Parameters:
PositionCoordSys  Coordinate system used to position the text object. The possible values are: CoordSys_Grid or CoordSys_Frame
PosX  X-Coordinate for anchor position of the text in the specified PositionCoordSys coordinate system
PosY  Y-Coordinate for anchor position of the text in the specified PositionCoordSys coordinate system
HeightUnits  Units for the character height of the text. If PositionCoordSys is CoordSys_Frame, units must be Units_Frame or Units_Point. If PositionCoordSys is CoordSys_Grid, units must be Units_Frame or Units_Grid.
Height  Character height of the text in the specified HeightUnits units
Text  String to use to create the text object. Cannot be NULL
Returns:
If successfully created then the return value is a valid ID that you may use to further set attributes for this text object. Otherwise, TECUTILBADID is returned.
Fortran Syntax:

    SUBROUTINE TecUtilTextCreate(
   &           PositionCoordSys,
   &           PosX,
   &           PosY,
   &           HeightUnits,
   &           Height,
   &           Text,
   &           ResultPtr)
    INTEGER*4      PositionCoordSys
    REAL*8         PosX
    REAL*8         PosY
    INTEGER*4      HeightUnits
    REAL*8         Height
    CHARACTER*(*)  Text
    POINTER        (ResultPtr, Result)

Create a simple text label:

   Text_ID Text;
   Text = TecUtilTextCreate(CoordSys_Frame, 50.0, 50.0,
                            Units_Point, 30.0, "Hello");

void TecUtilTextDelete Text_ID    TID
 

Deletes the specified text object.

Parameters:
TID  Handle to a text object
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextDelete(TID)
    INTEGER*4 TID

Delete the first text object from the list of text objects maintained by the current frame.

   Text_ID Text;
   
   Text = TecUtilTextGetBase();
   if (Text != TECUTILBADID)
     {
       TecUtilTextDelete(Text);
     }

TextAnchor_e TecUtilTextGetAnchor Text_ID    TID
 

Get the text anchor style.

Parameters:
TID  Handle to a text object
Returns:
The text anchor style. The possible values are: TextAnchor_Left, TextAnchor_Center, TextAnchor_Right, TextAnchor_MidLeft, TextAnchor_MidCenter, TextAnchor_MidRight, TextAnchor_HeadLeft, TextAnchor_HeadCenter, TextAnchor_HeadRight, TextAnchor_OnSide.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetAnchor(TID)
    INTEGER*4 TID

void TecUtilTextGetAnchorPos Text_ID    TID,
double *    XOrThetaPos,
double *    YOrRPos,
double *    ZPos
 

Get the anchor coordinate position of the text object in the current coordinate system.

Note: See also TecUtilTextSetCoordSysAndUnits.

Parameters:
TID  Handle to a text object
XOrThetaPos  Pointer to the text object's X or Theta anchor position.
YOrRPos  Pointer to the text object's Y or R (radius) anchor position
ZPos  Pointer to the text object's anchor Z position.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextGetAnchorPos(
   &           TID,
   &           XOrThetaPos,
   &           YOrRPos,
   &           ZPos)
    INTEGER*4       TID
    REAL*8          XOrThetaPos
    REAL*8          YOrRPos
    REAL*8          ZPos

Text_ID Text;

   double  XOrThetaPos;
   double  YOrRPos;
   double  ZPos;
   
   / * use TecUtilTextDelete() when 'Text' is no longer needed * /
   Text = TecUtilTextCreate(CoordSys_Frame, 50.0, 50.0,
                            Units_Point,30.0, "Hello");
   if (Text != TECUTILBADID)
     {
       / * do all sorts of things * /
         .
         .
         .
   
       / * get the current anchor position of the text * /
       TecUtilTextGetAnchorPos(Text, &XOrThetaPos, &YOrRPos,
    &ZPos);
     }

double TecUtilTextGetAngle Text_ID    TID
 

Get the text angle.

Parameters:
TID  Handle to a text object
Returns:
The text angle in degrees.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilTextGetAngle(TID)
    INTEGER*4 TID

Clipping_e TecUtilTextGetClipping Text_ID    TID
 

Get the clipping properties of a text object.

Parameters:
TID  ID of the text object
Returns:
Returns the clipping type. Can be one of Clipping_ClipToViewport or Clipping_ClipToFrame.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetClipping(TID)
    INTEGER*4 TID

ColorIndex_t TecUtilTextGetColor Text_ID    TID
 

Get the color of the text object.

Parameters:
TID  Handle to a text object
Returns:
Text color. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, CustomXX_C where XX is in the range 1-64.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetColor(TID)
    INTEGER*4 TID

Font_e TecUtilTextGetFont Text_ID    TID
 

Get the font used for the text object.

Parameters:
TID  Handle to a text object.
Returns:
Text font. The possible values are: Font_Helvetica, Font_HelveticaBold, Font_Greek, Font_Math, Font_UserDefined, Font_Times, Font_TimesItalic, Font_TimesItalicBold, Font_TimesBold, Font_Courier, Font_CourierBold.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetFont(TID)
    INTEGER*4 TID

double TecUtilTextGetHeight Text_ID    TID
 

Get the text height in the currently defined text size units.

Parameters:
TID  Handle to a text object.
Returns:
Text height measured in the currently defined text size units.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilTextGetHeight(TID)
    INTEGER*4 TID

double TecUtilTextGetLineSpacing Text_ID    TID
 

Get the spacing between lines of text.

Note: A newline (
) character within a string causes the line to wrap at that point.

Parameters:
TID  Handle to a text object.
Returns:
Vertical line spacing between multiple lines of a ext object.
Fortran Syntax:

    REAL*8 FUNCTION TecUtilTextGetLineSpacing(TID)
    INTEGER*4 TID

Boolean_t TecUtilTextGetMacroFunctionCmd Text_ID    TID,
char **    MacroFunctionCommand
 

Get the macro function command string associated with the text object.

Parameters:
TID  Handle to a text object.
MacroFunctionCommand  Handle to a macro function command string. The result must be deallocated with TecUtilStringDealloc when it is no longer needed
Returns:
TRUE if sufficient memory is available for the string, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetMacroFunctionCmd(
   &                   TID,
   &                   MacroFunctionCommand,
   &                   MacroFunctionCommandLength)
    INTEGER*4       TID
    CHARACTER*(*)   MacroFunctionCommand
    INTEGER*4       MacroFunctionCommandLength

Boolean_t IsOk;

   Text_ID   Text;
   char      *MacroCommand = NULL;
     .
     .
     .
   
   / * get the text's associated macro command * /
   IsOk = TecUtilTextGetMacroFunctionCmd(Text, &MacroCommand);
   if (IsOk)
     {
       / * do something with command * /
         .
         .
         .
   
       / * cleanup; macro command no longer needed * /
       TecUtilStringDealloc(&MacroCommand);
     }

Text_ID TecUtilTextGetNext Text_ID    TID
 

Get the next text object, relative to the specified text object, from the list of text objects maintained by the current frame.

Parameters:
TID  Handle to a text object.
Returns:
Text object following the specified text object. If the specified text object is the last in the list then TECUTILBADID is returned.
Fortran Syntax:

   SUBROUTINE TecUtilTextGetNext(
  &           TIDPtr,
  &           ResultPtr)
   POINTER        (TIDPtr, TID)
   POINTER        (ResultPtr, Result)

CoordSys_e TecUtilTextGetPositionCoordSys Text_ID    TID
 

Get the coordinate system to which the text is associated.

Parameters:
TID  Handle to a text object.
Returns:
Text object's coordinate system. The possible values are: CoorSys_Grid, CoorSys_Frame.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetPositionCoordSys(TID)
    INTEGER*4 TID

Text_ID TecUtilTextGetPrev Text_ID    TID
 

Get the previous text object, relative to the specified text object, from the list of text objects maintained by the current frame.

Note: See also TecUtilTextGetBase and TecUtilTextGetNext.

Parameters:
TID  Handle to a text object defined in the current frame.
Returns:
Text object preceeding the specified text object. If the specified text object is the first in the list then the last text object in the list is returned.
Fortran Syntax:

   SUBROUTINE TecUtilTextGetPrev(
  &           TIDPtr,
  &           ResultPtr)
   POINTER        (TIDPtr, TID)
   POINTER        (ResultPtr, Result)

Scope_e TecUtilTextGetScope Text_ID    TID
 

Get the scope of the text object.

Text with local scope is displayed only in the frame in which it is created. If the the text is defined as having global scope it will appear in all "like" frames, that is, those frames using the same data set as the one in which the text was created.

Parameters:
TID  Handle to a text object.
Returns:
Text scope. The possible values are: Scope_Local or Scope_Global.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetScope(TID)
    INTEGER*4 TID

Units_e TecUtilTextGetSizeUnits Text_ID    TID
 

Get the size units for the text object.

Note: See also TecUtilTextGetHeight.

Parameters:
TID  Handle to a text object.
Returns:
Text size units. The possible values are: Units_Grid, Units_Frame or Units_Point.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetSizeUnits(TID)
    INTEGER*4 TID

Boolean_t TecUtilTextGetString Text_ID    TID,
char **    TextString
 

Get the string associated with the text object.

Parameters:
TID  Handle to a text object.
TextString  String of the text object. Result must be deallocated with TecUtilStringDealloc when no longer needed.
Returns:
TRUE if sufficient memory is avialable for the string, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetString(
   &                   TID,
   &                   TextString,
   &                   TextStringLength)
    INTEGER*4       TID
    CHARACTER*(*)   TextString
    INTEGER*4       TextStringLength

Text_ID Text;

   Boolean_t IsOk = FALSE;
   char      *TextString = NULL;
   
   Text = TecUtilTextCreate(CoordSys_Frame,50.0, 50.0, Units_Point,
                            30.0, "Hello");
   if (Text != TECUTILBADID)
     {
       / * do some things with the text * /
         .
         .
         .
   
       / * change the string of the text object * /
       TecUtilTextSetString(Text, "Hello World");
   
       / * do some more things * /
         .
         .
         .
   
       / * print the contents of the text * /
       / * string to standard output      * /
       IsOk = TecUtilTextGetString(Text, &TextString);
       if (IsOk)
         {
           printf("%s\n", TextString);
           TecUtilStringDealloc(&TextString);
         }
     }

void TecUtilTextGetXYPos Text_ID    TID,
double *    XPos,
double *    YPos
 

Deprecated:
See also:
TecUtilTextGetAnchorPos

EntIndex_t TecUtilTextGetZoneOrMap Text_ID    TID
 

Get the zone or map with which the text object is associated (if it is attached).

Note: See also TecUtilTextIsAttached and TecUtilTextSetAttached.

Parameters:
TID  Handle to a text object.
Returns:
Zone or map.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextGetZoneOrMap(TID)
    INTEGER*4 TID

Boolean_t TecUtilTextIsAttached Text_ID    TID
 

Determine if the text object is attached to a zone or map.

Note: See also TecUtilTextGetZoneOrMap and TecUtilGeomSetZoneOrMap.

Parameters:
TID  Handle to a text object.
Returns:
TRUE if attached, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextIsAttached(TID)
    INTEGER*4 TID

Boolean_t TecUtilTextIsValid Text_ID    TID
 

Determine if the text object is valid in the current frame context.

Parameters:
TID  Handle to a text object.
Returns:
TRUE if TID is a valid text object, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextIsValid(TID)
    INTEGER*4 TID

void TecUtilTextSetAnchor Text_ID    TID,
TextAnchor_e    Anchor
 

Set the anchor style for a text object.

Parameters:
TID  Handle to a text object.
Anchor  Anchor style. The possible values are: TextAnchor_Left, TextAnchor_Center, TextAnchor_Right, TextAnchor_MidLeft, TextAnchor_MidCenter, TextAnchor_MidRight, TextAnchor_HeadLeft, TextAnchor_HeadCenter, TextAnchor_HeadRight, TextAnchor_OnSide
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetAnchor(
   &           TID,
   &           Anchor)
    INTEGER*4       TID
    INTEGER*4       Anchor

void TecUtilTextSetAnchorPos Text_ID    TID,
double    XOrThetaPos,
double    YOrRPos,
double    ZPos
 

Set the XY-position for the text object.

The text is always anchored in the coordinate system specified by TecUtilTextSetCoordSysAndUnits each time the text object is drawn.

Parameters:
TID  Handle to a text object.
XOrThetaPos  The text object's X or Theta anchor position.
YOrRPos  The text object's Y or R (radius) anchor position.
ZPos  The text object's Z position.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetAnchorPos(
   &           TID,
   &           XOrThetaPos,
   &           YOrRPos,
   &           ZPos)
    INTEGER*4       TID
    REAL*8          XOrThetaPos
    REAL*8          YOrRPos
    REAL*8          ZPos

void TecUtilTextSetAngle Text_ID    TID,
double    Angle
 

Set the angle in degrees for a text object.

Parameters:
TID  Handle to a text object.
Angle  Text angle in degrees that must be between the inclusive angles of -360 and 360.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetAngle(
   &           TID,
   &           Angle)
    INTEGER*4       TID
    REAL*8          Angle

void TecUtilTextSetAttached Text_ID    TID,
Boolean_t    Attached
 

Indicate if the the text object should be attached to a zone or map.

Note: See also TecUtilTextGetZoneOrMap and TecUtilTextSetZoneOrMap.

Parameters:
TID  Handle to a text object.
Attached  Set to TRUE to attach, FALSE otherwise.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetAttached(
   &           TID,
   &           Attached)
    INTEGER*4       TID
    INTEGER*4       Attached

void TecUtilTextSetClipping Text_ID    TID,
Clipping_e    Clipping
 

Set the clipping properties of a text object.

Parameters:
TID  ID of the text object
Clipping  New clipping property for the text object. The possible values are: Clipping_ClipToViewport and Clipping_ClipToFrame.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetClipping(
   &           TID,
   &           Clipping)
    INTEGER*4       TID
    INTEGER*4       Clipping

Create a texts string "Test Text Object" and set the clipping to "ClipToFrame":

void TecUtilTextSetColor Text_ID    TID,
ColorIndex_t    Color
 

Set the color of a text object.

Parameters:
TID  Handle to a text object.
Color  Text color. The possible values are: Black_C, Blue_C, Red_C, Green_C, Cyan_C, Purple_C, Yellow_C, White_C, Custom1_C, Custom2_C, Custom3_C, Custom4_C, Custom5_C, Custom6_C, Custom7_C, Custom8_C.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetColor(
   &           TID,
   &           Color)
    INTEGER*4       TID
    INTEGER*4       Color

void TecUtilTextSetCoordSysAndUnits Text_ID    TID,
CoordSys_e    PositionCoordSys,
Units_e    HeightUnits
 

Set the coordinate system for the position and the units for the character height of a text object.

The text object's position and text height are adjusted so that it remains identical to its visual appearance in the original coordinate and unit system.

Parameters:
TID  Handle to the text object.
PositionCoordSys  Coordinate system in which the text is positioned. The possible values are: CoordSys_Frame or CoordSys_Grid.
HeightUnits  Units for the character height of the text. If CoordSys is CoordSys_Frame, units must be Units_Frame or Units_Point. If CoordSys is CoordSys_Grid, units must be Units_Frame or Units_Grid.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetCoordSysAndUnits(
   &           TID,
   &           PositionCoordSys,
   &           HeightUnits)
    INTEGER*4       TID
    INTEGER*4       PositionCoordSys
    INTEGER*4       HeightUnits

Create a text which is positioned and sized in the grid coordinate system that reads "Hello." Then, change the text to be positioned and sized in the frame coordinate system :

   Text_ID Text;
   Text = TecUtilTextCreate(CoordSys_Grid, 0.25, 0.25,
                            Units_Grid, 0.25, "Hello.");
   if (Text != TECUTILBADID)
     {
        .
        .
      / * Change the text position and size to   * /
      / * be in the frame coordinate system and  * /
      / * set the text position to be the center * /
      / * of the frame coordinate system         * /
       TecUtilTextSetCoordSysAndUnits(Text,CoordSys_Frame,
                                      Units_Frame);
       TecUtilTextSetXYPos(Text, 50.0, 50.0);
         .
         .
       TecUtilTextDelete(Text);
     }

void TecUtilTextSetFont Text_ID    TID,
Font_e    Font
 

Set the font for a text object.

Parameters:
TID  Handle to the text object.
Font  Text font. The possible values are: Font_Helvetica, Font_HelveticaBold, Font_Greek, Font_Math, Font_UserDefined, Font_Times, Font_TimesItalic, Font_TimesItalicBold, Font_TimesBold, Font_Courier, Font_CourierBold
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetFont(
   &           TID,
   &           Font)
    INTEGER*4       TID
    INTEGER*4       Font

void TecUtilTextSetHeight Text_ID    TID,
double    Height
 

Set the character height for a text object.

Note: See also TecUtilTextSetCoordSysAndUnits.

Parameters:
TID  Handle to the text object.
Height  Character height in the current text size units.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetHeight(
   &           TID,
   &           Height)
    INTEGER*4       TID
    REAL*8          Height

void TecUtilTextSetLineSpacing Text_ID    TID,
double    LineSpacing
 

Set the line spacing for a text object.

Line spacing is dependent on the height of the text and the size unit system in which it is drawn.

Parameters:
TID  Handle to the text object.
LineSpacing  Vertical spacing between multiple lines of a text object. Multiple lines are achieved by inserting newline (
) characters within the string of the text object
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetLineSpacing(
   &           TID,
   &           LineSpacing)
    INTEGER*4       TID
    REAL*8          LineSpacing

Boolean_t TecUtilTextSetMacroFunctionCmd Text_ID    TID,
const char *    Command
 

Set the macro function command associated with a text object.

Parameters:
TID  Handle to the text object.
Command  Macro function command string.
Returns:
TRUE if sufficient memory was available to make a copy of Command, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextSetMacroFunctionCmd(
   &                   TID,
   &                   Command)
    INTEGER*4       TID
    CHARACTER*(*)   Command

void TecUtilTextSetScope Text_ID    TID,
Scope_e    Scope
 

Set the scope of the text object.

Text with local scope is displayed only in the frame in which it is created. If the the text is defined as having global scope it will appear in all "like" frames, that is, those frames using the same data set as the one in which the text was created.

Parameters:
TID  Handle to the text object.
Scope  Text scope. The possible values are Scope_Local or Scope_Global.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetScope(
   &           TID,
   &           Scope)
    INTEGER*4       TID
    INTEGER*4       Scope

Boolean_t TecUtilTextSetString Text_ID    TID,
const char *    TextString
 

Set the text string for a text object.

Parameters:
TID  Handle to the text object.
TextString  String copied into the text object.
Returns:
TRUE if sufficient memory exists for the string copy, otherwise FALSE.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilTextSetString(
   &                   TID,
   &                   TextString)
    INTEGER*4       TID
    CHARACTER*(*)   TextString

void TecUtilTextSetXYPos Text_ID    TID,
double    XPos,
double    YPos
 

Deprecated:
See also:
TecUtilTextSetAnchorPos

void TecUtilTextSetZoneOrMap Text_ID    TID,
EntIndex_t    ZoneOrMap
 

Set the zone or map to which the text object is associated (if it is attached).

Note: See also TecUtilTextIsAttached and TecUtilTextSetAttached.

Parameters:
TID  Handle to the text object.
ZoneOrMap  Zone or Map.
Returns:
None.
Fortran Syntax:

    SUBROUTINE TecUtilTextSetZoneOrMap(
   &           TID,
   &           ZoneOrMap)
    INTEGER*4       TID
    INTEGER*4       ZoneOrMap

Boolean_t TecUtilTimerAddCallback UInt32_t    Interval,
ArbParam_t    ClientData,
AddOnTimerCallback_pf    TimerCallback
 

Adds a timer callback, a function which is called by Tecplot at a set interval of time.

See also "TecUtilOnIdleQueueAddCallback".

Parameters:
Interval  Timeout interval in milliseconds.
ClientData  This can be any 32-bit value and will be passed to the timer callback. Typically this is a pointer to a structure
TimerCallback  Function to be called at each timeout interval. This function should return TRUE to continue the timer, or FALSE to stop it.The timer callback must be defined as follows:Boolean_t TimerCallback(ArbParam_t ClientData);Note: In your timer callback you must check to see if Tecplot is locked before calling any TecUtil functions, as illustrated in the source code example below
Returns:
TRUE if the callback was successfully added, FALSE otherwise. This function returns FALSE only if Tecplot is unable to obtain a timer from the operating system.
Set up a timer with an interval of one second.

   static Boolean_t MyTimerCallback(ArbParam_t MyData)
   {
     if (!TecUtilLockIsOn())
       {
         // Tecplot isn't currently locked, so it's safe to call TecUtilFunctions 
         TecUtilLockStart(AddOnID); // Lock Tecplot for ourselves
   
         // ... Do processing with TecUtil functions
   
         // Release Tecplot for other addons
         TecUtilLockFinish(AddOnID); 
       }
     else
       {
         // Another addon has locked Tecplot. It is NOT safe to
         // call any TecUtil functions, so do nothing.
       }
   
     // Return TRUE to continue the timer, return FALSE to stop the timer.
     return TRUE; 
   }
   // Make the above function called every second.
   TecUtilTimerAddCallback(1000,NULL,MyTimerCallback);

For a complete example of an addon which uses timers, see the timetest sample.

Boolean_t TecUtilUndoCanUndo void   
 

Determine if you can undo the last operation.

Returns:
Returns TRUE if the last operation is undoable otherwise FALSE.

Boolean_t TecUtilUndoDoUndo void   
 

Undo the last opeartion.

Returns:
Returns TRUE if the undo is successful otherwise FALSE.

Boolean_t TecUtilZoneRealloc EntIndex_t    Zone,
LgIndex_t    NewIMaxOrNumDataPoints,
LgIndex_t    NewJMaxOrNumElements,
LgIndex_t    NewKMax
 

Reallocate a zone in the data set attached to the current frame.

This in effect redimensions the raw data referenced by the zone.

Parameters:
Zone  One-based index of the zone to reallocate
NewIMaxOrNumDataPoints  New IMax or number of data points
NewJMaxOrNumElements  New JMax or number of elements
NewKMax  New KMax
Returns:
TRUE if successful, FALSE otherwise.
Fortran Syntax:

    INTEGER*4 FUNCTION TecUtilZoneRealloc(
   &                   Zone,
   &                   NewIMaxOrNumDataPoints,
   &                   NewJMaxOrNumElements,
   &                   NewKMax)
    INTEGER*4       Zone
    INTEGER*4       NewIMaxOrNumDataPoints
    INTEGER*4       NewJMaxOrNumElements
    INTEGER*4       NewKMax

Reallocate the first zone:

   TecUtilZoneRealloc(1,15,4,1);

void TecUtilZoneSetBuildZoneOptInfo EntIndex_t    Zone,
Boolean_t    BuildZoneOptInfo
 

Instruct Tecplot to either build or forgo building zone optimization information.

Zone optimization information enhances interactive performance but has an upfront performance cost. This function can be called any time after the zone has been created.

Parameters:
Zone  Zone for which the decision to build zone optimization information needs changing.
BuildZoneOptInfo  Indicates if Tecplot should build zone optimization if needed.
Fortran Syntax:

    SUBROUTINE TecUtilTecUtilZoneSetBuildZoneOptInfo(
   &           Zone,
   &           BuildZoneOptInfo)
    INTEGER*4       Zone
    INTEGER*4       BuildZoneOptInfo

See also:
TecUtilDataSetAddZoneX allows you to create a zone with the appropriate setting.


Generated on Tue May 18 14:14:11 2004 for Tecplot by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002