--User changes

-Allow for specifying linear or smooth interpolation when generating a sequence in the Library tab (was formerly hardcoded to smooth). This has the effect of exposing the --unsmoother option used in EmberGenome in the GUI.
 -Clarify tool tips of the sequence interpolation fields in the animation group on the Flame tab.
 -Change caption of the Bounds tab to be Bounds & Log.
This commit is contained in:
Person
2021-03-28 20:37:02 -06:00
parent 897ccdd375
commit 0956cd6592
9 changed files with 537 additions and 516 deletions

View File

@ -435,7 +435,7 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
!focusedctrlCombo &&
!QGuiApplication::keyboardModifiers().testFlag(Qt::AltModifier))//Must exclude these because otherwise, typing a minus key in any of the spinners will switch the xform. Also exclude alt.
{
unsigned int index;
size_t index;
double vdist = 0.01;
double hdist = 0.01;
double zoom = 1;
@ -1233,6 +1233,7 @@ void Fractorium::SetTabOrders()
w = SetTabOrder(this, w, ui.SequenceRotationsPerBlendSpinBox);
w = SetTabOrder(this, w, ui.SequenceRotationsPerBlendCWCheckBox);
w = SetTabOrder(this, w, ui.SequenceRotationsPerBlendMaxSpinBox);
w = SetTabOrder(this, w, ui.SequenceLinearCheckBox);
w = SetTabOrder(this, w, ui.SequenceGenerateButton);
w = SetTabOrder(this, w, ui.SequenceRenderButton);
w = SetTabOrder(this, w, ui.SequenceSaveButton);

File diff suppressed because it is too large Load Diff

View File

@ -61,6 +61,8 @@ void Fractorium::InitLibraryUI()
ui.SequenceRotationsPerBlendSpinBox->setMaximum(std::numeric_limits<int>::max());//Lower max = upper.
ui.SequenceRotationsPerBlendMaxSpinBox->setValue(m_Settings->RotationsPerBlendMax());//Upper.
ui.SequenceRotationsPerBlendMaxSpinBox->setMinimum(m_Settings->RotationsPerBlend());//Upper min = lower max.
//Linear.
ui.SequenceLinearCheckBox->setChecked(m_Settings->Linear());
}
/// <summary>
@ -614,6 +616,7 @@ void FractoriumEmberController<T>::SequenceGenerateButtonClicked()
const size_t start = ui.SequenceStartFlameSpinBox->value();
const size_t stop = ui.SequenceStopFlameSpinBox->value();
const size_t startCount = ui.SequenceStartCountSpinBox->value();
const bool linear = ui.SequenceLinearCheckBox->isChecked();
const size_t keyFrames = (stop - start) + 1;
size_t frameCount = 0;
double frames = 0;
@ -647,7 +650,7 @@ void FractoriumEmberController<T>::SequenceGenerateButtonClicked()
}
SheepTools<T, float> tools(palettePath, EmberCommon::CreateRenderer<T>(eRendererType::CPU_RENDERER, devices, false, 0, emberReport));
tools.SetSpinParams(true,
tools.SetSpinParams(!linear,
stagger,//Will be set again below if random is used.
0,
0,
@ -918,6 +921,7 @@ void Fractorium::SyncSequenceSettings()
m_Settings->BlendFramesMax(ui.SequenceRandomBlendMaxFramesSpinBox->value());
m_Settings->RotationsPerBlend(ui.SequenceRotationsPerBlendSpinBox->value());
m_Settings->RotationsPerBlendMax(ui.SequenceRotationsPerBlendMaxSpinBox->value());
m_Settings->Linear(ui.SequenceLinearCheckBox->isChecked());
}
template class FractoriumEmberController<float>;

View File

@ -239,6 +239,9 @@ void FractoriumSettings::RotationsPerBlend(uint i) { setValue(ROTATIONSPERBLE
uint FractoriumSettings::RotationsPerBlendMax() { return value(ROTATIONSPERBLENDMAX).toUInt(); }
void FractoriumSettings::RotationsPerBlendMax(uint i) { setValue(ROTATIONSPERBLENDMAX, i); }
bool FractoriumSettings::Linear() { return value(LINEAR).toBool(); }
void FractoriumSettings::Linear(bool b) { setValue(LINEAR, b); }
/// <summary>
/// Variations filter settings.
/// </summary>

View File

@ -42,6 +42,7 @@
#define BLENDFRAMESMAX "sequence/blendframesmax"
#define ROTATIONSPERBLEND "sequence/rotationsperblend"
#define ROTATIONSPERBLENDMAX "sequence/rotationsperblendmax"
#define LINEAR "sequence/linear"
#define VARFILTERSUM "varfilter/sumcheckbox"
#define VARFILTERASSIGN "varfilter/assigncheckbox"
@ -214,6 +215,9 @@ public:
uint RotationsPerBlendMax();
void RotationsPerBlendMax(uint i);
bool Linear();
void Linear(bool b);
int VarFilterSum();
void VarFilterSum(int i);