VTK  9.2.6
vtkTemporalFractal.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: ParaView
4 Module: vtkTemporalFractal.h
5
6 Copyright (c) Kitware, Inc.
7 All rights reserved.
8 See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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=========================================================================*/
32#ifndef vtkTemporalFractal_h
33#define vtkTemporalFractal_h
34
35#include "vtkAlgorithm.h"
36#include "vtkFiltersHybridModule.h" // For export macro
37#include "vtkSmartPointer.h" //for ivars
38
40class vtkDataSet;
42class vtkIntArray;
44class vtkUniformGrid;
45class TemporalFractalOutputUtil;
46
47class VTKFILTERSHYBRID_EXPORT vtkTemporalFractal : public vtkAlgorithm
48{
49public:
51
56 void PrintSelf(ostream& os, vtkIndent indent) override;
58
60
64 vtkSetMacro(FractalValue, float);
65 vtkGetMacro(FractalValue, float);
67
69
74 vtkSetMacro(MaximumLevel, int);
75 vtkGetMacro(MaximumLevel, int);
77
79
82 vtkSetMacro(Dimensions, int);
83 vtkGetMacro(Dimensions, int);
85
87
90 vtkSetMacro(GhostLevels, vtkTypeBool);
91 vtkGetMacro(GhostLevels, vtkTypeBool);
92 vtkBooleanMacro(GhostLevels, vtkTypeBool);
94
96
100 vtkSetMacro(GenerateRectilinearGrids, vtkTypeBool);
101 vtkGetMacro(GenerateRectilinearGrids, vtkTypeBool);
102 vtkBooleanMacro(GenerateRectilinearGrids, vtkTypeBool);
104
106
110 vtkSetMacro(DiscreteTimeSteps, vtkTypeBool);
111 vtkGetMacro(DiscreteTimeSteps, vtkTypeBool);
112 vtkBooleanMacro(DiscreteTimeSteps, vtkTypeBool);
114
116
119 vtkSetMacro(TwoDimensional, vtkTypeBool);
120 vtkGetMacro(TwoDimensional, vtkTypeBool);
121 vtkBooleanMacro(TwoDimensional, vtkTypeBool);
123
125
129 vtkSetMacro(Asymmetric, int);
130 vtkGetMacro(Asymmetric, int);
132
134
137 vtkSetMacro(AdaptiveSubdivision, vtkTypeBool);
138 vtkGetMacro(AdaptiveSubdivision, vtkTypeBool);
139 vtkBooleanMacro(AdaptiveSubdivision, vtkTypeBool);
141
142protected:
145
146 int FillOutputPortInformation(int vtkNotUsed(port), vtkInformation* info) override;
147
151
156 vtkInformationVector* outputVector) override;
157
163
168 virtual int RequestInformation(vtkInformation* request, vtkInformationVector** inputVector,
169 vtkInformationVector* outputVector);
170
172
176 virtual int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
177 vtkInformationVector* outputVector);
179 vtkInformationVector** inputVector, vtkInformationVector* outputVector);
181
182 void Traverse(int& blockId, int level, vtkDataObject* output, int x0, int x1, int y0, int y1,
183 int z0, int z1, int onFace[6]);
184
185 int LineTest2(float x0, float y0, float z0, float x1, float y1, float z1, double bds[6]);
186 int LineTest(float x0, float y0, float z0, float x1, float y1, float z1, double bds[6], int level,
187 int target);
188
189 void SetBlockInfo(vtkUniformGrid* grid, int level, int* ext, int onFace[6]);
190 void SetRBlockInfo(vtkRectilinearGrid* grid, int level, int* ext, int onFace[6]);
191
197
198 void AddGhostLevelArray(vtkDataSet* grid, int dim[3], int onFace[6]);
199
200 int MandelbrotTest(double x, double y);
201 int TwoDTest(double bds[6], int level, int target);
202
203 void CellExtentToBounds(int level, int ext[6], double bds[6]);
204
206 double EvaluateSet(double p[4]);
207 void GetContinuousIncrements(int extent[6], vtkIdType& incX, vtkIdType& incY, vtkIdType& incZ);
208
209 // Dimensions:
210 // Specify blocks relative to this top level block.
211 // For now this has to be set before the blocks are defined.
212 vtkSetVector3Macro(TopLevelSpacing, double);
213 vtkGetVector3Macro(TopLevelSpacing, double);
214 vtkSetVector3Macro(TopLevelOrigin, double);
215 vtkGetVector3Macro(TopLevelOrigin, double);
216
218
227
228 // New method of specifying blocks.
229 double TopLevelSpacing[3];
230 double TopLevelOrigin[3];
231
233
235
238
239private:
240 vtkTemporalFractal(const vtkTemporalFractal&) = delete;
241 void operator=(const vtkTemporalFractal&) = delete;
242};
243
244#endif
Superclass for all sources, filters, and sinks in VTK.
abstract superclass for composite (multi-block or AMR) datasets
general representation of visualization data
abstract class to specify dataset behavior
Definition vtkDataSet.h:63
Backwards compatibility class.
a simple class to control print indentation
Definition vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition vtkIntArray.h:46
a dataset that is topologically regular with variable spacing in the three coordinate directions
Hold a reference to a vtkObjectBase instance.
A source to test AMR data object.
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
see vtkAlgorithm for details
vtkTypeBool GenerateRectilinearGrids
virtual int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
void AddVectorArray(vtkHierarchicalBoxDataSet *output)
void SetBlockInfo(vtkUniformGrid *grid, int level, int *ext, int onFace[6])
vtkSmartPointer< TemporalFractalOutputUtil > OutputUtil
void AddGhostLevelArray(vtkDataSet *grid, int dim[3], int onFace[6])
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for instantiation, type information, and printing.
vtkTypeBool AdaptiveSubdivision
void AddTestArray(vtkHierarchicalBoxDataSet *output)
void AddBlockIdArray(vtkHierarchicalBoxDataSet *output)
void AddDepthArray(vtkHierarchicalBoxDataSet *output)
virtual int RequestOneTimeStep(vtkCompositeDataSet *output, vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
int LineTest2(float x0, float y0, float z0, float x1, float y1, float z1, double bds[6])
void Traverse(int &blockId, int level, vtkDataObject *output, int x0, int x1, int y0, int y1, int z0, int z1, int onFace[6])
~vtkTemporalFractal() override
void CellExtentToBounds(int level, int ext[6], double bds[6])
void GetContinuousIncrements(int extent[6], vtkIdType &incX, vtkIdType &incY, vtkIdType &incZ)
int LineTest(float x0, float y0, float z0, float x1, float y1, float z1, double bds[6], int level, int target)
static vtkTemporalFractal * New()
Standard methods for instantiation, type information, and printing.
int FillOutputPortInformation(int vtkNotUsed(port), vtkInformation *info) override
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
int MandelbrotTest(double x, double y)
virtual int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
double EvaluateSet(double p[4])
void SetRBlockInfo(vtkRectilinearGrid *grid, int level, int *ext, int onFace[6])
int TwoDTest(double bds[6], int level, int target)
void ExecuteRectilinearMandelbrot(vtkRectilinearGrid *grid, double *ptr)
void AddFractalArray(vtkCompositeDataSet *output)
void InternalImageDataCopy(vtkTemporalFractal *src)
image data with blanking
int vtkTypeBool
Definition vtkABI.h:69
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
int vtkIdType
Definition vtkType.h:332