Skip to content

Commit 1176e8c

Browse files
committed
move prepared to a new file
1 parent b9910bf commit 1176e8c

File tree

2 files changed

+56
-56
lines changed

2 files changed

+56
-56
lines changed

src/preparations/preparations.jl

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +0,0 @@
1-
struct Prepared{Pa,Pr}
2-
parent::Pa
3-
preparations::Pr
4-
end
5-
6-
Base.parent(x::Prepared) = x.parent
7-
@inline getprep(p::Prepared, x::Symbol) = getproperty(p.preparations, x)
8-
9-
GI.trait(p::Prepared) = GI.trait(parent(p))
10-
GI.geomtrait(p::Prepared) = GI.geomtrait(parent(p))
11-
12-
GI.isgeometry(::Type{<:Prepared{T}}) where {T} = GI.isgeometry(T)
13-
GI.isfeature(::Type{<:Prepared{T}}) where {T} = GI.isfeature(T)
14-
GI.isfeaturecollection(::Type{<:Prepared{T}}) where {T} = GI.isfeaturecollection(T)
15-
16-
GI.geometry(x::Prepared) = GI.geometry(parent(x))
17-
GI.properties(x::Prepared) = GI.properties(parent(x))
18-
19-
for f in (:extent, :crs)
20-
@eval GI.$f(t::GI.AbstractTrait, x::Prepared) = GI.$f(t, parent(x))
21-
end
22-
for f in (:coordnames, :is3d, :ismeasured, :isempty, :coordinates, :getgeom)
23-
@eval GI.$f(t::GI.AbstractGeometryTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
24-
end
25-
26-
for f in (:x, :y, :z, :m, :coordinates, :getcoord, :ngeom, :getgeom)
27-
@eval GI.$f(t::GI.AbstractPointTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
28-
end
29-
for f in (:npoint, :getpoint, :startpoint, :endpoint, :npoint, :issimple, :isclosed, :isring)
30-
@eval GI.$f(t::GI.AbstractCurveTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
31-
end
32-
for f in (:nring, :getring, :getexterior, :nhole, :gethole, :npoint, :getpoint, :startpoint, :endpoint)
33-
@eval GI.$f(t::GI.AbstractPolygonTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
34-
end
35-
for f in (:npoint, :getpoint, :issimple)
36-
@eval GI.$f(t::GI.AbstractMultiPointTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
37-
@eval GI.$f(t::GI.AbstractMultiCurveTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
38-
end
39-
for f in (:nring, :getring, :npoint, :getpoint)
40-
@eval GI.$f(t::GI.AbstractMultiPolygonTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
41-
end
42-
43-
getpoint(t::GI.AbstractPolyhedralSurfaceTrait, geom::Prepared) = GI.getpoint(t, parent(geom))
44-
isclosed(t::GI.AbstractMultiCurveTrait, geom::Prepared) = GI.isclosed(t, parent(geom))
45-
46-
for f in (:getfeature, :coordinates)
47-
@eval GI.$f(t::GI.AbstractFeatureTrait, geom::Prepared, args...) = $f(t, parent(geom), args...)
48-
end
49-
50-
# Ambiguity
51-
for T in (:LineTrait, :TriangleTrait, :PentagonTrait, :HexagonTrait, :RectangleTrait, :QuadTrait)
52-
@eval GI.npoint(t::GI.$T, geom::Prepared) = GI.npoint(t, parent(geom))
53-
end
54-
for T in (:RectangleTrait, :QuadTrait, :PentagonTrait, :HexagonTrait, :TriangleTrait)
55-
@eval GI.nring(t::GI.$T, geom::Prepared) = GI.nring(t, parent(geom))
56-
end

src/preparations/prepared_geometry.jl

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
struct Prepared{Pa,Pr}
2+
parent::Pa
3+
preparations::Pr
4+
end
5+
6+
Base.parent(x::Prepared) = x.parent
7+
@inline getprep(p::Prepared, x::Symbol) = getproperty(p.preparations, x)
8+
9+
GI.trait(p::Prepared) = GI.trait(parent(p))
10+
GI.geomtrait(p::Prepared) = GI.geomtrait(parent(p))
11+
12+
GI.isgeometry(::Type{<:Prepared{T}}) where {T} = GI.isgeometry(T)
13+
GI.isfeature(::Type{<:Prepared{T}}) where {T} = GI.isfeature(T)
14+
GI.isfeaturecollection(::Type{<:Prepared{T}}) where {T} = GI.isfeaturecollection(T)
15+
16+
GI.geometry(x::Prepared) = GI.geometry(parent(x))
17+
GI.properties(x::Prepared) = GI.properties(parent(x))
18+
19+
for f in (:extent, :crs)
20+
@eval GI.$f(t::GI.AbstractTrait, x::Prepared) = GI.$f(t, parent(x))
21+
end
22+
for f in (:coordnames, :is3d, :ismeasured, :isempty, :coordinates, :getgeom)
23+
@eval GI.$f(t::GI.AbstractGeometryTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
24+
end
25+
26+
for f in (:x, :y, :z, :m, :coordinates, :getcoord, :ngeom, :getgeom)
27+
@eval GI.$f(t::GI.AbstractPointTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
28+
end
29+
for f in (:npoint, :getpoint, :startpoint, :endpoint, :npoint, :issimple, :isclosed, :isring)
30+
@eval GI.$f(t::GI.AbstractCurveTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
31+
end
32+
for f in (:nring, :getring, :getexterior, :nhole, :gethole, :npoint, :getpoint, :startpoint, :endpoint)
33+
@eval GI.$f(t::GI.AbstractPolygonTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
34+
end
35+
for f in (:npoint, :getpoint, :issimple)
36+
@eval GI.$f(t::GI.AbstractMultiPointTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
37+
@eval GI.$f(t::GI.AbstractMultiCurveTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
38+
end
39+
for f in (:nring, :getring, :npoint, :getpoint)
40+
@eval GI.$f(t::GI.AbstractMultiPolygonTrait, geom::Prepared, args...) = GI.$f(t, parent(geom), args...)
41+
end
42+
43+
getpoint(t::GI.AbstractPolyhedralSurfaceTrait, geom::Prepared) = GI.getpoint(t, parent(geom))
44+
isclosed(t::GI.AbstractMultiCurveTrait, geom::Prepared) = GI.isclosed(t, parent(geom))
45+
46+
for f in (:getfeature, :coordinates)
47+
@eval GI.$f(t::GI.AbstractFeatureTrait, geom::Prepared, args...) = $f(t, parent(geom), args...)
48+
end
49+
50+
# Ambiguity
51+
for T in (:LineTrait, :TriangleTrait, :PentagonTrait, :HexagonTrait, :RectangleTrait, :QuadTrait)
52+
@eval GI.npoint(t::GI.$T, geom::Prepared) = GI.npoint(t, parent(geom))
53+
end
54+
for T in (:RectangleTrait, :QuadTrait, :PentagonTrait, :HexagonTrait, :TriangleTrait)
55+
@eval GI.nring(t::GI.$T, geom::Prepared) = GI.nring(t, parent(geom))
56+
end

0 commit comments

Comments
 (0)