VTK
vtkQuadRotationalExtrusionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkQuadRotationalExtrusionFilter.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 =========================================================================*/
64 #ifndef vtkQuadRotationalExtrusionFilter_h
65 #define vtkQuadRotationalExtrusionFilter_h
66 
67 #include "vtkFiltersModelingModule.h" // For export macro
69 #include <map> // STL vector need for per block angles
70 
71 class vtkPoints;
72 class vtkPointData;
73 
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 
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  std::map<vtkIdType,double> PerBlockAngles;
164 //ETX
165 
166  private:
168  void operator=(const vtkQuadRotationalExtrusionFilter&); // Not implemented.
169 };
170 
171 #endif
represent and manipulate point attribute data
Definition: vtkPointData.h:36
Store vtkAlgorithm input/output information.
#define VTK_INT_MAX
Definition: vtkType.h:130
#define VTKFILTERSMODELING_EXPORT
int vtkIdType
Definition: vtkType.h:247
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
static vtkMultiBlockDataSetAlgorithm * New()
a simple class to control print indentation
Definition: vtkIndent.h:38
virtual int FillInputPortInformation(int port, vtkInformation *info)
void PrintSelf(ostream &os, vtkIndent indent)
Store zero or more vtkInformation instances.
sweep polygonal data creating "skirt" from free edges and lines, and lines from vertices ...
represent and manipulate 3D points
Definition: vtkPoints.h:38