changelog
    
    
    - Thu, 15 Jun 2023 16:18:03 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Thu, 15 Jun 2023 16:18:03 +0300] rev 383
 
    - Refactor, make selecting elements from the model select the corresponding line from the editor as well
 
    - Sat, 10 Jun 2023 17:26:32 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sat, 10 Jun 2023 17:26:32 +0300] rev 382
 
    - use a parameter to avoid temporarily changing member variables
 
    - Wed, 19 Apr 2023 22:51:56 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Wed, 19 Apr 2023 22:51:56 +0300] rev 381
 
    - Made library_role_e an enum class
 
    - Wed, 19 Apr 2023 22:42:43 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Wed, 19 Apr 2023 22:42:43 +0300] rev 380
 
    - Use QFileInfo to represent paths
 
    - Wed, 12 Apr 2023 01:53:42 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Wed, 12 Apr 2023 01:53:42 +0300] rev 379
 
    - Circular primitive type is now an enum class
 
    - Tue, 11 Apr 2023 22:51:47 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Tue, 11 Apr 2023 22:51:47 +0300] rev 378
 
    - remove now unneeded type alias
 
    - Tue, 11 Apr 2023 22:51:12 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Tue, 11 Apr 2023 22:51:12 +0300] rev 377
 
    - BasicShader is no longer a class
 
    - Tue, 11 Apr 2023 22:39:18 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Tue, 11 Apr 2023 22:39:18 +0300] rev 376
 
    - Split GL preferences that affect GL build to a new build preferences structure, modifying that requires rebuild, modifying render preferences does not
 
    - Tue, 11 Apr 2023 20:27:04 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Tue, 11 Apr 2023 20:27:04 +0300] rev 375
 
    - Simplify signature of updateRenderPreferences
 
    - Tue, 11 Apr 2023 11:11:28 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Tue, 11 Apr 2023 11:11:28 +0300] rev 374
 
    - More refactor and renaming
Added a test function that makes recolors stuff red 
    - Mon, 10 Apr 2023 14:46:36 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Mon, 10 Apr 2023 14:46:36 +0300] rev 373
 
    - Move bezier curve to its own file
 
    - Mon, 10 Apr 2023 14:25:19 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Mon, 10 Apr 2023 14:25:19 +0300] rev 372
 
    - Winding is now an enum class winding_e
 
    - Mon, 10 Apr 2023 14:21:17 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Mon, 10 Apr 2023 14:21:17 +0300] rev 371
 
    - rename some functions
 
    - Mon, 10 Apr 2023 14:18:11 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Mon, 10 Apr 2023 14:18:11 +0300] rev 370
 
    - Grid scaling buttons now work
 
    - Mon, 10 Apr 2023 12:40:49 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Mon, 10 Apr 2023 12:40:49 +0300] rev 369
 
    - isConvex renamed to quadrilateral_convexity, refactor, now returns an enum instead of bool
 
    - Sun, 09 Apr 2023 17:05:40 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 17:05:40 +0300] rev 368
 
    - Simplify signature of openModelFromPath
 
    - Sun, 09 Apr 2023 16:30:33 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 16:30:33 +0300] rev 367
 
    - Also connect up the "Delete" action
 
    - Sun, 09 Apr 2023 16:27:22 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 16:27:22 +0300] rev 366
 
    - Also connect up "Select all"
 
    - Sun, 09 Apr 2023 16:23:05 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 16:23:05 +0300] rev 365
 
    - Add undo, redo, cut, copy and paste actions to MainWindow which pass onto the editor widget
 
    - Sun, 09 Apr 2023 16:01:57 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 16:01:57 +0300] rev 364
 
    - I forgot to add files again... this time it's modelsubwindow.h
 
    - Sun, 09 Apr 2023 16:01:38 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 16:01:38 +0300] rev 363
 
    - Removed unused code
 
    - Sun, 09 Apr 2023 15:59:08 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 15:59:08 +0300] rev 362
 
    - Extracted the state of the program into a MainState structure, and extracted local functions of main() into static functions.
I was planning to make the core logic and state of the program into a Main class, which would be a QObject that would
have lots of signals and slots, but it looks like this works even without it 
    - Sun, 09 Apr 2023 13:28:36 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 13:28:36 +0300] rev 361
 
    - Move some recent file handling to MainWindow
 
    - Sun, 09 Apr 2023 12:23:32 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 12:23:32 +0300] rev 360
 
    - `PartRenderer::renderVao` no longer throws if bad array class is given, this is now checked on compile time
 
    - Sun, 09 Apr 2023 01:12:00 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 01:12:00 +0300] rev 359
 
    - The renderer now centers on the grid origin, not the part origin
 
    - Sun, 09 Apr 2023 00:56:49 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sun, 09 Apr 2023 00:56:49 +0300] rev 358
 
    - Hopefully fixed all problems with determining polygon winding
 
    - Sat, 08 Apr 2023 22:09:29 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sat, 08 Apr 2023 22:09:29 +0300] rev 357
 
    - Add settings import and export
 
    - Sat, 08 Apr 2023 21:48:49 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sat, 08 Apr 2023 21:48:49 +0300] rev 356
 
    - Made editor font configurable
Add grid matrix editor 
    - Sat, 08 Apr 2023 16:59:55 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sat, 08 Apr 2023 16:59:55 +0300] rev 355
 
    - Move the about dialog to MainWindow. The hack to retrieve GL extensions is made a bit cleaner
 
    - Sat, 08 Apr 2023 16:41:40 +0300
 
    - by Teemu Piippo <teemu.s.piippo@gmail.com> [Sat, 08 Apr 2023 16:41:40 +0300] rev 354
 
    - Readd the MainWindow class and renderstyle button handling to it