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 "vtkRenderingCoreModule.h" // For export macro 00044 #include "vtkProp3D.h" 00045 00046 class vtkRenderer; 00047 class vtkPropCollection; 00048 class vtkImageProperty; 00049 class vtkImageMapper3D; 00050 00051 class VTKRENDERINGCORE_EXPORT vtkImageSlice : public vtkProp3D 00052 { 00053 public: 00054 vtkTypeMacro(vtkImageSlice,vtkProp3D); 00055 void PrintSelf(ostream& os, vtkIndent indent); 00056 00060 static vtkImageSlice *New(); 00061 00063 00064 void SetMapper(vtkImageMapper3D *mapper); 00065 vtkGetObjectMacro(Mapper, vtkImageMapper3D); 00067 00069 00070 void SetProperty(vtkImageProperty *property); 00071 virtual vtkImageProperty *GetProperty(); 00073 00075 void Update(); 00076 00078 00080 double *GetBounds(); 00081 void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds( bounds ); }; 00082 double GetMinXBound(); 00083 double GetMaxXBound(); 00084 double GetMinYBound(); 00085 double GetMaxYBound(); 00086 double GetMinZBound(); 00087 double GetMaxZBound(); 00089 00091 unsigned long int GetMTime(); 00092 00097 unsigned long GetRedrawMTime(); 00098 00101 void ShallowCopy(vtkProp *prop); 00102 00106 void GetImages(vtkPropCollection *); 00107 00109 00110 virtual int RenderOverlay(vtkViewport *viewport); 00111 virtual int RenderOpaqueGeometry(vtkViewport *viewport); 00112 virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport); 00114 00116 virtual int HasTranslucentPolygonalGeometry(); 00117 00120 virtual void Render(vtkRenderer *); 00121 00123 void ReleaseGraphicsResources(vtkWindow *win); 00124 00129 void SetStackedImagePass(int pass); 00130 00131 protected: 00132 vtkImageSlice(); 00133 ~vtkImageSlice(); 00134 00135 vtkImageMapper3D *Mapper; 00136 vtkImageProperty *Property; 00137 00138 private: 00139 vtkImageSlice(const vtkImageSlice&); // Not implemented. 00140 void operator=(const vtkImageSlice&); // Not implemented. 00141 }; 00142 00143 #endif