Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/IO/vtkXMLStructuredDataWriter.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkXMLStructuredDataWriter.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00026 #ifndef __vtkXMLStructuredDataWriter_h 00027 #define __vtkXMLStructuredDataWriter_h 00028 00029 #include "vtkXMLWriter.h" 00030 00031 class vtkDataSet; 00032 class vtkPointData; 00033 class vtkExtentTranslator; 00034 class vtkDataArray; 00035 class vtkDataSetAttributes; 00036 00037 class VTK_IO_EXPORT vtkXMLStructuredDataWriter : public vtkXMLWriter 00038 { 00039 public: 00040 vtkTypeRevisionMacro(vtkXMLStructuredDataWriter,vtkXMLWriter); 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00044 00046 vtkSetMacro(NumberOfPieces, int); 00047 vtkGetMacro(NumberOfPieces, int); 00049 00051 00054 vtkSetVector6Macro(WriteExtent, int); 00055 vtkGetVector6Macro(WriteExtent, int); 00057 00059 00060 virtual void SetExtentTranslator(vtkExtentTranslator*); 00061 vtkGetObjectMacro(ExtentTranslator, vtkExtentTranslator); 00063 00064 protected: 00065 vtkXMLStructuredDataWriter(); 00066 ~vtkXMLStructuredDataWriter(); 00067 00068 // Writing drivers defined by subclasses. 00069 virtual void WritePrimaryElementAttributes(); 00070 virtual void WriteAppendedPiece(int index, vtkIndent indent); 00071 virtual void WriteAppendedPieceData(int index); 00072 virtual void WriteInlinePiece(int index, vtkIndent indent); 00073 virtual void GetInputExtent(int* extent)=0; 00074 00075 // The actual writing driver required by vtkXMLWriter. 00076 int WriteData(); 00077 void SetupExtentTranslator(); 00078 virtual void WriteAppendedMode(vtkIndent indent); 00079 vtkDataArray* CreateExactExtent(vtkDataArray* array, int* inExtent, 00080 int* outExtent, int isPoint); 00081 virtual void WriteInlineMode(vtkIndent indent); 00082 unsigned int GetStartTuple(int* extent, int* increments, 00083 int i, int j, int k); 00084 00085 // Define utility methods required by vtkXMLWriter. 00086 vtkDataArray* CreateArrayForPoints(vtkDataArray* inArray); 00087 vtkDataArray* CreateArrayForCells(vtkDataArray* inArray); 00088 00089 // The extent of the input to write. 00090 int WriteExtent[6]; 00091 00092 // Number of pieces used for streaming. 00093 int NumberOfPieces; 00094 00095 // Translate piece number to extent. 00096 vtkExtentTranslator* ExtentTranslator; 00097 00098 // Appended data offsets of point and cell data arrays. 00099 unsigned long** PointDataOffsets; 00100 unsigned long** CellDataOffsets; 00101 00102 private: 00103 vtkXMLStructuredDataWriter(const vtkXMLStructuredDataWriter&); // Not implemented. 00104 void operator=(const vtkXMLStructuredDataWriter&); // Not implemented. 00105 }; 00106 00107 #endif