diff options
author | Jesse Bounds <jesse@rebounds.net> | 2017-01-04 07:35:25 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-02-02 09:44:42 -0800 |
commit | 22b3834caa5fe3ae91cf957124a3f1ad1d165cee (patch) | |
tree | 95439ccd498c414acfec70dc41b94ab9591f18c8 /platform/darwin/src/MGLLineStyleLayer.mm | |
parent | f562ecdfc3a08f7b9b0c2be938f237852a82d374 (diff) | |
download | qtlocation-mapboxgl-22b3834caa5fe3ae91cf957124a3f1ad1d165cee.tar.gz |
[ios, macos] Add support for data-driven property functions
Diffstat (limited to 'platform/darwin/src/MGLLineStyleLayer.mm')
-rw-r--r-- | platform/darwin/src/MGLLineStyleLayer.mm | 98 |
1 files changed, 70 insertions, 28 deletions
diff --git a/platform/darwin/src/MGLLineStyleLayer.mm b/platform/darwin/src/MGLLineStyleLayer.mm index 73ffa9a5ae..6f1d2ee249 100644 --- a/platform/darwin/src/MGLLineStyleLayer.mm +++ b/platform/darwin/src/MGLLineStyleLayer.mm @@ -150,7 +150,10 @@ namespace mbgl { - (MGLStyleValue<NSValue *> *)lineCap { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineCap() ?: self.rawLayer->getDefaultLineCap(); + auto propertyValue = self.rawLayer->getLineCap(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<mbgl::style::LineCapType, NSValue *, mbgl::style::LineCapType, MGLLineCap>().toEnumStyleValue(self.rawLayer->getDefaultLineCap()); + } return MGLStyleValueTransformer<mbgl::style::LineCapType, NSValue *, mbgl::style::LineCapType, MGLLineCap>().toEnumStyleValue(propertyValue); } @@ -164,35 +167,44 @@ namespace mbgl { - (MGLStyleValue<NSValue *> *)lineJoin { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineJoin() ?: self.rawLayer->getDefaultLineJoin(); + auto propertyValue = self.rawLayer->getLineJoin(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<mbgl::style::LineJoinType, NSValue *, mbgl::style::LineJoinType, MGLLineJoin>().toEnumStyleValue(self.rawLayer->getDefaultLineJoin()); + } return MGLStyleValueTransformer<mbgl::style::LineJoinType, NSValue *, mbgl::style::LineJoinType, MGLLineJoin>().toEnumStyleValue(propertyValue); } - (void)setLineMiterLimit:(MGLStyleValue<NSNumber *> *)lineMiterLimit { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineMiterLimit); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toInterpolatablePropertyValue(lineMiterLimit); self.rawLayer->setLineMiterLimit(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineMiterLimit { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineMiterLimit() ?: self.rawLayer->getDefaultLineMiterLimit(); + auto propertyValue = self.rawLayer->getLineMiterLimit(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(self.rawLayer->getDefaultLineMiterLimit()); + } return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); } - (void)setLineRoundLimit:(MGLStyleValue<NSNumber *> *)lineRoundLimit { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineRoundLimit); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toInterpolatablePropertyValue(lineRoundLimit); self.rawLayer->setLineRoundLimit(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineRoundLimit { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineRoundLimit() ?: self.rawLayer->getDefaultLineRoundLimit(); + auto propertyValue = self.rawLayer->getLineRoundLimit(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(self.rawLayer->getDefaultLineRoundLimit()); + } return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); } @@ -201,29 +213,35 @@ namespace mbgl { - (void)setLineBlur:(MGLStyleValue<NSNumber *> *)lineBlur { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineBlur); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenPropertyValue(lineBlur); self.rawLayer->setLineBlur(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineBlur { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineBlur() ?: self.rawLayer->getDefaultLineBlur(); - return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); + auto propertyValue = self.rawLayer->getLineBlur(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(self.rawLayer->getDefaultLineBlur()); + } + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } - (void)setLineColor:(MGLStyleValue<MGLColor *> *)lineColor { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toPropertyValue(lineColor); + auto mbglValue = MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toDataDrivenPropertyValue(lineColor); self.rawLayer->setLineColor(mbglValue); } - (MGLStyleValue<MGLColor *> *)lineColor { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineColor() ?: self.rawLayer->getDefaultLineColor(); - return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toStyleValue(propertyValue); + auto propertyValue = self.rawLayer->getLineColor(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toDataDrivenStyleValue(self.rawLayer->getDefaultLineColor()); + } + return MGLStyleValueTransformer<mbgl::Color, MGLColor *>().toDataDrivenStyleValue(propertyValue); } - (void)setLineDashPattern:(MGLStyleValue<NSArray<NSNumber *> *> *)lineDashPattern { @@ -236,7 +254,10 @@ namespace mbgl { - (MGLStyleValue<NSArray<NSNumber *> *> *)lineDashPattern { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineDasharray() ?: self.rawLayer->getDefaultLineDasharray(); + auto propertyValue = self.rawLayer->getLineDasharray(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<std::vector<float>, NSArray<NSNumber *> *, float>().toStyleValue(self.rawLayer->getDefaultLineDasharray()); + } return MGLStyleValueTransformer<std::vector<float>, NSArray<NSNumber *> *, float>().toStyleValue(propertyValue); } @@ -250,43 +271,52 @@ namespace mbgl { - (void)setLineGapWidth:(MGLStyleValue<NSNumber *> *)lineGapWidth { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineGapWidth); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenPropertyValue(lineGapWidth); self.rawLayer->setLineGapWidth(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineGapWidth { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineGapWidth() ?: self.rawLayer->getDefaultLineGapWidth(); - return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); + auto propertyValue = self.rawLayer->getLineGapWidth(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(self.rawLayer->getDefaultLineGapWidth()); + } + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } - (void)setLineOffset:(MGLStyleValue<NSNumber *> *)lineOffset { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineOffset); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenPropertyValue(lineOffset); self.rawLayer->setLineOffset(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineOffset { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineOffset() ?: self.rawLayer->getDefaultLineOffset(); - return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); + auto propertyValue = self.rawLayer->getLineOffset(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(self.rawLayer->getDefaultLineOffset()); + } + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } - (void)setLineOpacity:(MGLStyleValue<NSNumber *> *)lineOpacity { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineOpacity); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenPropertyValue(lineOpacity); self.rawLayer->setLineOpacity(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineOpacity { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineOpacity() ?: self.rawLayer->getDefaultLineOpacity(); - return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); + auto propertyValue = self.rawLayer->getLineOpacity(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(self.rawLayer->getDefaultLineOpacity()); + } + return MGLStyleValueTransformer<float, NSNumber *>().toDataDrivenStyleValue(propertyValue); } - (void)setLinePattern:(MGLStyleValue<NSString *> *)linePattern { @@ -299,21 +329,27 @@ namespace mbgl { - (MGLStyleValue<NSString *> *)linePattern { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLinePattern() ?: self.rawLayer->getDefaultLinePattern(); + auto propertyValue = self.rawLayer->getLinePattern(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(self.rawLayer->getDefaultLinePattern()); + } return MGLStyleValueTransformer<std::string, NSString *>().toStyleValue(propertyValue); } - (void)setLineTranslation:(MGLStyleValue<NSValue *> *)lineTranslation { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toPropertyValue(lineTranslation); + auto mbglValue = MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toInterpolatablePropertyValue(lineTranslation); self.rawLayer->setLineTranslate(mbglValue); } - (MGLStyleValue<NSValue *> *)lineTranslation { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineTranslate() ?: self.rawLayer->getDefaultLineTranslate(); + auto propertyValue = self.rawLayer->getLineTranslate(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(self.rawLayer->getDefaultLineTranslate()); + } return MGLStyleValueTransformer<std::array<float, 2>, NSValue *>().toStyleValue(propertyValue); } @@ -334,7 +370,10 @@ namespace mbgl { - (MGLStyleValue<NSValue *> *)lineTranslationAnchor { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineTranslateAnchor() ?: self.rawLayer->getDefaultLineTranslateAnchor(); + auto propertyValue = self.rawLayer->getLineTranslateAnchor(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *, mbgl::style::TranslateAnchorType, MGLLineTranslationAnchor>().toEnumStyleValue(self.rawLayer->getDefaultLineTranslateAnchor()); + } return MGLStyleValueTransformer<mbgl::style::TranslateAnchorType, NSValue *, mbgl::style::TranslateAnchorType, MGLLineTranslationAnchor>().toEnumStyleValue(propertyValue); } @@ -348,14 +387,17 @@ namespace mbgl { - (void)setLineWidth:(MGLStyleValue<NSNumber *> *)lineWidth { MGLAssertStyleLayerIsValid(); - auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toPropertyValue(lineWidth); + auto mbglValue = MGLStyleValueTransformer<float, NSNumber *>().toInterpolatablePropertyValue(lineWidth); self.rawLayer->setLineWidth(mbglValue); } - (MGLStyleValue<NSNumber *> *)lineWidth { MGLAssertStyleLayerIsValid(); - auto propertyValue = self.rawLayer->getLineWidth() ?: self.rawLayer->getDefaultLineWidth(); + auto propertyValue = self.rawLayer->getLineWidth(); + if (propertyValue.isUndefined()) { + return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(self.rawLayer->getDefaultLineWidth()); + } return MGLStyleValueTransformer<float, NSNumber *>().toStyleValue(propertyValue); } |