1 #pragma once 2 3 #include <mbgl/style/property_value.hpp> 4 #include <mbgl/style/data_driven_property_value.hpp> 5 #include <mbgl/renderer/property_evaluator.hpp> 6 #include <mbgl/renderer/data_driven_property_evaluator.hpp> 7 8 namespace mbgl { 9 namespace style { 10 11 template <class T> 12 class LayoutProperty { 13 public: 14 using TransitionableType = std::nullptr_t; 15 using UnevaluatedType = PropertyValue<T>; 16 using EvaluatorType = PropertyEvaluator<T>; 17 using PossiblyEvaluatedType = T; 18 using Type = T; 19 static constexpr bool IsDataDriven = false; 20 }; 21 22 template <class T> 23 class DataDrivenLayoutProperty { 24 public: 25 using TransitionableType = std::nullptr_t; 26 using UnevaluatedType = DataDrivenPropertyValue<T>; 27 using EvaluatorType = DataDrivenPropertyEvaluator<T>; 28 using PossiblyEvaluatedType = PossiblyEvaluatedPropertyValue<T>; 29 using Type = T; 30 static constexpr bool IsDataDriven = true; 31 }; 32 33 } // namespace style 34 } // namespace mbgl 35