-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
80e54b5
commit 8666655
Showing
12 changed files
with
1,587 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
github: JaffaKetchup |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
name: CI/CD | ||
on: | ||
push: | ||
workflow_dispatch: | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
score-package: | ||
name: "Score Package" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v3 | ||
- name: Run Dart Package Analyser | ||
uses: axel-op/dart-package-analyzer@master | ||
id: analysis | ||
with: | ||
githubToken: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Check Package Scores | ||
env: | ||
TOTAL: ${{ steps.analysis.outputs.total }} | ||
TOTAL_MAX: ${{ steps.analysis.outputs.total_max }} | ||
run: | | ||
if (( $TOTAL < $TOTAL_MAX )) | ||
then | ||
echo Package score less than available score. Improve the score! | ||
exit 1 | ||
fi | ||
analyse-code: | ||
name: "Analyse Code" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v3 | ||
- name: Setup Flutter Environment | ||
uses: subosito/flutter-action@v2 | ||
with: | ||
channel: "stable" | ||
- name: Get Package & Example Dependencies | ||
run: flutter pub get | ||
- name: Get Test Tile Server Dependencies | ||
run: dart pub get -C tile_server | ||
- name: Check Formatting | ||
run: dart format --output=none --set-exit-if-changed . | ||
- name: Check Lints | ||
run: dart analyze --fatal-infos --fatal-warnings | ||
|
||
run-tests: | ||
name: "Run Tests" | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v3 | ||
- name: Setup Flutter Environment | ||
uses: subosito/flutter-action@v2 | ||
with: | ||
channel: "stable" | ||
- name: Run Tests | ||
run: flutter test -r expanded |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# https://dart.dev/guides/libraries/private-files | ||
# Created by `dart pub` | ||
.dart_tool/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Changelog | ||
|
||
## 1.0.0 | ||
|
||
- Initial version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# dart_earcut | ||
|
||
Ear-clipping (earcutting) triangulation algorithm, ported (with minor API differences) from [earcut4j/earcut4j](https://github.com/earcut4j/earcut4j) and [mapbox/earcut](https://github.com/mapbox/earcut). | ||
|
||
## Usage | ||
|
||
* 2D (x/y) coordinates, without holes | ||
* `triangulateRaw`: expects points in the format `[x0, y0, x1, y1, x2, y2, ...]` | ||
* `triangulateFromPoints`: expects 'dart:math's `Point` objects | ||
|
||
```dart | ||
final triangles = Earcut.triangulateRaw([10,0, 0,50, 60,60, 70,10]); | ||
final triangles = Earcut.triangulateFromPoints([Point(10, 0), Point(0,50), Point(60,60), Point(70,10)]); | ||
// Both return [1,0,3, 3,2,1] | ||
``` | ||
|
||
* Holes | ||
A list of hole indicies, if any. For example, `[5, 8]` for a 12-vertice input would mean one hole with vertices 5-7 and another with 8-11. If you pass a single vertice as a hole, Earcut treats it as a Steiner point. | ||
|
||
```dart | ||
final List<int> triangles = Earcut.triangulateRaw([0, 0, 100, 0, 100, 100, 0, 100, 20, 20, 80, 20, 80, 80, 20, 80], holeIndices: [4]); | ||
// Returns [3,0,4, 5,4,0, 3,4,7, 5,0,1, 2,3,7, 6,5,1, 2,7,6, 6,1,2] | ||
``` | ||
|
||
* More dimensions | ||
Expected to be in the format `[x0, y0, z0, x1, y1, z1, x2, y2, z2, ...]` | ||
|
||
```dart | ||
final List<int> triangles = Earcut.triangulateRaw([10, 0, 1, 0, 50, 2, 60, 60, 3, 70, 10, 4], dimensions: 3); | ||
// Returns [1,0,3, 3,2,1] | ||
``` | ||
|
||
## The Algorithm | ||
|
||
The library implements a modified ear slicing algorithm, optimized by [z-order curve](http://en.wikipedia.org/wiki/Z-order_curve) hashing and extended to handle holes, twisted polygons, degeneracies and self-intersections in a way that doesn't _guarantee_ correctness of triangulation, but attempts to always produce acceptable results for practical data. | ||
|
||
It's based on ideas from [FIST: Fast Industrial-Strength Triangulation of Polygons](http://www.cosy.sbg.ac.at/~held/projects/triang/triang.html) by Martin Held and[Triangulation by Ear Clipping](http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf) by David Eberly. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
include: jaffa_lints.yaml | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,185 @@ | ||
linter: | ||
rules: | ||
- always_declare_return_types | ||
- always_require_non_null_named_parameters | ||
- annotate_overrides | ||
- avoid_annotating_with_dynamic | ||
- avoid_catching_errors | ||
- avoid_double_and_int_checks | ||
- avoid_dynamic_calls | ||
- avoid_empty_else | ||
- avoid_escaping_inner_quotes | ||
- avoid_field_initializers_in_const_classes | ||
- avoid_final_parameters | ||
- avoid_function_literals_in_foreach_calls | ||
- avoid_implementing_value_types | ||
- avoid_init_to_null | ||
- avoid_js_rounded_ints | ||
- avoid_multiple_declarations_per_line | ||
- avoid_null_checks_in_equality_operators | ||
- avoid_positional_boolean_parameters | ||
- avoid_print | ||
- avoid_private_typedef_functions | ||
- avoid_redundant_argument_values | ||
- avoid_relative_lib_imports | ||
- avoid_renaming_method_parameters | ||
- avoid_return_types_on_setters | ||
- avoid_returning_null | ||
- avoid_returning_null_for_future | ||
- avoid_returning_null_for_void | ||
- avoid_returning_this | ||
- avoid_setters_without_getters | ||
- avoid_shadowing_type_parameters | ||
- avoid_single_cascade_in_expression_statements | ||
- avoid_slow_async_io | ||
- avoid_type_to_string | ||
- avoid_types_as_parameter_names | ||
- avoid_unnecessary_containers | ||
- avoid_unused_constructor_parameters | ||
- avoid_void_async | ||
- avoid_web_libraries_in_flutter | ||
- await_only_futures | ||
- camel_case_extensions | ||
- camel_case_types | ||
- cancel_subscriptions | ||
- cascade_invocations | ||
- cast_nullable_to_non_nullable | ||
- close_sinks | ||
- comment_references | ||
- conditional_uri_does_not_exist | ||
- constant_identifier_names | ||
- control_flow_in_finally | ||
- curly_braces_in_flow_control_structures | ||
- depend_on_referenced_packages | ||
- deprecated_consistency | ||
- directives_ordering | ||
- do_not_use_environment | ||
- empty_catches | ||
- empty_constructor_bodies | ||
- empty_statements | ||
- eol_at_end_of_file | ||
- exhaustive_cases | ||
- file_names | ||
- hash_and_equals | ||
- implementation_imports | ||
- iterable_contains_unrelated_type | ||
- join_return_with_assignment | ||
- leading_newlines_in_multiline_strings | ||
- library_names | ||
- library_prefixes | ||
- library_private_types_in_public_api | ||
- list_remove_unrelated_type | ||
- literal_only_boolean_expressions | ||
- missing_whitespace_between_adjacent_strings | ||
- no_adjacent_strings_in_list | ||
- no_default_cases | ||
- no_duplicate_case_values | ||
- no_leading_underscores_for_library_prefixes | ||
- no_leading_underscores_for_local_identifiers | ||
- no_logic_in_create_state | ||
- no_runtimeType_toString | ||
- non_constant_identifier_names | ||
- noop_primitive_operations | ||
- null_check_on_nullable_type_parameter | ||
- null_closures | ||
- one_member_abstracts | ||
- only_throw_errors | ||
- overridden_fields | ||
- package_api_docs | ||
- package_names | ||
- package_prefixed_library_names | ||
- parameter_assignments | ||
- prefer_adjacent_string_concatenation | ||
- prefer_asserts_in_initializer_lists | ||
- prefer_asserts_with_message | ||
- prefer_collection_literals | ||
- prefer_conditional_assignment | ||
- prefer_const_constructors | ||
- prefer_const_constructors_in_immutables | ||
- prefer_const_declarations | ||
- prefer_const_literals_to_create_immutables | ||
- prefer_constructors_over_static_methods | ||
- prefer_contains | ||
- prefer_equal_for_default_values | ||
- prefer_expression_function_bodies | ||
- prefer_final_fields | ||
- prefer_final_in_for_each | ||
- prefer_final_locals | ||
- prefer_for_elements_to_map_fromIterable | ||
- prefer_foreach | ||
- prefer_function_declarations_over_variables | ||
- prefer_generic_function_type_aliases | ||
- prefer_if_null_operators | ||
- prefer_initializing_formals | ||
- prefer_inlined_adds | ||
- prefer_int_literals | ||
- prefer_interpolation_to_compose_strings | ||
- prefer_is_empty | ||
- prefer_is_not_empty | ||
- prefer_is_not_operator | ||
- prefer_iterable_whereType | ||
- prefer_mixin | ||
- prefer_null_aware_method_calls | ||
- prefer_null_aware_operators | ||
- prefer_relative_imports | ||
- prefer_single_quotes | ||
- prefer_spread_collections | ||
- prefer_typing_uninitialized_variables | ||
- prefer_void_to_null | ||
- provide_deprecation_message | ||
- recursive_getters | ||
- require_trailing_commas | ||
- secure_pubspec_urls | ||
- sized_box_for_whitespace | ||
- sized_box_shrink_expand | ||
- slash_for_doc_comments | ||
- sort_child_properties_last | ||
- sort_pub_dependencies | ||
- sort_unnamed_constructors_first | ||
- test_types_in_equals | ||
- throw_in_finally | ||
- tighten_type_of_initializing_formals | ||
- type_annotate_public_apis | ||
- type_init_formals | ||
- unawaited_futures | ||
- unnecessary_await_in_return | ||
- unnecessary_brace_in_string_interps | ||
- unnecessary_const | ||
- unnecessary_constructor_name | ||
- unnecessary_getters_setters | ||
- unnecessary_lambdas | ||
- unnecessary_late | ||
- unnecessary_new | ||
- unnecessary_null_aware_assignments | ||
- unnecessary_null_checks | ||
- unnecessary_null_in_if_null_operators | ||
- unnecessary_nullable_for_final_variable_declarations | ||
- unnecessary_overrides | ||
- unnecessary_parenthesis | ||
- unnecessary_raw_strings | ||
- unnecessary_statements | ||
- unnecessary_string_escapes | ||
- unnecessary_string_interpolations | ||
- unnecessary_this | ||
- unrelated_type_equality_checks | ||
- unsafe_html | ||
- use_build_context_synchronously | ||
- use_colored_box | ||
- use_decorated_box | ||
- use_enums | ||
- use_full_hex_values_for_flutter_colors | ||
- use_function_type_syntax_for_parameters | ||
- use_if_null_to_convert_nulls_to_bools | ||
- use_is_even_rather_than_modulo | ||
- use_key_in_widget_constructors | ||
- use_late_for_private_fields_and_variables | ||
- use_named_constants | ||
- use_raw_strings | ||
- use_rethrow_when_possible | ||
- use_setters_to_change_properties | ||
- use_string_buffers | ||
- use_super_parameters | ||
- use_test_throws_matchers | ||
- use_to_and_as_if_applicable | ||
- valid_regexps | ||
- void_checks |
Oops, something went wrong.