MNE-CPP  0.1.9
A Framework for Electrophysiology
dipole.h
Go to the documentation of this file.
1 //=============================================================================================================
22 #ifndef DIPOLE_H
23 #define DIPOLE_H
24 
25 //=============================================================================================================
26 // INCLUDES
27 //=============================================================================================================
28 
29 //=============================================================================================================
30 // EIGEN INCLUDES
31 //=============================================================================================================
32 
33 #include <Eigen/Core>
34 
35 #include <iostream>
36 
37 //=============================================================================================================
38 // DEFINE NAMESPACE INVERSELIB
39 //=============================================================================================================
40 
41 namespace INVERSELIB
42 {
43 
44 //=============================================================================================================
45 // FORWARD DECLARATIONS
46 //=============================================================================================================
47 template<typename T>
48 class Dipole;
49 
50 //=============================================================================================================
55 template<typename T>
56 struct DipolePair
57 {
58  int m_iIdx1;
61  int m_iIdx2;
65 };
66 
67 //=============================================================================================================
73 template<class T>
74 class Dipole
75 {
76 //typedef Eigen::Matrix<T, 3, 1> Point3D;
77 
78 public:
79 
80  //=========================================================================================================
84  Dipole();
85 
86  //=========================================================================================================
92  /* Dipole();*/
93 
94  //=========================================================================================================
99  virtual ~Dipole();
100 
101  inline T& x() { return m_vecPosition[0] ; }
102  inline T& y() { return m_vecPosition[1] ; }
103  inline T& z() { return m_vecPosition[2] ; }
104  inline T x() const { return m_vecPosition[0] ; }
105  inline T y() const { return m_vecPosition[1] ; }
106  inline T z() const { return m_vecPosition[2] ; }
107 
108  inline T& phi_x() { return m_vecDirection[0] ; }
109  inline T& phi_y() { return m_vecDirection[1] ; }
110  inline T& phi_z() { return m_vecDirection[2] ; }
111  inline T phi_x() const { return m_vecDirection[0] ; }
112  inline T phi_y() const { return m_vecDirection[1] ; }
113  inline T phi_z() const { return m_vecDirection[2] ; }
114 
115  //=========================================================================================================
119  void clean();
120 
121 protected:
122 
123 private:
124 
125  Eigen::Matrix<T, 3, 1> m_vecPosition;
126  Eigen::Matrix<T, 3, 1> m_vecDirection;
127 
128  double m_dLength;
129  double m_dFrequency;
130 
131  //TGreensFunction* green;
132 };
133 } // NAMESPACE
134 
135 //TypeDefs
139 
140 //Make the template definition visible to compiler in the first point of instantiation
141 #include "dipole.cpp"
142 
143 #endif // DIPOLE_H
ToDo Documentation...
Dipole< T > m_Dipole1
Definition: dipole.h:59
Dipole< T > m_Dipole2
Definition: dipole.h:62