GCC Code Coverage Report


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

src/geo2d/make_c/rll/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../ds/c/lib.hpp"
4 #include "../../ins/ll/lib.hpp"
5
6 namespace tifa_libs {
7
8 // make circle by radius and 2 tagante lines
9 template <class FP>
10 101 CEXP auto make_C_rLL(FP r, line<FP> CR l1, line<FP> CR l2) NE {
11 101 std::optional<pt4<circle<FP>>> ret;
12
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 101 times.
101 if (is_parallel(l1, l2)) return ret;
13 101 point<FP> dir1 = l1.direction(), dir2 = l2.direction();
14 101 dir1 *= r / dir1.norm(), dir2 *= r / dir2.norm();
15 101 const point<FP> dirl1 = rot90(dir1), dirr1 = rot270(dir1),
16 101 dirl2 = rot90(dir2), dirr2 = rot270(dir2);
17 101 const line<FP> u1 = {l1.l + dirl1, l1.r + dirl1}, u2 = {l1.l + dirr1, l1.r + dirr1},
18 101 v1 = {l2.l + dirl2, l2.r + dirl2}, v2 = {l2.l + dirr2, l2.r + dirr2};
19 101 ret.emplace(circle{ins_LL(u1, v1), r}, circle{ins_LL(u1, v2), r}, circle{ins_LL(u2, v1), r}, circle{ins_LL(u2, v2), r});
20 101 return ret;
21 }
22
23 } // namespace tifa_libs
24