mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-06-30 13:26:02 -04:00
--User changes
-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.
This commit is contained in:
@ -48,35 +48,6 @@ void FractoriumEmberController<T>::FillXaos()
|
||||
m_Fractorium->ui.XaosTableView->resizeColumnsToContents();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create and return a xaos name string.
|
||||
/// </summary>
|
||||
/// <param name="i">The index of the xform whose xaos will be used</param>
|
||||
/// <returns>The xaos name string</returns>
|
||||
template <typename T>
|
||||
QString FractoriumEmberController<T>::MakeXaosNameString(uint i)
|
||||
{
|
||||
auto xform = m_Ember.GetXform(i);
|
||||
QString name;
|
||||
//if (xform)
|
||||
//{
|
||||
// int indexPlus1 = m_Ember.GetXformIndex(xform) + 1;//GUI is 1 indexed to avoid confusing the user.
|
||||
// int curr = m_Fractorium->ui.CurrentXformCombo->currentIndex() + 1;
|
||||
//
|
||||
// if (indexPlus1 != -1)
|
||||
// {
|
||||
// if (m_Fractorium->ui.XaosToRadio->isChecked())
|
||||
// name = QString("From ") + ToString(curr) + QString(" To ") + ToString(indexPlus1);
|
||||
// else
|
||||
// name = QString("From ") + ToString(indexPlus1) + QString(" To ") + ToString(curr);
|
||||
//
|
||||
// //if (xform->m_Name != "")
|
||||
// // name = name + " (" + QString::fromStdString(xform->m_Name) + ")";
|
||||
// }
|
||||
//}
|
||||
return name;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the xaos value.
|
||||
/// Called when any xaos spinner is changed.
|
||||
@ -93,13 +64,13 @@ void FractoriumEmberController<T>::XaosChanged(int x, int y, double val)
|
||||
auto newVal = TruncPrecision(val, XAOS_PREC);//Sometimes 0 comes in as a very small number, so round.
|
||||
|
||||
if (auto xform = m_Ember.GetXform(x))
|
||||
if (!IsClose<T>(newVal, xform->Xaos(y), 1e-7))
|
||||
if (!IsClose<T>(newVal, xform->Xaos(y), T(1e-7)))
|
||||
Update([&] { xform->SetXaos(y, newVal); });
|
||||
}
|
||||
|
||||
void Fractorium::OnXaosChanged(double d)
|
||||
{
|
||||
if (auto* senderSpinBox = qobject_cast<DoubleSpinBox*>(this->sender()))
|
||||
if (auto senderSpinBox = qobject_cast<DoubleSpinBox*>(this->sender()))
|
||||
{
|
||||
auto p = senderSpinBox->property("tableindex").toPoint();
|
||||
m_Controller->XaosChanged(p.x(), p.y(), d);
|
||||
|
Reference in New Issue
Block a user