def test_basic(self): vector_plane = (1, 1, 1) ortho_plane = (2, 2) intersection = plane_intersection(vector_plane, ortho_plane) coeffs, const = intersection self.assertEqual(coeffs, (1, 1)) self.assertEqual(const, -2)
def test_diagonal_plane_drawing_steps_another_face_with_side(self): vector = (1, 0, 1) plane = (0, -1) i = plane_intersection(vector, plane) self.assertEqual(i, ((0, 1), 1)) cube = [(1, -1), (-1, 1)] net = [(1, 3), (0, 2)] l = transform(cube, net, i, True) self.assertEqual(l, ((0, 1), 2.0)) points = line_intersecting_square(l, net) self.assertEqual(points, ((1.0, 2.0), (0.0, 2.0)))
def test_diagonal_plane_drawing_steps_second_face(self): vector = (1, 0, 1) plane = (2, 1) i = plane_intersection(vector, plane) self.assertEqual(i, ((1, 0), -1)) cube = [(1, -1), (-1, 1)] net = [(0, 1), (1, 2)] l = transform(cube, net, i, False) self.assertEqual(l, ((0, 1), 2.0)) points = line_intersecting_square(l, net) self.assertEqual(points, ((1.0, 2.0), (0.0, 2.0)))
def test_diagonal_plane_drawing_steps(self): vector = (1, 0, 1) plane = (1, 1) i = plane_intersection(vector, plane) self.assertEqual(i, ((1, 1), 0)) cube = [(1, -1), (-1, 1)] net = [(1, 0), (2, 1)] l = transform(cube, net, i, False) self.is_almost_equal(l, ((1, -1), 1.0)) points = line_intersecting_square(l, net) self.is_almost_equal(points, ((1, 0.0), (2, 1.0)))
def test_plane_drawing_steps(self): vector = (1, 0, 0) plane = (1, 1) i = plane_intersection(vector, plane) self.assertEqual(i, ((1, 0), 0)) cube = [(1, -1), (-1, 1)] net = [(1, 0), (2, 1)] l = transform(cube, net, i, True) self.assertEqual(l, ((1, 0), 1.5)) points = line_intersecting_square(l, net) self.assertEqual(points, ((1.5, 0.0), (1.5, 1.0)))
def test_parallel(self): vector_plane = (1, 0, 0) ortho_plane = (0, 1) intersection = plane_intersection(vector_plane, ortho_plane) self.assertIsNone(intersection)
faro = Yomiread.read_faro_ios_splint_measurement(faro_measurement) print('faro is', faro) print('plane is', faro[3]) print('plane label is', faro[4]) p1_faro = np.asarray(faro[1][0][0:3]) p2_faro = np.asarray(faro[1][1][0:3]) p3_faro = np.asarray(faro[1][2][0:3]) plane1 = geometry.plane3D(faro[3][0][0:3], faro[3][0][3:6]) plane2 = geometry.plane3D(faro[3][1][0:3], faro[3][1][3:6]) plane3 = geometry.plane3D(faro[3][2][0:3], faro[3][2][3:6]) plane4 = geometry.plane3D(faro[3][3][0:3], faro[3][3][3:6]) plane5 = geometry.plane3D(faro[3][4][0:3], faro[3][4][3:6]) t1_faro = geometry.plane_intersection(plane1, plane2, plane3) t2_faro = geometry.plane_intersection(plane2, plane3, plane4) t3_faro = geometry.plane_intersection(plane3, plane4, plane5) frame_faro = coordinates.generate_frame(p1_faro, p2_faro, p3_faro) t1_faro_real = transpose_pc(t1_faro, frame_faro) t2_faro_real = transpose_pc(t2_faro, frame_faro) t3_faro_real = transpose_pc(t3_faro, frame_faro) target_frame_faro = coordinates.generate_frame(t1_faro_real, t2_faro_real, t3_faro_real) z_faro = np.linalg.inv(target_frame_faro)[0:3, 2] # ios measurement ios_measurement = "G:\\My Drive\\Project\\IntraOral Scanner Registration\\TRE_verification\\result\\" target_file = "target_points.txt" frame_file = "frame_points.txt"