aboutsummaryrefslogtreecommitdiff
path: root/src/math
Commit message (Collapse)AuthorAgeLines
* Merge branch 'master' into snappingArne Dußin2021-01-06-173/+313
|\
| * Change to polygongraph instead of polygon in roomtoolArne Dußin2020-12-27-173/+313
| | | | | | | | | | | | | | | | | | | | | | The polygon room tool used a convoluted process for determining what the user actually wants to draw. I have changed to the polygon graph instead, which makes the checks easier and restricts the user a bit less. In the process however I found a serious problem with my handling float, so everything needed to change to margin compares (which I of course should have done in the beginning. Guys, take the warning seriously and don't ignore it for ten years like I did. It will come back to haunt you.. apparently) instead of direct equality.
* | Add snapping module to replace the rigid grid snappingArne Dußin2020-12-31-2/+12
|/
* Add previously missing docs where appropriateArne Dußin2020-12-21-4/+80
|
* Add dimensional indicator with scalingArne Dußin2020-12-20-1/+14
|
* Add constant for default colours and selection toolArne Dußin2020-12-16-1/+1
|
* Refactor to make interaction between tools easierArne Dußin2020-12-15-17/+65
|
* Change to f64 as the preferred floating point numberArne Dußin2020-11-27-50/+49
|
* Merge branch 'polygon-deletion'Arne Dußin2020-11-26-20/+79
|\
| * Make polygons deletableArne Dußin2020-11-26-20/+79
| | | | | | | | | | | | Before, the deletion tool was not targeting polygons. I also took the liberty to broaden the functionality of the surface trait, which now can check if a rectangle or polygon is contained.
* | Print polygon that makes the earcutting algo panicArne Dußin2020-11-26-4/+7
|/
* Fix clippy lints and add polygon tool button iconArne Dußin2020-11-25-1/+1
|
* Add polygon rooms that can actually kind of be usedArne Dußin2020-11-25-34/+122
| | | | | | It's still kind of strange to use the polygon tool, but at least it seems stable enough so I'm confident enough (and sick enough of it) to release it into the wild.
* Add unstable polygon room toolArne Dußin2020-11-24-1/+1
|
* Fix polygon corners not always running counterclockwiseArne Dußin2020-11-24-14/+101
|
* 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.