/* (c) Ubi R&D 1997*/
/* See Sebastien DAVID for any comment or question*/
 
#ifndef __POPROTO_H__
#define __POPROTO_H__
 
#ifdef  __cplusplus
extern "C" {
#endif
 
/*#include "PhysiCol.h"  /* tmp tant que le module PCS n'existe pas   */
 
 
/* For DLL using these function :*/
#include "../cpa_expt.h" 
 
extern CPA_EXPORT void PO_fn_vFirstInit(void);
 
/* ***************************************************************************** */
/* **************** Creation and first init of a PO **************************** */
/* ***************************************************************************** */
extern CPA_EXPORT PO_tdxHandleToPhysicalObject PO_fn_hAllocPhysicalObject(void);
extern CPA_EXPORT void PO_fn_vFreePhysicalObject(PO_tdxHandleToPhysicalObject _hPhysicalObject);
 
/* ***************************************************************************** */
/* ******************** Access functions to Object in PO *********************** */
/* ***************************************************************************** */
/*
extern CPA_EXPORT void * PO_fn_p_vGetObject(PO_tdxHandleToPhysicalObject _hPhysicalObject);
extern CPA_EXPORT void PO_fn_p_vSetObject(PO_tdxHandleToPhysicalObject _hPhysicalObject
                                         ,void * p_vObject);
*/
#ifndef D_THROW_VISUAL_SET
extern CPA_EXPORT GEO_tdxHandleToVisualSet PO_fn_hGetVisualSet(PO_tdxHandleToPhysicalObject _hPhysicalObject);
extern CPA_EXPORT void PO_fn_vSetVisualSet(PO_tdxHandleToPhysicalObject _hPhysicalObject
                                          ,GEO_tdxHandleToVisualSet _hNewVisualSet);
#else
#ifndef PO_fn_hGetGeometricObject
extern CPA_EXPORT ACP_tdxHandleOfObject PO_fn_hGetGeometricObject(PO_tdxHandleToPhysicalObject _hPhysicalObject);
#endif /*PO_fn_hGetGeometricObject*/
extern CPA_EXPORT void PO_fn_vSetGeometricObject(PO_tdxHandleToPhysicalObject _hPhysicalObject
																							 ,ACP_tdxHandleOfObject _hNewGeometricObject);
#endif /* D_THROW_VISUAL_SET */
 
 
 
/* ***************************************************************************** */
/* **************** Access functions to CollideSet in PO *********************** */
/* ***************************************************************************** */
extern CPA_EXPORT PCS_tdxHandleToPhysicalCollSet PO_fn_hGetCollideSet(PO_tdxHandleToPhysicalObject _hPhysicalObject);
extern CPA_EXPORT void PO_fn_vSetCollideSet(PO_tdxHandleToPhysicalObject _hPhysicalObject
                         ,PCS_tdxHandleToPhysicalCollSet _hNewCollideSet);
 
/* ***************************************************************************** */
/* **************** Access functions to BoundingVolume in PO ******************* */
/* ***************************************************************************** */
extern CPA_EXPORT GEO_tdxHandleToBoundingSphere PO_fn_hGetBoundingVolume(PO_tdxHandleToPhysicalObject _hPhysicalObject);
extern CPA_EXPORT void PO_fn_vSetBoundingVolume(PO_tdxHandleToPhysicalObject _hPhysicalObject,
												GEO_tdxHandleToBoundingSphere _hNewBoundingVolume);
 
 
extern CPA_EXPORT void HIE_fn_vComputeOnePoBoundingVolume(PO_tdxHandleToPhysicalObject _hPhysicalObject);
 
/*extern CPA_EXPORT void GLI_vSendPOToViewport ( GLD_tdstViewportAttributes *p_stVpt , PO_tdxHandleToPhysicalObject h_stPhysicalObject , long lDrawModeMask);*/
 
/*ANNECY JMD 17/02/98{*/
extern CPA_EXPORT unsigned char PO_ucGetNumberOfRLIFromCharacter (HIE_tdxHandleToSuperObject hSprObj, unsigned char *ucIndex1, unsigned char *ucIndex2, MTH_tdxReal *p_xPercent) ;
/*ANNECY JMD }*/
 
#ifdef  __cplusplus
}/* extern "C" */
#endif
 
/* __POPROTO_H__*/
#endif 
