Skip to content

Commit

Permalink
Smith grid animations coming in from the right (#135)
Browse files Browse the repository at this point in the history
  • Loading branch information
mfikes authored Jan 13, 2024
1 parent 1fed583 commit 22b81aa
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions Impedance Converter/Impedance Converter/SmithChartView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ struct SmithChartContentView: View {

@State var constraintValue: Double = 0

@State private var modeInterpolator: Double = 1
@State private var modeInterpolator: Double

var modeAnimationManager = SmoothAnimation(initialValue: 1)
let modeAnimationManager: SmoothAnimation

func startAnimatingModeChange(target: Double) {
modeAnimationManager.startAnimating(target: target) { interpolatorValue in
Expand All @@ -44,7 +44,12 @@ struct SmithChartContentView: View {

var refAngleAnimationManager = SmoothAnimation(initialValue: 0)


init(viewModel: ViewModel) {
self.viewModel = viewModel
let initialModeInterpolator = SmithChartContentView.animationTarget(for: viewModel.displayMode)
_modeInterpolator = State(initialValue: initialModeInterpolator)
modeAnimationManager = SmoothAnimation(initialValue: initialModeInterpolator)
}

func createCenterAndRadius(size: CGSize) -> (CGPoint, CGFloat) {
let center = CGPoint(x: size.width / 2, y: size.height / 2)
Expand Down Expand Up @@ -73,7 +78,7 @@ struct SmithChartContentView: View {
return constraintKind == .unset || constraintKind == .none ? .gray : .dimGridView
}

func animationTarget(for mode: DisplayMode) -> Double {
static func animationTarget(for mode: DisplayMode) -> Double {
switch mode {
case .impedance:
return 1
Expand Down Expand Up @@ -147,7 +152,7 @@ struct SmithChartContentView: View {
}
}
.onChange(of: viewModel.displayMode) { _ in
startAnimatingModeChange(target: animationTarget(for: viewModel.displayMode))
startAnimatingModeChange(target: SmithChartContentView.animationTarget(for: viewModel.displayMode))
}
.onChange(of: viewModel.refAngle) { _ in
let start = oldRefAngle.radians
Expand Down Expand Up @@ -187,7 +192,7 @@ struct SmithChartContentView: View {
}
}
.onChange(of: viewModel.displayMode) { _ in
startAnimatingModeChange(target:animationTarget(for: viewModel.displayMode))
startAnimatingModeChange(target:SmithChartContentView.animationTarget(for: viewModel.displayMode))
}

Canvas { context, size in
Expand Down

0 comments on commit 22b81aa

Please sign in to comment.