def testfilter(triangle): orifice_center = Ray.up.endpoint.coordinates orifice_diameter = self.orifice_diameter vertex_a = triangle.a.endpoint.coordinates vertex_b = triangle.b.endpoint.coordinates vertex_c = triangle.c.endpoint.coordinates a_length = vector_distance(vertex_a, orifice_center) b_length = vector_distance(vertex_b, orifice_center) c_length = vector_distance(vertex_c, orifice_center) farthest_distance = max(a_length, b_length, c_length) closest_distance = min(a_length, b_length, c_length) if farthest_distance <= orifice_diameter: return TriangleClassification.Accept elif triangle.diameter < 0.01 or closest_distance >= orifice_diameter: return TriangleClassification.Reject else: return TriangleClassification.Refine
def then_wavefront_points_up(self): actual_direction = self.wavefront.central_direction.normalized() expected_direction = Direction.up disparity = vector_distance(actual_direction.xyz, expected_direction.xyz) self.assertLess(disparity, 0.00000001)
def test_vector_distance(self): expect_square = 5.0 expect = sqrt(expect_square) self.assertAlmostEqual(expect, vector_distance((11.0, 22.0), (10.0, 20.0))) self.assertAlmostEqual(expect_square, vector_distance_squared((11.0, 22.0), (10.0, 20.0)))