Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkImageActor.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageActor.h,v $
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 =========================================================================*/
00052 #ifndef __vtkImageActor_h
00053 #define __vtkImageActor_h
00054 
00055 #include "vtkProp3D.h"
00056 
00057 class vtkPropCollection;
00058 class vtkRenderer;
00059 class vtkImageData;
00060 
00061 class VTK_RENDERING_EXPORT vtkImageActor : public vtkProp3D
00062 {
00063 public:
00064   vtkTypeRevisionMacro(vtkImageActor,vtkProp3D);
00065   void PrintSelf(ostream& os, vtkIndent indent);
00066 
00068   static vtkImageActor *New();
00069 
00071 
00072   virtual void SetInput(vtkImageData *);
00073   vtkGetObjectMacro(Input,vtkImageData);
00075 
00077 
00078   vtkGetMacro(Interpolate,int);
00079   vtkSetMacro(Interpolate,int);
00080   vtkBooleanMacro(Interpolate,int);
00082 
00084 
00086   vtkSetClampMacro(Opacity,double,0.0,1.0);
00087   vtkGetMacro(Opacity,double);
00089 
00091 
00093   void SetDisplayExtent(int extent[6]);
00094   void SetDisplayExtent(int minX, int maxX, int minY, int maxY, 
00095                         int minZ, int maxZ);
00096   void GetDisplayExtent(int extent[6]);
00097   int *GetDisplayExtent() {return this->DisplayExtent;}
00099 
00101 
00105   double *GetBounds();
00106   void GetBounds(double bounds[6]) { this->Superclass::GetBounds(bounds); };
00108 
00110 
00113   double *GetDisplayBounds();
00114   void GetDisplayBounds(double bounds[6]);
00116 
00118   int GetSliceNumber();
00119   
00120 //BTX
00122 
00125   int RenderTranslucentGeometry(vtkViewport *viewport);
00126   int RenderOpaqueGeometry(vtkViewport *viewport);
00127   virtual void Render(vtkRenderer *) {};
00129 //ETX
00130 
00132 
00139   void SetZSlice(int z) {this->SetDisplayExtent(
00140     this->DisplayExtent[0], this->DisplayExtent[1],
00141     this->DisplayExtent[2], this->DisplayExtent[3], z, z);
00142   };
00144   
00145   int GetZSlice() { return this->DisplayExtent[4];};
00146   int GetWholeZMin();
00147   int GetWholeZMax();
00148 
00149 protected:
00150   vtkImageActor();
00151   ~vtkImageActor();
00152 
00153   int           Interpolate;
00154   double        Opacity;
00155   vtkImageData* Input;
00156   int           DisplayExtent[6];
00157   double        DisplayBounds[6];
00158 
00159 private:
00160   vtkImageActor(const vtkImageActor&);  // Not implemented.
00161   void operator=(const vtkImageActor&);  // Not implemented.
00162 };
00163 
00164 #endif
00165