Skip to content

Commit 6ae29e9

Browse files
committed
improve tests and interfaces
1 parent 10d2bb1 commit 6ae29e9

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/basic_types.jl

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ end
165165
Base.show(io::IO, x::LineP) = print(io, "Line(", x[1], " => ", x[2], ")")
166166

167167
"""
168+
LineString(points::AbstractVector{<:AbstractPoint})
169+
168170
A LineString is a geometry of connected line segments
169171
"""
170172
struct LineString{
@@ -177,6 +179,7 @@ end
177179

178180
coordinates(x::LineString) = x.points
179181

182+
Base.copy(x::LineString) = LineString(copy(x.points))
180183
Base.size(x::LineString) = size(coordinates(x))
181184
Base.getindex(x::LineString, i) = getindex(coordinates(x), i)
182185

@@ -231,6 +234,12 @@ function LineString(points::AbstractVector{<: AbstractPoint}, indices::AbstractV
231234
return LineString(points, faces)
232235
end
233236

237+
238+
"""
239+
Polygon(exterior::AbstractVector{<:Point})
240+
Polygon(exterior::AbstractVector{<:Point}, interiors::Vector{<:AbstractVector{<:AbstractPoint}})
241+
242+
"""
234243
struct Polygon{
235244
Dim, T <: Real,
236245
P <: AbstractPoint{Dim, T},
@@ -241,6 +250,8 @@ struct Polygon{
241250
interiors::V
242251
end
243252

253+
Base.copy(x::Polygon) = Polygon(copy(x.exterior), copy(x.interiors))
254+
244255
Base.:(==)(a::Polygon, b::Polygon) = (a.exterior == b.exterior) && (a.interiors == b.interiors)
245256

246257
function Polygon(exterior::E, interiors::AbstractVector{E}) where E <: AbstractVector{LineP{Dim, T, P}} where {Dim, T, P}
@@ -261,7 +272,9 @@ function Polygon(exterior::AbstractVector{P}, faces::AbstractVector{<: LineFace}
261272
return Polygon(LineString(exterior, faces))
262273
end
263274

264-
275+
"""
276+
MultiPolygon(polygons::AbstractPolygon)
277+
"""
265278
struct MultiPolygon{
266279
Dim, T <: Real,
267280
Element <: AbstractPolygon{Dim, T},

0 commit comments

Comments
 (0)