VTK
vtkXMLUnstructuredDataWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXMLUnstructuredDataWriter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
22 #ifndef vtkXMLUnstructuredDataWriter_h
23 #define vtkXMLUnstructuredDataWriter_h
24 
25 #include "vtkIOXMLModule.h" // For export macro
26 #include "vtkXMLWriter.h"
27 
28 class vtkPointSet;
29 class vtkCellArray;
30 class vtkCellIterator;
31 class vtkDataArray;
32 class vtkIdTypeArray;
34 
36 {
37 public:
39  void PrintSelf(ostream& os, vtkIndent indent);
40 
42 
44  vtkSetMacro(NumberOfPieces, int);
45  vtkGetMacro(NumberOfPieces, int);
47 
49 
51  vtkSetMacro(WritePiece, int);
52  vtkGetMacro(WritePiece, int);
54 
56 
57  vtkSetMacro(GhostLevel, int);
58  vtkGetMacro(GhostLevel, int);
60 
61  // See the vtkAlgorithm for a desciption of what these do
65 
66 protected:
69 
71  virtual const char* GetDataSetName()=0;
72  virtual void SetInputUpdateExtent(int piece, int numPieces,
73  int ghostLevel);
74 
75  virtual int WriteHeader();
76  virtual int WriteAPiece();
77  virtual int WriteFooter();
78 
79  virtual void AllocatePositionArrays();
80  virtual void DeletePositionArrays();
81 
82  virtual int WriteInlineMode(vtkIndent indent);
84  virtual void WriteInlinePiece(vtkIndent indent);
85 
87  virtual void WriteAppendedPiece(int index, vtkIndent indent);
88  virtual void WriteAppendedPieceData(int index);
89 
90  void WriteCellsInline(const char* name, vtkCellIterator *cellIter,
91  vtkIdType numCells, vtkIdType cellSizeEstimate,
92  vtkIndent indent);
93 
94  void WriteCellsInline(const char* name, vtkCellArray* cells,
95  vtkDataArray* types, vtkIndent indent);
96 
97  // New API with face infomration for polyhedron cell support.
98  void WriteCellsInline(const char* name, vtkCellArray* cells,
100  vtkIdTypeArray* faceOffsets, vtkIndent indent);
101 
103  vtkIndent indent);
104 
106  vtkIndent indent, OffsetsManagerGroup *cellsManager);
107 
108  void WriteCellsAppended(const char* name, vtkCellIterator *cellIter,
109  vtkIdType numCells, vtkIndent indent,
110  OffsetsManagerGroup *cellsManager);
111 
113  int timestep, OffsetsManagerGroup *cellsManager);
114 
116  vtkIdType cellSizeEstimate, int timestep,
117  OffsetsManagerGroup *cellsManager);
118 
119  // New API with face infomration for polyhedron cell support.
121  vtkIdTypeArray* faces,vtkIdTypeArray* faceOffsets,
122  int timestep, OffsetsManagerGroup *cellsManager);
123 
125  OffsetsManagerGroup *cellsManager);
126 
127  void ConvertCells(vtkCellIterator* cellIter, vtkIdType numCells,
128  vtkIdType cellSizeEstimate);
129 
131 
132  // For polyhedron support, conversion results are stored in Faces and FaceOffsets
133  void ConvertFaces(vtkIdTypeArray* faces, vtkIdTypeArray* faceOffsets);
134 
135  // Get the number of points/cells. Valid after Update has been
136  // invoked on the input.
139  void CalculateDataFractions(float* fractions);
140  void CalculateCellFractions(float* fractions, vtkIdType typesSize);
141 
142  // Number of pieces used for streaming.
144 
145  // Which piece to write, if not all.
147 
148  // The ghost level on each piece.
150 
151  // Positions of attributes for each piece.
152  vtkTypeInt64* NumberOfPointsPositions;
153 
154  // For TimeStep support
158 
159  // Hold the new cell representation arrays while writing a piece.
162 
164 
165  // Hold the face arrays for polyhedron cells.
168 
169 private:
171  void operator=(const vtkXMLUnstructuredDataWriter&); // Not implemented.
172 };
173 
174 #endif
VTKIOXML_EXPORT
#define VTKIOXML_EXPORT
Definition: vtkIOXMLModule.h:15
vtkXMLUnstructuredDataWriter::NumberOfPieces
int NumberOfPieces
Definition: vtkXMLUnstructuredDataWriter.h:143
vtkXMLUnstructuredDataWriter::SetInputUpdateExtent
virtual void SetInputUpdateExtent(int piece, int numPieces, int ghostLevel)
vtkXMLUnstructuredDataWriter::WriteAppendedPiece
virtual void WriteAppendedPiece(int index, vtkIndent indent)
vtkXMLUnstructuredDataWriter::CellOffsets
vtkIdTypeArray * CellOffsets
Definition: vtkXMLUnstructuredDataWriter.h:161
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkXMLUnstructuredDataWriter::WriteCellsAppendedData
void WriteCellsAppendedData(vtkCellArray *cells, vtkDataArray *types, vtkIdTypeArray *faces, vtkIdTypeArray *faceOffsets, int timestep, OffsetsManagerGroup *cellsManager)
vtkXMLUnstructuredDataWriter::GetInputAsPointSet
vtkPointSet * GetInputAsPointSet()
vtkXMLUnstructuredDataWriter::WriteInlineMode
virtual int WriteInlineMode(vtkIndent indent)
vtkXMLUnstructuredDataWriter::WriteCellsAppendedData
void WriteCellsAppendedData(vtkCellIterator *cellIter, vtkIdType numCells, vtkIdType cellSizeEstimate, int timestep, OffsetsManagerGroup *cellsManager)
vtkXMLUnstructuredDataWriter::WriteInlinePiece
virtual void WriteInlinePiece(vtkIndent indent)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkXMLUnstructuredDataWriter::WriteCellsAppendedData
void WriteCellsAppendedData(vtkCellArray *cells, vtkDataArray *types, int timestep, OffsetsManagerGroup *cellsManager)
vtkXMLUnstructuredDataWriter::WritePiece
int WritePiece
Definition: vtkXMLUnstructuredDataWriter.h:146
vtkgl::types
GLsizei GLenum GLenum * types
Definition: vtkgl.h:14417
vtkXMLUnstructuredDataWriter::WriteCellsInline
void WriteCellsInline(const char *name, vtkCellIterator *cellIter, vtkIdType numCells, vtkIdType cellSizeEstimate, vtkIndent indent)
vtkXMLUnstructuredDataWriter::DeletePositionArrays
virtual void DeletePositionArrays()
vtkXMLWriter.h
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkXMLUnstructuredDataWriter::WriteAPiece
virtual int WriteAPiece()
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkXMLUnstructuredDataWriter::WriteAppendedPieceAttributes
virtual void WriteAppendedPieceAttributes(int index)
vtkXMLUnstructuredDataWriter::WriteCellsInline
void WriteCellsInline(const char *name, vtkCellArray *cells, vtkDataArray *types, vtkIndent indent)
vtkXMLUnstructuredDataWriter::ProcessRequest
int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkIOXMLModule.h
vtkXMLUnstructuredDataWriter::~vtkXMLUnstructuredDataWriter
~vtkXMLUnstructuredDataWriter()
vtkXMLUnstructuredDataWriter::GetDataSetName
virtual const char * GetDataSetName()=0
vtkXMLUnstructuredDataWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkXMLUnstructuredDataWriter::CellPoints
vtkIdTypeArray * CellPoints
Definition: vtkXMLUnstructuredDataWriter.h:160
vtkXMLUnstructuredDataWriter::FaceOffsets
vtkIdTypeArray * FaceOffsets
Definition: vtkXMLUnstructuredDataWriter.h:167
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkXMLUnstructuredDataWriter::CalculateDataFractions
void CalculateDataFractions(float *fractions)
vtkXMLUnstructuredDataWriter::PointsOM
OffsetsManagerGroup * PointsOM
Definition: vtkXMLUnstructuredDataWriter.h:155
vtkXMLWriter
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:54
vtkXMLUnstructuredDataWriter::WriteCellsAppended
void WriteCellsAppended(const char *name, vtkDataArray *types, vtkIndent indent, OffsetsManagerGroup *cellsManager)
vtkXMLUnstructuredDataWriter::Faces
vtkIdTypeArray * Faces
Definition: vtkXMLUnstructuredDataWriter.h:166
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:50
vtkXMLUnstructuredDataWriter::WriteCellsInline
void WriteCellsInline(const char *name, vtkCellArray *cells, vtkDataArray *types, vtkIdTypeArray *faces, vtkIdTypeArray *faceOffsets, vtkIndent indent)
vtkXMLUnstructuredDataWriter::WriteAppendedPieceData
virtual void WriteAppendedPieceData(int index)
vtkXMLUnstructuredDataWriter::WriteFooter
virtual int WriteFooter()
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkXMLUnstructuredDataWriter::GetNumberOfInputPoints
virtual vtkIdType GetNumberOfInputPoints()
OffsetsManagerGroup
Definition: vtkXMLOffsetsManager.h:109
vtkXMLUnstructuredDataWriter
Superclass for VTK XML unstructured data writers.
Definition: vtkXMLUnstructuredDataWriter.h:36
vtkXMLUnstructuredDataWriter::vtkXMLUnstructuredDataWriter
vtkXMLUnstructuredDataWriter()
vtkXMLUnstructuredDataWriter::WriteCellsInlineWorker
void WriteCellsInlineWorker(const char *name, vtkDataArray *types, vtkIndent indent)
vtkXMLUnstructuredDataWriter::ConvertFaces
void ConvertFaces(vtkIdTypeArray *faces, vtkIdTypeArray *faceOffsets)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkXMLUnstructuredDataWriter::CellDataOM
OffsetsManagerArray * CellDataOM
Definition: vtkXMLUnstructuredDataWriter.h:157
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
OffsetsManagerArray
Definition: vtkXMLOffsetsManager.h:158
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkXMLUnstructuredDataWriter::NumberOfPointsPositions
vtkTypeInt64 * NumberOfPointsPositions
Definition: vtkXMLUnstructuredDataWriter.h:152
vtkXMLUnstructuredDataWriter::GetNumberOfInputCells
virtual vtkIdType GetNumberOfInputCells()=0
vtkXMLUnstructuredDataWriter::WriteCellsAppendedDataWorker
void WriteCellsAppendedDataWorker(vtkDataArray *types, int timestep, OffsetsManagerGroup *cellsManager)
vtkXMLUnstructuredDataWriter::WriteInlinePieceAttributes
virtual void WriteInlinePieceAttributes()
vtkPointSet
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:45
vtkXMLUnstructuredDataWriter::AllocatePositionArrays
virtual void AllocatePositionArrays()
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:82
vtkXMLUnstructuredDataWriter::CurrentPiece
int CurrentPiece
Definition: vtkXMLUnstructuredDataWriter.h:163
vtkCellIterator
Efficient cell iterator for vtkDataSet topologies.
Definition: vtkCellIterator.h:79
vtkXMLUnstructuredDataWriter::CalculateCellFractions
void CalculateCellFractions(float *fractions, vtkIdType typesSize)
vtkXMLUnstructuredDataWriter::ConvertCells
void ConvertCells(vtkCellIterator *cellIter, vtkIdType numCells, vtkIdType cellSizeEstimate)
vtkXMLUnstructuredDataWriter::PointDataOM
OffsetsManagerArray * PointDataOM
Definition: vtkXMLUnstructuredDataWriter.h:156
vtkXMLUnstructuredDataWriter::GhostLevel
int GhostLevel
Definition: vtkXMLUnstructuredDataWriter.h:149
vtkXMLUnstructuredDataWriter::WriteHeader
virtual int WriteHeader()
vtkXMLUnstructuredDataWriter::WriteCellsAppended
void WriteCellsAppended(const char *name, vtkCellIterator *cellIter, vtkIdType numCells, vtkIndent indent, OffsetsManagerGroup *cellsManager)
vtkXMLUnstructuredDataWriter::ConvertCells
void ConvertCells(vtkCellArray *cells)