diff --git a/.gitignore b/.gitignore index acc9838..1090eec 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,6 @@ *.idb *.flam3 *moc_* -*GeneratedFiles* \ No newline at end of file +*GeneratedFiles* +*.unsuccessfulbuild +*\Obj\* \ No newline at end of file diff --git a/Builds/MSVC/VS2010/FractoriumInstaller/FractoriumInstaller.wixproj b/Builds/MSVC/VS2010/FractoriumInstaller/FractoriumInstaller.wixproj index f5273d8..a9d1cf3 100644 --- a/Builds/MSVC/VS2010/FractoriumInstaller/FractoriumInstaller.wixproj +++ b/Builds/MSVC/VS2010/FractoriumInstaller/FractoriumInstaller.wixproj @@ -6,7 +6,7 @@ 3.7 {c8096c47-e358-438c-a520-146d46b0637d} 2.0 - Fractorium_Beta_0.4.0.5 + Fractorium_Beta_0.4.0.6 Package $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets diff --git a/Builds/MSVC/VS2010/FractoriumInstaller/Product.wxs b/Builds/MSVC/VS2010/FractoriumInstaller/Product.wxs index 64321f9..959ef86 100644 --- a/Builds/MSVC/VS2010/FractoriumInstaller/Product.wxs +++ b/Builds/MSVC/VS2010/FractoriumInstaller/Product.wxs @@ -1,6 +1,6 @@ - + @@ -13,7 +13,7 @@ - + 1. diff --git a/Source/Ember/Ember.h b/Source/Ember/Ember.h index bb55066..47c3594 100644 --- a/Source/Ember/Ember.h +++ b/Source/Ember/Ember.h @@ -1095,6 +1095,10 @@ public: std::sort(m_Xforms.end() - result, m_Xforms.end(), &Interpolater::CompareXforms); } + /// + /// Return a uint with bits set to indicate which kind of projection should be done. + /// + /// A uint with bits set for each kind of projection that is needed unsigned int ProjBits() { unsigned int val = 0; @@ -1108,15 +1112,30 @@ public: return val; } + /// + /// Call the appropriate projection function via function pointer. + /// + /// The point to project + /// The Isaac object to pass to the projection functions inline void Proj(Point& point, QTIsaac& rand) { (this->*m_ProjFunc)(point, rand); } + /// + /// Placeholder to do nothing. + /// + /// Unused + /// Unused void ProjectNone(Point& point, QTIsaac& rand) { } + /// + /// Project when only z is set, and not pitch, yaw, projection or depth blur. + /// + /// The point to project + /// Unused void ProjectZPerspective(Point& point, QTIsaac& rand) { T zr = Zeps(1 - m_CamPerspective * (point.m_Z - m_CamZPos)); @@ -1126,6 +1145,11 @@ public: point.m_Z -= m_CamZPos; } + /// + /// Project when pitch, and optionally z and perspective are set, but not depth blur or yaw. + /// + /// The point to project + /// Unused void ProjectPitch(Point& point, QTIsaac& rand) { T z = point.m_Z - m_CamZPos; @@ -1137,6 +1161,11 @@ public: point.m_Z -= m_CamZPos; } + /// + /// Project when depth blur, and optionally pitch, perspective and z are set, but not yaw. + /// + /// The point to project + /// Used for blurring void ProjectPitchDepthBlur(Point& point, QTIsaac& rand) { T y, z, zr; @@ -1157,6 +1186,11 @@ public: point.m_Z -= m_CamZPos; } + /// + /// Project when depth blur, yaw and optionally pitch are set, but not perspective and z. + /// + /// The point to project + /// Used for blurring void ProjectPitchYawDepthBlur(Point& point, QTIsaac& rand) { T dsin, dcos; @@ -1177,6 +1211,11 @@ public: point.m_Z -= m_CamZPos; } + /// + /// Project when yaw and optionally pitch, z, and perspective are set, but not depth blur. + /// + /// The point to project + /// Unused void ProjectPitchYaw(Point& point, QTIsaac& rand) { T z = point.m_Z - m_CamZPos; @@ -1573,11 +1612,12 @@ public: private: /// - /// Interps the t. + /// Interpolation function that takes the address of a member variable of type T as a template parameter. + /// This is an alternative to using macros. /// - /// The embers. - /// The coefs. - /// The size. + /// The list of embers to interpolate + /// The list of coefficients to interpolate + /// The size of the lists, both must match. template ::*m> void InterpT(Ember* embers, vector& coefs, size_t size) { @@ -1587,6 +1627,12 @@ private: this->*m += coefs[k] * embers[k].*m; } + /// + /// Interpolation function that takes the address of a member variable of any type as a template parameter. + /// + /// The list of embers to interpolate + /// The list of coefficients to interpolate + /// The size of the lists, both must match. template ::*m> void InterpX(Ember* embers, vector& coefs, size_t size) { @@ -1596,6 +1642,12 @@ private: this->*m += coefs[k] * embers[k].*m; } + /// + /// Interpolation function that takes the address of a member variable of type integer as a template parameter. + /// + /// The list of embers to interpolate + /// The list of coefficients to interpolate + /// The size of the lists, both must match. template ::*m> void InterpI(Ember* embers, vector& coefs, size_t size) { @@ -1607,6 +1659,15 @@ private: this->*m = (int)Rint(t); } + /// + /// Interpolation function that takes the address of an xform member variable of type T as a template parameter. + /// This is an alternative to using macros. + /// + /// A pointer to a list of xforms to interpolate + /// The xform index to interpolate + /// The list of embers to interpolate + /// The list of coefficients to interpolate + /// The size of the lists, both must match. template ::*m> void InterpXform(Xform* xform, unsigned int i, Ember* embers, vector& coefs, size_t size) { diff --git a/Source/Ember/EmberDefines.h b/Source/Ember/EmberDefines.h index 28cfbc0..c118e26 100644 --- a/Source/Ember/EmberDefines.h +++ b/Source/Ember/EmberDefines.h @@ -25,7 +25,7 @@ namespace EmberNs extern void sincos(double x, double *s, double *c); #endif -#define EMBER_VERSION "0.4.0.5" +#define EMBER_VERSION "0.4.0.6" #define EPS6 T(1e-6) #define EPS std::numeric_limits::epsilon()//Apoplugin.h uses -20, but it's more mathematically correct to do it this way. #define ISAAC_SIZE 4 diff --git a/Source/EmberAnimate/EmberAnimate.rc b/Source/EmberAnimate/EmberAnimate.rc index d68b6fb..e81789c 100644 --- a/Source/EmberAnimate/EmberAnimate.rc +++ b/Source/EmberAnimate/EmberAnimate.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,0,5 - PRODUCTVERSION 0,4,0,5 + FILEVERSION 0,4,0,6 + PRODUCTVERSION 0,4,0,6 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as animations with motion blur" - VALUE "FileVersion", "0.4.0.5" + VALUE "FileVersion", "0.4.0.6" VALUE "InternalName", "EmberAnimate.rc" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2013, GPL v3" VALUE "OriginalFilename", "EmberAnimate.rc" VALUE "ProductName", "Ember Animate" - VALUE "ProductVersion", "0.4.0.5" + VALUE "ProductVersion", "0.4.0.6" END END BLOCK "VarFileInfo" diff --git a/Source/EmberGenome/EmberGenome.rc b/Source/EmberGenome/EmberGenome.rc index cb57c64..b8b10bf 100644 --- a/Source/EmberGenome/EmberGenome.rc +++ b/Source/EmberGenome/EmberGenome.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,0,5 - PRODUCTVERSION 0,4,0,5 + FILEVERSION 0,4,0,6 + PRODUCTVERSION 0,4,0,6 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Manipulates fractal flames parameter files" - VALUE "FileVersion", "0.4.0.5" + VALUE "FileVersion", "0.4.0.6" VALUE "InternalName", "EmberGenome.rc" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2013, GPL v3" VALUE "OriginalFilename", "EmberGenome.rc" VALUE "ProductName", "Ember Genome" - VALUE "ProductVersion", "0.4.0.5" + VALUE "ProductVersion", "0.4.0.6" END END BLOCK "VarFileInfo" diff --git a/Source/EmberRender/EmberRender.rc b/Source/EmberRender/EmberRender.rc index 36fc954..e76496c 100644 --- a/Source/EmberRender/EmberRender.rc +++ b/Source/EmberRender/EmberRender.rc @@ -49,8 +49,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,4,0,5 - PRODUCTVERSION 0,4,0,5 + FILEVERSION 0,4,0,6 + PRODUCTVERSION 0,4,0,6 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -67,12 +67,12 @@ BEGIN BEGIN VALUE "CompanyName", "Open Source" VALUE "FileDescription", "Renders fractal flames as single images" - VALUE "FileVersion", "0.4.0.5" + VALUE "FileVersion", "0.4.0.6" VALUE "InternalName", "EmberRender.rc" VALUE "LegalCopyright", "Copyright (C) Matt Feemster 2013, GPL v3" VALUE "OriginalFilename", "EmberRender.rc" VALUE "ProductName", "Ember Render" - VALUE "ProductVersion", "0.4.0.5" + VALUE "ProductVersion", "0.4.0.6" END END BLOCK "VarFileInfo" diff --git a/Source/Fractorium/AboutDialog.ui b/Source/Fractorium/AboutDialog.ui index ecee0f4..c3faee0 100644 --- a/Source/Fractorium/AboutDialog.ui +++ b/Source/Fractorium/AboutDialog.ui @@ -52,7 +52,7 @@ - <html><head/><body><p align="center"><br/><span style=" font-size:12pt;">Fractorium 0.4.0.5 Beta</span></p><p align="center"><span style=" font-size:10pt;"><br/>A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><span style=" font-size:10pt;">Matt Feemster</span></p></body></html> + <html><head/><body><p align="center"><br/><span style=" font-size:12pt;">Fractorium 0.4.0.6 Beta</span></p><p align="center"><span style=" font-size:10pt;"><br/>A Qt-based fractal flame editor which uses a C++ re-write of the flam3 algorithm named Ember and a GPU capable version named EmberCL which implements a portion of the cuburn algorithm in OpenCL.</span></p><p align="center"><span style=" font-size:10pt;">Matt Feemster</span></p></body></html> Qt::RichText diff --git a/Source/Fractorium/Fractorium.rc b/Source/Fractorium/Fractorium.rc index 134c3bb..8911044 100644 Binary files a/Source/Fractorium/Fractorium.rc and b/Source/Fractorium/Fractorium.rc differ diff --git a/Source/Fractorium/Fractorium.ui b/Source/Fractorium/Fractorium.ui index 2486ad6..564b366 100644 --- a/Source/Fractorium/Fractorium.ui +++ b/Source/Fractorium/Fractorium.ui @@ -220,7 +220,7 @@ 280 - 785 + 561 @@ -1814,6 +1814,43 @@ 0 + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + @@ -1836,7 +1873,7 @@ 4 - + @@ -1953,10 +1990,193 @@ - + + + + 4 + + + + + + 0 + 22 + + + + + 50 + 22 + + + + + 40 + 16777215 + + + + Current xform + + + false + + + 12 + + + + + + + + 0 + 0 + + + + + 30 + 0 + + + + Add xform + + + + + + + :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png + + + + + + + + 0 + 0 + + + + + 30 + 0 + + + + Duplicate xform + + + + + + + :/Fractorium/Icons/editraise.png:/Fractorium/Icons/editraise.png + + + + + + + + 0 + 0 + + + + + 30 + 0 + + + + Clear xform variations + + + + + + + :/Fractorium/Icons/eraser.png:/Fractorium/Icons/eraser.png + + + + + + + + 0 + 0 + + + + + 30 + 0 + + + + Delete xform + + + + + + + :/Fractorium/Icons/del.png:/Fractorium/Icons/del.png + + + + + + + + 0 + 0 + + + + + 50 + 0 + + + + + 60 + 16777215 + + + + + 0 + 0 + + + + Add final xform + + + Qt::LeftToRight + + + Final + + + + :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png + + + + + + - + 0 0 @@ -1967,6 +2187,13 @@ 0 + + + + + + + MS Shell Dlg 2 @@ -2488,1258 +2715,1335 @@ SpinBox 5 - - - - 0 - 0 - + + + QFrame::NoFrame - - - 100 - 270 - + + QFrame::Raised - - - 16777215 - 270 - - - - Pre Affine Transform - - - false - - + true - - - 4 + + + + 0 + 0 + 238 + 752 + - - 6 + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + + + + + 255 + 255 + 255 + + + + + - - 4 - - - 6 - - - 6 - - - - - - 2 - 0 - - - - - 0 - 90 - - - - - 10000 - 90 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - false - - - false - - - 3 - - - 2 - - - false - - - 100 - - - false - - - 40 - - - true - - - false - - - false - - - 22 - - - false - - - 22 - - - false - - - - X + + + 4 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + - - - - Y + + + 100 + 270 + - - - - O + + + 16777215 + 270 + - - - - 1 (A, B, C) + + Pre Affine Transform - - - - 2 (D, E, F) + + false - - - - - - - QLayout::SetDefaultConstraint - - - 0 - - - 4 - - - - - Rotate xform 90 degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png - - - - - - - Rotate xform 90 degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png - - - - - - - Scale xform x percent up - - - - - - - :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png - - - - - - - Move xform x units right - - - - - - - :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 110 - - - - - 125 - - - - - 150 - - - - - 175 - - - - - 200 - - - - - - - - Move xform x units up - - - - - - - :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png - - - - - - - Move xform x units down - - - - - - - :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 1 - - - - - 0.5 - - - - - 0.25 - - - - - 0.1 - - - - - 0.05 - - - - - 0.025 - - - - - 0.01 - - - - - - - - Move xform x units left - - - - - - - :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToContents - - - true - - - - 5 - - - - - 15 - - - - - 30 - - - - - 45 - - - - - 60 - - - - - 90 - - - - - 120 - - - - - 180 - - - - - - - - Rotate xform x degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png - - - - - - - Rotate xform x degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png - - - - - - - Scale xform x percent down - - - - - - - :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png - - - - - - - Flip xform horizontally - - - - - - - :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png - - - - - - - Flip xform vertically - - - - - - - :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png - - - - - - - - 0 - 0 - - - - - 75 - 0 - - - - Reset xform to the identity matrix - - - Reset - - - - - - - - - Show - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - false - - - false - - - - 6 + + true - - 6 + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + + 2 + 0 + + + + + 0 + 90 + + + + + 10000 + 90 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + false + + + false + + + 3 + + + 2 + + + false + + + 100 + + + false + + + 40 + + + true + + + false + + + false + + + 22 + + + false + + + 22 + + + false + + + + X + + + + + Y + + + + + O + + + + + 1 (A, B, C) + + + + + 2 (D, E, F) + + + + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 4 + + + + + Rotate xform 90 degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png + + + + + + + Rotate xform 90 degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png + + + + + + + Scale xform x percent up + + + + + + + :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png + + + + + + + Move xform x units right + + + + + + + :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 110 + + + + + 125 + + + + + 150 + + + + + 175 + + + + + 200 + + + + + + + + Move xform x units up + + + + + + + :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png + + + + + + + Move xform x units down + + + + + + + :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 1 + + + + + 0.5 + + + + + 0.25 + + + + + 0.1 + + + + + 0.05 + + + + + 0.025 + + + + + 0.01 + + + + + + + + Move xform x units left + + + + + + + :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToContents + + + true + + + + 5 + + + + + 15 + + + + + 30 + + + + + 45 + + + + + 60 + + + + + 90 + + + + + 120 + + + + + 180 + + + + + + + + Rotate xform x degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png + + + + + + + Rotate xform x degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png + + + + + + + Scale xform x percent down + + + + + + + :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png + + + + + + + Flip xform horizontally + + + + + + + :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png + + + + + + + Flip xform vertically + + + + + + + :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + Reset xform to the identity matrix + + + Reset + + + + + + + + + Show + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + false + + + + 6 + + + 6 + + + 2 + + + 6 + + + 6 + + + + + Current + + + + + + + All + + + true + + + + + + + + + + + + + + 0 + 0 + - - 2 + + + 100 + 270 + - - 6 + + + 16777215 + 270 + - - 6 + + Post Affine Transform - - - - Current - - - - - - - All - - - true - - - - - - - + + false + + + true + + + false + + + + 4 + + + 6 + + + 4 + + + 6 + + + 6 + + + + + + 2 + 0 + + + + + 0 + 90 + + + + + 10000 + 90 + + + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Plain + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + false + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::NoSelection + + + QAbstractItemView::ScrollPerPixel + + + QAbstractItemView::ScrollPerPixel + + + true + + + false + + + false + + + 3 + + + 2 + + + false + + + 100 + + + false + + + 40 + + + true + + + false + + + false + + + 22 + + + false + + + 22 + + + false + + + + X + + + + + Y + + + + + O + + + + + 1 (A, B, C) + + + + + 2 (D, E, F) + + + + + + + + QLayout::SetDefaultConstraint + + + 0 + + + 4 + + + + + Rotate xform 90 degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png + + + + + + + Rotate xform 90 degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png + + + + + + + Scale xform x percent up + + + + + + + :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png + + + + + + + Move xform x units right + + + + + + + :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 110 + + + + + 125 + + + + + 150 + + + + + 175 + + + + + 200 + + + + + + + + Move xform x units up + + + + + + + :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png + + + + + + + Move xform x units down + + + + + + + :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + true + + + + 1 + + + + + 0.5 + + + + + 0.25 + + + + + 0.1 + + + + + 0.05 + + + + + 0.025 + + + + + 0.01 + + + + + + + + Move xform x units left + + + + + + + :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png + + + + + + + + 0 + 0 + + + + + 75 + 22 + + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToContents + + + true + + + + 5 + + + + + 15 + + + + + 30 + + + + + 45 + + + + + 60 + + + + + 90 + + + + + 120 + + + + + 180 + + + + + + + + Rotate xform x degrees counter clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png + + + + + + + Rotate xform x degrees clockwise + + + + + + + :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png + + + + + + + Scale xform x percent down + + + + + + + :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png + + + + + + + Flip xform horizontally + + + + + + + :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png + + + + + + + Flip xform vertically + + + + + + + :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + Reset xform to the identity matrix + + + Reset + + + + + + + + + true + + + Show + + + + 6 + + + 2 + + + 6 + + + 6 + + + + + true + + + Current + + + true + + + + + + + All + + + + + + + + + + + + + Pivot + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + false + + + + 6 + + + 2 + + + 6 + + + 6 + + + + + Local + + + true + + + + + + + World + + + + + + + + + + Qt::Vertical + + + QSizePolicy::MinimumExpanding + + + + 20 + 5 + + + + + + - - - - - 0 - 0 - - - - - 100 - 270 - - - - - 16777215 - 270 - - - - Post Affine Transform - - - false - - - true - - - false - - - - 4 - - - 6 - - - 4 - - - 6 - - - 6 - - - - - - 2 - 0 - - - - - 0 - 90 - - - - - 10000 - 90 - - - - Qt::NoFocus - - - QFrame::Panel - - - QFrame::Plain - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOff - - - false - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::NoSelection - - - QAbstractItemView::ScrollPerPixel - - - QAbstractItemView::ScrollPerPixel - - - true - - - false - - - false - - - 3 - - - 2 - - - false - - - 100 - - - false - - - 40 - - - true - - - false - - - false - - - 22 - - - false - - - 22 - - - false - - - - X - - - - - Y - - - - - O - - - - - 1 (A, B, C) - - - - - 2 (D, E, F) - - - - - - - - QLayout::SetDefaultConstraint - - - 0 - - - 4 - - - - - Rotate xform 90 degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_left.png:/Fractorium/Icons/arrow_turn_left.png - - - - - - - Rotate xform 90 degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_turn_right.png:/Fractorium/Icons/arrow_turn_right.png - - - - - - - Scale xform x percent up - - - - - - - :/Fractorium/Icons/arrow_out.png:/Fractorium/Icons/arrow_out.png - - - - - - - Move xform x units right - - - - - - - :/Fractorium/Icons/arrow_right.png:/Fractorium/Icons/arrow_right.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 110 - - - - - 125 - - - - - 150 - - - - - 175 - - - - - 200 - - - - - - - - Move xform x units up - - - - - - - :/Fractorium/Icons/arrow_up.png:/Fractorium/Icons/arrow_up.png - - - - - - - Move xform x units down - - - - - - - :/Fractorium/Icons/arrow_down.png:/Fractorium/Icons/arrow_down.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - true - - - - 1 - - - - - 0.5 - - - - - 0.25 - - - - - 0.1 - - - - - 0.05 - - - - - 0.025 - - - - - 0.01 - - - - - - - - Move xform x units left - - - - - - - :/Fractorium/Icons/arrow_left.png:/Fractorium/Icons/arrow_left.png - - - - - - - - 0 - 0 - - - - - 75 - 22 - - - - true - - - QComboBox::NoInsert - - - QComboBox::AdjustToContents - - - true - - - - 5 - - - - - 15 - - - - - 30 - - - - - 45 - - - - - 60 - - - - - 90 - - - - - 120 - - - - - 180 - - - - - - - - Rotate xform x degrees counter clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_anticlockwise.png:/Fractorium/Icons/arrow_rotate_anticlockwise.png - - - - - - - Rotate xform x degrees clockwise - - - - - - - :/Fractorium/Icons/arrow_rotate_clockwise.png:/Fractorium/Icons/arrow_rotate_clockwise.png - - - - - - - Scale xform x percent down - - - - - - - :/Fractorium/Icons/arrow_in.png:/Fractorium/Icons/arrow_in.png - - - - - - - Flip xform horizontally - - - - - - - :/Fractorium/Icons/shape_flip_horizontal.png:/Fractorium/Icons/shape_flip_horizontal.png - - - - - - - Flip xform vertically - - - - - - - :/Fractorium/Icons/shape_flip_vertical.png:/Fractorium/Icons/shape_flip_vertical.png - - - - - - - - 0 - 0 - - - - - 75 - 0 - - - - Reset xform to the identity matrix - - - Reset - - - - - - - - - true - - - Show - - - - 6 - - - 2 - - - 6 - - - 6 - - - - - true - - - Current - - - true - - - - - - - All - - - - - - - - - - - - - Pivot - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop - - - false - - - - 6 - - - 2 - - - 6 - - - 6 - - - - - Local - - - true - - - - - - - World - - - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 5 - - - - @@ -4190,189 +4494,6 @@ SpinBox - - - - 4 - - - - - - 0 - 22 - - - - - 50 - 22 - - - - - 40 - 16777215 - - - - Current xform - - - false - - - 12 - - - - - - - - 0 - 0 - - - - - 30 - 0 - - - - Add xform - - - - - - - :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png - - - - - - - - 0 - 0 - - - - - 30 - 0 - - - - Duplicate xform - - - - - - - :/Fractorium/Icons/editraise.png:/Fractorium/Icons/editraise.png - - - - - - - - 0 - 0 - - - - - 30 - 0 - - - - Clear xform variations - - - - - - - :/Fractorium/Icons/eraser.png:/Fractorium/Icons/eraser.png - - - - - - - - 0 - 0 - - - - - 30 - 0 - - - - Delete xform - - - - - - - :/Fractorium/Icons/del.png:/Fractorium/Icons/del.png - - - - - - - - 0 - 0 - - - - - 50 - 0 - - - - - 60 - 16777215 - - - - - 0 - 0 - - - - Add final xform - - - Qt::LeftToRight - - - Final - - - - :/Fractorium/Icons/add.png:/Fractorium/Icons/add.png - - - - -