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 =========================================================================*/
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 : public vtkMultiBlockDataSetAlgorithm
73 {
74  public:
76  void PrintSelf(ostream& os, vtkIndent indent) override;
77 
84 
86  {
87  USE_X = 0,
88  USE_Y = 1,
89  USE_Z = 2
90  };
91 
93 
96  vtkSetClampMacro(Axis, int, 0, 2);
97  vtkGetMacro(Axis, int);
98  void SetAxisToX() { this->SetAxis(USE_X); };
99  void SetAxisToY() { this->SetAxis(USE_Y); };
100  void SetAxisToZ() { this->SetAxis(USE_Z); };
102 
104 
108  vtkSetClampMacro(Resolution,int,1,VTK_INT_MAX);
109  vtkGetMacro(Resolution,int);
111 
113 
116  vtkSetMacro(Capping,vtkTypeBool);
117  vtkGetMacro(Capping,vtkTypeBool);
118  vtkBooleanMacro(Capping,vtkTypeBool);
120 
122 
125  vtkSetMacro(DefaultAngle,double);
126  vtkGetMacro(DefaultAngle,double);
128 
130 
133  void RemoveAllPerBlockAngles();
134  void AddPerBlockAngle(vtkIdType blockId, double angle);
136 
138 
141  vtkSetMacro(Translation,double);
142  vtkGetMacro(Translation,double);
144 
146 
149  vtkSetMacro(DeltaRadius,double);
150  vtkGetMacro(DeltaRadius,double);
152 
153  protected:
156 
157  int FillInputPortInformation( int , vtkInformation* ) override;
160  vtkInformationVector* ) override;
161 
162  int RotateAroundAxis( double,
163  vtkIdType,
164  vtkPoints*,
165  vtkPoints*,
166  vtkPointData*,
167  vtkPointData* );
168  int Axis;
171  double DefaultAngle;
172  double Translation;
173  double DeltaRadius;
174 
175  std::map<vtkIdType,double> PerBlockAngles;
176 
177  private:
179  void operator=(const vtkQuadRotationalExtrusionFilter&) = delete;
180 };
181 
182 #endif
represent and manipulate point attribute data
Definition: vtkPointData.h:31
Store vtkAlgorithm input/output information.
#define VTK_INT_MAX
Definition: vtkType.h:157
void SetAxisToY()
Set the axis of rotation to use.
int vtkIdType
Definition: vtkType.h:345
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