From 7f9e758a4470e53f409cc28eaa14914be258fe80 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk>
Date: Thu, 15 Feb 2024 18:31:46 +0000
Subject: [PATCH] Create constructors with same number of arguments

---
 src/components/gradient_waveforms/changing_gradient_blocks.jl | 1 +
 src/components/gradient_waveforms/constant_gradient_blocks.jl | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/components/gradient_waveforms/changing_gradient_blocks.jl b/src/components/gradient_waveforms/changing_gradient_blocks.jl
index c3eb4cf..7c7a2a8 100644
--- a/src/components/gradient_waveforms/changing_gradient_blocks.jl
+++ b/src/components/gradient_waveforms/changing_gradient_blocks.jl
@@ -14,6 +14,7 @@ Usually, you do not want to create this object directly, use a `BuildingBlock` i
 """
 abstract type ChangingGradient{N} <: GradientWaveform{N} end
 (::Type{ChangingGradient})(grad1::VariableType, slew_rate::VariableType, orientation::AbstractVector, duration::VariableType, group=nothing) = ChangingGradient1D(grad1, slew_rate, orientation, duration, group)
+(::Type{ChangingGradient})(grad1::AbstractVector, slew_rate::AbstractVector, ::Nothing, duration::VariableType, group=nothing) = ChangingGradient3D(grad1, slew_rate, duration, group)
 (::Type{ChangingGradient})(grad1::AbstractVector, slew_rate::AbstractVector, duration::VariableType, group=nothing) = ChangingGradient3D(grad1, slew_rate, duration, group)
 
 struct ChangingGradient1D <: ChangingGradient{1}
diff --git a/src/components/gradient_waveforms/constant_gradient_blocks.jl b/src/components/gradient_waveforms/constant_gradient_blocks.jl
index 7a54528..2004cb8 100644
--- a/src/components/gradient_waveforms/constant_gradient_blocks.jl
+++ b/src/components/gradient_waveforms/constant_gradient_blocks.jl
@@ -13,7 +13,8 @@ Underlying type for any flat part in a 3D (first constructor) or 3D (second cons
 Usually, you do not want to create this object directly, use a `BuildingBlock` instead.
 """
 abstract type ConstantGradient{N} <: GradientWaveform{N} end
-(::Type{ConstantGradient})(grad1::VariableType, orientation::AbsractVector, duration::VariableType, group=nothing) = ConstantGradient1D(grad1, duration, orientation, group)
+(::Type{ConstantGradient})(grad1::VariableType, orientation::AbstractVector, duration::VariableType, group=nothing) = ConstantGradient1D(grad1, duration, orientation, group)
+(::Type{ConstantGradient})(grad1::AbstractVector, ::Nothing, duration::VariableType, group=nothing) = ConstantGradient3D(grad1, duration, group)
 (::Type{ConstantGradient})(grad1::AbstractVector, duration::VariableType, group=nothing) = ConstantGradient3D(grad1, duration, group)
 
 struct ConstantGradient1D <: ConstantGradient{1}
-- 
GitLab