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)
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()
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()
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()
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()
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)
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]
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]
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()