#ifndef ENTT_ENTITY_FWD_HPP #define ENTT_ENTITY_FWD_HPP #include #include #include "../core/fwd.hpp" #include "../core/type_traits.hpp" namespace entt { /*! @brief Default entity identifier. */ enum class entity : id_type {}; template> class basic_sparse_set; template, typename = void> class basic_storage; template, typename = void> struct storage_type; template>> struct storage_for; template class sigh_storage_mixin; template> class basic_registry; template class basic_view; template> class basic_runtime_view; template class basic_group; template class basic_observer; template class basic_organizer; template struct basic_handle; template class basic_snapshot; template class basic_snapshot_loader; template class basic_continuous_loader; /** * @brief Alias for exclusion lists. * @tparam Type List of types. */ template using exclude_t = type_list; /** * @brief Variable template for exclusion lists. * @tparam Type List of types. */ template inline constexpr exclude_t exclude{}; /** * @brief Alias for lists of observed components. * @tparam Type List of types. */ template using get_t = type_list; /** * @brief Variable template for lists of observed components. * @tparam Type List of types. */ template inline constexpr get_t get{}; /** * @brief Alias for lists of owned components. * @tparam Type List of types. */ template using owned_t = type_list; /** * @brief Variable template for lists of owned components. * @tparam Type List of types. */ template inline constexpr owned_t owned{}; /*! @brief Alias declaration for the most common use case. */ using sparse_set = basic_sparse_set<>; /** * @brief Alias declaration for the most common use case. * @tparam Type Type of objects assigned to the entities. */ template using storage = basic_storage; /*! @brief Alias declaration for the most common use case. */ using registry = basic_registry<>; /*! @brief Alias declaration for the most common use case. */ using observer = basic_observer; /*! @brief Alias declaration for the most common use case. */ using organizer = basic_organizer; /*! @brief Alias declaration for the most common use case. */ using handle = basic_handle; /*! @brief Alias declaration for the most common use case. */ using const_handle = basic_handle; /** * @brief Alias declaration for the most common use case. * @tparam Args Other template parameters. */ template using handle_view = basic_handle; /** * @brief Alias declaration for the most common use case. * @tparam Args Other template parameters. */ template using const_handle_view = basic_handle; /*! @brief Alias declaration for the most common use case. */ using snapshot = basic_snapshot; /*! @brief Alias declaration for the most common use case. */ using snapshot_loader = basic_snapshot_loader; /*! @brief Alias declaration for the most common use case. */ using continuous_loader = basic_continuous_loader; /** * @brief Alias declaration for the most common use case. * @tparam Get Types of storage iterated by the view. * @tparam Exclude Types of storage used to filter the view. */ template> using view = basic_view, type_list_transform_t>; /*! @brief Alias declaration for the most common use case. */ using runtime_view = basic_runtime_view; /*! @brief Alias declaration for the most common use case. */ using const_runtime_view = basic_runtime_view; /** * @brief Alias declaration for the most common use case. * @tparam Owned Types of storage _owned_ by the group. * @tparam Get Types of storage _observed_ by the group. * @tparam Exclude Types of storage used to filter the group. */ template using group = basic_group, type_list_transform_t, type_list_transform_t>; } // namespace entt #endif