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
34class vtkTetra;
35class vtkCellArray;
36class vtkDoubleArray;
37
38class VTKCOMMONDATAMODEL_EXPORT vtkCell3D : public vtkCell
39{
40public:
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
198protected:
200 ~vtkCell3D() override;
201
204
205 // used to support clipping
208
209private:
210 vtkCell3D(const vtkCell3D&) = delete;
211 void operator=(const vtkCell3D&) = delete;
212};
213
214#endif
abstract class to specify 3D cell interface
Definition: vtkCell3D.h:39
int GetCellDimension() override
The topological dimension of the cell.
Definition: vtkCell3D.h:173
void Clip(double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) override
Cut (or clip) the cell based on the input cellScalars and the specified value.
~vtkCell3D() override
double MergeTolerance
Definition: vtkCell3D.h:203
virtual vtkIdType GetPointToIncidentEdges(vtkIdType pointId, const vtkIdType *&edgeIds)=0
Get the ids of the incident edges to point of id pointId.
virtual vtkIdType GetPointToOneRingPoints(vtkIdType pointId, const vtkIdType *&pts)=0
Get the ids of a one-ring surrounding point of id pointId.
vtkOrderedTriangulator * Triangulator
Definition: vtkCell3D.h:202
void Contour(double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd) override
Generate contouring primitives.
virtual vtkIdType GetFacePoints(vtkIdType faceId, const vtkIdType *&pts)=0
Get the list of vertices that define a face.
vtkTetra * ClipTetra
Definition: vtkCell3D.h:206
virtual vtkIdType GetFaceToAdjacentFaces(vtkIdType faceId, const vtkIdType *&faceIds)=0
Get the ids of the adjacent faces to face of id faceId.
virtual bool IsInsideOut()
Returns true if the normals of the vtkCell3D point inside the cell.
virtual bool GetCentroid(double centroid[3]) const =0
Computes the centroid of the cell.
virtual void GetEdgePoints(vtkIdType edgeId, const vtkIdType *&pts)=0
Get the pair of vertices that define an edge.
int Inflate(double dist) override
Inflates the cell.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void GetEdgeToAdjacentFaces(vtkIdType edgeId, const vtkIdType *&faceIds)=0
Get the ids of the two adjacent faces to edge of id edgeId.
vtkDoubleArray * ClipScalars
Definition: vtkCell3D.h:207
virtual vtkIdType GetPointToIncidentFaces(vtkIdType pointId, const vtkIdType *&faceIds)=0
Get the ids of the incident faces point of id pointId.
object to represent cell connectivity
Definition: vtkCellArray.h:187
represent and manipulate cell attribute data
Definition: vtkCellData.h:42
abstract class to specify cell behavior
Definition: vtkCell.h:61
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:56
dynamic, self-adjusting array of double
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
Definition: vtkIndent.h:40
helper class to generate triangulations
represent and manipulate point attribute data
Definition: vtkPointData.h:42
a 3D cell that represents a tetrahedron
Definition: vtkTetra.h:45
int vtkIdType
Definition: vtkType.h:332