diff --git a/src/engine/Camera.cpp b/src/engine/Camera.cpp index 50e4e2a..eb42c70 100644 --- a/src/engine/Camera.cpp +++ b/src/engine/Camera.cpp @@ -4,8 +4,6 @@ #include "Camera.hpp" -#include "GameObject.hpp" - #define GLM_ENABLE_EXPERIMENTAL #include #include diff --git a/src/engine/FrameInfo.hpp b/src/engine/FrameInfo.hpp index 6db2aae..e042e49 100644 --- a/src/engine/FrameInfo.hpp +++ b/src/engine/FrameInfo.hpp @@ -11,8 +11,6 @@ //clang-format: on #include "Camera.hpp" -#include "GameObject.hpp" -#include "PushConstant.hpp" #include "engine/descriptors/Descriptor.hpp" #include "engine/descriptors/DescriptorSet.hpp" #include "engine/descriptors/DescriptorSetLayout.hpp" diff --git a/src/engine/KeyboardMovementController.cpp b/src/engine/KeyboardMovementController.cpp index bfc33de..3bb111c 100644 --- a/src/engine/KeyboardMovementController.cpp +++ b/src/engine/KeyboardMovementController.cpp @@ -9,6 +9,7 @@ #include #include "engine/primitives/vectors/Vector.hpp" +#include "gameobjects/GameObject.hpp" namespace fgl::engine { diff --git a/src/engine/KeyboardMovementController.hpp b/src/engine/KeyboardMovementController.hpp index 0e48843..92f8e96 100644 --- a/src/engine/KeyboardMovementController.hpp +++ b/src/engine/KeyboardMovementController.hpp @@ -4,11 +4,11 @@ #pragma once -#include "GameObject.hpp" #include "Window.hpp" namespace fgl::engine { + class GameObject; class KeyboardMovementController { diff --git a/src/engine/GameObject.cpp b/src/engine/gameobjects/GameObject.cpp similarity index 96% rename from src/engine/GameObject.cpp rename to src/engine/gameobjects/GameObject.cpp index 5779fa5..fae72e7 100644 --- a/src/engine/GameObject.cpp +++ b/src/engine/gameobjects/GameObject.cpp @@ -14,7 +14,7 @@ namespace fgl::engine GameObject GameObject::createGameObject() { static GameObjectID current_id { 0 }; - return { current_id++ }; + return GameObject( current_id++ ); } void GameObject::drawImGui() diff --git a/src/engine/GameObject.hpp b/src/engine/gameobjects/GameObject.hpp similarity index 94% rename from src/engine/GameObject.hpp rename to src/engine/gameobjects/GameObject.hpp index 7f26189..d7e5317 100644 --- a/src/engine/GameObject.hpp +++ b/src/engine/gameobjects/GameObject.hpp @@ -9,7 +9,6 @@ #include #include "engine/primitives/TransformComponent.hpp" -#include "model/Model.hpp" namespace fgl::engine { @@ -100,7 +99,7 @@ namespace fgl::engine std::shared_ptr< Model > m_model { nullptr }; std::string name {}; - GameObject( GameObjectID obj_id ) : m_id( obj_id ) {} + explicit GameObject( GameObjectID obj_id ) : m_id( obj_id ) {} FGL_DELETE_DEFAULT_CTOR( GameObject ); FGL_DELETE_COPY( GameObject ); @@ -154,15 +153,7 @@ namespace fgl::engine GameObjectID getId() const { return m_id; } //! Returns the name of the game object. If no name is set then the name of the model is used. - std::string& getName() - { - if ( name.empty() && m_model ) - { - name = m_model->getName(); - } - - return name; - } + std::string& getName() { return name; } void drawImGui(); }; diff --git a/src/engine/gui/preview.cpp b/src/engine/gui/preview.cpp index 72468f9..bf278f0 100644 --- a/src/engine/gui/preview.cpp +++ b/src/engine/gui/preview.cpp @@ -17,6 +17,7 @@ #include "engine/FrameInfo.hpp" #include "engine/filesystem/scanner/FileScanner.hpp" #include "engine/filesystem/types.hpp" +#include "engine/model/Model.hpp" #include "engine/model/builders/SceneBuilder.hpp" #include "engine/rendering/SwapChain.hpp" diff --git a/src/engine/model/Model.cpp b/src/engine/model/Model.cpp index dba516e..d86ee81 100644 --- a/src/engine/model/Model.cpp +++ b/src/engine/model/Model.cpp @@ -10,7 +10,6 @@ #include "builders/ModelBuilder.hpp" #include "builders/SceneBuilder.hpp" #include "engine/buffers/Buffer.hpp" -#include "engine/buffers/SuballocationView.hpp" #include "engine/image/ImageView.hpp" namespace fgl::engine diff --git a/src/engine/model/builders/SceneBuilder.cpp b/src/engine/model/builders/SceneBuilder.cpp index c3759da..cbbaac3 100644 --- a/src/engine/model/builders/SceneBuilder.cpp +++ b/src/engine/model/builders/SceneBuilder.cpp @@ -16,6 +16,7 @@ #include "engine/assets/stores.hpp" #include "engine/descriptors/DescriptorSet.hpp" +#include "engine/gameobjects/GameObject.hpp" #include "engine/image/ImageView.hpp" namespace fgl::engine @@ -431,6 +432,8 @@ namespace fgl::engine log::debug( "Mesh IDX: {}", mesh_idx ); log::debug( "Skin IDX: {}", skin_idx ); + GameObject obj { GameObject::createGameObject() }; + std::shared_ptr< Model > model { loadModel( mesh_idx, root ) }; assert( model ); diff --git a/src/engine/model/builders/SceneBuilder.hpp b/src/engine/model/builders/SceneBuilder.hpp index 042fb89..ecfdac6 100644 --- a/src/engine/model/builders/SceneBuilder.hpp +++ b/src/engine/model/builders/SceneBuilder.hpp @@ -10,6 +10,7 @@ #include #include +#include "engine/gameobjects/GameObject.hpp" #include "engine/primitives/TransformComponent.hpp" namespace fgl::engine @@ -45,6 +46,8 @@ namespace fgl::engine memory::Buffer& m_vertex_buffer; memory::Buffer& m_index_buffer; + std::vector< GameObject > game_objects {}; + std::vector< std::shared_ptr< Model > > models {}; void handleScene( const tinygltf::Scene& scene, const tinygltf::Model& root ); diff --git a/src/engine/rendering/SwapChain.cpp b/src/engine/rendering/SwapChain.cpp index ee2b2e4..638b6ca 100644 --- a/src/engine/rendering/SwapChain.cpp +++ b/src/engine/rendering/SwapChain.cpp @@ -10,6 +10,7 @@ #include "Attachment.hpp" #include "RenderPass.hpp" #include "Subpass.hpp" +#include "engine/assets/TransferManager.hpp" namespace fgl::engine { diff --git a/src/engine/systems/DrawPair.cpp b/src/engine/systems/DrawPair.cpp index 620217a..48df44e 100644 --- a/src/engine/systems/DrawPair.cpp +++ b/src/engine/systems/DrawPair.cpp @@ -8,7 +8,6 @@ #include -#include "engine/GameObject.hpp" #include "engine/model/Model.hpp" #include "engine/tree/octtree/OctTreeNode.hpp" diff --git a/src/engine/systems/DrawPair.hpp b/src/engine/systems/DrawPair.hpp index f083d9b..906bdf7 100644 --- a/src/engine/systems/DrawPair.hpp +++ b/src/engine/systems/DrawPair.hpp @@ -3,7 +3,7 @@ // #pragma once -#include "engine/GameObject.hpp" +#include "engine/gameobjects/GameObject.hpp" #include "engine/primitives/Frustum.hpp" #include "engine/texture/Texture.hpp" #include "engine/utils.hpp" diff --git a/src/engine/tree/octtree/OctTreeNode.hpp b/src/engine/tree/octtree/OctTreeNode.hpp index 85cca14..5c35c49 100644 --- a/src/engine/tree/octtree/OctTreeNode.hpp +++ b/src/engine/tree/octtree/OctTreeNode.hpp @@ -8,7 +8,7 @@ #include -#include "engine/GameObject.hpp" +#include "engine/gameobjects/GameObject.hpp" #include "engine/primitives/boxes/AxisAlignedBoundingCube.hpp" namespace fgl::engine diff --git a/src/engine/tree/quadtree/QuadTree.cpp b/src/engine/tree/quadtree/QuadTree.cpp index 846272b..353647f 100644 --- a/src/engine/tree/quadtree/QuadTree.cpp +++ b/src/engine/tree/quadtree/QuadTree.cpp @@ -4,6 +4,8 @@ #include "QuadTree.hpp" +#include "engine/gameobjects/GameObject.hpp" + namespace fgl::engine { bool QuadTreeNode::contains( const WorldCoordinate coord ) const diff --git a/src/engine/tree/quadtree/QuadTree.hpp b/src/engine/tree/quadtree/QuadTree.hpp index bad22df..a9b0d05 100644 --- a/src/engine/tree/quadtree/QuadTree.hpp +++ b/src/engine/tree/quadtree/QuadTree.hpp @@ -6,10 +6,12 @@ #include -#include "engine/GameObject.hpp" +#include "engine/primitives/Scale.hpp" +#include "engine/primitives/points/Coordinate.hpp" namespace fgl::engine { + class GameObject; enum class CoordinateSpace; class QuadTreeNode;