From 75b2a69bbddac9a93e9222a04d13b309c6308c32 Mon Sep 17 00:00:00 2001
From: bobarna <barnabas.borcsok@gmail.com>
Date: Sat, 4 Apr 2020 16:58:50 +0200
Subject: [PATCH] asd

---
 sirius.cpp | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/sirius.cpp b/sirius.cpp
index 9ea5f62..7e4da95 100644
--- a/sirius.cpp
+++ b/sirius.cpp
@@ -206,10 +206,15 @@ inline float crossv2(vec2 a, vec2 b) {
   return a.x * b.y - a.y * b.x;
 }
 
+inline bool onDifferentSides(vec2 p1, vec2 p2, vec2 q1, vec2 q2) {
+  vec2 v = p2-p1;
+  vec2 r = p1;
+  return lengthv2(crossv2(v, p1 - r) * crossv2(v, p2 - r)) < 0;
+}
+
 inline bool intersectEachOther(vec2 p1, vec2 p2, vec2 q1, vec2 q2) {
   return
-    lengthv2(crossv2(q1 - q2, p1 - q1)) * lengthv2(crossv2(q1 - q2, p2 - q1)) < 0 &&
-    lengthv2(crossv2(q1 - q2, p1 - q1)) * lengthv2(crossv2(q1 - q2, p2 - q1)) < 0;
+    onDifferentSides(p1, p2, q1, q2) && onDifferentSides(q1, q2, p1, p2);
 }
 
 class Triangulated : public Drawable {
@@ -232,7 +237,6 @@ public:
 
       //check if current potential diagonal intersects any edges
       // skipping edges that share a vertex with it
-
       for (auto currEdgeStart = getPreviousVertex(getPreviousVertex(currVertex));
            currEdgeStart != getNextVertex(getNextVertex(currVertex)); currEdgeStart = getPreviousVertex(currEdgeStart))
         if (intersectEachOther(vec2(currEdgeStart->x, currEdgeStart->y),
@@ -276,6 +280,7 @@ public:
   void draw() override {
     init();
     glBindVertexArray(vao); // Draw call
+    setColor(vec3(0,1,0));
     glDrawArrays(GL_TRIANGLES, 0, vertices.size());
   }
 };
@@ -392,6 +397,13 @@ SiriusTriangleManager siriusTriangleManager = SiriusTriangleManager();
 void onInitialization() {
   glViewport(0, 0, windowWidth, windowHeight);
 
+  printf("%d", intersectEachOther(
+      vec2(0, 0),
+      vec2(100,0),
+      vec2(2, 2),
+      vec2(2, -4)
+    ));
+
   baseCircle.init();
   siriusTriangleManager.addPoint(vec2(-0.6, 0.4));
   siriusTriangleManager.addPoint(vec2(-0.8, -0.2));
-- 
GitLab