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

vtkLinearExtrusionFilter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkLinearExtrusionFilter.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 =========================================================================*/
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   vtkTypeRevisionMacro(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   double *(vtkLinearExtrusionFilter::*ExtrudePoint)(double x[3], vtkIdType id, 
00129                                                    vtkDataArray *normals);
00130   double *ViaNormal(double x[3], vtkIdType id, vtkDataArray *normals);
00131   double *ViaVector(double x[3], vtkIdType id, vtkDataArray *normals=0);
00132   double *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

Generated on Mon Jan 21 23:07:25 2008 for VTK by  doxygen 1.4.3-20050530