15 #ifndef vtkMultiBlockPLOT3DReaderInternals_h 
   16 #define vtkMultiBlockPLOT3DReaderInternals_h 
   19 #include "vtkIOParallelModule.h"  
   30 #define vtk_fseek _fseeki64 
   31 #define vtk_ftell _ftelli64 
   32 #define vtk_off_t __int64 
   34 #define vtk_fseek fseek 
   35 #define vtk_ftell ftell 
   36 #define vtk_off_t long 
   50   std::vector<vtkSmartPointer<vtkStructuredGrid> > 
Blocks;
 
   81   int ReadInts(FILE* fp, 
int n, 
int* val);
 
   91     int blanking, 
int ndims, 
int hasByteCount, 
int nGrids, 
int* gridDims);
 
   93     int blanking, 
int ndims, 
int hasByteCount, 
int* gridDims);
 
   99     preskip = nPtsInPlane * 
extent[4];
 
  100     postskip = nPtsInPlane * (wextent[5] - 
extent[5]);
 
  106 class Plot3DException : 
public std::exception
 
  123     vtkTypeUInt64 HeaderOffset;
 
  124     vtkTypeUInt64 FooterOffset;
 
  127   typedef std::vector<vtkSubRecord> VectorOfSubRecords;
 
  128   VectorOfSubRecords SubRecords;
 
  140   static const int SubRecordSeparatorWidth = 
sizeof(int) * 2;
 
  151   bool Initialize(FILE* fp, vtkTypeUInt64 
offset,
 
  161     return (this->SubRecords.size() == 0 || this->SubRecords.front().HeaderOffset == 
offset);
 
  170     return (this->SubRecords.size() == 0 ||
 
  171       (this->SubRecords.back().FooterOffset + 
sizeof(
int) == 
offset));
 
  177   SubRecordSeparators GetSubRecordSeparators(vtkTypeUInt64 startOffset, vtkTypeUInt64 
length) 
const;
 
  183   static std::vector<std::pair<vtkTypeUInt64, vtkTypeUInt64> > GetChunksToRead(
 
  184     vtkTypeUInt64 start, vtkTypeUInt64 
length, 
const std::vector<vtkTypeUInt64>& markers);
 
  191   vtkTypeUInt64 GetLengthWithSeparators(vtkTypeUInt64 start, vtkTypeUInt64 
length) 
const;
 
  194     vtkTypeUInt64 start, vtkTypeUInt64 
length)
 const 
  196     return this->GetChunksToRead(start, 
length, this->GetSubRecordSeparators(start, 
length));