VTK  9.3.1
vtkGenericDataSet.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
45 #ifndef vtkGenericDataSet_h
46 #define vtkGenericDataSet_h
47 
48 #include "vtkCommonDataModelModule.h" // For export macro
49 #include "vtkDataObject.h"
50 
51 VTK_ABI_NAMESPACE_BEGIN
52 class vtkCellTypes;
57 
58 class VTKCOMMONDATAMODEL_EXPORT vtkGenericDataSet : public vtkDataObject
59 {
60 public:
62 
66  void PrintSelf(ostream& os, vtkIndent indent) override;
68 
74  virtual vtkIdType GetNumberOfPoints() = 0;
75 
82  virtual vtkIdType GetNumberOfCells(int dim = -1) = 0;
83 
87  vtkIdType GetNumberOfElements(int type) override;
88 
95  virtual int GetCellDimension() = 0;
96 
107  virtual void GetCellTypes(vtkCellTypes* types);
108 
121  virtual vtkGenericCellIterator* NewCellIterator(int dim = -1) = 0;
122 
133  virtual vtkGenericCellIterator* NewBoundaryIterator(int dim = -1, int exteriorOnly = 0) = 0;
134 
142  virtual vtkGenericPointIterator* NewPointIterator() = 0;
143 
157  virtual int FindCell(
158  double x[3], vtkGenericCellIterator*& cell, double tol2, int& subId, double pcoords[3]) = 0;
159 
165  virtual void FindPoint(double x[3], vtkGenericPointIterator* p) = 0;
166 
171  vtkMTimeType GetMTime() override;
172 
176  virtual void ComputeBounds() = 0;
177 
184  virtual double* GetBounds();
185 
190  virtual void GetBounds(double bounds[6]);
191 
197  virtual double* GetCenter();
198 
202  virtual void GetCenter(double center[3]);
203 
208  virtual double GetLength();
209 
211 
214  vtkGetObjectMacro(Attributes, vtkGenericAttributeCollection);
216 
233  {
234  return this->Superclass::GetAttributes(type);
235  }
236 
238 
243  virtual void SetTessellator(vtkGenericCellTessellator* tessellator);
244  vtkGetObjectMacro(Tessellator, vtkGenericCellTessellator);
246 
252  unsigned long GetActualMemorySize() override;
253 
257  int GetDataObjectType() override;
258 
262  virtual vtkIdType GetEstimatedSize() = 0;
263 
265 
269  static vtkGenericDataSet* GetData(vtkInformationVector* v, int i = 0);
271 
272 protected:
278 
279  ~vtkGenericDataSet() override;
280 
282 
283  // Main helper class to tessellate a higher order cell into linear ones.
285 
286  double Bounds[6]; // (xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds
287  double Center[3]; // Center of the geometric bounding box
288  vtkTimeStamp ComputeTime; // Time at which bounds, center, etc. computed
289 
290 private:
291  vtkGenericDataSet(const vtkGenericDataSet&) = delete;
292  void operator=(const vtkGenericDataSet&) = delete;
293 };
294 
295 VTK_ABI_NAMESPACE_END
296 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkDataObject * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
void GetBounds(T a, double bds[6])
vtkTimeStamp ComputeTime
helper class to perform cell tessellation
Store vtkAlgorithm input/output information.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
record modification and/or execution time
Definition: vtkTimeStamp.h:24
int vtkIdType
Definition: vtkType.h:315
iterator used to traverse points
iterator used to traverse cells
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkDataSetAttributes * GetAttributes(int type) override
Returns the attributes of the data object of the specified attribute type.
represent and manipulate attribute data in a dataset
virtual unsigned long GetActualMemorySize()
Return the actual size of the data in kibibytes (1024 bytes).
#define VTK_NEWINSTANCE
virtual vtkIdType GetNumberOfElements(int type)
Get the number of elements for a specific attribute type (POINT, CELL, etc.).
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.
virtual int GetDataObjectType()
Return class name of data type.
general representation of visualization data
Definition: vtkDataObject.h:54
object provides direct access to cells in vtkCellArray and type information
Definition: vtkCellTypes.h:45
vtkGenericCellTessellator * Tessellator
vtkGenericAttributeCollection * Attributes