changeset 1386:4d628c83987e refactor/grids/cartesian_indexing

Add method `getindex(::Grid,::CartesianIndex)` with a default implementation
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 26 Jul 2023 21:36:50 +0200
parents 851d1e4ab3de
children 34753bf6e1e4
files src/Grids/grid.jl src/Grids/tensor_grid.jl
diffstat 2 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/Grids/grid.jl	Thu Jun 08 15:52:22 2023 +0200
+++ b/src/Grids/grid.jl	Wed Jul 26 21:36:50 2023 +0200
@@ -22,6 +22,8 @@
 Base.ndims(::Grid{T,D}) where {T,D} = D
 Base.eltype(::Type{<:Grid{T}}) where T = T
 
+Base.getindex(g::Grid, I::CartesianIndex) = g[Tuple(I)...]
+
 """
     coordinate_size(g)
 
--- a/src/Grids/tensor_grid.jl	Thu Jun 08 15:52:22 2023 +0200
+++ b/src/Grids/tensor_grid.jl	Wed Jul 26 21:36:50 2023 +0200
@@ -17,7 +17,7 @@
 end
 
 # Indexing interface
-function Base.getindex(g::TensorGrid, I...)
+function Base.getindex(g::TensorGrid, I::Vararg{Int})
     szs = ndims.(g.grids)
 
     Is = LazyTensors.split_tuple(I, szs)
@@ -26,8 +26,6 @@
     return vcat(ps...)
 end
 
-Base.getindex(g::TensorGrid, I::CartesianIndex) = g[Tuple(I)...]
-
 function Base.eachindex(g::TensorGrid)
     szs = LazyTensors.concatenate_tuples(size.(g.grids)...)
     return CartesianIndices(szs)