VTK  9.2.6
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 =========================================================================*/
65 #ifndef vtkQuadRotationalExtrusionFilter_h
66 #define vtkQuadRotationalExtrusionFilter_h
67 
68 #include "vtkFiltersModelingModule.h" // For export macro
70 #include <map> // STL vector need for per block angles
71 
72 class vtkPoints;
73 class vtkPointData;
74 
75 class VTKFILTERSMODELING_EXPORT vtkQuadRotationalExtrusionFilter
77 {
78 public:
80  void PrintSelf(ostream& os, vtkIndent indent) override;
81 
88 
90  {
91  USE_X = 0,
92  USE_Y = 1,
93  USE_Z = 2
94  };
95 
97 
100  vtkSetClampMacro(Axis, int, 0, 2);
101  vtkGetMacro(Axis, int);
102  void SetAxisToX() { this->SetAxis(USE_X); }
103  void SetAxisToY() { this->SetAxis(USE_Y); }
104  void SetAxisToZ() { this->SetAxis(USE_Z); }
106 
108 
112  vtkSetClampMacro(Resolution, int, 1, VTK_INT_MAX);
113  vtkGetMacro(Resolution, int);
115 
117 
120  vtkSetMacro(Capping, vtkTypeBool);
121  vtkGetMacro(Capping, vtkTypeBool);
122  vtkBooleanMacro(Capping, vtkTypeBool);
124 
126 
129  vtkSetMacro(DefaultAngle, double);
130  vtkGetMacro(DefaultAngle, double);
132 
134 
137  void RemoveAllPerBlockAngles();
138  void AddPerBlockAngle(vtkIdType blockId, double angle);
140 
142 
145  vtkSetMacro(Translation, double);
146  vtkGetMacro(Translation, double);
148 
150 
153  vtkSetMacro(DeltaRadius, double);
154  vtkGetMacro(DeltaRadius, double);
156 
157 protected:
159  ~vtkQuadRotationalExtrusionFilter() override = default;
160 
161  int FillInputPortInformation(int, vtkInformation*) override;
163 
164  int RotateAroundAxis(double, vtkIdType, vtkPoints*, vtkPoints*, vtkPointData*, vtkPointData*);
165  int Axis;
168  double DefaultAngle;
169  double Translation;
170  double DeltaRadius;
171 
172  std::map<vtkIdType, double> PerBlockAngles;
173 
174 private:
176  void operator=(const vtkQuadRotationalExtrusionFilter&) = delete;
177 };
178 
179 #endif
represent and manipulate point attribute data
Definition: vtkPointData.h:41
Store vtkAlgorithm input/output information.
#define VTK_INT_MAX
Definition: vtkType.h:155
void SetAxisToY()
Set the axis of rotation to use.
int vtkIdType
Definition: vtkType.h:332
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
static vtkMultiBlockDataSetAlgorithm * New()
int vtkTypeBool
Definition: vtkABI.h:69
a simple class to control print indentation
Definition: vtkIndent.h:39
void SetAxisToX()
Set the axis of rotation to use.
void SetAxisToZ()
Set the axis of rotation to use.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
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:39