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

vtkXMLPolyDataReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkXMLPolyDataReader.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 =========================================================================*/
00031 #ifndef __vtkXMLPolyDataReader_h
00032 #define __vtkXMLPolyDataReader_h
00033 
00034 #include "vtkXMLUnstructuredDataReader.h"
00035 
00036 class vtkPolyData;
00037 
00038 class VTK_IO_EXPORT vtkXMLPolyDataReader : public vtkXMLUnstructuredDataReader
00039 {
00040 public:
00041   vtkTypeRevisionMacro(vtkXMLPolyDataReader,vtkXMLUnstructuredDataReader);
00042   void PrintSelf(ostream& os, vtkIndent indent);  
00043   static vtkXMLPolyDataReader *New();
00044   
00046 
00047   void SetOutput(vtkPolyData *output);
00048   vtkPolyData *GetOutput();
00049   vtkPolyData *GetOutput(int idx);
00051   
00053 
00054   virtual vtkIdType GetNumberOfVerts();
00055   virtual vtkIdType GetNumberOfLines();
00056   virtual vtkIdType GetNumberOfStrips();
00057   virtual vtkIdType GetNumberOfPolys();
00059   
00060 protected:
00061   vtkXMLPolyDataReader();
00062   ~vtkXMLPolyDataReader();
00063   
00064   const char* GetDataSetName();
00065   void GetOutputUpdateExtent(int& piece, int& numberOfPieces, int& ghostLevel);
00066   void SetupOutputTotals();
00067   void SetupNextPiece();
00068   void SetupPieces(int numPieces);
00069   void DestroyPieces();
00070   
00071   void SetupOutputData();
00072   int ReadPiece(vtkXMLDataElement* ePiece);
00073   int ReadPieceData();
00074   
00075   // Read a data array whose tuples coorrespond to cells.
00076   int ReadArrayForCells(vtkXMLDataElement* da, vtkDataArray* outArray);
00077   
00078   // Get the number of cells in the given piece.  Valid after
00079   // UpdateInformation.
00080   virtual vtkIdType GetNumberOfCellsInPiece(int piece);
00081 
00082   virtual int FillOutputPortInformation(int, vtkInformation*);
00083 
00084   // The size of the UpdatePiece.
00085   int TotalNumberOfVerts;
00086   int TotalNumberOfLines;
00087   int TotalNumberOfStrips;
00088   int TotalNumberOfPolys;
00089   vtkIdType StartVert;
00090   vtkIdType StartLine;
00091   vtkIdType StartStrip;
00092   vtkIdType StartPoly;
00093   
00094   // The cell elements for each piece.
00095   vtkXMLDataElement** VertElements;
00096   vtkXMLDataElement** LineElements;
00097   vtkXMLDataElement** StripElements;
00098   vtkXMLDataElement** PolyElements;
00099   vtkIdType* NumberOfVerts;
00100   vtkIdType* NumberOfLines;
00101   vtkIdType* NumberOfStrips;
00102   vtkIdType* NumberOfPolys;
00103 
00104   // For TimeStep support
00105   int VertsTimeStep;
00106   unsigned long VertsOffset;
00107   int LinesTimeStep;
00108   unsigned long LinesOffset;
00109   int StripsTimeStep;
00110   unsigned long StripsOffset;
00111   int PolysTimeStep;
00112   unsigned long PolysOffset;
00113 
00114 private:
00115   vtkXMLPolyDataReader(const vtkXMLPolyDataReader&);  // Not implemented.
00116   void operator=(const vtkXMLPolyDataReader&);  // Not implemented.
00117 };
00118 
00119 #endif

Generated on Mon Jan 21 23:07:32 2008 for VTK by  doxygen 1.4.3-20050530