#define MSP_GL_CAMERA_H_
#include <msp/datafile/objectloader.h>
-#include "camera_backend.h"
#include "placeable.h"
#include "programdata.h"
directions. Setting the up direction to the opposite of gravity direction is
an easy way to keep the camera upright.
*/
-class Camera: public CameraBackend, public Placeable
+class Camera: public Placeable
{
public:
class Loader: public DataFile::ObjectLoader<Camera>
Matrix view_matrix;
Matrix proj_matrix;
ProgramData shdata;
+ Vector4 frustum_planes[6];
public:
Camera();
/** Returns a ProgramData object containing the camera matrices. */
const ProgramData &get_shader_data() const { return shdata; }
+ bool is_in_frustum(const Renderable &) const;
+
private:
void update_projection_matrix();
void update_object_matrix();
+ void update_frustum_planes();
public:
void set_debug_name(const std::string &);