VTK  9.3.20240419
vtkImageStack.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
42 #ifndef vtkImageStack_h
43 #define vtkImageStack_h
44 
45 #include "vtkImageSlice.h"
46 #include "vtkRenderingImageModule.h" // For export macro
47 
48 VTK_ABI_NAMESPACE_BEGIN
50 class vtkImageProperty;
51 class vtkImageMapper3D;
52 class vtkCollection;
53 
54 class VTKRENDERINGIMAGE_EXPORT vtkImageStack : public vtkImageSlice
55 {
56 public:
57  vtkTypeMacro(vtkImageStack, vtkImageSlice);
58  void PrintSelf(ostream& os, vtkIndent indent) override;
59  static vtkImageStack* New();
60 
65  void AddImage(vtkImageSlice* prop);
66 
72 
77 
81  vtkImageSliceCollection* GetImages() { return this->Images; }
82 
84 
88  vtkSetMacro(ActiveLayer, int);
89  int GetActiveLayer() { return this->ActiveLayer; }
91 
98 
103 
108 
110 
113  double* GetBounds() override;
114  void GetBounds(double bounds[6]) { this->vtkProp3D::GetBounds(bounds); }
116 
120  vtkMTimeType GetMTime() override;
121 
129 
133  void ShallowCopy(vtkProp* prop) override;
134 
141 
143 
146  int RenderOverlay(vtkViewport* viewport) override;
147  int RenderOpaqueGeometry(vtkViewport* viewport) override;
150 
155 
159  void ReleaseGraphicsResources(vtkWindow* win) override;
160 
162 
166  void InitPathTraversal() override;
168  int GetNumberOfPaths() override;
170 
176  void BuildPaths(vtkAssemblyPaths* paths, vtkAssemblyPath* path) override;
177 
178 protected:
180  ~vtkImageStack() override;
181 
183  void SetProperty(vtkImageProperty* property);
184 
185  void PokeMatrices(vtkMatrix4x4* matrix);
186  void UpdatePaths();
187 
192 
193 private:
194  vtkImageStack(const vtkImageStack&) = delete;
195  void operator=(const vtkImageStack&) = delete;
196 };
197 
198 VTK_ABI_NAMESPACE_END
199 #endif
a list of nodes that form an assembly path
a list of lists of props representing an assembly hierarchy
create and manipulate ordered lists of objects
Definition: vtkCollection.h:46
abstract class for mapping images to the screen
image display properties
a sorted list of image slice objects
represents an image in a 3D scene
manages a stack of composited images
Definition: vtkImageStack.h:55
void RemoveImage(vtkImageSlice *prop)
Remove an image from the stack.
vtkAssemblyPath * GetNextPath() override
Methods for traversing the stack as if it was an assembly.
void BuildPaths(vtkAssemblyPaths *paths, vtkAssemblyPath *path) override
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THIS METHOD OUTSIDE OF THE RENDERI...
int RenderOpaqueGeometry(vtkViewport *viewport) override
Support the standard render methods.
int GetActiveLayer()
Set the active layer number.
Definition: vtkImageStack.h:89
void SetMapper(vtkImageMapper3D *mapper)
~vtkImageStack() override
void UpdatePaths()
vtkTypeBool HasImage(vtkImageSlice *prop)
Check if an image is present.
void InitPathTraversal() override
Methods for traversing the stack as if it was an assembly.
void PokeMatrices(vtkMatrix4x4 *matrix)
void ShallowCopy(vtkProp *prop) override
Shallow copy of this prop.
void GetBounds(double bounds[6])
Get the combined bounds of all of the images.
vtkImageSliceCollection * GetImages()
Get the list of images as a vtkImageSliceCollection.
Definition: vtkImageStack.h:81
vtkImageSlice * GetActiveImage()
Get the active image.
vtkMTimeType GetRedrawMTime() override
Return the mtime of anything that would cause the rendered image to appear differently.
vtkTypeBool HasTranslucentPolygonalGeometry() override
Does this prop have some translucent polygonal geometry?
int RenderOverlay(vtkViewport *viewport) override
Support the standard render methods.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkImageProperty * GetProperty() override
Get the property for the currently active image.
static vtkImageStack * New()
void ReleaseGraphicsResources(vtkWindow *win) override
Release any resources held by this prop.
int GetNumberOfPaths() override
Methods for traversing the stack as if it was an assembly.
double * GetBounds() override
Get the combined bounds of all of the images.
int RenderTranslucentPolygonalGeometry(vtkViewport *viewport) override
Support the standard render methods.
vtkImageSliceCollection * Images
vtkTimeStamp PathTime
void SetProperty(vtkImageProperty *property)
vtkMTimeType GetMTime() override
Return the max MTime of all the images.
void AddImage(vtkImageSlice *prop)
Add an image to the stack.
vtkImageMapper3D * GetMapper() override
Get the mapper for the currently active image.
vtkCollection * ImageMatrices
void GetImages(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors,...
a simple class to control print indentation
Definition: vtkIndent.h:108
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:141
double * GetBounds() override=0
Return a reference to the Prop3D's composite transform.
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:66
record modification and/or execution time
Definition: vtkTimeStamp.h:44
abstract specification for Viewports
Definition: vtkViewport.h:65
window superclass for vtkRenderWindow
Definition: vtkWindow.h:48
int vtkTypeBool
Definition: vtkABI.h:64
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270