From 82a2c2e3794352f3a3850d567a3f1f5f6d267495 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Thu, 15 Feb 2024 18:40:45 +0000 Subject: [PATCH] Fix getting of groups for SliceSelect and SingleLine --- src/all_building_blocks/trapezoids.jl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/all_building_blocks/trapezoids.jl b/src/all_building_blocks/trapezoids.jl index e66edbc..cd29051 100644 --- a/src/all_building_blocks/trapezoids.jl +++ b/src/all_building_blocks/trapezoids.jl @@ -97,13 +97,16 @@ end Base.keys(::Trapezoid) = (Val(:rise), Val(:flat), Val(:fall)) -Base.getindex(pg::BaseTrapezoid{N}, ::Val{:rise}) where {N} = ChangingGradient(N == 3 ? zeros(3) : 0., slew_rate(pg), gradient_orientation(pg), rise_time(pg), pg.group) -Base.getindex(pg::BaseTrapezoid, ::Val{:flat}) = ConstantGradient(gradient_strength(pg), gradient_orientation(pg), flat_time(pg), pg.group) -Base.getindex(pg::BaseTrapezoid, ::Val{:fall}) = ChangingGradient(gradient_strength(pg), -slew_rate(pg), gradient_orientation(pg), rise_time(pg), pg.group) +Base.getindex(pg::BaseTrapezoid{N}, ::Val{:rise}) where {N} = ChangingGradient(N == 3 ? zeros(3) : 0., slew_rate(pg), gradient_orientation(pg), rise_time(pg), get_group(pg)) +Base.getindex(pg::BaseTrapezoid, ::Val{:flat}) = ConstantGradient(gradient_strength(pg), gradient_orientation(pg), flat_time(pg), get_group(pg)) +Base.getindex(pg::BaseTrapezoid, ::Val{:fall}) = ChangingGradient(gradient_strength(pg), -slew_rate(pg), gradient_orientation(pg), rise_time(pg), get_group(pg)) gradient_orientation(::BaseTrapezoid{3}) = nothing gradient_orientation(pg::BaseTrapezoid{1}) = gradient_orientation(get_gradient(pg)) gradient_orientation(pg::Trapezoid{1}) = pg.orientation +get_group(pg::Trapezoid) = pg.group +get_group(pg::BaseTrapezoid) = get_group(get_gradient(pg)) + rise_time(pg::Trapezoid) = pg.rise_time flat_time(pg::Trapezoid) = pg.flat_time gradient_strength(g::Trapezoid) = slew_rate(g) .* rise_time(g) -- GitLab