VTK  9.3.1
vtkDiskSource.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
21 #ifndef vtkDiskSource_h
22 #define vtkDiskSource_h
23 
24 #include "vtkFiltersSourcesModule.h" // For export macro
25 #include "vtkPolyDataAlgorithm.h"
26 
27 VTK_ABI_NAMESPACE_BEGIN
28 class vtkTransform;
29 
30 class VTKFILTERSSOURCES_EXPORT vtkDiskSource : public vtkPolyDataAlgorithm
31 {
32 public:
34 
38  static vtkDiskSource* New();
40  void PrintSelf(ostream& os, vtkIndent indent) override;
42 
44 
47  vtkSetClampMacro(InnerRadius, double, 0.0, VTK_DOUBLE_MAX);
48  vtkGetMacro(InnerRadius, double);
50 
52 
55  vtkSetClampMacro(OuterRadius, double, 0.0, VTK_DOUBLE_MAX);
56  vtkGetMacro(OuterRadius, double);
58 
60 
63  vtkSetClampMacro(RadialResolution, int, 1, VTK_INT_MAX);
64  vtkGetMacro(RadialResolution, int);
66 
68 
71  vtkSetClampMacro(CircumferentialResolution, int, 3, VTK_INT_MAX);
72  vtkGetMacro(CircumferentialResolution, int);
74 
76 
79  vtkSetVector3Macro(Center, double);
80  vtkGetVectorMacro(Center, double, 3);
82 
84 
87  vtkSetVector3Macro(Normal, double);
88  vtkGetVectorMacro(Normal, double, 3);
90 
92 
97  vtkSetMacro(OutputPointsPrecision, int);
98  vtkGetMacro(OutputPointsPrecision, int);
100 
101 protected:
102  vtkDiskSource();
103  ~vtkDiskSource() override = default;
104 
106  vtkSmartPointer<vtkTransform> GetTransformation();
107  double InnerRadius;
108  double OuterRadius;
109  double Center[3];
110  double Normal[3];
114 
115 private:
116  vtkDiskSource(const vtkDiskSource&) = delete;
117  void operator=(const vtkDiskSource&) = delete;
118 };
119 
120 VTK_ABI_NAMESPACE_END
121 #endif
int CircumferentialResolution
#define VTK_DOUBLE_MAX
Definition: vtkType.h:154
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
#define VTK_INT_MAX
Definition: vtkType.h:144
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:49
int OutputPointsPrecision
static vtkPolyDataAlgorithm * New()
double InnerRadius
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:28
double OuterRadius
create a disk with hole in center
Definition: vtkDiskSource.h:30
Store zero or more vtkInformation instances.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.