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 "vtkCommonDataModelModule.h" // For export macro 00035 #include "vtkImplicitFunction.h" 00036 00037 class vtkPolyLine; 00038 class vtkDoubleArray; 00039 00040 class VTKCOMMONDATAMODEL_EXPORT vtkPolyPlane : public vtkImplicitFunction 00041 { 00042 public: 00044 static vtkPolyPlane *New(); 00045 00046 vtkTypeMacro(vtkPolyPlane,vtkImplicitFunction); 00047 void PrintSelf(ostream& os, vtkIndent indent); 00048 00050 00051 double EvaluateFunction(double x[3]); 00052 double EvaluateFunction(double x, double y, double z) 00053 {return this->vtkImplicitFunction::EvaluateFunction(x, y, z); } ; 00055 00057 void EvaluateGradient(double x[3], double g[3]); 00058 00060 00062 virtual void SetPolyLine( vtkPolyLine * ); 00063 vtkGetObjectMacro( PolyLine, vtkPolyLine ); 00065 00067 virtual unsigned long GetMTime(); 00068 00069 protected: 00070 vtkPolyPlane(); 00071 ~vtkPolyPlane(); 00072 00073 void ComputeNormals(); 00074 00075 double ExtrusionDirection[3]; 00076 vtkPolyLine * PolyLine; 00077 vtkTimeStamp NormalComputeTime; 00078 vtkDoubleArray * Normals; 00079 vtkIdType ClosestPlaneIdx; 00080 00081 private: 00082 vtkPolyPlane(const vtkPolyPlane&); // Not implemented. 00083 void operator=(const vtkPolyPlane&); // Not implemented. 00084 }; 00085 00086 #endif