changelog
    
    
    - 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.