29 lines
827 B
C++
29 lines
827 B
C++
#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);
|
|
}
|