diff --git a/src/variables.jl b/src/variables.jl index af796e9ae470ccc676eb987e4fa1a11ba3312b52..6d85e71d387d87cd0c5eb28e4a14b359b9984942 100644 --- a/src/variables.jl +++ b/src/variables.jl @@ -291,7 +291,9 @@ end for base_fn in [:qval, :gradient_strength, :slew_rate] fn3 = Symbol(String(base_fn) * "3") @eval function $fn3(bb::AbstractBlock, args...; kwargs...) - if hasproperty(bb, :orientation) + if hasmethod(get_gradient, (typeof(bb), )) + return $fn3(get_gradient(bb), args...; kwargs...) + else value = $base_fn(bb, args...; kwargs...) if value isa Number && iszero(value) return zero(SVector{3, Float64}) @@ -300,8 +302,6 @@ for base_fn in [:qval, :gradient_strength, :slew_rate] else return value .* bb.orientation end - else - return $fn3(get_gradient(bb), args...; kwargs...) end end @eval $fn3(nt::NamedTuple, args...; kwargs...) = map(v -> $fn3(v, args...; kwargs...), nt)