#pragma once
#pragma unmanaged
#include "BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h"
#pragma managed
#include "../Dynamics/RigidBody.h"

using namespace System;
using namespace Microsoft::Xna::Framework;

namespace BulletCLI
{

    public ref class Generic6DofSpringConstraint
	{
	private:
		btGeneric6DofSpringConstraint* m_p;
    internal:
        btGeneric6DofSpringConstraint* GetPtr(){return m_p;}
    public:
		Generic6DofSpringConstraint(RigidBody^ rbA,RigidBody^ rbB,Matrix frameInA,Matrix frameInB);
		virtual ~Generic6DofSpringConstraint();
		!Generic6DofSpringConstraint();
        void SetAngularUpperLimit(Vector3 angularUpper);
        void SetAngularLowerLimit(Vector3 angularLower);
        void SetLinearUpperLimit(Vector3 linerUpper);
        void SetLinearLowerLimit(Vector3 linerLower);
        void SetStiffness(int index,float stiffness);
    };
}