Fri, 19 Jan 2018 13:41:23 +0200
commit work done on test suites...
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')