VTK
vtkGenericDataSet.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGenericDataSet.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
57 #ifndef vtkGenericDataSet_h
58 #define vtkGenericDataSet_h
59 
60 #include "vtkCommonDataModelModule.h" // For export macro
61 #include "vtkDataObject.h"
62 
63 class vtkCellTypes;
68 
69 class VTKCOMMONDATAMODEL_EXPORT vtkGenericDataSet : public vtkDataObject
70 {
71 public:
73 
77  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
79 
85  virtual vtkIdType GetNumberOfPoints() = 0;
86 
93  virtual vtkIdType GetNumberOfCells(int dim=-1) = 0;
94 
101  virtual int GetCellDimension() = 0;
102 
113  virtual void GetCellTypes(vtkCellTypes *types);
114 
126  virtual vtkGenericCellIterator *NewCellIterator(int dim=-1) = 0;
127 
137  virtual vtkGenericCellIterator *NewBoundaryIterator(int dim=-1,
138  int exteriorOnly=0) = 0;
139 
146  virtual vtkGenericPointIterator *NewPointIterator()=0;
147 
161  virtual int FindCell(double x[3],
162  vtkGenericCellIterator* &cell,
163  double tol2,
164  int &subId,
165  double pcoords[3]) = 0;
166 
172  virtual void FindPoint(double x[3],
174 
179  vtkMTimeType GetMTime() VTK_OVERRIDE;
180 
184  virtual void ComputeBounds()=0;
185 
192  virtual double *GetBounds();
193 
198  virtual void GetBounds(double bounds[6]);
199 
205  virtual double *GetCenter();
206 
210  virtual void GetCenter(double center[3]);
211 
216  virtual double GetLength();
217 
219 
222  vtkGetObjectMacro(Attributes, vtkGenericAttributeCollection);
224 
240  vtkDataSetAttributes* GetAttributes(int type) VTK_OVERRIDE
241  { return this->Superclass::GetAttributes(type); }
242 
244 
249  virtual void SetTessellator(vtkGenericCellTessellator *tessellator);
250  vtkGetObjectMacro(Tessellator,vtkGenericCellTessellator);
252 
258  unsigned long GetActualMemorySize() VTK_OVERRIDE;
259 
263  int GetDataObjectType() VTK_OVERRIDE;
264 
268  virtual vtkIdType GetEstimatedSize() = 0;
269 
271 
274  static vtkGenericDataSet* GetData(vtkInformation* info);
275  static vtkGenericDataSet* GetData(vtkInformationVector* v, int i=0);
277 
278 protected:
284 
285  ~vtkGenericDataSet() VTK_OVERRIDE;
286 
288 
289  //Main helper class to tesselate a higher order cell into linear ones.
291 
292  double Bounds[6]; // (xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds
293  double Center[3]; // Center of the geometric bounding box
294  vtkTimeStamp ComputeTime; // Time at which bounds, center, etc. computed
295 
296 private:
297  vtkGenericDataSet(const vtkGenericDataSet&) VTK_DELETE_FUNCTION;
298  void operator=(const vtkGenericDataSet&) VTK_DELETE_FUNCTION;
299 };
300 
301 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
helper class to perform cell tessellation
Store vtkAlgorithm input/output information.
record modification and/or execution time
Definition: vtkTimeStamp.h:35
int vtkIdType
Definition: vtkType.h:287
iterator used to traverse points
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248
iterator used to traverse cells
a simple class to control print indentation
Definition: vtkIndent.h:39
represent and manipulate attribute data in a dataset
virtual unsigned long GetActualMemorySize()
Return the actual size of the data in kibibytes (1024 bytes).
Store zero or more vtkInformation instances.
defines dataset interface
vtkMTimeType GetMTime() override
Data objects are composite objects and need to check each part for MTime.
general representation of visualization data
Definition: vtkDataObject.h:64
object provides direct access to cells in vtkCellArray and type information
Definition: vtkCellTypes.h:52