// Copyright (C) 2024 Jérôme "SirLynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Physics2D module" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_PHYSICS2D_COMPONENTS_RIGIDBODY2DCOMPONENT_HPP #define NAZARA_PHYSICS2D_COMPONENTS_RIGIDBODY2DCOMPONENT_HPP #include #include #include namespace Nz { class NAZARA_PHYSICS2D_API RigidBody2DComponent : public RigidBody2D { friend class Physics2DSystem; public: inline RigidBody2DComponent(const RigidBody2D::DynamicSettings& settings); inline RigidBody2DComponent(const RigidBody2D::StaticSettings& settings); RigidBody2DComponent(const RigidBody2DComponent&) = delete; RigidBody2DComponent(RigidBody2DComponent&&) noexcept = default; ~RigidBody2DComponent() = default; RigidBody2DComponent& operator=(const RigidBody2DComponent&) = delete; RigidBody2DComponent& operator=(RigidBody2DComponent&&) noexcept = default; private: inline void Construct(PhysWorld2D& world); using Setting = std::variant; std::unique_ptr m_settings; }; } #include #endif // NAZARA_PHYSICS2D_COMPONENTS_RIGIDBODY2DCOMPONENT_HPP