From 138dfc5d7ff2df92da025a103ade7c1c12f3f8f1 Mon Sep 17 00:00:00 2001 From: Ray Healy Date: Sat, 14 Mar 2026 09:53:06 -0400 Subject: [PATCH] trajectory/ballistics/calculators/BCResult: Make into a record class --- .../ballistics/calculators/BCResult.java | 20 ++++++++----------- .../HillDescentBallisticCalculator.java | 2 +- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/BCResult.java b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/BCResult.java index 21a17fc..1db05af 100644 --- a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/BCResult.java +++ b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/BCResult.java @@ -2,19 +2,15 @@ package org.fairportrobotics.frc.robolib.trajectory.ballistics.calculators; import org.fairportrobotics.frc.robolib.trajectory.ballistics.constraints.BCEvalParams; -public class BCResult { - public final Double penalty; /// The penalty for the computed launcher velocity (null if invalid) - public final BCEvalParams evalParams; /// The BCEvalParams instance that produced the best penalty - - - public BCResult( - Double penalty, - BCEvalParams evalParams - ) { - this.penalty = penalty; - this.evalParams = evalParams; - } +/** + * Record type for ballistic calculator results + */ +public record BCResult(Double penalty, BCEvalParams evalParams) { + /** + * Checks if the result is valid (i.e. checks if penalty != null) + * @return True if the evalParams evaluates as valid, false otherwise + */ public boolean isValid() { return this.penalty != null; } diff --git a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/HillDescentBallisticCalculator.java b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/HillDescentBallisticCalculator.java index 8e30e7d..9c49f4a 100644 --- a/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/HillDescentBallisticCalculator.java +++ b/lib/src/main/java/org/fairportrobotics/frc/robolib/trajectory/ballistics/calculators/HillDescentBallisticCalculator.java @@ -45,7 +45,7 @@ public class HillDescentBallisticCalculator extends BallisticCalculator { if(model.paramComputed(param)) continue; BCResult result = this.evalSingleCandidate(model, param, robotVelocity, robotAngle, shooterVelocity); - if(result.penalty < bestResult.penalty) { + if(result.isValid() && result.penalty() < bestResult.penalty()) { bestParam = param; bestResult = result; foundImprovement = true;