From af282f4d43e94191877e5807bba95579ce8684bd Mon Sep 17 00:00:00 2001
From: Brandon Lai-Cheong <brandon.lai-cheong@uwaterloo.ca>
Date: Fri, 25 Oct 2024 09:45:53 -0400
Subject: [PATCH] refactoring

---
 CMakeLists.txt                        | 2 ++
 src/shapes/triangle.cpp               | 2 +-
 src/shapes/triangle.h                 | 4 ++--
 src/triangulation/triangulation.cpp   | 2 +-
 src/triangulation/triangulation.h     | 2 +-
 src/union.cpp                         | 5 +++--
 src/union.h                           | 5 +++++
 tests/union_tests.cpp                 | 4 ++++
 tests/unit_tests/contourize_tests.cpp | 6 +++---
 9 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 373c5f2..01ff39d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,7 @@ project(intersection)
 add_executable(
 	tests
 	tests/unit_tests/simple_triangle_tests.cpp
+	tests/unit_tests/contourize_tests.cpp
 	src/intersections/intersections.cpp
 	src/shapes/triangle.cpp
 	src/shapes/triangle_edges.cpp
@@ -29,6 +30,7 @@ add_executable(
 	src/orientation/orientation.cpp
 	src/shapes/point.cpp
 	src/union.cpp
+	src/triangulation/triangulation.cpp
 )
 
 include_directories(src)
diff --git a/src/shapes/triangle.cpp b/src/shapes/triangle.cpp
index 03fb6e2..10229a5 100644
--- a/src/shapes/triangle.cpp
+++ b/src/shapes/triangle.cpp
@@ -2,7 +2,7 @@
 #include "triangle_edges.h"
 #include "edge.h"
 
-bool Triangle::neighbours(Triangle &other) {
+bool Triangle::neighbours(const Triangle &other) const {
     return false;
 }
 
diff --git a/src/shapes/triangle.h b/src/shapes/triangle.h
index cdc477c..32b2315 100644
--- a/src/shapes/triangle.h
+++ b/src/shapes/triangle.h
@@ -5,7 +5,7 @@
 struct Triangle {
 	Point points[3];
 	int depth;
-	bool neighbours(Triangle &other);
-	Triangle(Point p1, Point p2, Point p3, int depth);
+    bool neighbours(const Triangle &other) const;
+    Triangle(Point p1, Point p2, Point p3, int depth);
     bool pointInTriangle(const Point &p) const;
 };
diff --git a/src/triangulation/triangulation.cpp b/src/triangulation/triangulation.cpp
index b924ef8..bbd45b7 100644
--- a/src/triangulation/triangulation.cpp
+++ b/src/triangulation/triangulation.cpp
@@ -1,5 +1,5 @@
 #include "triangulation.h"
 
-std::vector<Triangle> triangulate(std::vector<Point> &points) {
+std::vector<Triangle> monotoneTriangulate(std::vector<Point> &points) {
     
 }
\ No newline at end of file
diff --git a/src/triangulation/triangulation.h b/src/triangulation/triangulation.h
index efbed9f..30317cb 100644
--- a/src/triangulation/triangulation.h
+++ b/src/triangulation/triangulation.h
@@ -4,4 +4,4 @@
 struct Triangle;
 struct Point;
 
-std::vector<Triangle> triangulate(std::vector<Point> &points);
\ No newline at end of file
+std::vector<Triangle> monotoneTriangulate(std::vector<Point> &points);
\ No newline at end of file
diff --git a/src/union.cpp b/src/union.cpp
index 46a3939..09d7fb6 100644
--- a/src/union.cpp
+++ b/src/union.cpp
@@ -4,8 +4,9 @@
 #include <intersections/intersections.h>
 #include <contourize/contourize.h>
 #include <triangulation/triangulation.h>
+#include <union.h>
 
-std::vector<Triangle> unionize(Triangle t1, Triangle t2) {
+std::vector<Triangle> unionize(const Triangle &t1, const Triangle &t2) {
 
 	// if neighbours, do nothing
 	if (t1.neighbours(t2)) {
@@ -22,7 +23,7 @@ std::vector<Triangle> unionize(Triangle t1, Triangle t2) {
 
 	std::vector<Point> contour = contourize(t1, t2, newIntersections);
 
-	return triangulate(contour);
+	return monotoneTriangulate(contour);
 }
 
 void unionize(Triangle soup) {
diff --git a/src/union.h b/src/union.h
index e69de29..c6bca29 100644
--- a/src/union.h
+++ b/src/union.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#include <vector>
+
+std::vector<Triangle> unionize(const Triangle &t1, const Triangle &t2);
\ No newline at end of file
diff --git a/tests/union_tests.cpp b/tests/union_tests.cpp
index 79dad85..b0b131b 100644
--- a/tests/union_tests.cpp
+++ b/tests/union_tests.cpp
@@ -1,2 +1,6 @@
 #include "gtest/gtest.h"
+#include <union.h>
 
+TEST (UnionTrivialTests, NotTouching) {
+
+}
\ No newline at end of file
diff --git a/tests/unit_tests/contourize_tests.cpp b/tests/unit_tests/contourize_tests.cpp
index 041a98d..27e318d 100644
--- a/tests/unit_tests/contourize_tests.cpp
+++ b/tests/unit_tests/contourize_tests.cpp
@@ -3,13 +3,13 @@
 #include <intersections/intersections.h>
 
 TEST(ContourizeTest, TwoTriangles) {
-    auto t1 = Triangle(Point(0,0), Point(2,3), Point(5,0), 0);
-    auto t2 = Triangle(Point(3,1), Point(4,3), Point(6,1), 0);
+    auto t1 = Triangle(Point(0,0), Point(5,0),  Point(2,3), 0);
+    auto t2 = Triangle(Point(3,1), Point(6,1), Point(4,3), 0);
 
     auto newIntersections = intersections(t1, t2);
 
     auto contour = contourize(t1, t2, newIntersections);
 
-    //EXPECT_EQ();
+    EXPECT_TRUE(contour.size() > 0);
 
 }
\ No newline at end of file
-- 
GitLab