Put target mapping replay code in a class

Before, we had functions with like 10 pointers passed in, which was a
big pain. Having those variables as class members makes this all much
cleaner.

Signed-off-by: milind-u <milind.upadhyay@gmail.com>
Change-Id: Ibf229f64f24a68c6bffdb96369d2191d3b000e8a
diff --git a/frc971/vision/visualize_robot.h b/frc971/vision/visualize_robot.h
index cd8b4d0..31d584d 100644
--- a/frc971/vision/visualize_robot.h
+++ b/frc971/vision/visualize_robot.h
@@ -21,13 +21,16 @@
 
 class VisualizeRobot {
  public:
+  VisualizeRobot(cv::Size default_size = cv::Size(1280, 720))
+      : default_size_(default_size) {}
+
   // Set image on which to draw
   void SetImage(cv::Mat image) { image_ = image; }
 
   // Sets image to all black.
-  // Uses default_size if no image has been set yet, else image_.size()
-  void ClearImage(cv::Size default_size = cv::Size(1280, 720)) {
-    auto image_size = (image_.data == nullptr ? default_size : image_.size());
+  // Uses default_size_ if no image has been set yet, else image_.size()
+  void ClearImage() {
+    auto image_size = (image_.data == nullptr ? default_size_ : image_.size());
     cv::Mat black_image_mat = cv::Mat::zeros(image_size, CV_8UC3);
     SetImage(black_image_mat);
   }
@@ -73,9 +76,10 @@
 
   Eigen::Affine3d H_world_viewpoint_;  // Where to view the world from
   cv::Mat image_;                      // Image to draw on
-  cv::Mat camera_mat_;   // Virtual camera intrinsics (defines fov, center)
-  cv::Mat dist_coeffs_;  // Distortion coefficients, if desired (only used in
-                         // DrawFrameAxes
+  cv::Mat camera_mat_;     // Virtual camera intrinsics (defines fov, center)
+  cv::Mat dist_coeffs_;    // Distortion coefficients, if desired (only used in
+                           // DrawFrameAxes
+  cv::Size default_size_;  // Default image size
 };
 }  // namespace vision
 }  // namespace frc971