VTK  9.4.20241121
vtkPolyLine.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
123#ifndef vtkPolyLine_h
124#define vtkPolyLine_h
125
126#include "vtkCell.h"
127#include "vtkCommonDataModelModule.h" // For export macro
128#include "vtkNew.h" // For vtkNew.
129
130VTK_ABI_NAMESPACE_BEGIN
131class vtkPoints;
132class vtkCellArray;
133class vtkCellData;
134class vtkDataArray;
135class vtkLine;
137
138class VTKCOMMONDATAMODEL_EXPORT vtkPolyLine : public vtkCell
139{
140public:
141 static vtkPolyLine* New();
142 vtkTypeMacro(vtkPolyLine, vtkCell);
143 void PrintSelf(ostream& os, vtkIndent indent) override;
144
146
157 static int GenerateSlidingNormals(vtkPoints* pts, vtkCellArray* lines, vtkDataArray* normals);
159 double* firstNormal, bool threading = false);
161
163
166 int GetCellType() override { return VTK_POLY_LINE; }
167 int GetCellDimension() override { return 1; }
168 int GetNumberOfEdges() override { return 0; }
169 int GetNumberOfFaces() override { return 0; }
170 vtkCell* GetEdge(int vtkNotUsed(edgeId)) override { return nullptr; }
171 vtkCell* GetFace(int vtkNotUsed(faceId)) override { return nullptr; }
172 int CellBoundary(int subId, const double pcoords[3], vtkIdList* pts) override;
173 void Contour(double value, vtkDataArray* cellScalars, vtkIncrementalPointLocator* locator,
174 vtkCellArray* verts, vtkCellArray* lines, vtkCellArray* polys, vtkPointData* inPd,
175 vtkPointData* outPd, vtkCellData* inCd, vtkIdType cellId, vtkCellData* outCd) override;
176 void Clip(double value, vtkDataArray* cellScalars, vtkIncrementalPointLocator* locator,
177 vtkCellArray* lines, vtkPointData* inPd, vtkPointData* outPd, vtkCellData* inCd,
178 vtkIdType cellId, vtkCellData* outCd, int insideOut) override;
179 int EvaluatePosition(const double x[3], double closestPoint[3], int& subId, double pcoords[3],
180 double& dist2, double weights[]) override;
181 void EvaluateLocation(int& subId, const double pcoords[3], double x[3], double* weights) override;
182 int IntersectWithLine(const double p1[3], const double p2[3], double tol, double& t, double x[3],
183 double pcoords[3], int& subId) override;
184 int TriangulateLocalIds(int index, vtkIdList* ptIds) override;
186 int subId, const double pcoords[3], const double* values, int dim, double* derivs) override;
187 int IsPrimaryCell() override { return 0; }
189
193 int GetParametricCenter(double pcoords[3]) override;
194
195protected:
197 ~vtkPolyLine() override;
198
200
201private:
202 vtkPolyLine(const vtkPolyLine&) = delete;
203 void operator=(const vtkPolyLine&) = delete;
204};
205
206VTK_ABI_NAMESPACE_END
207#endif
object to represent cell connectivity
represent and manipulate cell attribute data
abstract class to specify cell behavior
Definition vtkCell.h:130
abstract superclass for arrays of numeric data
list of point or cell ids
Definition vtkIdList.h:133
Abstract class in support of both point location and point insertion.
a simple class to control print indentation
Definition vtkIndent.h:108
cell represents a 1D line
Definition vtkLine.h:132
Allocate and hold a VTK object.
Definition vtkNew.h:167
represent and manipulate point attribute data
represent and manipulate 3D points
Definition vtkPoints.h:139
cell represents a set of 1D lines
vtkCell * GetFace(int vtkNotUsed(faceId)) override
See the vtkCell API for descriptions of these methods.
void Clip(double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *lines, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) override
See the vtkCell API for descriptions of these methods.
static int GenerateSlidingNormals(vtkPoints *pts, vtkCellArray *lines, vtkDataArray *normals, double *firstNormal, bool threading=false)
Given points and lines, compute normals to the lines.
static int GenerateSlidingNormals(vtkPoints *pts, vtkCellArray *lines, vtkDataArray *normals)
Given points and lines, compute normals to the lines.
int GetNumberOfFaces() override
See the vtkCell API for descriptions of these methods.
int TriangulateLocalIds(int index, vtkIdList *ptIds) override
See the vtkCell API for descriptions of these methods.
int CellBoundary(int subId, const double pcoords[3], vtkIdList *pts) override
See the vtkCell API for descriptions of these methods.
int GetCellDimension() override
See the vtkCell API for descriptions of these methods.
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
See the vtkCell API for descriptions of these methods.
void EvaluateLocation(int &subId, const double pcoords[3], double x[3], double *weights) override
See the vtkCell API for descriptions of these methods.
int GetCellType() override
See the vtkCell API for descriptions of these methods.
int GetNumberOfEdges() override
See the vtkCell API for descriptions of these methods.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkPolyLine * New()
vtkCell * GetEdge(int vtkNotUsed(edgeId)) override
See the vtkCell API for descriptions of these methods.
int IntersectWithLine(const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId) override
See the vtkCell API for descriptions of these methods.
int GetParametricCenter(double pcoords[3]) override
Return the center of the point cloud in parametric coordinates.
vtkNew< vtkLine > Line
~vtkPolyLine() override
void Derivatives(int subId, const double pcoords[3], const double *values, int dim, double *derivs) override
See the vtkCell API for descriptions of these methods.
int EvaluatePosition(const double x[3], double closestPoint[3], int &subId, double pcoords[3], double &dist2, double weights[]) override
See the vtkCell API for descriptions of these methods.
int IsPrimaryCell() override
See the vtkCell API for descriptions of these methods.
@ VTK_POLY_LINE
Definition vtkCellType.h:41
int vtkIdType
Definition vtkType.h:315