VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkQuadRotationalExtrusionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: $RCSfile: vtkQuadRotationalExtrusionFilter.h,v $
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 =========================================================================*/
64 #ifndef __vtkQuadRotationalExtrusionFilter_h
65 #define __vtkQuadRotationalExtrusionFilter_h
66 
67 #include "vtkFiltersModelingModule.h" // For export macro
69 #include <vtksys/stl/map> // STL vector need for per block angles
70 
71 class vtkPoints;
72 class vtkPointData;
73 
74 class VTKFILTERSMODELING_EXPORT vtkQuadRotationalExtrusionFilter : public vtkMultiBlockDataSetAlgorithm
75 {
76  public:
78  void PrintSelf(ostream& os, vtkIndent indent);
79 
83 
84 //BTX
86  {
87  USE_X = 0,
88  USE_Y = 1,
89  USE_Z = 2
90  };
91 //ETX
92 
94 
95  vtkSetClampMacro(Axis, int, 0, 2);
96  vtkGetMacro(Axis, int);
97  void SetAxisToX() { this->SetAxis(USE_X); };
98  void SetAxisToY() { this->SetAxis(USE_Y); };
99  void SetAxisToZ() { this->SetAxis(USE_Z); };
101 
103 
105  vtkSetClampMacro(Resolution,int,1,VTK_INT_MAX);
106  vtkGetMacro(Resolution,int);
108 
110 
111  vtkSetMacro(Capping,int);
112  vtkGetMacro(Capping,int);
113  vtkBooleanMacro(Capping,int);
115 
117 
118  vtkSetMacro(DefaultAngle,double);
119  vtkGetMacro(DefaultAngle,double);
121 
123 
124  void RemoveAllPerBlockAngles();
125  void AddPerBlockAngle(vtkIdType blockId, double angle);
127 
129 
130  vtkSetMacro(Translation,double);
131  vtkGetMacro(Translation,double);
133 
135 
136  vtkSetMacro(DeltaRadius,double);
137  vtkGetMacro(DeltaRadius,double);
139 
140  protected:
143 
144  int FillInputPortInformation( int , vtkInformation* );
145  int RequestData( vtkInformation*,
146  vtkInformationVector**,
147  vtkInformationVector* );
148 
149  int RotateAroundAxis( double,
150  vtkIdType,
151  vtkPoints*,
152  vtkPoints*,
153  vtkPointData*,
154  vtkPointData* );
155  int Axis;
157  int Capping;
158  double DefaultAngle;
159  double Translation;
160  double DeltaRadius;
161 
162 //BTX
163  vtksys_stl::map<vtkIdType,double> PerBlockAngles;
164 //ETX
165 
166  private:
168  void operator=(const vtkQuadRotationalExtrusionFilter&); // Not implemented.
169 };
170 
171 #endif
vtksys_stl::map< vtkIdType, double > PerBlockAngles
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
static vtkMultiBlockDataSetAlgorithm * New()
virtual int FillInputPortInformation(int port, vtkInformation *info)
void PrintSelf(ostream &os, vtkIndent indent)
sweep polygonal data creating "skirt" from free edges and lines, and lines from vertices ...