VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGeometricErrorMetric.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00030 #ifndef __vtkGeometricErrorMetric_h 00031 #define __vtkGeometricErrorMetric_h 00032 00033 #include "vtkGenericSubdivisionErrorMetric.h" 00034 00035 class vtkGenericDataSet; 00036 00037 class VTK_FILTERING_EXPORT vtkGeometricErrorMetric : public vtkGenericSubdivisionErrorMetric 00038 { 00039 public: 00042 static vtkGeometricErrorMetric *New(); 00043 00045 00046 vtkTypeMacro(vtkGeometricErrorMetric,vtkGenericSubdivisionErrorMetric); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00049 00051 00054 vtkGetMacro(AbsoluteGeometricTolerance, double); 00056 00063 void SetAbsoluteGeometricTolerance(double value); 00064 00066 00070 void SetRelativeGeometricTolerance(double value, 00071 vtkGenericDataSet *ds); 00073 00075 00088 int RequiresEdgeSubdivision(double *leftPoint, double *midPoint, double *rightPoint, 00089 double alpha); 00091 00093 00102 double GetError(double *leftPoint, double *midPoint, 00103 double *rightPoint, double alpha); 00105 00107 int GetRelative(); 00108 00109 protected: 00110 vtkGeometricErrorMetric(); 00111 virtual ~vtkGeometricErrorMetric(); 00112 00114 00117 double Distance2LinePoint(double x[3], 00118 double y[3], 00119 double z[3]); 00121 00122 double AbsoluteGeometricTolerance; 00123 double SmallestSize; 00124 int Relative; // Control the type of output of GetError() 00125 00126 private: 00127 vtkGeometricErrorMetric(const vtkGeometricErrorMetric&); // Not implemented. 00128 void operator=(const vtkGeometricErrorMetric&); // Not implemented. 00129 }; 00130 00131 #endif