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.

Parsing stability, finally figured that dumb crash

LDraw still uses inverted y-scale... I always used symmetrical objects for testing so I never noticed I had this wrong.

Scroll the color picker dialog to the selected color if it's off-screen

Added polygon bordering function

Simplify ForgeWindow::slot_splitQuads with the new methods

Added clipboard, added delete action

Done the rendering end of the red/green BFC view

Make line thickness user-configurable, draw conditional lines dashed, use the bounding box to offset the model so that it is centered properly.

Colorized polygons now appear colorized in the list view (unless disabled). GL rendered now draws transparent polygons properly.

Added color selectors for the add object dialog

Turned the test palette action into a set color action for mass object coloring.

Finished with the color selection dialog

Color dialog almost up and running. Need to make it actually selectable now. TODO: make it read LDConfig.ldr

Made the GL renderer actually use the main color configuration

(0) -50 -28 +28 +50 +100 +300 +1000 tip

mercurial