Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkMRMLAnnotationRulerDisplayableManager.h
Go to the documentation of this file.
1 /*=auto=========================================================================
2 
3  Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4 
5  See COPYRIGHT.txt
6  or http://www.slicer.org/copyright/copyright.txt for details.
7 
8  Program: 3D Slicer
9 
10  Module: $RCSfile: vtkMRMLAnnotationRulerDisplayableManager.h,v $
11  Date: $Date: 2010/07/26 04:48:05 $
12  Version: $Revision: 1.5 $
13 
14  =========================================================================auto=*/
15 
16 #ifndef __vtkMRMLAnnotationRulerDisplayableManager_h
17 #define __vtkMRMLAnnotationRulerDisplayableManager_h
18 
19 // Annotation includes
21 #include "vtkSlicerAnnotationsModuleMRMLDisplayableManagerExport.h"
22 
24 class vtkSlicerViewerWidget;
25 class vtkMRMLAnnotationRulerDisplayNode;
29 class vtkTextWidget;
30 
32 class VTK_SLICER_ANNOTATIONS_MODULE_MRMLDISPLAYABLEMANAGER_EXPORT
35 {
36 public:
37 
40  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
41 
42 protected:
43 
44  vtkMRMLAnnotationRulerDisplayableManager(){this->m_Focus="vtkMRMLAnnotationRulerNode";}
46 
48  virtual void OnClickInRenderWindow(double x, double y, const char *associatedNodeID) VTK_OVERRIDE;
50  virtual vtkAbstractWidget * CreateWidget(vtkMRMLAnnotationNode* node) VTK_OVERRIDE;
51 
53  virtual void OnWidgetCreated(vtkAbstractWidget * widget, vtkMRMLAnnotationNode * node) VTK_OVERRIDE;
54 
56  virtual void PropagateMRMLToWidget(vtkMRMLAnnotationNode* node, vtkAbstractWidget * widget) VTK_OVERRIDE;
58  virtual void PropagateWidgetToMRML(vtkAbstractWidget * widget, vtkMRMLAnnotationNode* node) VTK_OVERRIDE;
59 
60  // update the ruler end point positions from the MRML node
61  virtual void UpdatePosition(vtkAbstractWidget *widget, vtkMRMLNode *node) VTK_OVERRIDE;
62 
63  // Get the label from the node and unit node
64  std::string GetLabelFormat(vtkMRMLAnnotationRulerNode* rulerNode);
65 
68  double GetDistance(const double* wc1, const double* wc2);
71  double ApplyUnit(double lengthInMM);
72 
75  virtual void OnMRMLSelectionNodeUnitModifiedEvent(vtkMRMLSelectionNode* selectionNode) VTK_OVERRIDE;
76 
77 private:
78 
80  void operator=(const vtkMRMLAnnotationRulerDisplayableManager&);
81 
82 };
83 
84 #endif
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
virtual void OnWidgetCreated(vtkAbstractWidget *widget, vtkMRMLAnnotationNode *node)
Gets called when widget was created.
virtual void PropagateWidgetToMRML(vtkAbstractWidget *widget, vtkMRMLAnnotationNode *node)
Propagate properties of widget to MRML node.
virtual void OnMRMLSelectionNodeUnitModifiedEvent(vtkMRMLSelectionNode *)
virtual vtkAbstractWidget * CreateWidget(vtkMRMLAnnotationNode *node)
Create a widget.
virtual void PropagateMRMLToWidget(vtkMRMLAnnotationNode *node, vtkAbstractWidget *widget)
Propagate properties of MRML node to widget.
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:135
virtual void OnClickInRenderWindow(double x, double y, const char *associatedNodeID=NULL)
Callback for click in RenderWindow.
MRML node for storing information about the active nodes in the scene.
virtual void UpdatePosition(vtkAbstractWidget *vtkNotUsed(widget), vtkMRMLNode *vtkNotUsed(node))
Update just the position for the widget, implemented by subclasses.
static vtkMRMLAnnotationDisplayableManager * New()