GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 7 / 0 / 7
Functions: 100.0% 5 / 0 / 5
Branches: 50.0% 1 / 0 / 2

src/geo3d/ds/pl/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../../geo2d/cross/lib.hpp"
4 #include "../p/lib.hpp"
5
6 namespace tifa_libs {
7
8 template <class FP>
9 struct planev {
10 point3d<FP> const *u, *v, *w;
11 1399 CEXP planev(point3d<FP> CR a, point3d<FP> CR b, point3d<FP> CR c) NE : u(&a), v(&b), w(&c) {}
12
13 friend auto& operator<<(ostream_c auto& os, planev CR pl) NE { return os << *pl.u << ' ' << *pl.v << ' ' << *pl.w; }
14 8091 CEXP point3d<FP> normal() CNE { return cross(*u, *v, *w); }
15 252 CEXP FP area2() CNE { return normal().norm(); }
16 252 CEXP FP area() CNE { return area2() * (FP).5; }
17 2670 CEXP point3d<FP> CR get(u32 i) CNE {
18
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 2670 times.
2670 assert(i < 3);
19 2670 return **(&(this->u) + i);
20 }
21 };
22
23 } // namespace tifa_libs
24