#ifndef SCENEOBJECTS_HPP_INCLUDED #define SCENEOBJECTS_HPP_INCLUDED #include "../../Core/Classes/GameModel.hpp" #include "../../Core/Classes/DecorativeModel.hpp" #include "../../Core/Classes/GroundModel.hpp" #include "../../Core/Classes/WallModel.hpp" #include "../../Core/Types/Tile.hpp" #include "../../Core/Types/Convex.hpp" #include #include #include #include /** @addtogroup Models * @{ */ class SceneObjects { public: typedef enum MODEL_TYPE { GAME_MODEL = (1 << 1), DECORATIVE_MODEL = (1 << 2), GROUND_MODEL = (1 << 3), WALL_MODEL = (1 << 4), ALL = (GAME_MODEL | DECORATIVE_MODEL | GROUND_MODEL | WALL_MODEL) } MODEL_TYPE; static std::vector GetAll(MODEL_TYPE ModelTypes = ALL); static std::vector GetAll(const Tile& T, MODEL_TYPE ModelTypes = ALL); static std::vector GetAll(std::int32_t ID, MODEL_TYPE ModelTypes = ALL); static std::vector GetAll(const std::string& Name, MODEL_TYPE ModelTypes = ALL); static std::vector GetAll(const std::vector& PossibleIDs, MODEL_TYPE ModelTypes = ALL); static std::vector GetAll(const std::vector& PossibleNames, MODEL_TYPE ModelTypes = 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, MODEL_TYPE ModelTypes = ALL); static Object Get(std::int32_t ID, MODEL_TYPE ModelTypes = ALL); static Object Get(const std::string& Name, MODEL_TYPE ModelTypes = ALL); static Object Get(const std::vector& PossibleIDs, MODEL_TYPE ModelTypes = ALL); static Object Get(const std::vector& PossibleNames, MODEL_TYPE ModelTypes = ALL); static GameModel Get(const std::function& Filter); static DecorativeModel Get(const std::function& Filter); static GroundModel Get(const std::function& Filter); static WallModel Get(const std::function& Filter); static Tile GetTileOf(const GameModel& G); static Tile GetTileOf(const DecorativeModel& D); static Tile GetTileOf(const GroundModel& G); static Tile GetTileOf(const WallModel& W); static Convex GetConvexOf(const GameModel& G); static Convex GetConvexOf(const DecorativeModel& D); static Convex GetConvexOf(const GroundModel& G); static Convex GetConvexOf(const WallModel& W); }; /** @} */ #endif // SCENEOBJECTS_HPP_INCLUDED