VTK  9.2.6
vtkCell3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCell3D.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 =========================================================================*/
27 #ifndef vtkCell3D_h
28 #define vtkCell3D_h
29 
30 #include "vtkCell.h"
31 #include "vtkCommonDataModelModule.h" // For export macro
32 
34 class vtkTetra;
35 class vtkCellArray;
36 class vtkDoubleArray;
37 
38 class VTKCOMMONDATAMODEL_EXPORT vtkCell3D : public vtkCell
39 {
40 public:
41  vtkTypeMacro(vtkCell3D, vtkCell);
42  void PrintSelf(ostream& os, vtkIndent indent) override;
43 
51  virtual void GetEdgePoints(vtkIdType edgeId, const vtkIdType*& pts) = 0;
52 
62  virtual vtkIdType GetFacePoints(vtkIdType faceId, const vtkIdType*& pts) = 0;
63 
71  virtual void GetEdgeToAdjacentFaces(vtkIdType edgeId, const vtkIdType*& faceIds) = 0;
72 
88  virtual vtkIdType GetFaceToAdjacentFaces(vtkIdType faceId, const vtkIdType*& faceIds) = 0;
89 
104  virtual vtkIdType GetPointToIncidentEdges(vtkIdType pointId, const vtkIdType*& edgeIds) = 0;
105 
122  virtual vtkIdType GetPointToIncidentFaces(vtkIdType pointId, const vtkIdType*& faceIds) = 0;
123 
135  virtual vtkIdType GetPointToOneRingPoints(vtkIdType pointId, const vtkIdType*& pts) = 0;
136 
143  virtual bool IsInsideOut();
144 
148  virtual bool GetCentroid(double centroid[3]) const = 0;
149 
150  void Contour(double value, vtkDataArray* cellScalars, vtkIncrementalPointLocator* locator,
151  vtkCellArray* verts, vtkCellArray* lines, vtkCellArray* polys, vtkPointData* inPd,
152  vtkPointData* outPd, vtkCellData* inCd, vtkIdType cellId, vtkCellData* outCd) override;
153 
166  void Clip(double value, vtkDataArray* cellScalars, vtkIncrementalPointLocator* locator,
167  vtkCellArray* connectivity, vtkPointData* inPd, vtkPointData* outPd, vtkCellData* inCd,
168  vtkIdType cellId, vtkCellData* outCd, int insideOut) override;
169 
173  int GetCellDimension() override { return 3; }
174 
186  int Inflate(double dist) override;
187 
189 
194  vtkSetClampMacro(MergeTolerance, double, 0.0001, 0.25);
195  vtkGetMacro(MergeTolerance, double);
197 
198 protected:
199  vtkCell3D();
200  ~vtkCell3D() override;
201 
204 
205  // used to support clipping
208 
209 private:
210  vtkCell3D(const vtkCell3D&) = delete;
211  void operator=(const vtkCell3D&) = delete;
212 };
213 
214 #endif
vtkTetra * ClipTetra
Definition: vtkCell3D.h:206
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
represent and manipulate point attribute data
Definition: vtkPointData.h:41
represent and manipulate cell attribute data
Definition: vtkCellData.h:41
Abstract class in support of both point location and point insertion.
helper class to generate triangulations
int vtkIdType
Definition: vtkType.h:332
abstract class to specify 3D cell interface
Definition: vtkCell3D.h:38
dynamic, self-adjusting array of double
a 3D cell that represents a tetrahedron
Definition: vtkTetra.h:44
abstract class to specify cell behavior
Definition: vtkCell.h:60
vtkOrderedTriangulator * Triangulator
Definition: vtkCell3D.h:202
a simple class to control print indentation
Definition: vtkIndent.h:39
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
int GetCellDimension() override
The topological dimension of the cell.
Definition: vtkCell3D.h:173
virtual int Inflate(double dist)
Inflates the cell.
virtual void Clip(double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut)=0
Cut (or clip) the cell based on the input cellScalars and the specified value.
object to represent cell connectivity
Definition: vtkCellArray.h:186
virtual void Contour(double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd)=0
Generate contouring primitives.
double MergeTolerance
Definition: vtkCell3D.h:203
vtkDoubleArray * ClipScalars
Definition: vtkCell3D.h:207