[core] Remove casts where expected type is part of the contract
This commit is contained in:
@@ -37,14 +37,14 @@ public:
|
||||
hasPattern(false) {
|
||||
|
||||
using PatternLayer = typename B::RenderLayerType;
|
||||
const auto renderLayer = layers.at(0)->as<PatternLayer>();
|
||||
const auto renderLayer = static_cast<const PatternLayer*>(layers.at(0));
|
||||
const typename PatternLayer::StyleLayerImpl& leader = renderLayer->impl();
|
||||
layout = leader.layout.evaluate(PropertyEvaluationParameters(zoom));
|
||||
sourceLayerID = leader.sourceLayer;
|
||||
groupID = renderLayer->getID();
|
||||
|
||||
for (const auto& layer : layers) {
|
||||
const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = layer->as<PatternLayer>()->paintProperties();
|
||||
const typename B::PossiblyEvaluatedPaintProperties evaluatedProps = static_cast<const PatternLayer*>(layer)->paintProperties();
|
||||
layerPaintProperties.emplace(layer->getID(), std::move(evaluatedProps));
|
||||
const auto patternProperty = evaluatedProps.template get<typename PatternLayer::PatternProperty>();
|
||||
const auto constantPattern = patternProperty.constantOr(Faded<std::basic_string<char> >{ "", ""});
|
||||
|
||||
@@ -50,11 +50,11 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters,
|
||||
pixelRatio(parameters.pixelRatio),
|
||||
tileSize(util::tileSize * overscaling),
|
||||
tilePixelRatio(float(util::EXTENT) / tileSize),
|
||||
textSize(layers.at(0)->as<RenderSymbolLayer>()->impl().layout.get<TextSize>()),
|
||||
iconSize(layers.at(0)->as<RenderSymbolLayer>()->impl().layout.get<IconSize>())
|
||||
textSize(toRenderSymbolLayer(layers.at(0))->impl().layout.get<TextSize>()),
|
||||
iconSize(toRenderSymbolLayer(layers.at(0))->impl().layout.get<IconSize>())
|
||||
{
|
||||
|
||||
const SymbolLayer::Impl& leader = layers.at(0)->as<RenderSymbolLayer>()->impl();
|
||||
const SymbolLayer::Impl& leader = toRenderSymbolLayer(layers.at(0))->impl();
|
||||
|
||||
layout = leader.layout.evaluate(PropertyEvaluationParameters(zoom));
|
||||
|
||||
@@ -91,8 +91,8 @@ SymbolLayout::SymbolLayout(const BucketParameters& parameters,
|
||||
|
||||
for (const auto& layer : layers) {
|
||||
layerPaintProperties.emplace(layer->getID(), std::make_pair(
|
||||
layer->as<RenderSymbolLayer>()->iconPaintProperties(),
|
||||
layer->as<RenderSymbolLayer>()->textPaintProperties()
|
||||
toRenderSymbolLayer(layer)->iconPaintProperties(),
|
||||
toRenderSymbolLayer(layer)->textPaintProperties()
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ CircleBucket::CircleBucket(const BucketParameters& parameters, const std::vector
|
||||
std::piecewise_construct,
|
||||
std::forward_as_tuple(layer->getID()),
|
||||
std::forward_as_tuple(
|
||||
layer->as<RenderCircleLayer>()->evaluated,
|
||||
toRenderCircleLayer(layer)->evaluated,
|
||||
parameters.tileID.overscaledZ));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ HeatmapBucket::HeatmapBucket(const BucketParameters& parameters, const std::vect
|
||||
std::piecewise_construct,
|
||||
std::forward_as_tuple(layer->getID()),
|
||||
std::forward_as_tuple(
|
||||
layer->as<RenderHeatmapLayer>()->evaluated,
|
||||
toRenderHeatmapLayer(layer)->evaluated,
|
||||
parameters.tileID.overscaledZ));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,4 +39,8 @@ inline bool RenderLayer::is<RenderCircleLayer>() const {
|
||||
return type == style::LayerType::Circle;
|
||||
}
|
||||
|
||||
inline const RenderCircleLayer* toRenderCircleLayer(const RenderLayer* layer) {
|
||||
return static_cast<const RenderCircleLayer*>(layer);
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -49,4 +49,8 @@ inline bool RenderLayer::is<RenderHeatmapLayer>() const {
|
||||
return type == style::LayerType::Heatmap;
|
||||
}
|
||||
|
||||
inline const RenderHeatmapLayer* toRenderHeatmapLayer(const RenderLayer* layer) {
|
||||
return static_cast<const RenderHeatmapLayer*>(layer);
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -99,4 +99,8 @@ inline bool RenderLayer::is<RenderSymbolLayer>() const {
|
||||
return type == style::LayerType::Symbol;
|
||||
}
|
||||
|
||||
inline const RenderSymbolLayer* toRenderSymbolLayer(const RenderLayer* layer) {
|
||||
return static_cast<const RenderSymbolLayer*>(layer);
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
Reference in New Issue
Block a user