From 88ece5b450aae4567b29e0a1ff7401efa6cb8f70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20=C5=A0toura=C4=8D?= <525032@mail.muni.cz> Date: Thu, 18 May 2023 19:22:55 +0200 Subject: [PATCH] simulator using only scene, cleaned up constructor --- src/studio/include/studio/simulator.hpp | 3 --- src/studio/src/simulator.cpp | 32 +++++++++++-------------- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/src/studio/include/studio/simulator.hpp b/src/studio/include/studio/simulator.hpp index 6ee10e3..1bb0fda 100644 --- a/src/studio/include/studio/simulator.hpp +++ b/src/studio/include/studio/simulator.hpp @@ -64,9 +64,6 @@ private: std::vector<cam_control_ptr> cam_controls; /* SCENE */ - std::vector<object_ptr> objects; - std::vector<frame_ptr> obj_frames; - std::vector<node_ptr> scene; node_ptr selection; diff --git a/src/studio/src/simulator.cpp b/src/studio/src/simulator.cpp index 16bb09f..6c78bdc 100644 --- a/src/studio/src/simulator.cpp +++ b/src/studio/src/simulator.cpp @@ -116,17 +116,9 @@ Simulator::Simulator() "./data/shaders/lightshader.frag")}, {"basic", std::make_shared<Shader>("./data/shaders/basicshader.vert", "./data/shaders/basicshader.frag")}} - , cam_controls{std::make_shared<CameraController>()} - , objects{std::make_shared<Object>(lit_cube_vertices, lit_cube_indices, lit_cube_normals), - std::make_shared<Object>(lit_cube_vertices, lit_cube_indices, lit_cube_normals, glm::vec3(1.0f, 1.0f, 1.0f))} - , obj_frames{std::make_shared<Frame>(), - std::make_shared<Frame>(glm::vec3(1.2f, 2.0f, 2.0f ))} , obj_controls{std::make_shared<ObjectController>()} + , cam_controls{std::make_shared<CameraController>()} { - /* SET LIGHT CUBE SHADER AND SIZE */ - objects[1]->setShaderType("basic"); - obj_frames[1]->setScale(glm::vec3(0.1f, 0.1f, 0.1f)); - create_scene(); find_cameras(scene); find_lights(scene); @@ -225,11 +217,19 @@ void Simulator::find_cameras(const std::vector<node_ptr> &scene) void Simulator::create_scene() { - for (std::size_t i = 0; i < objects.size(); ++i) - { - scene.emplace_back(std::make_shared<Node>(obj_frames[i])); - scene[i]->addObject(objects[i]); - } + /* ADD DEFAULT CUBE */ + scene.emplace_back(std::make_shared<Node>(std::make_shared<Frame>(Frame{}))); + scene.back()->addObject(std::make_shared<Object>(lit_cube_vertices, lit_cube_indices, lit_cube_normals)); + + /* ADD LIGHT CUBE AND ITS LIGHT */ + scene.emplace_back(std::make_shared<Node>(std::make_shared<Frame>(Frame{glm::vec3(1.2f, 2.0f, 2.0f)}))); + scene.back()->addObject(std::make_shared<Object>(lit_cube_vertices, + lit_cube_indices, + lit_cube_normals, + glm::vec3(1.0f, 1.0f, 1.0f), + "basic")); + scene.back()->getFrame()->setScale(glm::vec3(0.1f, 0.1f, 0.1f)); + scene.back()->addObject(std::make_shared<Light>(glm::vec3(1.0f, 1.0f, 1.0f), scene.back()->getFrame())); /* ADD GRID */ scene.emplace_back(std::make_shared<Node>(std::make_shared<Frame>(glm::vec3(0, 0, 0)))); @@ -241,10 +241,6 @@ void Simulator::create_scene() grid->setDrawMode(GL_LINES); scene.back()->addObject(std::move(grid)); - /* ADD LIGHT */ - scene.emplace_back(std::make_shared<Node>(obj_frames[1])); - scene.back()->addObject(std::make_shared<Light>(glm::vec3(1.0f, 1.0f, 1.0f), scene.back()->getFrame())); - /* ADD CAMERA */ scene.emplace_back(std::make_shared<Node>(std::make_shared<Frame>(glm::vec3(0.0f, 1.0f, 6.0f)))); scene.back()->addObject(std::make_shared<Camera>(60.0f, scene.back()->getFrame())); -- GitLab