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