comparison src/Grids/geometry.jl @ 1966:478b233999c5 feature/grids/geometry_functions

Add tests and better constructors for Line
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 12 Feb 2025 15:33:48 +0100
parents 6859089b361e
children 669361a8195a
comparison
equal deleted inserted replaced
1965:eedb5d7b90b4 1966:478b233999c5
1 struct Line{PT} 1 struct Line{PT}
2 p::PT 2 p::PT
3 tangent::PT 3 tangent::PT
4
5 Line{PT}(p::PT, tangent::PT) where PT = new{PT}(p,tangent)
6 end
7
8 function Line(p, t)
9 S = length(p)
10 T = promote_type(eltype(p), eltype(t))
11
12 PT = SVector{S,T}
13 return Line{PT}(
14 convert(PT, p),
15 convert(PT, t),
16 )
17 end
18
19 function Line(p::Tuple, t::Tuple)
20 p = promote(p...)
21 t = promote(t...)
22
23 return Line(SVector(p), SVector(t))
4 end 24 end
5 25
6 (c::Line)(s) = c.p + s*c.tangent 26 (c::Line)(s) = c.p + s*c.tangent
7 27
8 28