#pragma once #include #include #include namespace mbgl { template class Faded { public: T from; T to; }; template class CrossFadedPropertyEvaluator { public: using ResultType = Faded; CrossFadedPropertyEvaluator(const PropertyEvaluationParameters& parameters_, T defaultValue_) : parameters(parameters_), defaultValue(std::move(defaultValue_)) {} Faded operator()(const style::Undefined&) const; Faded operator()(const T& constant) const; Faded operator()(const style::PropertyExpression&) const; private: Faded calculate(const T& min, const T& mid, const T& max) const; const PropertyEvaluationParameters& parameters; T defaultValue; }; namespace util { template struct Interpolator> : Uninterpolated {}; } // namespace util } // namespace mbgl