2018-03-31 15:11:35 -07:00
|
|
|
from __future__ import absolute_import
|
|
|
|
|
2018-05-16 21:17:14 +02:00
|
|
|
from constants import *
|
|
|
|
|
2018-03-31 15:11:35 -07:00
|
|
|
from scene.scene import Scene
|
2018-03-31 15:20:30 -07:00
|
|
|
from camera.moving_camera import MovingCamera
|
2018-05-16 21:17:14 +02:00
|
|
|
from mobject.frame import ScreenRectangle
|
2018-02-23 11:05:57 -08:00
|
|
|
|
2018-04-06 13:58:59 -07:00
|
|
|
|
2018-02-23 11:05:57 -08:00
|
|
|
class MovingCameraScene(Scene):
|
|
|
|
def setup(self):
|
2018-05-16 21:17:14 +02:00
|
|
|
self.camera_frame = ScreenRectangle(height=FRAME_HEIGHT)
|
|
|
|
self.camera_frame.set_stroke(width=0)
|
|
|
|
self.camera = MovingCamera(
|
|
|
|
self.camera_frame, **self.camera_config
|
|
|
|
)
|
2018-02-23 11:05:57 -08:00
|
|
|
return self
|
|
|
|
|
|
|
|
def get_moving_mobjects(self, *animations):
|
2018-05-16 21:17:14 +02:00
|
|
|
# TODO: Code repetition from ZoomedScene
|
2018-02-23 11:05:57 -08:00
|
|
|
moving_mobjects = Scene.get_moving_mobjects(self, *animations)
|
2018-05-16 21:17:14 +02:00
|
|
|
if self.camera_frame in moving_mobjects:
|
|
|
|
# When the camera is moving, so is everything,
|
|
|
|
return self.mobjects
|
|
|
|
else:
|
|
|
|
return moving_mobjects
|