prepareScalePaintMixin method

void prepareScalePaintMixin(
  1. int zoomLevel
)
inherited

Implementation

void prepareScalePaintMixin(int zoomLevel) {
  if (this._strokes[zoomLevel] != null) return;
  if (zoomLevel >= _strokeMinZoomLevel) {
    int zoomLevelDiff = zoomLevel - _strokeMinZoomLevel + 1;
    double scaleFactor = pow(STROKE_INCREASE, zoomLevelDiff) as double;
    MapPaint paint = GraphicFactory().createPaintFrom(this._stroke);
    paint.setStrokeWidth(paint.getStrokeWidth() * scaleFactor);
    // print(
    //     "setScrokeWitha for ${paint.getStrokeWidth()} $scaleFactor $zoomLevelDiff $zoomLevel ${_stroke.getStrokeWidth()}");
    if (_strokeDasharray != null) {
      List<double> strokeDasharrayScaled = this._strokeDasharray!.map((dash) {
        return dash * scaleFactor;
      }).toList();
      paint.setStrokeDasharray(strokeDasharrayScaled);
    }
    this._strokes[zoomLevel] = paint;

    //MapPaint f = GraphicFactory().createPaintFrom(this._fill);
    this._fills[zoomLevel] = _fill;

    double dy = _dy * scaleFactor;
    _dyScaled[zoomLevel] = dy;
  } else {
    this._strokes[zoomLevel] = _stroke;
    _fills[zoomLevel] = _fill;
    _dyScaled[zoomLevel] = _dy;
  }
}