VTK  9.3.20240223
vtkImageOrthoPlanes.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
19 #ifndef vtkImageOrthoPlanes_h
20 #define vtkImageOrthoPlanes_h
21 
22 #include "vtkInteractionWidgetsModule.h" // For export macro
23 #include "vtkObject.h"
24 
25 VTK_ABI_NAMESPACE_BEGIN
27 class vtkTransform;
28 class vtkMatrix4x4;
29 
30 class VTKINTERACTIONWIDGETS_EXPORT vtkImageOrthoPlanes : public vtkObject
31 {
32 public:
35  void PrintSelf(ostream& os, vtkIndent indent) override;
36 
38 
41  void SetPlane(int i, vtkImagePlaneWidget* imagePlaneWidget);
44 
48  void ResetPlanes();
49 
53  vtkTransform* GetTransform() { return this->Transform; }
54 
58  void HandlePlaneEvent(vtkImagePlaneWidget* imagePlaneWidget);
59 
60 protected:
63 
64  void HandlePlaneRotation(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
65  void HandlePlanePush(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
66  void HandlePlaneTranslate(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
67  void HandlePlaneScale(vtkImagePlaneWidget* imagePlaneWidget, int indexOfModifiedPlane);
68 
70  vtkMatrix4x4* matrix, vtkImagePlaneWidget* currentImagePlane, int indexOfModifiedPlane);
71 
72  void GetBounds(double bounds[6]);
73 
74  // The plane definitions prior to any rotations or scales
75  double Origin[3][3];
76  double Point1[3][3];
77  double Point2[3][3];
78 
79  // The current position and orientation of the bounding box with
80  // respect to the origin.
82 
83  // An array to hold the planes
85 
86  // The number of planes.
88 
89  // The observer tags for these planes
90  long* ObserverTags;
91 
92 private:
94  void operator=(const vtkImageOrthoPlanes&) = delete;
95 };
96 
97 VTK_ABI_NAMESPACE_END
98 #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:108
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:140
abstract base class for most VTK objects
Definition: vtkObject.h:161
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:159
@ Transform
Definition: vtkX3D.h:41