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));