VTK  9.7.1
vtkJogglePoints.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
40 #ifndef vtkJogglePoints_h
41 #define vtkJogglePoints_h
42 
43 #include "vtkFiltersMeshingModule.h" // For export macro
44 #include "vtkPointSetAlgorithm.h"
45 #include <random> // For random number generation
46 
47 VTK_ABI_NAMESPACE_BEGIN
48 
49 class VTKFILTERSMESHING_EXPORT vtkJogglePoints : public vtkPointSetAlgorithm
50 {
51 public:
53 
57  static vtkJogglePoints* New();
59  void PrintSelf(ostream& os, vtkIndent indent) override;
61 
63 
69  vtkSetClampMacro(Radius, double, 0, VTK_DOUBLE_MAX);
70  vtkGetMacro(Radius, double);
71  vtkSetMacro(RadiusIsAbsolute, vtkTypeBool);
72  vtkBooleanMacro(RadiusIsAbsolute, vtkTypeBool);
73  vtkGetMacro(RadiusIsAbsolute, vtkTypeBool);
75 
78  {
79  UNCONSTRAINED = 0,
80  XY_PLANE = 1,
81  XZ_PLANE = 2,
82  YZ_PLANE = 3
83  };
84 
92  vtkSetClampMacro(Joggle, int, UNCONSTRAINED, YZ_PLANE);
93  vtkGetMacro(Joggle, int);
94  void SetJoggleToUnconstrained() { this->SetJoggle(UNCONSTRAINED); }
95  void SetJoggleToXYPlane() { this->SetJoggle(XY_PLANE); }
96  void SetJoggleToXZPlane() { this->SetJoggle(XZ_PLANE); }
97  void SetJoggleToYZPlane() { this->SetJoggle(YZ_PLANE); }
99 
100 protected:
101  vtkJogglePoints();
102  ~vtkJogglePoints() override;
103 
104  double Radius;
106  int Joggle;
107 
108  // Support second input
110 
111 private:
112  vtkJogglePoints(const vtkJogglePoints&) = delete;
113  void operator=(const vtkJogglePoints&) = delete;
114 };
115 
116 VTK_ABI_NAMESPACE_END
117 #endif
void SetJoggleToUnconstrained()
Specify constraints on the point perturbations (i.e., joggle motion).
#define VTK_DOUBLE_MAX
Definition: vtkType.h:202
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
Store vtkAlgorithm input/output information.
JoggleConstraints
Specify constraints on the point perturbations (i.e., joggle motion).
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, obtaining type information, and printing instances of the class...
void SetJoggleToXYPlane()
Specify constraints on the point perturbations (i.e., joggle motion).
vtkTypeBool RadiusIsAbsolute
void SetJoggleToXZPlane()
Specify constraints on the point perturbations (i.e., joggle motion).
int vtkTypeBool
Definition: vtkABI.h:64
void SetJoggleToYZPlane()
Specify constraints on the point perturbations (i.e., joggle motion).
a simple class to control print indentation
Definition: vtkIndent.h:28
Superclass for algorithms that process vtkPointSet input.
static vtkPointSetAlgorithm * New()
Standard methods for instantiation, obtaining type information, and printing instances of the class...
randomly perturb (or jitter) point positions
Store zero or more vtkInformation instances.