diff --git a/HydraEngine/source/ecs/components/HydraMeshComponent.h b/HydraEngine/source/ecs/components/HydraMeshComponent.h index 5ba9ebc..9a06933 100644 --- a/HydraEngine/source/ecs/components/HydraMeshComponent.h +++ b/HydraEngine/source/ecs/components/HydraMeshComponent.h @@ -2,13 +2,15 @@ #define HYDRAECSMESHCOMPONENT #include "../../engine/HydraObject.h" - +#include struct HydraMeshComponent { HydraID mesh_id = INVALID_HYDRA_ID; HydraID vertex_buffer_id = INVALID_HYDRA_ID; HYDRA_STATE mesh_state = HYDRA_STATE::Empty; + glm::vec3 origin {}; + glm::vec3 extent {}; }; diff --git a/HydraEngine/source/ecs/systems/HydraMeshSystem.cpp b/HydraEngine/source/ecs/systems/HydraMeshSystem.cpp index 27a85d6..2770fbe 100644 --- a/HydraEngine/source/ecs/systems/HydraMeshSystem.cpp +++ b/HydraEngine/source/ecs/systems/HydraMeshSystem.cpp @@ -24,6 +24,40 @@ void HydraMeshSystem::InitialiseComponent(HydraID entity_id) HydraMeshManager* mesh_man = GetEngine()->MeshManager(); HydraMesh* mesh = mesh_man->GetMesh(mesh_comp.mesh_id); + + if(mesh->vertexes.size() > 0) + { + mesh_comp.origin = glm::vec3(mesh->vertexes[0].position[0], mesh->vertexes[0].position[1], mesh->vertexes[0].position[2]); + mesh_comp.extent = mesh_comp.origin; + for(StandardVertex vert : mesh->vertexes) + { + if(vert.position[0] < mesh_comp.origin.x) + { + mesh_comp.origin.x = vert.position[0]; + } + if(vert.position[1] < mesh_comp.origin.y) + { + mesh_comp.origin.y = vert.position[1]; + } + if(vert.position[2] < mesh_comp.origin.z) + { + mesh_comp.origin.z = vert.position[2]; + } + if(vert.position[0] > mesh_comp.extent.x) + { + mesh_comp.extent.x = vert.position[0]; + } + if(vert.position[1] > mesh_comp.extent.y) + { + mesh_comp.extent.y = vert.position[1]; + } + if(vert.position[2] > mesh_comp.extent.z) + { + mesh_comp.extent.z = vert.position[2]; + } + } + } + uint32_t vertex_buffer_size = sizeof(StandardVertex) * mesh->vertexes.size(); uint32_t index_buffer_size = sizeof(uint32_t) * mesh->indexes.size(); diff --git a/HydraEngine/source/octtree/HydraOcttree.cpp b/HydraEngine/source/octtree/HydraOcttree.cpp new file mode 100644 index 0000000..e69de29 diff --git a/HydraEngine/source/octtree/HydraOcttree.h b/HydraEngine/source/octtree/HydraOcttree.h new file mode 100644 index 0000000..d47e53d --- /dev/null +++ b/HydraEngine/source/octtree/HydraOcttree.h @@ -0,0 +1,22 @@ +#ifndef HYDRAOCTTREE +#define HYDRAOCTTREE + +#include "../engine/HydraEngine.h" +#include "../engine/HydraObject.h" +#include "HydraOcttreeElement.h" + +class HydraOcttree : public HydraObject +{ + public: + void Intialise(); + void AddEntity(HydraID entity_id); + void RemoveEntity(HydraID entity_id); + void UpdateEntity(HydraID entity_id); + private: + HydraOcttreeElement m_root {}; + + + +}; + +#endif /* HYDRAOCTTREE */ diff --git a/HydraEngine/source/octtree/HydraOcttreeElement.h b/HydraEngine/source/octtree/HydraOcttreeElement.h new file mode 100644 index 0000000..b27e337 --- /dev/null +++ b/HydraEngine/source/octtree/HydraOcttreeElement.h @@ -0,0 +1,12 @@ +#ifndef HYDRAOCTTREEELEMENT +#define HYDRAOCTTREEELEMENT +#include "../engine/HydraObject.h" + +struct HydraOcttreeElement +{ + HydraID element_id = INVALID_HYDRA_ID; + double origin[4] {}; + double dimension = 0; +}; + +#endif /* HYDRAOCTTREEELEMENT */ diff --git a/build/.cmake/api/v1/reply/index-2026-08-30T17-34-09-0830.json b/build/.cmake/api/v1/reply/index-2026-08-31T15-34-01-0315.json similarity index 100% rename from build/.cmake/api/v1/reply/index-2026-08-30T17-34-09-0830.json rename to build/.cmake/api/v1/reply/index-2026-08-31T15-34-01-0315.json diff --git a/build/Debug/imgui.ini b/build/Debug/imgui.ini index e292234..0c7dd08 100644 --- a/build/Debug/imgui.ini +++ b/build/Debug/imgui.ini @@ -2,11 +2,11 @@ Pos=60,60 Size=400,400 Collapsed=0 -LastUsed=20260830 +LastUsed=20260831 [Window][Hello, world!] Pos=60,60 Size=338,157 Collapsed=0 -LastUsed=20260830 +LastUsed=20260831 diff --git a/build/HydraEngine/Debug/HydraEngine.pdb b/build/HydraEngine/Debug/HydraEngine.pdb index 29b092f..ac7ffe4 100644 Binary files a/build/HydraEngine/Debug/HydraEngine.pdb and b/build/HydraEngine/Debug/HydraEngine.pdb differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk index 419f61c..ad97b4d 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.ilk differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog index d05f193..d7c114b 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.command.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog index e434871..489534e 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.read.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog index 789408f..b3bcb1a 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog and b/build/HydraEngine/HydraEngine.dir/Debug/HydraEngine.tlog/CL.write.1.tlog differ diff --git a/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb b/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb index 6a0c77a..47f98e9 100644 Binary files a/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb and b/build/HydraEngine/HydraEngine.dir/Debug/vc143.pdb differ