VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageSlice.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 __vtkImageSlice_h 00041 #define __vtkImageSlice_h 00042 00043 #include "vtkProp3D.h" 00044 00045 class vtkRenderer; 00046 class vtkPropCollection; 00047 class vtkImageProperty; 00048 class vtkImageMapper3D; 00049 00050 class VTK_RENDERING_EXPORT vtkImageSlice : public vtkProp3D 00051 { 00052 public: 00053 vtkTypeMacro(vtkImageSlice,vtkProp3D); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00055 00059 static vtkImageSlice *New(); 00060 00062 00063 void SetMapper(vtkImageMapper3D *mapper); 00064 vtkGetObjectMacro(Mapper, vtkImageMapper3D); 00066 00068 00069 void SetProperty(vtkImageProperty *property); 00070 virtual vtkImageProperty *GetProperty(); 00072 00074 void Update(); 00075 00077 00079 double *GetBounds(); 00080 void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds( bounds ); }; 00081 double GetMinXBound(); 00082 double GetMaxXBound(); 00083 double GetMinYBound(); 00084 double GetMaxYBound(); 00085 double GetMinZBound(); 00086 double GetMaxZBound(); 00088 00090 unsigned long int GetMTime(); 00091 00096 unsigned long GetRedrawMTime(); 00097 00100 void ShallowCopy(vtkProp *prop); 00101 00105 void GetImages(vtkPropCollection *); 00106 00108 00109 virtual int RenderOverlay(vtkViewport *viewport); 00110 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00111 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); 00113 00115 virtual int HasTranslucentPolygonalGeometry(); 00116 00119 virtual void Render(vtkRenderer *); 00120 00122 void ReleaseGraphicsResources(vtkWindow *win); 00123 00128 void SetStackedImagePass(int pass); 00129 00130 protected: 00131 vtkImageSlice(); 00132 ~vtkImageSlice(); 00133 00134 vtkImageMapper3D *Mapper; 00135 vtkImageProperty *Property; 00136 00137 private: 00138 vtkImageSlice(const vtkImageSlice&); // Not implemented. 00139 void operator=(const vtkImageSlice&); // Not implemented. 00140 }; 00141 00142 #endif