VTK
|
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