VTK  9.7.1
vtkLissajousPointCloud.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
27 #ifndef vtkLissajousPointCloud_h
28 #define vtkLissajousPointCloud_h
29 
30 #include "vtkFiltersSourcesModule.h" // For export macro.
31 #include "vtkMath.h" // For vtkMath::Pi().
32 #include "vtkPolyDataAlgorithm.h"
33 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
34 
35 VTK_ABI_NAMESPACE_BEGIN
36 
37 class VTKFILTERSSOURCES_EXPORT VTK_MARSHALAUTO vtkLissajousPointCloud : public vtkPolyDataAlgorithm
38 {
39 public:
41 
45  static vtkLissajousPointCloud* New();
46  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
50 
53  vtkSetMacro(NumberOfPoints, vtkIdType);
54  vtkGetMacro(NumberOfPoints, vtkIdType);
56 
58 
61  vtkSetVector3Macro(Amplitude, double);
62  vtkGetVectorMacro(Amplitude, double, 3);
64 
66 
69  vtkSetVector3Macro(Frequency, double);
70  vtkGetVectorMacro(Frequency, double, 3);
72 
74 
77  vtkSetVector3Macro(Phase, double);
78  vtkGetVectorMacro(Phase, double, 3);
80 
82 
85  vtkSetVector3Macro(Noise, double);
86  vtkGetVectorMacro(Noise, double, 3);
88 
90 
94  vtkGetMacro(Radius, double);
95  vtkSetClampMacro(Radius, double, 0, VTK_DOUBLE_MAX);
97 
99 
107  vtkGetMacro(DeterministicNoise, vtkTypeBool);
108  vtkSetMacro(DeterministicNoise, vtkTypeBool);
109  vtkBooleanMacro(DeterministicNoise, vtkTypeBool);
111 
113 
118  vtkGetMacro(DeterministicSeed, int);
119  vtkSetMacro(DeterministicSeed, int);
121 
123 
126  vtkGetMacro(GenerateParameterScalar, vtkTypeBool);
127  vtkSetMacro(GenerateParameterScalar, vtkTypeBool);
128  vtkBooleanMacro(GenerateParameterScalar, vtkTypeBool);
130 
132 
138  vtkGetMacro(GenerateRegionScalar, vtkTypeBool);
139  vtkSetMacro(GenerateRegionScalar, vtkTypeBool);
140  vtkBooleanMacro(GenerateRegionScalar, vtkTypeBool);
142 
144 
149  vtkGetMacro(AddBackgroundPoints, vtkTypeBool);
150  vtkSetMacro(AddBackgroundPoints, vtkTypeBool);
151  vtkBooleanMacro(AddBackgroundPoints, vtkTypeBool);
152  vtkGetMacro(BackgroundLabel, int);
153  vtkSetMacro(BackgroundLabel, int);
155 
156 protected:
158  ~vtkLissajousPointCloud() override;
159 
160  int RequestData(
161  vtkInformation* request, vtkInformationVector** inInfo, vtkInformationVector* outInfo) override;
162 
163  vtkIdType NumberOfPoints{ 128 };
164  double Amplitude[3] = { 1, 1, 1 };
165  double Frequency[3] = { 1, 2, 3 };
166  double Phase[3] = { vtkMath::Pi() / 2., 0., vtkMath::Pi() / 8. };
167  double Noise[3] = { 0.05, 0.05, 0.05 };
168  vtkTypeBool DeterministicNoise{ false };
169  vtkTypeBool GenerateParameterScalar{ false };
170  vtkTypeBool GenerateRegionScalar{ false };
171  int DeterministicSeed{ 0xea7beef };
172  double Radius{ 0. };
173  vtkTypeBool AddBackgroundPoints{ false };
174  int BackgroundLabel{ -1 };
175 
176 private:
178  void operator=(const vtkLissajousPointCloud&) = delete;
179 };
180 
181 VTK_ABI_NAMESPACE_END
182 #endif
#define VTK_DOUBLE_MAX
Definition: vtkType.h:202
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
static constexpr double Pi()
A mathematical constant.
Definition: vtkMath.h:118
int vtkIdType
Definition: vtkType.h:363
static vtkPolyDataAlgorithm * New()
int vtkTypeBool
Definition: vtkABI.h:64
Superclass for algorithms that produce only polydata as output.
a simple class to control print indentation
Definition: vtkIndent.h:28
create a set of points distributed within a tube centered on a Lissajous curve.
Store zero or more vtkInformation instances.
#define VTK_MARSHALAUTO
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.