VTK  9.1.0
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=========================================================================*/
76#ifndef vtkGenericDataSet_h
77#define vtkGenericDataSet_h
78
79#include "vtkCommonDataModelModule.h" // For export macro
80#include "vtkDataObject.h"
81
82class vtkCellTypes;
87
88class VTKCOMMONDATAMODEL_EXPORT vtkGenericDataSet : public vtkDataObject
89{
90public:
92
96 void PrintSelf(ostream& os, vtkIndent indent) override;
98
105
112 virtual vtkIdType GetNumberOfCells(int dim = -1) = 0;
113
117 vtkIdType GetNumberOfElements(int type) override;
118
125 virtual int GetCellDimension() = 0;
126
137 virtual void GetCellTypes(vtkCellTypes* types);
138
151 virtual vtkGenericCellIterator* NewCellIterator(int dim = -1) = 0;
152
163 virtual vtkGenericCellIterator* NewBoundaryIterator(int dim = -1, int exteriorOnly = 0) = 0;
164
173
187 virtual int FindCell(
188 double x[3], vtkGenericCellIterator*& cell, double tol2, int& subId, double pcoords[3]) = 0;
189
195 virtual void FindPoint(double x[3], vtkGenericPointIterator* p) = 0;
196
202
206 virtual void ComputeBounds() = 0;
207
214 virtual double* GetBounds();
215
220 virtual void GetBounds(double bounds[6]);
221
227 virtual double* GetCenter();
228
232 virtual void GetCenter(double center[3]);
233
238 virtual double GetLength();
239
241
244 vtkGetObjectMacro(Attributes, vtkGenericAttributeCollection);
246
263 {
264 return this->Superclass::GetAttributes(type);
265 }
266
268
273 virtual void SetTessellator(vtkGenericCellTessellator* tessellator);
274 vtkGetObjectMacro(Tessellator, vtkGenericCellTessellator);
276
282 unsigned long GetActualMemorySize() override;
283
287 int GetDataObjectType() override;
288
293
295
301
302protected:
308
310
312
313 // Main helper class to tessellate a higher order cell into linear ones.
315
316 double Bounds[6]; // (xmin,xmax, ymin,ymax, zmin,zmax) geometric bounds
317 double Center[3]; // Center of the geometric bounding box
318 vtkTimeStamp ComputeTime; // Time at which bounds, center, etc. computed
319
320private:
321 vtkGenericDataSet(const vtkGenericDataSet&) = delete;
322 void operator=(const vtkGenericDataSet&) = delete;
323};
324
325#endif
object provides direct access to cells in vtkCellArray and type information
Definition: vtkCellTypes.h:137
general representation of visualization data
represent and manipulate attribute data in a dataset
iterator used to traverse cells
helper class to perform cell tessellation
defines dataset interface
void PrintSelf(ostream &os, vtkIndent indent) override
Standard VTK type and print macros.
virtual void ComputeBounds()=0
Compute the geometry bounding box.
virtual void SetTessellator(vtkGenericCellTessellator *tessellator)
Set/Get a cell tessellator if cells must be tessellated during processing.
vtkGenericDataSet()
Constructor with uninitialized bounds (1,-1, 1,-1, 1,-1), empty attribute collection and default tess...
unsigned long GetActualMemorySize() override
Actual size of the data in kibibytes (1024 bytes); only valid after the pipeline has updated.
static vtkGenericDataSet * GetData(vtkInformationVector *v, int i=0)
Retrieve an instance of this class from an information object.
virtual vtkIdType GetNumberOfPoints()=0
Return the number of points composing the dataset.
vtkDataSetAttributes * GetAttributes(int type) override
Returns the attributes of the data object of the specified attribute type.
virtual double GetLength()
Return the length of the diagonal of the bounding box.
static vtkGenericDataSet * GetData(vtkInformation *info)
Retrieve an instance of this class from an information object.
virtual int GetCellDimension()=0
Return -1 if the dataset is explicitly defined by cells of varying dimensions or if there are no cell...
vtkTimeStamp ComputeTime
int GetDataObjectType() override
Return the type of data object.
virtual vtkIdType GetNumberOfCells(int dim=-1)=0
Return the number of cells that explicitly define the dataset.
virtual double * GetBounds()
Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,...
virtual vtkGenericPointIterator * NewPointIterator()=0
Return an iterator to traverse the points composing the dataset; they can be points that define a cel...
virtual vtkGenericCellIterator * NewBoundaryIterator(int dim=-1, int exteriorOnly=0)=0
Return an iterator to traverse cell boundaries of dimension ‘dim’ (or all dimensions if -1) of the da...
virtual void GetCenter(double center[3])
Get the center of the bounding box in global coordinates.
virtual void GetBounds(double bounds[6])
Return the geometry bounding box in global coordinates in the form (xmin,xmax, ymin,...
~vtkGenericDataSet() override
virtual vtkIdType GetEstimatedSize()=0
Estimated size needed after tessellation (or special operation)
virtual void FindPoint(double x[3], vtkGenericPointIterator *p)=0
Locate the closest point ‘p’ to position ‘x’ (global coordinates).
vtkIdType GetNumberOfElements(int type) override
Get the number of elements for a specific attribute type (POINT, CELL, etc.).
virtual double * GetCenter()
Get the center of the bounding box in global coordinates.
virtual int FindCell(double x[3], vtkGenericCellIterator *&cell, double tol2, int &subId, double pcoords[3])=0
Locate the closest cell to position ‘x’ (global coordinates) with respect to a tolerance squared ‘tol...
virtual vtkGenericCellIterator * NewCellIterator(int dim=-1)=0
Return an iterator to traverse cells of dimension ‘dim’ (or all dimensions if -1) that explicitly def...
vtkMTimeType GetMTime() override
Datasets are composite objects and need to check each part for their modified time.
vtkGenericCellTessellator * Tessellator
vtkGenericAttributeCollection * Attributes
virtual void GetCellTypes(vtkCellTypes *types)
Get a list of types of cells in a dataset.
iterator used to traverse points
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
record modification and/or execution time
Definition: vtkTimeStamp.h:52
int vtkIdType
Definition: vtkType.h:332
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287
#define VTK_NEWINSTANCE