/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __NPHYSIC_CONSTRAINT__ #define __NPHYSIC_CONSTRAINT__ #include "physic/physic_item.h" #include "physic/physic_constraint_desc.h" namespace GS { class Matrix4; namespace S3D { /* @short Base physic constraint. @author Emmanuel Julien (ejulien@gsworks.fr) */ class PhysicConstraint { protected: PhysicConstraintDesc::Type type; sPhysicItem item_a, item_b; public: virtual void SetPivotA(const Matrix4 &) = 0; virtual void SetPivotB(const Matrix4 &) = 0; virtual bool SetupConstraint(const PhysicConstraintDesc &) = 0; virtual void DeleteConstraint() = 0; virtual void Enable(bool = true) = 0; PhysicConstraint() : type(PhysicConstraintDesc::TypeNone) {} virtual ~PhysicConstraint() {} }; } // S3D } // GS #endif // __NPHYSIC_CONSTRAINT__