NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
mitkTrackedPointer.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef mitkTrackedPointer_h
16 #define mitkTrackedPointer_h
17 
18 #include "niftkIGIExports.h"
19 #include <vtkMatrix4x4.h>
20 #include <mitkDataStorage.h>
21 #include <mitkDataNode.h>
22 #include <mitkDataStorage.h>
23 #include <mitkPointSet.h>
24 #include <mitkVector.h>
25 #include <mitkOperation.h>
26 #include <itkObject.h>
27 #include <itkObjectFactoryBase.h>
28 
29 namespace mitk {
30 
35 class NIFTKIGI_EXPORT TrackedPointer : public itk::Object,
36  public mitk::OperationActor
37 {
38 public:
39 
40  mitkClassMacroItkParent(TrackedPointer, itk::Object)
41  itkNewMacro(TrackedPointer)
42 
43 
46  static const bool UPDATE_VIEW_COORDINATE_DEFAULT;
47 
51  static const std::string TRACKED_POINTER_POINTSET_NAME;
52 
56  virtual void ExecuteOperation(mitk::Operation* operation) override;
57 
61  void SetDataStorage(const mitk::DataStorage::Pointer& storage);
62 
66  void Update(
67  const vtkMatrix4x4& tipToPointerTransform,
68  const mitk::DataNode::Pointer pointerToWorldNode,
69  mitk::DataNode::Pointer surfaceNode,
70  mitk::Point3D& tipCoordinate
71  );
72 
76  void OnGrabPoint(const mitk::Point3D& point);
77 
81  void OnClearPoints();
82 
86  mitk::PointSet::Pointer RetrievePointSet();
87 
88 protected:
89 
90  TrackedPointer(); // Purposefully hidden.
91  virtual ~TrackedPointer(); // Purposefully hidden.
92 
93  TrackedPointer(const TrackedPointer&); // Purposefully not implemented.
94  TrackedPointer& operator=(const TrackedPointer&); // Purposefully not implemented.
95 
96 private:
97 
101  static const mitk::OperationType OP_UPDATE_POINTSET;
102 
106  mitk::DataStorage::Pointer m_DataStorage;
107 
108 }; // end class
109 
110 } // end namespace
111 
112 #endif
Definition: niftkMeshSmoother.cxx:19
Definition: ReceptorMemberCommandTest.cxx:25
Command used to update the alignment of a tracked pointer.
Definition: mitkTrackedPointer.h:35