Skip to content

Commit

Permalink
feat!: support of solid, dotted, dashed styles for polygons, with opt…
Browse files Browse the repository at this point in the history
…imized rendering (#1865)

* feat!: support of solid, dotted, dashed styles for polygons, with optimized rendering

New files:
* `pixel_hiker.dart`: Pixel hikers that list the visible items on the way. Code used to be in `polyline_layer/painter.dart`, but was heavily refactored with #1854 in mind
* `visible_segment.dart`: Cohen-Sutherland algorithm to clip segments as visible into a canvas. Code used to be in `polygon_layer/painter.dart`, and was lightly refactored.

Impacted files:
* `polygon_layer/painter.dart`: now using new file `pixel_hiker.dart` for optimized rendering; moved "clip code" to new file `visible_segment.dart`; minor refactoring about parameter order consistency
* `polyline_layer/painter.dart`: now using new file `pixel_hiker.dart` for optimized rendering; moved "pixel hiker" to new file `pixel_hiker.dart`
* `pages/polygon.dart`: replaced `bool isDotted` with `PolylinePattern pattern` and in one case replaced it with "dashed"
* `polygon_layer/polygon.dart`: BREAKING - replaced `bool isDotted` with `PolylinePattern pattern`
* `polygon_layer/polygon_layer.dart`: minor refactoring
* `polyline_layer/polyline_layer.dart`: minor refactoring

* Renamed `PolylinePattern` to `StrokePattern`
Re-organised file structure

* Review changes

Co-authored-by: monsieurtanuki <fabrice_fontaine@hotmail.com>

* Update lib/src/layer/general/line_patterns/stroke_pattern.dart

Co-authored-by: Joscha <34318751+josxha@users.noreply.github.com>

* Update lib/src/layer/general/line_patterns/pixel_hiker.dart

Co-authored-by: Joscha <34318751+josxha@users.noreply.github.com>

* Update lib/src/layer/general/line_patterns/stroke_pattern.dart

Co-authored-by: Joscha <34318751+josxha@users.noreply.github.com>

* Minor file re-organisation

* Fixed bug

---------

Co-authored-by: JaffaKetchup <github@jaffaketchup.dev>
Co-authored-by: Joscha <34318751+josxha@users.noreply.github.com>
  • Loading branch information
3 people committed Apr 10, 2024
1 parent 4d6a1c7 commit 930e8b6
Show file tree
Hide file tree
Showing 16 changed files with 588 additions and 490 deletions.
8 changes: 4 additions & 4 deletions example/lib/pages/polygon.dart
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,12 @@ class _PolygonPageState extends State<PolygonPage> {
LatLng(46.22, -0.11),
LatLng(44.399, 1.76),
],
isDotted: true,
pattern: StrokePattern.dashed(segments: const [50, 20]),
borderStrokeWidth: 4,
borderColor: Colors.lightBlue,
color: Colors.yellow,
hitValue: (
title: 'Polygon With Dotted Borders',
title: 'Polygon With Dashed Borders',
subtitle: '...',
),
),
Expand Down Expand Up @@ -105,7 +105,7 @@ class _PolygonPageState extends State<PolygonPage> {
LatLng(54, -14),
LatLng(54, -18),
].map((latlng) => LatLng(latlng.latitude, latlng.longitude + 8)).toList(),
isDotted: true,
pattern: const StrokePattern.dotted(),
holePointsList: [
const [
LatLng(52, -17),
Expand Down Expand Up @@ -151,7 +151,7 @@ class _PolygonPageState extends State<PolygonPage> {
]
.map((latlng) => LatLng(latlng.latitude - 6, latlng.longitude + 8))
.toList(),
isDotted: true,
pattern: const StrokePattern.dotted(),
holePointsList: [
const [
LatLng(52, -17),
Expand Down
4 changes: 2 additions & 2 deletions example/lib/pages/polyline.dart
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class _PolylinePageState extends State<PolylinePage> {
],
strokeWidth: 10,
color: Colors.orange,
pattern: const PolylinePattern.dotted(
pattern: const StrokePattern.dotted(
spacingFactor: 3,
),
borderStrokeWidth: 8,
Expand Down Expand Up @@ -138,7 +138,7 @@ class _PolylinePageState extends State<PolylinePage> {
],
strokeWidth: 6,
color: Colors.green[900]!,
pattern: PolylinePattern.dashed(
pattern: StrokePattern.dashed(
segments: const [50, 20, 30, 20],
),
borderStrokeWidth: 6,
Expand Down
7 changes: 4 additions & 3 deletions lib/flutter_map.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@ export 'package:flutter_map/src/layer/attribution_layer/rich/source.dart';
export 'package:flutter_map/src/layer/attribution_layer/rich/widget.dart';
export 'package:flutter_map/src/layer/attribution_layer/simple.dart';
export 'package:flutter_map/src/layer/circle_layer/circle_layer.dart';
export 'package:flutter_map/src/layer/general/hit_detection.dart';
export 'package:flutter_map/src/layer/general/mobile_layer_transformer.dart';
export 'package:flutter_map/src/layer/general/translucent_pointer.dart';
export 'package:flutter_map/src/layer/marker_layer/marker_layer.dart';
export 'package:flutter_map/src/layer/misc/hit_detection.dart';
export 'package:flutter_map/src/layer/misc/line_patterns/stroke_pattern.dart';
export 'package:flutter_map/src/layer/misc/mobile_layer_transformer.dart';
export 'package:flutter_map/src/layer/misc/translucent_pointer.dart';
export 'package:flutter_map/src/layer/overlay_image_layer/overlay_image_layer.dart';
export 'package:flutter_map/src/layer/polygon_layer/polygon_layer.dart';
export 'package:flutter_map/src/layer/polyline_layer/polyline_layer.dart';
Expand Down
File renamed without changes.
Loading

0 comments on commit 930e8b6

Please sign in to comment.