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