## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# iengine/light.h File Reference

Light interfaces. More...

`#include "csutil/scf.h"`
`#include "iengine/fview.h"`

Go to the source code of this file.

## Classes

struct | iLight
| The iLight interface is the SCF interface for the csLight class. More...
struct | iLightCallback
| Set a callback which is called when this light color is changed. More...
struct | iLightingProcessData
| The iLightingProcessData interface can be implemented by a mesh object so that it can attach additional information for the lighting process. More...
struct | iLightingProcessInfo
| The iLightingProcessInfo interface holds information for the lighting system. More...
struct | iLightIterator
| Iterator to iterate over all static lights in the engine. More...
struct | iLightList
| This structure represents a list of lights. More...

## Light flags

#define | CS_LIGHT_ACTIVEHALO 0x80000000
| If this flag is set, the halo for this light is active and is in the engine's queue of active halos.

## Attenuation modes

Attenuation controls how the brightness of a light fades with distance. Apart from the attenuation mode there are one to tree constants, which change meaning depending on attenuation mode. There are five attenuation formulas: (distance is distance between point for which lighting is computed and the light)

- no attenuation = light * 1
- linear attenuation = light * (1 - distance / constant1)
- inverse attenuation = light / distance
- realistic attenuation = light / distance^2
- CLQ, Constant Linear Quadratic = light / (constant1 + constant2*distance + constant3*distance^2)

enum | csLightAttenuationMode { CS_ATTN_NONE = 0, CS_ATTN_LINEAR = 1, CS_ATTN_INVERSE = 2, CS_ATTN_REALISTIC = 3, CS_ATTN_CLQ = 4 }

## Light Dynamic Types

enum | csLightDynamicType { CS_LIGHT_DYNAMICTYPE_STATIC = 1, CS_LIGHT_DYNAMICTYPE_PSEUDO = 2, CS_LIGHT_DYNAMICTYPE_DYNAMIC = 3 }

## Defines

#define | CS_DEFAULT_LIGHT_LEVEL 20
| Light level that is used when there is no light on the texture.
#define | CS_NORMAL_LIGHT_LEVEL 128
| Light level that corresponds to a normally lit texture.

## Enumerations

enum | csLightType { CS_LIGHT_POINTLIGHT, CS_LIGHT_DIRECTIONAL, CS_LIGHT_SPOTLIGHT }
| Type of lightsource. More...

## Detailed Description

Light interfaces.

Definition in file light.h.