#pragma once #include #include #include #include #include #include #include namespace mbgl { namespace style { template class PaintProperty { public: using TransitionableType = Transitionable>; using UnevaluatedType = Transitioning>; using EvaluatorType = PropertyEvaluator; using PossiblyEvaluatedType = T; using Type = T; static constexpr bool IsDataDriven = false; }; template class DataDrivenPaintProperty { public: using TransitionableType = Transitionable>; using UnevaluatedType = Transitioning>; using EvaluatorType = DataDrivenPropertyEvaluator; using PossiblyEvaluatedType = PossiblyEvaluatedPropertyValue; using Type = T; static constexpr bool IsDataDriven = true; using Attribute = A; using Uniform = U; }; template class CrossFadedPaintProperty { public: using TransitionableType = Transitionable>; using UnevaluatedType = Transitioning>; using EvaluatorType = CrossFadedPropertyEvaluator; using PossiblyEvaluatedType = Faded; using Type = T; static constexpr bool IsDataDriven = false; }; } // namespace style } // namespace mbgl