VTK
vtkLinearExtrusionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLinearExtrusionFilter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
57 #ifndef vtkLinearExtrusionFilter_h
58 #define vtkLinearExtrusionFilter_h
59 
60 #include "vtkFiltersModelingModule.h" // For export macro
61 #include "vtkPolyDataAlgorithm.h"
62 
63 class vtkDataArray;
64 
65 #define VTK_VECTOR_EXTRUSION 1
66 #define VTK_NORMAL_EXTRUSION 2
67 #define VTK_POINT_EXTRUSION 3
68 
69 class VTKFILTERSMODELING_EXPORT vtkLinearExtrusionFilter : public vtkPolyDataAlgorithm
70 {
71 public:
73  void PrintSelf(ostream& os, vtkIndent indent);
74 
79  static vtkLinearExtrusionFilter *New();
80 
82 
85  vtkSetClampMacro(ExtrusionType,int,VTK_VECTOR_EXTRUSION,VTK_POINT_EXTRUSION);
86  vtkGetMacro(ExtrusionType,int);
88  {this->SetExtrusionType(VTK_VECTOR_EXTRUSION);};
90  {this->SetExtrusionType(VTK_NORMAL_EXTRUSION);};
92  {this->SetExtrusionType(VTK_POINT_EXTRUSION);};
94 
96 
99  vtkSetMacro(Capping,int);
100  vtkGetMacro(Capping,int);
101  vtkBooleanMacro(Capping,int);
103 
105 
108  vtkSetMacro(ScaleFactor,double);
109  vtkGetMacro(ScaleFactor,double);
111 
113 
117  vtkSetVector3Macro(Vector,double);
118  vtkGetVectorMacro(Vector,double,3);
120 
122 
126  vtkSetVector3Macro(ExtrusionPoint,double);
127  vtkGetVectorMacro(ExtrusionPoint,double,3);
129 
130 protected:
133 
136  int Capping;
137  double ScaleFactor;
138  double Vector[3];
139  double ExtrusionPoint[3];
140 
141  void (vtkLinearExtrusionFilter::*ExtrudePoint)(double x[3], vtkIdType id,
142  vtkDataArray *normals);
143  void ViaNormal(double x[3], vtkIdType id, vtkDataArray *normals);
144  void ViaVector(double x[3], vtkIdType id, vtkDataArray *normals=0);
145  void ViaPoint(double x[3], vtkIdType id, vtkDataArray *normals=0);
146 
147 private:
148  vtkLinearExtrusionFilter(const vtkLinearExtrusionFilter&) VTK_DELETE_FUNCTION;
149  void operator=(const vtkLinearExtrusionFilter&) VTK_DELETE_FUNCTION;
150 };
151 
152 #endif
#define VTK_POINT_EXTRUSION
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
int vtkIdType
Definition: vtkType.h:287
#define VTK_VECTOR_EXTRUSION
#define VTK_NORMAL_EXTRUSION
static vtkPolyDataAlgorithm * New()
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:39
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
void SetExtrusionTypeToVectorExtrusion()
Set/Get the type of extrusion.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void SetExtrusionTypeToPointExtrusion()
Set/Get the type of extrusion.
void SetExtrusionTypeToNormalExtrusion()
Set/Get the type of extrusion.
sweep polygonal data creating a "skirt" from free edges and lines, and lines from vertices ...
Store zero or more vtkInformation instances.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.