VTK
|
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 =========================================================================*/ 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 //BTX 00112 00115 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); 00116 int RenderOpaqueGeometry(vtkViewport *viewport); 00117 virtual void Render(vtkRenderer *) {}; 00119 00121 00122 virtual int HasTranslucentPolygonalGeometry(); 00123 //ETX 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&); // Not implemented. 00156 void operator=(const vtkImageActor&); // Not implemented. 00157 }; 00158 00159 #endif 00160