Skip to content

Commit 2a36f67

Browse files
authored
Merge pull request #7 from visr/metafield
fix meta(x), which was shielded by getproperty
2 parents f418f48 + 4c3775c commit 2a36f67

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/metadata.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ macro meta_type(name, mainfield, supertype, params...)
8787

8888
GeometryBasics.MetaFree(::Type{<: $MetaName{Typ}}) where Typ = Typ
8989
GeometryBasics.MetaFree(::Type{<: $MetaName}) = $name
90-
GeometryBasics.metafree(x::$MetaName) = x.main
90+
GeometryBasics.metafree(x::$MetaName) = getfield(x, :main)
9191
GeometryBasics.metafree(x::AbstractVector{<: $MetaName}) = getcolumns(x, $field)[1]
92-
GeometryBasics.meta(x::$MetaName) = x.meta
92+
GeometryBasics.meta(x::$MetaName) = getfield(x, :meta)
9393
GeometryBasics.meta(x::AbstractVector{<: $MetaName}) = getcolumns(x, :meta)[1]
9494
function (MT::Type{<: $MetaName})(args...; meta...)
9595
nt = values(meta)

test/runtests.jl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ using GeometryBasics: TupleView, TriangleFace, SimplexFace, LineString, Mesh, me
66
using Test, Random, Query, StructArrays, Tables
77
using StaticArrays
88

9-
9+
@testset "GeometryBasics" begin
1010
@testset "embedding metadata" begin
1111
@testset "Meshes" begin
1212

@@ -83,6 +83,14 @@ using StaticArrays
8383
@test length(filtered) == 7
8484
end
8585
end
86+
87+
@testset "point with metadata" begin
88+
p = Point(1.1, 2.2)
89+
@test p isa AbstractVector{Float64}
90+
pm = GeometryBasics.PointMeta(1.1, 2.2; a=1, b=2)
91+
@test meta(pm) === (a=1, b=2)
92+
@test metafree(pm) === p
93+
end
8694
end
8795

8896
@testset "view" begin
@@ -146,6 +154,14 @@ end
146154
@test triangles == [Tetrahedron(points...)]
147155
end
148156

157+
@testset "reinterpret" begin
158+
numbers = collect(reshape(1:6, 2, 3))
159+
points = reinterpret(Point{2, Int}, numbers)
160+
@test points[1] === Point(1, 2)
161+
@test points[2] === Point(3, 4)
162+
numbers[4] = 0
163+
@test points[2] === Point(3, 0)
164+
end
149165
end
150166

151167

@@ -220,3 +236,4 @@ end
220236
end
221237

222238
end
239+
end

0 commit comments

Comments
 (0)