Rework constraint2D
This commit is contained in:
@@ -8,7 +8,9 @@
|
||||
#define NAZARA_CONSTRAINT2D_HPP
|
||||
|
||||
#include <Nazara/Prerequisites.hpp>
|
||||
#include <Nazara/Core/HandledObject.hpp>
|
||||
#include <Nazara/Core/MovablePtr.hpp>
|
||||
#include <Nazara/Core/ObjectHandle.hpp>
|
||||
#include <Nazara/Math/Angle.hpp>
|
||||
#include <Nazara/Physics2D/Config.hpp>
|
||||
#include <Nazara/Physics2D/PhysWorld2D.hpp>
|
||||
@@ -21,11 +23,9 @@ namespace Nz
|
||||
{
|
||||
class Constraint2D;
|
||||
|
||||
using Constraint2DConstRef = ObjectRef<const Constraint2D>;
|
||||
using Constraint2DLibrary = ObjectLibrary<Constraint2D>;
|
||||
using Constraint2DRef = ObjectRef<Constraint2D>;
|
||||
using Constraint2DHandle = ObjectHandle<Constraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API Constraint2D : public RefCounted
|
||||
class NAZARA_PHYSICS2D_API Constraint2D : public HandledObject<Constraint2D>
|
||||
{
|
||||
public:
|
||||
Constraint2D(const Constraint2D&) = delete;
|
||||
@@ -57,16 +57,12 @@ namespace Nz
|
||||
Constraint2D(Nz::PhysWorld2D* world, cpConstraint* constraint);
|
||||
|
||||
MovablePtr<cpConstraint> m_constraint;
|
||||
|
||||
private:
|
||||
static Constraint2DLibrary s_library;
|
||||
};
|
||||
|
||||
class DampedSpringConstraint2D;
|
||||
|
||||
using DampedSpringConstraint2DConstRef = ObjectRef<const DampedSpringConstraint2D>;
|
||||
using DampedSpringConstraint2DRef = ObjectRef<DampedSpringConstraint2D>;
|
||||
|
||||
using DampedSpringConstraint2DHandle = ObjectHandle<DampedSpringConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API DampedSpringConstraint2D : public Constraint2D
|
||||
{
|
||||
public:
|
||||
@@ -84,14 +80,11 @@ namespace Nz
|
||||
void SetRestLength(float newLength);
|
||||
void SetSecondAnchor(const Vector2f& firstAnchor);
|
||||
void SetStiffness(float newStiffness);
|
||||
|
||||
template<typename... Args> static DampedSpringConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class DampedRotarySpringConstraint2D;
|
||||
|
||||
using DampedRotarySpringConstraint2DConstRef = ObjectRef<const DampedRotarySpringConstraint2D>;
|
||||
using DampedRotarySpringConstraint2DRef = ObjectRef<DampedRotarySpringConstraint2D>;
|
||||
using DampedRotarySpringConstraint2DHandle = ObjectHandle<DampedRotarySpringConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API DampedRotarySpringConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -106,13 +99,11 @@ namespace Nz
|
||||
void SetDamping(float newDamping);
|
||||
void SetRestAngle(const RadianAnglef& newAngle);
|
||||
void SetStiffness(float newStiffness);
|
||||
|
||||
template<typename... Args> static DampedRotarySpringConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class GearConstraint2D;
|
||||
|
||||
using GearConstraint2DConstRef = ObjectRef<const GearConstraint2D>;
|
||||
using GearConstraint2DHandle = ObjectHandle<GearConstraint2D>;
|
||||
using GearConstraint2DRef = ObjectRef<GearConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API GearConstraint2D : public Constraint2D
|
||||
@@ -132,8 +123,7 @@ namespace Nz
|
||||
|
||||
class MotorConstraint2D;
|
||||
|
||||
using MotorConstraint2DConstRef = ObjectRef<const MotorConstraint2D>;
|
||||
using MotorConstraint2DRef = ObjectRef<MotorConstraint2D>;
|
||||
using MotorConstraint2DHandle = ObjectHandle<MotorConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API MotorConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -143,14 +133,11 @@ namespace Nz
|
||||
|
||||
float GetRate() const;
|
||||
void SetRate(float rate);
|
||||
|
||||
template<typename... Args> static MotorConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class PinConstraint2D;
|
||||
|
||||
using PinConstraint2DConstRef = ObjectRef<const PinConstraint2D>;
|
||||
using PinConstraint2DRef = ObjectRef<PinConstraint2D>;
|
||||
using PinConstraint2DHandle = ObjectHandle<PinConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API PinConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -165,14 +152,11 @@ namespace Nz
|
||||
void SetDistance(float newDistance);
|
||||
void SetFirstAnchor(const Vector2f& firstAnchor);
|
||||
void SetSecondAnchor(const Vector2f& firstAnchor);
|
||||
|
||||
template<typename... Args> static PinConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class PivotConstraint2D;
|
||||
|
||||
using PivotConstraint2DConstRef = ObjectRef<const PivotConstraint2D>;
|
||||
using PivotConstraint2DRef = ObjectRef<PivotConstraint2D>;
|
||||
using PivotConstraint2DHandle = ObjectHandle<PivotConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API PivotConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -186,14 +170,11 @@ namespace Nz
|
||||
|
||||
void SetFirstAnchor(const Vector2f& firstAnchor);
|
||||
void SetSecondAnchor(const Vector2f& firstAnchor);
|
||||
|
||||
template<typename... Args> static PivotConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class RatchetConstraint2D;
|
||||
|
||||
using RatchetConstraint2DConstRef = ObjectRef<const RatchetConstraint2D>;
|
||||
using RatchetConstraint2DRef = ObjectRef<RatchetConstraint2D>;
|
||||
using RatchetConstraint2DHandle = ObjectHandle<RatchetConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API RatchetConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -208,14 +189,11 @@ namespace Nz
|
||||
void SetAngle(const RadianAnglef& angle);
|
||||
void SetPhase(float phase);
|
||||
void SetRatchet(float ratchet);
|
||||
|
||||
template<typename... Args> static RatchetConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class RotaryLimitConstraint2D;
|
||||
|
||||
using RotaryLimitConstraint2DConstRef = ObjectRef<const RotaryLimitConstraint2D>;
|
||||
using RotaryLimitConstraint2DRef = ObjectRef<RotaryLimitConstraint2D>;
|
||||
using RotaryLimitConstraint2DHandle = ObjectHandle<RotaryLimitConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API RotaryLimitConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -228,14 +206,11 @@ namespace Nz
|
||||
|
||||
void SetMaxAngle(const RadianAnglef& maxAngle);
|
||||
void SetMinAngle(const RadianAnglef& minAngle);
|
||||
|
||||
template<typename... Args> static RotaryLimitConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
|
||||
class SlideConstraint2D;
|
||||
|
||||
using SlideConstraint2DConstRef = ObjectRef<const SlideConstraint2D>;
|
||||
using SlideConstraint2DRef = ObjectRef<SlideConstraint2D>;
|
||||
using SlideConstraint2DHandle = ObjectHandle<SlideConstraint2D>;
|
||||
|
||||
class NAZARA_PHYSICS2D_API SlideConstraint2D : public Constraint2D
|
||||
{
|
||||
@@ -252,8 +227,6 @@ namespace Nz
|
||||
void SetMaxDistance(float newMaxDistance);
|
||||
void SetMinDistance(float newMinDistance);
|
||||
void SetSecondAnchor(const Vector2f& firstAnchor);
|
||||
|
||||
template<typename... Args> static SlideConstraint2DRef New(Args&&... args);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -8,86 +8,6 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
template<typename... Args>
|
||||
DampedSpringConstraint2DRef DampedSpringConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<DampedSpringConstraint2D> object(new DampedSpringConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
DampedRotarySpringConstraint2DRef DampedRotarySpringConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<DampedRotarySpringConstraint2D> object(new DampedRotarySpringConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
GearConstraint2DRef GearConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<GearConstraint2D> object(new GearConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
MotorConstraint2DRef MotorConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<MotorConstraint2D> object(new MotorConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
PinConstraint2DRef PinConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<PinConstraint2D> object(new PinConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
PivotConstraint2DRef PivotConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<PivotConstraint2D> object(new PivotConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
RatchetConstraint2DRef RatchetConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<RatchetConstraint2D> object(new RatchetConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
RotaryLimitConstraint2DRef RotaryLimitConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<RotaryLimitConstraint2D> object(new RotaryLimitConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
|
||||
template<typename... Args>
|
||||
SlideConstraint2DRef SlideConstraint2D::New(Args&&... args)
|
||||
{
|
||||
std::unique_ptr<SlideConstraint2D> object(new SlideConstraint2D(std::forward<Args>(args)...));
|
||||
object->SetPersistent(false);
|
||||
|
||||
return object.release();
|
||||
}
|
||||
}
|
||||
|
||||
#include <Nazara/Physics2D/DebugOff.hpp>
|
||||
|
||||
Reference in New Issue
Block a user