+class Matrix;
+class ProgramData;
+
+/**
+Stores properties of a single light source. Lights can be directional, point
+lights or spotlights. No explicit type parameter is provided; rather the
+other parameters determine what kind of light it is. If the fourth component
+of position is zero, it's a directional light. Otherwise, if the spot cutoff
+is not 180 degrees, it's a spotlight. Otherwise it's an omnidirectional point
+light.
+
+Lights are usually grouped with a Lighting object, which can be used in a
+Pipeline::Pass.
+
+Lights do not cast shadows by themselves. See ShadowMap for that.
+*/
+class Light: public Placeable