// Copyright (C) 2022 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Utility module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include #include namespace Nz { template constexpr ComponentType ComponentTypeId() { static_assert(AlwaysFalse::value, "This type cannot be used as a component."); return ComponentType{}; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Color; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Double1; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Double2; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Double3; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Double4; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Float1; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Float2; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Float3; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Float4; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Int1; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Int2; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Int3; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Int4; } template<> constexpr ComponentType ComponentTypeId() { return ComponentType::Quaternion; } template constexpr ComponentType GetComponentTypeOf() { return ComponentTypeId>(); } } #include