VTK  9.6.1
vtkSuperquadricSource.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
44
45#ifndef vtkSuperquadricSource_h
46#define vtkSuperquadricSource_h
47
48#include "vtkFiltersSourcesModule.h" // For export macro
50#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
51
52#define VTK_MAX_SUPERQUADRIC_RESOLUTION 1024
53#define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
54#define VTK_MIN_SUPERQUADRIC_ROUNDNESS 1e-24
55
56VTK_ABI_NAMESPACE_BEGIN
57class VTKFILTERSSOURCES_EXPORT VTK_MARSHALAUTO vtkSuperquadricSource : public vtkPolyDataAlgorithm
58{
59public:
66
68 void PrintSelf(ostream& os, vtkIndent indent) override;
69
71
74 vtkSetVector3Macro(Center, double);
75 vtkGetVectorMacro(Center, double, 3);
77
79
82 vtkSetVector3Macro(Scale, double);
83 vtkGetVectorMacro(Scale, double, 3);
85
87
90 vtkGetMacro(ThetaResolution, int);
91 void SetThetaResolution(int i);
93
95
98 vtkGetMacro(PhiResolution, int);
99 void SetPhiResolution(int i);
101
103
108 vtkGetMacro(Thickness, double);
109 vtkSetClampMacro(Thickness, double, VTK_MIN_SUPERQUADRIC_THICKNESS, 1.0);
111
113
118 vtkGetMacro(PhiRoundness, double);
119 void SetPhiRoundness(double e);
121
123
128 vtkGetMacro(ThetaRoundness, double);
129 void SetThetaRoundness(double e);
131
133
136 vtkSetMacro(Size, double);
137 vtkGetMacro(Size, double);
139
141
145 vtkSetMacro(AxisOfSymmetry, int);
146 vtkGetMacro(AxisOfSymmetry, int);
151
153
157 vtkBooleanMacro(Toroidal, vtkTypeBool);
158 vtkGetMacro(Toroidal, vtkTypeBool);
159 vtkSetMacro(Toroidal, vtkTypeBool);
161
163
168 vtkSetMacro(OutputPointsPrecision, int);
169 vtkGetMacro(OutputPointsPrecision, int);
171
172protected:
174 ~vtkSuperquadricSource() override = default;
175
178 double Thickness;
179 double Size;
184 double Center[3];
185 double Scale[3];
189
190private:
192 void operator=(const vtkSuperquadricSource&) = delete;
193};
194
195VTK_ABI_NAMESPACE_END
196#endif
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
void SetPhiRoundness(double e)
Set/Get Superquadric north/south roundness.
~vtkSuperquadricSource() override=default
void SetZAxisOfSymmetry()
Set/Get axis of symmetry for superquadric (x axis: 0, y axis: 1, z axis: 2).
virtual void SetAxisOfSymmetry(int)
Set/Get axis of symmetry for superquadric (x axis: 0, y axis: 1, z axis: 2).
vtkSuperquadricSource(int res=16)
void SetPhiResolution(int i)
Set the number of points in the latitude direction.
void SetThetaRoundness(double e)
Set/Get Superquadric east/west roundness.
void SetYAxisOfSymmetry()
Set/Get axis of symmetry for superquadric (x axis: 0, y axis: 1, z axis: 2).
static vtkSuperquadricSource * New()
Create a default superquadric with a radius of 0.5, non-toroidal, spherical, and centered at the orig...
void SetXAxisOfSymmetry()
Set/Get axis of symmetry for superquadric (x axis: 0, y axis: 1, z axis: 2).
void SetThetaResolution(int i)
Set the number of points in the longitude direction.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_MIN_SUPERQUADRIC_THICKNESS
#define VTK_MARSHALAUTO