00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040 #ifndef __vtkImageActor_h
00041 #define __vtkImageActor_h
00042
00043 #include "vtkProp3D.h"
00044
00045 class vtkPropCollection;
00046 class vtkRenderer;
00047 class vtkImageData;
00048
00049 class VTK_RENDERING_EXPORT vtkImageActor : public vtkProp3D
00050 {
00051 public:
00052 vtkTypeMacro(vtkImageActor,vtkProp3D);
00053 void PrintSelf(ostream& os, vtkIndent indent);
00054
00056 static vtkImageActor *New();
00057
00059
00060 virtual void SetInput(vtkImageData *);
00061 vtkGetObjectMacro(Input,vtkImageData);
00063
00065
00066 vtkGetMacro(Interpolate,int);
00067 vtkSetMacro(Interpolate,int);
00068 vtkBooleanMacro(Interpolate,int);
00070
00072
00074 vtkSetClampMacro(Opacity,double,0.0,1.0);
00075 vtkGetMacro(Opacity,double);
00077
00079
00081 void SetDisplayExtent(int extent[6]);
00082 void SetDisplayExtent(int minX, int maxX, int minY, int maxY,
00083 int minZ, int maxZ);
00084 void GetDisplayExtent(int extent[6]);
00085 int *GetDisplayExtent() {return this->DisplayExtent;}
00087
00089
00093 double *GetBounds();
00094 void GetBounds(double bounds[6]) { this->Superclass::GetBounds(bounds); };
00096
00098
00101 double *GetDisplayBounds();
00102 void GetDisplayBounds(double bounds[6]);
00104
00106
00108 int GetSliceNumber();
00109 int GetSliceNumberMax();
00110 int GetSliceNumberMin();
00112
00113
00115
00118 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport);
00119 int RenderOpaqueGeometry(vtkViewport *viewport);
00120 virtual void Render(vtkRenderer *) {};
00122
00124
00125 virtual int HasTranslucentPolygonalGeometry();
00126
00128
00130
00137 void SetZSlice(int z) {this->SetDisplayExtent(
00138 this->DisplayExtent[0], this->DisplayExtent[1],
00139 this->DisplayExtent[2], this->DisplayExtent[3], z, z);
00140 };
00141 int GetZSlice() { return this->DisplayExtent[4];};
00142 int GetWholeZMin();
00143 int GetWholeZMax();
00145
00146 protected:
00147 vtkImageActor();
00148 ~vtkImageActor();
00149
00150 int Interpolate;
00151 double Opacity;
00152 vtkImageData* Input;
00153 int DisplayExtent[6];
00154 int ComputedDisplayExtent[6];
00155 double DisplayBounds[6];
00156
00157 private:
00158 vtkImageActor(const vtkImageActor&);
00159 void operator=(const vtkImageActor&);
00160 };
00161
00162 #endif
00163