00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkSmoothErrorMetric.h,v $ 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 =========================================================================*/ 00033 #ifndef __vtkSmoothErrorMetric_h 00034 #define __vtkSmoothErrorMetric_h 00035 00036 #include "vtkGenericSubdivisionErrorMetric.h" 00037 00038 class vtkGenericDataSet; 00039 00040 class VTK_FILTERING_EXPORT vtkSmoothErrorMetric : public vtkGenericSubdivisionErrorMetric 00041 { 00042 public: 00045 static vtkSmoothErrorMetric *New(); 00046 00048 00049 vtkTypeRevisionMacro(vtkSmoothErrorMetric,vtkGenericSubdivisionErrorMetric); 00050 void PrintSelf(ostream& os, vtkIndent indent); 00052 00055 double GetAngleTolerance(); 00056 00061 void SetAngleTolerance(double value); 00062 00064 00077 int RequiresEdgeSubdivision(double *leftPoint, double *midPoint, 00078 double *rightPoint, double alpha); 00080 00082 00091 double GetError(double *leftPoint, double *midPoint, double *rightPoint, 00092 double alpha); 00094 00095 protected: 00096 vtkSmoothErrorMetric(); 00097 virtual ~vtkSmoothErrorMetric(); 00098 00099 double AngleTolerance; 00100 double CosTolerance; 00101 00102 private: 00103 vtkSmoothErrorMetric(const vtkSmoothErrorMetric&); // Not implemented. 00104 void operator=(const vtkSmoothErrorMetric&); // Not implemented. 00105 }; 00106 00107 #endif