48 lines
1019 B
C++
48 lines
1019 B
C++
/* -----------------------------------------------------------------------------
|
|
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__
|