// Copyright (C) 2015 Jérôme Leclercq // This file is part of the "Nazara Engine - Physics 2D module" // For conditions of distribution and use, see copyright notice in Config.hpp #include #include namespace Nz { inline const Rectf& BoxCollider2D::GetRect() const { return m_rect; } inline Vector2f BoxCollider2D::GetSize() const { return m_rect.GetLengths(); } template BoxCollider2DRef BoxCollider2D::New(Args&&... args) { std::unique_ptr object(new BoxCollider2D(std::forward(args)...)); object->SetPersistent(false); return object.release(); } inline float CircleCollider2D::GetRadius() const { return m_radius; } template CircleCollider2DRef CircleCollider2D::New(Args&&... args) { std::unique_ptr object(new CircleCollider2D(std::forward(args)...)); object->SetPersistent(false); return object.release(); } template NullCollider2DRef NullCollider2D::New(Args&&... args) { std::unique_ptr object(new NullCollider2D(std::forward(args)...)); object->SetPersistent(false); return object.release(); } SegmentCollider2D::SegmentCollider2D(const Vector2f& first, const Vector2f& second, float thickness) : m_first(first), m_second(second), m_thickness(thickness) { } inline const Vector2f& SegmentCollider2D::GetFirstPoint() const { return m_first; } inline float SegmentCollider2D::GetLength() const { return m_first.Distance(m_second); } inline const Vector2f& SegmentCollider2D::GetSecondPoint() const { return m_second; } template SegmentCollider2DRef SegmentCollider2D::New(Args&&... args) { std::unique_ptr object(new SegmentCollider2D(std::forward(args)...)); object->SetPersistent(false); return object.release(); } } #include