changed Model into an MVC list model and replaced the objects list with a view into the model

add missing switch case

disable lighting in the selection scene

moved matrix calculations, added inverted normals for BFC back sides

BFC INVERTNEXT objects are no longer individual objects

removed GL_POLYGON_SMOOTH because it causes artifacts

made GLCamera a non-QObject

remove GL_POLYGON_SMOOTH because it causes rendering artifacts

renderer rework

begin rendering rework

encoded division slash

added support for circular 8/-primitives

simplify

add support for 8/ in part downloader

drop Qt4 support

simplify

undo config change

simplified RoundToDecimals

happy new year 2018

revamped format.h

reduce main.cpp

simplified Matrix

replaced Origin with default-constructed Vertex

fix paren style

add autosave

replaced "Config->" with "config."

increased range of GLRenderer bounds

circlemode: don't wait for the last click

Worked more on the library collection thing

LibraryCollection now derives from QObject and QVector<Library>

More work on library collections

Laid groundwork for library collection support.

Some cleanup in LDPaths

Removed the unary min and max functions.

Better encapsulated the BaseConfiguration class.

Whoops

Split the configuration main interface to a new class, BaseInterface, so that moc can properly deal with it.

Configuration changes can now be detected with signals.

Added Python tools to CMake so that they show up in IDEs

Simplified GLCompiler vbo interface

PrimitiveScanner is no longer a HierarchyElement.

Grid is now a namespace.

MathFunctions is now a namespace.

Fixed NewPartDialog leaking the memory allocated by the user interface.

NewPartDialog is no longer a HierarchyElement.

ColorSelector is no longer a HierarchyElement.

GuiUtilities is now a namespace.

The Grid class is no longer a hierarchy element or a QObject.

Made configuration a global singleton. I think I can give in at least that much because it makes solving a lot of problems easier.

Also removed the copy constructor and copy assignment because those only are bad news for a resource managing vector...

and let's put a newline there...

Deleted the copy constructor version of ResourceVector<T>::insert, like with append

Sorted the methods in Model's public section.

Renamed some methods of the Model class to remove the 'emplace' word (however cromulent it is, being from STL...) from them.

Moved LDObject lifetime management from Model to ResourceVector. This is a large refactor that removes some hacks from the Model class.

Added a new type ResourceVector which manages object lifetimes, and used it to remove a bit of memory management.

Polar grid is now togglable.

CMake fixes

Added polar grid snapping code.

Added polar grid rendering (which is disabled for now).

Grid::snap now snaps points.

Simplified Grid::snap.

At long last, the grid is finally now rendered onto the viewport. Woop!

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.

Removed some unused class stubs and definitions.

No need for braces there...

Cleanup ColorSelector, moved direct color composition to a new LDColor constructor.

Cleanup ColorSelector::colorButtonClicked()

Changed QByteArray to QVector to avoid that ugly reinterpret_cast.

Turned GLRenderer::pixelCapture to GLRenderer::screenCapture() which encapsulates screen capturing properly and returns a ready image.

Hardened the GLRenderer interface, made methods more private.

Cleanup GLRenderer::initializeAxes()

Removed GLRenderer::refresh(), update() does the job just as fine.

GLRenderer::drawVbos no longer needs to be told the GL type

Cleanup AlgorithmToolset::subfileSelection.

Fixed more dialog instances in AlgorithmToolset.

Moved all UI files from ui/ into src/dialogs/.

Removed unused class RadioGroup.

Replaced LDObjectList with QVector<LDObject*>

Removed the Origin and axes global constants.

At long last, the g_win pointer has been removed. Down with global variables!

print() is no longer a global function but is tied to HierarchyElement.

Made the GL renderer recieve information of object deletion via signals.

Moved GetIcon and makeSettings into the MainWindow namespace as static methods.

Removed the Critical and Question functions, replaced with direct QMessageBox uses. Removed unused code from mainwindow.h.

Removed dead code

Some cleanup in mainwindow.cpp, use QSet<QString> for the 'ignore' variable.

Reformat colors.cpp.

Removed unused code from macros.h.

Made fixed cameras matrix-based. This simplifies some math.

Added gnomon.dat to version control. It helps me sort out the cameras as I rework them.

Moved LDQuadrilateral into its own source pair.

Moved LDTriangle into its own source pair.

Renamed ldObject.cpp → linetypes/modelobject.cpp

Renamed glCompiler.cpp → glcompiler.cpp

Renamed ldDocument.cpp → lddocument.cpp

Renamed glRenderer.cpp → glrenderer.cpp

Cleanup AlgorithmToolset::replaceCoordinates()

Fixed possible memory leak in AlgorithmToolset::editRaw().

Split LDConditionalEdge and LDEdgeLine into new source pairs

Removed the GLCamera::FreeToken name

LDObject subclass renaming:

Updated comments

Inlined away the LDOBJ macros in ldobject.h.

Rearranged declarations in basics.h

Removed the intXX type aliases and removed uses of intXX_t in favor of qintXX

Moved more stuff to GLCamera

Some documentation and cleanup in GLRenderer...

Fixed the free camera icon not showing up anymore.

Simplified camera tooltip code.

Moved camera names to GLCamera, other adjustments

Exported GLRenderer cameras into a new class, GLCamera.

Fixed some compilation problems

Commented GLCompiler::getColorForPolygon

Refactored configcollector.py

Moved the definitions of all configuration options into a new text file and made the configuration collector read that.

Moved definition of MainWindow::ToolInfo into mainwindow.cpp

Reworked iterable enums: they all are enum classes now and the end value is marked with "_End"

Added the RingAdapter class and interfacing ring() function and simplified some math in GLCompiler with it

Replaced uses of currentDocument() in GLRenderer with m_model

Axes are not rendered with normals so the normals client state has to be disabled when drawing them.

Implemented lighting. Yay! Unfortunately, faces that show up the wrong way around in BFC red/green mode also show up with inverted lighting here.

Grah

Moved LDComment and LDEmpty into their own source file pairs.

Moved dialogs.cpp to dialogs/externalprogrampathdialog.cpp

Cleaned up ExternalProgramPathDialog

Moved some global constants into appropriate namespaces.

Cleaned up GLCompiler. Among other changes, the compiler no longer has to be told what to compile.

(0) -1000 -128 +128 tip

mercurial