00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00037 #ifndef __vtkImageActor_h
00038 #define __vtkImageActor_h
00039
00040 #include "vtkProp3D.h"
00041
00042 class vtkPropCollection;
00043 class vtkRenderer;
00044 class vtkImageData;
00045
00046 class VTK_RENDERING_EXPORT vtkImageActor : public vtkProp3D
00047 {
00048 public:
00049 vtkTypeRevisionMacro(vtkImageActor,vtkProp3D);
00050 void PrintSelf(ostream& os, vtkIndent indent);
00051
00053 static vtkImageActor *New();
00054
00056
00057 virtual void SetInput(vtkImageData *);
00058 vtkGetObjectMacro(Input,vtkImageData);
00060
00062
00063 vtkGetMacro(Interpolate,int);
00064 vtkSetMacro(Interpolate,int);
00065 vtkBooleanMacro(Interpolate,int);
00067
00069
00071 vtkSetClampMacro(Opacity,double,0.0,1.0);
00072 vtkGetMacro(Opacity,double);
00074
00076
00078 void SetDisplayExtent(int extent[6]);
00079 void SetDisplayExtent(int minX, int maxX, int minY, int maxY,
00080 int minZ, int maxZ);
00081 void GetDisplayExtent(int extent[6]);
00082 int *GetDisplayExtent() {return this->DisplayExtent;}
00084
00086
00090 double *GetBounds();
00091 void GetBounds(double bounds[6]) { this->Superclass::GetBounds(bounds); };
00093
00095
00098 double *GetDisplayBounds();
00099 void GetDisplayBounds(double bounds[6]);
00101
00103
00105 int GetSliceNumber();
00106 int GetSliceNumberMax();
00107 int GetSliceNumberMin();
00109
00110
00112
00115 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport);
00116 int RenderOpaqueGeometry(vtkViewport *viewport);
00117 virtual void Render(vtkRenderer *) {};
00119
00121
00122 virtual int HasTranslucentPolygonalGeometry();
00123
00125
00127
00134 void SetZSlice(int z) {this->SetDisplayExtent(
00135 this->DisplayExtent[0], this->DisplayExtent[1],
00136 this->DisplayExtent[2], this->DisplayExtent[3], z, z);
00137 };
00138 int GetZSlice() { return this->DisplayExtent[4];};
00139 int GetWholeZMin();
00140 int GetWholeZMax();
00142
00143 protected:
00144 vtkImageActor();
00145 ~vtkImageActor();
00146
00147 int Interpolate;
00148 double Opacity;
00149 vtkImageData* Input;
00150 int DisplayExtent[6];
00151 int ComputedDisplayExtent[6];
00152 double DisplayBounds[6];
00153
00154 private:
00155 vtkImageActor(const vtkImageActor&);
00156 void operator=(const vtkImageActor&);
00157 };
00158
00159 #endif
00160