#ifndef SCENEOBJECTS_HPP_INCLUDED #define SCENEOBJECTS_HPP_INCLUDED #include "../../Core/Classes/GameObject.hpp" #include "../../Core/Classes/DecorativeObject.hpp" #include "../../Core/Classes/GroundObject.hpp" #include "../../Core/Classes/WallObject.hpp" #include "../../Core/Classes/ObjectInfo.hpp" #include "../../Core/Types/Tile.hpp" #include "../../Core/Types/Convex.hpp" #include #include #include #include /** @addtogroup Models * @{ */ class SceneObjects { public: typedef enum OBJECT_TYPE { GAME_OBJECT = (1 << 1), DECORATIVE_OBJECT = (1 << 2), GROUND_OBJECT = (1 << 3), WALL_OBJECT = (1 << 4), ALL = (GAME_OBJECT | DECORATIVE_OBJECT | GROUND_OBJECT | WALL_OBJECT) } OBJECT_TYPE; static std::vector GetAll(OBJECT_TYPE ObjectTypes = ALL); static std::vector GetAll(const Tile& T, OBJECT_TYPE ObjectTypes = ALL); static std::vector GetAll(std::int32_t ID, OBJECT_TYPE ObjectTypes = ALL); static std::vector GetAll(const std::string& Name, OBJECT_TYPE ObjectTypes = ALL); static std::vector GetAll(const std::vector& PossibleIDs, OBJECT_TYPE ObjectTypes = ALL); static std::vector GetAll(const std::vector& PossibleNames, OBJECT_TYPE ObjectTypes = ALL); static std::vector GetAll(const std::function& Filter); static std::vector GetAll(const std::function& Filter); static std::vector GetAll(const std::function& Filter); static std::vector GetAll(const std::function& Filter); static Object Get(const Tile& T, OBJECT_TYPE ObjectTypes = ALL); static Object Get(std::int32_t ID, OBJECT_TYPE ObjectTypes = ALL); static Object Get(const std::string& Name, OBJECT_TYPE ObjectTypes = ALL); static Object Get(const std::vector& PossibleIDs, OBJECT_TYPE ObjectTypes = ALL); static Object Get(const std::vector& PossibleNames, OBJECT_TYPE ObjectTypes = ALL); static GameObject Get(const std::function& Filter); static DecorativeObject Get(const std::function& Filter); static GroundObject Get(const std::function& Filter); static WallObject Get(const std::function& Filter); static ObjectInfo GetInfoOf(const Object& O); static ObjectInfo GetInfoOf(const GameObject& G); static ObjectInfo GetInfoOf(const DecorativeObject& D); static ObjectInfo GetInfoOf(const GroundObject& G); static ObjectInfo GetInfoOf(const WallObject& W); static Tile GetTileOf(const GameObject& G); static Tile GetTileOf(const DecorativeObject& D); static Tile GetTileOf(const GroundObject& G); static Tile GetTileOf(const WallObject& W); static Convex GetConvexOf(const GameObject& G); static Convex GetConvexOf(const DecorativeObject& D); static Convex GetConvexOf(const GroundObject& G); static Convex GetConvexOf(const WallObject& W); }; /** @} */ #endif // SCENEOBJECTS_HPP_INCLUDED