VTK  9.4.20241016
Public Member Functions | Public Attributes | List of all members
ensight_gold::EnSightFile Struct Reference

EnSightFile performs processing on a single file, whether it's a case file, geometry, etc. More...

#include <EnSightFile.h>

Public Member Functions

 EnSightFile ()
 
 ~EnSightFile ()
 
bool SetFileNamePattern (const std::string &filename, bool isCaseFile=false)
 Set the filename.
 
void SetTimeAndFileSetInfo (int timeSet, int fileSet)
 Set the time and file set ids.
 
void SetTimeSetInfo (std::shared_ptr< TimeSetInfo > info)
 Set the time set info.
 
std::shared_ptr< TimeSetInfoGetTimeSetInfo ()
 
void SetFileSetInfo (std::shared_ptr< FileSetInfo > info)
 Set the file set info.
 
bool SetTimeStepToRead (double ts)
 Set the time step to read.
 
bool CheckForMultipleTimeSteps ()
 Checks if this file has multiple time steps or not.
 
void CheckForBeginTimeStepLine ()
 Checks for a BEGIN TIME STEP line and ensures the file is at the correct position to continue reading.
 
bool CheckForEndTimeStepLine ()
 Checks for a END TIME STEP line.
 
std::pair< bool, std::string > ReadNextLine (int size=MAX_LINE_LENGTH)
 For ASCII files, reads the next line while skipping lines that contain only whitespace or a comment.
 
std::pair< bool, std::string > ReadLine (int size=MAX_LINE_LENGTH)
 Reads the next line up to size characters (ASCII) or size characters (binary)
 
void SkipNLines (vtkIdType n)
 Skip the specified number of non-numeric lines when reading.
 
template<typename T >
void SkipNNumbers (vtkIdType n, int numsPerLine=1)
 Skip the specified number of numbers when reading.
 
void GoBackOneLine ()
 Move the read position of the file stream back by MAX_LINE_LENGTH characters.
 
bool DetectByteOrder (int *result)
 Attempts to determine the byte order given an int read from the file.
 
template<typename T >
bool ReadNumber (T *result, bool padBeginning=true, bool padEnd=true)
 Read a number from file and store it in result.
 
template<typename T >
bool ReadArray (T *result, vtkIdType n, bool singleLine=false, bool padBeginning=true, bool padEnd=true)
 Read an array of size n.
 
void MoveReadPosition (int numBytes)
 Move the read position ahead n bytes.
 
std::streampos GetCurrentPosition ()
 Get current position of reader in stream.
 
int GetCurrentOpenTimeStep ()
 This is used when change_coords_only is set, for determining if the file we currently have open is the file that contains the connectivity.
 
bool OpenFile (const std::string &filename, bool isCaseFile=false)
 Opens the file and performs some processing to determine the format of the file.
 
bool OpenFile (bool isCaseFile=false)
 

Public Attributes

FileType Format = FileType::Unknown
 
Endianness ByteOrder = Endianness::Unknown
 
int TimeSet = -1
 
int FileSet = -1
 

Detailed Description

EnSightFile performs processing on a single file, whether it's a case file, geometry, etc.

It also works on ASCII, C binary, and Fortran binary files.

Definition at line 61 of file EnSightFile.h.

Constructor & Destructor Documentation

◆ EnSightFile()

ensight_gold::EnSightFile::EnSightFile ( )

◆ ~EnSightFile()

ensight_gold::EnSightFile::~EnSightFile ( )

Member Function Documentation

◆ SetFileNamePattern()

bool ensight_gold::EnSightFile::SetFileNamePattern ( const std::string &  filename,
bool  isCaseFile = false 
)

Set the filename.

isCaseFile should be set to true for case files, or other similar type of metadata files (like a filename numbers file). When true, it will immediately open that file. Returns true that the filename was set and in the case of casefiles, returns true if OpenFile was successful

◆ SetTimeAndFileSetInfo()

void ensight_gold::EnSightFile::SetTimeAndFileSetInfo ( int  timeSet,
int  fileSet 
)

Set the time and file set ids.

◆ SetTimeSetInfo()

void ensight_gold::EnSightFile::SetTimeSetInfo ( std::shared_ptr< TimeSetInfo info)

Set the time set info.

◆ GetTimeSetInfo()

std::shared_ptr< TimeSetInfo > ensight_gold::EnSightFile::GetTimeSetInfo ( )
inline

Definition at line 88 of file EnSightFile.h.

◆ SetFileSetInfo()

void ensight_gold::EnSightFile::SetFileSetInfo ( std::shared_ptr< FileSetInfo info)

Set the file set info.

◆ SetTimeStepToRead()

bool ensight_gold::EnSightFile::SetTimeStepToRead ( double  ts)

Set the time step to read.

If data is not transient, will just open the file if it's not already. For transient data, it will make sure the correct file is open, and go to the correct time step in the file. If it returns false, that means some file open or seek operation failed. See output messages for details on the failure.

◆ CheckForMultipleTimeSteps()

bool ensight_gold::EnSightFile::CheckForMultipleTimeSteps ( )

Checks if this file has multiple time steps or not.

If there's a wildcard in the FileNamePattern, return true, otherwise it will check for the existence of the BEGIN TIME STEP line.

◆ CheckForBeginTimeStepLine()

void ensight_gold::EnSightFile::CheckForBeginTimeStepLine ( )

Checks for a BEGIN TIME STEP line and ensures the file is at the correct position to continue reading.

◆ CheckForEndTimeStepLine()

bool ensight_gold::EnSightFile::CheckForEndTimeStepLine ( )

Checks for a END TIME STEP line.

Returns true if found and sets the position to be just after that line. Returns false if that line isn't found and resets the position to the place the file was at before this call.

◆ ReadNextLine()

std::pair< bool, std::string > ensight_gold::EnSightFile::ReadNextLine ( int  size = MAX_LINE_LENGTH)

For ASCII files, reads the next line while skipping lines that contain only whitespace or a comment.

For binary files, just calls ReadLine().

◆ ReadLine()

std::pair< bool, std::string > ensight_gold::EnSightFile::ReadLine ( int  size = MAX_LINE_LENGTH)

Reads the next line up to size characters (ASCII) or size characters (binary)

◆ SkipNLines()

void ensight_gold::EnSightFile::SkipNLines ( vtkIdType  n)

Skip the specified number of non-numeric lines when reading.

WARNING: Should only be used for non-numeric lines, even in ASCII mode! Some sections in ASCII will contain multiple numbers per line, in which case the MAX_LINE_LENGTH limit will probably cut off the line.

◆ SkipNNumbers()

template<typename T >
void ensight_gold::EnSightFile::SkipNNumbers ( vtkIdType  n,
int  numsPerLine = 1 
)

Skip the specified number of numbers when reading.

For binary files, moves the read position the appropriate number of bytes (numsPerLine arg is irrelevant). For ASCII files, one or more numbers can be contained on a line, depending on the section, so numsPerLine should be specified if it's not 1.

Definition at line 247 of file EnSightFile.h.

◆ GoBackOneLine()

void ensight_gold::EnSightFile::GoBackOneLine ( )

Move the read position of the file stream back by MAX_LINE_LENGTH characters.

◆ DetectByteOrder()

bool ensight_gold::EnSightFile::DetectByteOrder ( int *  result)

Attempts to determine the byte order given an int read from the file.

◆ ReadNumber()

template<typename T >
bool ensight_gold::EnSightFile::ReadNumber ( T *  result,
bool  padBeginning = true,
bool  padEnd = true 
)

Read a number from file and store it in result.

Definition at line 277 of file EnSightFile.h.

◆ ReadArray()

template<typename T >
bool ensight_gold::EnSightFile::ReadArray ( T *  result,
vtkIdType  n,
bool  singleLine = false,
bool  padBeginning = true,
bool  padEnd = true 
)

Read an array of size n.

singleLine applies only to ASCII files (ignored for binary). Set true if all numbers in the array to be read are written on the same line, false otherwise. padBeginning and padEnd applies only to Fortran binary files. If the array to be read is a full fortran write (i.e., there is the 4 padding bytes on both sides), then both will be true. Setting one or both to false enables partial arrays to be read (such as when reading cells).

Definition at line 313 of file EnSightFile.h.

◆ MoveReadPosition()

void ensight_gold::EnSightFile::MoveReadPosition ( int  numBytes)

Move the read position ahead n bytes.

◆ GetCurrentPosition()

std::streampos ensight_gold::EnSightFile::GetCurrentPosition ( )

Get current position of reader in stream.

◆ GetCurrentOpenTimeStep()

int ensight_gold::EnSightFile::GetCurrentOpenTimeStep ( )

This is used when change_coords_only is set, for determining if the file we currently have open is the file that contains the connectivity.

◆ OpenFile() [1/2]

bool ensight_gold::EnSightFile::OpenFile ( const std::string &  filename,
bool  isCaseFile = false 
)

Opens the file and performs some processing to determine the format of the file.

Appropriately resets the position of the file stream depending on the type of file.

◆ OpenFile() [2/2]

bool ensight_gold::EnSightFile::OpenFile ( bool  isCaseFile = false)

Member Data Documentation

◆ Format

FileType ensight_gold::EnSightFile::Format = FileType::Unknown

Definition at line 63 of file EnSightFile.h.

◆ ByteOrder

Endianness ensight_gold::EnSightFile::ByteOrder = Endianness::Unknown

Definition at line 64 of file EnSightFile.h.

◆ TimeSet

int ensight_gold::EnSightFile::TimeSet = -1

Definition at line 65 of file EnSightFile.h.

◆ FileSet

int ensight_gold::EnSightFile::FileSet = -1

Definition at line 66 of file EnSightFile.h.


The documentation for this struct was generated from the following file: