/*
 *=======================================================================================
 * Name        : MecCol.c
 * Author      : J Thénoz               Date : 01/05/98
 * Description : Mechanic collision functions
 *=======================================================================================
 */
 
 
 
#ifndef _MECCOL_H_
#define _MECCOL_H_
 
 
#ifdef __cplusplus
extern "C" {
#endif
 
 
//extern DNM_tdstMecObstacle g_a_stObstacle [COL_C_xMaxNumberOfCollisions];
extern DNM_tdstMecObstacle *g_a_stObstacle;  

 
ACP_tdxBool MEC_fn_bCollision 
( 
	long* p_lObstacle, 
	DNM_tdstMecObstacle *p_stObstacle, 
	struct DNM_stDynamics* p_stDynamic, 
	HIE_tdxHandleToSuperObject p_stSupObj, 
	POS_tdstCompletePosition *p_stStartPosition, 
	POS_tdstCompletePosition *p_stEndPosition, 
	ACP_tdxBool bBackFace 
);
 
 
ACP_tdxBool MEC_fn_bInCollision 
( 
	struct DNM_stDynamics *p_stDynamic, 
	HIE_tdxHandleToSuperObject hSupObj 
);
 
void MEC_fn_vReportCollideActor 
(
	HIE_tdxHandleToSuperObject hCollideSupObj,
	DNM_tdstMecObstacle* p_stCollideObstacle
);
 
void MEC_fn_vReportCollision
(
	struct DNM_stDynamics* p_stDynamic,
	HIE_tdxHandleToSuperObject hSupObj,
	long lNbObstacle,
	DNM_tdstMecObstacle a_stObstacle[COL_C_xMaxNumberOfCollisions],
	long lObstacle
);
 
void MEC_fn_vFillCollisionReport
(
	struct DNM_stDynamics* p_stDynamic
);
 
 
ACP_tdxBool MEC_fn_vComputeAdjustVector 
(
	MTH3D_tdstVector *p_stAdjustVector,
	struct DNM_stDynamics* p_stDynamic,
	long lObstacle, 
	DNM_tdstMecObstacle *p_stObstacle,
	long lObstacleMin
);
 
void MEC_fn_vEdgeAnalysis 
(	
	struct DNM_stDynamics *p_stDynamic, 
	long lObstacle, 
	DNM_tdstMecObstacle *p_stObstacle,
	DNM_tdstMecObstacle *p_stGround
);
 
void MEC_fn_vCrashAnalysis
(
	struct DNM_stDynamics *p_stDynamic, 
	long lObstacle, 
	DNM_tdstMecObstacle *p_stObstacle 
);
 
 
#ifdef __cplusplus
}
#endif
 
 
#endif /* _MECCOL_H_*/
 
