#pragma once #include #include #include #include #include #include namespace mbgl { namespace style { template class LightProperty { public: using Type = T; using ValueType = PropertyValue; PropertyValue value; TransitionOptions transition; }; struct LightAnchor : LightProperty { static LightAnchorType defaultValue() { return LightAnchorType::Viewport; } }; struct LightPosition : LightProperty { static Position defaultValue() { std::array default_ = { { 1.15, 210, 30 } }; return Position{ { default_ } }; } }; struct LightColor : LightProperty { static Color defaultValue() { return Color::white(); } }; struct LightIntensity : LightProperty { static float defaultValue() { return 0.5; } }; using LightProperties = TypeList; class Light : public IndexedTuple {}; } // namespace style } // namespace mbgl