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 =========================================================================*/
32 #ifndef vtkImageStack_h
33 #define vtkImageStack_h
34 
35 #include "vtkRenderingImageModule.h" // For export macro
36 #include "vtkImageSlice.h"
37 
39 class vtkImageProperty;
40 class vtkImageMapper3D;
41 class vtkCollection;
42 
43 class VTKRENDERINGIMAGE_EXPORT vtkImageStack : public vtkImageSlice
44 {
45 public:
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48  static vtkImageStack *New();
49 
54  void AddImage(vtkImageSlice *prop);
55 
60  void RemoveImage(vtkImageSlice *prop);
61 
65  int HasImage(vtkImageSlice *prop);
66 
70  vtkImageSliceCollection *GetImages() { return this->Images; }
71 
73 
77  vtkSetMacro(ActiveLayer, int);
78  int GetActiveLayer() { return this->ActiveLayer; }
80 
86  vtkImageSlice *GetActiveImage();
87 
91  vtkImageMapper3D *GetMapper() override;
92 
96  vtkImageProperty *GetProperty() override;
97 
99 
102  double *GetBounds() override;
103  void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds( bounds ); };
105 
109  vtkMTimeType GetMTime() override;
110 
117  vtkMTimeType GetRedrawMTime() override;
118 
122  void ShallowCopy(vtkProp *prop) override;
123 
130 
132 
135  int RenderOverlay(vtkViewport *viewport) override;
136  int RenderOpaqueGeometry(vtkViewport *viewport) override;
137  int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override;
139 
143  int HasTranslucentPolygonalGeometry() override;
144 
148  void ReleaseGraphicsResources(vtkWindow *win) override;
149 
151 
155  void InitPathTraversal() override;
156  vtkAssemblyPath *GetNextPath() override;
157  int GetNumberOfPaths() override;
159 
165  void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path) override;
166 
167 protected:
168  vtkImageStack();
169  ~vtkImageStack() override;
170 
171  void SetMapper(vtkImageMapper3D *mapper);
172  void SetProperty(vtkImageProperty *property);
173 
174  void PokeMatrices(vtkMatrix4x4 *matrix);
175  void UpdatePaths();
176 
181 
182 private:
183  vtkImageStack(const vtkImageStack&) = delete;
184  void operator=(const vtkImageStack&) = delete;
185 };
186 
187 #endif
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:44
vtkImageSliceCollection * Images
void GetBounds(double bounds[6])
Get the combined bounds of all of the images.
vtkMTimeType GetRedrawMTime() override
Return the mtime of anything that would cause the rendered image to appear differently.
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:35
a sorted list of image slice objects
double * GetBounds() override=0
Return a reference to the Prop3D's composite transform.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:300
abstract specification for Viewports
Definition: vtkViewport.h:44
void ReleaseGraphicsResources(vtkWindow *win) override
Release any resources held by this prop.
virtual void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
record modification and/or execution time
Definition: vtkTimeStamp.h:32
image display properties
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
virtual vtkImageProperty * GetProperty()
Set/Get the image display properties.
virtual vtkAssemblyPath * GetNextPath()
vtkProp and its subclasses can be picked by subclasses of vtkAbstractPicker (e.g.,...
double * GetBounds() override
Get the bounds - either all six at once (xmin, xmax, ymin, ymax, zmin, zmax) or one at a time.
an ordered list of Props
int HasTranslucentPolygonalGeometry() override
Internal method, should only be used by rendering.
window superclass for vtkRenderWindow
Definition: vtkWindow.h:34
void ShallowCopy(vtkProp *prop) override
Shallow copy of this vtkImageSlice.
vtkImageSliceCollection * GetImages()
Get the list of images as a vtkImageSliceCollection.
Definition: vtkImageStack.h:70
void InitPathTraversal() override
Overload vtkProp's method for setting up assembly paths.
a list of nodes that form an assembly path
a simple class to control print indentation
Definition: vtkIndent.h:33
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
abstract class for mapping images to the screen
void SetProperty(vtkImageProperty *property)
Set/Get the image display properties.
void GetImages(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors,...
void SetMapper(vtkImageMapper3D *mapper)
Set/Get the mapper.
a list of lists of props representing an assembly hierarchy
vtkTimeStamp PathTime
create and manipulate ordered lists of objects
Definition: vtkCollection.h:48
int GetActiveLayer()
Set the active layer number.
Definition: vtkImageStack.h:78
represents an image in a 3D scene
Definition: vtkImageSlice.h:46
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
static vtkImageSlice * New()
Creates an Image with the following defaults: origin(0,0,0) position=(0,0,0) scale=1 visibility=1 pic...
virtual int GetNumberOfPaths()
vtkProp and its subclasses can be picked by subclasses of vtkAbstractPicker (e.g.,...
Definition: vtkProp.h:147
vtkCollection * ImageMatrices
virtual vtkImageMapper3D * GetMapper()
Set/Get the mapper.
vtkMTimeType GetMTime() override
Return the MTime also considering the property etc.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
manages a stack of composited images
Definition: vtkImageStack.h:43