Skip to content
Snippets Groups Projects
Commit 36719758 authored by Brandon Lai-Cheong's avatar Brandon Lai-Cheong
Browse files

filters out degenerate triangle creation

parent 3482cca1
No related branches found
No related tags found
No related merge requests found
#include <convex_triangulation.h> #include <convex_triangulation.h>
#include <orientation.h>
// filters out degenerate triangles
void appendResults(std::vector<Triangle> &results, const Triangle &t) {
if (orientation(t) == Collinear) {
return;
}
results.push_back(t);
}
std::vector<Triangle> convexTriangulation(const std::vector<Point> &points, int triangleId) { std::vector<Triangle> convexTriangulation(const std::vector<Point> &points, int triangleId) {
const int size = points.size(); const int size = points.size();
...@@ -7,14 +16,19 @@ std::vector<Triangle> convexTriangulation(const std::vector<Point> &points, int ...@@ -7,14 +16,19 @@ std::vector<Triangle> convexTriangulation(const std::vector<Point> &points, int
} }
const Triangle t1 = Triangle(points[0], points[1], points[2], triangleId); const Triangle t1 = Triangle(points[0], points[1], points[2], triangleId);
std::vector<Triangle> results = {t1}; std::vector<Triangle> results;
appendResults(results, t1);
Point first = points[0]; Point first = points[0];
for (int i = size - 1; i >= 3; i--) { for (int i = size - 1; i >= 3; i--) {
results.push_back(Triangle(first, points[2], points[i], triangleId)); const Triangle t = Triangle(first, points[2], points[i], triangleId);
appendResults(results, t);
first = points[i]; first = points[i];
} }
return results; return results;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment