VTK
dox/Filtering/vtkImplicitSelectionLoop.h
Go to the documentation of this file.
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