00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IENGINE_HALO_H__
00020 #define __IENGINE_HALO_H__
00021
00022 #include "csutil/scf.h"
00023 #include "csutil/flags.h"
00024
00025 struct iMaterialWrapper;
00026
00027 enum csHaloType
00028 {
00029 cshtCross,
00030 cshtNova,
00031 cshtFlare
00032 };
00033
00034 SCF_VERSION (iBaseHalo, 0, 0, 1);
00035
00039 struct iBaseHalo : public iBase
00040 {
00042 virtual void SetIntensity (float i) = 0;
00044 virtual float GetIntensity () = 0;
00045 };
00046
00047 SCF_VERSION (iCrossHalo, 0, 0, 1);
00048
00052 struct iCrossHalo : public iBase
00053 {
00055 virtual void SetIntensityFactor (float i) = 0;
00057 virtual float GetIntensityFactor () = 0;
00059 virtual void SetCrossFactor (float i) = 0;
00061 virtual float GetCrossFactor () = 0;
00062 };
00063
00064 SCF_VERSION (iNovaHalo, 0, 0, 1);
00065
00069 struct iNovaHalo : public iBase
00070 {
00072 virtual void SetRandomSeed (int s) = 0;
00074 virtual int GetRandomSeed () = 0;
00076 virtual void SetSpokeCount (int s) = 0;
00078 virtual int GetSpokeCount () = 0;
00080 virtual void SetRoundnessFactor (float r) = 0;
00082 virtual float GetRoundnessFactor () = 0;
00083 };
00084
00085 SCF_VERSION (iFlareHalo, 0, 0, 1);
00086
00090 struct iFlareHalo : public iBase
00091 {
00097 virtual void AddComponent (float pos, float w, float h, UInt mode,
00098 iMaterialWrapper *image) = 0;
00099 };
00100
00101 #endif // __IENGINE_HALO_H__