def clamp_edges(edge_list, camera):
    clamped_edges = []
    for edge in edge_list:
        edge = limit_edge_to_screen(edge, camera.resolution)
        if edge != None:
            clamped_edges.append(edge)

    return clamped_edges
Exemplo n.º 2
0
    def test_invisible_edge_is_none(self):
        from engine.Mesh import Edge
        from engine.render.world_screen_space_converter import limit_edge_to_screen

        edge = Edge((-50.0, 20.0), (20.0, -30.0))

        limited = limit_edge_to_screen(edge, (100, 100))

        self.assertIsNone(limited)
Exemplo n.º 3
0
    def test_fully_visible(self):
        from engine.Mesh import Edge
        from engine.render.world_screen_space_converter import limit_edge_to_screen

        edge = Edge((5.0, 50.0), (20.0, 20.0))

        limited = limit_edge_to_screen(edge, (100, 100))

        self.assertEqual(limited.A, (5.0, 50.0))
        self.assertEqual(limited.B, (20.0, 20.0))
Exemplo n.º 4
0
    def test_bottom_edge_inverted(self):
        from engine.Mesh import Edge
        from engine.render.world_screen_space_converter import limit_edge_to_screen

        edge = Edge((60, 80), (20, 120))

        limited = limit_edge_to_screen(edge, (100, 100))

        self.assertEqual(limited.A, (60.0, 80.0))
        self.assertEqual(limited.B, (40.0, 100.0))
Exemplo n.º 5
0
    def test_right_edge_inverted(self):
        from engine.Mesh import Edge
        from engine.render.world_screen_space_converter import limit_edge_to_screen

        edge = Edge((120, 60), (80, 20))

        limited = limit_edge_to_screen(edge, (100, 100))

        self.assertEqual(limited.A, (100.0, 40.0))
        self.assertEqual(limited.B, (80.0, 20.0))
Exemplo n.º 6
0
    def test_edge_across_screen(self):
        from engine.Mesh import Edge
        from engine.render.world_screen_space_converter import limit_edge_to_screen

        edge = Edge((-50.0, 20.0), (150.0, 80.0))

        limited = limit_edge_to_screen(edge, (100, 100))

        self.assertEqual(limited.A, (0.0, 35.0))
        self.assertEqual(limited.B, (100.0, 65.0))