tests/concave.py

changeset 12
eb74680a5e43
child 13
12d4ddc4bfd8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/concave.py	Fri Jan 19 13:41:23 2018 +0200
@@ -0,0 +1,22 @@
+from math import degrees, pi as π
+from testsuite import warning
+from geometry import *
+
+def sign_consistency(container):
+    # Returns whether all elements in container have the same sign
+    return min(container) * max(container) >= 0
+
+def transform_to_xy(geometry):
+    a, b, c = geometry.vertices[:3]
+    
+
+def concave_test(model):
+    for quadrilateral in model:
+        print([cross_product(v2 - v1, v3 - v1) for v1, v2, v3 in pairs(quadrilateral.geometry.vertices, count = 3)])
+        z_scores = [
+            cross_product(v2 - v1, v3 - v1).z
+            for v1, v2, v3 in pairs(quadrilateral.geometry.vertices, count = 3)
+        ]
+        print(z_scores)
+        if not sign_consistency(z_scores):
+            yield warning(quadrilateral, 'Concave quadrilateral')
\ No newline at end of file

mercurial