v2.0.0
Loading...
Searching...
No Matches
mne_triangle.cpp
Go to the documentation of this file.
1//=============================================================================================================
36
37//=============================================================================================================
38// INCLUDES
39//=============================================================================================================
40
41#include "mne_triangle.h"
42
43#include <Eigen/Geometry>
44
45//=============================================================================================================
46// USED NAMESPACES
47//=============================================================================================================
48
49using namespace Eigen;
50using namespace MNELIB;
51
52//=============================================================================================================
53// DEFINE MEMBER METHODS
54//=============================================================================================================
55
56MNETriangle::MNETriangle() = default;
57
58//=============================================================================================================
59
61{
62 r12 = Eigen::Map<const Eigen::Vector3f>(r2) - Eigen::Map<const Eigen::Vector3f>(r1);
63 r13 = Eigen::Map<const Eigen::Vector3f>(r3) - Eigen::Map<const Eigen::Vector3f>(r1);
64
65 nn = r12.cross(r13);
66 float size = nn.norm();
67 if (size > 0)
68 nn /= size;
69 area = size / 2.0f;
70
71 float sizey = r13.norm();
72 if (sizey <= 0)
73 sizey = 1.0f;
74 ey = r13 / sizey;
75
76 cent = (Eigen::Map<const Eigen::Vector3f>(r1)
77 + Eigen::Map<const Eigen::Vector3f>(r2)
78 + Eigen::Map<const Eigen::Vector3f>(r3)) / 3.0f;
79
80 ex = ey.cross(nn);
81}
MNETriangle class declaration.
Core MNE data structures (source spaces, source estimates, hemispheres).
Eigen::Vector3f r13
Eigen::Vector3f nn
Eigen::Vector3f ex
Eigen::Vector3f r12
Eigen::Vector3f ey
Eigen::Vector3f cent