Move geometry lib to frc971/vision

Going to use for target mapping. Previously used this for 2022 vision.

Signed-off-by: Milind Upadhyay <milind.upadhyay@gmail.com>
Change-Id: Ifd9d13d3f9b0ea1aac42fb6c96ef2a5062b9f637
diff --git a/frc971/vision/BUILD b/frc971/vision/BUILD
index ca35f7c..65d236d 100644
--- a/frc971/vision/BUILD
+++ b/frc971/vision/BUILD
@@ -86,3 +86,28 @@
         "@org_tuxfamily_eigen//:eigen",
     ],
 )
+
+cc_library(
+    name = "geometry_lib",
+    hdrs = [
+        "geometry.h",
+    ],
+    target_compatible_with = ["@platforms//os:linux"],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//aos/util:math",
+        "//third_party:opencv",
+        "@com_github_google_glog//:glog",
+    ],
+)
+
+cc_test(
+    name = "geometry_test",
+    srcs = [
+        "geometry_test.cc",
+    ],
+    deps = [
+        ":geometry_lib",
+        "//aos/testing:googletest",
+    ],
+)
diff --git a/y2022/vision/geometry.h b/frc971/vision/geometry.h
similarity index 96%
rename from y2022/vision/geometry.h
rename to frc971/vision/geometry.h
index c27eb4d..e3527f5 100644
--- a/y2022/vision/geometry.h
+++ b/frc971/vision/geometry.h
@@ -1,11 +1,11 @@
-#ifndef Y2022_VISION_GEOMETRY_H_
-#define Y2022_VISION_GEOMETRY_H_
+#ifndef FRC971_VISION_GEOMETRY_H_
+#define FRC971_VISION_GEOMETRY_H_
 
 #include "aos/util/math.h"
 #include "glog/logging.h"
 #include "opencv2/core/types.hpp"
 
-namespace y2022::vision {
+namespace frc971::vision {
 
 // Linear equation in the form y = mx + b
 struct SlopeInterceptLine {
@@ -131,6 +131,6 @@
   }
 };
 
-}  // namespace y2022::vision
+}  // namespace frc971::vision
 
-#endif  // Y2022_VISION_GEOMETRY_H_
+#endif  // FRC971_VISION_GEOMETRY_H_
diff --git a/y2022/vision/geometry_test.cc b/frc971/vision/geometry_test.cc
similarity index 96%
rename from y2022/vision/geometry_test.cc
rename to frc971/vision/geometry_test.cc
index 0a5a759..19e54c4 100644
--- a/y2022/vision/geometry_test.cc
+++ b/frc971/vision/geometry_test.cc
@@ -1,4 +1,4 @@
-#include "y2022/vision/geometry.h"
+#include "frc971/vision/geometry.h"
 
 #include <cmath>
 
@@ -6,7 +6,7 @@
 #include "glog/logging.h"
 #include "gtest/gtest.h"
 
-namespace y2022::vision::testing {
+namespace frc971::vision::testing {
 
 TEST(GeometryTest, SlopeInterceptLine) {
   // Test a normal line
@@ -108,4 +108,4 @@
   }
 }
 
-}  // namespace y2022::vision::testing
+}  // namespace frc971::vision::testing
diff --git a/y2022/vision/BUILD b/y2022/vision/BUILD
index 6325234..233465e 100644
--- a/y2022/vision/BUILD
+++ b/y2022/vision/BUILD
@@ -121,7 +121,6 @@
         ":blob_detector_lib",
         ":calibration_data",
         ":calibration_fbs",
-        ":geometry_lib",
         ":target_estimate_fbs",
         ":target_estimator_lib",
         "//aos:flatbuffer_merge",
@@ -217,31 +216,6 @@
 )
 
 cc_library(
-    name = "geometry_lib",
-    hdrs = [
-        "geometry.h",
-    ],
-    target_compatible_with = ["@platforms//os:linux"],
-    visibility = ["//y2022:__subpackages__"],
-    deps = [
-        "//aos/util:math",
-        "//third_party:opencv",
-        "@com_github_google_glog//:glog",
-    ],
-)
-
-cc_test(
-    name = "geometry_test",
-    srcs = [
-        "geometry_test.cc",
-    ],
-    deps = [
-        ":geometry_lib",
-        "//aos/testing:googletest",
-    ],
-)
-
-cc_library(
     name = "blob_detector_lib",
     srcs = [
         "blob_detector.cc",
@@ -252,9 +226,9 @@
     target_compatible_with = ["@platforms//os:linux"],
     visibility = ["//y2022:__subpackages__"],
     deps = [
-        ":geometry_lib",
         "//aos/network:team_number",
         "//aos/time",
+        "//frc971/vision:geometry_lib",
         "//third_party:opencv",
     ],
 )
@@ -276,6 +250,7 @@
         "//aos/logging",
         "//aos/time",
         "//frc971/control_loops:quaternion_utils",
+        "//frc971/vision:geometry_lib",
         "//third_party:opencv",
         "//y2022:constants",
         "@com_google_absl//absl/strings:str_format",
diff --git a/y2022/vision/blob_detector.cc b/y2022/vision/blob_detector.cc
index 2f90513..3893ed6 100644
--- a/y2022/vision/blob_detector.cc
+++ b/y2022/vision/blob_detector.cc
@@ -6,10 +6,10 @@
 
 #include "aos/network/team_number.h"
 #include "aos/time/time.h"
+#include "frc971/vision/geometry.h"
 #include "opencv2/features2d.hpp"
 #include "opencv2/highgui/highgui.hpp"
 #include "opencv2/imgproc.hpp"
-#include "y2022/vision/geometry.h"
 
 DEFINE_bool(
     use_outdoors, true,
@@ -140,7 +140,7 @@
   constexpr double kMaxBlobAngle = M_PI - kMinBlobAngle;
   std::vector<std::vector<cv::Point>> blob_circle;
   std::vector<BlobStats> blob_circle_stats;
-  Circle circle;
+  frc971::vision::Circle circle;
 
   // If we see more than this number of blobs after filtering based on
   // color/size, the circle fit may detect noise so just return no blobs.
@@ -165,9 +165,10 @@
           filtered_blobs[j], filtered_blobs[k], filtered_blobs[l]};
       std::vector<BlobStats> current_stats{filtered_stats[j], filtered_stats[k],
                                            filtered_stats[l]};
-      const std::optional<Circle> current_circle =
-          Circle::Fit({current_stats[0].centroid, current_stats[1].centroid,
-                       current_stats[2].centroid});
+      const std::optional<frc971::vision::Circle> current_circle =
+          frc971::vision::Circle::Fit({current_stats[0].centroid,
+                                       current_stats[1].centroid,
+                                       current_stats[2].centroid});
 
       // Make sure that a circle could be created from the points
       if (!current_circle) {
diff --git a/y2022/vision/target_estimator.cc b/y2022/vision/target_estimator.cc
index 1447d81..9bbaf75 100644
--- a/y2022/vision/target_estimator.cc
+++ b/y2022/vision/target_estimator.cc
@@ -4,7 +4,7 @@
 #include "aos/time/time.h"
 #include "ceres/ceres.h"
 #include "frc971/control_loops/quaternion_utils.h"
-#include "geometry.h"
+#include "frc971/vision/geometry.h"
 #include "opencv2/core/core.hpp"
 #include "opencv2/core/eigen.hpp"
 #include "opencv2/features2d.hpp"
@@ -156,9 +156,9 @@
 
   CHECK_GE(blob_stats_.size(), 3) << "Expected at least 3 blobs";
 
-  const auto circle =
-      Circle::Fit({blob_stats_[0].centroid, blob_stats_[1].centroid,
-                   blob_stats_[2].centroid});
+  const auto circle = frc971::vision::Circle::Fit({blob_stats_[0].centroid,
+                                                   blob_stats_[1].centroid,
+                                                   blob_stats_[2].centroid});
   CHECK(circle.has_value());
 
   max_blob_area_ = 0.0;