mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-01-22 05:30:06 -05:00
6ff199d1ef
-No longer constrain pitch, yaw or depth spinners to -180 - 180. --Bug fixes -Properly set color index on padded xforms. -Adding a padding final xform included a linear variation with a weight of zero to not appear empty. Made it have a weight of 1. -Always write animate tag on final xform when saving to Xml. -Motion was being applied to the wrong flame in SheepTools::Edge(), so apply it to the correct one. -Prevent divide by zero when normalizing variation weights. -Was accidentally adding the placeholder value of -9999 for motion_offset to varation weights and parameters when applying motion. Set to zero if no value present. -Clamp flame rotation values to -180 - 180 when reading a flame from Xml. -Events were not properly wired for user changes in the random rotations per blend controls in the sequencer. -Fix major UI bugs with sequencer min/max random controls which made it nearly impossible to hand type values. -Values from rotations per blend and rotations per blend max were not being saved to file between program runs. -Checking animate for an xform was not applied to all flames even if Apply All was checked. -Changing interpolation type, temporal filter width, temporal type, and affine interpolation type were not actually saving to the flame when changed. -Grid on the main window was not being drawn at the right scale initially due to some OpenGL initialization occurring in the wrong order. -Severe bugs in sequence generation code: --Improperly detected padding xforms. --When looking for specific variations during xform aligning, only presence was detected, when it should have been presence plus a weight greater than zero. --When adding specific variations during xform aligning, must first remove any variations of that type. --Two variables were unsigned when they should have been signed. This prevented large blocks of code from ever executing. --When interpolating affines, an EPS that was too small was used, causing affine values to interpolate incorrectly. Instead use 1e-10 to ensure results equal to flam3. --Code changes -Modify FractoriumEmberController::UpdateXform() to pass the selected xform index as well as the absolute index to func().
336 lines
8.1 KiB
C++
336 lines
8.1 KiB
C++
#pragma once
|
|
|
|
#include "FractoriumPch.h"
|
|
|
|
/// <summary>
|
|
/// FractoriumSettings class.
|
|
/// </summary>
|
|
|
|
#define EARLYCLIP "render/earlyclip"
|
|
#define YAXISUP "render/yaxisup"
|
|
#define TRANSPARENCY "render/transparency"
|
|
#define OPENCL "render/opencl"
|
|
#define SHAREDTEXTURE "render/sharedtexture"
|
|
#define DOUBLEPRECISION "render/dp64"
|
|
#define CONTUPDATE "render/continuousupdate"
|
|
#define SHOWALLXFORMS "render/dragshowallxforms"
|
|
#define SHOWXFORMS "render/showxforms"
|
|
#define SHOWGRID "render/showgrid"
|
|
#define TOGGLETYPE "render/toggletype"
|
|
#define PNG16BIT "render/png16bit"
|
|
#define DEVICES "render/devices"
|
|
#define THREADCOUNT "render/threadcount"
|
|
#define CPUDEFILTER "render/cpudefilter"
|
|
#define OPENCLDEFILTER "render/opencldefilter"
|
|
#define CPUSUBBATCH "render/cpusubbatch"
|
|
#define OPENCLSUBBATCH "render/openclsubbatch"
|
|
#define RANDOMCOUNT "render/randomcount"
|
|
#define CPUQUALITY "render/cpuquality"
|
|
#define OPENCLQUALITY "render/openclquality"
|
|
#define LOADLAST "render/loadlastonstart"
|
|
|
|
#define STAGGER "sequence/stagger"
|
|
#define STAGGERMAX "sequence/staggermax"
|
|
#define FRAMESPERROT "sequence/framesperrot"
|
|
#define FRAMESPERROTMAX "sequence/framesperrotmax"
|
|
#define ROTATIONS "sequence/rotations"
|
|
#define ROTATIONSMAX "sequence/rotationsmax"
|
|
#define BLENDFRAMES "sequence/blendframes"
|
|
#define BLENDFRAMESMAX "sequence/blendframesmax"
|
|
#define ROTATIONSPERBLEND "sequence/rotationsperblend"
|
|
#define ROTATIONSPERBLENDMAX "sequence/rotationsperblendmax"
|
|
|
|
#define VARFILTERSUM "varfilter/sumcheckbox"
|
|
#define VARFILTERASSIGN "varfilter/assigncheckbox"
|
|
#define VARFILTERPPSUM "varfilter/ppsumcheckbox"
|
|
#define VARFILTERPPASSIGN "varfilter/ppassigncheckbox"
|
|
#define VARFILTERSDC "varfilter/dccheckbox"
|
|
#define VARFILTERSTATE "varfilter/statecheckbox"
|
|
#define VARFILTERPARAM "varfilter/paramcheckbox"
|
|
#define VARFILTERNONPARAM "varfilter/nonparamcheckbox"
|
|
|
|
#define FINALEARLYCLIP "finalrender/earlyclip"
|
|
#define FINALYAXISUP "finalrender/finalyaxisup"
|
|
#define FINALTRANSPARENCY "finalrender/transparency"
|
|
#define FINALOPENCL "finalrender/opencl"
|
|
#define FINALDOUBLEPRECISION "finalrender/dp64"
|
|
#define FINALSAVEXML "finalrender/savexml"
|
|
#define FINALDOALL "finalrender/doall"
|
|
#define FINALDOSEQUENCE "finalrender/dosequence"
|
|
#define FINALPNG16BIT "finalrender/png16bit"
|
|
#define FINALKEEPASPECT "finalrender/keepaspect"
|
|
#define FINALSCALE "finalrender/scale"
|
|
#define FINALEXT "finalrender/ext"
|
|
#define FINALDEVICES "finalrender/devices"
|
|
#define FINALTHREADCOUNT "finalrender/threadcount"
|
|
#define FINALTHREADPRIORITY "finalrender/threadpriority"
|
|
#define FINALQUALITY "finalrender/quality"
|
|
#define FINALTEMPORALSAMPLES "finalrender/temporalsamples"
|
|
#define FINALSUPERSAMPLE "finalrender/supersample"
|
|
#define FINALSTRIPS "finalrender/strips"
|
|
|
|
#define XMLWIDTH "xml/width"
|
|
#define XMLHEIGHT "xml/height"
|
|
#define XMLTEMPORALSAMPLES "xml/temporalsamples"
|
|
#define XMLQUALITY "xml/quality"
|
|
#define XMLSUPERSAMPLE "xml/supersample"
|
|
|
|
#define OPENFOLDER "path/open"
|
|
#define OPENPALETTEIMAGEFOLDER "path/openpaletteimage"
|
|
#define SAVEFOLDER "path/save"
|
|
|
|
#define OPENXMLEXT "file/openxmlext"
|
|
#define SAVEXMLEXT "file/savexmlext"
|
|
#define OPENIMAGEEXT "file/openimageext"
|
|
#define SAVEIMAGEEXT "file/saveimageext"
|
|
#define AUTOUNIQUE "file/autounique"
|
|
|
|
#define IDENTITYID "identity/id"
|
|
#define IDENTITYURL "identity/url"
|
|
#define IDENTITYNICK "identity/nick"
|
|
|
|
#define UIVARIATIONS "ui/variations"
|
|
|
|
#define STYLETHEME "style/theme"
|
|
|
|
/// <summary>
|
|
/// Class for preserving various program options between
|
|
/// runs of Fractorium. Each of these generally corresponds
|
|
/// to items in the options dialog and the final render dialog.
|
|
/// </summary>
|
|
class FractoriumSettings : public QSettings, public Singleton<FractoriumSettings>
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
SINGLETON_DERIVED_IMPL(FractoriumSettings);
|
|
void EnsureDefaults();
|
|
|
|
bool EarlyClip();
|
|
void EarlyClip(bool b);
|
|
|
|
bool YAxisUp();
|
|
void YAxisUp(bool b);
|
|
|
|
bool Transparency();
|
|
void Transparency(bool b);
|
|
|
|
bool OpenCL();
|
|
void OpenCL(bool b);
|
|
|
|
bool SharedTexture();
|
|
void SharedTexture(bool b);
|
|
|
|
bool Double();
|
|
void Double(bool b);
|
|
|
|
bool ShowAllXforms();
|
|
void ShowAllXforms(bool b);
|
|
|
|
bool ShowXforms();
|
|
void ShowXforms(bool b);
|
|
|
|
bool ShowGrid();
|
|
void ShowGrid(bool b);
|
|
|
|
bool ToggleType();
|
|
void ToggleType(bool b);
|
|
|
|
bool Png16Bit();
|
|
void Png16Bit(bool b);
|
|
|
|
bool ContinuousUpdate();
|
|
void ContinuousUpdate(bool b);
|
|
|
|
QList<QVariant> Devices();
|
|
void Devices(const QList<QVariant>& devices);
|
|
|
|
uint ThreadCount();
|
|
void ThreadCount(uint i);
|
|
|
|
bool CpuDEFilter();
|
|
void CpuDEFilter(bool b);
|
|
|
|
bool OpenCLDEFilter();
|
|
void OpenCLDEFilter(bool b);
|
|
|
|
uint CpuSubBatch();
|
|
void CpuSubBatch(uint i);
|
|
|
|
uint OpenCLSubBatch();
|
|
void OpenCLSubBatch(uint i);
|
|
|
|
uint RandomCount();
|
|
void RandomCount(uint i);
|
|
|
|
uint CpuQuality();
|
|
void CpuQuality(uint i);
|
|
|
|
uint OpenClQuality();
|
|
void OpenClQuality(uint i);
|
|
|
|
bool LoadLast();
|
|
void LoadLast(bool b);
|
|
|
|
double Stagger();
|
|
void Stagger(double i);
|
|
|
|
double StaggerMax();
|
|
void StaggerMax(double i);
|
|
|
|
uint FramesPerRot();
|
|
void FramesPerRot(uint i);
|
|
|
|
uint FramesPerRotMax();
|
|
void FramesPerRotMax(uint i);
|
|
|
|
uint Rotations();
|
|
void Rotations(double d);
|
|
|
|
uint RotationsMax();
|
|
void RotationsMax(double d);
|
|
|
|
uint BlendFrames();
|
|
void BlendFrames(uint i);
|
|
|
|
uint BlendFramesMax();
|
|
void BlendFramesMax(uint i);
|
|
|
|
uint RotationsPerBlend();
|
|
void RotationsPerBlend(uint i);
|
|
|
|
uint RotationsPerBlendMax();
|
|
void RotationsPerBlendMax(uint i);
|
|
|
|
int VarFilterSum();
|
|
void VarFilterSum(int i);
|
|
|
|
int VarFilterAssign();
|
|
void VarFilterAssign(int i);
|
|
|
|
int VarFilterPpsum();
|
|
void VarFilterPpsum(int i);
|
|
|
|
int VarFilterPpassign();
|
|
void VarFilterPpassign(int i);
|
|
|
|
int VarFilterSdc();
|
|
void VarFilterSdc(int i);
|
|
|
|
int VarFilterState();
|
|
void VarFilterState(int i);
|
|
|
|
int VarFilterParam();
|
|
void VarFilterParam(int i);
|
|
|
|
int VarFilterNonparam();
|
|
void VarFilterNonparam(int i);
|
|
|
|
bool FinalEarlyClip();
|
|
void FinalEarlyClip(bool b);
|
|
|
|
bool FinalYAxisUp();
|
|
void FinalYAxisUp(bool b);
|
|
|
|
bool FinalTransparency();
|
|
void FinalTransparency(bool b);
|
|
|
|
bool FinalOpenCL();
|
|
void FinalOpenCL(bool b);
|
|
|
|
bool FinalDouble();
|
|
void FinalDouble(bool b);
|
|
|
|
bool FinalSaveXml();
|
|
void FinalSaveXml(bool b);
|
|
|
|
bool FinalDoAll();
|
|
void FinalDoAll(bool b);
|
|
|
|
bool FinalDoSequence();
|
|
void FinalDoSequence(bool b);
|
|
|
|
bool FinalPng16Bit();
|
|
void FinalPng16Bit(bool b);
|
|
|
|
bool FinalKeepAspect();
|
|
void FinalKeepAspect(bool b);
|
|
|
|
uint FinalScale();
|
|
void FinalScale(uint i);
|
|
|
|
QString FinalExt();
|
|
void FinalExt(const QString& s);
|
|
|
|
QList<QVariant> FinalDevices();
|
|
void FinalDevices(const QList<QVariant>& devices);
|
|
|
|
uint FinalThreadCount();
|
|
void FinalThreadCount(uint i);
|
|
|
|
int FinalThreadPriority();
|
|
void FinalThreadPriority(int b);
|
|
|
|
uint FinalQuality();
|
|
void FinalQuality(uint i);
|
|
|
|
uint FinalTemporalSamples();
|
|
void FinalTemporalSamples(uint i);
|
|
|
|
uint FinalSupersample();
|
|
void FinalSupersample(uint i);
|
|
|
|
size_t FinalStrips();
|
|
void FinalStrips(size_t i);
|
|
|
|
uint XmlTemporalSamples();
|
|
void XmlTemporalSamples(uint i);
|
|
|
|
uint XmlQuality();
|
|
void XmlQuality(uint i);
|
|
|
|
uint XmlSupersample();
|
|
void XmlSupersample(uint i);
|
|
|
|
QString OpenFolder();
|
|
void OpenFolder(const QString& s);
|
|
|
|
QString OpenPaletteImageFolder();
|
|
void OpenPaletteImageFolder(const QString& s);
|
|
|
|
QString SaveFolder();
|
|
void SaveFolder(const QString& s);
|
|
|
|
QString OpenXmlExt();
|
|
void OpenXmlExt(const QString& s);
|
|
|
|
QString SaveXmlExt();
|
|
void SaveXmlExt(const QString& s);
|
|
|
|
QString OpenImageExt();
|
|
void OpenImageExt(const QString& s);
|
|
|
|
QString SaveImageExt();
|
|
void SaveImageExt(const QString& s);
|
|
|
|
bool SaveAutoUnique();
|
|
void SaveAutoUnique(bool b);
|
|
|
|
QString Id();
|
|
void Id(const QString& s);
|
|
|
|
QString Url();
|
|
void Url(const QString& s);
|
|
|
|
QString Nick();
|
|
void Nick(const QString& s);
|
|
|
|
QMap<QString, QVariant> Variations();
|
|
void Variations(const QMap<QString, QVariant>& m);
|
|
|
|
QString Theme();
|
|
void Theme(const QString& s);
|
|
|
|
private:
|
|
FractoriumSettings();
|
|
};
|