v2.0.0
Loading...
Searching...
No Matches
mne_triangle.cpp
Go to the documentation of this file.
1//=============================================================================================================
15
16//=============================================================================================================
17// INCLUDES
18//=============================================================================================================
19
20#include "mne_triangle.h"
21
22#include <Eigen/Geometry>
23
24//=============================================================================================================
25// USED NAMESPACES
26//=============================================================================================================
27
28using namespace Eigen;
29using namespace MNELIB;
30
31//=============================================================================================================
32// DEFINE MEMBER METHODS
33//=============================================================================================================
34
35MNETriangle::MNETriangle() = default;
36
37//=============================================================================================================
38
40{
41 r12 = r2 - r1;
42 r13 = r3 - r1;
43
44 nn = r12.cross(r13);
45 float size = nn.norm();
46 if (size > 0)
47 nn /= size;
48 area = size / 2.0f;
49
50 float sizey = r13.norm();
51 if (sizey <= 0)
52 sizey = 1.0f;
53 ey = r13 / sizey;
54
55 cent = (r1 + r2 + r3) / 3.0f;
56
57 ex = ey.cross(nn);
58}
Triangle descriptor with cached centroid, area and normal vectors.
Core MNE data structures (source spaces, source estimates, hemispheres).
Eigen::Vector3f r13
Eigen::Vector3f nn
Eigen::Vector3f r2
Eigen::Vector3f r1
Eigen::Vector3f ex
Eigen::Vector3f r3
Eigen::Vector3f r12
Eigen::Vector3f ey
Eigen::Vector3f cent