From 71957e6e6875139e10dd9442f71880fdb0e2e8f2 Mon Sep 17 00:00:00 2001 From: Hello2Krish19 <120155365+Hello2Krish19@users.noreply.github.com> Date: Mon, 9 Mar 2026 21:05:05 -0500 Subject: [PATCH 1/3] Change aimTarget to use Supplier Rewrote aimTarget to be of type Optional> Added overload method for a Pose2D Added javadocs for method Only affected methods were .aim and .get under the aim case --- yagsl/java/swervelib/SwerveInputStream.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/yagsl/java/swervelib/SwerveInputStream.java b/yagsl/java/swervelib/SwerveInputStream.java index e895911..fdd6702 100644 --- a/yagsl/java/swervelib/SwerveInputStream.java +++ b/yagsl/java/swervelib/SwerveInputStream.java @@ -96,7 +96,7 @@ public class SwerveInputStream implements Supplier /** * Target to aim at. */ - private Optional aimTarget = Optional.empty(); + private Optional> aimTarget = Optional.empty(); /** * Target {@link Supplier} to drive towards when driveToPose is enabled. */ @@ -570,7 +570,19 @@ public SwerveInputStream headingWhile(boolean headingState) */ public SwerveInputStream aim(Pose2d aimTarget) { - this.aimTarget = aimTarget.equals(Pose2d.kZero) ? Optional.empty() : Optional.of(aimTarget); + aim(() -> aimTarget); + return this; + } + + /** + * Aim the {@link SwerveDrive} at this pose while driving. + * + * @param aimTarget {@link Supplier} to point at. + * @return this + */ + public SwerveInputStream aim(Supplier aimTarget) + { + this.aimTarget = aimTarget.get().equals(Pose2d.kZero) ? Optional.empty() : Optional.of(aimTarget); return this; } @@ -1120,7 +1132,7 @@ public ChassisSpeeds get() } case AIM -> { - var targetVector = getTargetVector(aimTarget.orElseThrow()); + var targetVector = getTargetVector(aimTarget.get().orElseThrow()); var targetDistance = targetVector.getNorm(); // TODO: Shoot on the move, using // targetVector = targetVector.div(targetDistance).times(sotmDistanceToRPSMap.get(targetDistance)*flyWheelCircumference) From 82adcd7b5504c1bc8dc19e7e685c7a136671cc68 Mon Sep 17 00:00:00 2001 From: Hello2Krish19 <120155365+Hello2Krish19@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:20:32 -0500 Subject: [PATCH 2/3] Fix aimTarget presence check in SwerveInputStream changed .get().orElseThrow() into .orElseThrow().get --- yagsl/java/swervelib/SwerveInputStream.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yagsl/java/swervelib/SwerveInputStream.java b/yagsl/java/swervelib/SwerveInputStream.java index fdd6702..6947a1d 100644 --- a/yagsl/java/swervelib/SwerveInputStream.java +++ b/yagsl/java/swervelib/SwerveInputStream.java @@ -766,7 +766,7 @@ private SwerveInputMode findMode() return SwerveInputMode.TRANSLATION_ONLY; } else if (aimEnabled.isPresent() && aimEnabled.get().getAsBoolean()) { - if (aimTarget.isPresent()) + if (.isPresent()) { return SwerveInputMode.AIM; } else @@ -1132,7 +1132,7 @@ public ChassisSpeeds get() } case AIM -> { - var targetVector = getTargetVector(aimTarget.get().orElseThrow()); + var targetVector = getTargetVector(aimTarget.orElseThrow().get()); var targetDistance = targetVector.getNorm(); // TODO: Shoot on the move, using // targetVector = targetVector.div(targetDistance).times(sotmDistanceToRPSMap.get(targetDistance)*flyWheelCircumference) From 13a60afd666bbde96f0114b7b8a0ec5f7b3667ab Mon Sep 17 00:00:00 2001 From: Hello2Krish19 <120155365+Hello2Krish19@users.noreply.github.com> Date: Wed, 11 Mar 2026 08:08:12 -0500 Subject: [PATCH 3/3] Fix aimTarget presence check in SwerveInputStream --- yagsl/java/swervelib/SwerveInputStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yagsl/java/swervelib/SwerveInputStream.java b/yagsl/java/swervelib/SwerveInputStream.java index 6947a1d..9bcfca6 100644 --- a/yagsl/java/swervelib/SwerveInputStream.java +++ b/yagsl/java/swervelib/SwerveInputStream.java @@ -766,7 +766,7 @@ private SwerveInputMode findMode() return SwerveInputMode.TRANSLATION_ONLY; } else if (aimEnabled.isPresent() && aimEnabled.get().getAsBoolean()) { - if (.isPresent()) + if (aimTarget.isPresent()) { return SwerveInputMode.AIM; } else