--Bug fixes

-Make stagger a double instead of a bool.
 -Save stagger values to settings.
 -Random stagger was being set in the wrong place.
 -Save rotation values as double rather than int.
This commit is contained in:
mfeemster 2016-06-11 19:01:19 -07:00
parent c91171d392
commit 2e518aeebb
6 changed files with 105 additions and 36 deletions

View File

@ -706,7 +706,8 @@ void Fractorium::SetTabOrders()
w = SetTabOrder(this, w, ui.SequenceStopFlameSpinBox); w = SetTabOrder(this, w, ui.SequenceStopFlameSpinBox);
w = SetTabOrder(this, w, ui.SequenceAllButton); w = SetTabOrder(this, w, ui.SequenceAllButton);
w = SetTabOrder(this, w, ui.SequenceRandomizeStaggerCheckBox); w = SetTabOrder(this, w, ui.SequenceRandomizeStaggerCheckBox);
w = SetTabOrder(this, w, ui.SequenceStaggerCheckBox); w = SetTabOrder(this, w, ui.SequenceStaggerSpinBox);
w = SetTabOrder(this, w, ui.SequenceRandomStaggerMaxSpinBox);
w = SetTabOrder(this, w, ui.SequenceRandomizeFramesPerRotCheckBox); w = SetTabOrder(this, w, ui.SequenceRandomizeFramesPerRotCheckBox);
w = SetTabOrder(this, w, ui.SequenceFramesPerRotSpinBox); w = SetTabOrder(this, w, ui.SequenceFramesPerRotSpinBox);
w = SetTabOrder(this, w, ui.SequenceRandomFramesPerRotMaxSpinBox); w = SetTabOrder(this, w, ui.SequenceRandomFramesPerRotMaxSpinBox);

View File

@ -171,9 +171,12 @@ public slots:
void OnSequenceRenderButtonClicked(bool checked); void OnSequenceRenderButtonClicked(bool checked);
void OnSequenceSaveButtonClicked(bool checked); void OnSequenceSaveButtonClicked(bool checked);
void OnSequenceOpenButtonClicked(bool checked); void OnSequenceOpenButtonClicked(bool checked);
void OnSequenceRandomizeStaggerCheckBoxStateChanged(int state);
void OnSequenceRandomizeFramesPerRotCheckBoxStateChanged(int state); void OnSequenceRandomizeFramesPerRotCheckBoxStateChanged(int state);
void OnSequenceRandomizeRotationsCheckBoxStateChanged(int state); void OnSequenceRandomizeRotationsCheckBoxStateChanged(int state);
void OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int state); void OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int state);
void OnSequenceStaggerSpinBoxChanged(double d);
void OnSequenceRandomStaggerMaxSpinBoxChanged(double d);
void OnSequenceStartFlameSpinBoxChanged(int d); void OnSequenceStartFlameSpinBoxChanged(int d);
void OnSequenceStopFlameSpinBoxChanged(int d); void OnSequenceStopFlameSpinBoxChanged(int d);
void OnSequenceFramesPerRotSpinBoxChanged(int d); void OnSequenceFramesPerRotSpinBoxChanged(int d);

View File

@ -3513,8 +3513,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>263</width> <width>118</width>
<height>700</height> <height>672</height>
</rect> </rect>
</property> </property>
<property name="autoFillBackground"> <property name="autoFillBackground">
@ -5581,8 +5581,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>259</width> <width>133</width>
<height>652</height> <height>52</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -6867,19 +6867,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1" alignment="Qt::AlignLeft">
<widget class="QCheckBox" name="SequenceStaggerCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Stagger</string>
</property>
</widget>
</item>
<item row="5" column="1"> <item row="5" column="1">
<widget class="QDoubleSpinBox" name="SequenceRotationsSpinBox"> <widget class="QDoubleSpinBox" name="SequenceRotationsSpinBox">
<property name="sizePolicy"> <property name="sizePolicy">
@ -7186,6 +7173,50 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1">
<widget class="QDoubleSpinBox" name="SequenceStaggerSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="prefix">
<string>Stagger: </string>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QDoubleSpinBox" name="SequenceRandomStaggerMaxSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
</property>
<property name="prefix">
<string>Stagger max: </string>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>

View File

@ -7,6 +7,8 @@
void Fractorium::InitLibraryUI() void Fractorium::InitLibraryUI()
{ {
ui.LibraryTree->SetMainWindow(this); ui.LibraryTree->SetMainWindow(this);
ui.SequenceStaggerSpinBox->setValue(m_Settings->Stagger());
ui.SequenceRandomStaggerMaxSpinBox->setValue(m_Settings->StaggerMax());
ui.SequenceFramesPerRotSpinBox->setValue(m_Settings->FramesPerRot()); ui.SequenceFramesPerRotSpinBox->setValue(m_Settings->FramesPerRot());
ui.SequenceRandomFramesPerRotMaxSpinBox->setValue(m_Settings->FramesPerRotMax()); ui.SequenceRandomFramesPerRotMaxSpinBox->setValue(m_Settings->FramesPerRotMax());
ui.SequenceRotationsSpinBox->setValue(m_Settings->Rotations()); ui.SequenceRotationsSpinBox->setValue(m_Settings->Rotations());
@ -24,9 +26,12 @@ void Fractorium::InitLibraryUI()
connect(ui.SequenceRenderButton, SIGNAL(clicked(bool)), this, SLOT(OnSequenceRenderButtonClicked(bool)), Qt::QueuedConnection); connect(ui.SequenceRenderButton, SIGNAL(clicked(bool)), this, SLOT(OnSequenceRenderButtonClicked(bool)), Qt::QueuedConnection);
connect(ui.SequenceSaveButton, SIGNAL(clicked(bool)), this, SLOT(OnSequenceSaveButtonClicked(bool)), Qt::QueuedConnection); connect(ui.SequenceSaveButton, SIGNAL(clicked(bool)), this, SLOT(OnSequenceSaveButtonClicked(bool)), Qt::QueuedConnection);
connect(ui.SequenceOpenButton, SIGNAL(clicked(bool)), this, SLOT(OnSequenceOpenButtonClicked(bool)), Qt::QueuedConnection); connect(ui.SequenceOpenButton, SIGNAL(clicked(bool)), this, SLOT(OnSequenceOpenButtonClicked(bool)), Qt::QueuedConnection);
connect(ui.SequenceRandomizeStaggerCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeStaggerCheckBoxStateChanged(int)), Qt::QueuedConnection);
connect(ui.SequenceRandomizeFramesPerRotCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeFramesPerRotCheckBoxStateChanged(int)), Qt::QueuedConnection); connect(ui.SequenceRandomizeFramesPerRotCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeFramesPerRotCheckBoxStateChanged(int)), Qt::QueuedConnection);
connect(ui.SequenceRandomizeRotationsCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeRotationsCheckBoxStateChanged(int)), Qt::QueuedConnection); connect(ui.SequenceRandomizeRotationsCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeRotationsCheckBoxStateChanged(int)), Qt::QueuedConnection);
connect(ui.SequenceRandomizeBlendFramesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int)), Qt::QueuedConnection); connect(ui.SequenceRandomizeBlendFramesCheckBox, SIGNAL(stateChanged(int)), this, SLOT(OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int)), Qt::QueuedConnection);
connect(ui.SequenceStaggerSpinBox, SIGNAL(valueChanged(double)), this, SLOT(OnSequenceStaggerSpinBoxChanged(double)), Qt::QueuedConnection);
connect(ui.SequenceRandomStaggerMaxSpinBox, SIGNAL(valueChanged(double)), this, SLOT(OnSequenceRandomStaggerMaxSpinBoxChanged(double)), Qt::QueuedConnection);
connect(ui.SequenceStartFlameSpinBox, SIGNAL(valueChanged(int)), this, SLOT(OnSequenceStartFlameSpinBoxChanged(int)), Qt::QueuedConnection); connect(ui.SequenceStartFlameSpinBox, SIGNAL(valueChanged(int)), this, SLOT(OnSequenceStartFlameSpinBoxChanged(int)), Qt::QueuedConnection);
connect(ui.SequenceStopFlameSpinBox, SIGNAL(valueChanged(int)), this, SLOT(OnSequenceStopFlameSpinBoxChanged(int)), Qt::QueuedConnection); connect(ui.SequenceStopFlameSpinBox, SIGNAL(valueChanged(int)), this, SLOT(OnSequenceStopFlameSpinBoxChanged(int)), Qt::QueuedConnection);
connect(ui.SequenceFramesPerRotSpinBox, SIGNAL(valueChanged(int)), this, SLOT(OnSequenceFramesPerRotSpinBoxChanged(int)), Qt::QueuedConnection); connect(ui.SequenceFramesPerRotSpinBox, SIGNAL(valueChanged(int)), this, SLOT(OnSequenceFramesPerRotSpinBoxChanged(int)), Qt::QueuedConnection);
@ -505,7 +510,8 @@ void FractoriumEmberController<T>::SequenceGenerateButtonClicked()
bool randFramesRot = ui.SequenceRandomizeFramesPerRotCheckBox->isChecked(); bool randFramesRot = ui.SequenceRandomizeFramesPerRotCheckBox->isChecked();
bool randRot = ui.SequenceRandomizeRotationsCheckBox->isChecked(); bool randRot = ui.SequenceRandomizeRotationsCheckBox->isChecked();
bool randBlend = ui.SequenceRandomizeBlendFramesCheckBox->isChecked(); bool randBlend = ui.SequenceRandomizeBlendFramesCheckBox->isChecked();
bool stagger = ui.SequenceStaggerCheckBox->isChecked(); double stagger = ui.SequenceStaggerSpinBox->value();
double staggerMax = ui.SequenceRandomStaggerMaxSpinBox->value();
double rots = ui.SequenceRotationsSpinBox->value(); double rots = ui.SequenceRotationsSpinBox->value();
double rotsMax = ui.SequenceRandomRotationsMaxSpinBox->value(); double rotsMax = ui.SequenceRandomRotationsMaxSpinBox->value();
int framesPerRot = ui.SequenceFramesPerRotSpinBox->value(); int framesPerRot = ui.SequenceFramesPerRotSpinBox->value();
@ -529,7 +535,7 @@ void FractoriumEmberController<T>::SequenceGenerateButtonClicked()
#endif #endif
SheepTools<T, float> tools(palettePath, EmberCommon::CreateRenderer<T>(eRendererType::CPU_RENDERER, devices, false, 0, emberReport)); SheepTools<T, float> tools(palettePath, EmberCommon::CreateRenderer<T>(eRendererType::CPU_RENDERER, devices, false, 0, emberReport));
tools.SetSpinParams(true, tools.SetSpinParams(true,
randStagger ? m_Rand.RandBit() : stagger, stagger,//Will be set again below if random is used.
0, 0,
0, 0,
s->Nick().toStdString(), s->Nick().toStdString(),
@ -601,15 +607,14 @@ void FractoriumEmberController<T>::SequenceGenerateButtonClicked()
embers[1] = *(++it2);//Get the next ember to be used with blending below. embers[1] = *(++it2);//Get the next ember to be used with blending below.
size_t blendFrames = randBlend ? m_Rand.Frand<double>(framesBlend, framesBlendMax) : framesBlend; size_t blendFrames = randBlend ? m_Rand.Frand<double>(framesBlend, framesBlendMax) : framesBlend;
if (randStagger)
tools.Stagger(m_Rand.Frand<double>(stagger, staggerMax));
for (frame = 0; frame < blendFrames; frame++) for (frame = 0; frame < blendFrames; frame++)
{ {
bool seqFlag = frame == 0 || (frame == blendFrames - 1); bool seqFlag = frame == 0 || (frame == blendFrames - 1);
blend = frame / double(blendFrames); blend = frame / double(blendFrames);
result.Clear(); result.Clear();
if (randStagger)
tools.Stagger(m_Rand.RandBit());
tools.SpinInter(&embers[0], nullptr, result, startCount + frameCount++, seqFlag, blend); tools.SpinInter(&embers[0], nullptr, result, startCount + frameCount++, seqFlag, blend);
FormatName(result, os, padding); FormatName(result, os, padding);
m_SequenceFile.m_Embers.push_back(result); m_SequenceFile.m_Embers.push_back(result);
@ -718,6 +723,7 @@ void FractoriumEmberController<T>::SequenceOpenButtonClicked()
void Fractorium::OnSequenceOpenButtonClicked(bool checked) { m_Controller->SequenceOpenButtonClicked(); } void Fractorium::OnSequenceOpenButtonClicked(bool checked) { m_Controller->SequenceOpenButtonClicked(); }
void Fractorium::OnSequenceRandomizeStaggerCheckBoxStateChanged(int state) { ui.SequenceRandomStaggerMaxSpinBox->setEnabled(state); }
void Fractorium::OnSequenceRandomizeFramesPerRotCheckBoxStateChanged(int state) { ui.SequenceRandomFramesPerRotMaxSpinBox->setEnabled(state); } void Fractorium::OnSequenceRandomizeFramesPerRotCheckBoxStateChanged(int state) { ui.SequenceRandomFramesPerRotMaxSpinBox->setEnabled(state); }
void Fractorium::OnSequenceRandomizeRotationsCheckBoxStateChanged(int state) { ui.SequenceRandomRotationsMaxSpinBox->setEnabled(state); } void Fractorium::OnSequenceRandomizeRotationsCheckBoxStateChanged(int state) { ui.SequenceRandomRotationsMaxSpinBox->setEnabled(state); }
void Fractorium::OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int state) { ui.SequenceRandomBlendMaxFramesSpinBox->setEnabled(state); } void Fractorium::OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int state) { ui.SequenceRandomBlendMaxFramesSpinBox->setEnabled(state); }
@ -725,20 +731,24 @@ void Fractorium::OnSequenceRandomizeBlendFramesCheckBoxStateChanged(int state) {
/// <summary> /// <summary>
/// Constrain all min/max spinboxes. /// Constrain all min/max spinboxes.
/// </summary> /// </summary>
void Fractorium::OnSequenceStartFlameSpinBoxChanged(int d) { ConstrainLow(ui.SequenceStartFlameSpinBox, ui.SequenceStopFlameSpinBox); } void Fractorium::OnSequenceStaggerSpinBoxChanged(double d) { if (ui.SequenceRandomizeStaggerCheckBox->isChecked()) ConstrainLow(ui.SequenceStaggerSpinBox, ui.SequenceRandomStaggerMaxSpinBox); }
void Fractorium::OnSequenceStopFlameSpinBoxChanged(int d) { ConstrainHigh(ui.SequenceStartFlameSpinBox, ui.SequenceStopFlameSpinBox); } void Fractorium::OnSequenceRandomStaggerMaxSpinBoxChanged(double d) { ConstrainHigh(ui.SequenceStaggerSpinBox, ui.SequenceRandomStaggerMaxSpinBox); }
void Fractorium::OnSequenceFramesPerRotSpinBoxChanged(int d) { if (ui.SequenceRandomizeFramesPerRotCheckBox->isChecked()) ConstrainLow(ui.SequenceFramesPerRotSpinBox, ui.SequenceRandomFramesPerRotMaxSpinBox); } void Fractorium::OnSequenceStartFlameSpinBoxChanged(int d) { ConstrainLow(ui.SequenceStartFlameSpinBox, ui.SequenceStopFlameSpinBox); }
void Fractorium::OnSequenceStopFlameSpinBoxChanged(int d) { ConstrainHigh(ui.SequenceStartFlameSpinBox, ui.SequenceStopFlameSpinBox); }
void Fractorium::OnSequenceFramesPerRotSpinBoxChanged(int d) { if (ui.SequenceRandomizeFramesPerRotCheckBox->isChecked()) ConstrainLow(ui.SequenceFramesPerRotSpinBox, ui.SequenceRandomFramesPerRotMaxSpinBox); }
void Fractorium::OnSequenceRandomFramesPerRotMaxSpinBoxChanged(int d) { ConstrainHigh(ui.SequenceFramesPerRotSpinBox, ui.SequenceRandomFramesPerRotMaxSpinBox); } void Fractorium::OnSequenceRandomFramesPerRotMaxSpinBoxChanged(int d) { ConstrainHigh(ui.SequenceFramesPerRotSpinBox, ui.SequenceRandomFramesPerRotMaxSpinBox); }
void Fractorium::OnSequenceRotationsSpinBoxChanged(double d) { if (ui.SequenceRandomizeRotationsCheckBox->isChecked()) ConstrainLow(ui.SequenceRotationsSpinBox, ui.SequenceRandomRotationsMaxSpinBox); } void Fractorium::OnSequenceRotationsSpinBoxChanged(double d) { if (ui.SequenceRandomizeRotationsCheckBox->isChecked()) ConstrainLow(ui.SequenceRotationsSpinBox, ui.SequenceRandomRotationsMaxSpinBox); }
void Fractorium::OnSequenceRandomRotationsMaxSpinBoxChanged(double d) { ConstrainHigh(ui.SequenceRotationsSpinBox, ui.SequenceRandomRotationsMaxSpinBox); } void Fractorium::OnSequenceRandomRotationsMaxSpinBoxChanged(double d) { ConstrainHigh(ui.SequenceRotationsSpinBox, ui.SequenceRandomRotationsMaxSpinBox); }
void Fractorium::OnSequenceBlendFramesSpinBoxChanged(int d) { if (ui.SequenceRandomizeBlendFramesCheckBox->isChecked()) ConstrainLow(ui.SequenceBlendFramesSpinBox, ui.SequenceRandomBlendMaxFramesSpinBox); } void Fractorium::OnSequenceBlendFramesSpinBoxChanged(int d) { if (ui.SequenceRandomizeBlendFramesCheckBox->isChecked()) ConstrainLow(ui.SequenceBlendFramesSpinBox, ui.SequenceRandomBlendMaxFramesSpinBox); }
void Fractorium::OnSequenceRandomBlendMaxFramesSpinBoxChanged(int d) { ConstrainHigh(ui.SequenceBlendFramesSpinBox, ui.SequenceRandomBlendMaxFramesSpinBox); } void Fractorium::OnSequenceRandomBlendMaxFramesSpinBoxChanged(int d) { ConstrainHigh(ui.SequenceBlendFramesSpinBox, ui.SequenceRandomBlendMaxFramesSpinBox); }
/// <summary> /// <summary>
/// Save all sequence settings to match the values in the controls. /// Save all sequence settings to match the values in the controls.
/// </summary> /// </summary>
void Fractorium::SyncSequenceSettings() void Fractorium::SyncSequenceSettings()
{ {
m_Settings->Stagger(ui.SequenceStaggerSpinBox->value());
m_Settings->StaggerMax(ui.SequenceRandomStaggerMaxSpinBox->value());
m_Settings->FramesPerRot(ui.SequenceFramesPerRotSpinBox->value()); m_Settings->FramesPerRot(ui.SequenceFramesPerRotSpinBox->value());
m_Settings->FramesPerRotMax(ui.SequenceRandomFramesPerRotMaxSpinBox->value()); m_Settings->FramesPerRotMax(ui.SequenceRandomFramesPerRotMaxSpinBox->value());
m_Settings->Rotations(ui.SequenceRotationsSpinBox->value()); m_Settings->Rotations(ui.SequenceRotationsSpinBox->value());

View File

@ -138,16 +138,27 @@ void FractoriumSettings::RandomCount(uint i) { setValue(RANDOMCOUNT, i);
/// Sequence generation settings. /// Sequence generation settings.
/// </summary> /// </summary>
double FractoriumSettings::Stagger() { return value(STAGGER).toDouble(); }
void FractoriumSettings::Stagger(double d) { setValue(STAGGER, d); }
double FractoriumSettings::StaggerMax() { return value(STAGGERMAX).toDouble(); }
void FractoriumSettings::StaggerMax(double d) { setValue(STAGGERMAX, d); }
uint FractoriumSettings::FramesPerRot() { return value(FRAMESPERROT).toUInt(); } uint FractoriumSettings::FramesPerRot() { return value(FRAMESPERROT).toUInt(); }
void FractoriumSettings::FramesPerRot(uint i) { setValue(FRAMESPERROT, i); } void FractoriumSettings::FramesPerRot(uint i) { setValue(FRAMESPERROT, i); }
uint FractoriumSettings::FramesPerRotMax() { return value(FRAMESPERROTMAX).toUInt(); } uint FractoriumSettings::FramesPerRotMax() { return value(FRAMESPERROTMAX).toUInt(); }
void FractoriumSettings::FramesPerRotMax(uint i) { setValue(FRAMESPERROTMAX, i); } void FractoriumSettings::FramesPerRotMax(uint i) { setValue(FRAMESPERROTMAX, i); }
uint FractoriumSettings::Rotations() { return value(ROTATIONS).toUInt(); }
void FractoriumSettings::Rotations(uint i) { setValue(ROTATIONS, i); } uint FractoriumSettings::Rotations() { return value(ROTATIONS).toDouble(); }
uint FractoriumSettings::RotationsMax() { return value(ROTATIONSMAX).toUInt(); } void FractoriumSettings::Rotations(double d) { setValue(ROTATIONS, d); }
void FractoriumSettings::RotationsMax(uint i) { setValue(ROTATIONSMAX, i); }
uint FractoriumSettings::RotationsMax() { return value(ROTATIONSMAX).toDouble(); }
void FractoriumSettings::RotationsMax(double d) { setValue(ROTATIONSMAX, d); }
uint FractoriumSettings::BlendFrames() { return value(BLENDFRAMES).toUInt(); } uint FractoriumSettings::BlendFrames() { return value(BLENDFRAMES).toUInt(); }
void FractoriumSettings::BlendFrames(uint i) { setValue(BLENDFRAMES, i); } void FractoriumSettings::BlendFrames(uint i) { setValue(BLENDFRAMES, i); }
uint FractoriumSettings::BlendFramesMax() { return value(BLENDFRAMESMAX).toUInt(); } uint FractoriumSettings::BlendFramesMax() { return value(BLENDFRAMESMAX).toUInt(); }
void FractoriumSettings::BlendFramesMax(uint i) { setValue(BLENDFRAMESMAX, i); } void FractoriumSettings::BlendFramesMax(uint i) { setValue(BLENDFRAMESMAX, i); }

View File

@ -21,6 +21,8 @@
#define OPENCLSUBBATCH "render/openclsubbatch" #define OPENCLSUBBATCH "render/openclsubbatch"
#define RANDOMCOUNT "render/randomcount" #define RANDOMCOUNT "render/randomcount"
#define STAGGER "sequence/stagger"
#define STAGGERMAX "sequence/staggermax"
#define FRAMESPERROT "sequence/framesperrot" #define FRAMESPERROT "sequence/framesperrot"
#define FRAMESPERROTMAX "sequence/framesperrotmax" #define FRAMESPERROTMAX "sequence/framesperrotmax"
#define ROTATIONS "sequence/rotations" #define ROTATIONS "sequence/rotations"
@ -133,16 +135,27 @@ public:
uint RandomCount(); uint RandomCount();
void RandomCount(uint i); void RandomCount(uint i);
double Stagger();
void Stagger(double i);
double StaggerMax();
void StaggerMax(double i);
uint FramesPerRot(); uint FramesPerRot();
void FramesPerRot(uint i); void FramesPerRot(uint i);
uint FramesPerRotMax(); uint FramesPerRotMax();
void FramesPerRotMax(uint i); void FramesPerRotMax(uint i);
uint Rotations(); uint Rotations();
void Rotations(uint i); void Rotations(double d);
uint RotationsMax(); uint RotationsMax();
void RotationsMax(uint i); void RotationsMax(double d);
uint BlendFrames(); uint BlendFrames();
void BlendFrames(uint i); void BlendFrames(uint i);
uint BlendFramesMax(); uint BlendFramesMax();
void BlendFramesMax(uint i); void BlendFramesMax(uint i);