70 #ifndef vtkGreedyTerrainDecimation_h 71 #define vtkGreedyTerrainDecimation_h 84 class vtkGreedyTerrainDecimationTerrainInfoType;
85 class vtkGreedyTerrainDecimationPointInfoType;
87 #define VTK_ERROR_NUMBER_OF_TRIANGLES 0 88 #define VTK_ERROR_SPECIFIED_REDUCTION 1 89 #define VTK_ERROR_ABSOLUTE 2 90 #define VTK_ERROR_RELATIVE 3 111 vtkGetMacro(ErrorMeasure,
int);
129 vtkSetClampMacro(NumberOfTriangles,vtkIdType,2,VTK_ID_MAX);
130 vtkGetMacro(NumberOfTriangles,vtkIdType);
139 vtkSetClampMacro(Reduction,
double,0.0,1.0);
140 vtkGetMacro(Reduction,
double);
150 vtkGetMacro(AbsoluteError,
double);
161 vtkGetMacro(RelativeError,
double);
170 vtkGetMacro(BoundaryVertexDeletion,
int);
179 vtkGetMacro(ComputeNormals,
int);
192 void ComputePointNormal(
int i,
int j,
float n[3]);
223 void EstimateOutputSize(
const vtkIdType numInputPts, vtkIdType &numPts, vtkIdType &numTris);
226 virtual int SatisfiesErrorMeasure(
double error);
229 void InsertBoundaryVertices();
232 vtkIdType AddPointToTriangulation(vtkIdType inputPtId);
233 vtkIdType InsertNextPoint(vtkIdType inputPtId,
double x[3]);
235 void GetPoint(vtkIdType
id,
double x[3]);
238 void GetTerrainPoint(
int i,
int j,
double x[3]);
239 void ComputeImageCoordinates(vtkIdType inputPtId,
int ij[2]);
240 int InCircle (
double x[3],
double x1[3],
double x2[3],
double x3[3]);
241 vtkIdType FindTriangle(
double x[3], vtkIdType ptIds[3], vtkIdType tri,
242 double tol, vtkIdType nei[3],
vtkIdList *neighbors,
int& status);
243 void CheckEdge(vtkIdType ptId,
double x[3], vtkIdType p1, vtkIdType p2,
244 vtkIdType tri,
int depth);
246 void UpdateTriangles(vtkIdType meshPtId);
247 void UpdateTriangle(vtkIdType triId, vtkIdType p1, vtkIdType p2, vtkIdType p3);
248 void UpdateTriangle(vtkIdType triId,
int ij1[2],
int ij2[2],
int ij3[2],
double h[4]);
250 int CharacterizeTriangle(
int ij1[2],
int ij2[2],
int ij[3],
251 int* &min,
int* &
max,
int* &midL,
int* &midR,
252 int* &mid,
int mid2[2],
double h[3],
double &hMin,
double &hMax,
253 double &hL,
double &hR);
#define VTK_ERROR_SPECIFIED_REDUCTION
represent and manipulate point attribute data
vtkIdType NumberOfTriangles
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
vtkPriorityQueue * TerrainError
dynamic, self-adjusting array of float
vtkGreedyTerrainDecimationPointInfoType * PointInfo
void SetErrorMeasureToAbsoluteError()
Specify how to terminate the algorithm: either as an absolute number of triangles,...
concrete dataset represents vertices, lines, polygons, and triangle strips
void GetPoint(const int i, const int j, const int k, double pnt[3])
dynamic, self-adjusting array of double
a list of ids arranged in priority order
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
#define VTK_ERROR_ABSOLUTE
void SetErrorMeasureToRelativeError()
Specify how to terminate the algorithm: either as an absolute number of triangles,...
a simple class to control print indentation
#define VTKFILTERSHYBRID_EXPORT
list of point or cell ids
abstract superclass for arrays of numeric data
vtkGreedyTerrainDecimationTerrainInfoType * TerrainInfo
void SetErrorMeasureToNumberOfTriangles()
Specify how to terminate the algorithm: either as an absolute number of triangles,...
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
#define VTK_ERROR_NUMBER_OF_TRIANGLES
void SetErrorMeasureToSpecifiedReduction()
Specify how to terminate the algorithm: either as an absolute number of triangles,...
#define VTK_ERROR_RELATIVE
vtkIdType MaximumNumberOfTriangles
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
int BoundaryVertexDeletion
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
reduce height field (represented as image) to reduced TIN
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.