From bd680d9f83b5995a18008289c3011247da0bad5d Mon Sep 17 00:00:00 2001 From: Kevin Cooney Date: Mon, 9 Feb 2026 23:35:53 -0800 Subject: [PATCH] Minor cleanups to MultiPhotonPoseEstimator - Make the Builder final - Add a public static builder() method - Make Builder constructor package-private --- .../vision/MultiPhotonPoseEstimator.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/vision/src/main/java/com/team2813/lib2813/vision/MultiPhotonPoseEstimator.java b/vision/src/main/java/com/team2813/lib2813/vision/MultiPhotonPoseEstimator.java index f49d4e19..589e26ee 100644 --- a/vision/src/main/java/com/team2813/lib2813/vision/MultiPhotonPoseEstimator.java +++ b/vision/src/main/java/com/team2813/lib2813/vision/MultiPhotonPoseEstimator.java @@ -67,23 +67,13 @@ public class MultiPhotonPoseEstimator implements AutoCloseable { private PhotonPoseEstimator.PoseStrategy poseEstimatorStrategy; /** A builder for {@code MultiPhotonPoseEstimator}. */ - public static class Builder { + public static final class Builder { private final Map cameraConfigs = new HashMap<>(); private final AprilTagFieldLayout aprilTagFieldLayout; private final NetworkTableInstance ntInstance; private final PhotonPoseEstimator.PoseStrategy poseEstimatorStrategy; - /** - * {@code MultiPhotonPoseEstimator} builder constructor. - * - * @param ntInstance Network table instance used to log the pose of AprilTag detections as well - * as pose estimates. - * @param aprilTagFieldLayout WPILib field description (dimensions) including AprilTag 3D - * locations. - * @param poseEstimatorStrategy Posing strategy (for instance, multi tag PnP, closest to camera - * tag, etc.) - */ - public Builder( + Builder( NetworkTableInstance ntInstance, AprilTagFieldLayout aprilTagFieldLayout, PhotonPoseEstimator.PoseStrategy poseEstimatorStrategy) { @@ -142,6 +132,23 @@ public MultiPhotonPoseEstimator build() { } } + /** + * Creates a builder for building {@link MultiPhotonPoseEstimator} instances. + * + * @param ntInstance Network table instance used to log the pose of AprilTag detections as well as + * pose estimates. + * @param aprilTagFieldLayout WPILib field description (dimensions) including AprilTag 3D + * locations. + * @param poseEstimatorStrategy Posing strategy (for instance, multi tag PnP, closest to camera + * tag, etc.) + */ + public static Builder builder( + NetworkTableInstance ntInstance, + AprilTagFieldLayout aprilTagFieldLayout, + PhotonPoseEstimator.PoseStrategy poseEstimatorStrategy) { + return new Builder(ntInstance, aprilTagFieldLayout, poseEstimatorStrategy); + } + /** * Adds all cameras to a simulated vision system. *