1
// compute the largest inscribed ellipsoid...
4
void SMetric3::print (const char *s) const
6
printf(" metric %s : %12.5E %12.5E %12.5E %12.5E %12.5E %12.5E \n",s,
7
(*this)(0,0),(*this)(1,1),(*this)(2,2),
8
(*this)(0,1),(*this)(0,2),(*this)(1,2));
12
SMetric3 intersection (const SMetric3 &m1, const SMetric3 &m2)
14
SMetric3 im1 = m1.invert();
15
gmshMatrix<double> V(3,3);
16
gmshVector<double> S(3);
19
SVector3 v0(V(0,0),V(1,0),V(2,0));
20
SVector3 v1(V(0,1),V(1,1),V(2,1));
21
SVector3 v2(V(0,2),V(1,2),V(2,2));
22
double l0 = std::max(dot(v0,m1,v0),dot(v0,m2,v0));
23
double l1 = std::max(dot(v1,m1,v1),dot(v1,m2,v1));
24
double l2 = std::max(dot(v2,m1,v2),dot(v2,m2,v2));
25
SMetric3 iv(l0,l1,l2,v0,v1,v2);
29
// (1-t) * m1 + t * m2
30
SMetric3 interpolation (const SMetric3 &m1,
34
SMetric3 im1 = m1.invert();
35
SMetric3 im2 = m2.invert();
42
SMetric3 interpolation (const SMetric3 &m1,
48
SMetric3 im1 = m1.invert();
49
SMetric3 im2 = m2.invert();
50
SMetric3 im3 = m3.invert();
59
SMetric3 interpolation (const SMetric3 &m1,
67
SMetric3 im1 = m1.invert();
68
SMetric3 im2 = m2.invert();
69
SMetric3 im3 = m3.invert();
70
SMetric3 im4 = m4.invert();