VTK
dox/Rendering/vtkImageActor.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkImageActor.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
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   //BTX
00115 
00118   virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport);
00119   int RenderOpaqueGeometry(vtkViewport *viewport);
00120   virtual void Render(vtkRenderer *) {};
00122   
00124 
00125   virtual int HasTranslucentPolygonalGeometry();
00126   //ETX
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&);  // Not implemented.
00159   void operator=(const vtkImageActor&);  // Not implemented.
00160 };
00161 
00162 #endif
00163