Beispiel #1
0
class TestCameraRenderer(unittest.TestCase):

    def setUp(self):
        self.num_timestamps = 180
        self.tk_renderer = TKRenderer(canvas_width=1200, canvas_height=800, scale=2)

        self.camera = Camera()
        self.camera.set_actual_position((200,200)).\
                    set_gps_max_error(10).\
                    set_num_timestamps(self.num_timestamps).\
                    set_gps_position((200, 210))
        for timestamp in range(self.num_timestamps):
            self.camera.set_state_of_pan_motor_angle_at_timestamp(timestamp*2, timestamp)

        self.camera_renderer = CameraRenderer(self.camera)
        self.camera_renderer.render()
        self.animator = Animator(
            [self.camera_renderer],
            num_timestamps=self.num_timestamps,
            seconds_per_timestamp=0.05
        )
        self.tk_renderer.set_mouse_click_callback(self.animator.play)
        return self

    def visualize(self):
        self.tk_renderer.start_tk_event_loop()
Beispiel #2
0
class TestViewableObjectRenderer(unittest.TestCase):
    def setUp(self):
        self.tk_renderer = TKRenderer(scale=2)
        self.stationary_object = StationaryObject((100, 100))
        self.viewable_objects = [self.stationary_object]
        self.viewable_object_renderer = ViewableObjectsRenderer(
            viewable_objects=self.viewable_objects, )
        return self

    def visualize(self):
        self.viewable_object_renderer.render(0)
        self.tk_renderer.start_tk_event_loop()
Beispiel #3
0
class TestBoundaryRenderer(unittest.TestCase):
    def setUp(self):
        self.canvas_width = 2000
        self.canvas_height = 1000
        self.bounary_points = [(100, 100), (300, 100), (300, 200), (100, 200)]
        self.tk_renderer = TKRenderer(scale=2,
                                      canvas_width=self.canvas_width,
                                      canvas_height=self.canvas_height)
        self.boundary = Boundary(self.bounary_points)
        return self

    def test_params_are_passed_to_tk_renderer_singleton(self):
        self.assertEqual(self.tk_renderer.canvas_width, self.canvas_width)
        self.assertEqual(self.tk_renderer.canvas_height, self.canvas_height)

    def visualize(self):
        boundary_renderer = BoundaryRenderer(self.boundary)
        boundary_renderer.render()
        self.tk_renderer.start_tk_event_loop()
Beispiel #4
0
class TestMovingObjectRenderer(unittest.TestCase):
    def setUp(self):
        self.num_timestamps = 1000
        self.tk_renderer = TKRenderer(canvas_width=800, canvas_height=700)
        self.boundary = Boundary([(100, 100), (300, 100), (300, 200),
                                  (100, 200)])
        self.boundary_renderer = BoundaryRenderer(self.boundary)
        self.random_moving_objects = [
            RandomlyMovingObject(boundary=self.boundary,
                                 num_timestamps=self.num_timestamps),
            RandomlyMovingObject(boundary=self.boundary,
                                 num_timestamps=self.num_timestamps)
        ]
        self.viewable_objects_renderer = ViewableObjectsRenderer(
            viewable_objects=self.random_moving_objects)
        self.animator = Animator(num_timestamps=self.num_timestamps,
                                 seconds_per_timestamp=0.2)
        self.animator.add_element_renderers(
            [self.viewable_objects_renderer, self.boundary_renderer])
        self.tk_renderer.set_mouse_click_callback(self.animator.play)
        return self

    def visualize(self):
        self.tk_renderer.start_tk_event_loop()