PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
vtkPlusPhantomLandmarkRegistrationAlgo.h
Go to the documentation of this file.
1 /*=Plus=header=begin======================================================
2 Program: Plus
3 Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved.
4 See License.txt for details.
5 =========================================================Plus=header=end*/
6 
7 #ifndef __vtkPlusPhantomLandmarkRegistrationAlgo_h
8 #define __vtkPlusPhantomLandmarkRegistrationAlgo_h
9 
10 #include "PlusConfigure.h"
11 
12 #include "vtkPlusCalibrationExport.h"
13 
14 #include "vtkMatrix4x4.h"
15 #include "vtkObject.h"
16 #include "vtkPoints.h"
17 
18 //class vtkIGSIOTransformRepository;
19 class vtkXMLDataElement;
20 
21 //-----------------------------------------------------------------------------
22 
28 class vtkPlusCalibrationExport vtkPlusPhantomLandmarkRegistrationAlgo : public vtkObject
29 {
30 public:
31  vtkTypeMacro(vtkPlusPhantomLandmarkRegistrationAlgo,vtkObject);
33 
34 public:
39  PlusStatus LandmarkRegister(vtkIGSIOTransformRepository* aTransformRepository = NULL);
40 
45  PlusStatus ReadConfiguration(vtkXMLDataElement* aConfig);
46 
52  std::string GetDefinedLandmarkName(int aIndex) { return this->DefinedLandmarkNames[aIndex]; };
53 
56 
58  double GetMinimunDistanceBetweenTwoLandmarksMm();
59 
61  void GetDefinedLandmarksCentroid_Phantom(double landmarksCentroid_Phantom[4]);
62 
64  void GetDefinedLandmarksCentroid_Reference(double landmarksAverage_Reference[4]);
65 
70  void GetLandmarkCameraPosition_Reference(int index, double cameraPosition_Reference[4]);
71 
73  void GetDefinedLandmark_Reference(int index, double cameraPosition_Reference[4]);
74 
76  void PrintRecordedLandmarks_Phantom();
77 
78 public:
79 
80  vtkGetMacro(RegistrationErrorMm, double);
81 
82  vtkGetObjectMacro(PhantomToReferenceTransformMatrix, vtkMatrix4x4);
83  vtkSetObjectMacro(PhantomToReferenceTransformMatrix, vtkMatrix4x4);
84 
85  vtkGetObjectMacro(DefinedLandmarks_Phantom, vtkPoints);
86  vtkGetObjectMacro(RecordedLandmarks_Reference, vtkPoints);
87 
88  vtkGetStringMacro(PhantomCoordinateFrame);
89  vtkGetStringMacro(ReferenceCoordinateFrame);
90  vtkGetStringMacro(StylusTipCoordinateFrame);
91 
92 protected:
94  PlusStatus ComputeError();
95 
96 protected:
98  vtkSetObjectMacro(DefinedLandmarks_Phantom, vtkPoints);
99 
101  vtkSetObjectMacro(RecordedLandmarks_Reference, vtkPoints);
102 
103  vtkSetStringMacro(PhantomCoordinateFrame);
104  vtkSetStringMacro(ReferenceCoordinateFrame);
105  vtkSetStringMacro(StylusTipCoordinateFrame);
106 
107 protected:
110 
111 protected:
114 
117 
119  std::vector<std::string> DefinedLandmarkNames;
120 
123 
126 
129 
132 
135 
138 
140  static std::string ConfigurationElementName;
141 
142 };
143 
144 #endif
igsioStatus PlusStatus
Definition: PlusCommon.h:40
Landmark registration to determine the Phantom pose relative to the attached marker (PhantomReference...