/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__MCONSTRAINT__
#define	__MCONSTRAINT__


		#include "scene3d/mitem.h"
		#include "physic/physic_constraint.h"


namespace GS {
	namespace S3D {

/// Managed physic constraint.
struct	MConstraint : public MItem
{
		PhysicConstraintDesc desc;
		AutoPtr <PhysicConstraint> physic_data;

static	MItemType		GetMItemClassType() { return Type_Constraint; }

		void			Setup(PhysicWorld *);

virtual	Core::Item		*GetBaseItem() { return 0; }
virtual	Core::Renderable *GetRenderable() { return 0; }

		bool			FromMetaTag(NML::Tag &);
		NML::Tag		*AsMetaTag();

		MConstraint(PhysicConstraint *);
};

	} // S3D
} // GS


#endif	// __MCONSTRAINT__
