p> When the engine detects that a light that is marked to have an halo is directly visible, an object of this type is created and put into a global queue maintained within the engine object. The light starts to brighten until it reaches maximal intensity; when the halo becomes obscured by something or goes out of view the intensity starts to decrease until it reaches zero; upon this event the halo object is destroyed and removed from halo queue.
Member Function Documentation
bool csLightHalo::ComputeNewIntensity (
csTicks ElapsedTime,
float & hintensity,
bool halo_vis )
add up elapsed time, and returns new intensity, given the current halo intensity.
Give whether halo is currently visible for fading in and out. returns true if intensity >0, returns false if intensity <= 0, when the halo is completely faded out. Called by Process.
The function changes halo brightness depending whenever the halo is obscured or not and returns "false" if halo has reached zero intensity and should be removed from halo queue. The function also actually projects, clips and draws the halo.