VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImplicitPolyDataDistance.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 =========================================================================*/ 00041 #ifndef __vtkImplicitPolyDataDistance_h 00042 #define __vtkImplicitPolyDataDistance_h 00043 00044 #include "vtkFiltersCoreModule.h" // For export macro 00045 #include "vtkImplicitFunction.h" 00046 00047 class vtkCellLocator; 00048 class vtkPolyData; 00049 00050 class VTKFILTERSCORE_EXPORT vtkImplicitPolyDataDistance : public vtkImplicitFunction 00051 { 00052 public: 00053 static vtkImplicitPolyDataDistance *New(); 00054 vtkTypeMacro(vtkImplicitPolyDataDistance,vtkImplicitFunction); 00055 void PrintSelf(ostream& os, vtkIndent indent); 00056 00058 unsigned long GetMTime(); 00059 00061 double EvaluateFunction(double x[3]); 00062 00064 void EvaluateGradient(double x[3], double g[3]); 00065 00070 void SetInput(vtkPolyData *input); 00071 00073 00074 vtkSetMacro(NoValue, double); 00075 vtkGetMacro(NoValue, double); 00077 00079 00081 vtkSetVector3Macro(NoGradient, double); 00082 vtkGetVector3Macro(NoGradient, double); 00084 00086 00087 vtkGetMacro(Tolerance, double); 00088 vtkSetMacro(Tolerance, double); 00090 00091 protected: 00092 vtkImplicitPolyDataDistance(); 00093 ~vtkImplicitPolyDataDistance(); 00094 00095 double SharedEvaluate( double x[3], double n[3] ); 00096 00097 private: 00098 vtkImplicitPolyDataDistance(const vtkImplicitPolyDataDistance&); // Not implemented. 00099 void operator=(const vtkImplicitPolyDataDistance&); // Not implemented. 00100 00101 double NoValue; 00102 double NoGradient[3]; 00103 double Tolerance; 00104 00105 vtkPolyData *Input; 00106 vtkCellLocator *Locator; 00107 00108 }; 00109 00110 #endif