Exemplo n.º 1
0
 def test_pyganja_facet(self):
     from clifford.tools.g3c import random_conformal_point
     from pyganja import GanjaScene
     gs = GanjaScene()
     point_list = [random_conformal_point() for i in range(3)]
     gs.add_objects(point_list)
     gs.add_facet(point_list)
     point_list = [random_conformal_point() for i in range(3)]
     gs.add_objects(point_list)
     gs.add_facet(point_list, color=int('AAFF0000', 16))
     facet_list = [[random_conformal_point() for i in range(3)]
                   for i in range(10)]
     gs.add_facets(facet_list, color=int('AA0000FF', 16))
     draw(gs, scale=0.05)
Exemplo n.º 2
0
    def test_convex_hull_conformal_flats(self, rng):  # noqa: F811
        from clifford.tools.g3c import random_conformal_point
        from clifford.tools.point_processing import GAConvexHull

        point_list = [random_conformal_point(rng=rng) for i in range(100)]
        hull = GAConvexHull(point_list, hull_dims=3)
        flats = hull.conformal_flats()
Exemplo n.º 3
0
    def test_convex_hull_conformal_flats(self):
        from clifford.tools.g3c import random_conformal_point
        from clifford.tools.point_processing import GAConvexHull

        point_list = [random_conformal_point() for i in range(100)]
        hull = GAConvexHull(point_list, hull_dims=3)
        flats = hull.conformal_flats()
Exemplo n.º 4
0
 def test_GADelaunay_facets(self):
     from clifford.g3c import up, blades, layout
     e1 = blades['e1']
     e2 = blades['e2']
     einf = layout.einf
     from clifford.tools.g3c import random_conformal_point, project_points_to_plane
     from clifford.tools.point_processing import GADelaunay
     point_list = [random_conformal_point() for i in range(100)]
     point_list_flat = project_points_to_plane(point_list, (up(0)^up(e1)^up(e2)^einf).normal())
     hull = GADelaunay(point_list_flat, hull_dims=2)
     facets = hull.conformal_facets()
Exemplo n.º 5
0
 def test_GADelaunay_facets(self, rng):  # noqa: F811
     from clifford.g3c import up, blades, layout
     e1 = blades['e1']
     e2 = blades['e2']
     einf = layout.einf
     from clifford.tools.g3c import random_conformal_point, project_points_to_plane
     from clifford.tools.point_processing import GADelaunay
     point_list = [random_conformal_point(rng=rng) for i in range(100)]
     point_list_flat = project_points_to_plane(
         point_list, (up(0) ^ up(e1) ^ up(e2) ^ einf).normal())
     hull = GADelaunay(point_list_flat, hull_dims=2)
     facets = hull.conformal_facets()
Exemplo n.º 6
0
 def test_rotation_matrix_conversions(self):
     """
     Bidirectional rotor - rotation matrix test. This needs work but is a reasonable start
     """
     from clifford.g3c import layout, up, down
     from clifford.tools.g3 import rotation_matrix_to_rotor, rotor_to_rotation_matrix
     from clifford.tools.g3c import random_rotation_rotor, random_conformal_point, apply_rotor
     for i in range(1000):
         rotor = random_rotation_rotor()
         # Check that we can map up and back
         Rmat = rotor_to_rotation_matrix(rotor)
         rotor_return = rotation_matrix_to_rotor(Rmat)
         testing.assert_almost_equal(rotor.value, rotor_return.value)
         # Check that the rotations do the same thing
         A = random_conformal_point()
         B = down(apply_rotor(A, rotor)).value[1:4]
         C = Rmat @ down(A).value[1:4]
         np.testing.assert_almost_equal(B, C)
Exemplo n.º 7
0
 def test_rotation_matrix_conversions(self):
     """
     Bidirectional rotor - rotation matrix test. This needs work but is a reasonable start
     """
     from clifford.g3c import layout, up, down
     from clifford.tools.g3 import rotation_matrix_to_rotor, rotor_to_rotation_matrix
     from clifford.tools.g3c import random_rotation_rotor, random_conformal_point, apply_rotor
     for i in range(1000):
         rotor = random_rotation_rotor()
         # Check that we can map up and back
         Rmat = rotor_to_rotation_matrix(rotor)
         rotor_return = rotation_matrix_to_rotor(Rmat)
         testing.assert_almost_equal(rotor.value, rotor_return.value)
         # Check that the rotations do the same thing
         A = random_conformal_point()
         B = down(apply_rotor(A, rotor)).value[1:4]
         C = Rmat @ down(A).value[1:4]
         np.testing.assert_almost_equal(B, C)
Exemplo n.º 8
0
 def test_convex_hull_vertices(self, rng):  # noqa: F811
     from clifford.tools.g3c import random_conformal_point
     from clifford.tools.point_processing import GAConvexHull
     point_list = [random_conformal_point(rng=rng) for i in range(100)]
     hull = GAConvexHull(point_list, hull_dims=3)
     conf_vertices = [hull.GApoints[i] for i in hull.vertices]
Exemplo n.º 9
0
 def test_convex_hull_vertices(self):
     from clifford.tools.g3c import random_conformal_point
     from clifford.tools.point_processing import GAConvexHull
     point_list = [random_conformal_point() for i in range(100)]
     hull = GAConvexHull(point_list, hull_dims=3)
     conf_vertices = [hull.GApoints[i] for i in hull.vertices]
Exemplo n.º 10
0
 def test_convex_hull_facets(self):
     from clifford.tools.g3c import random_conformal_point
     from clifford.tools.point_processing import GAConvexHull
     point_list = [random_conformal_point() for i in range(100)]
     hull = GAConvexHull(point_list, hull_dims=3)
     facets = hull.conformal_facets()