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=========================================================================*/
29
30#ifndef vtkImageMandelbrotSource_h
31#define vtkImageMandelbrotSource_h
32
33#include "vtkImageAlgorithm.h"
34#include "vtkImagingSourcesModule.h" // For export macro
35
36class VTKIMAGINGSOURCES_EXPORT vtkImageMandelbrotSource : public vtkImageAlgorithm
37{
38public:
41 void PrintSelf(ostream& os, vtkIndent indent) override;
42
44
47 void SetWholeExtent(int extent[6]);
48 void SetWholeExtent(int minX, int maxX, int minY, int maxY, int minZ, int maxZ);
49 vtkGetVector6Macro(WholeExtent, int);
51
53
60 vtkBooleanMacro(ConstantSize, vtkTypeBool);
62
64
69 void SetProjectionAxes(int x, int y, int z);
70 void SetProjectionAxes(int a[3]) { this->SetProjectionAxes(a[0], a[1], a[2]); }
71 vtkGetVector3Macro(ProjectionAxes, int);
73
75
79 vtkSetVector4Macro(OriginCX, double);
80 // void SetOriginCX(double cReal, double cImag, double xReal, double xImag);
81 vtkGetVector4Macro(OriginCX, double);
83
85
89 vtkSetVector4Macro(SampleCX, double);
90 // void SetOriginCX(double cReal, double cImag, double xReal, double xImag);
91 vtkGetVector4Macro(SampleCX, double);
93
95
101 void SetSizeCX(double cReal, double cImag, double xReal, double xImag);
103 void GetSizeCX(double s[4]);
105
107
110 vtkSetClampMacro(MaximumNumberOfIterations, unsigned short, static_cast<unsigned short>(1),
111 static_cast<unsigned short>(5000));
112 vtkGetMacro(MaximumNumberOfIterations, unsigned short);
114
116
120 void Zoom(double factor);
121 void Pan(double x, double y, double z);
123
129
131
134 vtkSetClampMacro(SubsampleRate, int, 1, VTK_INT_MAX);
135 vtkGetMacro(SubsampleRate, int);
137
138protected:
141
143
144 // WholeExtent in 3 space (after projection).
146
147 // Complex constant/initial-value at origin.
148 double OriginCX[4];
149 // Initial complex value at origin.
150 double SampleCX[4];
152
153 // A temporary vector that is computed as needed.
154 // It is used to return a vector.
155 double SizeCX[4];
156
157 // A flag for keeping size constant (vs. keeping the spacing).
159
161
162 // see vtkAlgorithm for details
164 vtkInformationVector* outputVector) override;
165
167 double EvaluateSet(double p[4]);
168
169private:
171 void operator=(const vtkImageMandelbrotSource&) = delete;
172};
173
174#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:34
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(...)