MNE-CPP  0.1.9
A Framework for Electrophysiology
icp.h
Go to the documentation of this file.
1 //=============================================================================================================
35 #ifndef ICP_H
36 #define ICP_H
37 
38 //=============================================================================================================
39 // INCLUDES
40 //=============================================================================================================
41 
42 #include "rtprocessing_global.h"
43 
44 //=============================================================================================================
45 // QT INCLUDES
46 //=============================================================================================================
47 
48 #include <QSharedPointer>
49 
50 //=============================================================================================================
51 // EIGEN INCLUDES
52 //=============================================================================================================
53 
54 #include <Eigen/Core>
55 
56 //=============================================================================================================
57 // FORWARD DECLARATIONS
58 //=============================================================================================================
59 
60 namespace FIFFLIB{
61  class FiffCoordTrans;
62 }
63 
64 namespace MNELIB{
65  class MNEProjectToSurface;
66 }
67 
68 //=============================================================================================================
69 // DEFINE NAMESPACE RTPROCESSINGLIB
70 //=============================================================================================================
71 
72 namespace RTPROCESSINGLIB {
73 
74 //=============================================================================================================
75 // NAMESPACE FORWARD DECLARATIONS
76 //=============================================================================================================
77 
78 const Eigen::VectorXf vecDefaultWeigths;
79 
80 //=========================================================================================================
96 RTPROCESINGSHARED_EXPORT bool performIcp(const QSharedPointer<MNELIB::MNEProjectToSurface> mneSurfacePoints,
97  const Eigen::MatrixXf& matPointCloud,
98  FIFFLIB::FiffCoordTrans& transFromTo,
99  float& fRMSE,
100  bool bScale = false,
101  int iMaxIter = 20,
102  float fTol = 0.001,
103  const Eigen::VectorXf& vecWeitgths = vecDefaultWeigths);
104 
105 //=========================================================================================================
106 
120 RTPROCESINGSHARED_EXPORT bool fitMatchedPoints(const Eigen::MatrixXf& matSrcPoint,
121  const Eigen::MatrixXf& matDstPoint,
122  Eigen::Matrix4f& matTrans,
123  float fScale = 1.0,
124  bool bScale=false,
125  const Eigen::VectorXf& vecWeitgths = vecDefaultWeigths);
126 
127 //=========================================================================================================
128 
142 RTPROCESINGSHARED_EXPORT bool discard3DPointOutliers(const QSharedPointer<MNELIB::MNEProjectToSurface> mneSurfacePoints,
143  const Eigen::MatrixXf& matPointCloud,
144  const FIFFLIB::FiffCoordTrans& transFromTo,
145  Eigen::VectorXi& vecTake,
146  Eigen::MatrixXf& matTakePoint,
147  float fMaxDist = 0.0);
148 
149 //=============================================================================================================
150 // INLINE DEFINITIONS
151 //=============================================================================================================
152 
153 
154 } // namespace
155 
156 #endif // ICP_H
RTPROCESINGSHARED_EXPORT bool performIcp(const QSharedPointer< MNELIB::MNEProjectToSurface > mneSurfacePoints, const Eigen::MatrixXf &matPointCloud, FIFFLIB::FiffCoordTrans &transFromTo, float &fRMSE, bool bScale=false, int iMaxIter=20, float fTol=0.001, const Eigen::VectorXf &vecWeitgths=vecDefaultWeigths)
Coordinate transformation description.
#define RTPROCESINGSHARED_EXPORT
RTPROCESINGSHARED_EXPORT bool fitMatchedPoints(const Eigen::MatrixXf &matSrcPoint, const Eigen::MatrixXf &matDstPoint, Eigen::Matrix4f &matTrans, float fScale=1.0, bool bScale=false, const Eigen::VectorXf &vecWeitgths=vecDefaultWeigths)
RTPROCESINGSHARED_EXPORT bool discard3DPointOutliers(const QSharedPointer< MNELIB::MNEProjectToSurface > mneSurfacePoints, const Eigen::MatrixXf &matPointCloud, const FIFFLIB::FiffCoordTrans &transFromTo, Eigen::VectorXi &vecTake, Eigen::MatrixXf &matTakePoint, float fMaxDist=0.0)
realtime library export/import macros.