diff --git a/src/studio/include/studio/simulator.hpp b/src/studio/include/studio/simulator.hpp index 6ee10e36b5aadfc2a04628571cd0435642f52fba..1bb0fdae35a5db8aaa6731b88d5f8c5473a22149 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 16bb09fd991cfdaac3011dbc52f74c98d39694c0..6c78bdc5ce03efff801a8046f175548e8230196f 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()));