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

vtkGenericDataSet.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkGenericDataSet.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 =========================================================================*/
00059 #ifndef __vtkGenericDataSet_h
00060 #define __vtkGenericDataSet_h
00061 
00062 #include "vtkDataObject.h"
00063 
00064 class vtkCellTypes;
00065 class vtkGenericCellIterator;
00066 class vtkGenericAttributeCollection;
00067 class vtkGenericCellTessellator;
00068 class vtkGenericPointIterator;
00069 class vtkRenderer;
00070 
00071 class VTK_FILTERING_EXPORT vtkGenericDataSet : public vtkDataObject
00072 {
00073 public:
00075 
00076   vtkTypeRevisionMacro(vtkGenericDataSet,vtkDataObject);
00077   void PrintSelf(ostream& os, vtkIndent indent);
00079 
00082   virtual vtkIdType GetNumberOfPoints() = 0;
00083 
00087   virtual vtkIdType GetNumberOfCells(int dim=-1) = 0;
00088 
00093   virtual int GetCellDimension() = 0;
00094   
00102   virtual void GetCellTypes(vtkCellTypes *types);
00103 
00112   virtual vtkGenericCellIterator *NewCellIterator(int dim=-1) = 0;
00113   
00115 
00121   virtual vtkGenericCellIterator *NewBoundaryIterator(int dim=-1,
00122                                                       int exteriorOnly=0) = 0;
00124   
00128   virtual vtkGenericPointIterator *NewPointIterator()=0;
00129   
00131 
00140   virtual int FindCell(double x[3],
00141                        vtkGenericCellIterator* &cell,
00142                        double tol2,
00143                        int &subId,
00144                        double pcoords[3]) = 0;
00146   
00148 
00150   virtual void FindPoint(double x[3],
00151                          vtkGenericPointIterator *p)=0;
00153   
00156   virtual unsigned long int GetMTime();
00157   
00159   virtual void ComputeBounds()=0;
00160   
00164   virtual double *GetBounds();
00165 
00168   virtual void GetBounds(double bounds[6]);
00169   
00172   virtual double *GetCenter();
00173 
00175   virtual void GetCenter(double center[3]);
00176 
00179   virtual double GetLength();
00180   
00182 
00183   vtkGetObjectMacro(Attributes, vtkGenericAttributeCollection);
00185   
00187 
00189   virtual void SetTessellator(vtkGenericCellTessellator *tessellator);
00190   vtkGetObjectMacro(Tessellator,vtkGenericCellTessellator);
00192 
00196   virtual unsigned long GetActualMemorySize();
00197   
00199   int GetDataObjectType();
00200   
00202   virtual vtkIdType GetEstimatedSize() = 0;
00203 
00204   //BTX
00206 
00207   static vtkGenericDataSet* GetData(vtkInformation* info);
00208   static vtkGenericDataSet* GetData(vtkInformationVector* v, int i=0);
00209   //ETX
00211 
00212 protected:
00215   vtkGenericDataSet();
00216   
00217   virtual ~vtkGenericDataSet();
00218 
00219   vtkGenericAttributeCollection *Attributes;
00220 
00221   //Main helper class to tesselate a higher order cell into linear ones.
00222   vtkGenericCellTessellator *Tessellator;
00223 
00224   double Bounds[6];  // (xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds
00225   double Center[3]; // Center of the geometric bounding box
00226   vtkTimeStamp ComputeTime; // Time at which bounds, center, etc. computed
00227   
00228 private:
00229   vtkGenericDataSet(const vtkGenericDataSet&);  // Not implemented.
00230   void operator=(const vtkGenericDataSet&);    // Not implemented.
00231 };
00232 
00233 #endif

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