diff --git a/ext/grid/transformed.jl b/ext/grid/transformed.jl index cb785237c..847a0c18e 100644 --- a/ext/grid/transformed.jl +++ b/ext/grid/transformed.jl @@ -2,7 +2,7 @@ # Licensed under the MIT License. See LICENSE in the project root. # ------------------------------------------------------------------ -function vizgrid!(plot::Viz{<:Tuple{Meshes.TransformedGrid}}, M::Type{<:𝔼}, pdim::Val, edim::Val) +function vizgrid!(plot::Viz{<:Tuple{TransformedGrid}}, M::Type{<:𝔼}, pdim::Val, edim::Val) tgrid = plot[:object] color = plot[:color] alpha = plot[:alpha] diff --git a/src/Meshes.jl b/src/Meshes.jl index 2989165b7..af8212197 100644 --- a/src/Meshes.jl +++ b/src/Meshes.jl @@ -234,6 +234,9 @@ export MultiPolygon, MultiPolyhedron, + # transformed geometry + TransformedGeometry, + # connectivities Connectivity, paramdim, @@ -297,11 +300,12 @@ export # meshes Mesh, Grid, - SubGrid, + SimpleMesh, + TransformedMesh, CartesianGrid, RectilinearGrid, StructuredGrid, - SimpleMesh, + TransformedGrid, vertex, vertices, nvertices, diff --git a/src/domains/meshes/transformedmesh.jl b/src/domains/meshes/transformedmesh.jl index ecfd8dcd0..0c32800b2 100644 --- a/src/domains/meshes/transformedmesh.jl +++ b/src/domains/meshes/transformedmesh.jl @@ -5,7 +5,7 @@ """ TransformedMesh(mesh, transform) -Lazy representation of a geometric `transform` applied to a `mesh`. +Lazy representation of a coordinate `transform` applied to a `mesh`. """ struct TransformedMesh{M<:Manifold,C<:CRS,TP<:Topology,MS<:Mesh,TR<:Transform} <: Mesh{M,C,TP} mesh::MS diff --git a/src/geometries/transformedgeom.jl b/src/geometries/transformedgeom.jl index aa105cffd..b3d460c05 100644 --- a/src/geometries/transformedgeom.jl +++ b/src/geometries/transformedgeom.jl @@ -5,7 +5,7 @@ """ TransformedGeometry(geometry, transform) -Lazy representation of a geometric `transform` applied to a `geometry`. +Lazy representation of a coordinate `transform` applied to a `geometry`. """ struct TransformedGeometry{M<:Manifold,C<:CRS,G<:Geometry,T<:Transform} <: Geometry{M,C} geometry::G diff --git a/test/boundingboxes.jl b/test/boundingboxes.jl index 2608354d3..a2573e3dc 100644 --- a/test/boundingboxes.jl +++ b/test/boundingboxes.jl @@ -101,13 +101,13 @@ @test @allocated(boundingbox(d)) < 50 g = cartgrid(10, 10) - d = Meshes.TransformedGrid(g, Rotate(T(π / 2))) + d = TransformedGrid(g, Rotate(T(π / 2))) @test boundingbox(d) ≈ Box(cart(-10, 0), cart(0, 10)) @test @allocated(boundingbox(d)) < 3000 g = cartgrid(10, 10) rg = convert(RectilinearGrid, g) - d = Meshes.TransformedGrid(rg, Rotate(T(π / 2))) + d = TransformedGrid(rg, Rotate(T(π / 2))) @test boundingbox(d) ≈ Box(cart(-10, 0), cart(0, 10)) @test @allocated(boundingbox(d)) < 3000 diff --git a/test/coarsening.jl b/test/coarsening.jl index 1bde9fdc2..15d6e9fd5 100644 --- a/test/coarsening.jl +++ b/test/coarsening.jl @@ -10,7 +10,7 @@ sgrid = convert(StructuredGrid, grid) tsgrid = convert(StructuredGrid, tgrid) @test coarsen(sgrid, RegularCoarsening(2)) == tsgrid - tfgrid = Meshes.TransformedGrid(grid, Identity()) + tfgrid = TransformedGrid(grid, Identity()) @test coarsen(tfgrid, RegularCoarsening(2)) == coarsen(grid, RegularCoarsening(2)) grid = CartesianGrid(cart(0.0, 0.0), cart(10.0, 10.0), dims=(20, 20)) @@ -27,7 +27,7 @@ sgrid = convert(StructuredGrid, grid) tsgrid = convert(StructuredGrid, tgrid) @test coarsen(sgrid, RegularCoarsening(2, 4, 5)) == tsgrid - tfgrid = Meshes.TransformedGrid(grid, Identity()) + tfgrid = TransformedGrid(grid, Identity()) @test coarsen(tfgrid, RegularCoarsening(2, 4, 5)) == coarsen(grid, RegularCoarsening(2, 4, 5)) end end diff --git a/test/discretization.jl b/test/discretization.jl index 41b310ccb..28c802683 100644 --- a/test/discretization.jl +++ b/test/discretization.jl @@ -401,7 +401,7 @@ poly = PolyArea(cart.([(0, 0), (0, 1), (1, 2), (2, 1), (2, 0)])) mesh = discretize(poly, RegularDiscretization(50)) - @test mesh isa SubGrid + @test mesh isa Meshes.SubGrid grid = parent(mesh) @test grid isa CartesianGrid @test eltype(mesh) <: Quadrangle diff --git a/test/meshes.jl b/test/meshes.jl index 75a275961..70b7e1beb 100644 --- a/test/meshes.jl +++ b/test/meshes.jl @@ -701,43 +701,42 @@ sgrid = convert(StructuredGrid, grid) mesh = convert(SimpleMesh, grid) trans = Identity() - tmesh = Meshes.TransformedMesh(mesh, trans) + tmesh = TransformedMesh(mesh, trans) @test crs(tmesh) <: Cartesian{NoDatum} @test Meshes.lentype(tmesh) == ℳ @test parent(tmesh) === mesh @test Meshes.transform(tmesh) === trans - @test Meshes.TransformedMesh(grid, trans) == grid - @test Meshes.TransformedMesh(rgrid, trans) == rgrid - @test Meshes.TransformedMesh(sgrid, trans) == sgrid - @test Meshes.TransformedMesh(mesh, trans) == mesh + @test TransformedMesh(grid, trans) == grid + @test TransformedMesh(rgrid, trans) == rgrid + @test TransformedMesh(sgrid, trans) == sgrid + @test TransformedMesh(mesh, trans) == mesh trans = Translate(T(10), T(10)) → Translate(T(-10), T(-10)) - @test Meshes.TransformedMesh(grid, trans) == grid - @test Meshes.TransformedMesh(rgrid, trans) == rgrid - @test Meshes.TransformedMesh(sgrid, trans) == sgrid - @test Meshes.TransformedMesh(mesh, trans) == mesh + @test TransformedMesh(grid, trans) == grid + @test TransformedMesh(rgrid, trans) == rgrid + @test TransformedMesh(sgrid, trans) == sgrid + @test TransformedMesh(mesh, trans) == mesh trans1 = Translate(T(10), T(10)) trans2 = Translate(T(-10), T(-10)) - @test Meshes.TransformedMesh(Meshes.TransformedMesh(grid, trans1), trans2) == - Meshes.TransformedMesh(grid, trans1 → trans2) + @test TransformedMesh(TransformedMesh(grid, trans1), trans2) == TransformedMesh(grid, trans1 → trans2) # transforms that change the Manifold and/or CRS points = latlon.([(0, 0), (0, 1), (1, 0), (1, 1), (0.5, 0.5)]) connec = connect.([(1, 2, 5), (2, 4, 5), (4, 3, 5), (3, 1, 5)], Triangle) mesh = SimpleMesh(points, connec) trans = Proj(Cartesian) - tmesh = Meshes.TransformedMesh(mesh, trans) + tmesh = TransformedMesh(mesh, trans) @test manifold(tmesh) === 🌐 @test crs(tmesh) <: Cartesian trans = Proj(Polar) - tgrid = Meshes.TransformedMesh(grid, trans) - @test tgrid isa Meshes.TransformedGrid + tgrid = TransformedMesh(grid, trans) + @test tgrid isa TransformedGrid @test manifold(tgrid) === 𝔼{2} @test crs(tgrid) <: Polar # grid interface trans = Identity() - tgrid = Meshes.TransformedMesh(grid, trans) - @test tgrid isa Meshes.TransformedGrid + tgrid = TransformedMesh(grid, trans) + @test tgrid isa TransformedGrid @test size(tgrid) == (10, 10) @test minimum(tgrid) == cart(0, 0) @test maximum(tgrid) == cart(10, 10) @@ -762,14 +761,14 @@ # optimization of centroid trans = Rotate(T(π / 4)) cgrid = cartgrid(10, 10) - tmesh = Meshes.TransformedMesh(cgrid, trans) + tmesh = TransformedMesh(cgrid, trans) centr = centroid(tmesh, 1) @test @allocated(centroid(tmesh, 1)) < 50 # optimization of == trans = Rotate(T(π / 4)) cgrid = cartgrid(1000, 1000) - tmesh = Meshes.TransformedMesh(cgrid, trans) + tmesh = TransformedMesh(cgrid, trans) @test tmesh == tmesh @test sprint(show, tgrid) == "10×10 TransformedGrid" diff --git a/test/refinement.jl b/test/refinement.jl index 43867e7a7..211b13f65 100644 --- a/test/refinement.jl +++ b/test/refinement.jl @@ -53,7 +53,7 @@ sgrid = convert(StructuredGrid, grid) tsgrid = convert(StructuredGrid, tgrid) @test refine(sgrid, RegularRefinement(2)) == tsgrid - tfgrid = Meshes.TransformedGrid(grid, Identity()) + tfgrid = TransformedGrid(grid, Identity()) @test refine(tfgrid, RegularRefinement(2)) == refine(grid, RegularRefinement(2)) # 3D grids @@ -66,7 +66,7 @@ sgrid = convert(StructuredGrid, grid) tsgrid = convert(StructuredGrid, tgrid) @test refine(sgrid, RegularRefinement(2)) == tsgrid - tfgrid = Meshes.TransformedGrid(grid, Identity()) + tfgrid = TransformedGrid(grid, Identity()) @test refine(tfgrid, RegularRefinement(2)) == refine(grid, RegularRefinement(2)) end diff --git a/test/subdomains.jl b/test/subdomains.jl index 5cb7fc5fc..c22ac5a57 100644 --- a/test/subdomains.jl +++ b/test/subdomains.jl @@ -40,7 +40,7 @@ # view of view stores the correct domain g = cartgrid(10, 10) v = view(view(g, 11:20), 1:3) - @test v isa SubGrid + @test v isa Meshes.SubGrid @test v[1] == g[11] @test v[2] == g[12] @test v[3] == g[13] @@ -58,7 +58,7 @@ # concatenation with same parent g = cartgrid(10, 10) vg = vcat(view(g, 50:70), view(g, 10:30)) - @test vg isa SubGrid + @test vg isa Meshes.SubGrid @test vg == view(g, [50:70; 10:30]) # concatenation with different parents g1 = cartgrid(10, 10) diff --git a/test/transformedgeoms.jl b/test/transformedgeoms.jl index 94ffccf4b..4ccf01f4f 100644 --- a/test/transformedgeoms.jl +++ b/test/transformedgeoms.jl @@ -1,11 +1,11 @@ @testset "TransformedGeometry" begin b = Box(cart(0, 0), cart(1, 1)) t = Translate(T(1), T(2)) - tb = Meshes.TransformedGeometry(b, t) + tb = TransformedGeometry(b, t) @test parent(tb) == b @test Meshes.transform(tb) == t t2 = Scale(T(2), T(3)) - tb2 = Meshes.TransformedGeometry(tb, t2) + tb2 = TransformedGeometry(tb, t2) @test Meshes.transform(tb2) == (t → t2) @test paramdim(tb) == paramdim(b) @test tb == tb @@ -14,26 +14,26 @@ @test centroid(tb) == t(centroid(b)) @test discretize(tb) == t(discretize(b)) t3 = Scale(T(2), T(2)) - tb3 = Meshes.TransformedGeometry(b, t3) + tb3 = TransformedGeometry(b, t3) @test measure(tb3) == 4 * measure(b) equaltest(tb) isapproxtest(tb) b = Ball(latlon(0, 0), T(1)) t = Proj(Cartesian) - tb = Meshes.TransformedGeometry(b, t) + tb = TransformedGeometry(b, t) @test paramdim(tb) == paramdim(b) @test centroid(tb) == t(centroid(b)) s = Sphere(latlon(0, 0), T(1)) t = Proj(Cartesian) - ts = Meshes.TransformedGeometry(s, t) + ts = TransformedGeometry(s, t) @test paramdim(ts) == paramdim(s) @test centroid(ts) == t(centroid(s)) s = Segment(cart(0, 0), cart(1, 1)) t = Translate(T(1), T(2)) - ts = Meshes.TransformedGeometry(s, t) + ts = TransformedGeometry(s, t) @test vertex(ts, 1) == t(vertex(s, 1)) @test vertices(ts) == t.(vertices(s)) @test nvertices(ts) == nvertices(s) @@ -42,20 +42,20 @@ p = PolyArea(cart(0, 0), cart(1, 0), cart(1, 1), cart(0, 1)) t = Translate(T(1), T(2)) - tp = Meshes.TransformedGeometry(p, t) + tp = TransformedGeometry(p, t) @test vertex(tp, 1) == t(vertex(p, 1)) @test vertices(tp) == t.(vertices(p)) @test nvertices(tp) == nvertices(p) @test rings(tp) == t.(rings(p)) p2 = PolyArea(cart(0, 0), cart(0, 0), cart(1, 0), cart(1, 1), cart(0, 1)) - tp2 = Meshes.TransformedGeometry(p2, t) + tp2 = TransformedGeometry(p2, t) @test unique(tp2) == tp equaltest(tp) isapproxtest(tp) b = Box(cart(0, 0), cart(1, 1)) t = Translate(T(1), T(2)) - tb = Meshes.TransformedGeometry(b, t) + tb = TransformedGeometry(b, t) @test sprint(show, tb) == "TransformedBox(geometry: Box(min: (x: 0.0 m, y: 0.0 m), max: (x: 1.0 m, y: 1.0 m)), transform: Translate(offsets: (1.0 m, 2.0 m)))" @test sprint(show, MIME"text/plain"(), tb) == """