VTK
vtkImageStack.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageStack.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
34 #ifndef __vtkImageStack_h
35 #define __vtkImageStack_h
36 
37 #include "vtkRenderingImageModule.h" // For export macro
38 #include "vtkImageSlice.h"
39 
41 class vtkImageProperty;
42 class vtkImageMapper3D;
43 class vtkCollection;
44 
45 class VTKRENDERINGIMAGE_EXPORT vtkImageStack : public vtkImageSlice
46 {
47 public:
49  void PrintSelf(ostream& os, vtkIndent indent);
50  static vtkImageStack *New();
51 
54  void AddImage(vtkImageSlice *prop);
55 
58  void RemoveImage(vtkImageSlice *prop);
59 
61  int HasImage(vtkImageSlice *prop);
62 
64  vtkImageSliceCollection *GetImages() { return this->Images; }
65 
67 
69  vtkSetMacro(ActiveLayer, int);
70  int GetActiveLayer() { return this->ActiveLayer; }
72 
76  vtkImageSlice *GetActiveImage();
77 
80 
83 
85 
86  double *GetBounds();
87  void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds( bounds ); };
89 
91  unsigned long int GetMTime();
92 
97  unsigned long GetRedrawMTime();
98 
100  void ShallowCopy(vtkProp *prop);
101 
106 
108 
109  virtual int RenderOverlay(vtkViewport *viewport);
110  virtual int RenderOpaqueGeometry(vtkViewport *viewport);
111  virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport);
113 
115  virtual int HasTranslucentPolygonalGeometry();
116 
119 
121 
123  void InitPathTraversal();
125  int GetNumberOfPaths();
127 
131  void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path);
132 
133 protected:
134  vtkImageStack();
135  ~vtkImageStack();
136 
137  void SetMapper(vtkImageMapper3D *mapper);
138  void SetProperty(vtkImageProperty *property);
139 
140  void PokeMatrices(vtkMatrix4x4 *matrix);
141  void UpdatePaths();
142 
147 
148 private:
149  vtkImageStack(const vtkImageStack&); // Not implemented.
150  void operator=(const vtkImageStack&); // Not implemented.
151 };
152 
153 #endif