--User changes
-Add many tooltips to help clarify functionality.
-Select multiple flames in library for del/move. Still only one allowed to be set as the current.
-Show checkbox for current flame. Remember this is not necessarily what's selected.
-User can now drag a square to select xforms, which keeps in sync with checkboxes.
-Remove --nframes from command line. Replace with new params: --loopframes, --interpframes, --interploops.
-Add two new options to EmberGenome: --cwloops --cwinterploops to specify whether rotation should go clockwise instead of the default counter clockwise.
-Add these to Fractorium as checkboxes.
-Apply All now also works for toggling animate flag on xforms.
-Options dialog now allows user to set whether double click toggles spinners, or right click does.
--Bug fixes
-Selecting final and non-final xforms, and then dragging the non-final did not drag the final with it.
-Selecting all xforms when a final was present, then deleting crashed the program.
-Remove support for ppm files in the command line programs, it's an outdated format.
-Switching between SP and DP kept reapplying the palette adjustments.
--Code changes
-Move build system to Visual Studio 2015 and Qt 5.6.
-SSE used during addition of points to the histogram.
-Remove last remnants of old flam3 C code and replace with C++.
-Remove unused code involving tbb::task_group.
-Make settings object a global shared_ptr singleton, so it doesn't have to be passed around.
-Draw selection circles around all selected xforms plus the current one.
--Bug fixes
-Add control key as a modifier to increase the amount a spinbox is changed when using right mouse drag to edit. Previously only observed shift key to decrease the value.
-Change the copy/paste selected xforms shortcuts to be Ctrl+X+C and Ctrl+X+V.
--Code changes
-Add function Fractorium::IsXformSelected() to determine if an xform has been selected with the checkboxes.
-Add variations changes to the list of functionality that can be applied to all xforms using the Select tab.
-Allow for graphical affine adjustments to apply to multiple selected xforms.
-Slight optimization of the pie variation.
-Undo state is only saved when the render completes and the mouse buttons are released. This helps avoid intermediate steps for quickly completing renders while dragging.
-Add some keyboard shortcuts for toolbar and menu items.
-Make info tab tree always expanded.
--Bug fixes
-Make precalcs for all hypertile variations safer by using Zeps() for denominators.
-Changing the current xform with more than one selected would set all xform's color index value that of the current one.
-Use hard found palette path information for randoms as well.
-OpenCL build and assignment errors for Z value in epispiral variation.
-Unitialized local variables in hexaplay3D, crob, pRose3D.
--Code changes
-Change static member variables from m_ to s_.
-Get rid of excessive endl and replace with "\n".
-Remove old IMAGEGL2D define from before Nvidia supported OpenCL 1.2.
-Remove old CriticalSection code and use std::recursive_mutex.
-Make Affine2D Rotate() and RotateTrans() take radians instead of angles.
-More C++11 work.
-General cleanup.
-Add variations filter/selection dialog.
--Bug fixes
-Fix summary window not properly indicating the presence of pose affine.
-Remove a file named Fractorium.aps which had been erroneously committed a year ago.
--Code changes
-Use qobject_cast instead of dynamic_cast where appropriate.
-Add more override keyword where appropriate.
-Add variations list to settings for filter dialog.
Add the ability to apply operations to a selection of xforms, rather than just the current one.
Update tool tips accordingly.
--Bug fixes
Fix NAN in equalized weight calculation when all weights are set to 0.
--Code changes
Clean up strange nested usage of Update([&]()) calls when changing xform color index via either the spinner or scroll bar. Made no sense.
Make ISAAC RandBit() use RandByte() to be slightly more efficient.
Put FillXforms() in the controller where it belongs, rather than the main window class.
Add UpdateXform() function to the controller to handle applying operations to multiple xforms.
Remove the word "Current" out of most xform related functions because they now operate on whatever is selected.
Properly use Update() for various xform operations whereas before it was manually calling UpdateRender().
Also properly use Update() in places where it was erroneously using UpdateXform() for things that did not involve xforms.
Block signals in FillXaosTable().
Add new file named FractoriumXformsSelect.cpp to handle new xform selection code.