aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeLines
...
* Fix polygon corners not always running counterclockwiseArne Dußin2020-11-24-14/+101
|
* Merge branch 'triangulation' into polygon-roomsArne Dußin2020-11-23-345/+830
|\
| * 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-86/+105
| |
| * 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-2/+127
|/ | | | | | | 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.
* Change to different GUI styleArne Dußin2020-11-20-0/+7
|
* Fix tools not workingArne Dußin2020-11-20-3/+5
| | | | | | | Since the tool sidebar was always setting the currently active tool and that meant even when no change occured, the tool was being deactivated and reactivated, nothing happened except for the icon tool. Now, it's checked if any change is necessary in the editor
* Remove unused importsArne Dußin2020-11-20-1/+0
|
* Add simple tool sidebar guiArne Dußin2020-11-20-30/+155
|
* Merge branch 'polygon'Arne Dußin2020-11-18-3/+976
|\
| * 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)
* | Merge branch 'fix-dim-markers' into fix-ghost-toolsArne Dußin2020-11-15-0/+10
|\ \
| * | Fix the dimension indicators persisting after addArne Dußin2020-11-15-0/+10
| |/ | | | | | | | | The dimension indicators were drawn very for the blink of an eye when starting a rect that comes after the first. This commit should fix that.
* / Fix deletion and wall tool ghostsArne Dußin2020-11-15-0/+8
|/
* Add constant for the grid accuracyArne Dußin2020-11-10-9/+14
| | | | | 0.5 was used as a magical number throughout the code for that until now, which I now changed.
* Fix some style errorsArne Dußin2020-11-10-6/+28
| | | | | Fixed the last warnings and ran clippy on the project. Fixed where appropriate and taught clippy otherwise. Now runs through clean.
* Remove unused importsArne Dußin2020-11-10-4/+3
|
* Add dimension indicator without direct value editingArne Dußin2020-11-10-4/+159
|
* Fix next icon still being drawn when tool is inactiveArne Dußin2020-11-10-31/+51
| | | | | | | The icon that would be placed next, but is not on the map was always drawn once the icon-tool was activated once. This is no longer the case. Also, the tool now saves the last icon that was selected and keeps the rotation of it between placements, which I deemed more intuitive.
* Fix editor not using the configured keybindingsArne Dußin2020-11-09-11/+6
|
* Remove instant exit key in favour of OS-keysArne Dußin2020-11-09-1/+4
|
* Add configuration optionsArne Dußin2020-11-09-46/+413
|
* Make it so icons can rotateArne Dußin2020-11-08-32/+71
|
* Make icons deletableArne Dußin2020-11-06-0/+1
|
* Add icon toolArne Dußin2020-11-06-25/+181
|
* Remove test svg renderArne Dußin2020-11-05-8/+0
|
* Add (very) basic path-drawingArne Dußin2020-11-03-2/+360
|
* Combine zooming in and zooming out into one functionArne Dußin2020-11-02-51/+36
| | | | | There was a lot of duplicate and hacky code in the zooming functions, so I made them cleaner while hopefully staying true to the idea.
* Limit FPS to 120Arne Dußin2020-11-02-0/+1
| | | | | At least under windows a very high CPU and GPU load was noticed, which is why this change was made.
* Remove TODO that is doneArne Dußin2020-11-02-1/+0
|
* Tether on zoomArne Dußin2020-11-02-5/+18
|
* Change wall tool to not cancel when clickingArne Dußin2020-11-01-1/+1
|
* Add basic deletion toolArne Dußin2020-11-01-7/+83
|
* Make zoom-levels whole numbers to combat round-errArne Dußin2020-11-01-2/+28
| | | | | | | | The grid was offset at certain zoom-levels and lower positions, so for now I just made only whole zoom-levels possible, which removes the offset. However, I consider this a band-aid-solution. Maybe change from f32 to f64 and try out if that fixes it? Otherwise, a different algorithm might work.
* Change pretty config of RON output formatArne Dußin2020-11-01-0/+1
|
* Add feature to load and save to a test swap-fileArne Dußin2020-11-01-4/+45
|
* Make walls 10cm thick instead of constant pixel valuesArne Dußin2020-11-01-2/+2
|
* Refactor a major part of the projectArne Dußin2020-11-01-123/+581
| | | | | | | | | | 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.