VTK  9.2.6
vtkImageMandelbrotSource.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImageMandelbrotSource.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=========================================================================*/
35
36#ifndef vtkImageMandelbrotSource_h
37#define vtkImageMandelbrotSource_h
38
39#include "vtkImageAlgorithm.h"
40#include "vtkImagingSourcesModule.h" // For export macro
41
42class VTKIMAGINGSOURCES_EXPORT vtkImageMandelbrotSource : public vtkImageAlgorithm
43{
44public:
47 void PrintSelf(ostream& os, vtkIndent indent) override;
48
50
53 void SetWholeExtent(int extent[6]);
54 void SetWholeExtent(int minX, int maxX, int minY, int maxY, int minZ, int maxZ);
55 vtkGetVector6Macro(WholeExtent, int);
57
59
66 vtkBooleanMacro(ConstantSize, vtkTypeBool);
68
70
75 void SetProjectionAxes(int x, int y, int z);
76 void SetProjectionAxes(int a[3]) { this->SetProjectionAxes(a[0], a[1], a[2]); }
77 vtkGetVector3Macro(ProjectionAxes, int);
79
81
85 vtkSetVector4Macro(OriginCX, double);
86 // void SetOriginCX(double cReal, double cImag, double xReal, double xImag);
87 vtkGetVector4Macro(OriginCX, double);
89
91
95 vtkSetVector4Macro(SampleCX, double);
96 // void SetOriginCX(double cReal, double cImag, double xReal, double xImag);
97 vtkGetVector4Macro(SampleCX, double);
99
101
107 void SetSizeCX(double cReal, double cImag, double xReal, double xImag);
109 void GetSizeCX(double s[4]);
111
113
116 vtkSetClampMacro(MaximumNumberOfIterations, unsigned short, static_cast<unsigned short>(1),
117 static_cast<unsigned short>(5000));
118 vtkGetMacro(MaximumNumberOfIterations, unsigned short);
120
122
126 void Zoom(double factor);
127 void Pan(double x, double y, double z);
129
135
137
140 vtkSetClampMacro(SubsampleRate, int, 1, VTK_INT_MAX);
141 vtkGetMacro(SubsampleRate, int);
143
144protected:
147
149
150 // WholeExtent in 3 space (after projection).
152
153 // Complex constant/initial-value at origin.
154 double OriginCX[4];
155 // Initial complex value at origin.
156 double SampleCX[4];
158
159 // A temporary vector that is computed as needed.
160 // It is used to return a vector.
161 double SizeCX[4];
162
163 // A flag for keeping size constant (vs. keeping the spacing).
165
167
168 // see vtkAlgorithm for details
170 vtkInformationVector* outputVector) override;
171
173 double EvaluateSet(double p[4]);
174
175private:
177 void operator=(const vtkImageMandelbrotSource&) = delete;
178};
179
180#endif
void Zoom(double factor)
Convenience for Viewer.
void Pan(double x, double y, double z)
Convenience for Viewer.
void SetProjectionAxes(int a[3])
Set the projection from the 4D space (4 parameters / 2 imaginary numbers) to the axes of the 3D Volum...
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called in response to a REQUEST_DATA request from the executive.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetWholeExtent(int extent[6])
Set/Get the extent of the whole output Volume.
void SetSizeCX(double cReal, double cImag, double xReal, double xImag)
Just a different way of setting the sample.
static vtkImageMandelbrotSource * New()
double EvaluateSet(double p[4])
void CopyOriginAndSample(vtkImageMandelbrotSource *source)
Convenience for Viewer.
void SetWholeExtent(int minX, int maxX, int minY, int maxY, int minZ, int maxZ)
Set/Get the extent of the whole output Volume.
double * GetSizeCX()
Just a different way of setting the sample.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
void SetProjectionAxes(int x, int y, int z)
Set the projection from the 4D space (4 parameters / 2 imaginary numbers) to the axes of the 3D Volum...
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition vtkABI.h:69
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define VTK_INT_MAX
Definition vtkType.h:155
#define VTK_SIZEHINT(...)