Rör på kameran!!! :D

This commit is contained in:
ViktorLjung
2014-03-10 00:48:48 +01:00
parent 622533c9b9
commit 928c6be1fe
5 changed files with 36 additions and 6 deletions
+10
View File
@@ -38,6 +38,15 @@ public:
glm::mat4 ViewMatrix() const { return m_ViewMatrix; } glm::mat4 ViewMatrix() const { return m_ViewMatrix; }
void ViewMatrix(glm::mat4 val) { m_ViewMatrix = val; } void ViewMatrix(glm::mat4 val) { m_ViewMatrix = val; }
float FOV() const { return m_FOV; }
void FOV(float val) { m_FOV = val; }
float NearClip() const { return m_NearClip; }
void NearClip(float val) { m_NearClip = val; }
float FarClip() const { return m_FarClip; }
void FarClip(float val) { m_FarClip = val; }
private: private:
void UpdateProjectionMatrix(); void UpdateProjectionMatrix();
void UpdateViewMatrix(); void UpdateViewMatrix();
@@ -47,6 +56,7 @@ private:
float m_NearClip; float m_NearClip;
float m_FarClip; float m_FarClip;
glm::vec3 m_Position; glm::vec3 m_Position;
glm::quat m_Orientation; glm::quat m_Orientation;
//float m_Pitch; //float m_Pitch;
+3 -3
View File
@@ -8,9 +8,9 @@ namespace Components
struct Camera : Component struct Camera : Component
{ {
int FOV; float FOV;
int NearClip; float NearClip;
int FarClip; float FarClip;
}; };
} }
+18 -3
View File
@@ -60,11 +60,26 @@ void GameWorld::Initialize()
//AddSystem("SoundSystem"); //AddSystem("SoundSystem");
AddSystem("RenderSystem"); AddSystem("RenderSystem");
EntityID ent = CreateEntity(); std::shared_ptr<Components::Transform> transform;
auto transform = AddComponent<Components::Transform>(ent, "Transform"); std::shared_ptr<Components::Model> model;
std::shared_ptr<Components::Camera> camera;
EntityID ent;
ent = CreateEntity();
transform = AddComponent<Components::Transform>(ent, "Transform");
transform->Position = glm::vec3(0.f, 0.f, 0.f); transform->Position = glm::vec3(0.f, 0.f, 0.f);
auto model = AddComponent<Components::Model>(ent, "Model"); model = AddComponent<Components::Model>(ent, "Model");
model->ModelFile = "ship.obj"; model->ModelFile = "ship.obj";
ent = CreateEntity();
SetProperty(ent, "Name", "Camera");
transform = AddComponent<Components::Transform>(ent, "Transform");
transform->Position = glm::vec3(0.f, 0.f, 10.f);
camera = AddComponent<Components::Camera>(ent, "Camera");
camera->FOV = 45.f;
camera->FarClip = 1000.f;
camera->NearClip = 0.01f;
} }
void GameWorld::RegisterSystems() void GameWorld::RegisterSystems()
+1
View File
@@ -42,6 +42,7 @@ void Renderer::Initialize()
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
// Create Camera // Create Camera
m_Camera = std::make_shared<Camera>(45.f, (float)WIDTH / HEIGHT, 0.01f, 1000.f); m_Camera = std::make_shared<Camera>(45.f, (float)WIDTH / HEIGHT, 0.01f, 1000.f);
m_Camera->Position(glm::vec3(0.0f, 0.0f, 2.f)); m_Camera->Position(glm::vec3(0.0f, 0.0f, 2.f));
+4
View File
@@ -30,6 +30,10 @@ void Systems::RenderSystem::UpdateEntity( double dt, EntityID entity, EntityID p
{ {
m_Renderer->GetCamera()->Position(transformComponent->Position); m_Renderer->GetCamera()->Position(transformComponent->Position);
m_Renderer->GetCamera()->Orientation(transformComponent->Orientation); m_Renderer->GetCamera()->Orientation(transformComponent->Orientation);
m_Renderer->GetCamera()->FOV(cameraComponent->FOV);
m_Renderer->GetCamera()->NearClip(cameraComponent->NearClip);
m_Renderer->GetCamera()->FarClip(cameraComponent->FarClip);
} }