Added three configurable grid layouts, coarse, medium and fine grids, like those of MLCad. The grids are considerably finer by default simply because part editing works at a lower scale than model editing.

Added the about dialog.

Rotate subfiles and radials by their origin and not by their contents' bboxes.

Rotation improvements; allow radials be inlined

Rotation and rounding. Rotation needs work to get proper origin stuff

some GUI tweaks

Added winding reversal, though undoing it isn't quite ready yet.

Generalized SetContentsHistory to an EditHistory

Some renaming

Redrew selection icons to be clearer

Added functionality for getting a primitive name from a radial.

Radial saving and reading from files

Added object list representation for radials

Added the radial type, this one sure has been on my wishlist for a while. :)

Added select by type. Selection is now preserved over operations.

Improved shared selection handling; added select by color

More selection work - selecting from GUI updates the GL renderer now

Picking improvements

Added additive selection blending, with a toggable flash effect. :P

Highlight selected objects with a different color

GL picking stuff

Added the ability to add vertices to object corners

Added basic object moving with MLCAD-like controls.

Remade vertex icons, the old ones sucked.

Added user-configurable quick-coloring toolbar for.. quick coloring.

Recent files are now remembered and displayed in a submenu

Added inlining history management

Fleshed out the history dialog further

Added history dialog, cannot display all types yet

Added history support for adding objects.

Added history management for cut and paste, copy doesn't alter the object list by itself so it doesn't touch history

Added history handling for quad splitting.

Added history management for auto-bordering (and mass-addition in general)

History handling for list moving

Added history handling for set contents

Allow undo of set color

Allow the user to alter the tool bar icon size

Split some stuff out of the edit tool bar into move and object tool bars. The object tool bar is now located on the left side of the screen as the top one is running out of space.

Added icons for undo and redo

Added undo/redo foundations. Capable of undoing and redoing delete operations

Added move up/down actions.

Added a button to clear a keyboard shortcut.

Touched up the error icon, show the error icon in the set contents dialog if the contents are gibberish.

Added an icon for the exit action - the last one without one! Woo!

Added an icon for the 'about Qt' action. Let's hope Digia doesn't tear me apart for my horrible recreation of the Qt logo. :)

Extracted actions from ForgeWindow into their own files. The ACTION macro now manages meta, instances and callback definitions all in one. Too bad I still need to extern these actions in gui.cpp... maybe someday I'll find a way around it :)

Keyboard shortcuts can now be configured.

Systemized actions and added (for now no-op) key configurations for them

Added a New Part dialog

Don't include non-INVERTNEXT BFC statements in inlined objects.

LDObject::getIndex was bogus which would cause inlining to crash

Added support for BFC types

Added LDConfig.ldr parsing. All colors now available as long as LDConfig.ldr is provided.

Draw main color in the selection dialog based on preferences, take subfiles into account when calculating bbox

Phased out FOREACH macro in favor of C++11-style for iteration.

Simplified configuration code. Use a std::vector object to contain config pointers and have config objects register themselves upon creation instead of relying on a cfgdefs.h. Removed sections, all configurations are just simply written one after another now.

Further fixes to bad color handling. Allow main color be represented with arbitrary transparency.

57181.dat (Philo's model of the XL-motor) showcased a new problem.. there was no handling of unknown colors which led into crashes. Added stdout warnings, also added mid and dark stone colors

Restructured inlining to use a proper caching.. one cache per sub-file reference? What was I thinking? *whacks self with a 55295.dat*

Reverted changes on LDSubfile::getContents, I had a temporary, hackier solution there and forgot to change it back

Considerably improved sub-file inlining. Use a matrix class instead of double[9], educated myself on what matrix multiplication actually is and fixed the algorithm up. Aside from I/O problems, 32551.dat is correctly rendered now.

Implemented the inline action to expose inlining to the user. Also added a `deep inline` action to inline subfile recursively down into polygons and lines only.

Got inlining working. 3002.dat renders properly now! Now just to iron out the bugs and hone the behavior..

If editing contents of a gibberish object, show the reason for the gibberishness in the dialog. Clamp the bounding box scale to at least 1.0 so that polygons are visible in new files.

(0) -100 -64 +64 +100 +300 +1000 tip

mercurial