VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkLinearExtrusionFilter.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 =========================================================================*/ 00056 #ifndef __vtkLinearExtrusionFilter_h 00057 #define __vtkLinearExtrusionFilter_h 00058 00059 #include "vtkPolyDataAlgorithm.h" 00060 00061 class vtkDataArray; 00062 00063 #define VTK_VECTOR_EXTRUSION 1 00064 #define VTK_NORMAL_EXTRUSION 2 00065 #define VTK_POINT_EXTRUSION 3 00066 00067 class VTK_GRAPHICS_EXPORT vtkLinearExtrusionFilter : public vtkPolyDataAlgorithm 00068 { 00069 public: 00070 vtkTypeMacro(vtkLinearExtrusionFilter,vtkPolyDataAlgorithm); 00071 void PrintSelf(ostream& os, vtkIndent indent); 00072 00075 static vtkLinearExtrusionFilter *New(); 00076 00078 00079 vtkSetClampMacro(ExtrusionType,int,VTK_VECTOR_EXTRUSION,VTK_POINT_EXTRUSION); 00080 vtkGetMacro(ExtrusionType,int); 00081 void SetExtrusionTypeToVectorExtrusion() 00082 {this->SetExtrusionType(VTK_VECTOR_EXTRUSION);}; 00083 void SetExtrusionTypeToNormalExtrusion() 00084 {this->SetExtrusionType(VTK_NORMAL_EXTRUSION);}; 00085 void SetExtrusionTypeToPointExtrusion() 00086 {this->SetExtrusionType(VTK_POINT_EXTRUSION);}; 00088 00090 00091 vtkSetMacro(Capping,int); 00092 vtkGetMacro(Capping,int); 00093 vtkBooleanMacro(Capping,int); 00095 00097 00098 vtkSetMacro(ScaleFactor,double); 00099 vtkGetMacro(ScaleFactor,double); 00101 00103 00105 vtkSetVector3Macro(Vector,double); 00106 vtkGetVectorMacro(Vector,double,3); 00108 00110 00112 vtkSetVector3Macro(ExtrusionPoint,double); 00113 vtkGetVectorMacro(ExtrusionPoint,double,3); 00115 00116 protected: 00117 vtkLinearExtrusionFilter(); 00118 ~vtkLinearExtrusionFilter() {}; 00119 00120 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00121 int ExtrusionType; 00122 int Capping; 00123 double ScaleFactor; 00124 double Vector[3]; 00125 double ExtrusionPoint[3]; 00126 00127 //BTX 00128 void (vtkLinearExtrusionFilter::*ExtrudePoint)(double x[3], vtkIdType id, 00129 vtkDataArray *normals); 00130 void ViaNormal(double x[3], vtkIdType id, vtkDataArray *normals); 00131 void ViaVector(double x[3], vtkIdType id, vtkDataArray *normals=0); 00132 void ViaPoint(double x[3], vtkIdType id, vtkDataArray *normals=0); 00133 //ETX 00134 00135 private: 00136 vtkLinearExtrusionFilter(const vtkLinearExtrusionFilter&); // Not implemented. 00137 void operator=(const vtkLinearExtrusionFilter&); // Not implemented. 00138 }; 00139 00140 #endif