osb/source/game/StarLightSource.hpp
2024-02-25 15:46:47 +01:00

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);
}