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   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00057 #ifndef __vtkLinearExtrusionFilter_h
00058 #define __vtkLinearExtrusionFilter_h
00059 
00060 #include "vtkPolyDataToPolyDataFilter.h"
00061 
00062 class vtkDataArray;
00063 
00064 #define VTK_VECTOR_EXTRUSION 1
00065 #define VTK_NORMAL_EXTRUSION 2
00066 #define VTK_POINT_EXTRUSION 3
00067 
00068 class VTK_GRAPHICS_EXPORT vtkLinearExtrusionFilter : public vtkPolyDataToPolyDataFilter 
00069 {
00070 public:
00071   vtkTypeRevisionMacro(vtkLinearExtrusionFilter,vtkPolyDataToPolyDataFilter);
00072   void PrintSelf(ostream& os, vtkIndent indent);
00073 
00076   static vtkLinearExtrusionFilter *New();
00077 
00079 
00080   vtkSetClampMacro(ExtrusionType,int,VTK_VECTOR_EXTRUSION,VTK_POINT_EXTRUSION);
00081   vtkGetMacro(ExtrusionType,int);
00082   void SetExtrusionTypeToVectorExtrusion()
00083     {this->SetExtrusionType(VTK_VECTOR_EXTRUSION);};
00084   void SetExtrusionTypeToNormalExtrusion()
00085     {this->SetExtrusionType(VTK_NORMAL_EXTRUSION);};
00086   void SetExtrusionTypeToPointExtrusion()
00087     {this->SetExtrusionType(VTK_POINT_EXTRUSION);};
00089 
00091 
00092   vtkSetMacro(Capping,int);
00093   vtkGetMacro(Capping,int);
00094   vtkBooleanMacro(Capping,int);
00096 
00098 
00099   vtkSetMacro(ScaleFactor,float);
00100   vtkGetMacro(ScaleFactor,float);
00102 
00104 
00106   vtkSetVector3Macro(Vector,float);
00107   vtkGetVectorMacro(Vector,float,3);
00109 
00111 
00113   vtkSetVector3Macro(ExtrusionPoint,float);
00114   vtkGetVectorMacro(ExtrusionPoint,float,3);
00116 
00117 protected:
00118   vtkLinearExtrusionFilter();
00119   ~vtkLinearExtrusionFilter() {};
00120 
00121   void Execute();
00122   int ExtrusionType;
00123   int Capping;
00124   float ScaleFactor;
00125   float Vector[3];
00126   float ExtrusionPoint[3];
00127 
00128   //BTX
00129   float *(vtkLinearExtrusionFilter::*ExtrudePoint)(float x[3], vtkIdType id, 
00130                                                    vtkDataArray *normals);
00131   float *ViaNormal(float x[3], vtkIdType id, vtkDataArray *normals);
00132   float *ViaVector(float x[3], vtkIdType id, vtkDataArray *normals=0);
00133   float *ViaPoint(float x[3], vtkIdType id, vtkDataArray *normals=0);
00134   //ETX
00135  
00136 private:
00137   vtkLinearExtrusionFilter(const vtkLinearExtrusionFilter&);  // Not implemented.
00138   void operator=(const vtkLinearExtrusionFilter&);  // Not implemented.
00139 };
00140 
00141 #endif