132 lines
3.7 KiB
C
132 lines
3.7 KiB
C
|
|
/******************************************
|
|
* *
|
|
* 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 */
|
|
|