00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00039
#ifndef __vtkImageMandelbrotSource_h
00040
#define __vtkImageMandelbrotSource_h
00041
00042
#include "vtkImageSource.h"
00043
00044 class VTK_IMAGING_EXPORT vtkImageMandelbrotSource :
public vtkImageSource
00045 {
00046
public:
00047
static vtkImageMandelbrotSource *
New();
00048 vtkTypeRevisionMacro(vtkImageMandelbrotSource,
vtkImageSource);
00049
void PrintSelf(ostream& os,
vtkIndent indent);
00050
00052
00053
void SetWholeExtent(
int extent[6]);
00054
void SetWholeExtent(
int minX,
int maxX,
int minY,
int maxY,
00055
int minZ,
int maxZ);
00056 vtkGetVector6Macro(WholeExtent,
int);
00058
00060
00062 vtkSetMacro(ConstantSize,
int);
00063 vtkGetMacro(ConstantSize,
int);
00064 vtkBooleanMacro(ConstantSize,
int);
00066
00068
00071
void SetProjectionAxes(
int x,
int y,
int z);
00072 void SetProjectionAxes(
int a[3]) {this->SetProjectionAxes(a[0],a[1],a[2]);}
00073 vtkGetVector3Macro(ProjectionAxes,
int);
00075
00077
00079 vtkSetVector4Macro(OriginCX,
double);
00080
00081 vtkGetVector4Macro(OriginCX,
double);
00083
00085
00087 vtkSetVector4Macro(SampleCX,
double);
00088
00089 vtkGetVector4Macro(SampleCX,
double);
00091
00093
00096
void SetSizeCX(
double cReal,
double cImag,
double xReal,
double xImag);
00097
double *GetSizeCX();
00098
void GetSizeCX(
double s[4]);
00100
00102
00103 vtkSetClampMacro(MaximumNumberOfIterations,
unsigned short, 1, 5000);
00104 vtkGetMacro(MaximumNumberOfIterations,
unsigned short);
00106
00108
00110
void Zoom(
double factor);
00111
void Pan(
double x,
double y,
double z);
00113
00116
void CopyOriginAndSample(vtkImageMandelbrotSource *source);
00117
00118
protected:
00119 vtkImageMandelbrotSource();
00120 ~vtkImageMandelbrotSource();
00121
00122 int ProjectionAxes[3];
00123
00124
00125 int WholeExtent[6];
00126
00127
00128 double OriginCX[4];
00129
00130 double SampleCX[4];
00131 unsigned short MaximumNumberOfIterations;
00132
00133
00134
00135 double SizeCX[4];
00136
00137
00138 int ConstantSize;
00139
00140
virtual void ExecuteData(
vtkDataObject *outData);
00141
virtual void ExecuteInformation();
00142
float EvaluateSet(
double p[4]);
00143
private:
00144 vtkImageMandelbrotSource(
const vtkImageMandelbrotSource&);
00145
void operator=(
const vtkImageMandelbrotSource&);
00146 };
00147
00148
00149
#endif
00150
00151