VTK  9.0.1
vtkResliceImageViewerMeasurements.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkResliceImageViewerMeasurements.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 =========================================================================*/
26 #ifndef vtkResliceImageViewerMeasurements_h
27 #define vtkResliceImageViewerMeasurements_h
28 
29 #include "vtkInteractionImageModule.h" // For export macro
30 #include "vtkObject.h"
31 
33 class vtkAbstractWidget;
34 class vtkCallbackCommand;
35 class vtkCollection;
36 class vtkDistanceWidget;
37 class vtkAngleWidget;
40 class vtkHandleWidget;
41 class vtkCaptionWidget;
42 class vtkContourWidget;
43 class vtkSeedWidget;
44 
45 class VTKINTERACTIONIMAGE_EXPORT vtkResliceImageViewerMeasurements : public vtkObject
46 {
47 public:
49 
54  void PrintSelf(ostream& os, vtkIndent indent) override;
56 
60  virtual void Render();
61 
63 
66  virtual void AddItem(vtkAbstractWidget*);
67  virtual void RemoveItem(vtkAbstractWidget*);
68  virtual void RemoveAllItems();
70 
72 
78  vtkSetClampMacro(ProcessEvents, vtkTypeBool, 0, 1);
79  vtkGetMacro(ProcessEvents, vtkTypeBool);
80  vtkBooleanMacro(ProcessEvents, vtkTypeBool);
82 
84 
87  vtkSetMacro(Tolerance, double);
88  vtkGetMacro(Tolerance, double);
90 
92 
96  virtual void SetResliceImageViewer(vtkResliceImageViewer*);
97  vtkGetObjectMacro(ResliceImageViewer, vtkResliceImageViewer);
99 
104  virtual void Update();
105 
106 protected:
109 
111 
114  bool IsItemOnReslicedPlane(vtkAbstractWidget* w);
115  bool IsWidgetOnReslicedPlane(vtkDistanceWidget* w);
116  bool IsWidgetOnReslicedPlane(vtkAngleWidget* w);
117  bool IsWidgetOnReslicedPlane(vtkBiDimensionalWidget* w);
118  bool IsWidgetOnReslicedPlane(vtkCaptionWidget* w);
119  bool IsWidgetOnReslicedPlane(vtkContourWidget* w);
120  bool IsWidgetOnReslicedPlane(vtkSeedWidget* w);
121  bool IsWidgetOnReslicedPlane(vtkHandleWidget* w);
122  bool IsPointOnReslicedPlane(vtkHandleRepresentation* h);
123  bool IsPositionOnReslicedPlane(double p[3]);
125 
126  // Handles the events; centralized here for all widgets.
127  static void ProcessEventsHandler(
128  vtkObject* object, unsigned long event, void* clientdata, void* calldata);
129 
132 
133  // Handle the visibility of the measurements.
135 
136  // Flag indicating if we should handle events.
137  // On by default.
139 
140  // Tolerance for Point-in-plane computation
141  double Tolerance;
142 
143 private:
145  void operator=(const vtkResliceImageViewerMeasurements&) = delete;
146 };
147 
148 #endif
vtkResliceImageViewerMeasurements::Tolerance
double Tolerance
Definition: vtkResliceImageViewerMeasurements.h:141
vtkAngleWidget
measure the angle between two rays (defined by three points)
Definition: vtkAngleWidget.h:87
vtkDistanceWidget
measure the distance between two points
Definition: vtkDistanceWidget.h:88
vtkHandleWidget
a general widget for moving handles
Definition: vtkHandleWidget.h:78
vtkResliceImageViewerMeasurements::EventCallbackCommand
vtkCallbackCommand * EventCallbackCommand
Definition: vtkResliceImageViewerMeasurements.h:134
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkCaptionWidget
widget for placing a caption (text plus leader)
Definition: vtkCaptionWidget.h:56
vtkHandleRepresentation
abstract class for representing widget handles
Definition: vtkHandleRepresentation.h:55
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkContourWidget
create a contour with a set of points
Definition: vtkContourWidget.h:139
vtkResliceImageViewerMeasurements
Manage measurements on a resliced image.
Definition: vtkResliceImageViewerMeasurements.h:45
vtkResliceImageViewerMeasurements::WidgetCollection
vtkCollection * WidgetCollection
Definition: vtkResliceImageViewerMeasurements.h:131
vtkAbstractWidget
define the API for widget / widget representation
Definition: vtkAbstractWidget.h:65
vtkCollection
create and manipulate ordered lists of objects
Definition: vtkCollection.h:52
vtkSeedWidget
place multiple seed points
Definition: vtkSeedWidget.h:87
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkResliceImageViewerMeasurements::ResliceImageViewer
vtkResliceImageViewer * ResliceImageViewer
Definition: vtkResliceImageViewerMeasurements.h:130
vtkResliceImageViewerMeasurements::ProcessEvents
vtkTypeBool ProcessEvents
Definition: vtkResliceImageViewerMeasurements.h:138
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkBiDimensionalWidget
measure the bi-dimensional lengths of an object
Definition: vtkBiDimensionalWidget.h:110
vtkObject.h
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:44
vtkResliceImageViewer
Display an image along with a reslice cursor.
Definition: vtkResliceImageViewer.h:50
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
h