blob: 8810220dcbf3d0a4697cefb90824cdec155173fc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#pragma once
#include "StarVector.hpp"
#include "StarDataStream.hpp"
namespace Star {
struct LightSource {
Vec2F position;
Vec3B color;
bool pointLight;
// pointBeam of 0.0 means light has no beam component, as pointBeam goes up,
// the dropoff from the beamAngle becomes faster and faster.
float pointBeam;
// The angle of the beam component of the light in radians
float beamAngle;
// beamAmbience provides a floor to the dropoff for beamed lights, so that
// even where the beam is not pointing there will still be some light. 0.0
// means no ambient floor, 1.0 effectively turns off beaming.
float beamAmbience;
void translate(Vec2F const& pos);
};
DataStream& operator<<(DataStream& ds, LightSource const& lightSource);
DataStream& operator>>(DataStream& ds, LightSource& lightSource);
}
|