tests/quadrilaterals.py

changeset 45
7a7c237a1717
parent 44
464f5e8d57ab
equal deleted inserted replaced
44:464f5e8d57ab 45:7a7c237a1717
56 if hasattr(element, 'geometry') and len(element.geometry.vertices) >= 3: 56 if hasattr(element, 'geometry') and len(element.geometry.vertices) >= 3:
57 for a, b, c in pairs(element.geometry.vertices, count = 3): 57 for a, b, c in pairs(element.geometry.vertices, count = 3):
58 if cross_product(b - a, c - a).length() < 1e-5: 58 if cross_product(b - a, c - a).length() < 1e-5:
59 yield error(element, 'collinearity-error') 59 yield error(element, 'collinearity-error')
60 60
61 def hair_score(smallest_angle):
62 from math import log10
63 return max(0, -log10(smallest_angle))
64
65 def hair_test(model): 61 def hair_test(model):
66 for element in model.body: 62 for element in model.body:
67 if hasattr(element, 'geometry') and len(element.geometry.vertices) >= 3: 63 if hasattr(element, 'geometry') and len(element.geometry.vertices) >= 3:
68 smallest_angle = element.geometry.smallest_angle 64 smallest_angle = element.geometry.smallest_angle
69 if smallest_angle < radians(0.5): 65 if smallest_angle < radians(0.5):

mercurial