#include <msp/datafile/objectloader.h>
#include "placeable.h"
+#include "programdata.h"
namespace Msp {
namespace GL {
};
private:
- Geometry::Angle<float> fov;
- float height;
- float aspect;
+ Geometry::Angle<float> fov = Geometry::Angle<float>::from_turns(0.125f);
+ float height = 0.0f;
+ float aspect = 4.0f/3.0f;
// Some compilers have "near" and "far" keywords
- float clip_near;
- float clip_far;
- float frustum_x;
- float frustum_y;
+ float clip_near = 0.1f;
+ float clip_far = 10.0f;
+ float frustum_x = 0.0f;
+ float frustum_y = 0.0f;
Geometry::Angle<float> rotate;
- Vector3 position;
- Vector3 look_dir;
- Vector3 up_dir;
+ Vector3 position = { 0.0f, 0.0f, 0.0f };
+ Vector3 look_dir = { 0.0f, 0.0f, -1.0f };
+ Vector3 up_dir = { 0.0f, 1.0f, 0.0f };
Matrix view_matrix;
Matrix proj_matrix;
+ ProgramData shdata;
public:
Camera();
Vector4 unproject(const Vector4 &) const;
Vector3 unproject(const Vector3 &) const;
+ const ProgramData &get_shader_data() const { return shdata; }
+
private:
void update_projection_matrix();
void update_object_matrix();
+
+public:
+ void set_debug_name(const std::string &);
};
} // namespace GL