00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IENGINE_LOD_H__
00020 #define __CS_IENGINE_LOD_H__
00021
00028 #include "csutil/scf.h"
00029
00033
00034 #define CS_LOD_TRIANGLE_REDUCTION 1
00035
00036 #define CS_LOD_LIGHT_QUALITY 2
00037
00038 #define CS_LOD_LIGHT_QUANTITY 4
00039
00040 #define CS_LOD_FRAME_ANIMATION 8
00041
00042 #define CS_LOD_SKELETAL_ANIMATION 16
00043
00044 #define CS_LOD_TEXTURE_DETAIL 32
00045
00046 #define CS_LOD_TEXTURE_SIZE 64
00047
00048 #define CS_LOD_DISTANCE_REDUCTION 128
00049
00050 #define CS_LOD_ALL (~0)
00051
00053 SCF_VERSION (iLODControl, 0, 0, 1);
00054
00060 struct iLODControl : public iBase
00061 {
00067 virtual uint32 GetLODFeatures () const = 0;
00068
00086 virtual void SetLODFeatures (uint32 mask, uint32 value) = 0;
00087
00095 virtual void SetLOD (float lod) = 0;
00096
00100 virtual float GetLOD () const = 0;
00101
00108 virtual int GetLODPolygonCount (float lod) const = 0;
00109
00114 virtual uint32 GetAvailableLODFeatures () const = 0;
00115
00121 virtual uint32 GetAvailableDistanceFeatures () const = 0;
00122
00128 virtual uint32 GetDistanceReduction () const = 0;
00129
00134 virtual void SetDistanceReduction (uint32 mask, uint32 value) = 0;
00135
00140 virtual void SetLODPriority (uint16 group) = 0;
00141
00145 virtual uint16 GetLODPriority () const = 0;
00146
00148 virtual void SetMinLODThreshold (float level, bool turnOff) = 0;
00149 };
00150
00153 #endif // __CS_IENGINE_LOD_H__
00154