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

Utilities/Xdmf/vtk/vtkXdmfWriter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkXdmfWriter.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 =========================================================================*/
00030 #ifndef _vtkXdmfWriter_h
00031 #define _vtkXdmfWriter_h
00032 
00033 #include "vtkProcessObject.h"
00034 
00035 class vtkDataSet;
00036 class vtkPoints;
00037 class vtkCellArray;
00038 class vtkDataArray;
00039 class vtkDataSetCollection;
00040 
00041 class VTK_EXPORT vtkXdmfWriter : public vtkProcessObject
00042 {
00043 public:
00044   static vtkXdmfWriter *New();
00045   vtkTypeRevisionMacro(vtkXdmfWriter,vtkProcessObject);
00046   void PrintSelf(ostream& os, vtkIndent indent);
00047 
00049 
00051   vtkSetClampMacro(AllLight, int, 0, 1);
00052   vtkBooleanMacro(AllLight, int);
00053   vtkGetMacro(AllLight, int);
00055 
00057 
00058   vtkSetClampMacro(AllHeavy, int, 0, 1);
00059   vtkBooleanMacro(AllHeavy, int);
00060   vtkGetMacro(AllHeavy, int);
00062 
00064 
00065   virtual void SetFileName(const char* fname);
00066   virtual const char* GetFileName();
00068 
00070 
00071   vtkSetStringMacro(GridName);
00072   vtkGetStringMacro(GridName);
00074 
00076 
00077   vtkSetStringMacro(DomainName);
00078   vtkGetStringMacro(DomainName);
00080 
00082 
00083   vtkSetStringMacro(CollectionName);
00084   vtkGetStringMacro(CollectionName);
00086 
00088 
00090   vtkSetClampMacro(GridOnly, int, 0, 1);
00091   vtkBooleanMacro(GridOnly, int);
00092   vtkGetMacro(GridOnly, int);
00094 
00096 
00097   virtual void SetHeavyDataSetName( const char *name);
00098   virtual const char* GetHeavyDataSetName();
00100 
00102   virtual void SetInput(vtkDataSet* ds);
00103 
00105   void Write();
00106 
00108   void AddInput(vtkDataObject *in);
00109 
00111 
00112   vtkDataObject *GetInput(int idx);
00113   vtkDataObject *GetInput() 
00114     {return this->GetInput( 0 );}
00116   
00118   void RemoveInput(vtkDataObject *in);
00119 
00122   vtkDataSetCollection *GetInputList();
00123 
00125 
00126   void Indent(ostream& ost);
00127   void IncrementIndent() { this->CurrIndent ++; }
00128   void DecrementIndent() { this->CurrIndent --; }
00130 
00132   const char* GenerateHDF5ArrayName(const char* gridName, const char* arrayName);
00133 
00134 protected:
00135   vtkXdmfWriter();
00136   ~vtkXdmfWriter();
00137 
00138   void WriteAttributes( ostream& ost, vtkDataSet* ds, const char* gridName );
00139   void StartTopology( ostream& ost, int cellType, vtkIdType numVert, vtkIdType numCells );
00140   void StartTopology( ostream& ost, const char* toptype, int rank, int *dims );
00141   void EndTopology( ostream& ost );
00142   void StartGeometry( ostream& ost, const char* type );
00143   void EndGeometry( ostream& ost );
00144   virtual int WriteHead( ostream& ost );
00145   virtual int WriteTail( ostream& ost );
00146   virtual int WriteGrid( ostream& ost, const char* name, vtkDataSet* ds, 
00147     void* mapofcells = 0, const void *celltype = 0 );
00148   virtual int WriteCellArray( ostream& ost, vtkDataSet* Cells, const char* gridName, 
00149     void* mapofcells, const void *celltype );
00150   virtual int WritePoints( ostream& ost, vtkPoints *Points, vtkDataSet* dataSet, const char* gridName );
00151   virtual int WriteDataArray( ostream& ost, vtkDataArray* array, vtkDataSet* ds,
00152     int dims[3], const char* Name, const char* Center, int type, const char* gridName,
00153     int active, int cellData = 0 );
00154   virtual int WriteVTKArray( ostream& ost, vtkDataArray* array, vtkDataSet* dataSet,
00155     int dims[3], int *extents, const char* name, const char* dataName, const char* gridName, int alllight,
00156     int cellData = 0);
00157 
00158   vtkSetStringMacro(HeavyDataSetNameString);
00159   char    *HeavyDataSetNameString;
00160 
00161   vtkSetStringMacro(FileNameString);
00162   char    *FileNameString;
00163   char    *GridName;
00164   char    *DomainName;
00165   char    *CollectionName;
00166   
00167   int    AllLight;
00168   int    AllHeavy;
00169 
00170   int CurrIndent;
00171 
00172   int GridOnly;
00173 
00174   vtkSetStringMacro(HDF5ArrayName);
00175   char* HDF5ArrayName;
00176 
00177   // list of data sets to append together.
00178   // Here as a convenience.  It is a copy of the input array.
00179   vtkDataSetCollection *InputList;
00180 
00181 private:
00182   vtkXdmfWriter(const vtkXdmfWriter&); // Not implemented
00183   void operator=(const vtkXdmfWriter&); // Not implemented
00184 };
00185 
00186 #endif /* _vtkXdmfWriter_h */

Generated on Tue May 30 12:31:49 2006 for ParaView by doxygen 1.3.5