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