69 #ifndef __vtkGreedyTerrainDecimation_h
70 #define __vtkGreedyTerrainDecimation_h
82 class vtkGreedyTerrainDecimationTerrainInfoType;
83 class vtkGreedyTerrainDecimationPointInfoType;
85 #define VTK_ERROR_NUMBER_OF_TRIANGLES 0
86 #define VTK_ERROR_SPECIFIED_REDUCTION 1
87 #define VTK_ERROR_ABSOLUTE 2
88 #define VTK_ERROR_RELATIVE 3
106 vtkGetMacro(ErrorMeasure,
int);
107 void SetErrorMeasureToNumberOfTriangles()
109 void SetErrorMeasureToSpecifiedReduction()
111 void SetErrorMeasureToAbsoluteError()
113 void SetErrorMeasureToRelativeError()
123 vtkGetMacro(NumberOfTriangles,
vtkIdType);
130 vtkSetClampMacro(Reduction,
double,0.0,1.0);
131 vtkGetMacro(Reduction,
double);
140 vtkGetMacro(AbsoluteError,
double);
149 vtkGetMacro(RelativeError,
double);
155 vtkSetMacro(BoundaryVertexDeletion,
int);
156 vtkGetMacro(BoundaryVertexDeletion,
int);
157 vtkBooleanMacro(BoundaryVertexDeletion,
int);
162 vtkSetMacro(ComputeNormals,
int);
163 vtkGetMacro(ComputeNormals,
int);
164 vtkBooleanMacro(ComputeNormals,
int);
176 void ComputePointNormal(
int i,
int j,
float n[3]);
210 virtual int SatisfiesErrorMeasure(
double error);
213 void InsertBoundaryVertices();
219 void GetPoint(
vtkIdType id,
double x[3]);
222 void GetTerrainPoint(
int i,
int j,
double x[3]);
223 void ComputeImageCoordinates(
vtkIdType inputPtId,
int ij[2]);
224 int InCircle (
double x[3],
double x1[3],
double x2[3],
double x3[3]);
230 void UpdateTriangles(
vtkIdType meshPtId);
232 void UpdateTriangle(
vtkIdType triId,
int ij1[2],
int ij2[2],
int ij3[2],
double h[4]);
234 int CharacterizeTriangle(
int ij1[2],
int ij2[2],
int ij[3],
235 int* &min,
int* &
max,
int* &midL,
int* &midR,
236 int* &mid,
int mid2[2],
double h[3],
double &hMin,
double &hMax,
237 double &hL,
double &hR);