Slicer 5.6
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkSlicerROIWidget.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
4 Queen's University, Kingston, ON, Canada. All Rights Reserved.
5
6 See COPYRIGHT.txt
7 or http://www.slicer.org/copyright/copyright.txt for details.
8
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14
15 This file was originally developed by Kyle Sunderland, PerkLab, Queen's University
16 and was supported through CANARIE's Research Software Program, Cancer
17 Care Ontario, OpenAnatomy, and Brigham and Women's Hospital through NIH grant R01MH112748.
18
19==============================================================================*/
20
29#ifndef vtkSlicerROIWidget_h
30#define vtkSlicerROIWidget_h
31
32#include "vtkSlicerMarkupsModuleVTKWidgetsExport.h"
34
35class VTK_SLICER_MARKUPS_MODULE_VTKWIDGETS_EXPORT vtkSlicerROIWidget : public vtkSlicerMarkupsWidget
36{
37public:
40
43
45 enum
46 {
47 WidgetStateSymmetricScale = WidgetStateMarkups_Last,
48 WidgetStateMarkupsROI_Last
49 };
50
51 // Widget events
52 enum
53 {
54 WidgetEventSymmetricScaleStart = WidgetEventMarkups_Last,
56 WidgetEventMarkupsROI_Last
57 };
58
60 void CreateDefaultRepresentation(vtkMRMLMarkupsDisplayNode* markupsDisplayNode, vtkMRMLAbstractViewNode* viewNode, vtkRenderer* renderer) override;
61
65 void FlipROIHandles(bool flipLRHandle, bool flipAPHandle, bool flipISHandle);
66
69
70protected:
73
74 bool CanProcessInteractionEvent(vtkMRMLInteractionEventData* eventData, double& distance2) override;
79
80 void ScaleWidget(double eventPos[2]) override;
81 void ScaleWidget(double eventPos[2], bool symmetricScale);
82
83private:
85 void operator=(const vtkSlicerROIWidget&) = delete;
86};
87
88#endif
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...
Process interaction events to update state of markup widget nodes.
Create an ROI representation.
static vtkSlicerROIWidget * New()
Instantiate this class.
bool ProcessWidgetSymmetricScaleStart(vtkMRMLInteractionEventData *eventData)
~vtkSlicerROIWidget() override
bool CanProcessInteractionEvent(vtkMRMLInteractionEventData *eventData, double &distance2) override
Return true if the widget can process the event.
void CreateDefaultRepresentation(vtkMRMLMarkupsDisplayNode *markupsDisplayNode, vtkMRMLAbstractViewNode *viewNode, vtkRenderer *renderer) override
Create the default widget representation and initializes the widget and representation.
void ScaleWidget(double eventPos[2], bool symmetricScale)
vtkSlicerMarkupsWidgetCreateInstanceMacro(vtkSlicerROIWidget)
Create instance of the markups widget.
bool ProcessMouseMove(vtkMRMLInteractionEventData *eventData) override
void FlipROIHandles(bool flipLRHandle, bool flipAPHandle, bool flipISHandle)
void ScaleWidget(double eventPos[2]) override
bool ProcessEndMouseDrag(vtkMRMLInteractionEventData *eventData) override
bool ProcessInteractionEvent(vtkMRMLInteractionEventData *eventData) override
Process interaction event.