VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Rendering/Image/vtkImageStack.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkImageStack.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 =========================================================================*/
00034 #ifndef vtkImageStack_h
00035 #define vtkImageStack_h
00036 
00037 #include "vtkRenderingImageModule.h" // For export macro
00038 #include "vtkImageSlice.h"
00039 
00040 class vtkImageSliceCollection;
00041 class vtkImageProperty;
00042 class vtkImageMapper3D;
00043 class vtkCollection;
00044 
00045 class VTKRENDERINGIMAGE_EXPORT vtkImageStack : public vtkImageSlice
00046 {
00047 public:
00048   vtkTypeMacro(vtkImageStack,vtkImageSlice);
00049   void PrintSelf(ostream& os, vtkIndent indent);
00050   static vtkImageStack *New();
00051 
00054   void AddImage(vtkImageSlice *prop);
00055 
00058   void RemoveImage(vtkImageSlice *prop);
00059 
00061   int HasImage(vtkImageSlice *prop);
00062 
00064   vtkImageSliceCollection *GetImages() { return this->Images; }
00065 
00067 
00069   vtkSetMacro(ActiveLayer, int);
00070   int GetActiveLayer() { return this->ActiveLayer; }
00072 
00076   vtkImageSlice *GetActiveImage();
00077 
00079   vtkImageMapper3D *GetMapper();
00080 
00082   vtkImageProperty *GetProperty();
00083 
00085 
00086   double *GetBounds();
00087   void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds( bounds ); };
00089 
00091   unsigned long int GetMTime();
00092 
00097   unsigned long GetRedrawMTime();
00098 
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 
00118   void ReleaseGraphicsResources(vtkWindow *win);
00119 
00121 
00123   void InitPathTraversal();
00124   vtkAssemblyPath *GetNextPath();
00125   int GetNumberOfPaths();
00127 
00131   void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
00132 
00133 protected:
00134   vtkImageStack();
00135   ~vtkImageStack();
00136 
00137   void SetMapper(vtkImageMapper3D *mapper);
00138   void SetProperty(vtkImageProperty *property);
00139 
00140   void PokeMatrices(vtkMatrix4x4 *matrix);
00141   void UpdatePaths();
00142 
00143   vtkTimeStamp PathTime;
00144   vtkCollection *ImageMatrices;
00145   vtkImageSliceCollection *Images;
00146   int ActiveLayer;
00147 
00148 private:
00149   vtkImageStack(const vtkImageStack&);  // Not implemented.
00150   void operator=(const vtkImageStack&);  // Not implemented.
00151 };
00152 
00153 #endif