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
-
-
-
-
-