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 =========================================================================*/
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 : public vtkMultiBlockDataSetAlgorithm
76 {
77  public:
79  void PrintSelf(ostream& os, vtkIndent indent) override;
80 
87 
89  {
90  USE_X = 0,
91  USE_Y = 1,
92  USE_Z = 2
93  };
94 
96 
99  vtkSetClampMacro(Axis, int, 0, 2);
100  vtkGetMacro(Axis, int);
101  void SetAxisToX() { this->SetAxis(USE_X); };
102  void SetAxisToY() { this->SetAxis(USE_Y); };
103  void SetAxisToZ() { this->SetAxis(USE_Z); };
105 
107 
111  vtkSetClampMacro(Resolution,int,1,VTK_INT_MAX);
112  vtkGetMacro(Resolution,int);
114 
116 
119  vtkSetMacro(Capping,vtkTypeBool);
120  vtkGetMacro(Capping,vtkTypeBool);
121  vtkBooleanMacro(Capping,vtkTypeBool);
123 
125 
128  vtkSetMacro(DefaultAngle,double);
129  vtkGetMacro(DefaultAngle,double);
131 
133 
136  void RemoveAllPerBlockAngles();
137  void AddPerBlockAngle(vtkIdType blockId, double angle);
139 
141 
144  vtkSetMacro(Translation,double);
145  vtkGetMacro(Translation,double);
147 
149 
152  vtkSetMacro(DeltaRadius,double);
153  vtkGetMacro(DeltaRadius,double);
155 
156  protected:
159 
160  int FillInputPortInformation( int , vtkInformation* ) override;
163  vtkInformationVector* ) override;
164 
165  int RotateAroundAxis( double,
166  vtkIdType,
167  vtkPoints*,
168  vtkPoints*,
169  vtkPointData*,
170  vtkPointData* );
171  int Axis;
174  double DefaultAngle;
175  double Translation;
176  double DeltaRadius;
177 
178  std::map<vtkIdType,double> PerBlockAngles;
179 
180  private:
182  void operator=(const vtkQuadRotationalExtrusionFilter&) = delete;
183 };
184 
185 #endif
represent and manipulate point attribute data
Definition: vtkPointData.h:37
Store vtkAlgorithm input/output information.
#define VTK_INT_MAX
Definition: vtkType.h:159
void SetAxisToY()
Set the axis of rotation to use.
int vtkIdType
Definition: vtkType.h:347
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