VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImplicitSelectionLoop.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 =========================================================================*/ 00050 #ifndef __vtkImplicitSelectionLoop_h 00051 #define __vtkImplicitSelectionLoop_h 00052 00053 #include "vtkImplicitFunction.h" 00054 00055 class vtkPoints; 00056 class vtkPolygon; 00057 00058 class VTK_FILTERING_EXPORT vtkImplicitSelectionLoop : public vtkImplicitFunction 00059 { 00060 public: 00062 00063 vtkTypeMacro(vtkImplicitSelectionLoop,vtkImplicitFunction); 00064 void PrintSelf(ostream& os, vtkIndent indent); 00066 00068 static vtkImplicitSelectionLoop *New(); 00069 00071 00072 double EvaluateFunction(double x[3]); 00073 double EvaluateFunction(double x, double y, double z) 00074 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ; 00076 00078 void EvaluateGradient(double x[3], double n[3]); 00079 00081 00083 virtual void SetLoop(vtkPoints*); 00084 vtkGetObjectMacro(Loop,vtkPoints); 00086 00088 00091 vtkSetMacro(AutomaticNormalGeneration,int); 00092 vtkGetMacro(AutomaticNormalGeneration,int); 00093 vtkBooleanMacro(AutomaticNormalGeneration,int); 00095 00097 00099 vtkSetVector3Macro(Normal,double); 00100 vtkGetVectorMacro(Normal,double,3); 00102 00104 unsigned long GetMTime(); 00105 00106 protected: 00107 vtkImplicitSelectionLoop(); 00108 ~vtkImplicitSelectionLoop(); 00109 00110 vtkPoints *Loop; 00111 double Normal[3]; 00112 int AutomaticNormalGeneration; 00113 00114 private: 00115 void Initialize(); 00116 vtkPolygon *Polygon; 00117 00118 double Origin[3]; 00119 double Bounds[6]; //bounds of the projected polyon 00120 double DeltaX; 00121 double DeltaY; 00122 double DeltaZ; 00123 00124 vtkTimeStamp InitializationTime; 00125 00126 private: 00127 vtkImplicitSelectionLoop(const vtkImplicitSelectionLoop&); // Not implemented. 00128 void operator=(const vtkImplicitSelectionLoop&); // Not implemented. 00129 }; 00130 00131 #endif 00132 00133