/*
 *=======================================================================================
 * Name        : MecOpt.c
 * Author      : J Thénoz               Date : 01/05/98
 * Description : Mechanic options
 *=======================================================================================
 */
 
 
#ifndef _MECOPT_H_
#define _MECOPT_H_
 
#ifdef __cplusplus
extern "C" {
#endif
 
 
void MEC_fn_vGravitySpeed
(
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT
);
 
void MEC_fn_vInertia 
(
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT,
	POS_tdxHandleToPosition hMatrix,
	POS_tdxHandleToPosition hInvMatrix
);
 
void MEC_fn_vAddTiltSpeed
(
	struct DNM_stDynamics *p_stDynamic,   
	MTH_tdxReal xDt
);
 
void MEC_fn_vCancelTilt ( struct DNM_stDynamics *p_stDynamic );
 
void MEC_fn_vImposeSpeed
(
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT,
	POS_tdxHandleToPosition hMatrix,
	POS_tdxHandleToPosition hInvMatrix
);
 
void MEC_fn_vAddSpeed 
(
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT,
	POS_tdxHandleToPosition hMatrix,
	POS_tdxHandleToPosition hInvMatrix
);
 
void MEC_fn_vProposeSpeed
(
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT,
	POS_tdxHandleToPosition hMatrix,
	POS_tdxHandleToPosition hInvMatrix
);
 
void MEC_fn_vAddStream (	
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT,
	ACP_tdxBool bSlide
);
 
void MEC_fn_vImposeRotation	( struct DNM_stDynamics *p_stDynamic );
 
void MEC_fn_vAdditionnalTranslation ( struct DNM_stDynamics *p_stDynamic );
 
void MEC_fn_vPositionLimit ( struct DNM_stDynamics *p_stDynamic, MTH3D_tdstVector* p_stSafePreviousPosition );
 
void MEC_fn_vSpeedLimit
(
	struct DNM_stDynamics *p_stDynamic,
	MTH_tdxReal xDT,
	POS_tdxHandleToPosition hMatrix,
	POS_tdxHandleToPosition hInvMatrix
);
 
void MEC_fn_vAdjustScaleData 
(
	struct DNM_stDynamics *p_stDynamic,
	POS_tdxHandleToPosition hMatrix,
	POS_tdxHandleToPosition hInvMatrix
);
 
#ifdef __cplusplus
}
#endif
 
 
 
#endif /*_MECOPT_H_*/
