/****************************************** * * * RenderWare(TM) Graphics Library * * * ******************************************/ /* * This file is a product of Criterion Software Ltd. * * This file is provided as is with no warranties of any kind and is * provided without any obligation on Criterion Software Ltd. * or Canon Inc. to assist in its use or modification. * * Criterion Software Ltd. and Canon Inc. will not, under any * circumstances, be liable for any lost revenue or other damages * arising from the use of this file. * * Copyright (c) 1998. Criterion Software Ltd. * All Rights Reserved. */ /*************************************************************************** * * * Module : rplodatm.h * * * * Purpose : LODATM Geometry * * * **************************************************************************/ #ifndef RPLODATM_H #define RPLODATM_H /** * \defgroup rplodatm RpLODAtomic * \ingroup rpplugin * * Level of Detail Management Plugin for RenderWare Graphics. */ /**************************************************************************** Includes */ #include "rwcore.h" #include "rpworld.h" #include "rpcriter.h" /* Note: each vendor can choose their own method for * allocation of unique ID's. This file defines * the ID's used by Criterion. */ #include "rplodatm.rpe" /* automatically generated header file */ /**************************************************************************** Defines */ #define RPLODATOMICMAXLOD 10 /**************************************************************************** Type defs */ typedef RwInt32 (*RpLODAtomicLODCallBack)( RpAtomic *atomic ); /**************************************************************************** Function prototypes */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ extern RwBool RpLODAtomicPluginAttach( void ); extern RpAtomic * RpLODAtomicSetGeometry( RpAtomic *atomic, RwInt32 lodIdx, RpGeometry *geometry ); extern RpGeometry * RpLODAtomicGetGeometry( RpAtomic *atomic, RwInt32 lodIdx ); extern RpAtomic * RpLODAtomicSetCurrentLOD( RpAtomic *atomic, RwInt32 lodIdx ); extern RwInt32 RpLODAtomicGetCurrentLOD( RpAtomic *atomic ); extern RpAtomic * RpLODAtomicSetRange( RpAtomic *atomic, RwReal farRange ); extern RwReal RpLODAtomicGetRange( RpAtomic *atomic ); extern void RpLODAtomicSetCamera( RwCamera *camera ); extern RpAtomic * RpLODAtomicSetLODCallBack( RpAtomic *atomic, RpLODAtomicLODCallBack callback ); extern RpAtomic * RpLODAtomicSelectLOD( RpAtomic *atomic ); extern RpAtomic * RpLODAtomicForAllLODGeometries( RpAtomic *atomic, RpGeometryCallBack callback, void *pData ); extern RpAtomic * RpLODAtomicHookRender( RpAtomic *atomic ); extern RpAtomic * RpLODAtomicUnHookRender( RpAtomic *atomic ); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* RPLODATM_H */