VTK  9.0.1
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 =========================================================================*/
62 #ifndef vtkQuadRotationalExtrusionFilter_h
63 #define vtkQuadRotationalExtrusionFilter_h
64 
65 #include "vtkFiltersModelingModule.h" // For export macro
67 #include <map> // STL vector need for per block angles
68 
69 class vtkPoints;
70 class vtkPointData;
71 
72 class VTKFILTERSMODELING_EXPORT vtkQuadRotationalExtrusionFilter
74 {
75 public:
77  void PrintSelf(ostream& os, vtkIndent indent) override;
78 
85 
87  {
88  USE_X = 0,
89  USE_Y = 1,
90  USE_Z = 2
91  };
92 
94 
97  vtkSetClampMacro(Axis, int, 0, 2);
98  vtkGetMacro(Axis, int);
99  void SetAxisToX() { this->SetAxis(USE_X); }
100  void SetAxisToY() { this->SetAxis(USE_Y); }
101  void SetAxisToZ() { this->SetAxis(USE_Z); }
103 
105 
109  vtkSetClampMacro(Resolution, int, 1, VTK_INT_MAX);
110  vtkGetMacro(Resolution, int);
112 
114 
117  vtkSetMacro(Capping, vtkTypeBool);
118  vtkGetMacro(Capping, vtkTypeBool);
119  vtkBooleanMacro(Capping, vtkTypeBool);
121 
123 
126  vtkSetMacro(DefaultAngle, double);
127  vtkGetMacro(DefaultAngle, double);
129 
131 
134  void RemoveAllPerBlockAngles();
135  void AddPerBlockAngle(vtkIdType blockId, double angle);
137 
139 
142  vtkSetMacro(Translation, double);
143  vtkGetMacro(Translation, double);
145 
147 
150  vtkSetMacro(DeltaRadius, double);
151  vtkGetMacro(DeltaRadius, double);
153 
154 protected:
157 
158  int FillInputPortInformation(int, vtkInformation*) override;
160 
161  int RotateAroundAxis(double, vtkIdType, vtkPoints*, vtkPoints*, vtkPointData*, vtkPointData*);
162  int Axis;
165  double DefaultAngle;
166  double Translation;
167  double DeltaRadius;
168 
169  std::map<vtkIdType, double> PerBlockAngles;
170 
171 private:
173  void operator=(const vtkQuadRotationalExtrusionFilter&) = delete;
174 };
175 
176 #endif
represent and manipulate point attribute data
Definition: vtkPointData.h:31
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:338
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:33
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:33