travis-ci
172 of 175 relevant lines covered (98.29%)
221553099.16 hits per line
1 |
# This file is a part of JuliaFEM.
|
|
2 |
# License is MIT: see https://github.com/JuliaFEM/BoundingSphere.jl/blob/master/LICENSE |
|
3 |
|
|
4 |
struct SqBall{P,F}
|
|
5 |
center::P |
361,094,105✔ |
6 |
sqradius::F |
|
7 |
end |
|
8 |
|
|
9 |
function isinside(pt, ball::SqBall; atol=0, rtol=0) |
|
10 |
r2 = sqdist(pt, center(ball)) |
1,806,264,263✔ |
11 |
R2 = sqradius(ball) |
389,358,469✔ |
12 |
r2 <= R2 || isapprox(r2, R2;atol=atol^2,rtol=rtol^2) |
1,375,280,992✔ |
13 |
end |
|
14 |
|
|
15 |
function allinside(pts, ball; kw...) |
|
16 |
for pt in pts
|
107,752✔ |
17 |
isinside(pt, ball; kw...) || return false |
5,282,638✔ |
18 |
end |
|
19 |
true
|
53,836✔ |
20 |
end |
|
21 |
|
|
22 |
center(b::SqBall) = b.center |
893,113,957✔ |
23 |
radius(b::SqBall) = sqrt(b.sqradius) |
1,583,765✔ |
24 |
sqradius(b::SqBall) = b.sqradius |
892,704,672✔ |
25 |
|
|
26 |
dist(p1,p2) = norm(p1-p2) |
× |
27 |
sqdist(p1::AbstractVector, p2::AbstractVector) = sqnorm(p1-p2) |
1,920,135,150✔ |
28 |
sqdist(x,y) = sqdist(y,x) |
× |
29 |
|
|
30 |
sqnorm(p) = sum(abs2,p) |
2,039,327,979✔ |