changelog
    
    
    - Fri, 22 Jun 2018 15:03:50 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 22 Jun 2018 15:03:50 +0300] rev 1424
 
    - removed a duplicate member
 
    - Fri, 22 Jun 2018 14:46:30 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 22 Jun 2018 14:46:30 +0300] rev 1423
 
    - fixed rendering of bézier curves
 
    - Fri, 22 Jun 2018 14:33:09 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 22 Jun 2018 14:33:09 +0300] rev 1422
 
    - simplified format()
 
    - Fri, 22 Jun 2018 14:15:27 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 22 Jun 2018 14:15:27 +0300] rev 1421
 
    - Fixed cmake warning
 
    - Fri, 22 Jun 2018 12:37:58 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 22 Jun 2018 12:37:58 +0300] rev 1420
 
    - added Cotire to speed up compilation
 
    - Fri, 22 Jun 2018 12:13:01 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 22 Jun 2018 12:13:01 +0300] rev 1419
 
    - replaced uses of QList with QVector
 
    - Thu, 21 Jun 2018 19:21:49 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 21 Jun 2018 19:21:49 +0300] rev 1418
 
    - used the new CircularSectionEditor in CircularPrimitiveEditor
 
    - Thu, 21 Jun 2018 18:46:03 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 21 Jun 2018 18:46:03 +0300] rev 1417
 
    - refactored the segments/divisions editor in MainWindow to a new widget
 
    - Thu, 21 Jun 2018 17:02:58 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 21 Jun 2018 17:02:58 +0300] rev 1416
 
    - fixed compile errors in some cases, bezier curve now stores the segment count in each object (not editable yet)
 
    - Wed, 20 Jun 2018 00:00:26 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 20 Jun 2018 00:00:26 +0300] rev 1415
 
    - simplified more
 
    - Tue, 19 Jun 2018 23:59:05 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 23:59:05 +0300] rev 1414
 
    - simplified
 
    - Tue, 19 Jun 2018 23:56:07 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 23:56:07 +0300] rev 1413
 
    - added buttons to rotate circular primitives
 
    - Tue, 19 Jun 2018 23:18:58 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 23:18:58 +0300] rev 1412
 
    - added support for inverting circular primitives
 
    - Tue, 19 Jun 2018 22:45:10 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 22:45:10 +0300] rev 1411
 
    - fixed generation of disc negatives
 
    - Tue, 19 Jun 2018 22:00:46 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 22:00:46 +0300] rev 1410
 
    - simplified
 
    - Tue, 19 Jun 2018 21:57:39 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 21:57:39 +0300] rev 1409
 
    - fixed chord triangle count formula
 
    - Tue, 19 Jun 2018 21:49:21 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 19 Jun 2018 21:49:21 +0300] rev 1408
 
    - fixed bugs regarding primitives, added chord substitution
 
    - Sun, 17 Jun 2018 17:07:29 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 17 Jun 2018 17:07:29 +0300] rev 1407
 
    - added support for open/closed cylinders in LDCircularPrimitive
 
    - Sun, 17 Jun 2018 16:13:24 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 17 Jun 2018 16:13:24 +0300] rev 1406
 
    - Circular primitive editor complete
 
    - Sun, 17 Jun 2018 14:06:03 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 17 Jun 2018 14:06:03 +0300] rev 1405
 
    - replaced overloads with a new 'xyz' function
 
    - Sun, 17 Jun 2018 13:57:00 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 17 Jun 2018 13:57:00 +0300] rev 1404
 
    - replaced GLRotationMatrix with QMatrix4x4
 
    - Sun, 17 Jun 2018 13:53:33 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 17 Jun 2018 13:53:33 +0300] rev 1403
 
    - replaced the Matrix class with QMatrix4x4
 
    - Sun, 10 Jun 2018 23:25:08 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 23:25:08 +0300] rev 1402
 
    - some rework in description
 
    - Sun, 10 Jun 2018 23:07:24 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 23:07:24 +0300] rev 1401
 
    - fixed bugs regarding circular primitives
 
    - Sun, 10 Jun 2018 21:48:58 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 21:48:58 +0300] rev 1400
 
    - refactored LDPolygon
 
    - Sun, 10 Jun 2018 17:17:42 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 17:17:42 +0300] rev 1399
 
    - added the disc and disc negative to the circular primitive type
 
    - Sun, 10 Jun 2018 16:50:14 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 16:50:14 +0300] rev 1398
 
    - changed LDCylinder to LDCircularPrimitive and moved circles to it
 
    - Sun, 10 Jun 2018 16:04:38 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 16:04:38 +0300] rev 1397
 
    - cleaned up LDColor constructors
 
    - Sun, 10 Jun 2018 15:53:21 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 15:53:21 +0300] rev 1396
 
    - show the color index in the color button
 
    - Sun, 10 Jun 2018 12:12:50 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 10 Jun 2018 12:12:50 +0300] rev 1395
 
    - separated the color button into a new widget
 
    - Fri, 08 Jun 2018 23:06:56 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 08 Jun 2018 23:06:56 +0300] rev 1394
 
    - fixed cylinder rendering
 
    - Thu, 07 Jun 2018 23:24:02 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 07 Jun 2018 23:24:02 +0300] rev 1393
 
    - changed rotation matrix to quaternion in GLRenderer
 
    - Mon, 04 Jun 2018 23:22:52 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 04 Jun 2018 23:22:52 +0300] rev 1392
 
    - fix compiler warnings
 
    - Mon, 04 Jun 2018 23:12:40 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 04 Jun 2018 23:12:40 +0300] rev 1391
 
    - added work done on cylinders
 
    - Wed, 30 May 2018 22:31:06 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 30 May 2018 22:31:06 +0300] rev 1390
 
    - added draw plane feature (doesn't work with circle draw quite right yet)
 
    - Sat, 26 May 2018 17:28:15 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 26 May 2018 17:28:15 +0300] rev 1389
 
    - refactored signal blocking
 
    - Thu, 10 May 2018 15:54:26 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 10 May 2018 15:54:26 +0300] rev 1388
 
    - fixed that scaling factors could be negative
 
    - Thu, 10 May 2018 15:48:39 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 10 May 2018 15:48:39 +0300] rev 1387
 
    - added a doublespinbox variant that uses "." as the decimal point and omits trailing zeros
 
    - Thu, 10 May 2018 14:57:23 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 10 May 2018 14:57:23 +0300] rev 1386
 
    - added scaling vector editing into the subfile editing dialog
 
    - Fri, 27 Apr 2018 16:27:14 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 27 Apr 2018 16:27:14 +0300] rev 1385
 
    - added vertex rendering
 
    - Wed, 25 Apr 2018 18:55:15 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 25 Apr 2018 18:55:15 +0300] rev 1384
 
    - some fixes
 
    - Thu, 05 Apr 2018 22:56:37 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 05 Apr 2018 22:56:37 +0300] rev 1383
 
    - fixed vertex cache spontaneously clearing
 
    - Wed, 04 Apr 2018 12:08:45 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 04 Apr 2018 12:08:45 +0300] rev 1382
 
    - refactored the quick color toolbar
 
    - Wed, 04 Apr 2018 11:43:15 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 04 Apr 2018 11:43:15 +0300] rev 1381
 
    - removed dead code
 
    - Wed, 04 Apr 2018 11:41:26 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 04 Apr 2018 11:41:26 +0300] rev 1380
 
    - added a status bar and moved printed messages there
 
    - Wed, 04 Apr 2018 11:24:37 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 04 Apr 2018 11:24:37 +0300] rev 1379
 
    - removed dead code
 
    - Wed, 04 Apr 2018 11:22:47 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 04 Apr 2018 11:22:47 +0300] rev 1378
 
    - refactor
 
    - Wed, 04 Apr 2018 11:19:49 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 04 Apr 2018 11:19:49 +0300] rev 1377
 
    - fixed changing a document not updating its references in other files
 
    - Tue, 03 Apr 2018 18:55:57 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 03 Apr 2018 18:55:57 +0300] rev 1376
 
    - added an ini option to disable line stipple
 
    - Tue, 03 Apr 2018 17:37:33 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 03 Apr 2018 17:37:33 +0300] rev 1375
 
    - refactor
 
    - Tue, 03 Apr 2018 17:34:13 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 03 Apr 2018 17:34:13 +0300] rev 1374
 
    - fixed "edit selected object" not editing non-vertex objects
 
    - Tue, 03 Apr 2018 17:32:02 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 03 Apr 2018 17:32:02 +0300] rev 1373
 
    - readded object editing by double click in list view
 
    - Tue, 03 Apr 2018 17:23:02 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 03 Apr 2018 17:23:02 +0300] rev 1372
 
    - fixed the scene bounding box not getting updated as it should
 
    - Mon, 02 Apr 2018 13:21:15 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 02 Apr 2018 13:21:15 +0300] rev 1371
 
    - automatically center the model in the renderer
 
    - Mon, 02 Apr 2018 10:59:38 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 02 Apr 2018 10:59:38 +0300] rev 1370
 
    - reworked bounding box
 
    - Mon, 02 Apr 2018 10:33:17 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 02 Apr 2018 10:33:17 +0300] rev 1369
 
    - added cull depth support
 
    - Sun, 01 Apr 2018 15:32:30 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 01 Apr 2018 15:32:30 +0300] rev 1368
 
    - added some missing connections
 
    - Sun, 01 Apr 2018 11:39:07 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 01 Apr 2018 11:39:07 +0300] rev 1367
 
    - fixed some problems
 
    - Sat, 31 Mar 2018 18:41:24 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 31 Mar 2018 18:41:24 +0300] rev 1366
 
    - start rework
 
    - Sat, 31 Mar 2018 21:23:22 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 31 Mar 2018 21:23:22 +0300] rev 1365
 
    - show subfile descriptions in the object list
 
    - Fri, 30 Mar 2018 14:30:51 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 30 Mar 2018 14:30:51 +0300] rev 1364
 
    - fix warnings
 
    - Thu, 29 Mar 2018 12:10:54 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:10:54 +0300] rev 1363
 
    - started work on the pattern editor
 
    - Thu, 29 Mar 2018 12:09:06 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:06 +0300] rev 1362
 
    - Branch close
 
    - Thu, 29 Mar 2018 12:09:06 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:06 +0300] rev 1361
 
    - Branch close
 
    - Thu, 29 Mar 2018 12:09:05 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:05 +0300] rev 1360
 
    - Branch close
 
    - Thu, 29 Mar 2018 12:09:05 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:05 +0300] rev 1359
 
    - Branch close
 
    - Thu, 29 Mar 2018 12:09:05 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:05 +0300] rev 1358
 
    - Branch close
 
    - Thu, 29 Mar 2018 12:09:04 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:04 +0300] rev 1357
 
    - Branch close header
 
    - Thu, 29 Mar 2018 12:09:04 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:04 +0300] rev 1356
 
    - Branch close integrity
 
    - Thu, 29 Mar 2018 12:09:04 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:04 +0300] rev 1355
 
    - Branch close inspector
 
    - Thu, 29 Mar 2018 12:09:03 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 12:09:03 +0300] rev 1354
 
    - Branch close bfc
 
    - Thu, 29 Mar 2018 10:42:45 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 10:42:45 +0300] rev 1353
 
    - refactor
 
    - Thu, 29 Mar 2018 10:31:01 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 10:31:01 +0300] rev 1352
 
    - refactor
 
    - Thu, 29 Mar 2018 10:18:18 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 29 Mar 2018 10:18:18 +0300] rev 1351
 
    - use 3 significant figures in file size representation
 
    - Tue, 27 Mar 2018 14:13:58 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 27 Mar 2018 14:13:58 +0300] rev 1350
 
    - better representation of fractions and large numbers
 
    - Tue, 27 Mar 2018 13:01:02 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 27 Mar 2018 13:01:02 +0300] rev 1349
 
    - The border between the canvas and left tool box is now resizable
 
    - Tue, 27 Mar 2018 12:49:15 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 27 Mar 2018 12:49:15 +0300] rev 1348
 
    - fixed minimum values
 
    - Mon, 26 Mar 2018 15:28:33 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 26 Mar 2018 15:28:33 +0300] rev 1347
 
    - refactor cylinder generation
 
    - Sun, 25 Mar 2018 16:57:28 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 25 Mar 2018 16:57:28 +0300] rev 1346
 
    - reworked primitive generator
 
    - Sun, 25 Mar 2018 16:28:03 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 25 Mar 2018 16:28:03 +0300] rev 1345
 
    - added support for new style primitive names
 
    - Sat, 24 Mar 2018 23:46:25 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 23:46:25 +0200] rev 1344
 
    - fixed rendering artifacts
 
    - Sat, 24 Mar 2018 23:45:24 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 23:45:24 +0200] rev 1343
 
    - fixed wording
 
    - Sat, 24 Mar 2018 16:49:02 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 16:49:02 +0200] rev 1342
 
    - added comment
 
    - Sat, 24 Mar 2018 16:41:57 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 16:41:57 +0200] rev 1341
 
    - added categories for 8/ and 48/ torii
 
    - Sat, 24 Mar 2018 16:40:12 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 16:40:12 +0200] rev 1340
 
    - more work on 8-primitives
 
    - Sat, 24 Mar 2018 16:33:23 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 16:33:23 +0200] rev 1339
 
    - Added support for 8-primitives
 
    - Sat, 24 Mar 2018 16:12:08 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 16:12:08 +0200] rev 1338
 
    - Whoops
 
    - Sat, 24 Mar 2018 16:11:42 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 16:11:42 +0200] rev 1337
 
    - some python cleanup
 
    - Sat, 24 Mar 2018 15:58:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 15:58:35 +0200] rev 1336
 
    - improved formatting of generated configuration code
 
    - Sat, 24 Mar 2018 15:54:41 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 15:54:41 +0200] rev 1335
 
    - MainWindow now stores its state in the config file so its state and geometry is preserved across instances
 
    - Sat, 24 Mar 2018 13:55:08 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:55:08 +0200] rev 1334
 
    - removed another unused class
 
    - Sat, 24 Mar 2018 13:53:56 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:53:56 +0200] rev 1333
 
    - removed unused include
 
    - Sat, 24 Mar 2018 13:48:50 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:48:50 +0200] rev 1332
 
    - replaced remaining DIRSLASH, Dirname and Basename uses with Qt file info stuff
 
    - Sat, 24 Mar 2018 13:42:34 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:42:34 +0200] rev 1331
 
    - used Qt file info stuff in the auto-subfiler
 
    - Sat, 24 Mar 2018 13:28:03 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:28:03 +0200] rev 1330
 
    - Used more Qt file info stuff
 
    - Sat, 24 Mar 2018 13:11:17 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:11:17 +0200] rev 1329
 
    - rewrote LDDocument::shortenName using Qt stuff
 
    - Sat, 24 Mar 2018 13:03:02 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 13:03:02 +0200] rev 1328
 
    - merged mathfunctions.cpp into algorithms/geometry.cpp
 
    - Sat, 24 Mar 2018 12:58:01 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:58:01 +0200] rev 1327
 
    - added comment
 
    - Sat, 24 Mar 2018 12:54:28 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:54:28 +0200] rev 1326
 
    - Happy new year 2018
 
    - Sat, 24 Mar 2018 12:51:24 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:51:24 +0200] rev 1325
 
    - Use 4 points of precision for circle point coordinates
 
    - Sat, 24 Mar 2018 12:46:40 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:46:40 +0200] rev 1324
 
    - roundToDecimals no longer needs an lvalue. applyToMatrix removed.
 
    - Sat, 24 Mar 2018 12:34:20 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:34:20 +0200] rev 1323
 
    - Config is now a namespace
 
    - Sat, 24 Mar 2018 12:09:26 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:09:26 +0200] rev 1322
 
    - renamed sink() to singleton()
 
    - Sat, 24 Mar 2018 12:06:49 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:06:49 +0200] rev 1321
 
    - used squared()
 
    - Sat, 24 Mar 2018 12:06:22 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 12:06:22 +0200] rev 1320
 
    - Moved includes, added squared() function
 
    - Sat, 24 Mar 2018 11:57:24 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 11:57:24 +0200] rev 1319
 
    - reorganized headers
 
    - Sat, 24 Mar 2018 11:05:40 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 11:05:40 +0200] rev 1318
 
    - removed unnecessary files and includes
 
    - Sat, 24 Mar 2018 10:51:20 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 24 Mar 2018 10:51:20 +0200] rev 1317
 
    - removed the unused OpenProgressDialog
 
    - Fri, 23 Mar 2018 22:00:34 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 22:00:34 +0200] rev 1316
 
    - reworked includes
 
    - Fri, 23 Mar 2018 21:53:03 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 21:53:03 +0200] rev 1315
 
    - moved Vertex and BoundingBox into new code units
 
    - Fri, 23 Mar 2018 21:36:37 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 21:36:37 +0200] rev 1314
 
    - added stream operators to Vertex
 
    - Fri, 23 Mar 2018 21:30:24 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 21:30:24 +0200] rev 1313
 
    - reworked Vertex, no longer a QVector3D subclass
 
    - Fri, 23 Mar 2018 19:30:53 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 19:30:53 +0200] rev 1312
 
    - remove LDBfc
 
    - Fri, 23 Mar 2018 17:14:46 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 17:14:46 +0200] rev 1311
 
    - ported qOverload to drop minimum Qt requirement down to 5.5
 
    - Fri, 23 Mar 2018 17:13:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 17:13:35 +0200] rev 1310
 
    - remove LDPaths
 
    - Fri, 23 Mar 2018 16:14:04 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 16:14:04 +0200] rev 1309
 
    - reworked primitive scanning
 
    - Fri, 23 Mar 2018 12:51:18 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 23 Mar 2018 12:51:18 +0200] rev 1308
 
    - Begin rework to add support for multiple libraries
 
    - Tue, 20 Mar 2018 12:25:52 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 20 Mar 2018 12:25:52 +0200] rev 1307
 
    - fixed warning
 
    - Mon, 19 Mar 2018 12:44:27 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 19 Mar 2018 12:44:27 +0200] rev 1306
 
    - red/green view rework complete
 
    - Mon, 19 Mar 2018 12:24:59 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 19 Mar 2018 12:24:59 +0200] rev 1305
 
    - Bfc red/green view almost completely fixed
 
    - Mon, 19 Mar 2018 11:04:18 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 19 Mar 2018 11:04:18 +0200] rev 1304
 
    - added more comments
 
    - Mon, 19 Mar 2018 10:59:58 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 19 Mar 2018 10:59:58 +0200] rev 1303
 
    - reworked invert()
 
    - Mon, 19 Mar 2018 10:57:19 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 19 Mar 2018 10:57:19 +0200] rev 1302
 
    - added license headers
 
    - Mon, 19 Mar 2018 10:57:13 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 19 Mar 2018 10:57:13 +0200] rev 1301
 
    - moved inverting code into a new file
 
    - Sun, 18 Mar 2018 23:31:15 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 18 Mar 2018 23:31:15 +0200] rev 1300
 
    - added comment editing
 
    - Sun, 18 Mar 2018 12:37:40 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 18 Mar 2018 12:37:40 +0200] rev 1299
 
    - fixed color handling
 
    - Sun, 18 Mar 2018 12:33:29 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 18 Mar 2018 12:33:29 +0200] rev 1298
 
    - fixed infinite recursion and integrated the subfilereference editor
 
    - Sun, 18 Mar 2018 12:00:39 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 18 Mar 2018 12:00:39 +0200] rev 1297
 
    - added subfile reference editor
 
    - Sat, 17 Mar 2018 23:59:15 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 17 Mar 2018 23:59:15 +0200] rev 1296
 
    - Added vertex object editing dialog
 
    - Sat, 17 Mar 2018 20:47:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 17 Mar 2018 20:47:35 +0200] rev 1295
 
    - the header is now also saved
 
    - Sat, 17 Mar 2018 12:29:52 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 17 Mar 2018 12:29:52 +0200] rev 1294
 
    - Added a new tool for clamping vertices
 
    - Sat, 17 Mar 2018 11:35:07 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 17 Mar 2018 11:35:07 +0200] rev 1293
 
    - removed the old Add History Line tool
 
    - Sat, 17 Mar 2018 11:33:05 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 17 Mar 2018 11:33:05 +0200] rev 1292
 
    - Part history can now be edited
 
    - Fri, 16 Mar 2018 16:28:39 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 16 Mar 2018 16:28:39 +0200] rev 1291
 
    - Added basic header editing
 
    - Fri, 16 Mar 2018 12:20:16 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 16 Mar 2018 12:20:16 +0200] rev 1290
 
    - Fixed crashing
 
    - Fri, 16 Mar 2018 11:55:58 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 16 Mar 2018 11:55:58 +0200] rev 1289
 
    - add comments
 
    - Fri, 16 Mar 2018 11:50:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 16 Mar 2018 11:50:35 +0200] rev 1288
 
    - Header parsing complete, moved all parsing code into a new class. Documents are now all loaded in one go.
 
    - Thu, 15 Mar 2018 18:51:58 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 15 Mar 2018 18:51:58 +0200] rev 1287
 
    - begin work on document loading rework
 
    - Thu, 15 Mar 2018 11:31:39 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 15 Mar 2018 11:31:39 +0200] rev 1286
 
    - added a document header structure
 
    - Thu, 15 Mar 2018 10:46:46 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 15 Mar 2018 10:46:46 +0200] rev 1285
 
    - added signal emissions
 
    - Wed, 14 Mar 2018 12:18:52 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 14 Mar 2018 12:18:52 +0200] rev 1284
 
    - moved emit calls
 
    - Wed, 14 Mar 2018 12:08:03 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 14 Mar 2018 12:08:03 +0200] rev 1283
 
    - added an MVC interface to the primitives tree
 
    - Sun, 11 Mar 2018 23:42:03 +0200
 
    - by Santeri Piippo [Sun, 11 Mar 2018 23:42:03 +0200] rev 1282
 
    - fixed removing objects causing some other objects to disappear
 
    - Sun, 11 Mar 2018 16:13:32 +0200
 
    - by Santeri Piippo [Sun, 11 Mar 2018 16:13:32 +0200] rev 1281
 
    - optimized triangle count
 
    - Sun, 11 Mar 2018 16:13:22 +0200
 
    - by Santeri Piippo [Sun, 11 Mar 2018 16:13:22 +0200] rev 1280
 
    - fixed: LDDocument created one removal connection to the model for each object added, so removing an object from a model of 9 objects added 9 deletion entries to history
 
    - Thu, 08 Mar 2018 11:39:18 +0200
 
    - by Santeri Piippo [Thu, 08 Mar 2018 11:39:18 +0200] rev 1279
 
    - renamed signal
 
    - Thu, 08 Mar 2018 11:36:55 +0200
 
    - by Santeri Piippo [Thu, 08 Mar 2018 11:36:55 +0200] rev 1278
 
    - moved LDObject indices from a global array into Model
 
    - Wed, 07 Mar 2018 19:32:05 +0200
 
    - by Santeri Piippo [Wed, 07 Mar 2018 19:32:05 +0200] rev 1277
 
    - removed unused code
 
    - Wed, 07 Mar 2018 19:30:29 +0200
 
    - by Santeri Piippo [Wed, 07 Mar 2018 19:30:29 +0200] rev 1276
 
    - fixed object deleting not triggering the proper renderer updates
 
    - Wed, 07 Mar 2018 19:30:03 +0200
 
    - by Santeri Piippo [Wed, 07 Mar 2018 19:30:03 +0200] rev 1275
 
    - fixed DelHistoryEntries getting ignored...
 
    - Wed, 07 Mar 2018 12:04:06 +0200
 
    - by Santeri Piippo [Wed, 07 Mar 2018 12:04:06 +0200] rev 1274
 
    - removed some debug code
 
    - Tue, 06 Mar 2018 23:29:40 +0200
 
    - by Santeri Piippo [Tue, 06 Mar 2018 23:29:40 +0200] rev 1273
 
    - Implemented row moving in the model and replaced swapping with it
 
    - Mon, 05 Mar 2018 23:59:47 +0200
 
    - by Santeri Piippo [Mon, 05 Mar 2018 23:59:47 +0200] rev 1272
 
    - migrated model swapping to mvc and made Model::swapObjects to emit dataChanged signals as a temporary solution
 
    - Mon, 05 Mar 2018 22:44:48 +0200
 
    - by Santeri Piippo [Mon, 05 Mar 2018 22:44:48 +0200] rev 1271
 
    - removed some unneeded headers
 
    - Mon, 05 Mar 2018 22:42:54 +0200
 
    - by Santeri Piippo [Mon, 05 Mar 2018 22:42:54 +0200] rev 1270
 
    - Finally removed the cancer that is the LDObject::model pointer
 
    - Mon, 05 Mar 2018 22:40:34 +0200
 
    - by Santeri Piippo [Mon, 05 Mar 2018 22:40:34 +0200] rev 1269
 
    - Added LDObject serialization and refactored the internal resource managing to use it. No more tearing objects from one model into another, and this provides a stable way to keep an object's state in memory such as the edit history.
 
    - Sat, 03 Mar 2018 17:59:56 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:59:56 +0200] rev 1268
 
    - fix warning
 
    - Sat, 03 Mar 2018 17:59:32 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:59:32 +0200] rev 1267
 
    - removed another LDObject::model() use
 
    - Sat, 03 Mar 2018 17:57:35 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:57:35 +0200] rev 1266
 
    - removed LDError::fileReferenced
 
    - Sat, 03 Mar 2018 17:56:49 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:56:49 +0200] rev 1265
 
    - reimplemented detection of broken references in PartDownloadRequest::downloadFinished
 
    - Sat, 03 Mar 2018 17:52:40 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:52:40 +0200] rev 1264
 
    - reimplemented finding of broken document references
 
    - Sat, 03 Mar 2018 17:47:40 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:47:40 +0200] rev 1263
 
    - LDSubfileReference now contains the name of the subfile and not a pointer anymore. Some methods now require a DocumentManager* for context on resolving the name.
 
    - Sat, 03 Mar 2018 17:28:27 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:28:27 +0200] rev 1262
 
    - removed use of model() in LDSubfileReference::inlineContents
 
    - Sat, 03 Mar 2018 17:25:12 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 17:25:12 +0200] rev 1261
 
    - Removed LDObject::invert, inversion code moved to basic toolset
 
    - Sat, 03 Mar 2018 16:59:03 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 16:59:03 +0200] rev 1260
 
    - removed LDObject::swap
 
    - Sat, 03 Mar 2018 16:56:49 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 16:56:49 +0200] rev 1259
 
    - moved LDObject::next to the algorithm toolset
 
    - Sat, 03 Mar 2018 16:53:56 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 16:53:56 +0200] rev 1258
 
    - removed LDObject::lineNumber
 
    - Sat, 03 Mar 2018 15:14:07 +0200
 
    - by Santeri Piippo [Sat, 03 Mar 2018 15:14:07 +0200] rev 1257
 
    - more selection rework
 
    - Fri, 02 Mar 2018 22:23:53 +0200
 
    - by Santeri Piippo [Fri, 02 Mar 2018 22:23:53 +0200] rev 1256
 
    - removed LDDocument::clearSelection and replaced it with a MainWindow implementation
 
    - Thu, 11 Jan 2018 22:22:45 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 22:22:45 +0200] rev 1255
 
    - things #2
 
    - Thu, 11 Jan 2018 22:21:50 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 22:21:50 +0200] rev 1254
 
    - things
 
    - Thu, 11 Jan 2018 16:46:22 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 16:46:22 +0200] rev 1253
 
    - add operators to LDDocument
 
    - Thu, 01 Mar 2018 11:59:54 +0200
 
    - by Santeri Piippo [Thu, 01 Mar 2018 11:59:54 +0200] rev 1252
 
    - refactor
 
    - Thu, 22 Feb 2018 11:41:58 +0200
 
    - by Santeri Piippo [Thu, 22 Feb 2018 11:41:58 +0200] rev 1251
 
    - Converted magic wand mode and other selection stuff to mvc
 
    - Thu, 15 Feb 2018 14:59:04 +0200
 
    - by Santeri Piippo [Thu, 15 Feb 2018 14:59:04 +0200] rev 1250
 
    - more work on mvc
 
    - Thu, 15 Feb 2018 14:40:59 +0200
 
    - by Santeri Piippo [Thu, 15 Feb 2018 14:40:59 +0200] rev 1249
 
    - convert MainWindow::deleteSelection to mvc
 
    - Thu, 15 Feb 2018 12:19:10 +0200
 
    - by Santeri Piippo [Thu, 15 Feb 2018 12:19:10 +0200] rev 1248
 
    - made lighting more subtle
 
    - Thu, 15 Feb 2018 12:18:57 +0200
 
    - by Santeri Piippo [Thu, 15 Feb 2018 12:18:57 +0200] rev 1247
 
    - converted highlighting to mvc
 
    - Thu, 15 Feb 2018 11:34:04 +0200
 
    - by Santeri Piippo [Thu, 15 Feb 2018 11:34:04 +0200] rev 1246
 
    - used mvc selection models
 
    - Thu, 15 Feb 2018 10:24:39 +0200
 
    - by Santeri Piippo [Thu, 15 Feb 2018 10:24:39 +0200] rev 1245
 
    - more work on mvc
 
    - Wed, 14 Feb 2018 15:17:30 +0200
 
    - by Santeri Piippo [Wed, 14 Feb 2018 15:17:30 +0200] rev 1244
 
    - begin model rework
 
    - Tue, 13 Feb 2018 15:43:55 +0200
 
    - by Santeri Piippo [Tue, 13 Feb 2018 15:43:55 +0200] rev 1243
 
    - removed unneeded stuff
 
    - Tue, 13 Feb 2018 14:56:08 +0200
 
    - by Santeri Piippo [Tue, 13 Feb 2018 14:56:08 +0200] rev 1242
 
    - Removed LDConditionalEdge::becomeEdgeLine
 
    - Tue, 13 Feb 2018 14:22:10 +0200
 
    - by Santeri Piippo [Tue, 13 Feb 2018 14:22:10 +0200] rev 1241
 
    - hook up dataChanged
 
    - Tue, 13 Feb 2018 14:19:07 +0200
 
    - by Santeri Piippo [Tue, 13 Feb 2018 14:19:07 +0200] rev 1240
 
    - changed Model into an MVC list model and replaced the objects list with a view into the model
 
    - Mon, 15 Jan 2018 08:20:54 +0200
 
    - by Santeri Piippo [Mon, 15 Jan 2018 08:20:54 +0200] rev 1239
 
    - add missing switch case
 
    - Sat, 13 Jan 2018 00:06:56 +0200
 
    - by Santeri Piippo [Sat, 13 Jan 2018 00:06:56 +0200] rev 1238
 
    - disable lighting in the selection scene
 
    - Sat, 13 Jan 2018 00:04:54 +0200
 
    - by Santeri Piippo [Sat, 13 Jan 2018 00:04:54 +0200] rev 1237
 
    - moved matrix calculations, added inverted normals for BFC back sides
 
    - Fri, 12 Jan 2018 00:55:31 +0200
 
    - by Santeri Piippo [Fri, 12 Jan 2018 00:55:31 +0200] rev 1236
 
    - BFC INVERTNEXT objects are no longer individual objects
 
    - Fri, 12 Jan 2018 00:22:35 +0200
 
    - by Santeri Piippo [Fri, 12 Jan 2018 00:22:35 +0200] rev 1235
 
    - removed GL_POLYGON_SMOOTH because it causes artifacts
 
    - Fri, 12 Jan 2018 00:20:23 +0200
 
    - by Santeri Piippo [Fri, 12 Jan 2018 00:20:23 +0200] rev 1234
 
    - made GLCamera a non-QObject
 
    - Thu, 11 Jan 2018 15:41:58 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 15:41:58 +0200] rev 1233
 
    - remove GL_POLYGON_SMOOTH because it causes rendering artifacts
 
    - Thu, 11 Jan 2018 15:30:30 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 15:30:30 +0200] rev 1232
 
    - renderer rework
 
    - Thu, 11 Jan 2018 15:09:44 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 15:09:44 +0200] rev 1231
 
    - begin rendering rework
 
    - Thu, 11 Jan 2018 11:41:40 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 11:41:40 +0200] rev 1230
 
    - encoded division slash
 
    - Thu, 11 Jan 2018 00:39:00 +0200
 
    - by Santeri Piippo [Thu, 11 Jan 2018 00:39:00 +0200] rev 1229
 
    - added support for circular 8/-primitives
 
    - Wed, 10 Jan 2018 23:07:01 +0200
 
    - by Santeri Piippo [Wed, 10 Jan 2018 23:07:01 +0200] rev 1228
 
    - simplify
 
    - Wed, 10 Jan 2018 22:54:29 +0200
 
    - by Santeri Piippo [Wed, 10 Jan 2018 22:54:29 +0200] rev 1227
 
    - add support for 8/ in part downloader
 
    - Wed, 10 Jan 2018 22:54:09 +0200
 
    - by Santeri Piippo [Wed, 10 Jan 2018 22:54:09 +0200] rev 1226
 
    - drop Qt4 support
 
    - Sat, 06 Jan 2018 17:57:03 +0200
 
    - by Santeri Piippo [Sat, 06 Jan 2018 17:57:03 +0200] rev 1225
 
    - simplify
 
    - Thu, 04 Jan 2018 22:52:04 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 22:52:04 +0200] rev 1224
 
    - undo config change
 
    - Thu, 04 Jan 2018 22:42:01 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 22:42:01 +0200] rev 1223
 
    - simplified RoundToDecimals
 
    - Thu, 04 Jan 2018 21:41:17 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 21:41:17 +0200] rev 1222
 
    - happy new year 2018
 
    - Thu, 04 Jan 2018 21:40:45 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 21:40:45 +0200] rev 1221
 
    - revamped format.h
 
    - Thu, 04 Jan 2018 20:23:21 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 20:23:21 +0200] rev 1220
 
    - reduce main.cpp
 
    - Thu, 04 Jan 2018 20:21:36 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 20:21:36 +0200] rev 1219
 
    - simplified Matrix
 
    - Thu, 04 Jan 2018 19:52:24 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 19:52:24 +0200] rev 1218
 
    - replaced Origin with default-constructed Vertex
 
    - Thu, 04 Jan 2018 19:44:26 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 19:44:26 +0200] rev 1217
 
    - fix paren style
 
    - Thu, 04 Jan 2018 19:40:52 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 19:40:52 +0200] rev 1216
 
    - add autosave
 
    - Thu, 04 Jan 2018 19:40:16 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 19:40:16 +0200] rev 1215
 
    - replaced "Config->" with "config."
 
    - Thu, 04 Jan 2018 19:24:40 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 19:24:40 +0200] rev 1214
 
    - increased range of GLRenderer bounds
 
    - Thu, 04 Jan 2018 19:21:46 +0200
 
    - by Santeri Piippo [Thu, 04 Jan 2018 19:21:46 +0200] rev 1213
 
    - circlemode: don't wait for the last click
 
    - Sun, 07 May 2017 13:29:58 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 07 May 2017 13:29:58 +0300] rev 1212
 
    - Worked more on the library collection thing
 
    - Mon, 27 Mar 2017 14:56:05 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 27 Mar 2017 14:56:05 +0300] rev 1211
 
    - LibraryCollection now derives from QObject and QVector<Library>
 
    - Sun, 12 Mar 2017 11:03:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 12 Mar 2017 11:03:44 +0200] rev 1210
 
    - More work on library collections
 
    - Thu, 09 Mar 2017 12:50:14 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Mar 2017 12:50:14 +0200] rev 1209
 
    - Laid groundwork for library collection support.
 
    - Thu, 09 Mar 2017 00:54:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Mar 2017 00:54:45 +0200] rev 1208
 
    - Some cleanup in LDPaths
 
    - Thu, 09 Mar 2017 00:40:07 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Mar 2017 00:40:07 +0200] rev 1207
 
    - Removed the unary min and max functions.
 
    - Wed, 08 Mar 2017 22:48:43 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Mar 2017 22:48:43 +0200] rev 1206
 
    - Better encapsulated the BaseConfiguration class.
 
    - Wed, 08 Mar 2017 22:09:48 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Mar 2017 22:09:48 +0200] rev 1205
 
    - Whoops
 
    - Wed, 08 Mar 2017 20:16:06 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Mar 2017 20:16:06 +0200] rev 1204
 
    - Split the configuration main interface to a new class, BaseInterface, so that moc can properly deal with it.
 
    - Mon, 06 Mar 2017 12:15:33 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 12:15:33 +0200] rev 1203
 
    - Configuration changes can now be detected with signals.
 
    - Mon, 06 Mar 2017 11:49:00 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 11:49:00 +0200] rev 1202
 
    - Added Python tools to CMake so that they show up in IDEs
 
    - Mon, 06 Mar 2017 11:48:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 11:48:45 +0200] rev 1201
 
    - Simplified GLCompiler vbo interface
 
    - Mon, 06 Mar 2017 01:17:15 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 01:17:15 +0200] rev 1200
 
    - PrimitiveScanner is no longer a HierarchyElement.
 
    - Mon, 06 Mar 2017 00:55:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 00:55:45 +0200] rev 1199
 
    - Grid is now a namespace.
 
    - Mon, 06 Mar 2017 00:43:43 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 00:43:43 +0200] rev 1198
 
    - MathFunctions is now a namespace.
 
    - Mon, 06 Mar 2017 00:41:13 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 00:41:13 +0200] rev 1197
 
    - Fixed NewPartDialog leaking the memory allocated by the user interface.
 
    - Mon, 06 Mar 2017 00:40:23 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 00:40:23 +0200] rev 1196
 
    - NewPartDialog is no longer a HierarchyElement.
 
    - Mon, 06 Mar 2017 00:36:40 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 00:36:40 +0200] rev 1195
 
    - ColorSelector is no longer a HierarchyElement.
 
    - Mon, 06 Mar 2017 00:35:47 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 06 Mar 2017 00:35:47 +0200] rev 1194
 
    - GuiUtilities is now a namespace.
 
    - Sun, 05 Mar 2017 20:26:56 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 20:26:56 +0200] rev 1193
 
    - The Grid class is no longer a hierarchy element or a QObject.
 
    - Sun, 05 Mar 2017 20:25:22 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 20:25:22 +0200] rev 1192
 
    - Made configuration a global singleton. I think I can give in at least that much because it makes solving a lot of problems easier.
 
    - Sun, 05 Mar 2017 16:57:49 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 16:57:49 +0200] rev 1191
 
    - Also removed the copy constructor and copy assignment because those only are bad news for a resource managing vector...
 
    - Sun, 05 Mar 2017 16:55:48 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 16:55:48 +0200] rev 1190
 
    - and let's put a newline there...
 
    - Sun, 05 Mar 2017 16:54:42 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 16:54:42 +0200] rev 1189
 
    - Deleted the copy constructor version of ResourceVector<T>::insert, like with append
 
    - Sun, 05 Mar 2017 16:50:37 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 16:50:37 +0200] rev 1188
 
    - Sorted the methods in Model's public section.
 
    - Sun, 05 Mar 2017 16:50:06 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 16:50:06 +0200] rev 1187
 
    - Renamed some methods of the Model class to remove the 'emplace' word (however cromulent it is, being from STL...) from them.
 
    - Sun, 05 Mar 2017 16:47:52 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 16:47:52 +0200] rev 1186
 
    - Moved LDObject lifetime management from Model to ResourceVector. This is a large refactor that removes some hacks from the Model class.
 
    - Sun, 05 Mar 2017 13:33:37 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 13:33:37 +0200] rev 1185
 
    - Added a new type ResourceVector which manages object lifetimes, and used it to remove a bit of memory management.
 
    - Sun, 05 Mar 2017 01:57:56 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 01:57:56 +0200] rev 1184
 
    - Polar grid is now togglable.
 
    - Sun, 05 Mar 2017 01:48:46 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 05 Mar 2017 01:48:46 +0200] rev 1183
 
    - CMake fixes
 
    - Sat, 04 Mar 2017 01:59:58 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 04 Mar 2017 01:59:58 +0200] rev 1182
 
    - Added polar grid snapping code.
 
    - Sat, 04 Mar 2017 00:54:46 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 04 Mar 2017 00:54:46 +0200] rev 1181
 
    - Added polar grid rendering (which is disabled for now).
 
    - Fri, 03 Mar 2017 23:23:28 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 03 Mar 2017 23:23:28 +0200] rev 1180
 
    - Grid::snap now snaps points.
 
    - Fri, 03 Mar 2017 23:16:14 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 03 Mar 2017 23:16:14 +0200] rev 1179
 
    - Simplified Grid::snap.
 
    - Fri, 03 Mar 2017 23:08:04 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 03 Mar 2017 23:08:04 +0200] rev 1178
 
    - At long last, the grid is finally now rendered onto the viewport. Woop!
 
    - Fri, 03 Mar 2017 00:35:43 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 03 Mar 2017 00:35:43 +0200] rev 1177
 
    - Added support for ideal co-ordinates, which should make writing editing tools a lot easier. For some reason they don't yet work with the back and right cameras.
 
    - Thu, 02 Mar 2017 14:45:34 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 02 Mar 2017 14:45:34 +0200] rev 1176
 
    - Removed some unused class stubs and definitions.
 
    - Wed, 01 Mar 2017 12:17:56 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 01 Mar 2017 12:17:56 +0200] rev 1175
 
    - No need for braces there...
 
    - Sat, 25 Feb 2017 17:24:33 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 25 Feb 2017 17:24:33 +0200] rev 1174
 
    - Cleanup ColorSelector, moved direct color composition to a new LDColor constructor.
 
    - Sat, 25 Feb 2017 14:30:10 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 25 Feb 2017 14:30:10 +0200] rev 1173
 
    - Cleanup ColorSelector::colorButtonClicked()
 
    - Thu, 23 Feb 2017 23:36:59 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 23:36:59 +0200] rev 1172
 
    - Changed QByteArray to QVector to avoid that ugly reinterpret_cast.
 
    - Thu, 23 Feb 2017 23:29:16 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 23:29:16 +0200] rev 1171
 
    - Turned GLRenderer::pixelCapture to GLRenderer::screenCapture() which encapsulates screen capturing properly and returns a ready image.
 
    - Thu, 23 Feb 2017 23:17:10 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 23:17:10 +0200] rev 1170
 
    - Hardened the GLRenderer interface, made methods more private.
 
    - Thu, 23 Feb 2017 23:11:33 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 23:11:33 +0200] rev 1169
 
    - Cleanup GLRenderer::initializeAxes()
 
    - Thu, 23 Feb 2017 22:55:09 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 22:55:09 +0200] rev 1168
 
    - Removed GLRenderer::refresh(), update() does the job just as fine.
 
    - Thu, 23 Feb 2017 22:52:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 22:52:45 +0200] rev 1167
 
    - GLRenderer::drawVbos no longer needs to be told the GL type
 
    - Thu, 23 Feb 2017 22:51:55 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 22:51:55 +0200] rev 1166
 
    - Cleanup AlgorithmToolset::subfileSelection.
 
    - Thu, 23 Feb 2017 21:03:59 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 21:03:59 +0200] rev 1165
 
    - Fixed more dialog instances in AlgorithmToolset.
 
    - Thu, 23 Feb 2017 21:02:14 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 21:02:14 +0200] rev 1164
 
    - Moved all UI files from ui/ into src/dialogs/.
 
    - Thu, 23 Feb 2017 20:29:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:29:44 +0200] rev 1163
 
    - Removed unused class RadioGroup.
 
    - Thu, 23 Feb 2017 20:28:17 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:28:17 +0200] rev 1162
 
    - Replaced LDObjectList with QVector<LDObject*>
 
    - Thu, 23 Feb 2017 20:25:47 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:25:47 +0200] rev 1161
 
    - Removed the Origin and axes global constants.
 
    - Thu, 23 Feb 2017 20:21:40 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:21:40 +0200] rev 1160
 
    - At long last, the g_win pointer has been removed. Down with global variables!
 
    - Thu, 23 Feb 2017 20:18:39 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:18:39 +0200] rev 1159
 
    - print() is no longer a global function but is tied to HierarchyElement.
 
    - Thu, 23 Feb 2017 20:06:22 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:06:22 +0200] rev 1158
 
    - Made the GL renderer recieve information of object deletion via signals.
 
    - Thu, 23 Feb 2017 20:03:31 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 20:03:31 +0200] rev 1157
 
    - Moved GetIcon and makeSettings into the MainWindow namespace as static methods.
 
    - Thu, 23 Feb 2017 19:56:21 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 19:56:21 +0200] rev 1156
 
    - Removed the Critical and Question functions, replaced with direct QMessageBox uses. Removed unused code from mainwindow.h.
 
    - Thu, 23 Feb 2017 19:33:56 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 19:33:56 +0200] rev 1155
 
    - Removed dead code
 
    - Thu, 23 Feb 2017 19:32:36 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 19:32:36 +0200] rev 1154
 
    - Some cleanup in mainwindow.cpp, use QSet<QString> for the 'ignore' variable.
 
    - Thu, 23 Feb 2017 18:47:15 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 18:47:15 +0200] rev 1153
 
    - Reformat colors.cpp.
 
    - Thu, 23 Feb 2017 18:38:30 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 23 Feb 2017 18:38:30 +0200] rev 1152
 
    - Removed unused code from macros.h.
 
    - Mon, 20 Feb 2017 07:56:21 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 20 Feb 2017 07:56:21 +0200] rev 1151
 
    - Made fixed cameras matrix-based. This simplifies some math.
 
    - Sat, 18 Feb 2017 02:02:29 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 18 Feb 2017 02:02:29 +0200] rev 1150
 
    - Added gnomon.dat to version control. It helps me sort out the cameras as I rework them.
 
    - Tue, 14 Feb 2017 15:21:34 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 15:21:34 +0200] rev 1149
 
    - Moved LDQuadrilateral into its own source pair.
 
    - Tue, 14 Feb 2017 15:11:33 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 15:11:33 +0200] rev 1148
 
    - Moved LDTriangle into its own source pair.
 
    - Tue, 14 Feb 2017 14:59:26 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 14:59:26 +0200] rev 1147
 
    - Renamed ldObject.cpp → linetypes/modelobject.cpp
 
    - Tue, 14 Feb 2017 14:53:06 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 14:53:06 +0200] rev 1146
 
    - Renamed glCompiler.cpp → glcompiler.cpp
 
    - Tue, 14 Feb 2017 14:52:01 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 14:52:01 +0200] rev 1145
 
    - Renamed ldDocument.cpp → lddocument.cpp
 
    - Tue, 14 Feb 2017 14:51:04 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 14:51:04 +0200] rev 1144
 
    - Renamed glRenderer.cpp → glrenderer.cpp
 
    - Tue, 14 Feb 2017 13:37:58 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 13:37:58 +0200] rev 1143
 
    - Cleanup AlgorithmToolset::replaceCoordinates()
 
    - Tue, 14 Feb 2017 13:29:47 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 13:29:47 +0200] rev 1142
 
    - Fixed possible memory leak in AlgorithmToolset::editRaw().
 
    - Tue, 14 Feb 2017 13:25:43 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 13:25:43 +0200] rev 1141
 
    - Split LDConditionalEdge and LDEdgeLine into new source pairs
 
    - Tue, 14 Feb 2017 13:02:05 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 13:02:05 +0200] rev 1140
 
    - Removed the GLCamera::FreeToken name
 
    - Tue, 14 Feb 2017 12:58:53 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 12:58:53 +0200] rev 1139
 
    - LDObject subclass renaming:
· LDLine → LDEdgeLine
· LDCondLine → LDConditionalEdge
· LDQuad → LDQuadrilateral 
    - Tue, 14 Feb 2017 12:48:21 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 12:48:21 +0200] rev 1138
 
    - Updated comments
 
    - Tue, 14 Feb 2017 12:43:10 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 12:43:10 +0200] rev 1137
 
    - Inlined away the LDOBJ macros in ldobject.h.
 
    - Tue, 14 Feb 2017 09:53:13 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 09:53:13 +0200] rev 1136
 
    - Rearranged declarations in basics.h
 
    - Tue, 14 Feb 2017 09:48:51 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 09:48:51 +0200] rev 1135
 
    - Removed the intXX type aliases and removed uses of intXX_t in favor of qintXX
 
    - Tue, 14 Feb 2017 08:33:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 08:33:44 +0200] rev 1134
 
    - Moved more stuff to GLCamera
 
    - Tue, 14 Feb 2017 08:26:39 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 08:26:39 +0200] rev 1133
 
    - Some documentation and cleanup in GLRenderer...
 
    - Tue, 14 Feb 2017 08:15:58 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 08:15:58 +0200] rev 1132
 
    - Fixed the free camera icon not showing up anymore.
 
    - Tue, 14 Feb 2017 08:13:26 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 08:13:26 +0200] rev 1131
 
    - Simplified camera tooltip code.
 
    - Tue, 14 Feb 2017 08:08:17 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 08:08:17 +0200] rev 1130
 
    - Moved camera names to GLCamera, other adjustments
 
    - Tue, 14 Feb 2017 07:57:27 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 14 Feb 2017 07:57:27 +0200] rev 1129
 
    - Exported GLRenderer cameras into a new class, GLCamera.
 
    - Mon, 13 Feb 2017 20:59:16 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 13 Feb 2017 20:59:16 +0200] rev 1128
 
    - Fixed some compilation problems
 
    - Sun, 12 Feb 2017 17:28:22 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 12 Feb 2017 17:28:22 +0200] rev 1127
 
    - Commented GLCompiler::getColorForPolygon
 
    - Sun, 12 Feb 2017 17:18:14 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 12 Feb 2017 17:18:14 +0200] rev 1126
 
    - Refactored configcollector.py
 
    - Sun, 12 Feb 2017 16:59:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 12 Feb 2017 16:59:35 +0200] rev 1125
 
    - Moved the definitions of all configuration options into a new text file and made the configuration collector read that.
 
    - Sun, 12 Feb 2017 16:02:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 12 Feb 2017 16:02:44 +0200] rev 1124
 
    - Moved definition of MainWindow::ToolInfo into mainwindow.cpp
 
    - Sun, 12 Feb 2017 16:02:02 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 12 Feb 2017 16:02:02 +0200] rev 1123
 
    - Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"
 
    - Fri, 10 Feb 2017 23:06:24 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 10 Feb 2017 23:06:24 +0200] rev 1122
 
    - Added the RingAdapter class and interfacing ring() function and simplified some math in GLCompiler with it
 
    - Thu, 09 Feb 2017 23:51:42 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 23:51:42 +0200] rev 1121
 
    - Replaced uses of currentDocument() in GLRenderer with m_model
 
    - Thu, 09 Feb 2017 23:50:11 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 23:50:11 +0200] rev 1120
 
    - Axes are not rendered with normals so the normals client state has to be disabled when drawing them.
 
    - Thu, 09 Feb 2017 23:46:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 23:46:45 +0200] rev 1119
 
    - Implemented lighting. Yay! Unfortunately, faces that show up the wrong way around in BFC red/green mode also show up with inverted lighting here.
 
    - Thu, 09 Feb 2017 23:45:53 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 23:45:53 +0200] rev 1118
 
    - Grah
 
    - Thu, 09 Feb 2017 22:46:37 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 22:46:37 +0200] rev 1117
 
    - Moved LDComment and LDEmpty into their own source file pairs.
 
    - Thu, 09 Feb 2017 21:04:33 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 21:04:33 +0200] rev 1116
 
    - Moved dialogs.cpp to dialogs/externalprogrampathdialog.cpp
 
    - Thu, 09 Feb 2017 21:01:12 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 21:01:12 +0200] rev 1115
 
    - Cleaned up ExternalProgramPathDialog
 
    - Thu, 09 Feb 2017 20:54:21 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 20:54:21 +0200] rev 1114
 
    - Moved some global constants into appropriate namespaces.
 
    - Thu, 09 Feb 2017 20:44:36 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 20:44:36 +0200] rev 1113
 
    - Cleaned up GLCompiler. Among other changes, the compiler no longer has to be told what to compile.
 
    - Thu, 09 Feb 2017 20:07:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 20:07:45 +0200] rev 1112
 
    - Fixed potential memory leak
 
    - Thu, 09 Feb 2017 19:59:27 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 19:59:27 +0200] rev 1111
 
    - Replaced GLRenderer::m_width and GLRenderer::m_height with width() and height() calls.
 
    - Thu, 09 Feb 2017 19:57:43 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 19:57:43 +0200] rev 1110
 
    - Moved more business logic out of GLRenderer into Canvas. GLRenderer::pick(const QRange&) now returns a set of LDObjects without modifying them. Replaced the GLRenderer::pick(int, int) overload with GLRenderer::pickOneObject.
 
    - Thu, 09 Feb 2017 19:32:41 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 19:32:41 +0200] rev 1109
 
    - Made GLRenderer's Model pointer const
 
    - Thu, 09 Feb 2017 13:26:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 13:26:44 +0200] rev 1108
 
    - Moved more editing-related methods to Canvas.
 
    - Thu, 09 Feb 2017 13:17:22 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 13:17:22 +0200] rev 1107
 
    - Removed the unneeded makeCurrent overload
 
    - Thu, 09 Feb 2017 13:13:46 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 13:13:46 +0200] rev 1106
 
    - Moved more methods only used by canvas code from GLRenderer to Canvas. Thin border pen is now a static constant.
 
    - Thu, 09 Feb 2017 13:07:47 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 13:07:47 +0200] rev 1105
 
    - Moved triangle count rendering to Canvas
 
    - Thu, 09 Feb 2017 13:05:31 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 13:05:31 +0200] rev 1104
 
    - Moved document editing methods from GLRenderer to Canvas
 
    - Thu, 09 Feb 2017 11:53:55 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 11:53:55 +0200] rev 1103
 
    - Created a new GLRenderer derivative class "Canvas" and made MainWindow use it
 
    - Thu, 09 Feb 2017 01:08:57 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 01:08:57 +0200] rev 1102
 
    - Cleaned up code in LDDocument and removed unnecessary flags and methods. Flags turned into bools.
 
    - Thu, 09 Feb 2017 01:00:31 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 01:00:31 +0200] rev 1101
 
    - Removed some unused code
 
    - Thu, 09 Feb 2017 00:52:23 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 00:52:23 +0200] rev 1100
 
    - Removed all overlay support. It's a messy pile of mess and I will reimplement it later as background images and it will be much better then.
 
    - Thu, 09 Feb 2017 00:45:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 00:45:44 +0200] rev 1099
 
    - GLRenderer no longer exposes the model pointer.
 
    - Thu, 09 Feb 2017 00:43:30 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 00:43:30 +0200] rev 1098
 
    - LDGLData merged into GLRenderer since it only deals with one document now. GLRenderer generalised from rendering documents to models.
 
    - Thu, 09 Feb 2017 00:32:24 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 09 Feb 2017 00:32:24 +0200] rev 1097
 
    - Made a new renderer be created for each document, instead of reusing the same renderer for all documents.
 
    - Wed, 08 Feb 2017 17:07:19 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Feb 2017 17:07:19 +0200] rev 1096
 
    - Simplified GLRenderer::convert3dTo2d. The multiplication with the modelview matrix is not necessary, it's identity all the time... with that, I think the function makes much more sense now.
 
    - Wed, 08 Feb 2017 16:51:55 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Feb 2017 16:51:55 +0200] rev 1095
 
    - - Use a QGenericMatrix to store the matrix, instead of a C array
- Only reset angles when GL is initialized, otherwise bad things happen
- Fixed missing "}" in matrix string representation 
    - Wed, 08 Feb 2017 16:45:32 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Feb 2017 16:45:32 +0200] rev 1094
 
    - Changed from GLdouble to GLfloat. Apparently the performance difference is greater on the GPU..? It doesn't really matter but let's be consistent.
 
    - Wed, 08 Feb 2017 16:38:59 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Feb 2017 16:38:59 +0200] rev 1093
 
    - GLRenderer::clampAngle is no longer used as of the previous commit so we can do away with it.
 
    - Wed, 08 Feb 2017 16:25:06 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 08 Feb 2017 16:25:06 +0200] rev 1092
 
    - Switched from euler angle rotation to matrix rotation. Gimbal lock is now broken.
 
    - Sat, 04 Feb 2017 14:44:39 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 04 Feb 2017 14:44:39 +0200] rev 1091
 
    - Wrote documentation to the Model class.
 
    - Sat, 04 Feb 2017 14:24:16 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 04 Feb 2017 14:24:16 +0200] rev 1090
 
    - The current document pointer may no longer be null.
 
    - Fri, 03 Feb 2017 10:51:08 +0200
 
    - by Teemu Piippo <teemu@compsta2.com> [Fri, 03 Feb 2017 10:51:08 +0200] rev 1089
 
    - minor amendment
 
    - Fri, 03 Feb 2017 10:44:23 +0200
 
    - by Teemu Piippo <teemu@compsta2.com> [Fri, 03 Feb 2017 10:44:23 +0200] rev 1088
 
    - Reworked and cleaned up the circle mode
 
    - Mon, 30 Jan 2017 14:30:55 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 30 Jan 2017 14:30:55 +0200] rev 1087
 
    - Some code cleanup in abstract editing modes.
 
    - Mon, 30 Jan 2017 02:41:45 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 30 Jan 2017 02:41:45 +0200] rev 1086
 
    - Removed some unnecessary #include-directives.
 
    - Mon, 30 Jan 2017 02:33:17 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 30 Jan 2017 02:33:17 +0200] rev 1085
 
    - Removed the status bar, since it's not used for anything
 
    - Mon, 30 Jan 2017 02:30:26 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 30 Jan 2017 02:30:26 +0200] rev 1084
 
    - Split object list representation into virtual methods
 
    - Mon, 30 Jan 2017 02:18:42 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 30 Jan 2017 02:18:42 +0200] rev 1083
 
    - Removed LDDocument::getObjectCount (superceded by Model::size)
 
    - Mon, 30 Jan 2017 00:59:06 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Mon, 30 Jan 2017 00:59:06 +0200] rev 1082
 
    - The "all objects have valid models" invariant seems to be holding up now. At least basic drawing works again.
 
    - Sun, 29 Jan 2017 21:17:43 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 21:17:43 +0200] rev 1081
 
    - Made all LDObject constructors protected. Emplacement is now the only way to create objects.
 
    - Sun, 29 Jan 2017 21:07:15 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 21:07:15 +0200] rev 1080
 
    - Removed the LDSpawn function and replaced its last use cases.
 
    - Sun, 29 Jan 2017 21:02:11 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 21:02:11 +0200] rev 1079
 
    - More rework on model stuff, removals of LDSpawn calls. Most importantly, the LDraw code parsing function was moved to Model.
 
    - Sun, 29 Jan 2017 15:49:36 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 15:49:36 +0200] rev 1078
 
    - Removed uses of LDSpawn in the algorithm toolset
 
    - Sun, 29 Jan 2017 15:39:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 15:39:35 +0200] rev 1077
 
    - Replaced uses of LDSpawn with the Model class in edit modes
 
    - Sun, 29 Jan 2017 15:28:48 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 15:28:48 +0200] rev 1076
 
    - Removed dead code that's standing in the way of refactoring
 
    - Sun, 29 Jan 2017 15:25:26 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 15:25:26 +0200] rev 1075
 
    - Removed the AddObjectDialog. Garbage code that absolutely needs to be reimplemented.
 
    - Sun, 29 Jan 2017 15:18:40 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 15:18:40 +0200] rev 1074
 
    - Made the quad→triangles use emplacement. However, now it crashes because of problems in the underlying system (the LDObject constructor shouldn't do anything in regard to the model!)
 
    - Sun, 29 Jan 2017 15:05:14 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 29 Jan 2017 15:05:14 +0200] rev 1073
 
    - Major overhaul of object→document relationship: added the Model class which models the object buffer. Each object is to be included in a model (an invariant that currently does not hold). A document is a subclass of a model. The LDObject is also now agnostic about selection, and the selection is now a set. A lot of things are probably broken now but it's a major step forward.
The LDObject::destroy method is also now gone. The model decides when objects are destroyed and calls the destructor directly. The end result removes a lot of cruft and adds structure to LDObject relations.
Notes:
- Inlining does not currently work (nothing simply gets inlined in)
- More work is required to ensure that each object actually goes into a model 
    - Sat, 28 Jan 2017 17:47:06 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 17:47:06 +0200] rev 1072
 
    - Happy new year 2017!
 
    - Sat, 28 Jan 2017 17:45:00 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 17:45:00 +0200] rev 1071
 
    - Matrices are now input with 9 spinboxes instead of a MLCad-style line edit
 
    - Sat, 28 Jan 2017 17:23:04 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 17:23:04 +0200] rev 1070
 
    - Moved the identity matrix constant into Matrix's namespace
 
    - Sat, 28 Jan 2017 17:20:16 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 17:20:16 +0200] rev 1069
 
    - Removed the dangerous C-array constructor from the matrix - no need for it anyway since the matrix already is an array of doubles.
 
    - Sat, 28 Jan 2017 17:14:05 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 17:14:05 +0200] rev 1068
 
    - Reworked the Matrix interface so that less index math is involved
 
    - Sat, 28 Jan 2017 16:30:27 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 16:30:27 +0200] rev 1067
 
    - Fixed formatFileSize
 
    - Sat, 28 Jan 2017 14:33:09 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 14:33:09 +0200] rev 1066
 
    - Refactor roundToDecimals and formatFileSize
 
    - Sat, 28 Jan 2017 14:14:28 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 14:14:28 +0200] rev 1065
 
    - Actually, let's call it countof(). Makes more sense.
 
    - Sat, 28 Jan 2017 14:13:01 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 14:13:01 +0200] rev 1064
 
    - Replaced '.length()' with 'length()' where appropriate
 
    - Sat, 28 Jan 2017 14:01:19 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 14:01:19 +0200] rev 1063
 
    - Replaced uses of 'x.size()' with 'length(x)'
 
    - Sat, 28 Jan 2017 13:49:09 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 13:49:09 +0200] rev 1062
 
    - refactor: added the length() function that's like Python's len()
 
    - Sat, 28 Jan 2017 13:32:55 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 28 Jan 2017 13:32:55 +0200] rev 1061
 
    - refactor
 
    - Sat, 19 Nov 2016 22:57:18 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Sat, 19 Nov 2016 22:57:18 +0200] rev 1060
 
    - Display error string if unable to write a crash log.
 
    - Fri, 18 Nov 2016 03:01:38 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 18 Nov 2016 03:01:38 +0200] rev 1059
 
    - Made DEFINE_FLAG_ACCESS_METHODS a function macro
 
    - Fri, 18 Nov 2016 02:56:53 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 18 Nov 2016 02:56:53 +0200] rev 1058
 
    - Cleaned up crash catcher, fixed missing <math.h> include
 
    - Thu, 17 Nov 2016 14:12:59 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 17 Nov 2016 14:12:59 +0200] rev 1057
 
    - Fixed additive range selection not working properly.
 
    - Thu, 17 Nov 2016 13:56:13 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 17 Nov 2016 13:56:13 +0200] rev 1056
 
    - Cleanup in GL renderer...
 
    - Thu, 17 Nov 2016 12:18:13 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Thu, 17 Nov 2016 12:18:13 +0200] rev 1055
 
    - Cleaned up PrimitiveScanner
 
    - Wed, 16 Nov 2016 01:43:37 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 16 Nov 2016 01:43:37 +0200] rev 1054
 
    - Further cleanup
 
    - Wed, 16 Nov 2016 01:28:42 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 16 Nov 2016 01:28:42 +0200] rev 1053
 
    - Refactor primitives
 
    - Wed, 16 Nov 2016 00:52:22 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 16 Nov 2016 00:52:22 +0200] rev 1052
 
    - Refactor FileToolset
 
    - Wed, 16 Nov 2016 00:44:35 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Wed, 16 Nov 2016 00:44:35 +0200] rev 1051
 
    - Moved the about dialog into the file toolset and removed the mail button (the forums are better for this anyway)
 
    - Tue, 15 Nov 2016 17:44:54 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 17:44:54 +0200] rev 1050
 
    - Removed the 'once' macro since it's not used
 
    - Tue, 15 Nov 2016 17:42:42 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 17:42:42 +0200] rev 1049
 
    - Removed the USE_QT5 macro now that we're Qt5 only.
 
    - Tue, 15 Nov 2016 17:40:51 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 17:40:51 +0200] rev 1048
 
    - Change "m_" prefix to "_" in members of PartDownloader
 
    - Tue, 15 Nov 2016 17:39:04 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 17:39:04 +0200] rev 1047
 
    - Changed QList to QVector in PartDownloader
 
    - Tue, 15 Nov 2016 17:37:31 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 17:37:31 +0200] rev 1046
 
    - Cleanup PartDownloader
 
    - Tue, 15 Nov 2016 17:12:50 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 17:12:50 +0200] rev 1045
 
    - Unabbreviate "transform" to "transformationMatrix"
 
    - Tue, 15 Nov 2016 13:52:44 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Tue, 15 Nov 2016 13:52:44 +0200] rev 1044
 
    - Cleanup colors.cpp/.h
 
    - Fri, 11 Nov 2016 13:59:27 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 11 Nov 2016 13:59:27 +0200] rev 1043
 
    - Refactor GuiUtilities
 
    - Fri, 11 Nov 2016 13:34:51 +0200
 
    - by Teemu Piippo <teemu@hecknology.net> [Fri, 11 Nov 2016 13:34:51 +0200] rev 1042
 
    - Some cleanup
 
    - Sun, 16 Oct 2016 18:28:56 +0300
 
    - by Teemu Piippo <teemu@hecknology.net> [Sun, 16 Oct 2016 18:28:56 +0300] rev 1041
 
    - Draw line lengths to 2 decimal points only.