196 lines
3.8 KiB
C
196 lines
3.8 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "Joint.h"
|
||
|
#include "CommonMgd.h"
|
||
|
|
||
|
namespace ODEManaged
|
||
|
{
|
||
|
__gc public class JointHinge : public Joint
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
//Constructors
|
||
|
|
||
|
JointHinge(void);
|
||
|
JointHinge(World &world);
|
||
|
JointHinge(World &world, JointGroup &jointGroup);
|
||
|
|
||
|
|
||
|
//Destructor
|
||
|
|
||
|
virtual~JointHinge(void);
|
||
|
|
||
|
|
||
|
//Methods
|
||
|
|
||
|
//Overloaded Create
|
||
|
void Create(World &world, JointGroup &jointGroup);
|
||
|
void Create(World &world);
|
||
|
|
||
|
//Overloaded Attach
|
||
|
void Attach(Body &body1, Body &body2);
|
||
|
void Attach(Body &body1);
|
||
|
|
||
|
void SetAnchor(double x, double y, double z);
|
||
|
Vector3 GetAnchor(void);
|
||
|
|
||
|
void SetAxis(double x, double y, double z);
|
||
|
Vector3 GetAxis(void);
|
||
|
|
||
|
void SetAllMovParams(double LoStop, double HiStop,
|
||
|
double Velocity, double MaxForce,
|
||
|
double FudgeFactor, double Bounce,
|
||
|
double StopERP, double StopCFM);
|
||
|
|
||
|
|
||
|
//Properties
|
||
|
|
||
|
//LoStop
|
||
|
__property double get_LoStop(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamLoStop);
|
||
|
}
|
||
|
|
||
|
__property void set_LoStop(double value)
|
||
|
{
|
||
|
if (value > -3.141592653 && value <= 0)
|
||
|
dJointSetHingeParam(this->_id, dParamLoStop, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//HiStop
|
||
|
__property double get_HiStop(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamHiStop);
|
||
|
}
|
||
|
|
||
|
__property void set_HiStop(double value)
|
||
|
{
|
||
|
if (value < 3.141592653 && value >= 0)
|
||
|
dJointSetHingeParam(this->_id, dParamHiStop, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//Velocity
|
||
|
__property double get_Velocity(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamVel);
|
||
|
}
|
||
|
|
||
|
__property void set_Velocity(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamVel, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//MaxForce
|
||
|
__property double get_MaxForce(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamFMax);
|
||
|
}
|
||
|
|
||
|
__property void set_MaxForce(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamFMax, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//FudgeFactor
|
||
|
__property double get_FudgeFactor(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamFudgeFactor);
|
||
|
}
|
||
|
|
||
|
__property void set_FudgeFactor(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamFudgeFactor, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//Bounce
|
||
|
__property double get_Bounce(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamBounce);
|
||
|
}
|
||
|
|
||
|
__property void set_Bounce(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamBounce, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//StopERP
|
||
|
__property double get_StopERP(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamStopERP);
|
||
|
}
|
||
|
|
||
|
__property void set_StopERP(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamStopERP, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//StopCFM
|
||
|
__property double get_StopCFM(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamStopCFM);
|
||
|
}
|
||
|
|
||
|
__property void set_StopCFM(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamStopCFM, value);
|
||
|
}
|
||
|
|
||
|
|
||
|
//GetAngle
|
||
|
__property double get_Angle(void)
|
||
|
{
|
||
|
return dJointGetHingeAngle(this->_id);
|
||
|
}
|
||
|
|
||
|
|
||
|
//GetAngleRate
|
||
|
__property double get_AngleRate(void)
|
||
|
{
|
||
|
return dJointGetHingeAngleRate(this->_id);
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
// void SetSuspensionERP(double value);
|
||
|
// double GetSuspensionERP(void);
|
||
|
|
||
|
// void SetSuspensionCFM(double value);
|
||
|
// double GetSuspensionCFM(void);
|
||
|
|
||
|
/*
|
||
|
//SetSuspensionERP
|
||
|
void JointHinge::SetSuspensionERP(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamSuspensionERP, value);
|
||
|
}
|
||
|
|
||
|
//GetSuspensionERP
|
||
|
double JointHinge::GetSuspensionERP(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamSuspensionERP);
|
||
|
}
|
||
|
|
||
|
|
||
|
//SetSuspensionCFM
|
||
|
void JointHinge::SetSuspensionCFM(double value)
|
||
|
{
|
||
|
dJointSetHingeParam(this->_id, dParamSuspensionCFM, value);
|
||
|
}
|
||
|
|
||
|
//GetSuspensionCFM
|
||
|
double JointHinge::GetSuspensionCFM(void)
|
||
|
{
|
||
|
return dJointGetHingeParam(this->_id, dParamSuspensionCFM);
|
||
|
}
|
||
|
|
||
|
*/
|