VTK
dox/Filtering/vtkPolyPlane.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPolyPlane.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 =========================================================================*/
00031 #ifndef __vtkPolyPlane_h
00032 #define __vtkPolyPlane_h
00033 
00034 #include "vtkImplicitFunction.h"
00035 
00036 class vtkPolyLine;
00037 class vtkDoubleArray;
00038 
00039 class VTK_FILTERING_EXPORT vtkPolyPlane : public vtkImplicitFunction
00040 {
00041 public:
00043   static vtkPolyPlane *New();
00044 
00045   vtkTypeMacro(vtkPolyPlane,vtkImplicitFunction);
00046   void PrintSelf(ostream& os, vtkIndent indent);
00047 
00049 
00050   double EvaluateFunction(double x[3]);
00051   double EvaluateFunction(double x, double y, double z)
00052     {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ;
00054 
00056   void EvaluateGradient(double x[3], double g[3]);
00057 
00059 
00061   virtual void SetPolyLine( vtkPolyLine * );
00062   vtkGetObjectMacro( PolyLine, vtkPolyLine );
00064 
00066   virtual unsigned long GetMTime();
00067 
00068 protected:
00069   vtkPolyPlane();
00070   ~vtkPolyPlane();
00071 
00072   void ComputeNormals();
00073 
00074   double           ExtrusionDirection[3];
00075   vtkPolyLine    * PolyLine;
00076   vtkTimeStamp     NormalComputeTime;
00077   vtkDoubleArray * Normals;
00078   vtkIdType        ClosestPlaneIdx;
00079 
00080 private:
00081   vtkPolyPlane(const vtkPolyPlane&);  // Not implemented.
00082   void operator=(const vtkPolyPlane&);  // Not implemented.
00083 };
00084 
00085 #endif