tests/concave.py

Fri, 19 Jan 2018 13:41:23 +0200

author
Santeri Piippo
date
Fri, 19 Jan 2018 13:41:23 +0200
changeset 12
eb74680a5e43
child 13
12d4ddc4bfd8
permissions
-rw-r--r--

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')

mercurial