Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Graphics/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 =========================================================================*/
00069 #ifndef __vtkLinearExtrusionFilter_h
00070 #define __vtkLinearExtrusionFilter_h
00071 
00072 #include "vtkPolyDataToPolyDataFilter.h"
00073 
00074 class vtkDataArray;
00075 
00076 #define VTK_VECTOR_EXTRUSION 1
00077 #define VTK_NORMAL_EXTRUSION 2
00078 #define VTK_POINT_EXTRUSION 3
00079 
00080 class VTK_GRAPHICS_EXPORT vtkLinearExtrusionFilter : public vtkPolyDataToPolyDataFilter 
00081 {
00082 public:
00083   vtkTypeRevisionMacro(vtkLinearExtrusionFilter,vtkPolyDataToPolyDataFilter);
00084   void PrintSelf(ostream& os, vtkIndent indent);
00085 
00088   static vtkLinearExtrusionFilter *New();
00089 
00091 
00092   vtkSetClampMacro(ExtrusionType,int,VTK_VECTOR_EXTRUSION,VTK_POINT_EXTRUSION);
00093   vtkGetMacro(ExtrusionType,int);
00094   void SetExtrusionTypeToVectorExtrusion()
00095     {this->SetExtrusionType(VTK_VECTOR_EXTRUSION);};
00096   void SetExtrusionTypeToNormalExtrusion()
00097     {this->SetExtrusionType(VTK_NORMAL_EXTRUSION);};
00098   void SetExtrusionTypeToPointExtrusion()
00099     {this->SetExtrusionType(VTK_POINT_EXTRUSION);};
00101 
00103 
00104   vtkSetMacro(Capping,int);
00105   vtkGetMacro(Capping,int);
00106   vtkBooleanMacro(Capping,int);
00108 
00110 
00111   vtkSetMacro(ScaleFactor,float);
00112   vtkGetMacro(ScaleFactor,float);
00114 
00116 
00118   vtkSetVector3Macro(Vector,float);
00119   vtkGetVectorMacro(Vector,float,3);
00121 
00123 
00125   vtkSetVector3Macro(ExtrusionPoint,float);
00126   vtkGetVectorMacro(ExtrusionPoint,float,3);
00128 
00129 protected:
00130   vtkLinearExtrusionFilter();
00131   ~vtkLinearExtrusionFilter() {};
00132 
00133   void Execute();
00134   int ExtrusionType;
00135   int Capping;
00136   float ScaleFactor;
00137   float Vector[3];
00138   float ExtrusionPoint[3];
00139 
00140   //BTX
00141   float *(vtkLinearExtrusionFilter::*ExtrudePoint)(float x[3], vtkIdType id, 
00142                                                    vtkDataArray *normals);
00143   float *ViaNormal(float x[3], vtkIdType id, vtkDataArray *normals);
00144   float *ViaVector(float x[3], vtkIdType id, vtkDataArray *normals=0);
00145   float *ViaPoint(float x[3], vtkIdType id, vtkDataArray *normals=0);
00146   //ETX
00147  
00148 private:
00149   vtkLinearExtrusionFilter(const vtkLinearExtrusionFilter&);  // Not implemented.
00150   void operator=(const vtkLinearExtrusionFilter&);  // Not implemented.
00151 };
00152 
00153 #endif