VTK  9.2.20230606
vtkImageOrthoPlanes.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageOrthoPlanes.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 =========================================================================*/
31 #ifndef vtkImageOrthoPlanes_h
32 #define vtkImageOrthoPlanes_h
33 
34 #include "vtkInteractionWidgetsModule.h" // For export macro
35 #include "vtkObject.h"
36 
37 VTK_ABI_NAMESPACE_BEGIN
39 class vtkTransform;
40 class vtkMatrix4x4;
41 
42 class VTKINTERACTIONWIDGETS_EXPORT vtkImageOrthoPlanes : public vtkObject
43 {
44 public:
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
50 
53  void SetPlane(int i, vtkImagePlaneWidget* imagePlaneWidget);
56 
60  void ResetPlanes();
61 
65  vtkTransform* GetTransform() { return this->Transform; }
66 
70  void HandlePlaneEvent(vtkImagePlaneWidget* imagePlaneWidget);
71 
72 protected:
75 
76  void HandlePlaneRotation(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
77  void HandlePlanePush(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
78  void HandlePlaneTranslate(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
79  void HandlePlaneScale(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
80 
82  vtkMatrix4x4* matrix, vtkImagePlaneWidget* currentImagePlane, int indexOfModifiedPlane);
83 
84  void GetBounds(double bounds[6]);
85 
86  // The plane definitions prior to any rotations or scales
87  double Origin[3][3];
88  double Point1[3][3];
89  double Point2[3][3];
90 
91  // The current position and orientation of the bounding box with
92  // respect to the origin.
94 
95  // An array to hold the planes
97 
98  // The number of planes.
100 
101  // The observer tags for these planes
103 
104 private:
105  vtkImageOrthoPlanes(const vtkImageOrthoPlanes&) = delete;
106  void operator=(const vtkImageOrthoPlanes&) = delete;
107 };
108 
109 VTK_ABI_NAMESPACE_END
110 #endif
Connect three vtkImagePlaneWidgets together.
static vtkImageOrthoPlanes * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTransform * Transform
void GetBounds(double bounds[6])
~vtkImageOrthoPlanes() override
vtkTransform * GetTransform()
Get the transform for the planes.
void HandlePlaneRotation(vtkImagePlaneWidget *imagePlaneWidget, int indexOfModifiedPlane)
void HandlePlaneScale(vtkImagePlaneWidget *imagePlaneWidget, int indexOfModifiedPlane)
void HandlePlaneEvent(vtkImagePlaneWidget *imagePlaneWidget)
A public method to be used only by the event callback.
void ResetPlanes()
Reset the planes to original scale, rotation, and location.
void HandlePlanePush(vtkImagePlaneWidget *imagePlaneWidget, int indexOfModifiedPlane)
vtkImagePlaneWidget ** Planes
void HandlePlaneTranslate(vtkImagePlaneWidget *imagePlaneWidget, int indexOfModifiedPlane)
void SetTransformMatrix(vtkMatrix4x4 *matrix, vtkImagePlaneWidget *currentImagePlane, int indexOfModifiedPlane)
void SetPlane(int i, vtkImagePlaneWidget *imagePlaneWidget)
You must set three planes for the widget.
vtkImagePlaneWidget * GetPlane(int i)
You must set three planes for the widget.
3D widget for reslicing image data
a simple class to control print indentation
Definition: vtkIndent.h:120
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:152
abstract base class for most VTK objects
Definition: vtkObject.h:83
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:171
@ Transform
Definition: vtkX3D.h:53