From 22b59642a7d342666dbd64c4e24a983bbdeadb97 Mon Sep 17 00:00:00 2001 From: ffreyer Date: Thu, 20 Feb 2025 00:51:28 +0100 Subject: [PATCH 1/2] allow Vectors --- src/primitives/rectangles.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/primitives/rectangles.jl b/src/primitives/rectangles.jl index 6e7b8b6a..fa51a216 100644 --- a/src/primitives/rectangles.jl +++ b/src/primitives/rectangles.jl @@ -95,6 +95,13 @@ end RectT{ T}(o::VecTypes{N}, w::VecTypes{N}) where {N, T} = Rect{N, T}(o, w) Rect{N }(o::VecTypes{N, T1}, w::VecTypes{N, T2}) where {N, T1, T2} = Rect{N, promote_type(T1, T2)}(o, w) +# Arrays + + Rect(o::AbstractVector{T1}, w::AbstractVector{T2}) where {T1, T2} = RectT{promote_type(T1, T2)}(Vec(o...), Vec(w...)) +RectT{ T}(o::AbstractVector, w::AbstractVector) where {T} = RectT{T}(Vec(o...), Vec(w...)) +Rect{N }(o::AbstractVector{T1}, w::AbstractVector{T2}) where {N, T1, T2} = Rect{N, promote_type(T1, T2)}(Vec(o...), Vec(w...)) +Rect{N, T}(o::AbstractVector, w::AbstractVector) where {N, T} = Rect{N, T}(Vec(o...), Vec(w...)) + # mixed number - vectype Rect(o::VecTypes{N, <:Number}, args::Vararg{Number, N}) where {N} = Rect{N }(o, promote(args...)) From 94646ae54f66bb9e73b15d4903164ea4cedd6dcc Mon Sep 17 00:00:00 2001 From: ffreyer Date: Thu, 20 Feb 2025 00:56:57 +0100 Subject: [PATCH 2/2] add tests --- test/geometrytypes.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/geometrytypes.jl b/test/geometrytypes.jl index 29bb9a36..0c06beb2 100644 --- a/test/geometrytypes.jl +++ b/test/geometrytypes.jl @@ -188,6 +188,12 @@ end @test Rect2{UInt32}(0.8, 0.1, 1.3, 1.9) == Rect2i(1,0,1,2) @test Rect3i(0.3, 0.6, 0.9, 1.2, 1.5, 1.8) == Rect3i(0,1,1,1,2,2) end + @testset "Vector inputs" begin + @test Rect([1,2], [2,3]) == Rect2i(1,2,2,3) + @test Rect2f([0,1], [2,3]) == Rect2f(0,1,2,3) + @test RectT{Float64}([0,1,0], [2,2,2]) == Rect3d(0,1,0, 2,2,2) + @test Rect3([0,1,0], [2,2,2]) == Rect3i(0,1,0, 2,2,2) + end # TODO: These don't really make sense... r = Rect2f()