/*
  MODULE : COL (Intersection & Collision Library)
  AUTHOR : Frederic PHILIPPE
           UBI R&D
  FILE : CsSphElt.h (Geometric object collision)
*/
 
#ifndef COL_CSSPHELT_H
#define COL_CSSPHELT_H
 
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
 
#include "cpa_expt.h"
 
/* For Global declaration in C files : */
#ifdef COL_GLOBALS
 #define COL_EXTERN extern
#else /* !COL_GLOBALS */
 #define COL_EXTERN
#endif /* !COL_GLOBALS */
 
/*
-----------------------------------------------------------------------------
INCLUDES FILES
-----------------------------------------------------------------------------
*/
 
#include "Futil.h"
#include "Box.h"
#include "Inters.h"
#include "IntersGO.h"
#include "OctreeGO.h"
#include "CollGOCo.h"
#include "CsEltPts.h"
#include "CsEltEdg.h"
 
/*
-----------------------------------------------------------------------------
CONSTANT DECLARATION
-----------------------------------------------------------------------------
*/
 
/*
-----------------------------------------------------------------------------
TYPES DEFINITION
-----------------------------------------------------------------------------
*/
 
/*
-----------------------------------------------------------------------------
GLOBAL VARIABLE DECLARATION
-----------------------------------------------------------------------------
*/
 
/*
-----------------------------------------------------------------------------
FUNCTIONS DECLARATION
-----------------------------------------------------------------------------
*/
 
/* ANNECY AV STATIC {*/
extern CPA_EXPORT ACP_tdxBool COL_fn_bCollideStaticSphereWithStaticIndexedTriangle (COL_tdstGVForCollision *p_stGV ,
                                                                             ACP_tdxBool bFaceMapInsteadOfIndexedTriangle);
extern CPA_EXPORT void COL_fn_vCollideStaticElementSpheresWithStaticElementIndexedTriangles ( COL_tdstGVForCollision *p_stGV );
/* Not used anymore : extern CPA_EXPORT void COL_fn_vCollideStaticSphereWithStaticFaceMapTriangle ( COL_tdstGVForCollision *p_stGV );*/
/* END ANNECY AV STATIC }*/
 
/*extern CPA_EXPORT void COL_fn_vCollideStaticElementSpheresWithStaticElementFaceMapDescriptors ( COL_tdstGVForCollision *p_stGV );*/
 
extern CPA_EXPORT void COL_fn_vCollideStaticSphereWithStaticSphere ( COL_tdstGVForCollision *p_stGV );
extern CPA_EXPORT void COL_fn_vCollideStaticElementSpheresWithStaticElementSpheres ( COL_tdstGVForCollision *p_stGV );
 
extern CPA_EXPORT void COL_fn_vCollideStaticElementSpheresWithStaticOctree ( COL_tdstGVForCollision *p_stGV );
 
extern CPA_EXPORT void COL_fn_vCollideStaticElementSpheresWithStaticElements ( COL_tdstGVForCollision *p_stGV );


void COL_fn_vUseInitialSphere (COL_tdstGVForCollision * p_stGV);
void COL_fn_vUseEnlargeSphere (COL_tdstGVForCollision * p_stGV);

#ifdef __cplusplus
};
#endif /* __cplusplus */
 
#endif /* COL_CSSPHELT_H */
