aboutsummaryrefslogtreecommitdiff
path: root/src/math
Commit message (Collapse)AuthorAgeLines
* Merge branch 'triangulation' into polygon-roomsArne Dußin2020-11-23-340/+825
|\
| * Add triangulation functionArne Dußin2020-11-23-12/+49
| |
| * Fix corner case not being handledArne Dußin2020-11-23-2/+97
| | | | | | | | | | | | | | | | Previously, the algorithm to check, if a line-segment is inside a polygon did not have a special case for when the start or end of the segment is on a polygon corner. In case this corner is reflexive, checking against one line between this corner and an adjacent one may not be enough.
| * Add ear clipping algorithmArne Dußin2020-11-23-6/+201
| |
| * Move containment of points/ lines into traitArne Dußin2020-11-21-81/+100
| |
| * Move polygon functions into own modArne Dußin2020-11-21-9/+15
| | | | | | | | | | The math module was starting to be mostly polygon files and functions, so those got their own subfolder to make the math module less of a mess.
| * Apply clippy lintsArne Dußin2020-11-21-11/+5
| |
| * Add unit tests for triangleArne Dußin2020-11-21-0/+57
| |
| * Add triangle struct and triangulation templateArne Dußin2020-11-21-101/+183
| |
* | Add unfinished polygon room toolArne Dußin2020-11-20-1/+2
|/ | | | | | | When adding the polygon room tool, a problem with drawing polygons arised. Drawing a simple, but nonregular polygon is not something that is supported by raylib, so further additions to the math library are needed.
* Implement bounding box functionArne Dußin2020-11-18-21/+138
|
* Add self intersection for polygon graphsArne Dußin2020-11-18-20/+142
|
* Fix silly bug in min functionArne Dußin2020-11-18-3/+25
|
* Add polygon graphArne Dußin2020-11-17-1/+369
|
* Add intersection point algorithmArne Dußin2020-11-15-116/+151
|
* Fix the polygon point containment algorithmArne Dußin2020-11-12-29/+83
| | | | | | | | The algorithm before was really not working for a lot of edge cases and very difficult to adapt. This version is definitely not the be-all and end-all, but it should work for most (well, hopefully all) cases. After refactoring and hopefully simplifying and straightening out the logic a little more, it should be verifiable.
* Add polygon that can check if a point is insideArne Dußin2020-11-11-2/+257
| | | | | ..except for one super super edgy edge case, but I wanted to get this algorithm out into a commit before I ruin it completely (probably)
* Fix some style errorsArne Dußin2020-11-10-2/+14
| | | | | Fixed the last warnings and ran clippy on the project. Fixed where appropriate and taught clippy otherwise. Now runs through clean.
* Add dimension indicator without direct value editingArne Dußin2020-11-10-2/+21
|
* Add basic deletion toolArne Dußin2020-11-01-1/+18
|
* Refactor a major part of the projectArne Dußin2020-11-01-0/+434
In order to be able to save and load the map, a major rework of the code seemed necessary, since Vector2 and Rectangle of raylib do not implement serialize, and it seems cleanest to use the serialize/deserialize traits of serde, to save for instance to RON. ToolShed was renamed to Editor, since it should better show, that it does quite a bit more than harbour tools. The map data is now centrally saved in the editor, instead of decentralised in the tool structs.