Beispiel #1
0
 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)
Beispiel #2
0
 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)))
Beispiel #3
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)))
Beispiel #4
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)))
Beispiel #5
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)))
Beispiel #6
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"