00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IENGINE_LOD_H__
00020 #define __IENGINE_LOD_H__
00021
00022 #include "csutil/scf.h"
00023
00024 #define CS_LOD_TRIANGLE_REDUCTION 1
00025 #define CS_LOD_LIGHT_QUALITY 2
00026 #define CS_LOD_LIGHT_QUANTITY 4
00027 #define CS_LOD_FRAME_ANIMATION 8
00028 #define CS_LOD_SKELETAL_ANIMATION 16
00029 #define CS_LOD_TEXTURE_DETAIL 32
00030 #define CS_LOD_TEXTURE_SIZE 64
00031 #define CS_LOD_DISTANCE_REDUCTION 128
00032 #define CS_LOD_ALL (~0)
00033
00034 SCF_VERSION (iLODControl, 0, 0, 1);
00035
00041 struct iLODControl : public iBase
00042 {
00048 virtual uint32 GetLODFeatures () const = 0;
00049
00055 virtual void SetLODFeatures (uint32 mask, uint32 value) = 0;
00056
00064 virtual void SetLOD (float lod) = 0;
00065
00069 virtual float GetLOD () const = 0;
00070
00077 virtual int GetLODPolygonCount (float lod) const = 0;
00078
00083 virtual uint32 GetAvailableLODFeatures () const = 0;
00084
00090 virtual uint32 GetAvailableDistanceFeatures () const = 0;
00091
00097 virtual uint32 GetDistanceReduction () const = 0;
00098
00103 virtual void SetDistanceReduction (uint32 mask, uint32 value) = 0;
00104
00109 virtual void SetLODPriority (uint16 group) = 0;
00110
00114 virtual uint16 GetLODPriority () const = 0;
00115
00116 virtual void SetMinLODThreshold (float level, bool turnOff) = 0;
00117 };
00118
00119 #endif // __IENGINE_LOD_H__
00120