Put everything camera related in Camera class.

And now it uses a type variable to determine the behavior of the camera.