#ifndef D_THROW_VISUAL_SET
 
#ifndef VISUALSETH
#define VISUALSETH
 
 
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
  
  typedef struct GEO_tdstVisualSet_ *GEO_tdxHandleToVisualSet;
  
  /* For DLL using these function :*/
#include "cpa_expt.h" 
 
/*
 =======================================================================================
  Creation
 =======================================================================================
 */
 
GEO_tdxHandleToVisualSet GLI_p_stCreateVisualSet ( long lNbLOD);
GEO_tdxHandleToVisualSet GLI_p_stCreateTMPVisualSet ( long lNbLOD);
 
extern CPA_EXPORT void   GLI_vSetVisualSetLOD ( GEO_tdxHandleToVisualSet p_stVisualSet, long lNumberOfLodToSet, MTH_tdxReal xThreshold, GEO_tdstGeometricObject *p_stObject);
GEO_tdstGeometricObject  *GLI_hGetVisualSetGeometricForADistance( GEO_tdxHandleToVisualSet p_stVSE, MTH_tdxReal xThreshold );
extern CPA_EXPORT void   GLI_vGetVisualSetLOD ( GEO_tdxHandleToVisualSet p_stVisualSet, long lNumberOfLodToGet, MTH_tdxReal *p_xThreshold, GEO_tdstGeometricObject **h_stObject );
 
extern CPA_EXPORT long   GLI_lGetVisualSetNumbertOfLOD ( GEO_tdxHandleToVisualSet p_stVisualSet );
 
extern CPA_EXPORT void   GLI_p_stRecursiveReinitGameMaterialOfVisualsets ( GEO_tdxHandleToVisualSet p_stVisualSet );
  
/*
 =======================================================================================
  Display
 =======================================================================================
 */
 
extern CPA_EXPORT void   GLI_lSendVisualSetToViewport( struct GLD_tdstViewportAttributes_ *p_stVpt, struct GEO_tdstVisualSet_ *p_stVisualSet, MTH_tdxReal xDistance, long lDrawModeMask );
extern CPA_EXPORT void   GLI_lSendVisualSetToViewport2( struct GLD_tdstViewportAttributes_ *p_stVpt, struct GEO_tdstVisualSet_ *p_stVisualSet, MTH3D_tdstVector *p_xCenter, long lDrawModeMask );
    
extern CPA_EXPORT void   GLI_lSendVisualSetToViewportBV2( struct GLD_tdstViewportAttributes_ *p_stVpt, struct GEO_tdstVisualSet_ *p_stVisualSet, MTH3D_tdstVector *p_xCenter, MTH_tdxReal xRadiusOfSphere, long lDrawModeMask);
 
extern CPA_EXPORT void   GLI_lSendVisualSetToViewportWithRLI2( struct GLD_tdstViewportAttributes_ *p_stVpt, struct GEO_tdstVisualSet_ *p_stVisualSet, MTH3D_tdstVector *p_xCenter, long lDrawModeMask, ACP_tdxHandleToRadiosity hISI);
 
/*
 =======================================================================================
  RLI
 =======================================================================================
 */
extern CPA_EXPORT ACP_tdxHandleToRadiosity GLI_hGetRLI ( GEO_tdxHandleToVisualSet hVisualSet, unsigned char ucIndex ) ;

#ifndef D_THROW_IPO
extern CPA_EXPORT ACP_tdxHandleToRadiosity GLI_hComputeBlendRLI (GEO_tdxHandleToVisualSet hVisualSet, unsigned char ucIndex1, unsigned char ucIndex2, ACP_tdxIndex xNumISILOD,MTH_tdxReal xPercent) ;
#endif /* D_THROW_IPO */

extern CPA_EXPORT void GLI_vVisualSetSetRLITable (GEO_tdxHandleToVisualSet hVisualSet, ACP_tdxHandleToRadiosity *d_hRLI, long lNumberOfTable) ;
extern CPA_EXPORT ACP_tdxHandleToRadiosity *GLI_vVisualSetLoadRLI (char *szSection, long *lNumberOfTable) ;
 
#ifndef U64
extern SCR_tde_Anl_ReturnValue GLI_fn_xLoadRLI(SCR_tdst_File_Description *p_fFile, char *szAction, char *szParams[], SCR_tde_Anl_Action cType) ;
#endif
  
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif
 
#endif /* D_THROW_VISUAL_SET */
 
