There are several approaches developers may use to access the parameters that define the properties of a light. One way is to call LightObject::EvalLightState(). This method updates the LightState structure passed to it. This structure contains basic information about the light such as its type, color, attenuation ranges, etc.). The structure is valid for a single point in time for animated lights.
Another approach is to call the individual get and set methods of the light directly. Since lights are sub-classed from LightObject or GenLight, the methods of these classes may be called to get and set additional properties. This provides not only read access but also the ability to change the lights properties. If animate mode is set to on, a developer may animate the lights in this way.
Finally, developers may access the controllers that handle the animation of lights. This can be used to determine exactly what type of interpolation is being done by the lights when they are animated (by looking at the Controller's Class_ID). Also, the Control::GetValue() and Control::SetValue() method of the controller may be used to access the lights properties.