// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "dawnlibs.hpp" #include "physics/3d/Ray3D.hpp" typedef int64_t scenechunk_t; #define SCENE_CHUNK_SIZE_2D 512 namespace Dawn { class Scene; class Collider3D; struct Collider3DRayResult; class ScenePhysicsManager { protected: Scene *scene; // std::map<scenechunk_t, std::vector<SceneItem*>> chunkItems; // std::map<SceneItem*, std::vector<scenechunk_t>> itemChunks; public: ScenePhysicsManager(Scene *scene); void update(); std::vector<struct Collider3DRayResult> raycast3DAll(struct Ray3D ray); friend class Scene; }; }