Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkImplicitSelectionLoop.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImplicitSelectionLoop.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 =========================================================================*/
00062 #ifndef __vtkImplicitSelectionLoop_h
00063 #define __vtkImplicitSelectionLoop_h
00064 
00065 #include "vtkImplicitFunction.h"
00066 
00067 class vtkPoints;
00068 class vtkPolygon;
00069 
00070 class VTK_FILTERING_EXPORT vtkImplicitSelectionLoop : public vtkImplicitFunction
00071 {
00072 public:
00073   vtkTypeRevisionMacro(vtkImplicitSelectionLoop,vtkImplicitFunction);
00074   void PrintSelf(ostream& os, vtkIndent indent);
00075 
00077   static vtkImplicitSelectionLoop *New();
00078 
00080 
00081   double EvaluateFunction(double x[3]);
00082   double EvaluateFunction(double x, double y, double z)
00083     {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00085 
00087   void EvaluateGradient(double x[3], double n[3]);
00088 
00090 
00092   virtual void SetLoop(vtkPoints*);
00093   vtkGetObjectMacro(Loop,vtkPoints);
00095 
00097 
00100   vtkSetMacro(AutomaticNormalGeneration,int);
00101   vtkGetMacro(AutomaticNormalGeneration,int);
00102   vtkBooleanMacro(AutomaticNormalGeneration,int);
00104 
00106 
00108   vtkSetVector3Macro(Normal,double);
00109   vtkGetVectorMacro(Normal,double,3);
00111 
00113   unsigned long GetMTime();
00114 
00115 protected:
00116   vtkImplicitSelectionLoop();
00117   ~vtkImplicitSelectionLoop();
00118 
00119   vtkPoints *Loop;
00120   double Normal[3];
00121   int AutomaticNormalGeneration;
00122 
00123 private:
00124   void Initialize();
00125   vtkPolygon *Polygon;
00126 
00127   double Origin[3];
00128   double Bounds[6];
00129   double DeltaX;
00130   double DeltaY;
00131   double DeltaZ;
00132 
00133   vtkTimeStamp InitializationTime;
00134 
00135 private:
00136   vtkImplicitSelectionLoop(const vtkImplicitSelectionLoop&);  // Not implemented.
00137   void operator=(const vtkImplicitSelectionLoop&);  // Not implemented.
00138 };
00139 
00140 #endif
00141 
00142