--Code changes

-Split VariationList into .h/cpp files.
  --Make VariationList.cpp the only place where the variations files are included from. This speeds up the build, but variations can no longer be directly instantiated.
  --Variations are no longer exported.
This commit is contained in:
mfeemster 2016-02-18 18:58:24 -08:00
parent d92a600ced
commit c09457d5fe
28 changed files with 1060 additions and 1069 deletions

View File

@ -320,6 +320,7 @@
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\Source\Ember\Renderer.cpp" /> <ClCompile Include="..\..\..\Source\Ember\Renderer.cpp" />
<ClCompile Include="..\..\..\Source\Ember\RendererBase.cpp" /> <ClCompile Include="..\..\..\Source\Ember\RendererBase.cpp" />
<ClCompile Include="..\..\..\Source\Ember\VariationList.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\..\libxml2\win32\VC10\libxml2.vcxproj"> <ProjectReference Include="..\..\..\..\libxml2\win32\VC10\libxml2.vcxproj">

View File

@ -145,6 +145,9 @@
<ClCompile Include="..\..\..\Source\Ember\RendererBase.cpp"> <ClCompile Include="..\..\..\Source\Ember\RendererBase.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\Source\Ember\VariationList.cpp">
<Filter>Header Files\Variations</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="Ember.rc" /> <ResourceCompile Include="Ember.rc" />

View File

@ -23,7 +23,8 @@ SOURCES += \
$$PRJ_DIR/Ember.cpp \ $$PRJ_DIR/Ember.cpp \
$$PRJ_DIR/EmberPch.cpp \ $$PRJ_DIR/EmberPch.cpp \
$$PRJ_DIR/RendererBase.cpp \ $$PRJ_DIR/RendererBase.cpp \
$$PRJ_DIR/Renderer.cpp $$PRJ_DIR/Renderer.cpp \
$$PRJ_DIR/VariationList.cpp
include(deployment.pri) include(deployment.pri)
qtcAddDeployment() qtcAddDeployment()

View File

@ -121,13 +121,4 @@ public:
m23T m_Mat; m23T m_Mat;
}; };
//This class had to be implemented in a cpp file because the compiler was breaking.
//So the explicit instantiation must be declared here rather than in Ember.cpp where
//all of the other classes are done.
//template EMBER_API class Affine2D<float>;
//#ifdef DO_DOUBLE
// template EMBER_API class Affine2D<double>;
//#endif
} }

View File

@ -51,9 +51,9 @@ bool Timing::m_TimingInit = false;
uint Timing::m_ProcessorCount; uint Timing::m_ProcessorCount;
#define EXPORTPREPOSTREGVAR(varName, T) \ #define EXPORTPREPOSTREGVAR(varName, T) \
template EMBER_API class varName##Variation<T>; \ template class varName##Variation<T>; \
template EMBER_API class Pre##varName##Variation<T>; \ template class Pre##varName##Variation<T>; \
template EMBER_API class Post##varName##Variation<T>; template class Post##varName##Variation<T>;
#define EXPORT_SINGLE_TYPE_EMBER(T) \ #define EXPORT_SINGLE_TYPE_EMBER(T) \
template<> const char* PaletteList<T>::m_DefaultFilename = "flam3-palettes.xml"; \ template<> const char* PaletteList<T>::m_DefaultFilename = "flam3-palettes.xml"; \

View File

@ -13,6 +13,8 @@
namespace EmberNs namespace EmberNs
{ {
template <typename T> class Interpolater;
/// <summary> /// <summary>
/// Bit position specifying the presence of each type of 3D parameter. /// Bit position specifying the presence of each type of 3D parameter.
/// One, none, some or all of these can be present. /// One, none, some or all of these can be present.
@ -42,6 +44,7 @@ public:
/// Default constructor which calls Init() to set default values. /// Default constructor which calls Init() to set default values.
/// </summary> /// </summary>
Ember() Ember()
: m_VariationList(VariationList<T>::Instance())
{ {
Init(); Init();
} }
@ -51,7 +54,8 @@ public:
/// </summary> /// </summary>
/// <param name="ember">The Ember object to copy</param> /// <param name="ember">The Ember object to copy</param>
Ember(const Ember<T>& ember) Ember(const Ember<T>& ember)
: m_Edits(nullptr) : m_VariationList(VariationList<T>::Instance()),
m_Edits(nullptr)
{ {
Ember<T>::operator=<T>(ember); Ember<T>::operator=<T>(ember);
} }
@ -62,7 +66,8 @@ public:
/// <param name="ember">The Ember object to copy</param> /// <param name="ember">The Ember object to copy</param>
template <typename U> template <typename U>
Ember(const Ember<U>& ember) Ember(const Ember<U>& ember)
: m_Edits(nullptr) : m_VariationList(VariationList<T>::Instance()),
m_Edits(nullptr)
{ {
Ember<T>::operator=<U>(ember); Ember<T>::operator=<U>(ember);
} }
@ -299,7 +304,7 @@ public:
ember.m_FinalXform.m_ColorSpeed = 0; ember.m_FinalXform.m_ColorSpeed = 0;
ember.m_FinalXform.m_Motion.clear(); ember.m_FinalXform.m_Motion.clear();
ember.m_FinalXform.ClearAndDeleteVariations(); ember.m_FinalXform.ClearAndDeleteVariations();
ember.m_FinalXform.AddVariation(new LinearVariation<T>(0));//Do this so it doesn't appear empty. ember.m_FinalXform.AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR, 0));//Do this so it doesn't appear empty.
} }
} }
@ -1096,7 +1101,7 @@ public:
m_Xforms[i].m_Affine.D(0); m_Xforms[i].m_Affine.D(0);
m_Xforms[i].m_Affine.E(1); m_Xforms[i].m_Affine.E(1);
m_Xforms[i].m_Affine.F(0); m_Xforms[i].m_Affine.F(0);
m_Xforms[i].AddVariation(new LinearVariation<T>()); m_Xforms[i].AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR));
result++; result++;
sym = -sym; sym = -sym;
} }
@ -1118,7 +1123,7 @@ public:
m_Xforms[i].m_Affine.E(m_Xforms[i].m_Affine.A()); m_Xforms[i].m_Affine.E(m_Xforms[i].m_Affine.A());
m_Xforms[i].m_Affine.C(0); m_Xforms[i].m_Affine.C(0);
m_Xforms[i].m_Affine.F(0); m_Xforms[i].m_Affine.F(0);
m_Xforms[i].AddVariation(new LinearVariation<T>()); m_Xforms[i].AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR));
result++; result++;
} }
@ -1747,6 +1752,9 @@ private:
//Xml field: "finalxform". //Xml field: "finalxform".
Xform<T> m_FinalXform; Xform<T> m_FinalXform;
//Single global reference to create variations with.
VariationList<T>& m_VariationList;
/// <summary> /// <summary>
/// Interpolation function that takes the address of a member variable of type T as a template parameter. /// Interpolation function that takes the address of a member variable of type T as a template parameter.
/// This is an alternative to using macros. /// This is an alternative to using macros.

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include "Ember.h" #include "Ember.h"
#include "VariationList.h"
/// <summary> /// <summary>
/// Interpolater class. /// Interpolater class.
@ -12,6 +13,7 @@ namespace EmberNs
/// g++ needs a forward declaration here. /// g++ needs a forward declaration here.
/// </summary> /// </summary>
template <typename T> class Ember; template <typename T> class Ember;
template <typename T> class VariationList;
/// <summary> /// <summary>
/// Contains many static functions for handling interpolation and other miscellaneous operations on /// Contains many static functions for handling interpolation and other miscellaneous operations on
@ -42,6 +44,7 @@ public:
bool currentFinal, final = sourceEmbers[0].UseFinalXform(); bool currentFinal, final = sourceEmbers[0].UseFinalXform();
size_t i, xf, currentCount, maxCount = sourceEmbers[0].XformCount(); size_t i, xf, currentCount, maxCount = sourceEmbers[0].XformCount();
Xform<T>* destOtherXform; Xform<T>* destOtherXform;
VariationList<T>& variationList(VariationList<T>::Instance());
//Determine the max number of xforms present in sourceEmbers. //Determine the max number of xforms present in sourceEmbers.
//Also check if final xforms are used in any of them. //Also check if final xforms are used in any of them.
@ -135,7 +138,7 @@ public:
destOtherXform->GetVariationById(eVariationId::VAR_WEDGE_SPH) || destOtherXform->GetVariationById(eVariationId::VAR_WEDGE_SPH) ||
destOtherXform->GetVariationById(eVariationId::VAR_WEDGE_JULIA)) destOtherXform->GetVariationById(eVariationId::VAR_WEDGE_JULIA))
{ {
destXform->AddVariation(new LinearVariation<T>(-1)); destXform->AddVariation(variationList.GetVariationCopy(eVariationId::VAR_LINEAR, -1));
//Set the coefs appropriately. //Set the coefs appropriately.
destXform->m_Affine.A(-1); destXform->m_Affine.A(-1);
destXform->m_Affine.D(0); destXform->m_Affine.D(0);
@ -164,58 +167,71 @@ public:
if (destOtherXform->GetVariationById(eVariationId::VAR_RECTANGLES)) if (destOtherXform->GetVariationById(eVariationId::VAR_RECTANGLES))
{ {
RectanglesVariation<T>* var = new RectanglesVariation<T>(); if (auto var = variationList.GetParametricVariationCopy(eVariationId::VAR_RECTANGLES))
var->SetParamVal("rectangles_x", 0); {
var->SetParamVal("rectangles_y", 0); var->SetParamVal("rectangles_x", 0);
destXform->AddVariation(var); var->SetParamVal("rectangles_y", 0);
destXform->AddVariation(var);
}
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_RINGS2)) if (destOtherXform->GetVariationById(eVariationId::VAR_RINGS2))
{ {
Rings2Variation<T>* var = new Rings2Variation<T>(); if (auto var = variationList.GetParametricVariationCopy(eVariationId::VAR_RINGS2))
var->SetParamVal("rings2_val", 0); {
destXform->AddVariation(var); var->SetParamVal("rings2_val", 0);
destXform->AddVariation(var);
}
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_FAN2)) if (destOtherXform->GetVariationById(eVariationId::VAR_FAN2))
{ {
Fan2Variation<T>* var = new Fan2Variation<T>(); destXform->AddVariation(variationList.GetVariationCopy(eVariationId::VAR_FAN2));
destXform->AddVariation(var);
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_BLOB)) if (destOtherXform->GetVariationById(eVariationId::VAR_BLOB))
{ {
BlobVariation<T>* var = new BlobVariation<T>(); if (auto var = variationList.GetParametricVariationCopy(eVariationId::VAR_BLOB))
var->SetParamVal("blob_low", 1); {
destXform->AddVariation(var); var->SetParamVal("blob_low", 1);
destXform->AddVariation(var);
}
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_PERSPECTIVE)) if (destOtherXform->GetVariationById(eVariationId::VAR_PERSPECTIVE))
{ {
PerspectiveVariation<T>* var = new PerspectiveVariation<T>(); destXform->AddVariation(variationList.GetVariationCopy(eVariationId::VAR_PERSPECTIVE));
destXform->AddVariation(var);
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_CURL)) if (destOtherXform->GetVariationById(eVariationId::VAR_CURL))
{ {
CurlVariation<T>* var = new CurlVariation<T>(); if (auto var = variationList.GetParametricVariationCopy(eVariationId::VAR_CURL))
var->SetParamVal("curl_c1", 0); {
destXform->AddVariation(var); var->SetParamVal("curl_c1", 0);
destXform->AddVariation(var);
}
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_SUPER_SHAPE)) if (destOtherXform->GetVariationById(eVariationId::VAR_SUPER_SHAPE))
{ {
SuperShapeVariation<T>* var = new SuperShapeVariation<T>(); if (auto var = variationList.GetParametricVariationCopy(eVariationId::VAR_SUPER_SHAPE))
var->SetParamVal("super_shape_n1", 2); {
var->SetParamVal("super_shape_n2", 2); var->SetParamVal("super_shape_n1", 2);
var->SetParamVal("super_shape_n3", 2); var->SetParamVal("super_shape_n2", 2);
destXform->AddVariation(var); var->SetParamVal("super_shape_n3", 2);
destXform->AddVariation(var);
}
found++; found++;
} }
} }
@ -238,13 +254,13 @@ public:
if (destOtherXform->GetVariationById(eVariationId::VAR_FAN)) if (destOtherXform->GetVariationById(eVariationId::VAR_FAN))
{ {
destXform->AddVariation(new FanVariation<T>()); destXform->AddVariation(variationList.GetVariationCopy(eVariationId::VAR_FAN));
found++; found++;
} }
if (destOtherXform->GetVariationById(eVariationId::VAR_RINGS)) if (destOtherXform->GetVariationById(eVariationId::VAR_RINGS))
{ {
destXform->AddVariation(new RingsVariation<T>()); destXform->AddVariation(variationList.GetVariationCopy(eVariationId::VAR_RINGS));
found++; found++;
} }
} }
@ -264,7 +280,7 @@ public:
//If there still are no matches, switch back to linear. //If there still are no matches, switch back to linear.
if (found == 0) if (found == 0)
{ {
destXform->AddVariation(new LinearVariation<T>()); destXform->AddVariation(variationList.GetVariationCopy(eVariationId::VAR_LINEAR));
} }
else if (found > 0) else if (found > 0)
{ {
@ -892,105 +908,6 @@ public:
} }
} }
/*
//Will need to alter this to handle 2D palettes.
static bool InterpMissingColors(vector<glm::detail::tvec4<T>>& palette)
{
//Check for a non-full palette.
int minIndex, maxIndex;
int colorli, colorri;
int wrapMin, wrapMax;
int intl, intr;
int str, enr;
int i, j, k;
double prcr;
if (palette.size() != 256)
return false;
for (i = 0; i < 256; i++)
{
if (palette[i].m_Index >= 0)
{
minIndex = i;
break;
}
}
if (i == 256)
{
//No colors. Set all indices properly.
for (i = 0; i < 256; i++)
palette[i].m_Index = (T)i;
return false;
}
wrapMin = minIndex + 256;
for (i = 255; i >= 0; i--)//Moving backwards, ouch!
{
if (palette[i].m_Index >= 0)
{
maxIndex = i;
break;
}
}
wrapMax = maxIndex - 256;
//Loop over the indices looking for negs,
i = 0;
while (i < 256)
{
if (palette[i].m_Index < 0)
{
//Start of a range of negs.
str = i;
intl = i - 1;
colorli = intl;
while (palette[i].m_Index < 0 && i < 256)
{
enr = i;
intr = i + 1;
colorri = intr;
i++;
}
if (intl == -1)
{
intl = wrapMax;
colorli = maxIndex;
}
if (intr == 256)
{
intr = wrapMin;
colorri = minIndex;
}
for (j = str; j <= enr; j++)
{
prcr = (j - intl) / T(intr - intl);
for (k = 0; k <= 3; k++)
palette[j].Channels[k] = T(palette[colorli].Channels[k] * (1 - prcr) + palette[colorri].Channels[k] * prcr);
palette[j].m_Index = T(j);
}
i = colorri + 1;
}
else
i++;
}
return true;
}
*/
/// <summary> /// <summary>
/// Compare xforms for sorting based first on color speed and second on determinants if /// Compare xforms for sorting based first on color speed and second on determinants if
/// color speeds are equal. /// color speeds are equal.

View File

@ -107,7 +107,6 @@ void Renderer<T, bucketT>::ComputeBounds()
/// <summary> /// <summary>
/// Compute the scale based on the zoom, then the quality based on the computed scale. /// Compute the scale based on the zoom, then the quality based on the computed scale.
/// This sets up the bounds of the cartesian plane that the raster bounds correspond to.
/// This must be called before ComputeCamera() which will use scale. /// This must be called before ComputeCamera() which will use scale.
/// </summary> /// </summary>
template <typename T, typename bucketT> template <typename T, typename bucketT>

View File

@ -62,6 +62,7 @@ public:
/// <param name="palettePath">The full path and filename of the palette file</param> /// <param name="palettePath">The full path and filename of the palette file</param>
/// <param name="renderer">A pre-constructed renderer to use. The caller should not delete this.</param> /// <param name="renderer">A pre-constructed renderer to use. The caller should not delete this.</param>
SheepTools(const string& palettePath, Renderer<T, bucketT>* renderer) SheepTools(const string& palettePath, Renderer<T, bucketT>* renderer)
: m_VariationList(VariationList<T>::Instance())
{ {
Timing t; Timing t;
m_Smooth = true; m_Smooth = true;
@ -87,9 +88,9 @@ public:
Xform<T> xform1(T(0.25), T(1), T(0.5), T(1), T(0.5), T(0), T(0), T(0.5), T(0.5), T(0.25)); Xform<T> xform1(T(0.25), T(1), T(0.5), T(1), T(0.5), T(0), T(0), T(0.5), T(0.5), T(0.25));
Xform<T> xform2(T(0.25), T(0.66), T(0.5), T(1), T(0.5), T(0), T(0), T(0.5), T(-0.5), T(0.25)); Xform<T> xform2(T(0.25), T(0.66), T(0.5), T(1), T(0.5), T(0), T(0), T(0.5), T(-0.5), T(0.25));
Xform<T> xform3(T(0.25), T(0.33), T(0.5), T(1), T(0.5), T(0), T(0), T(0.5), T(0.0), T(-0.5)); Xform<T> xform3(T(0.25), T(0.33), T(0.5), T(1), T(0.5), T(0), T(0), T(0.5), T(0.0), T(-0.5));
xform1.AddVariation(new LinearVariation<T>()); xform1.AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR));
xform2.AddVariation(new LinearVariation<T>()); xform2.AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR));
xform3.AddVariation(new LinearVariation<T>()); xform3.AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR));
ember.AddXform(xform1); ember.AddXform(xform1);
ember.AddXform(xform2); ember.AddXform(xform2);
ember.AddXform(xform3); ember.AddXform(xform3);
@ -1349,6 +1350,6 @@ private:
unique_ptr<Renderer<T, bucketT>> m_Renderer; unique_ptr<Renderer<T, bucketT>> m_Renderer;
QTIsaac<ISAAC_SIZE, ISAAC_INT> m_Rand; QTIsaac<ISAAC_SIZE, ISAAC_INT> m_Rand;
PaletteList<T> m_PaletteList; PaletteList<T> m_PaletteList;
VariationList<T> m_VariationList; VariationList<T>& m_VariationList;
}; };
} }

View File

@ -0,0 +1,589 @@
#include "EmberPch.h"
#include "VariationList.h"
#include "Variations01.h"
#include "Variations02.h"
#include "Variations03.h"
#include "Variations04.h"
#include "Variations05.h"
#include "Variations06.h"
#include "Variations07.h"
#include "VariationsDC.h"
namespace EmberNs
{
#define ADDPREPOSTREGVAR(varName) \
m_Variations.push_back(new varName##Variation<T>()); \
m_Variations.push_back(new Pre##varName##Variation<T>()); \
m_Variations.push_back(new Post##varName##Variation<T>());
/// <summary>
/// Singleton pattern, return a reference to the only instance of this object in existence.
/// </summary>
template <typename T>
VariationList<T>& VariationList<T>::Instance()
{
static VariationList<T> v;
return v;
}
/// <summary>
/// Constructor which initializes all of the variation objects and stores them in the list.
/// </summary>
template <typename T>
VariationList<T>::VariationList()
{
m_Variations.reserve(size_t(eVariationId::LAST_VAR));
ADDPREPOSTREGVAR(Linear)
ADDPREPOSTREGVAR(Sinusoidal)
ADDPREPOSTREGVAR(Spherical)
ADDPREPOSTREGVAR(Swirl)
ADDPREPOSTREGVAR(Horseshoe)
ADDPREPOSTREGVAR(Polar)
ADDPREPOSTREGVAR(Handkerchief)
ADDPREPOSTREGVAR(Heart)
ADDPREPOSTREGVAR(Disc)
ADDPREPOSTREGVAR(Spiral)
ADDPREPOSTREGVAR(Hyperbolic)
ADDPREPOSTREGVAR(Diamond)
ADDPREPOSTREGVAR(Ex)
ADDPREPOSTREGVAR(Julia)
ADDPREPOSTREGVAR(Bent)
ADDPREPOSTREGVAR(Waves)
ADDPREPOSTREGVAR(Fisheye)
ADDPREPOSTREGVAR(Popcorn)
ADDPREPOSTREGVAR(Exponential)
ADDPREPOSTREGVAR(Power)
ADDPREPOSTREGVAR(Cosine)
ADDPREPOSTREGVAR(Rings)
ADDPREPOSTREGVAR(Fan)
ADDPREPOSTREGVAR(Blob)
ADDPREPOSTREGVAR(Pdj)
ADDPREPOSTREGVAR(Fan2)
ADDPREPOSTREGVAR(Rings2)
ADDPREPOSTREGVAR(Eyefish)
ADDPREPOSTREGVAR(Bubble)
ADDPREPOSTREGVAR(Cylinder)
ADDPREPOSTREGVAR(Perspective)
ADDPREPOSTREGVAR(Noise)
ADDPREPOSTREGVAR(JuliaNGeneric)
ADDPREPOSTREGVAR(JuliaScope)
ADDPREPOSTREGVAR(Blur)
ADDPREPOSTREGVAR(GaussianBlur)
ADDPREPOSTREGVAR(RadialBlur)
ADDPREPOSTREGVAR(Pie)
ADDPREPOSTREGVAR(Ngon)
ADDPREPOSTREGVAR(Curl)
ADDPREPOSTREGVAR(Rectangles)
ADDPREPOSTREGVAR(Arch)
ADDPREPOSTREGVAR(Tangent)
ADDPREPOSTREGVAR(Square)
ADDPREPOSTREGVAR(Rays)
ADDPREPOSTREGVAR(Blade)
ADDPREPOSTREGVAR(Secant2)
ADDPREPOSTREGVAR(TwinTrian)
ADDPREPOSTREGVAR(Cross)
ADDPREPOSTREGVAR(Disc2)
ADDPREPOSTREGVAR(SuperShape)
ADDPREPOSTREGVAR(Flower)
ADDPREPOSTREGVAR(Conic)
ADDPREPOSTREGVAR(Parabola)
ADDPREPOSTREGVAR(Bent2)
ADDPREPOSTREGVAR(Bipolar)
ADDPREPOSTREGVAR(Boarders)
ADDPREPOSTREGVAR(Butterfly)
ADDPREPOSTREGVAR(Cell)
ADDPREPOSTREGVAR(Cpow)
ADDPREPOSTREGVAR(Curve)
ADDPREPOSTREGVAR(Edisc)
ADDPREPOSTREGVAR(Elliptic)
ADDPREPOSTREGVAR(Escher)
ADDPREPOSTREGVAR(Foci)
ADDPREPOSTREGVAR(LazySusan)
ADDPREPOSTREGVAR(Loonie)
ADDPREPOSTREGVAR(Modulus)
ADDPREPOSTREGVAR(Oscilloscope)
ADDPREPOSTREGVAR(Polar2)
ADDPREPOSTREGVAR(Popcorn2)
ADDPREPOSTREGVAR(Scry)
ADDPREPOSTREGVAR(Separation)
ADDPREPOSTREGVAR(Split)
ADDPREPOSTREGVAR(Splits)
ADDPREPOSTREGVAR(Stripes)
ADDPREPOSTREGVAR(Wedge)
ADDPREPOSTREGVAR(WedgeJulia)
ADDPREPOSTREGVAR(WedgeSph)
ADDPREPOSTREGVAR(Whorl)
ADDPREPOSTREGVAR(Waves2)
ADDPREPOSTREGVAR(Exp)
ADDPREPOSTREGVAR(Log)
ADDPREPOSTREGVAR(Sin)
ADDPREPOSTREGVAR(Cos)
ADDPREPOSTREGVAR(Tan)
ADDPREPOSTREGVAR(Sec)
ADDPREPOSTREGVAR(Csc)
ADDPREPOSTREGVAR(Cot)
ADDPREPOSTREGVAR(Sinh)
ADDPREPOSTREGVAR(Cosh)
ADDPREPOSTREGVAR(Tanh)
ADDPREPOSTREGVAR(Sech)
ADDPREPOSTREGVAR(Csch)
ADDPREPOSTREGVAR(Coth)
ADDPREPOSTREGVAR(Auger)
ADDPREPOSTREGVAR(Flux)
ADDPREPOSTREGVAR(Hemisphere)
ADDPREPOSTREGVAR(Epispiral)
ADDPREPOSTREGVAR(Bwraps)
ADDPREPOSTREGVAR(BlurCircle)
ADDPREPOSTREGVAR(BlurZoom)
ADDPREPOSTREGVAR(BlurPixelize)
ADDPREPOSTREGVAR(Crop)
ADDPREPOSTREGVAR(BCircle)
ADDPREPOSTREGVAR(BlurLinear)
ADDPREPOSTREGVAR(BlurSquare)
ADDPREPOSTREGVAR(Boarders2)
ADDPREPOSTREGVAR(Cardioid)
ADDPREPOSTREGVAR(Checks)
ADDPREPOSTREGVAR(Circlize)
ADDPREPOSTREGVAR(Circlize2)
ADDPREPOSTREGVAR(CosWrap)
ADDPREPOSTREGVAR(DeltaA)
ADDPREPOSTREGVAR(Expo)
ADDPREPOSTREGVAR(Extrude)
ADDPREPOSTREGVAR(FDisc)
ADDPREPOSTREGVAR(Fibonacci)
ADDPREPOSTREGVAR(Fibonacci2)
ADDPREPOSTREGVAR(Glynnia)
ADDPREPOSTREGVAR(GridOut)
ADDPREPOSTREGVAR(Hole)
ADDPREPOSTREGVAR(Hypertile)
ADDPREPOSTREGVAR(Hypertile1)
ADDPREPOSTREGVAR(Hypertile2)
ADDPREPOSTREGVAR(Hypertile3D)
ADDPREPOSTREGVAR(Hypertile3D1)
ADDPREPOSTREGVAR(Hypertile3D2)
ADDPREPOSTREGVAR(IDisc)
ADDPREPOSTREGVAR(Julian2)
ADDPREPOSTREGVAR(JuliaQ)
ADDPREPOSTREGVAR(Murl)
ADDPREPOSTREGVAR(Murl2)
ADDPREPOSTREGVAR(NPolar)
ADDPREPOSTREGVAR(Ortho)
ADDPREPOSTREGVAR(Poincare)
ADDPREPOSTREGVAR(Poincare3D)
ADDPREPOSTREGVAR(Polynomial)
ADDPREPOSTREGVAR(PSphere)
ADDPREPOSTREGVAR(Rational3)
ADDPREPOSTREGVAR(Ripple)
ADDPREPOSTREGVAR(Sigmoid)
ADDPREPOSTREGVAR(SinusGrid)
ADDPREPOSTREGVAR(Stwin)
ADDPREPOSTREGVAR(TwoFace)
ADDPREPOSTREGVAR(Unpolar)
ADDPREPOSTREGVAR(WavesN)
ADDPREPOSTREGVAR(XHeart)
ADDPREPOSTREGVAR(Barycentroid)
ADDPREPOSTREGVAR(BiSplit)
ADDPREPOSTREGVAR(Crescents)
ADDPREPOSTREGVAR(Mask)
ADDPREPOSTREGVAR(Cpow2)
ADDPREPOSTREGVAR(Curl3D)
ADDPREPOSTREGVAR(Disc3D)
ADDPREPOSTREGVAR(Funnel)
ADDPREPOSTREGVAR(Linear3D)
ADDPREPOSTREGVAR(PowBlock)
ADDPREPOSTREGVAR(Squirrel)
ADDPREPOSTREGVAR(Ennepers)
ADDPREPOSTREGVAR(SphericalN)
ADDPREPOSTREGVAR(Kaleidoscope)
ADDPREPOSTREGVAR(GlynnSim1)
ADDPREPOSTREGVAR(GlynnSim2)
ADDPREPOSTREGVAR(GlynnSim3)
ADDPREPOSTREGVAR(Starblur)
ADDPREPOSTREGVAR(Sineblur)
ADDPREPOSTREGVAR(Circleblur)
ADDPREPOSTREGVAR(CropN)
ADDPREPOSTREGVAR(ShredRad)
ADDPREPOSTREGVAR(Blob2)
ADDPREPOSTREGVAR(Julia3D)
ADDPREPOSTREGVAR(Julia3Dz)
ADDPREPOSTREGVAR(LinearT)
ADDPREPOSTREGVAR(LinearT3D)
ADDPREPOSTREGVAR(Ovoid)
ADDPREPOSTREGVAR(Ovoid3D)
ADDPREPOSTREGVAR(Spirograph)
ADDPREPOSTREGVAR(Petal)
ADDPREPOSTREGVAR(RoundSpher)
ADDPREPOSTREGVAR(RoundSpher3D)
ADDPREPOSTREGVAR(SpiralWing)
ADDPREPOSTREGVAR(Squarize)
ADDPREPOSTREGVAR(Sschecks)
ADDPREPOSTREGVAR(PhoenixJulia)
ADDPREPOSTREGVAR(Mobius)
ADDPREPOSTREGVAR(MobiusN)
ADDPREPOSTREGVAR(MobiusStrip)
ADDPREPOSTREGVAR(Lissajous)
ADDPREPOSTREGVAR(Svf)
ADDPREPOSTREGVAR(Target)
ADDPREPOSTREGVAR(Taurus)
ADDPREPOSTREGVAR(Collideoscope)
ADDPREPOSTREGVAR(BMod)
ADDPREPOSTREGVAR(BSwirl)
ADDPREPOSTREGVAR(BTransform)
ADDPREPOSTREGVAR(BCollide)
ADDPREPOSTREGVAR(Eclipse)
ADDPREPOSTREGVAR(FlipCircle)
ADDPREPOSTREGVAR(FlipY)
ADDPREPOSTREGVAR(ECollide)
ADDPREPOSTREGVAR(EJulia)
ADDPREPOSTREGVAR(EMod)
ADDPREPOSTREGVAR(EMotion)
ADDPREPOSTREGVAR(EPush)
ADDPREPOSTREGVAR(ERotate)
ADDPREPOSTREGVAR(EScale)
ADDPREPOSTREGVAR(ESwirl)
ADDPREPOSTREGVAR(LazyTravis)
ADDPREPOSTREGVAR(Squish)
ADDPREPOSTREGVAR(Circus)
ADDPREPOSTREGVAR(Tancos)
ADDPREPOSTREGVAR(Rippled)
ADDPREPOSTREGVAR(RotateX)
ADDPREPOSTREGVAR(RotateY)
ADDPREPOSTREGVAR(RotateZ)
ADDPREPOSTREGVAR(Flatten)
ADDPREPOSTREGVAR(Zblur)
ADDPREPOSTREGVAR(Blur3D)
ADDPREPOSTREGVAR(ZScale)
ADDPREPOSTREGVAR(ZTranslate)
ADDPREPOSTREGVAR(ZCone)
ADDPREPOSTREGVAR(MirrorX)
ADDPREPOSTREGVAR(MirrorY)
ADDPREPOSTREGVAR(MirrorZ)
ADDPREPOSTREGVAR(Depth)
ADDPREPOSTREGVAR(Spherical3D)
ADDPREPOSTREGVAR(RBlur)
ADDPREPOSTREGVAR(JuliaNab)
ADDPREPOSTREGVAR(Sintrange)
ADDPREPOSTREGVAR(Voron)
ADDPREPOSTREGVAR(Waffle)
ADDPREPOSTREGVAR(Square3D)
ADDPREPOSTREGVAR(SuperShape3D)
ADDPREPOSTREGVAR(Sphyp3D)
ADDPREPOSTREGVAR(Circlecrop)
ADDPREPOSTREGVAR(Julian3Dx)
ADDPREPOSTREGVAR(Fourth)
ADDPREPOSTREGVAR(Mobiq)
ADDPREPOSTREGVAR(Spherivoid)
ADDPREPOSTREGVAR(Farblur)
ADDPREPOSTREGVAR(CurlSP)
ADDPREPOSTREGVAR(Heat)
ADDPREPOSTREGVAR(Interference2)
ADDPREPOSTREGVAR(Sinq)
ADDPREPOSTREGVAR(Sinhq)
ADDPREPOSTREGVAR(Secq)
ADDPREPOSTREGVAR(Sechq)
ADDPREPOSTREGVAR(Tanq)
ADDPREPOSTREGVAR(Tanhq)
ADDPREPOSTREGVAR(Cosq)
ADDPREPOSTREGVAR(Coshq)
ADDPREPOSTREGVAR(Cotq)
ADDPREPOSTREGVAR(Cothq)
ADDPREPOSTREGVAR(Cscq)
ADDPREPOSTREGVAR(Cschq)
ADDPREPOSTREGVAR(Estiq)
ADDPREPOSTREGVAR(Loq)
ADDPREPOSTREGVAR(Curvature)
ADDPREPOSTREGVAR(Qode)
ADDPREPOSTREGVAR(BlurHeart)
ADDPREPOSTREGVAR(Truchet)
ADDPREPOSTREGVAR(Gdoffs)
ADDPREPOSTREGVAR(Octagon)
ADDPREPOSTREGVAR(Trade)
ADDPREPOSTREGVAR(Juliac)
ADDPREPOSTREGVAR(Blade3D)
ADDPREPOSTREGVAR(Blob3D)
ADDPREPOSTREGVAR(Blocky)
ADDPREPOSTREGVAR(Bubble2)
ADDPREPOSTREGVAR(CircleLinear)
ADDPREPOSTREGVAR(CircleRand)
ADDPREPOSTREGVAR(CircleTrans1)
ADDPREPOSTREGVAR(Cubic3D)
ADDPREPOSTREGVAR(CubicLattice3D)
ADDPREPOSTREGVAR(Foci3D)
ADDPREPOSTREGVAR(Ho)
ADDPREPOSTREGVAR(Julia3Dq)
ADDPREPOSTREGVAR(Line)
ADDPREPOSTREGVAR(Loonie2)
ADDPREPOSTREGVAR(Loonie3)
ADDPREPOSTREGVAR(Loonie3D)
ADDPREPOSTREGVAR(Mcarpet)
ADDPREPOSTREGVAR(Waves23D)
ADDPREPOSTREGVAR(Pie3D)
ADDPREPOSTREGVAR(Popcorn23D)
ADDPREPOSTREGVAR(Sinusoidal3D)
ADDPREPOSTREGVAR(Scry3D)
ADDPREPOSTREGVAR(Shredlin)
ADDPREPOSTREGVAR(SplitBrdr)
ADDPREPOSTREGVAR(Wdisc)
ADDPREPOSTREGVAR(Falloff)
ADDPREPOSTREGVAR(Falloff2)
ADDPREPOSTREGVAR(Falloff3)
ADDPREPOSTREGVAR(Xtrb)
ADDPREPOSTREGVAR(Hexaplay3D)
ADDPREPOSTREGVAR(Hexnix3D)
ADDPREPOSTREGVAR(Hexcrop)
ADDPREPOSTREGVAR(Hexes)
ADDPREPOSTREGVAR(Nblur)
ADDPREPOSTREGVAR(Octapol)
ADDPREPOSTREGVAR(Crob)
ADDPREPOSTREGVAR(BubbleT3D)
ADDPREPOSTREGVAR(Synth)
ADDPREPOSTREGVAR(Crackle)
m_Variations.push_back(new PostSmartcropVariation<T>());//Post only
ADDPREPOSTREGVAR(Xerf)
ADDPREPOSTREGVAR(Erf)
ADDPREPOSTREGVAR(W)
ADDPREPOSTREGVAR(X)
ADDPREPOSTREGVAR(Y)
ADDPREPOSTREGVAR(Z)
ADDPREPOSTREGVAR(Splits3D)
ADDPREPOSTREGVAR(Waves2B)
ADDPREPOSTREGVAR(JacCn)
ADDPREPOSTREGVAR(JacDn)
ADDPREPOSTREGVAR(JacSn)
ADDPREPOSTREGVAR(PressureWave)
ADDPREPOSTREGVAR(Gamma)
ADDPREPOSTREGVAR(PRose3D)
ADDPREPOSTREGVAR(LogDB)
//ADDPREPOSTREGVAR(LinearXZ)
//ADDPREPOSTREGVAR(LinearYZ)
//DC are special.
ADDPREPOSTREGVAR(DCBubble)
ADDPREPOSTREGVAR(DCCarpet)
ADDPREPOSTREGVAR(DCCube)
ADDPREPOSTREGVAR(DCCylinder)
ADDPREPOSTREGVAR(DCGridOut)
ADDPREPOSTREGVAR(DCLinear)
ADDPREPOSTREGVAR(DCPerlin)
ADDPREPOSTREGVAR(DCTriangle)
ADDPREPOSTREGVAR(DCZTransl)
for (auto var : m_Variations) var->Precalc();
std::sort(m_Variations.begin(), m_Variations.end(), [&](const Variation<T>* var1, const Variation<T>* var2) { return var1->VariationId() < var2->VariationId(); });
m_RegVariations.reserve(m_Variations.size() / 3);
m_PreVariations.reserve(m_Variations.size() / 3);
m_PostVariations.reserve(m_Variations.size() / 3);
m_ParametricVariations.reserve(size_t(m_Variations.size() * .90));//This is a rough guess at how many are parametric.
//Place pointers to variations in vectors specific to their type.
//Many of the elements in m_ParametricVariations will be present in the reg, pre and post vectors.
//Note that these are not new copies, rather just pointers to the original instances in m_Variations.
for (auto var : m_Variations)
{
if (var->VarType() == eVariationType::VARTYPE_REG)
m_RegVariations.push_back(var);
else if (var->VarType() == eVariationType::VARTYPE_PRE)
m_PreVariations.push_back(var);
else if (var->VarType() == eVariationType::VARTYPE_POST)
m_PostVariations.push_back(var);
if (auto parVar = dynamic_cast<ParametricVariation<T>*>(var))
m_ParametricVariations.push_back(parVar);
}
}
/// <summary>
/// Delete each element of the list.
/// </summary>
template <typename T>
VariationList<T>::~VariationList()
{
ClearVec(m_Variations);//No need to delete parametric because they point to the entries in original vector.
}
/// <summary>
/// Get a pointer to the variation at the specified index.
/// </summary>
/// <param name="index">The index in the list to retrieve</param>
/// <returns>A pointer to the variation at the index if in range, else nullptr.</returns>
template <typename T>
const Variation<T>* VariationList<T>::GetVariation(size_t index) const { return index < m_Variations.size() ? m_Variations[index] : nullptr; }
/// <summary>
/// Get a pointer to the variation of a specified type at the specified index.
/// </summary>
/// <param name="index">The index in the list to retrieve</param>
/// <param name="varType">The type of variation to retrieve</param>
/// <returns>A pointer to the variation of the specified type at the index if in range, else nullptr.</returns>
template <typename T>
const Variation<T>* VariationList<T>::GetVariation(size_t index, eVariationType varType) const
{
switch (varType)
{
case eVariationType::VARTYPE_REG:
return index < m_RegVariations.size() ? m_RegVariations[index] : nullptr;
break;
case eVariationType::VARTYPE_PRE:
return index < m_PreVariations.size() ? m_PreVariations[index] : nullptr;
break;
case eVariationType::VARTYPE_POST:
return index < m_PostVariations.size() ? m_PostVariations[index] : nullptr;
break;
default:
return nullptr;
break;
}
}
/// <summary>
/// Gets a pointer to a copy of the variation at the specified index.
/// Optionally specify a weight to assign the new copy.
/// </summary>
/// <param name="index">The index in the list to make a copy of</param>
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
/// <returns>A pointer to the variation at the index if in range, else nullptr.</returns>
template <typename T>
Variation<T>* VariationList<T>::GetVariationCopy(size_t index, T weight = 1) const { return MakeCopyWithWeight(GetVariation(index), weight); }
template <typename T>
Variation<T>* VariationList<T>::GetVariationCopy(size_t index, eVariationType varType, T weight = 1) const { return MakeCopyWithWeight(GetVariation(index, varType), weight); }
/// <summary>
/// Get a pointer to the variation with the specified ID.
/// </summary>
/// <param name="id">The ID to search for</param>
/// <returns>A pointer to the variation if found, else nullptr.</returns>
template <typename T>
const Variation<T>* VariationList<T>::GetVariation(eVariationId id) const
{
for (auto var : m_Variations)
if (var && id == var->VariationId())
return var;
return nullptr;
}
/// <summary>
/// Gets a pointer to a copy of the variation with the specified ID.
/// Optionally specify a weight to assign the new copy.
/// </summary>
/// <param name="id">The id of the variation in the list to make a copy of</param>
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
/// <returns>A pointer to the variation with a matching ID, else nullptr.</returns>
template <typename T>
Variation<T>* VariationList<T>::GetVariationCopy(eVariationId id, T weight = 1) const { return MakeCopyWithWeight(GetVariation(id), weight); }
/// <summary>
/// Get a pointer to the variation with the specified name.
/// </summary>
/// <param name="name">The name to search for</param>
/// <returns>A pointer to the variation if found, else nullptr.</returns>
template <typename T>
const Variation<T>* VariationList<T>::GetVariation(const string& name) const
{
for (auto var : m_Variations)
if (var && !_stricmp(name.c_str(), var->Name().c_str()))
return var;
return nullptr;
}
/// <summary>
/// Gets a pointer to a copy of the variation with the specified name.
/// Optionally specify a weight to assign the new copy.
/// </summary>
/// <param name="name">The name of the variation in the list to make a copy of</param>
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
/// <returns>A pointer to the variation with a matching name, else nullptr.</returns>
template <typename T>
Variation<T>* VariationList<T>::GetVariationCopy(const string& name, T weight = 1) const { return MakeCopyWithWeight(GetVariation(name), weight); }
/// <summary>
/// Get a parametric variation at the specified index.
/// Note this is the index in the parametric variations list, not in the master list.
/// </summary>
/// <param name="index">The index in the parametric variations list to retrieve</param>
/// <returns>The parametric variation at the index specified if in range, else nullptr.</returns>
template <typename T>
const ParametricVariation<T>* VariationList<T>::GetParametricVariation(size_t index) const { return index < m_ParametricVariations.size() ? m_ParametricVariations[index] : nullptr; }
/// <summary>
/// Get a parametric variation with the specified name.
/// </summary>
/// <param name="name">The name of the variation in the parametric variations list to retrieve</param>
/// <returns>The parametric variation with a matching name, else nullptr.</returns>
template <typename T>
const ParametricVariation<T>* VariationList<T>::GetParametricVariation(const string& name) const
{
for (auto var : m_ParametricVariations)
if (var && !_stricmp(name.c_str(), var->Name().c_str()))
return var;
return nullptr;
}
template <typename T>
ParametricVariation<T>* VariationList<T>::GetParametricVariationCopy(eVariationId id, T weight) const
{
return dynamic_cast<ParametricVariation<T>*>(MakeCopyWithWeight(GetVariation(id), weight));
}
/// <summary>
/// Get the index of the variation with the specified name.
/// </summary>
/// <param name="name">The name of the variation whose index is returned</param>
/// <returns>The index of the variation with the matching name, else -1</returns>
template <typename T>
int VariationList<T>::GetVariationIndex(const string& name) const
{
for (size_t i = 0; i < m_Variations.size() && m_Variations[i]; i++)
if (!_stricmp(name.c_str(), m_Variations[i]->Name().c_str()))
return int(i);
return -1;
}
/// <summary>
/// Accessors.
/// </summary>
template <typename T> size_t VariationList<T>::Size() const { return m_Variations.size(); }
template <typename T> size_t VariationList<T>::RegSize() const { return m_RegVariations.size(); }
template <typename T> size_t VariationList<T>::PreSize() const { return m_PreVariations.size(); }
template <typename T> size_t VariationList<T>::PostSize() const { return m_PostVariations.size(); }
template <typename T> size_t VariationList<T>::ParametricSize() const { return m_ParametricVariations.size(); }
template <typename T> const vector<Variation<T>*>& VariationList<T>::AllVars() const { return m_Variations; }
template <typename T> const vector<Variation<T>*>& VariationList<T>::RegVars() const { return m_RegVariations; }
template <typename T> const vector<Variation<T>*>& VariationList<T>::PreVars() const { return m_PreVariations; }
template <typename T> const vector<Variation<T>*>& VariationList<T>::PostVars() const { return m_PostVariations; }
/// <summary>
/// Make a dyncamically allocated copy of a variation and assign it a specified weight.
/// Return a pointer to the new copy.
/// </summary>
/// <param name="var">The variation to copy</param>
/// <param name="weight">The weight to assign it</param>
/// <returns>A pointer to the new variation copy if success, else nullptr.</returns>
template <typename T>
Variation<T>* VariationList<T>::MakeCopyWithWeight(const Variation<T>* var, T weight) const
{
if (var)
{
auto var2 = var->Copy();
var2->m_Weight = weight;
return var2;
}
return nullptr;
}
//This class was implemented in a cpp file to avoid exposing so many variation classes.
//So the explicit instantiation must be declared here rather than in Ember.cpp where
//all of the other classes are done.
template EMBER_API class VariationList<float>;
#ifdef DO_DOUBLE
template EMBER_API class VariationList<double>;
#endif
}

View File

@ -1,13 +1,6 @@
#pragma once #pragma once
#include "Variations01.h" #include "Variation.h"
#include "Variations02.h"
#include "Variations03.h"
#include "Variations04.h"
#include "Variations05.h"
#include "Variations06.h"
#include "Variations07.h"
#include "VariationsDC.h"
/// <summary> /// <summary>
/// VariationList class. /// VariationList class.
@ -20,562 +13,44 @@ namespace EmberNs
/// of specific ones. This class holds a list of pointers to variation objects for every /// of specific ones. This class holds a list of pointers to variation objects for every
/// variation available. Similar to the PaletteList class, a caller can look up a variation /// variation available. Similar to the PaletteList class, a caller can look up a variation
/// by name or ID and retrieve a copy of it. /// by name or ID and retrieve a copy of it.
/// This class follows the singleton pattern.
/// All variations are deleted upon destruction. /// All variations are deleted upon destruction.
/// Template argument expected to be float or double. /// Template argument expected to be float or double.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API VariationList class EMBER_API VariationList
{ {
#define ADDPREPOSTREGVAR(varName) \
m_Variations.push_back(new varName##Variation<T>()); \
m_Variations.push_back(new Pre##varName##Variation<T>()); \
m_Variations.push_back(new Post##varName##Variation<T>());
public: public:
/// <summary> static VariationList<T>& Instance();
/// Constructor which initializes all of the variation objects and stores them in the list. ~VariationList();
/// </summary> VariationList<T>(const VariationList<T>& varList) = delete;
VariationList() VariationList<T>& operator = (const VariationList<T>& varList) = delete;
{ const Variation<T>* GetVariation(size_t index) const;
m_Variations.reserve(size_t(eVariationId::LAST_VAR)); const Variation<T>* GetVariation(size_t index, eVariationType varType) const;
ADDPREPOSTREGVAR(Linear) Variation<T>* GetVariationCopy(size_t index, T weight = 1) const;
ADDPREPOSTREGVAR(Sinusoidal) Variation<T>* GetVariationCopy(size_t index, eVariationType varType, T weight = 1) const;
ADDPREPOSTREGVAR(Spherical) const Variation<T>* GetVariation(eVariationId id) const;
ADDPREPOSTREGVAR(Swirl) Variation<T>* GetVariationCopy(eVariationId id, T weight = 1) const;
ADDPREPOSTREGVAR(Horseshoe) const Variation<T>* GetVariation(const string& name) const;
ADDPREPOSTREGVAR(Polar) Variation<T>* GetVariationCopy(const string& name, T weight = 1) const;
ADDPREPOSTREGVAR(Handkerchief) const ParametricVariation<T>* GetParametricVariation(size_t index) const;
ADDPREPOSTREGVAR(Heart) const ParametricVariation<T>* GetParametricVariation(const string& name) const;
ADDPREPOSTREGVAR(Disc) ParametricVariation<T>* GetParametricVariationCopy(eVariationId id, T weight = 1) const;
ADDPREPOSTREGVAR(Spiral) int GetVariationIndex(const string& name) const;
ADDPREPOSTREGVAR(Hyperbolic) size_t Size() const;
ADDPREPOSTREGVAR(Diamond) size_t RegSize() const;
ADDPREPOSTREGVAR(Ex) size_t PreSize() const;
ADDPREPOSTREGVAR(Julia) size_t PostSize() const;
ADDPREPOSTREGVAR(Bent) size_t ParametricSize() const;
ADDPREPOSTREGVAR(Waves)
ADDPREPOSTREGVAR(Fisheye)
ADDPREPOSTREGVAR(Popcorn)
ADDPREPOSTREGVAR(Exponential)
ADDPREPOSTREGVAR(Power)
ADDPREPOSTREGVAR(Cosine)
ADDPREPOSTREGVAR(Rings)
ADDPREPOSTREGVAR(Fan)
ADDPREPOSTREGVAR(Blob)
ADDPREPOSTREGVAR(Pdj)
ADDPREPOSTREGVAR(Fan2)
ADDPREPOSTREGVAR(Rings2)
ADDPREPOSTREGVAR(Eyefish)
ADDPREPOSTREGVAR(Bubble)
ADDPREPOSTREGVAR(Cylinder)
ADDPREPOSTREGVAR(Perspective)
ADDPREPOSTREGVAR(Noise)
ADDPREPOSTREGVAR(JuliaNGeneric)
ADDPREPOSTREGVAR(JuliaScope)
ADDPREPOSTREGVAR(Blur)
ADDPREPOSTREGVAR(GaussianBlur)
ADDPREPOSTREGVAR(RadialBlur)
ADDPREPOSTREGVAR(Pie)
ADDPREPOSTREGVAR(Ngon)
ADDPREPOSTREGVAR(Curl)
ADDPREPOSTREGVAR(Rectangles)
ADDPREPOSTREGVAR(Arch)
ADDPREPOSTREGVAR(Tangent)
ADDPREPOSTREGVAR(Square)
ADDPREPOSTREGVAR(Rays)
ADDPREPOSTREGVAR(Blade)
ADDPREPOSTREGVAR(Secant2)
ADDPREPOSTREGVAR(TwinTrian)
ADDPREPOSTREGVAR(Cross)
ADDPREPOSTREGVAR(Disc2)
ADDPREPOSTREGVAR(SuperShape)
ADDPREPOSTREGVAR(Flower)
ADDPREPOSTREGVAR(Conic)
ADDPREPOSTREGVAR(Parabola)
ADDPREPOSTREGVAR(Bent2)
ADDPREPOSTREGVAR(Bipolar)
ADDPREPOSTREGVAR(Boarders)
ADDPREPOSTREGVAR(Butterfly)
ADDPREPOSTREGVAR(Cell)
ADDPREPOSTREGVAR(Cpow)
ADDPREPOSTREGVAR(Curve)
ADDPREPOSTREGVAR(Edisc)
ADDPREPOSTREGVAR(Elliptic)
ADDPREPOSTREGVAR(Escher)
ADDPREPOSTREGVAR(Foci)
ADDPREPOSTREGVAR(LazySusan)
ADDPREPOSTREGVAR(Loonie)
ADDPREPOSTREGVAR(Modulus)
ADDPREPOSTREGVAR(Oscilloscope)
ADDPREPOSTREGVAR(Polar2)
ADDPREPOSTREGVAR(Popcorn2)
ADDPREPOSTREGVAR(Scry)
ADDPREPOSTREGVAR(Separation)
ADDPREPOSTREGVAR(Split)
ADDPREPOSTREGVAR(Splits)
ADDPREPOSTREGVAR(Stripes)
ADDPREPOSTREGVAR(Wedge)
ADDPREPOSTREGVAR(WedgeJulia)
ADDPREPOSTREGVAR(WedgeSph)
ADDPREPOSTREGVAR(Whorl)
ADDPREPOSTREGVAR(Waves2)
ADDPREPOSTREGVAR(Exp)
ADDPREPOSTREGVAR(Log)
ADDPREPOSTREGVAR(Sin)
ADDPREPOSTREGVAR(Cos)
ADDPREPOSTREGVAR(Tan)
ADDPREPOSTREGVAR(Sec)
ADDPREPOSTREGVAR(Csc)
ADDPREPOSTREGVAR(Cot)
ADDPREPOSTREGVAR(Sinh)
ADDPREPOSTREGVAR(Cosh)
ADDPREPOSTREGVAR(Tanh)
ADDPREPOSTREGVAR(Sech)
ADDPREPOSTREGVAR(Csch)
ADDPREPOSTREGVAR(Coth)
ADDPREPOSTREGVAR(Auger)
ADDPREPOSTREGVAR(Flux)
ADDPREPOSTREGVAR(Hemisphere)
ADDPREPOSTREGVAR(Epispiral)
ADDPREPOSTREGVAR(Bwraps)
ADDPREPOSTREGVAR(BlurCircle)
ADDPREPOSTREGVAR(BlurZoom)
ADDPREPOSTREGVAR(BlurPixelize)
ADDPREPOSTREGVAR(Crop)
ADDPREPOSTREGVAR(BCircle)
ADDPREPOSTREGVAR(BlurLinear)
ADDPREPOSTREGVAR(BlurSquare)
ADDPREPOSTREGVAR(Boarders2)
ADDPREPOSTREGVAR(Cardioid)
ADDPREPOSTREGVAR(Checks)
ADDPREPOSTREGVAR(Circlize)
ADDPREPOSTREGVAR(Circlize2)
ADDPREPOSTREGVAR(CosWrap)
ADDPREPOSTREGVAR(DeltaA)
ADDPREPOSTREGVAR(Expo)
ADDPREPOSTREGVAR(Extrude)
ADDPREPOSTREGVAR(FDisc)
ADDPREPOSTREGVAR(Fibonacci)
ADDPREPOSTREGVAR(Fibonacci2)
ADDPREPOSTREGVAR(Glynnia)
ADDPREPOSTREGVAR(GridOut)
ADDPREPOSTREGVAR(Hole)
ADDPREPOSTREGVAR(Hypertile)
ADDPREPOSTREGVAR(Hypertile1)
ADDPREPOSTREGVAR(Hypertile2)
ADDPREPOSTREGVAR(Hypertile3D)
ADDPREPOSTREGVAR(Hypertile3D1)
ADDPREPOSTREGVAR(Hypertile3D2)
ADDPREPOSTREGVAR(IDisc)
ADDPREPOSTREGVAR(Julian2)
ADDPREPOSTREGVAR(JuliaQ)
ADDPREPOSTREGVAR(Murl)
ADDPREPOSTREGVAR(Murl2)
ADDPREPOSTREGVAR(NPolar)
ADDPREPOSTREGVAR(Ortho)
ADDPREPOSTREGVAR(Poincare)
ADDPREPOSTREGVAR(Poincare3D)
ADDPREPOSTREGVAR(Polynomial)
ADDPREPOSTREGVAR(PSphere)
ADDPREPOSTREGVAR(Rational3)
ADDPREPOSTREGVAR(Ripple)
ADDPREPOSTREGVAR(Sigmoid)
ADDPREPOSTREGVAR(SinusGrid)
ADDPREPOSTREGVAR(Stwin)
ADDPREPOSTREGVAR(TwoFace)
ADDPREPOSTREGVAR(Unpolar)
ADDPREPOSTREGVAR(WavesN)
ADDPREPOSTREGVAR(XHeart)
ADDPREPOSTREGVAR(Barycentroid)
ADDPREPOSTREGVAR(BiSplit)
ADDPREPOSTREGVAR(Crescents)
ADDPREPOSTREGVAR(Mask)
ADDPREPOSTREGVAR(Cpow2)
ADDPREPOSTREGVAR(Curl3D)
ADDPREPOSTREGVAR(Disc3D)
ADDPREPOSTREGVAR(Funnel)
ADDPREPOSTREGVAR(Linear3D)
ADDPREPOSTREGVAR(PowBlock)
ADDPREPOSTREGVAR(Squirrel)
ADDPREPOSTREGVAR(Ennepers)
ADDPREPOSTREGVAR(SphericalN)
ADDPREPOSTREGVAR(Kaleidoscope)
ADDPREPOSTREGVAR(GlynnSim1)
ADDPREPOSTREGVAR(GlynnSim2)
ADDPREPOSTREGVAR(GlynnSim3)
ADDPREPOSTREGVAR(Starblur)
ADDPREPOSTREGVAR(Sineblur)
ADDPREPOSTREGVAR(Circleblur)
ADDPREPOSTREGVAR(CropN)
ADDPREPOSTREGVAR(ShredRad)
ADDPREPOSTREGVAR(Blob2)
ADDPREPOSTREGVAR(Julia3D)
ADDPREPOSTREGVAR(Julia3Dz)
ADDPREPOSTREGVAR(LinearT)
ADDPREPOSTREGVAR(LinearT3D)
ADDPREPOSTREGVAR(Ovoid)
ADDPREPOSTREGVAR(Ovoid3D)
ADDPREPOSTREGVAR(Spirograph)
ADDPREPOSTREGVAR(Petal)
ADDPREPOSTREGVAR(RoundSpher)
ADDPREPOSTREGVAR(RoundSpher3D)
ADDPREPOSTREGVAR(SpiralWing)
ADDPREPOSTREGVAR(Squarize)
ADDPREPOSTREGVAR(Sschecks)
ADDPREPOSTREGVAR(PhoenixJulia)
ADDPREPOSTREGVAR(Mobius)
ADDPREPOSTREGVAR(MobiusN)
ADDPREPOSTREGVAR(MobiusStrip)
ADDPREPOSTREGVAR(Lissajous)
ADDPREPOSTREGVAR(Svf)
ADDPREPOSTREGVAR(Target)
ADDPREPOSTREGVAR(Taurus)
ADDPREPOSTREGVAR(Collideoscope)
ADDPREPOSTREGVAR(BMod)
ADDPREPOSTREGVAR(BSwirl)
ADDPREPOSTREGVAR(BTransform)
ADDPREPOSTREGVAR(BCollide)
ADDPREPOSTREGVAR(Eclipse)
ADDPREPOSTREGVAR(FlipCircle)
ADDPREPOSTREGVAR(FlipY)
ADDPREPOSTREGVAR(ECollide)
ADDPREPOSTREGVAR(EJulia)
ADDPREPOSTREGVAR(EMod)
ADDPREPOSTREGVAR(EMotion)
ADDPREPOSTREGVAR(EPush)
ADDPREPOSTREGVAR(ERotate)
ADDPREPOSTREGVAR(EScale)
ADDPREPOSTREGVAR(ESwirl)
ADDPREPOSTREGVAR(LazyTravis)
ADDPREPOSTREGVAR(Squish)
ADDPREPOSTREGVAR(Circus)
ADDPREPOSTREGVAR(Tancos)
ADDPREPOSTREGVAR(Rippled)
ADDPREPOSTREGVAR(RotateX)
ADDPREPOSTREGVAR(RotateY)
ADDPREPOSTREGVAR(RotateZ)
ADDPREPOSTREGVAR(Flatten)
ADDPREPOSTREGVAR(Zblur)
ADDPREPOSTREGVAR(Blur3D)
ADDPREPOSTREGVAR(ZScale)
ADDPREPOSTREGVAR(ZTranslate)
ADDPREPOSTREGVAR(ZCone)
ADDPREPOSTREGVAR(MirrorX)
ADDPREPOSTREGVAR(MirrorY)
ADDPREPOSTREGVAR(MirrorZ)
ADDPREPOSTREGVAR(Depth)
ADDPREPOSTREGVAR(Spherical3D)
ADDPREPOSTREGVAR(RBlur)
ADDPREPOSTREGVAR(JuliaNab)
ADDPREPOSTREGVAR(Sintrange)
ADDPREPOSTREGVAR(Voron)
ADDPREPOSTREGVAR(Waffle)
ADDPREPOSTREGVAR(Square3D)
ADDPREPOSTREGVAR(SuperShape3D)
ADDPREPOSTREGVAR(Sphyp3D)
ADDPREPOSTREGVAR(Circlecrop)
ADDPREPOSTREGVAR(Julian3Dx)
ADDPREPOSTREGVAR(Fourth)
ADDPREPOSTREGVAR(Mobiq)
ADDPREPOSTREGVAR(Spherivoid)
ADDPREPOSTREGVAR(Farblur)
ADDPREPOSTREGVAR(CurlSP)
ADDPREPOSTREGVAR(Heat)
ADDPREPOSTREGVAR(Interference2)
ADDPREPOSTREGVAR(Sinq)
ADDPREPOSTREGVAR(Sinhq)
ADDPREPOSTREGVAR(Secq)
ADDPREPOSTREGVAR(Sechq)
ADDPREPOSTREGVAR(Tanq)
ADDPREPOSTREGVAR(Tanhq)
ADDPREPOSTREGVAR(Cosq)
ADDPREPOSTREGVAR(Coshq)
ADDPREPOSTREGVAR(Cotq)
ADDPREPOSTREGVAR(Cothq)
ADDPREPOSTREGVAR(Cscq)
ADDPREPOSTREGVAR(Cschq)
ADDPREPOSTREGVAR(Estiq)
ADDPREPOSTREGVAR(Loq)
ADDPREPOSTREGVAR(Curvature)
ADDPREPOSTREGVAR(Qode)
ADDPREPOSTREGVAR(BlurHeart)
ADDPREPOSTREGVAR(Truchet)
ADDPREPOSTREGVAR(Gdoffs)
ADDPREPOSTREGVAR(Octagon)
ADDPREPOSTREGVAR(Trade)
ADDPREPOSTREGVAR(Juliac)
ADDPREPOSTREGVAR(Blade3D)
ADDPREPOSTREGVAR(Blob3D)
ADDPREPOSTREGVAR(Blocky)
ADDPREPOSTREGVAR(Bubble2)
ADDPREPOSTREGVAR(CircleLinear)
ADDPREPOSTREGVAR(CircleRand)
ADDPREPOSTREGVAR(CircleTrans1)
ADDPREPOSTREGVAR(Cubic3D)
ADDPREPOSTREGVAR(CubicLattice3D)
ADDPREPOSTREGVAR(Foci3D)
ADDPREPOSTREGVAR(Ho)
ADDPREPOSTREGVAR(Julia3Dq)
ADDPREPOSTREGVAR(Line)
ADDPREPOSTREGVAR(Loonie2)
ADDPREPOSTREGVAR(Loonie3)
ADDPREPOSTREGVAR(Loonie3D)
ADDPREPOSTREGVAR(Mcarpet)
ADDPREPOSTREGVAR(Waves23D)
ADDPREPOSTREGVAR(Pie3D)
ADDPREPOSTREGVAR(Popcorn23D)
ADDPREPOSTREGVAR(Sinusoidal3D)
ADDPREPOSTREGVAR(Scry3D)
ADDPREPOSTREGVAR(Shredlin)
ADDPREPOSTREGVAR(SplitBrdr)
ADDPREPOSTREGVAR(Wdisc)
ADDPREPOSTREGVAR(Falloff)
ADDPREPOSTREGVAR(Falloff2)
ADDPREPOSTREGVAR(Falloff3)
ADDPREPOSTREGVAR(Xtrb)
ADDPREPOSTREGVAR(Hexaplay3D)
ADDPREPOSTREGVAR(Hexnix3D)
ADDPREPOSTREGVAR(Hexcrop)
ADDPREPOSTREGVAR(Hexes)
ADDPREPOSTREGVAR(Nblur)
ADDPREPOSTREGVAR(Octapol)
ADDPREPOSTREGVAR(Crob)
ADDPREPOSTREGVAR(BubbleT3D)
ADDPREPOSTREGVAR(Synth)
ADDPREPOSTREGVAR(Crackle)
m_Variations.push_back(new PostSmartcropVariation<T>());//Post only
ADDPREPOSTREGVAR(Xerf)
ADDPREPOSTREGVAR(Erf)
ADDPREPOSTREGVAR(W)
ADDPREPOSTREGVAR(X)
ADDPREPOSTREGVAR(Y)
ADDPREPOSTREGVAR(Z)
ADDPREPOSTREGVAR(Splits3D)
ADDPREPOSTREGVAR(Waves2B)
ADDPREPOSTREGVAR(JacCn)
ADDPREPOSTREGVAR(JacDn)
ADDPREPOSTREGVAR(JacSn)
ADDPREPOSTREGVAR(PressureWave)
ADDPREPOSTREGVAR(Gamma)
ADDPREPOSTREGVAR(PRose3D)
ADDPREPOSTREGVAR(LogDB)
//ADDPREPOSTREGVAR(LinearXZ)
//ADDPREPOSTREGVAR(LinearYZ)
//DC are special.
ADDPREPOSTREGVAR(DCBubble)
ADDPREPOSTREGVAR(DCCarpet)
ADDPREPOSTREGVAR(DCCube)
ADDPREPOSTREGVAR(DCCylinder)
ADDPREPOSTREGVAR(DCGridOut)
ADDPREPOSTREGVAR(DCLinear)
ADDPREPOSTREGVAR(DCPerlin)
ADDPREPOSTREGVAR(DCTriangle)
ADDPREPOSTREGVAR(DCZTransl)
for (auto var : m_Variations) var->Precalc(); const vector<Variation<T>*>& AllVars() const;
const vector<Variation<T>*>& RegVars() const;
std::sort(m_Variations.begin(), m_Variations.end(), [&](const Variation<T>* var1, const Variation<T>* var2) { return var1->VariationId() < var2->VariationId(); }); const vector<Variation<T>*>& PreVars() const;
m_RegVariations.reserve(m_Variations.size() / 3); const vector<Variation<T>*>& PostVars() const;
m_PreVariations.reserve(m_Variations.size() / 3);
m_PostVariations.reserve(m_Variations.size() / 3);
m_ParametricVariations.reserve(size_t(m_Variations.size() * .90));//This is a rough guess at how many are parametric.
//Place pointers to variations in vectors specific to their type.
//Many of the elements in m_ParametricVariations will be present in the reg, pre and post vectors.
//Note that these are not new copies, rather just pointers to the original instances in m_Variations.
for (auto var : m_Variations)
{
if (var->VarType() == eVariationType::VARTYPE_REG)
m_RegVariations.push_back(var);
else if (var->VarType() == eVariationType::VARTYPE_PRE)
m_PreVariations.push_back(var);
else if (var->VarType() == eVariationType::VARTYPE_POST)
m_PostVariations.push_back(var);
if (auto parVar = dynamic_cast<ParametricVariation<T>*>(var))
m_ParametricVariations.push_back(parVar);
}
}
/// <summary>
/// Delete each element of the list.
/// </summary>
~VariationList()
{
ClearVec(m_Variations);//No need to delete parametric because they point to the entries in original vector.
}
/// <summary>
/// Get a pointer to the variation at the specified index.
/// </summary>
/// <param name="index">The index in the list to retrieve</param>
/// <returns>A pointer to the variation at the index if in range, else nullptr.</returns>
const Variation<T>* GetVariation(size_t index) const { return index < m_Variations.size() ? m_Variations[index] : nullptr; }
/// <summary>
/// Get a pointer to the variation of a specified type at the specified index.
/// </summary>
/// <param name="index">The index in the list to retrieve</param>
/// <param name="varType">The type of variation to retrieve</param>
/// <returns>A pointer to the variation of the specified type at the index if in range, else nullptr.</returns>
const Variation<T>* GetVariation(size_t index, eVariationType varType) const
{
switch (varType)
{
case eVariationType::VARTYPE_REG:
return index < m_RegVariations.size() ? m_RegVariations[index] : nullptr;
break;
case eVariationType::VARTYPE_PRE:
return index < m_PreVariations.size() ? m_PreVariations[index] : nullptr;
break;
case eVariationType::VARTYPE_POST:
return index < m_PostVariations.size() ? m_PostVariations[index] : nullptr;
break;
default:
return nullptr;
break;
}
}
/// <summary>
/// Gets a pointer to a copy of the variation at the specified index.
/// Optionally specify a weight to assign the new copy.
/// </summary>
/// <param name="index">The index in the list to make a copy of</param>
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
/// <returns>A pointer to the variation at the index if in range, else nullptr.</returns>
Variation<T>* GetVariationCopy(size_t index, T weight = 1) const { return MakeCopyWithWeight(GetVariation(index), weight); }
Variation<T>* GetVariationCopy(size_t index, eVariationType varType, T weight = 1) const { return MakeCopyWithWeight(GetVariation(index, varType), weight); }
/// <summary>
/// Get a pointer to the variation with the specified ID.
/// </summary>
/// <param name="id">The ID to search for</param>
/// <returns>A pointer to the variation if found, else nullptr.</returns>
const Variation<T>* GetVariation(eVariationId id) const
{
for (auto var : m_Variations)
if (var && id == var->VariationId())
return var;
return nullptr;
}
/// <summary>
/// Gets a pointer to a copy of the variation with the specified ID.
/// Optionally specify a weight to assign the new copy.
/// </summary>
/// <param name="id">The id of the variation in the list to make a copy of</param>
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
/// <returns>A pointer to the variation with a matching ID, else nullptr.</returns>
Variation<T>* GetVariationCopy(eVariationId id, T weight = 1) const { return MakeCopyWithWeight(GetVariation(id), weight); }
/// <summary>
/// Get a pointer to the variation with the specified name.
/// </summary>
/// <param name="name">The name to search for</param>
/// <returns>A pointer to the variation if found, else nullptr.</returns>
const Variation<T>* GetVariation(const string& name) const
{
for (auto var : m_Variations)
if (var && !_stricmp(name.c_str(), var->Name().c_str()))
return var;
return nullptr;
}
/// <summary>
/// Gets a pointer to a copy of the variation with the specified name.
/// Optionally specify a weight to assign the new copy.
/// </summary>
/// <param name="name">The name of the variation in the list to make a copy of</param>
/// <param name="weight">The weight to assign the new copy. Default: 1</param>
/// <returns>A pointer to the variation with a matching name, else nullptr.</returns>
Variation<T>* GetVariationCopy(const string& name, T weight = 1) const { return MakeCopyWithWeight(GetVariation(name), weight); }
/// <summary>
/// Get a parametric variation at the specified index.
/// Note this is the index in the parametric variations list, not in the master list.
/// </summary>
/// <param name="index">The index in the parametric variations list to retrieve</param>
/// <returns>The parametric variation at the index specified if in range, else nullptr.</returns>
const ParametricVariation<T>* GetParametricVariation(size_t index) const { return index < m_ParametricVariations.size() ? m_ParametricVariations[index] : nullptr; }
/// <summary>
/// Get a parametric variation with the specified name.
/// </summary>
/// <param name="name">The name of the variation in the parametric variations list to retrieve</param>
/// <returns>The parametric variation with a matching name, else nullptr.</returns>
const ParametricVariation<T>* GetParametricVariation(const string& name) const
{
for (auto var : m_ParametricVariations)
if (var && !_stricmp(name.c_str(), var->Name().c_str()))
return var;
return nullptr;
}
/// <summary>
/// Get the index of the variation with the specified name.
/// </summary>
/// <param name="name">The name of the variation whose index is returned</param>
/// <returns>The index of the variation with the matching name, else -1</returns>
int GetVariationIndex(const string& name)
{
for (size_t i = 0; i < m_Variations.size() && m_Variations[i]; i++)
if (!_stricmp(name.c_str(), m_Variations[i]->Name().c_str()))
return int(i);
return -1;
}
/// <summary>
/// Accessors.
/// </summary>
size_t Size() const { return m_Variations.size(); }
size_t RegSize() const { return m_RegVariations.size(); }
size_t PreSize() const { return m_PreVariations.size(); }
size_t PostSize() const { return m_PostVariations.size(); }
size_t ParametricSize() const { return m_ParametricVariations.size(); }
const vector<Variation<T>*>& AllVars() const { return m_Variations; }
const vector<Variation<T>*>& RegVars() const { return m_RegVariations; }
const vector<Variation<T>*>& PreVars() const { return m_PreVariations; }
const vector<Variation<T>*>& PostVars() const { return m_PostVariations; }
private: private:
/// <summary> VariationList();
/// Make a dyncamically allocated copy of a variation and assign it a specified weight. Variation<T>* MakeCopyWithWeight(const Variation<T>* var, T weight) const;
/// Return a pointer to the new copy.
/// </summary>
/// <param name="var">The variation to copy</param>
/// <param name="weight">The weight to assign it</param>
/// <returns>A pointer to the new variation copy if success, else nullptr.</returns>
Variation<T>* MakeCopyWithWeight(const Variation<T>* var, T weight) const
{
if (var)
{
auto var2 = var->Copy();
var2->m_Weight = weight;
return var2;
}
return nullptr;
}
/// <summary>
/// Assignment operator which does nothing since these are non-copyable.
/// Do not provide a copy constructor and ensure the assignment operator does nothing.
/// </summary>
/// <param name="varList">The VariationList object which won't be copied</param>
/// <returns>Reference to unchanged self</returns>
VariationList<T>& operator = (const VariationList<T>& varList)
{
return *this;
}
vector<Variation<T>*> m_Variations;//A list of pointers to dynamically allocated variation objects. vector<Variation<T>*> m_Variations;//A list of pointers to dynamically allocated variation objects.
vector<Variation<T>*> m_RegVariations; vector<Variation<T>*> m_RegVariations;

View File

@ -1,9 +1,12 @@
#pragma once #pragma once
#include "Variation.h" #include "Variation.h"
#include "Xform.h"
namespace EmberNs namespace EmberNs
{ {
//template <typename T> class Xform;
/// <summary> /// <summary>
/// Linear: /// Linear:
/// nx = tx; /// nx = tx;
@ -12,7 +15,7 @@ namespace EmberNs
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LinearVariation : public Variation<T> class LinearVariation : public Variation<T>
{ {
public: public:
LinearVariation(T weight = 1.0) : Variation<T>("linear", eVariationId::VAR_LINEAR, weight) { } LinearVariation(T weight = 1.0) : Variation<T>("linear", eVariationId::VAR_LINEAR, weight) { }
@ -47,7 +50,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SinusoidalVariation : public Variation<T> class SinusoidalVariation : public Variation<T>
{ {
public: public:
SinusoidalVariation(T weight = 1.0) : Variation<T>("sinusoidal", eVariationId::VAR_SINUSOIDAL, weight) { } SinusoidalVariation(T weight = 1.0) : Variation<T>("sinusoidal", eVariationId::VAR_SINUSOIDAL, weight) { }
@ -83,7 +86,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <class T> template <class T>
class EMBER_API SphericalVariation : public Variation<T> class SphericalVariation : public Variation<T>
{ {
public: public:
SphericalVariation(T weight = 1.0) : Variation<T>("spherical", eVariationId::VAR_SPHERICAL, weight, true) { } SphericalVariation(T weight = 1.0) : Variation<T>("spherical", eVariationId::VAR_SPHERICAL, weight, true) { }
@ -129,7 +132,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SwirlVariation : public Variation<T> class SwirlVariation : public Variation<T>
{ {
public: public:
SwirlVariation(T weight = 1.0) : Variation<T>("swirl", eVariationId::VAR_SWIRL, weight, true) { } SwirlVariation(T weight = 1.0) : Variation<T>("swirl", eVariationId::VAR_SWIRL, weight, true) { }
@ -172,7 +175,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HorseshoeVariation : public Variation<T> class HorseshoeVariation : public Variation<T>
{ {
public: public:
HorseshoeVariation(T weight = 1.0) : Variation<T>("horseshoe", eVariationId::VAR_HORSESHOE, weight, true, true) { } HorseshoeVariation(T weight = 1.0) : Variation<T>("horseshoe", eVariationId::VAR_HORSESHOE, weight, true, true) { }
@ -215,7 +218,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PolarVariation : public Variation<T> class PolarVariation : public Variation<T>
{ {
public: public:
PolarVariation(T weight = 1.0) : Variation<T>("polar", eVariationId::VAR_POLAR, weight, true, true, false, true, false) { } PolarVariation(T weight = 1.0) : Variation<T>("polar", eVariationId::VAR_POLAR, weight, true, true, false, true, false) { }
@ -250,7 +253,7 @@ public:
/// p[1] += weight * cos(a - r) * r; /// p[1] += weight * cos(a - r) * r;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HandkerchiefVariation : public Variation<T> class HandkerchiefVariation : public Variation<T>
{ {
public: public:
HandkerchiefVariation(T weight = 1.0) : Variation<T>("handkerchief", eVariationId::VAR_HANDKERCHIEF, weight, true, true, false, true) { } HandkerchiefVariation(T weight = 1.0) : Variation<T>("handkerchief", eVariationId::VAR_HANDKERCHIEF, weight, true, true, false, true) { }
@ -286,7 +289,7 @@ public:
/// p[1] += weight * cos(a) * -r; /// p[1] += weight * cos(a) * -r;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HeartVariation : public Variation<T> class HeartVariation : public Variation<T>
{ {
public: public:
HeartVariation(T weight = 1.0) : Variation<T>("heart", eVariationId::VAR_HEART, weight, true, true, false, true) { } HeartVariation(T weight = 1.0) : Variation<T>("heart", eVariationId::VAR_HEART, weight, true, true, false, true) { }
@ -328,7 +331,7 @@ public:
/// p[1] += weight * cos(r) * a / M_PI; /// p[1] += weight * cos(r) * a / M_PI;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DiscVariation : public ParametricVariation<T> class DiscVariation : public ParametricVariation<T>
{ {
public: public:
DiscVariation(T weight = 1.0) : ParametricVariation<T>("disc", eVariationId::VAR_DISC, weight, true, true, false, true) DiscVariation(T weight = 1.0) : ParametricVariation<T>("disc", eVariationId::VAR_DISC, weight, true, true, false, true)
@ -390,7 +393,7 @@ private:
/// p[1] += weight * (sin(a) - cos(r)) / r; /// p[1] += weight * (sin(a) - cos(r)) / r;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SpiralVariation : public Variation<T> class SpiralVariation : public Variation<T>
{ {
public: public:
SpiralVariation(T weight = 1.0) : Variation<T>("spiral", eVariationId::VAR_SPIRAL, weight, true, true, true) { } SpiralVariation(T weight = 1.0) : Variation<T>("spiral", eVariationId::VAR_SPIRAL, weight, true, true, true) { }
@ -435,7 +438,7 @@ public:
/// p[1] += weight * cos(a) * r; /// p[1] += weight * cos(a) * r;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HyperbolicVariation : public Variation<T> class HyperbolicVariation : public Variation<T>
{ {
public: public:
HyperbolicVariation(T weight = 1.0) : Variation<T>("hyperbolic", eVariationId::VAR_HYPERBOLIC, weight, true, true, true) { } HyperbolicVariation(T weight = 1.0) : Variation<T>("hyperbolic", eVariationId::VAR_HYPERBOLIC, weight, true, true, true) { }
@ -478,7 +481,7 @@ public:
/// p[1] += weight * cos(a) * sin(r); /// p[1] += weight * cos(a) * sin(r);
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DiamondVariation : public Variation<T> class DiamondVariation : public Variation<T>
{ {
public: public:
DiamondVariation(T weight = 1.0) : Variation<T>("diamond", eVariationId::VAR_DIAMOND, weight, true, true, true) { } DiamondVariation(T weight = 1.0) : Variation<T>("diamond", eVariationId::VAR_DIAMOND, weight, true, true, true) { }
@ -517,7 +520,7 @@ public:
/// p[1] += weight * (m0 - m1); /// p[1] += weight * (m0 - m1);
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ExVariation : public Variation<T> class ExVariation : public Variation<T>
{ {
public: public:
ExVariation(T weight = 1.0) : Variation<T>("ex", eVariationId::VAR_EX, weight, true, true, false, true) { } ExVariation(T weight = 1.0) : Variation<T>("ex", eVariationId::VAR_EX, weight, true, true, false, true) { }
@ -568,7 +571,7 @@ public:
/// p[1] += v * ny; /// p[1] += v * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JuliaVariation : public Variation<T> class JuliaVariation : public Variation<T>
{ {
public: public:
JuliaVariation(T weight = 1.0) : Variation<T>("julia", eVariationId::VAR_JULIA, weight, true, true, false, true) { } JuliaVariation(T weight = 1.0) : Variation<T>("julia", eVariationId::VAR_JULIA, weight, true, true, false, true) { }
@ -617,7 +620,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BentVariation : public Variation<T> class BentVariation : public Variation<T>
{ {
public: public:
BentVariation(T weight = 1.0) : Variation<T>("bent", eVariationId::VAR_BENT, weight) { } BentVariation(T weight = 1.0) : Variation<T>("bent", eVariationId::VAR_BENT, weight) { }
@ -660,7 +663,7 @@ public:
/// Special case here, use parametric for precalcs, but no regular params. /// Special case here, use parametric for precalcs, but no regular params.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WavesVariation : public ParametricVariation<T> class WavesVariation : public ParametricVariation<T>
{ {
public: public:
WavesVariation(T weight = 1.0) : ParametricVariation<T>("waves", eVariationId::VAR_WAVES, weight) WavesVariation(T weight = 1.0) : ParametricVariation<T>("waves", eVariationId::VAR_WAVES, weight)
@ -738,7 +741,7 @@ private:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FisheyeVariation : public Variation<T> class FisheyeVariation : public Variation<T>
{ {
public: public:
FisheyeVariation(T weight = 1.0) : Variation<T>("fisheye", eVariationId::VAR_FISHEYE, weight, true, true) { } FisheyeVariation(T weight = 1.0) : Variation<T>("fisheye", eVariationId::VAR_FISHEYE, weight, true, true) { }
@ -778,7 +781,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PopcornVariation : public Variation<T> class PopcornVariation : public Variation<T>
{ {
public: public:
PopcornVariation(T weight = 1.0) : Variation<T>("popcorn", eVariationId::VAR_POPCORN, weight) { } PopcornVariation(T weight = 1.0) : Variation<T>("popcorn", eVariationId::VAR_POPCORN, weight) { }
@ -824,7 +827,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ExponentialVariation : public Variation<T> class ExponentialVariation : public Variation<T>
{ {
public: public:
ExponentialVariation(T weight = 1.0) : Variation<T>("exponential", eVariationId::VAR_EXPONENTIAL, weight) { } ExponentialVariation(T weight = 1.0) : Variation<T>("exponential", eVariationId::VAR_EXPONENTIAL, weight) { }
@ -868,7 +871,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PowerVariation : public Variation<T> class PowerVariation : public Variation<T>
{ {
public: public:
PowerVariation(T weight = 1.0) : Variation<T>("power", eVariationId::VAR_POWER, weight, true, true, true) { } PowerVariation(T weight = 1.0) : Variation<T>("power", eVariationId::VAR_POWER, weight, true, true, true) { }
@ -906,7 +909,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CosineVariation : public Variation<T> class CosineVariation : public Variation<T>
{ {
public: public:
CosineVariation(T weight = 1.0) : Variation<T>("cosine", eVariationId::VAR_COSINE, weight) { } CosineVariation(T weight = 1.0) : Variation<T>("cosine", eVariationId::VAR_COSINE, weight) { }
@ -953,7 +956,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RingsVariation : public Variation<T> class RingsVariation : public Variation<T>
{ {
public: public:
RingsVariation(T weight = 1.0) : Variation<T>("rings", eVariationId::VAR_RINGS, weight, true, true, true) { } RingsVariation(T weight = 1.0) : Variation<T>("rings", eVariationId::VAR_RINGS, weight, true, true, true) { }
@ -1007,7 +1010,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FanVariation : public Variation<T> class FanVariation : public Variation<T>
{ {
public: public:
FanVariation(T weight = 1.0) : Variation<T>("fan", eVariationId::VAR_FAN, weight, true, true, false, true) { } FanVariation(T weight = 1.0) : Variation<T>("fan", eVariationId::VAR_FAN, weight, true, true, false, true) { }
@ -1063,7 +1066,7 @@ public:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlobVariation : public ParametricVariation<T> class BlobVariation : public ParametricVariation<T>
{ {
public: public:
BlobVariation(T weight = 1.0) : ParametricVariation<T>("blob", eVariationId::VAR_BLOB, weight, true, true, true, true) BlobVariation(T weight = 1.0) : ParametricVariation<T>("blob", eVariationId::VAR_BLOB, weight, true, true, true, true)
@ -1142,7 +1145,7 @@ private:
/// p[1] += weight * (nx2 - ny2); /// p[1] += weight * (nx2 - ny2);
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PdjVariation : public ParametricVariation<T> class PdjVariation : public ParametricVariation<T>
{ {
public: public:
PdjVariation(T weight = 1.0) : ParametricVariation<T>("pdj", eVariationId::VAR_PDJ, weight) PdjVariation(T weight = 1.0) : ParametricVariation<T>("pdj", eVariationId::VAR_PDJ, weight)
@ -1235,7 +1238,7 @@ private:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Fan2Variation : public ParametricVariation<T> class Fan2Variation : public ParametricVariation<T>
{ {
public: public:
Fan2Variation(T weight = 1.0) : ParametricVariation<T>("fan2", eVariationId::VAR_FAN2, weight, true, true, false, true) Fan2Variation(T weight = 1.0) : ParametricVariation<T>("fan2", eVariationId::VAR_FAN2, weight, true, true, false, true)
@ -1329,7 +1332,7 @@ private:
/// p[1] += weight * ny; /// p[1] += weight * ny;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Rings2Variation : public ParametricVariation<T> class Rings2Variation : public ParametricVariation<T>
{ {
public: public:
Rings2Variation(T weight = 1.0) : ParametricVariation<T>("rings2", eVariationId::VAR_RINGS2, weight, true, true, true) Rings2Variation(T weight = 1.0) : ParametricVariation<T>("rings2", eVariationId::VAR_RINGS2, weight, true, true, true)
@ -1398,7 +1401,7 @@ private:
/// p[1] += r * ty; /// p[1] += r * ty;
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EyefishVariation : public Variation<T> class EyefishVariation : public Variation<T>
{ {
public: public:
EyefishVariation(T weight = 1.0) : Variation<T>("eyefish", eVariationId::VAR_EYEFISH, weight, true, true) { } EyefishVariation(T weight = 1.0) : Variation<T>("eyefish", eVariationId::VAR_EYEFISH, weight, true, true) { }
@ -1432,7 +1435,7 @@ public:
/// Bubble. /// Bubble.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BubbleVariation : public Variation<T> class BubbleVariation : public Variation<T>
{ {
public: public:
BubbleVariation(T weight = 1.0) : Variation<T>("bubble", eVariationId::VAR_BUBBLE, weight, true) { } BubbleVariation(T weight = 1.0) : Variation<T>("bubble", eVariationId::VAR_BUBBLE, weight, true) { }
@ -1473,7 +1476,7 @@ public:
/// Cylinder. /// Cylinder.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CylinderVariation : public Variation<T> class CylinderVariation : public Variation<T>
{ {
public: public:
CylinderVariation(T weight = 1.0) : Variation<T>("cylinder", eVariationId::VAR_CYLINDER, weight) { } CylinderVariation(T weight = 1.0) : Variation<T>("cylinder", eVariationId::VAR_CYLINDER, weight) { }
@ -1504,7 +1507,7 @@ public:
/// Perspective. /// Perspective.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PerspectiveVariation : public ParametricVariation<T> class PerspectiveVariation : public ParametricVariation<T>
{ {
public: public:
PerspectiveVariation(T weight = 1.0) : ParametricVariation<T>("perspective", eVariationId::VAR_PERSPECTIVE, weight) PerspectiveVariation(T weight = 1.0) : ParametricVariation<T>("perspective", eVariationId::VAR_PERSPECTIVE, weight)
@ -1584,7 +1587,7 @@ private:
/// Noise. /// Noise.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API NoiseVariation : public Variation<T> class NoiseVariation : public Variation<T>
{ {
public: public:
NoiseVariation(T weight = 1.0) : Variation<T>("noise", eVariationId::VAR_NOISE, weight) { } NoiseVariation(T weight = 1.0) : Variation<T>("noise", eVariationId::VAR_NOISE, weight) { }
@ -1620,7 +1623,7 @@ public:
/// JuliaN. /// JuliaN.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JuliaNGenericVariation : public ParametricVariation<T> class JuliaNGenericVariation : public ParametricVariation<T>
{ {
public: public:
JuliaNGenericVariation(T weight = 1.0) : ParametricVariation<T>("julian", eVariationId::VAR_JULIAN, weight, true, false, false, false, true) JuliaNGenericVariation(T weight = 1.0) : ParametricVariation<T>("julian", eVariationId::VAR_JULIAN, weight, true, false, false, false, true)
@ -1696,7 +1699,7 @@ private:
/// JuliaScope. /// JuliaScope.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JuliaScopeVariation : public ParametricVariation<T> class JuliaScopeVariation : public ParametricVariation<T>
{ {
public: public:
JuliaScopeVariation(T weight = 1.0) : ParametricVariation<T>("juliascope", eVariationId::VAR_JULIASCOPE, weight, true, false, false, false, true) JuliaScopeVariation(T weight = 1.0) : ParametricVariation<T>("juliascope", eVariationId::VAR_JULIASCOPE, weight, true, false, false, false, true)
@ -1810,7 +1813,7 @@ private:
/// If the original pre_blur functionality is needed, use pre_gaussian_blur. /// If the original pre_blur functionality is needed, use pre_gaussian_blur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurVariation : public Variation<T> class BlurVariation : public Variation<T>
{ {
public: public:
BlurVariation(T weight = 1.0) : Variation<T>("blur", eVariationId::VAR_BLUR, weight) { } BlurVariation(T weight = 1.0) : Variation<T>("blur", eVariationId::VAR_BLUR, weight) { }
@ -1846,7 +1849,7 @@ public:
/// Gaussian blur. /// Gaussian blur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GaussianBlurVariation : public Variation<T> class GaussianBlurVariation : public Variation<T>
{ {
public: public:
GaussianBlurVariation(T weight = 1.0) : Variation<T>("gaussian_blur", eVariationId::VAR_GAUSSIAN_BLUR, weight) { } GaussianBlurVariation(T weight = 1.0) : Variation<T>("gaussian_blur", eVariationId::VAR_GAUSSIAN_BLUR, weight) { }
@ -1882,7 +1885,7 @@ public:
/// Radial blur. /// Radial blur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RadialBlurVariation : public ParametricVariation<T> class RadialBlurVariation : public ParametricVariation<T>
{ {
public: public:
RadialBlurVariation(T weight = 1.0) : ParametricVariation<T>("radial_blur", eVariationId::VAR_RADIAL_BLUR, weight, true, true, false, false, true) RadialBlurVariation(T weight = 1.0) : ParametricVariation<T>("radial_blur", eVariationId::VAR_RADIAL_BLUR, weight, true, true, false, false, true)
@ -1958,7 +1961,7 @@ private:
/// Pie. /// Pie.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PieVariation : public ParametricVariation<T> class PieVariation : public ParametricVariation<T>
{ {
public: public:
PieVariation(T weight = 1.0) : ParametricVariation<T>("pie", eVariationId::VAR_PIE, weight) PieVariation(T weight = 1.0) : ParametricVariation<T>("pie", eVariationId::VAR_PIE, weight)
@ -2034,7 +2037,7 @@ private:
/// Ngon. /// Ngon.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API NgonVariation : public ParametricVariation<T> class NgonVariation : public ParametricVariation<T>
{ {
public: public:
NgonVariation(T weight = 1.0) : ParametricVariation<T>("ngon", eVariationId::VAR_NGON, weight, true, false, false, false, true) NgonVariation(T weight = 1.0) : ParametricVariation<T>("ngon", eVariationId::VAR_NGON, weight, true, false, false, false, true)
@ -2145,7 +2148,7 @@ private:
/// curl code. /// curl code.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CurlVariation : public ParametricVariation<T> class CurlVariation : public ParametricVariation<T>
{ {
public: public:
CurlVariation(T weight = 1.0) : ParametricVariation<T>("curl", eVariationId::VAR_CURL, weight) CurlVariation(T weight = 1.0) : ParametricVariation<T>("curl", eVariationId::VAR_CURL, weight)
@ -2222,7 +2225,7 @@ private:
/// Rectangles. /// Rectangles.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RectanglesVariation : public ParametricVariation<T> class RectanglesVariation : public ParametricVariation<T>
{ {
public: public:
RectanglesVariation(T weight = 1.0) : ParametricVariation<T>("rectangles", eVariationId::VAR_RECTANGLES, weight) RectanglesVariation(T weight = 1.0) : ParametricVariation<T>("rectangles", eVariationId::VAR_RECTANGLES, weight)
@ -2295,7 +2298,7 @@ private:
/// Arch. /// Arch.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ArchVariation : public Variation<T> class ArchVariation : public Variation<T>
{ {
public: public:
ArchVariation(T weight = 1.0) : Variation<T>("arch", eVariationId::VAR_ARCH, weight) { } ArchVariation(T weight = 1.0) : Variation<T>("arch", eVariationId::VAR_ARCH, weight) { }
@ -2333,7 +2336,7 @@ public:
/// Tangent. /// Tangent.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TangentVariation : public Variation<T> class TangentVariation : public Variation<T>
{ {
public: public:
TangentVariation(T weight = 1.0) : Variation<T>("tangent", eVariationId::VAR_TANGENT, weight) { } TangentVariation(T weight = 1.0) : Variation<T>("tangent", eVariationId::VAR_TANGENT, weight) { }
@ -2364,7 +2367,7 @@ public:
/// Square. /// Square.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SquareVariation : public Variation<T> class SquareVariation : public Variation<T>
{ {
public: public:
SquareVariation(T weight = 1.0) : Variation<T>("square", eVariationId::VAR_SQUARE, weight) { } SquareVariation(T weight = 1.0) : Variation<T>("square", eVariationId::VAR_SQUARE, weight) { }
@ -2395,7 +2398,7 @@ public:
/// Rays. /// Rays.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RaysVariation : public Variation<T> class RaysVariation : public Variation<T>
{ {
public: public:
RaysVariation(T weight = 1.0) : Variation<T>("rays", eVariationId::VAR_RAYS, weight, true) { } RaysVariation(T weight = 1.0) : Variation<T>("rays", eVariationId::VAR_RAYS, weight, true) { }
@ -2438,7 +2441,7 @@ public:
/// Blade. /// Blade.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BladeVariation : public Variation<T> class BladeVariation : public Variation<T>
{ {
public: public:
BladeVariation(T weight = 1.0) : Variation<T>("blade", eVariationId::VAR_BLADE, weight, true, true) { } BladeVariation(T weight = 1.0) : Variation<T>("blade", eVariationId::VAR_BLADE, weight, true, true) { }
@ -2476,7 +2479,7 @@ public:
/// Secant2. /// Secant2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Secant2Variation : public Variation<T> class Secant2Variation : public Variation<T>
{ {
public: public:
Secant2Variation(T weight = 1.0) : Variation<T>("secant2", eVariationId::VAR_SECANT2, weight, true, true) { } Secant2Variation(T weight = 1.0) : Variation<T>("secant2", eVariationId::VAR_SECANT2, weight, true, true) { }
@ -2524,7 +2527,7 @@ public:
/// TwinTrian. /// TwinTrian.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TwinTrianVariation : public Variation<T> class TwinTrianVariation : public Variation<T>
{ {
public: public:
TwinTrianVariation(T weight = 1.0) : Variation<T>("TwinTrian", eVariationId::VAR_TWINTRIAN, weight, true, true) { } TwinTrianVariation(T weight = 1.0) : Variation<T>("TwinTrian", eVariationId::VAR_TWINTRIAN, weight, true, true) { }
@ -2571,7 +2574,7 @@ public:
/// Cross. /// Cross.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CrossVariation : public Variation<T> class CrossVariation : public Variation<T>
{ {
public: public:
CrossVariation(T weight = 1.0) : Variation<T>("cross", eVariationId::VAR_CROSS, weight) { } CrossVariation(T weight = 1.0) : Variation<T>("cross", eVariationId::VAR_CROSS, weight) { }
@ -2610,7 +2613,7 @@ public:
/// Disc2. /// Disc2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Disc2Variation : public ParametricVariation<T> class Disc2Variation : public ParametricVariation<T>
{ {
public: public:
Disc2Variation(T weight = 1.0) : ParametricVariation<T>("disc2", eVariationId::VAR_DISC2, weight, false, false, false, true) Disc2Variation(T weight = 1.0) : ParametricVariation<T>("disc2", eVariationId::VAR_DISC2, weight, false, false, false, true)
@ -2707,7 +2710,7 @@ private:
/// SuperShape. /// SuperShape.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SuperShapeVariation : public ParametricVariation<T> class SuperShapeVariation : public ParametricVariation<T>
{ {
public: public:
SuperShapeVariation(T weight = 1.0) : ParametricVariation<T>("super_shape", eVariationId::VAR_SUPER_SHAPE, weight, true, true, false, false, true) SuperShapeVariation(T weight = 1.0) : ParametricVariation<T>("super_shape", eVariationId::VAR_SUPER_SHAPE, weight, true, true, false, false, true)
@ -2806,7 +2809,7 @@ private:
/// Flower. /// Flower.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FlowerVariation : public ParametricVariation<T> class FlowerVariation : public ParametricVariation<T>
{ {
public: public:
FlowerVariation(T weight = 1.0) : ParametricVariation<T>("flower", eVariationId::VAR_FLOWER, weight, true, true, false, false, true) FlowerVariation(T weight = 1.0) : ParametricVariation<T>("flower", eVariationId::VAR_FLOWER, weight, true, true, false, false, true)
@ -2868,7 +2871,7 @@ private:
/// Conic. /// Conic.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ConicVariation : public ParametricVariation<T> class ConicVariation : public ParametricVariation<T>
{ {
public: public:
ConicVariation(T weight = 1.0) : ParametricVariation<T>("conic", eVariationId::VAR_CONIC, weight, true, true) ConicVariation(T weight = 1.0) : ParametricVariation<T>("conic", eVariationId::VAR_CONIC, weight, true, true)
@ -2931,7 +2934,7 @@ private:
/// Parabola. /// Parabola.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ParabolaVariation : public ParametricVariation<T> class ParabolaVariation : public ParametricVariation<T>
{ {
public: public:
ParabolaVariation(T weight = 1.0) : ParametricVariation<T>("parabola", eVariationId::VAR_PARABOLA, weight, true, true) ParabolaVariation(T weight = 1.0) : ParametricVariation<T>("parabola", eVariationId::VAR_PARABOLA, weight, true, true)
@ -2993,7 +2996,7 @@ private:
/// Bent2. /// Bent2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Bent2Variation : public ParametricVariation<T> class Bent2Variation : public ParametricVariation<T>
{ {
public: public:
Bent2Variation(T weight = 1.0) : ParametricVariation<T>("bent2", eVariationId::VAR_BENT2, weight) Bent2Variation(T weight = 1.0) : ParametricVariation<T>("bent2", eVariationId::VAR_BENT2, weight)
@ -3078,7 +3081,7 @@ private:
/// Bipolar. /// Bipolar.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BipolarVariation : public ParametricVariation<T> class BipolarVariation : public ParametricVariation<T>
{ {
public: public:
BipolarVariation(T weight = 1.0) : ParametricVariation<T>("bipolar", eVariationId::VAR_BIPOLAR, weight, true) BipolarVariation(T weight = 1.0) : ParametricVariation<T>("bipolar", eVariationId::VAR_BIPOLAR, weight, true)
@ -3228,7 +3231,7 @@ private:
/// Boarders. /// Boarders.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BoardersVariation : public Variation<T> class BoardersVariation : public Variation<T>
{ {
public: public:
BoardersVariation(T weight = 1.0) : Variation<T>("boarders", eVariationId::VAR_BOARDERS, weight) { } BoardersVariation(T weight = 1.0) : Variation<T>("boarders", eVariationId::VAR_BOARDERS, weight) { }
@ -3335,7 +3338,7 @@ public:
/// Butterfly. /// Butterfly.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ButterflyVariation : public Variation<T> class ButterflyVariation : public Variation<T>
{ {
public: public:
ButterflyVariation(T weight = 1.0) : Variation<T>("butterfly", eVariationId::VAR_BUTTERFLY, weight) { } ButterflyVariation(T weight = 1.0) : Variation<T>("butterfly", eVariationId::VAR_BUTTERFLY, weight) { }
@ -3378,7 +3381,7 @@ public:
/// Cell. /// Cell.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CellVariation : public ParametricVariation<T> class CellVariation : public ParametricVariation<T>
{ {
public: public:
CellVariation(T weight = 1.0) : ParametricVariation<T>("cell", eVariationId::VAR_CELL, weight) CellVariation(T weight = 1.0) : ParametricVariation<T>("cell", eVariationId::VAR_CELL, weight)
@ -3509,7 +3512,7 @@ private:
/// Cpow. /// Cpow.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CpowVariation : public ParametricVariation<T> class CpowVariation : public ParametricVariation<T>
{ {
public: public:
CpowVariation(T weight = 1.0) : ParametricVariation<T>("cpow", eVariationId::VAR_CPOW, weight, true, false, false, false, true) CpowVariation(T weight = 1.0) : ParametricVariation<T>("cpow", eVariationId::VAR_CPOW, weight, true, false, false, false, true)
@ -3595,7 +3598,7 @@ private:
/// Curve. /// Curve.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CurveVariation : public ParametricVariation<T> class CurveVariation : public ParametricVariation<T>
{ {
public: public:
CurveVariation(T weight = 1.0) : ParametricVariation<T>("curve", eVariationId::VAR_CURVE, weight) CurveVariation(T weight = 1.0) : ParametricVariation<T>("curve", eVariationId::VAR_CURVE, weight)
@ -3680,7 +3683,7 @@ private:
/// Edisc. /// Edisc.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EdiscVariation : public Variation<T> class EdiscVariation : public Variation<T>
{ {
public: public:
EdiscVariation(T weight = 1.0) : Variation<T>("edisc", eVariationId::VAR_EDISC, weight, true) { } EdiscVariation(T weight = 1.0) : Variation<T>("edisc", eVariationId::VAR_EDISC, weight, true) { }
@ -3741,7 +3744,7 @@ public:
/// Elliptic. /// Elliptic.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EllipticVariation : public ParametricVariation<T> class EllipticVariation : public ParametricVariation<T>
{ {
public: public:
EllipticVariation(T weight = 1.0) : ParametricVariation<T>("elliptic", eVariationId::VAR_ELLIPTIC, weight, true) EllipticVariation(T weight = 1.0) : ParametricVariation<T>("elliptic", eVariationId::VAR_ELLIPTIC, weight, true)
@ -3840,7 +3843,7 @@ private:
/// Escher. /// Escher.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EscherVariation : public ParametricVariation<T> class EscherVariation : public ParametricVariation<T>
{ {
public: public:
EscherVariation(T weight = 1.0) : ParametricVariation<T>("escher", eVariationId::VAR_ESCHER, weight, true, false, false, false, true) EscherVariation(T weight = 1.0) : ParametricVariation<T>("escher", eVariationId::VAR_ESCHER, weight, true, false, false, false, true)
@ -3927,7 +3930,7 @@ private:
/// Foci. /// Foci.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FociVariation : public Variation<T> class FociVariation : public Variation<T>
{ {
public: public:
FociVariation(T weight = 1.0) : Variation<T>("foci", eVariationId::VAR_FOCI, weight) { } FociVariation(T weight = 1.0) : Variation<T>("foci", eVariationId::VAR_FOCI, weight) { }
@ -3976,7 +3979,7 @@ public:
/// LazySusan. /// LazySusan.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LazySusanVariation : public ParametricVariation<T> class LazySusanVariation : public ParametricVariation<T>
{ {
public: public:
LazySusanVariation(T weight = 1.0) : ParametricVariation<T>("lazysusan", eVariationId::VAR_LAZYSUSAN, weight) LazySusanVariation(T weight = 1.0) : ParametricVariation<T>("lazysusan", eVariationId::VAR_LAZYSUSAN, weight)
@ -4094,7 +4097,7 @@ private:
/// Loonie. /// Loonie.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LoonieVariation : public ParametricVariation<T> class LoonieVariation : public ParametricVariation<T>
{ {
public: public:
LoonieVariation(T weight = 1.0) : ParametricVariation<T>("loonie", eVariationId::VAR_LOONIE, weight, true) LoonieVariation(T weight = 1.0) : ParametricVariation<T>("loonie", eVariationId::VAR_LOONIE, weight, true)
@ -4167,7 +4170,7 @@ private:
/// Modulus. /// Modulus.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ModulusVariation : public ParametricVariation<T> class ModulusVariation : public ParametricVariation<T>
{ {
public: public:
ModulusVariation(T weight = 1.0) : ParametricVariation<T>("modulus", eVariationId::VAR_MODULUS, weight) ModulusVariation(T weight = 1.0) : ParametricVariation<T>("modulus", eVariationId::VAR_MODULUS, weight)
@ -4260,7 +4263,7 @@ private:
/// Oscilloscope. /// Oscilloscope.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API OscilloscopeVariation : public ParametricVariation<T> class OscilloscopeVariation : public ParametricVariation<T>
{ {
public: public:
OscilloscopeVariation(T weight = 1.0) : ParametricVariation<T>("oscilloscope", eVariationId::VAR_OSCILLOSCOPE, weight) OscilloscopeVariation(T weight = 1.0) : ParametricVariation<T>("oscilloscope", eVariationId::VAR_OSCILLOSCOPE, weight)
@ -4365,7 +4368,7 @@ private:
/// Polar2. /// Polar2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Polar2Variation : public ParametricVariation<T> class Polar2Variation : public ParametricVariation<T>
{ {
public: public:
Polar2Variation(T weight = 1.0) : ParametricVariation<T>("polar2", eVariationId::VAR_POLAR2, weight, true, false, false, true) Polar2Variation(T weight = 1.0) : ParametricVariation<T>("polar2", eVariationId::VAR_POLAR2, weight, true, false, false, true)
@ -4422,7 +4425,7 @@ private:
/// Popcorn2. /// Popcorn2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Popcorn2Variation : public ParametricVariation<T> class Popcorn2Variation : public ParametricVariation<T>
{ {
public: public:
Popcorn2Variation(T weight = 1.0) : ParametricVariation<T>("popcorn2", eVariationId::VAR_POPCORN2, weight) Popcorn2Variation(T weight = 1.0) : ParametricVariation<T>("popcorn2", eVariationId::VAR_POPCORN2, weight)
@ -4486,7 +4489,7 @@ private:
/// should be ok. /// should be ok.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ScryVariation : public ParametricVariation<T> class ScryVariation : public ParametricVariation<T>
{ {
public: public:
ScryVariation(T weight = 1.0) : ParametricVariation<T>("scry", eVariationId::VAR_SCRY, weight, true, true) ScryVariation(T weight = 1.0) : ParametricVariation<T>("scry", eVariationId::VAR_SCRY, weight, true, true)
@ -4549,7 +4552,7 @@ private:
/// Separation. /// Separation.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SeparationVariation : public ParametricVariation<T> class SeparationVariation : public ParametricVariation<T>
{ {
public: public:
SeparationVariation(T weight = 1.0) : ParametricVariation<T>("separation", eVariationId::VAR_SEPARATION, weight) SeparationVariation(T weight = 1.0) : ParametricVariation<T>("separation", eVariationId::VAR_SEPARATION, weight)
@ -4642,7 +4645,7 @@ private:
/// Split. /// Split.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SplitVariation : public ParametricVariation<T> class SplitVariation : public ParametricVariation<T>
{ {
public: public:
SplitVariation(T weight = 1.0) : ParametricVariation<T>("split", eVariationId::VAR_SPLIT, weight) SplitVariation(T weight = 1.0) : ParametricVariation<T>("split", eVariationId::VAR_SPLIT, weight)
@ -4727,7 +4730,7 @@ private:
/// Splits. /// Splits.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SplitsVariation : public ParametricVariation<T> class SplitsVariation : public ParametricVariation<T>
{ {
public: public:
SplitsVariation(T weight = 1.0) : ParametricVariation<T>("splits", eVariationId::VAR_SPLITS, weight) SplitsVariation(T weight = 1.0) : ParametricVariation<T>("splits", eVariationId::VAR_SPLITS, weight)
@ -4800,7 +4803,7 @@ private:
/// Stripes. /// Stripes.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API StripesVariation : public ParametricVariation<T> class StripesVariation : public ParametricVariation<T>
{ {
public: public:
StripesVariation(T weight = 1.0) : ParametricVariation<T>("stripes", eVariationId::VAR_STRIPES, weight) StripesVariation(T weight = 1.0) : ParametricVariation<T>("stripes", eVariationId::VAR_STRIPES, weight)
@ -4862,7 +4865,7 @@ private:
/// Wedge. /// Wedge.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WedgeVariation : public ParametricVariation<T> class WedgeVariation : public ParametricVariation<T>
{ {
public: public:
WedgeVariation(T weight = 1.0) : ParametricVariation<T>("wedge", eVariationId::VAR_WEDGE, weight, true, true, false, false, true) WedgeVariation(T weight = 1.0) : ParametricVariation<T>("wedge", eVariationId::VAR_WEDGE, weight, true, true, false, false, true)
@ -4946,7 +4949,7 @@ private:
/// Wedge julia. /// Wedge julia.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WedgeJuliaVariation : public ParametricVariation<T> class WedgeJuliaVariation : public ParametricVariation<T>
{ {
public: public:
WedgeJuliaVariation(T weight = 1.0) : ParametricVariation<T>("wedge_julia", eVariationId::VAR_WEDGE_JULIA, weight, true, false, false, false, true) WedgeJuliaVariation(T weight = 1.0) : ParametricVariation<T>("wedge_julia", eVariationId::VAR_WEDGE_JULIA, weight, true, false, false, false, true)
@ -5038,7 +5041,7 @@ private:
/// Wedge sph. /// Wedge sph.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WedgeSphVariation : public ParametricVariation<T> class WedgeSphVariation : public ParametricVariation<T>
{ {
public: public:
WedgeSphVariation(T weight = 1.0) : ParametricVariation<T>("wedge_sph", eVariationId::VAR_WEDGE_SPH, weight, true, true, false, false, true) WedgeSphVariation(T weight = 1.0) : ParametricVariation<T>("wedge_sph", eVariationId::VAR_WEDGE_SPH, weight, true, true, false, false, true)
@ -5131,7 +5134,7 @@ private:
/// Whorl. /// Whorl.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WhorlVariation : public ParametricVariation<T> class WhorlVariation : public ParametricVariation<T>
{ {
public: public:
WhorlVariation(T weight = 1.0) : ParametricVariation<T>("whorl", eVariationId::VAR_WHORL, weight, true, true, false, false, true) WhorlVariation(T weight = 1.0) : ParametricVariation<T>("whorl", eVariationId::VAR_WHORL, weight, true, true, false, false, true)
@ -5203,7 +5206,7 @@ private:
/// Waves. /// Waves.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Waves2Variation : public ParametricVariation<T> class Waves2Variation : public ParametricVariation<T>
{ {
public: public:
Waves2Variation(T weight = 1.0) : ParametricVariation<T>("waves2", eVariationId::VAR_WAVES2, weight, true, true) Waves2Variation(T weight = 1.0) : ParametricVariation<T>("waves2", eVariationId::VAR_WAVES2, weight, true, true)
@ -5276,7 +5279,7 @@ private:
/// Exp. /// Exp.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ExpVariation : public Variation<T> class ExpVariation : public Variation<T>
{ {
public: public:
ExpVariation(T weight = 1.0) : Variation<T>("exp", eVariationId::VAR_EXP, weight) { } ExpVariation(T weight = 1.0) : Variation<T>("exp", eVariationId::VAR_EXP, weight) { }
@ -5310,7 +5313,7 @@ public:
/// Log. /// Log.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LogVariation : public ParametricVariation<T> class LogVariation : public ParametricVariation<T>
{ {
public: public:
LogVariation(T weight = 1.0) : ParametricVariation<T>("log", eVariationId::VAR_LOG, weight, true, false, false, false, true) LogVariation(T weight = 1.0) : ParametricVariation<T>("log", eVariationId::VAR_LOG, weight, true, false, false, false, true)
@ -5366,7 +5369,7 @@ private:
/// Sine. /// Sine.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SinVariation : public Variation<T> class SinVariation : public Variation<T>
{ {
public: public:
SinVariation(T weight = 1.0) : Variation<T>("sin", eVariationId::VAR_SIN, weight) { } SinVariation(T weight = 1.0) : Variation<T>("sin", eVariationId::VAR_SIN, weight) { }
@ -5397,7 +5400,7 @@ public:
/// Cosine. /// Cosine.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CosVariation : public Variation<T> class CosVariation : public Variation<T>
{ {
public: public:
CosVariation(T weight = 1.0) : Variation<T>("cos", eVariationId::VAR_COS, weight) { } CosVariation(T weight = 1.0) : Variation<T>("cos", eVariationId::VAR_COS, weight) { }
@ -5429,7 +5432,7 @@ public:
/// Tangent. /// Tangent.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TanVariation : public Variation<T> class TanVariation : public Variation<T>
{ {
public: public:
TanVariation(T weight = 1.0) : Variation<T>("tan", eVariationId::VAR_TAN, weight) { } TanVariation(T weight = 1.0) : Variation<T>("tan", eVariationId::VAR_TAN, weight) { }
@ -5471,7 +5474,7 @@ public:
/// Sec. /// Sec.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SecVariation : public Variation<T> class SecVariation : public Variation<T>
{ {
public: public:
SecVariation(T weight = 1.0) : Variation<T>("sec", eVariationId::VAR_SEC, weight) { } SecVariation(T weight = 1.0) : Variation<T>("sec", eVariationId::VAR_SEC, weight) { }
@ -5513,7 +5516,7 @@ public:
/// Cosecant. /// Cosecant.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CscVariation : public Variation<T> class CscVariation : public Variation<T>
{ {
public: public:
CscVariation(T weight = 1.0) : Variation<T>("csc", eVariationId::VAR_CSC, weight) { } CscVariation(T weight = 1.0) : Variation<T>("csc", eVariationId::VAR_CSC, weight) { }
@ -5555,7 +5558,7 @@ public:
/// Cotangent. /// Cotangent.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CotVariation : public Variation<T> class CotVariation : public Variation<T>
{ {
public: public:
CotVariation(T weight = 1.0) : Variation<T>("cot", eVariationId::VAR_COT, weight) { } CotVariation(T weight = 1.0) : Variation<T>("cot", eVariationId::VAR_COT, weight) { }
@ -5597,7 +5600,7 @@ public:
/// Sinh. /// Sinh.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SinhVariation : public Variation<T> class SinhVariation : public Variation<T>
{ {
public: public:
SinhVariation(T weight = 1.0) : Variation<T>("sinh", eVariationId::VAR_SINH, weight) { } SinhVariation(T weight = 1.0) : Variation<T>("sinh", eVariationId::VAR_SINH, weight) { }
@ -5637,7 +5640,7 @@ public:
/// Cosh. /// Cosh.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CoshVariation : public Variation<T> class CoshVariation : public Variation<T>
{ {
public: public:
CoshVariation(T weight = 1.0) : Variation<T>("cosh", eVariationId::VAR_COSH, weight) { } CoshVariation(T weight = 1.0) : Variation<T>("cosh", eVariationId::VAR_COSH, weight) { }
@ -5677,7 +5680,7 @@ public:
/// Tanh. /// Tanh.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TanhVariation : public Variation<T> class TanhVariation : public Variation<T>
{ {
public: public:
TanhVariation(T weight = 1.0) : Variation<T>("tanh", eVariationId::VAR_TANH, weight) { } TanhVariation(T weight = 1.0) : Variation<T>("tanh", eVariationId::VAR_TANH, weight) { }
@ -5719,7 +5722,7 @@ public:
/// Sech /// Sech
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SechVariation : public Variation<T> class SechVariation : public Variation<T>
{ {
public: public:
SechVariation(T weight = 1.0) : Variation<T>("sech", eVariationId::VAR_SECH, weight) { } SechVariation(T weight = 1.0) : Variation<T>("sech", eVariationId::VAR_SECH, weight) { }
@ -5761,7 +5764,7 @@ public:
/// Csch. /// Csch.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CschVariation : public Variation<T> class CschVariation : public Variation<T>
{ {
public: public:
CschVariation(T weight = 1.0) : Variation<T>("csch", eVariationId::VAR_CSCH, weight) { } CschVariation(T weight = 1.0) : Variation<T>("csch", eVariationId::VAR_CSCH, weight) { }
@ -5803,7 +5806,7 @@ public:
/// Coth. /// Coth.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CothVariation : public Variation<T> class CothVariation : public Variation<T>
{ {
public: public:
CothVariation(T weight = 1.0) : Variation<T>("coth", eVariationId::VAR_COTH, weight) { } CothVariation(T weight = 1.0) : Variation<T>("coth", eVariationId::VAR_COTH, weight) { }
@ -5845,7 +5848,7 @@ public:
/// Auger. /// Auger.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API AugerVariation : public ParametricVariation<T> class AugerVariation : public ParametricVariation<T>
{ {
public: public:
AugerVariation(T weight = 1.0) : ParametricVariation<T>("auger", eVariationId::VAR_AUGER, weight) AugerVariation(T weight = 1.0) : ParametricVariation<T>("auger", eVariationId::VAR_AUGER, weight)
@ -5919,7 +5922,7 @@ private:
/// Flux. /// Flux.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FluxVariation : public ParametricVariation<T> class FluxVariation : public ParametricVariation<T>
{ {
public: public:
FluxVariation(T weight = 1.0) : ParametricVariation<T>("flux", eVariationId::VAR_FLUX, weight) FluxVariation(T weight = 1.0) : ParametricVariation<T>("flux", eVariationId::VAR_FLUX, weight)

View File

@ -8,7 +8,7 @@ namespace EmberNs
/// Hemisphere. /// Hemisphere.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HemisphereVariation : public Variation<T> class HemisphereVariation : public Variation<T>
{ {
public: public:
HemisphereVariation(T weight = 1.0) : Variation<T>("hemisphere", eVariationId::VAR_HEMISPHERE, weight, true) { } HemisphereVariation(T weight = 1.0) : Variation<T>("hemisphere", eVariationId::VAR_HEMISPHERE, weight, true) { }
@ -42,7 +42,7 @@ public:
/// Epispiral. /// Epispiral.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EpispiralVariation : public ParametricVariation<T> class EpispiralVariation : public ParametricVariation<T>
{ {
public: public:
EpispiralVariation(T weight = 1.0) : ParametricVariation<T>("epispiral", eVariationId::VAR_EPISPIRAL, weight, false, false, false, false, true) EpispiralVariation(T weight = 1.0) : ParametricVariation<T>("epispiral", eVariationId::VAR_EPISPIRAL, weight, false, false, false, false, true)
@ -120,7 +120,7 @@ private:
/// Note, this is the same as bwraps2. /// Note, this is the same as bwraps2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BwrapsVariation : public ParametricVariation<T> class BwrapsVariation : public ParametricVariation<T>
{ {
public: public:
BwrapsVariation(T weight = 1.0) : ParametricVariation<T>("bwraps", eVariationId::VAR_BWRAPS, weight) BwrapsVariation(T weight = 1.0) : ParametricVariation<T>("bwraps", eVariationId::VAR_BWRAPS, weight)
@ -279,7 +279,7 @@ private:
/// BlurCircle. /// BlurCircle.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurCircleVariation : public Variation<T> class BlurCircleVariation : public Variation<T>
{ {
public: public:
BlurCircleVariation(T weight = 1.0) : Variation<T>("blur_circle", eVariationId::VAR_BLUR_CIRCLE, weight) { } BlurCircleVariation(T weight = 1.0) : Variation<T>("blur_circle", eVariationId::VAR_BLUR_CIRCLE, weight) { }
@ -383,7 +383,7 @@ public:
/// BlurZoom. /// BlurZoom.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurZoomVariation : public ParametricVariation<T> class BlurZoomVariation : public ParametricVariation<T>
{ {
public: public:
BlurZoomVariation(T weight = 1.0) : ParametricVariation<T>("blur_zoom", eVariationId::VAR_BLUR_ZOOM, weight) BlurZoomVariation(T weight = 1.0) : ParametricVariation<T>("blur_zoom", eVariationId::VAR_BLUR_ZOOM, weight)
@ -440,7 +440,7 @@ private:
/// BlurPixelize. /// BlurPixelize.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurPixelizeVariation : public ParametricVariation<T> class BlurPixelizeVariation : public ParametricVariation<T>
{ {
public: public:
BlurPixelizeVariation(T weight = 1.0) : ParametricVariation<T>("blur_pixelize", eVariationId::VAR_BLUR_PIXELIZE, weight) BlurPixelizeVariation(T weight = 1.0) : ParametricVariation<T>("blur_pixelize", eVariationId::VAR_BLUR_PIXELIZE, weight)
@ -508,7 +508,7 @@ private:
/// Crop. /// Crop.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CropVariation : public ParametricVariation<T> class CropVariation : public ParametricVariation<T>
{ {
public: public:
CropVariation(T weight = 1.0) : ParametricVariation<T>("crop", eVariationId::VAR_CROP, weight) CropVariation(T weight = 1.0) : ParametricVariation<T>("crop", eVariationId::VAR_CROP, weight)
@ -659,7 +659,7 @@ private:
/// BCircle. /// BCircle.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BCircleVariation : public ParametricVariation<T> class BCircleVariation : public ParametricVariation<T>
{ {
public: public:
BCircleVariation(T weight = 1.0) : ParametricVariation<T>("bcircle", eVariationId::VAR_BCIRCLE, weight) BCircleVariation(T weight = 1.0) : ParametricVariation<T>("bcircle", eVariationId::VAR_BCIRCLE, weight)
@ -765,7 +765,7 @@ private:
/// BlurLinear. /// BlurLinear.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurLinearVariation : public ParametricVariation<T> class BlurLinearVariation : public ParametricVariation<T>
{ {
public: public:
BlurLinearVariation(T weight = 1.0) : ParametricVariation<T>("blur_linear", eVariationId::VAR_BLUR_LINEAR, weight) BlurLinearVariation(T weight = 1.0) : ParametricVariation<T>("blur_linear", eVariationId::VAR_BLUR_LINEAR, weight)
@ -830,7 +830,7 @@ private:
/// BlurSquare. /// BlurSquare.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurSquareVariation : public ParametricVariation<T> class BlurSquareVariation : public ParametricVariation<T>
{ {
public: public:
BlurSquareVariation(T weight = 1.0) : ParametricVariation<T>("blur_square", eVariationId::VAR_BLUR_SQUARE, weight) BlurSquareVariation(T weight = 1.0) : ParametricVariation<T>("blur_square", eVariationId::VAR_BLUR_SQUARE, weight)
@ -884,7 +884,7 @@ private:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FlattenVariation : public Variation<T> class FlattenVariation : public Variation<T>
{ {
public: public:
FlattenVariation(T weight = 1.0) : Variation<T>("flatten", eVariationId::VAR_FLATTEN, weight) { } FlattenVariation(T weight = 1.0) : Variation<T>("flatten", eVariationId::VAR_FLATTEN, weight) { }
@ -937,7 +937,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ZblurVariation : public Variation<T> class ZblurVariation : public Variation<T>
{ {
public: public:
ZblurVariation(T weight = 1.0) : Variation<T>("zblur", eVariationId::VAR_ZBLUR, weight) { } ZblurVariation(T weight = 1.0) : Variation<T>("zblur", eVariationId::VAR_ZBLUR, weight) { }
@ -967,7 +967,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ZScaleVariation : public Variation<T> class ZScaleVariation : public Variation<T>
{ {
public: public:
ZScaleVariation(T weight = 1.0) : Variation<T>("zscale", eVariationId::VAR_ZSCALE, weight) { } ZScaleVariation(T weight = 1.0) : Variation<T>("zscale", eVariationId::VAR_ZSCALE, weight) { }
@ -997,7 +997,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ZTranslateVariation : public Variation<T> class ZTranslateVariation : public Variation<T>
{ {
public: public:
ZTranslateVariation(T weight = 1.0) : Variation<T>("ztranslate", eVariationId::VAR_ZTRANSLATE, weight) { } ZTranslateVariation(T weight = 1.0) : Variation<T>("ztranslate", eVariationId::VAR_ZTRANSLATE, weight) { }
@ -1027,7 +1027,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ZConeVariation : public Variation<T> class ZConeVariation : public Variation<T>
{ {
public: public:
ZConeVariation(T weight = 1.0) : Variation<T>("zcone", eVariationId::VAR_ZCONE, weight, true, true) { } ZConeVariation(T weight = 1.0) : Variation<T>("zcone", eVariationId::VAR_ZCONE, weight, true, true) { }
@ -1075,7 +1075,7 @@ public:
/// Blur3D. /// Blur3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Blur3DVariation : public Variation<T> class Blur3DVariation : public Variation<T>
{ {
public: public:
Blur3DVariation(T weight = 1.0) : Variation<T>("blur3D", eVariationId::VAR_BLUR3D, weight) { } Blur3DVariation(T weight = 1.0) : Variation<T>("blur3D", eVariationId::VAR_BLUR3D, weight) { }
@ -1121,7 +1121,7 @@ public:
/// Spherical3D. /// Spherical3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Spherical3DVariation : public Variation<T> class Spherical3DVariation : public Variation<T>
{ {
public: public:
Spherical3DVariation(T weight = 1.0) : Variation<T>("Spherical3D", eVariationId::VAR_SPHERICAL3D, weight, true) { } Spherical3DVariation(T weight = 1.0) : Variation<T>("Spherical3D", eVariationId::VAR_SPHERICAL3D, weight, true) { }
@ -1160,7 +1160,7 @@ public:
/// Curl3D. /// Curl3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Curl3DVariation : public ParametricVariation<T> class Curl3DVariation : public ParametricVariation<T>
{ {
public: public:
Curl3DVariation(T weight = 1.0) : ParametricVariation<T>("curl3D", eVariationId::VAR_CURL3D, weight, true) Curl3DVariation(T weight = 1.0) : ParametricVariation<T>("curl3D", eVariationId::VAR_CURL3D, weight, true)
@ -1244,7 +1244,7 @@ private:
/// Disc3D. /// Disc3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Disc3DVariation : public ParametricVariation<T> class Disc3DVariation : public ParametricVariation<T>
{ {
public: public:
Disc3DVariation(T weight = 1.0) : ParametricVariation<T>("disc3d", eVariationId::VAR_DISC3D, weight, true, true, false, true, false) Disc3DVariation(T weight = 1.0) : ParametricVariation<T>("disc3d", eVariationId::VAR_DISC3D, weight, true, true, false, true, false)
@ -1308,7 +1308,7 @@ private:
/// Boarders2. /// Boarders2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Boarders2Variation : public ParametricVariation<T> class Boarders2Variation : public ParametricVariation<T>
{ {
public: public:
Boarders2Variation(T weight = 1.0) : ParametricVariation<T>("boarders2", eVariationId::VAR_BOARDERS2, weight) Boarders2Variation(T weight = 1.0) : ParametricVariation<T>("boarders2", eVariationId::VAR_BOARDERS2, weight)
@ -1457,7 +1457,7 @@ private:
/// Cardioid. /// Cardioid.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CardioidVariation : public ParametricVariation<T> class CardioidVariation : public ParametricVariation<T>
{ {
public: public:
CardioidVariation(T weight = 1.0) : ParametricVariation<T>("cardioid", eVariationId::VAR_CARDIOID, weight, true, true, true, false, true) CardioidVariation(T weight = 1.0) : ParametricVariation<T>("cardioid", eVariationId::VAR_CARDIOID, weight, true, true, true, false, true)
@ -1508,7 +1508,7 @@ private:
/// Checks. /// Checks.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ChecksVariation : public ParametricVariation<T> class ChecksVariation : public ParametricVariation<T>
{ {
public: public:
ChecksVariation(T weight = 1.0) : ParametricVariation<T>("checks", eVariationId::VAR_CHECKS, weight) ChecksVariation(T weight = 1.0) : ParametricVariation<T>("checks", eVariationId::VAR_CHECKS, weight)
@ -1627,7 +1627,7 @@ private:
/// Circlize. /// Circlize.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CirclizeVariation : public ParametricVariation<T> class CirclizeVariation : public ParametricVariation<T>
{ {
public: public:
CirclizeVariation(T weight = 1.0) : ParametricVariation<T>("circlize", eVariationId::VAR_CIRCLIZE, weight) CirclizeVariation(T weight = 1.0) : ParametricVariation<T>("circlize", eVariationId::VAR_CIRCLIZE, weight)
@ -1737,7 +1737,7 @@ private:
/// Circlize2. /// Circlize2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Circlize2Variation : public ParametricVariation<T> class Circlize2Variation : public ParametricVariation<T>
{ {
public: public:
Circlize2Variation(T weight = 1.0) : ParametricVariation<T>("circlize2", eVariationId::VAR_CIRCLIZE2, weight) Circlize2Variation(T weight = 1.0) : ParametricVariation<T>("circlize2", eVariationId::VAR_CIRCLIZE2, weight)
@ -1838,7 +1838,7 @@ private:
/// CosWrap. /// CosWrap.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CosWrapVariation : public ParametricVariation<T> class CosWrapVariation : public ParametricVariation<T>
{ {
public: public:
CosWrapVariation(T weight = 1.0) : ParametricVariation<T>("coswrap", eVariationId::VAR_COS_WRAP, weight) CosWrapVariation(T weight = 1.0) : ParametricVariation<T>("coswrap", eVariationId::VAR_COS_WRAP, weight)
@ -1947,7 +1947,7 @@ private:
/// that precalc variable omitted. /// that precalc variable omitted.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DeltaAVariation : public Variation<T> class DeltaAVariation : public Variation<T>
{ {
public: public:
DeltaAVariation(T weight = 1.0) : Variation<T>("deltaa", eVariationId::VAR_DELTA_A, weight) { } DeltaAVariation(T weight = 1.0) : Variation<T>("deltaa", eVariationId::VAR_DELTA_A, weight) { }
@ -1987,7 +1987,7 @@ public:
/// Expo. /// Expo.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ExpoVariation : public ParametricVariation<T> class ExpoVariation : public ParametricVariation<T>
{ {
public: public:
ExpoVariation(T weight = 1.0) : ParametricVariation<T>("expo", eVariationId::VAR_EXPO, weight) ExpoVariation(T weight = 1.0) : ParametricVariation<T>("expo", eVariationId::VAR_EXPO, weight)
@ -2059,7 +2059,7 @@ private:
/// Extrude. /// Extrude.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ExtrudeVariation : public ParametricVariation<T> class ExtrudeVariation : public ParametricVariation<T>
{ {
public: public:
ExtrudeVariation(T weight = 1.0) : ParametricVariation<T>("extrude", eVariationId::VAR_EXTRUDE, weight) ExtrudeVariation(T weight = 1.0) : ParametricVariation<T>("extrude", eVariationId::VAR_EXTRUDE, weight)
@ -2143,7 +2143,7 @@ private:
/// fdisc. /// fdisc.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FDiscVariation : public Variation<T> class FDiscVariation : public Variation<T>
{ {
public: public:
FDiscVariation(T weight = 1.0) : Variation<T>("fdisc", eVariationId::VAR_FDISC, weight, true, true, false, false, true) { } FDiscVariation(T weight = 1.0) : Variation<T>("fdisc", eVariationId::VAR_FDISC, weight, true, true, false, false, true) { }
@ -2183,7 +2183,7 @@ public:
/// Fibonacci. /// Fibonacci.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FibonacciVariation : public ParametricVariation<T> class FibonacciVariation : public ParametricVariation<T>
{ {
public: public:
FibonacciVariation(T weight = 1.0) : ParametricVariation<T>("fibonacci", eVariationId::VAR_FIBONACCI, weight) FibonacciVariation(T weight = 1.0) : ParametricVariation<T>("fibonacci", eVariationId::VAR_FIBONACCI, weight)
@ -2256,7 +2256,7 @@ private:
/// Fibonacci2. /// Fibonacci2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Fibonacci2Variation : public ParametricVariation<T> class Fibonacci2Variation : public ParametricVariation<T>
{ {
public: public:
Fibonacci2Variation(T weight = 1.0) : ParametricVariation<T>("fibonacci2", eVariationId::VAR_FIBONACCI2, weight) Fibonacci2Variation(T weight = 1.0) : ParametricVariation<T>("fibonacci2", eVariationId::VAR_FIBONACCI2, weight)
@ -2335,7 +2335,7 @@ private:
/// Glynnia. /// Glynnia.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GlynniaVariation : public ParametricVariation<T> class GlynniaVariation : public ParametricVariation<T>
{ {
public: public:
GlynniaVariation(T weight = 1.0) : ParametricVariation<T>("glynnia", eVariationId::VAR_GLYNNIA, weight, true, true) GlynniaVariation(T weight = 1.0) : ParametricVariation<T>("glynnia", eVariationId::VAR_GLYNNIA, weight, true, true)
@ -2454,7 +2454,7 @@ private:
/// GridOut. /// GridOut.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GridOutVariation : public Variation<T> class GridOutVariation : public Variation<T>
{ {
public: public:
GridOutVariation(T weight = 1.0) : Variation<T>("gridout", eVariationId::VAR_GRIDOUT, weight) { } GridOutVariation(T weight = 1.0) : Variation<T>("gridout", eVariationId::VAR_GRIDOUT, weight) { }
@ -2610,7 +2610,7 @@ public:
/// Hole. /// Hole.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HoleVariation : public ParametricVariation<T> class HoleVariation : public ParametricVariation<T>
{ {
public: public:
HoleVariation(T weight = 1.0) : ParametricVariation<T>("hole", eVariationId::VAR_HOLE, weight, true, true, true, false, true) HoleVariation(T weight = 1.0) : ParametricVariation<T>("hole", eVariationId::VAR_HOLE, weight, true, true, true, false, true)
@ -2675,7 +2675,7 @@ private:
/// Hypertile. /// Hypertile.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HypertileVariation : public ParametricVariation<T> class HypertileVariation : public ParametricVariation<T>
{ {
public: public:
HypertileVariation(T weight = 1.0) : ParametricVariation<T>("hypertile", eVariationId::VAR_HYPERTILE, weight) HypertileVariation(T weight = 1.0) : ParametricVariation<T>("hypertile", eVariationId::VAR_HYPERTILE, weight)
@ -2762,7 +2762,7 @@ private:
/// Hypertile1. /// Hypertile1.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hypertile1Variation : public ParametricVariation<T> class Hypertile1Variation : public ParametricVariation<T>
{ {
public: public:
Hypertile1Variation(T weight = 1.0) : ParametricVariation<T>("hypertile1", eVariationId::VAR_HYPERTILE1, weight) Hypertile1Variation(T weight = 1.0) : ParametricVariation<T>("hypertile1", eVariationId::VAR_HYPERTILE1, weight)
@ -2853,7 +2853,7 @@ private:
/// Hypertile2. /// Hypertile2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hypertile2Variation : public ParametricVariation<T> class Hypertile2Variation : public ParametricVariation<T>
{ {
public: public:
Hypertile2Variation(T weight = 1.0) : ParametricVariation<T>("hypertile2", eVariationId::VAR_HYPERTILE2, weight) Hypertile2Variation(T weight = 1.0) : ParametricVariation<T>("hypertile2", eVariationId::VAR_HYPERTILE2, weight)
@ -2944,7 +2944,7 @@ private:
/// Hypertile3D. /// Hypertile3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hypertile3DVariation : public ParametricVariation<T> class Hypertile3DVariation : public ParametricVariation<T>
{ {
public: public:
Hypertile3DVariation(T weight = 1.0) : ParametricVariation<T>("hypertile3D", eVariationId::VAR_HYPERTILE3D, weight, true) Hypertile3DVariation(T weight = 1.0) : ParametricVariation<T>("hypertile3D", eVariationId::VAR_HYPERTILE3D, weight, true)
@ -3059,7 +3059,7 @@ private:
/// Hypertile3D1. /// Hypertile3D1.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hypertile3D1Variation : public ParametricVariation<T> class Hypertile3D1Variation : public ParametricVariation<T>
{ {
public: public:
Hypertile3D1Variation(T weight = 1.0) : ParametricVariation<T>("hypertile3D1", eVariationId::VAR_HYPERTILE3D1, weight, true) Hypertile3D1Variation(T weight = 1.0) : ParametricVariation<T>("hypertile3D1", eVariationId::VAR_HYPERTILE3D1, weight, true)
@ -3158,7 +3158,7 @@ private:
/// Hypertile3D2. /// Hypertile3D2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hypertile3D2Variation : public ParametricVariation<T> class Hypertile3D2Variation : public ParametricVariation<T>
{ {
public: public:
Hypertile3D2Variation(T weight = 1.0) : ParametricVariation<T>("hypertile3D2", eVariationId::VAR_HYPERTILE3D2, weight, true) Hypertile3D2Variation(T weight = 1.0) : ParametricVariation<T>("hypertile3D2", eVariationId::VAR_HYPERTILE3D2, weight, true)
@ -3267,7 +3267,7 @@ private:
/// IDisc. /// IDisc.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API IDiscVariation : public ParametricVariation<T> class IDiscVariation : public ParametricVariation<T>
{ {
public: public:
IDiscVariation(T weight = 1.0) : ParametricVariation<T>("idisc", eVariationId::VAR_IDISC, weight, true, true, false, false, true) IDiscVariation(T weight = 1.0) : ParametricVariation<T>("idisc", eVariationId::VAR_IDISC, weight, true, true, false, false, true)
@ -3329,7 +3329,7 @@ private:
/// Julian2. /// Julian2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Julian2Variation : public ParametricVariation<T> class Julian2Variation : public ParametricVariation<T>
{ {
public: public:
Julian2Variation(T weight = 1.0) : ParametricVariation<T>("julian2", eVariationId::VAR_JULIAN2, weight) Julian2Variation(T weight = 1.0) : ParametricVariation<T>("julian2", eVariationId::VAR_JULIAN2, weight)
@ -3426,7 +3426,7 @@ private:
/// JuliaQ. /// JuliaQ.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JuliaQVariation : public ParametricVariation<T> class JuliaQVariation : public ParametricVariation<T>
{ {
public: public:
JuliaQVariation(T weight = 1.0) : ParametricVariation<T>("juliaq", eVariationId::VAR_JULIAQ, weight, true, false, false, false, true) JuliaQVariation(T weight = 1.0) : ParametricVariation<T>("juliaq", eVariationId::VAR_JULIAQ, weight, true, false, false, false, true)
@ -3502,7 +3502,7 @@ private:
/// Murl. /// Murl.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MurlVariation : public ParametricVariation<T> class MurlVariation : public ParametricVariation<T>
{ {
public: public:
MurlVariation(T weight = 1.0) : ParametricVariation<T>("murl", eVariationId::VAR_MURL, weight, true, false, false, false, true) MurlVariation(T weight = 1.0) : ParametricVariation<T>("murl", eVariationId::VAR_MURL, weight, true, false, false, false, true)
@ -3588,7 +3588,7 @@ private:
/// Murl2. /// Murl2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Murl2Variation : public ParametricVariation<T> class Murl2Variation : public ParametricVariation<T>
{ {
public: public:
Murl2Variation(T weight = 1.0) : ParametricVariation<T>("murl2", eVariationId::VAR_MURL2, weight, true, false, false, false, true) Murl2Variation(T weight = 1.0) : ParametricVariation<T>("murl2", eVariationId::VAR_MURL2, weight, true, false, false, false, true)
@ -3692,7 +3692,7 @@ private:
/// NPolar. /// NPolar.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API NPolarVariation : public ParametricVariation<T> class NPolarVariation : public ParametricVariation<T>
{ {
public: public:
NPolarVariation(T weight = 1.0) : ParametricVariation<T>("npolar", eVariationId::VAR_NPOLAR, weight, true, false, false, true, false) NPolarVariation(T weight = 1.0) : ParametricVariation<T>("npolar", eVariationId::VAR_NPOLAR, weight, true, false, false, true, false)
@ -3788,7 +3788,7 @@ private:
/// Ortho. /// Ortho.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API OrthoVariation : public ParametricVariation<T> class OrthoVariation : public ParametricVariation<T>
{ {
public: public:
OrthoVariation(T weight = 1.0) : ParametricVariation<T>("ortho", eVariationId::VAR_ORTHO, weight, true, false, false, false, true) OrthoVariation(T weight = 1.0) : ParametricVariation<T>("ortho", eVariationId::VAR_ORTHO, weight, true, false, false, false, true)
@ -3990,7 +3990,7 @@ private:
/// Poincare. /// Poincare.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PoincareVariation : public ParametricVariation<T> class PoincareVariation : public ParametricVariation<T>
{ {
public: public:
PoincareVariation(T weight = 1.0) : ParametricVariation<T>("poincare", eVariationId::VAR_POINCARE, weight) PoincareVariation(T weight = 1.0) : ParametricVariation<T>("poincare", eVariationId::VAR_POINCARE, weight)
@ -4080,7 +4080,7 @@ private:
/// Poincare3D. /// Poincare3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Poincare3DVariation : public ParametricVariation<T> class Poincare3DVariation : public ParametricVariation<T>
{ {
public: public:
Poincare3DVariation(T weight = 1.0) : ParametricVariation<T>("poincare3D", eVariationId::VAR_POINCARE3D, weight, true) Poincare3DVariation(T weight = 1.0) : ParametricVariation<T>("poincare3D", eVariationId::VAR_POINCARE3D, weight, true)
@ -4196,7 +4196,7 @@ private:
/// Polynomial. /// Polynomial.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PolynomialVariation : public ParametricVariation<T> class PolynomialVariation : public ParametricVariation<T>
{ {
public: public:
PolynomialVariation(T weight = 1.0) : ParametricVariation<T>("polynomial", eVariationId::VAR_POLYNOMIAL, weight) PolynomialVariation(T weight = 1.0) : ParametricVariation<T>("polynomial", eVariationId::VAR_POLYNOMIAL, weight)
@ -4270,7 +4270,7 @@ private:
/// PSphere. /// PSphere.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PSphereVariation : public ParametricVariation<T> class PSphereVariation : public ParametricVariation<T>
{ {
public: public:
PSphereVariation(T weight = 1.0) : ParametricVariation<T>("psphere", eVariationId::VAR_PSPHERE, weight) PSphereVariation(T weight = 1.0) : ParametricVariation<T>("psphere", eVariationId::VAR_PSPHERE, weight)
@ -4339,7 +4339,7 @@ private:
/// Rational3. /// Rational3.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Rational3Variation : public ParametricVariation<T> class Rational3Variation : public ParametricVariation<T>
{ {
public: public:
Rational3Variation(T weight = 1.0) : ParametricVariation<T>("rational3", eVariationId::VAR_RATIONAL3, weight) Rational3Variation(T weight = 1.0) : ParametricVariation<T>("rational3", eVariationId::VAR_RATIONAL3, weight)
@ -4430,7 +4430,7 @@ private:
/// Ripple. /// Ripple.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RippleVariation : public ParametricVariation<T> class RippleVariation : public ParametricVariation<T>
{ {
public: public:
RippleVariation(T weight = 1.0) : ParametricVariation<T>("ripple", eVariationId::VAR_RIPPLE, weight) RippleVariation(T weight = 1.0) : ParametricVariation<T>("ripple", eVariationId::VAR_RIPPLE, weight)
@ -4577,7 +4577,7 @@ private:
/// Sigmoid. /// Sigmoid.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SigmoidVariation : public ParametricVariation<T> class SigmoidVariation : public ParametricVariation<T>
{ {
public: public:
SigmoidVariation(T weight = 1.0) : ParametricVariation<T>("sigmoid", eVariationId::VAR_SIGMOID, weight) SigmoidVariation(T weight = 1.0) : ParametricVariation<T>("sigmoid", eVariationId::VAR_SIGMOID, weight)
@ -4692,7 +4692,7 @@ private:
/// SinusGrid. /// SinusGrid.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SinusGridVariation : public ParametricVariation<T> class SinusGridVariation : public ParametricVariation<T>
{ {
public: public:
SinusGridVariation(T weight = 1.0) : ParametricVariation<T>("sinusgrid", eVariationId::VAR_SINUS_GRID, weight) SinusGridVariation(T weight = 1.0) : ParametricVariation<T>("sinusgrid", eVariationId::VAR_SINUS_GRID, weight)
@ -4788,7 +4788,7 @@ private:
/// Stwin. /// Stwin.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API StwinVariation : public ParametricVariation<T> class StwinVariation : public ParametricVariation<T>
{ {
public: public:
StwinVariation(T weight = 1.0) : ParametricVariation<T>("stwin", eVariationId::VAR_STWIN, weight) StwinVariation(T weight = 1.0) : ParametricVariation<T>("stwin", eVariationId::VAR_STWIN, weight)
@ -4866,7 +4866,7 @@ private:
/// TwoFace. /// TwoFace.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TwoFaceVariation : public Variation<T> class TwoFaceVariation : public Variation<T>
{ {
public: public:
TwoFaceVariation(T weight = 1.0) : Variation<T>("twoface", eVariationId::VAR_TWO_FACE, weight, true) { } TwoFaceVariation(T weight = 1.0) : Variation<T>("twoface", eVariationId::VAR_TWO_FACE, weight, true) { }
@ -4907,7 +4907,7 @@ public:
/// Unpolar. /// Unpolar.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API UnpolarVariation : public ParametricVariation<T> class UnpolarVariation : public ParametricVariation<T>
{ {
public: public:
UnpolarVariation(T weight = 1.0) : ParametricVariation<T>("unpolar", eVariationId::VAR_UNPOLAR, weight) UnpolarVariation(T weight = 1.0) : ParametricVariation<T>("unpolar", eVariationId::VAR_UNPOLAR, weight)
@ -4967,7 +4967,7 @@ private:
/// WavesN. /// WavesN.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WavesNVariation : public ParametricVariation<T> class WavesNVariation : public ParametricVariation<T>
{ {
public: public:
WavesNVariation(T weight = 1.0) : ParametricVariation<T>("wavesn", eVariationId::VAR_WAVESN, weight, true, false, false, false, true) WavesNVariation(T weight = 1.0) : ParametricVariation<T>("wavesn", eVariationId::VAR_WAVESN, weight, true, false, false, false, true)
@ -5069,7 +5069,7 @@ private:
/// XHeart. /// XHeart.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API XHeartVariation : public ParametricVariation<T> class XHeartVariation : public ParametricVariation<T>
{ {
public: public:
XHeartVariation(T weight = 1.0) : ParametricVariation<T>("xheart", eVariationId::VAR_XHEART, weight, true) XHeartVariation(T weight = 1.0) : ParametricVariation<T>("xheart", eVariationId::VAR_XHEART, weight, true)
@ -5174,7 +5174,7 @@ private:
/// Barycentroid. /// Barycentroid.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BarycentroidVariation : public ParametricVariation<T> class BarycentroidVariation : public ParametricVariation<T>
{ {
public: public:
BarycentroidVariation(T weight = 1.0) : ParametricVariation<T>("barycentroid", eVariationId::VAR_BARYCENTROID, weight) BarycentroidVariation(T weight = 1.0) : ParametricVariation<T>("barycentroid", eVariationId::VAR_BARYCENTROID, weight)
@ -5262,7 +5262,7 @@ private:
/// BiSplit. /// BiSplit.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BiSplitVariation : public ParametricVariation<T> class BiSplitVariation : public ParametricVariation<T>
{ {
public: public:
BiSplitVariation(T weight = 1.0) : ParametricVariation<T>("bisplit", eVariationId::VAR_BISPLIT, weight) BiSplitVariation(T weight = 1.0) : ParametricVariation<T>("bisplit", eVariationId::VAR_BISPLIT, weight)
@ -5315,7 +5315,7 @@ private:
/// Crescents. /// Crescents.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CrescentsVariation : public Variation<T> class CrescentsVariation : public Variation<T>
{ {
public: public:
CrescentsVariation(T weight = 1.0) : Variation<T>("crescents", eVariationId::VAR_CRESCENTS, weight) { } CrescentsVariation(T weight = 1.0) : Variation<T>("crescents", eVariationId::VAR_CRESCENTS, weight) { }
@ -5360,7 +5360,7 @@ public:
/// Mask. /// Mask.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MaskVariation : public Variation<T> class MaskVariation : public Variation<T>
{ {
public: public:
MaskVariation(T weight = 1.0) : Variation<T>("mask", eVariationId::VAR_MASK, weight, true) { } MaskVariation(T weight = 1.0) : Variation<T>("mask", eVariationId::VAR_MASK, weight, true) { }
@ -5407,7 +5407,7 @@ public:
/// Cpow2. /// Cpow2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Cpow2Variation : public ParametricVariation<T> class Cpow2Variation : public ParametricVariation<T>
{ {
public: public:
Cpow2Variation(T weight = 1.0) : ParametricVariation<T>("cpow2", eVariationId::VAR_CPOW2, weight, true, false, false, false, true) Cpow2Variation(T weight = 1.0) : ParametricVariation<T>("cpow2", eVariationId::VAR_CPOW2, weight, true, false, false, false, true)

View File

@ -8,7 +8,7 @@ namespace EmberNs
/// Funnel. /// Funnel.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FunnelVariation : public ParametricVariation<T> class FunnelVariation : public ParametricVariation<T>
{ {
public: public:
FunnelVariation(T weight = 1.0) : ParametricVariation<T>("funnel", eVariationId::VAR_FUNNEL, weight) FunnelVariation(T weight = 1.0) : ParametricVariation<T>("funnel", eVariationId::VAR_FUNNEL, weight)
@ -64,7 +64,7 @@ private:
/// Linear3D. /// Linear3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Linear3DVariation : public Variation<T> class Linear3DVariation : public Variation<T>
{ {
public: public:
Linear3DVariation(T weight = 1.0) : Variation<T>("linear3D", eVariationId::VAR_LINEAR3D, weight) { } Linear3DVariation(T weight = 1.0) : Variation<T>("linear3D", eVariationId::VAR_LINEAR3D, weight) { }
@ -95,7 +95,7 @@ public:
/// PowBlock. /// PowBlock.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PowBlockVariation : public ParametricVariation<T> class PowBlockVariation : public ParametricVariation<T>
{ {
public: public:
PowBlockVariation(T weight = 1.0) : ParametricVariation<T>("pow_block", eVariationId::VAR_POW_BLOCK, weight, true, false, false, false, true) PowBlockVariation(T weight = 1.0) : ParametricVariation<T>("pow_block", eVariationId::VAR_POW_BLOCK, weight, true, false, false, false, true)
@ -173,7 +173,7 @@ private:
/// Squirrel. /// Squirrel.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SquirrelVariation : public ParametricVariation<T> class SquirrelVariation : public ParametricVariation<T>
{ {
public: public:
SquirrelVariation(T weight = 1.0) : ParametricVariation<T>("squirrel", eVariationId::VAR_SQUIRREL, weight) SquirrelVariation(T weight = 1.0) : ParametricVariation<T>("squirrel", eVariationId::VAR_SQUIRREL, weight)
@ -232,7 +232,7 @@ private:
/// Ennepers. /// Ennepers.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EnnepersVariation : public Variation<T> class EnnepersVariation : public Variation<T>
{ {
public: public:
EnnepersVariation(T weight = 1.0) : Variation<T>("ennepers", eVariationId::VAR_ENNEPERS, weight) { } EnnepersVariation(T weight = 1.0) : Variation<T>("ennepers", eVariationId::VAR_ENNEPERS, weight) { }
@ -263,7 +263,7 @@ public:
/// SphericalN. /// SphericalN.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SphericalNVariation : public ParametricVariation<T> class SphericalNVariation : public ParametricVariation<T>
{ {
public: public:
SphericalNVariation(T weight = 1.0) : ParametricVariation<T>("SphericalN", eVariationId::VAR_SPHERICALN, weight, true, true, false, false, true) SphericalNVariation(T weight = 1.0) : ParametricVariation<T>("SphericalN", eVariationId::VAR_SPHERICALN, weight, true, true, false, false, true)
@ -330,7 +330,7 @@ private:
/// Kaleidoscope. /// Kaleidoscope.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API KaleidoscopeVariation : public ParametricVariation<T> class KaleidoscopeVariation : public ParametricVariation<T>
{ {
public: public:
KaleidoscopeVariation(T weight = 1.0) : ParametricVariation<T>("Kaleidoscope", eVariationId::VAR_KALEIDOSCOPE, weight) KaleidoscopeVariation(T weight = 1.0) : ParametricVariation<T>("Kaleidoscope", eVariationId::VAR_KALEIDOSCOPE, weight)
@ -406,7 +406,7 @@ private:
/// GlynnSim1. /// GlynnSim1.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GlynnSim1Variation : public ParametricVariation<T> class GlynnSim1Variation : public ParametricVariation<T>
{ {
public: public:
GlynnSim1Variation(T weight = 1.0) : ParametricVariation<T>("GlynnSim1", eVariationId::VAR_GLYNNSIM1, weight, true, true) GlynnSim1Variation(T weight = 1.0) : ParametricVariation<T>("GlynnSim1", eVariationId::VAR_GLYNNSIM1, weight, true, true)
@ -588,7 +588,7 @@ private:
/// GlynnSim2. /// GlynnSim2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GlynnSim2Variation : public ParametricVariation<T> class GlynnSim2Variation : public ParametricVariation<T>
{ {
public: public:
GlynnSim2Variation(T weight = 1.0) : ParametricVariation<T>("GlynnSim2", eVariationId::VAR_GLYNNSIM2, weight, true, true) GlynnSim2Variation(T weight = 1.0) : ParametricVariation<T>("GlynnSim2", eVariationId::VAR_GLYNNSIM2, weight, true, true)
@ -747,7 +747,7 @@ private:
/// GlynnSim3. /// GlynnSim3.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GlynnSim3Variation : public ParametricVariation<T> class GlynnSim3Variation : public ParametricVariation<T>
{ {
public: public:
GlynnSim3Variation(T weight = 1.0) : ParametricVariation<T>("GlynnSim3", eVariationId::VAR_GLYNNSIM3, weight, true, true) GlynnSim3Variation(T weight = 1.0) : ParametricVariation<T>("GlynnSim3", eVariationId::VAR_GLYNNSIM3, weight, true, true)
@ -909,7 +909,7 @@ private:
/// Starblur. /// Starblur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API StarblurVariation : public ParametricVariation<T> class StarblurVariation : public ParametricVariation<T>
{ {
public: public:
StarblurVariation(T weight = 1.0) : ParametricVariation<T>("starblur", eVariationId::VAR_STARBLUR, weight) StarblurVariation(T weight = 1.0) : ParametricVariation<T>("starblur", eVariationId::VAR_STARBLUR, weight)
@ -1003,7 +1003,7 @@ private:
/// Sineblur. /// Sineblur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SineblurVariation : public ParametricVariation<T> class SineblurVariation : public ParametricVariation<T>
{ {
public: public:
SineblurVariation(T weight = 1.0) : ParametricVariation<T>("sineblur", eVariationId::VAR_SINEBLUR, weight) SineblurVariation(T weight = 1.0) : ParametricVariation<T>("sineblur", eVariationId::VAR_SINEBLUR, weight)
@ -1060,7 +1060,7 @@ private:
/// Circleblur. /// Circleblur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CircleblurVariation : public Variation<T> class CircleblurVariation : public Variation<T>
{ {
public: public:
CircleblurVariation(T weight = 1.0) : Variation<T>("circleblur", eVariationId::VAR_CIRCLEBLUR, weight) { } CircleblurVariation(T weight = 1.0) : Variation<T>("circleblur", eVariationId::VAR_CIRCLEBLUR, weight) { }
@ -1096,7 +1096,7 @@ public:
/// Depth. /// Depth.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DepthVariation : public ParametricVariation<T> class DepthVariation : public ParametricVariation<T>
{ {
public: public:
DepthVariation(T weight = 1.0) : ParametricVariation<T>("depth", eVariationId::VAR_DEPTH, weight) DepthVariation(T weight = 1.0) : ParametricVariation<T>("depth", eVariationId::VAR_DEPTH, weight)
@ -1154,7 +1154,7 @@ private:
/// CropN. /// CropN.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CropNVariation : public ParametricVariation<T> class CropNVariation : public ParametricVariation<T>
{ {
public: public:
CropNVariation(T weight = 1.0) : ParametricVariation<T>("cropn", eVariationId::VAR_CROPN, weight, true, true, false, false, true) CropNVariation(T weight = 1.0) : ParametricVariation<T>("cropn", eVariationId::VAR_CROPN, weight, true, true, false, false, true)
@ -1272,7 +1272,7 @@ private:
/// ShredRad. /// ShredRad.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ShredRadVariation : public ParametricVariation<T> class ShredRadVariation : public ParametricVariation<T>
{ {
public: public:
ShredRadVariation(T weight = 1.0) : ParametricVariation<T>("shredrad", eVariationId::VAR_SHRED_RAD, weight, true, true, false, false, true) ShredRadVariation(T weight = 1.0) : ParametricVariation<T>("shredrad", eVariationId::VAR_SHRED_RAD, weight, true, true, false, false, true)
@ -1336,7 +1336,7 @@ private:
/// Blob2. /// Blob2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Blob2Variation : public ParametricVariation<T> class Blob2Variation : public ParametricVariation<T>
{ {
public: public:
Blob2Variation(T weight = 1.0) : ParametricVariation<T>("blob2", eVariationId::VAR_BLOB2, weight, true, true, false, false, true) Blob2Variation(T weight = 1.0) : ParametricVariation<T>("blob2", eVariationId::VAR_BLOB2, weight, true, true, false, false, true)
@ -1447,7 +1447,7 @@ private:
/// Julia3D. /// Julia3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Julia3DVariation : public ParametricVariation<T> class Julia3DVariation : public ParametricVariation<T>
{ {
public: public:
Julia3DVariation(T weight = 1.0) : ParametricVariation<T>("julia3D", eVariationId::VAR_JULIA3D, weight, true, true, false, false, true) Julia3DVariation(T weight = 1.0) : ParametricVariation<T>("julia3D", eVariationId::VAR_JULIA3D, weight, true, true, false, false, true)
@ -1524,7 +1524,7 @@ private:
/// Julia3Dz. /// Julia3Dz.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Julia3DzVariation : public ParametricVariation<T> class Julia3DzVariation : public ParametricVariation<T>
{ {
public: public:
Julia3DzVariation(T weight = 1.0) : ParametricVariation<T>("julia3Dz", eVariationId::VAR_JULIA3DZ, weight, true, true, false, false, true) Julia3DzVariation(T weight = 1.0) : ParametricVariation<T>("julia3Dz", eVariationId::VAR_JULIA3DZ, weight, true, true, false, false, true)
@ -1597,7 +1597,7 @@ private:
/// LinearT. /// LinearT.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LinearTVariation : public ParametricVariation<T> class LinearTVariation : public ParametricVariation<T>
{ {
public: public:
LinearTVariation(T weight = 1.0) : ParametricVariation<T>("linearT", eVariationId::VAR_LINEAR_T, weight) LinearTVariation(T weight = 1.0) : ParametricVariation<T>("linearT", eVariationId::VAR_LINEAR_T, weight)
@ -1653,7 +1653,7 @@ private:
/// LinearT3D. /// LinearT3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LinearT3DVariation : public ParametricVariation<T> class LinearT3DVariation : public ParametricVariation<T>
{ {
public: public:
LinearT3DVariation(T weight = 1.0) : ParametricVariation<T>("linearT3D", eVariationId::VAR_LINEAR_T3D, weight) LinearT3DVariation(T weight = 1.0) : ParametricVariation<T>("linearT3D", eVariationId::VAR_LINEAR_T3D, weight)
@ -1707,7 +1707,7 @@ private:
/// Ovoid. /// Ovoid.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API OvoidVariation : public ParametricVariation<T> class OvoidVariation : public ParametricVariation<T>
{ {
public: public:
OvoidVariation(T weight = 1.0) : ParametricVariation<T>("ovoid", eVariationId::VAR_OVOID, weight, true) OvoidVariation(T weight = 1.0) : ParametricVariation<T>("ovoid", eVariationId::VAR_OVOID, weight, true)
@ -1766,7 +1766,7 @@ private:
/// Ovoid3D. /// Ovoid3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Ovoid3DVariation : public ParametricVariation<T> class Ovoid3DVariation : public ParametricVariation<T>
{ {
public: public:
Ovoid3DVariation(T weight = 1.0) : ParametricVariation<T>("ovoid3d", eVariationId::VAR_OVOID3D, weight, true) Ovoid3DVariation(T weight = 1.0) : ParametricVariation<T>("ovoid3d", eVariationId::VAR_OVOID3D, weight, true)
@ -1828,7 +1828,7 @@ private:
/// Spirograph. /// Spirograph.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SpirographVariation : public ParametricVariation<T> class SpirographVariation : public ParametricVariation<T>
{ {
public: public:
SpirographVariation(T weight = 1.0) : ParametricVariation<T>("Spirograph", eVariationId::VAR_SPIROGRAPH, weight) SpirographVariation(T weight = 1.0) : ParametricVariation<T>("Spirograph", eVariationId::VAR_SPIROGRAPH, weight)
@ -1909,7 +1909,7 @@ private:
/// Petal. /// Petal.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PetalVariation : public Variation<T> class PetalVariation : public Variation<T>
{ {
public: public:
PetalVariation(T weight = 1.0) : Variation<T>("petal", eVariationId::VAR_PETAL, weight) { } PetalVariation(T weight = 1.0) : Variation<T>("petal", eVariationId::VAR_PETAL, weight) { }
@ -1957,7 +1957,7 @@ public:
/// RoundSpher. /// RoundSpher.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RoundSpherVariation : public Variation<T> class RoundSpherVariation : public Variation<T>
{ {
public: public:
RoundSpherVariation(T weight = 1.0) : Variation<T>("roundspher", eVariationId::VAR_ROUNDSPHER, weight, true) { } RoundSpherVariation(T weight = 1.0) : Variation<T>("roundspher", eVariationId::VAR_ROUNDSPHER, weight, true) { }
@ -1991,7 +1991,7 @@ public:
/// roundSpher3D. /// roundSpher3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RoundSpher3DVariation : public Variation<T> class RoundSpher3DVariation : public Variation<T>
{ {
public: public:
RoundSpher3DVariation(T weight = 1.0) : Variation<T>("roundspher3D", eVariationId::VAR_ROUNDSPHER3D, weight, true, true) { } RoundSpher3DVariation(T weight = 1.0) : Variation<T>("roundspher3D", eVariationId::VAR_ROUNDSPHER3D, weight, true, true) { }
@ -2110,7 +2110,7 @@ public:
/// SpiralWing. /// SpiralWing.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SpiralWingVariation : public Variation<T> class SpiralWingVariation : public Variation<T>
{ {
public: public:
SpiralWingVariation(T weight = 1.0) : Variation<T>("spiralwing", eVariationId::VAR_SPIRAL_WING, weight, true) { } SpiralWingVariation(T weight = 1.0) : Variation<T>("spiralwing", eVariationId::VAR_SPIRAL_WING, weight, true) { }
@ -2153,7 +2153,7 @@ public:
/// Squarize. /// Squarize.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SquarizeVariation : public Variation<T> class SquarizeVariation : public Variation<T>
{ {
public: public:
SquarizeVariation(T weight = 1.0) : Variation<T>("squarize", eVariationId::VAR_SQUARIZE, weight, true, true, false, false, true) { } SquarizeVariation(T weight = 1.0) : Variation<T>("squarize", eVariationId::VAR_SQUARIZE, weight, true, true, false, false, true) { }
@ -2246,7 +2246,7 @@ public:
/// Sschecks. /// Sschecks.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SschecksVariation : public ParametricVariation<T> class SschecksVariation : public ParametricVariation<T>
{ {
public: public:
SschecksVariation(T weight = 1.0) : ParametricVariation<T>("sschecks", eVariationId::VAR_SSCHECKS, weight, true) SschecksVariation(T weight = 1.0) : ParametricVariation<T>("sschecks", eVariationId::VAR_SSCHECKS, weight, true)
@ -2344,7 +2344,7 @@ private:
/// PhoenixJulia. /// PhoenixJulia.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PhoenixJuliaVariation : public ParametricVariation<T> class PhoenixJuliaVariation : public ParametricVariation<T>
{ {
public: public:
PhoenixJuliaVariation(T weight = 1.0) : ParametricVariation<T>("phoenix_julia", eVariationId::VAR_PHOENIX_JULIA, weight, true) PhoenixJuliaVariation(T weight = 1.0) : ParametricVariation<T>("phoenix_julia", eVariationId::VAR_PHOENIX_JULIA, weight, true)
@ -2426,7 +2426,7 @@ private:
/// Mobius. /// Mobius.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MobiusVariation : public ParametricVariation<T> class MobiusVariation : public ParametricVariation<T>
{ {
public: public:
MobiusVariation(T weight = 1.0) : ParametricVariation<T>("Mobius", eVariationId::VAR_MOBIUS, weight) MobiusVariation(T weight = 1.0) : ParametricVariation<T>("Mobius", eVariationId::VAR_MOBIUS, weight)
@ -2511,7 +2511,7 @@ private:
/// MobiusN. /// MobiusN.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MobiusNVariation : public ParametricVariation<T> class MobiusNVariation : public ParametricVariation<T>
{ {
public: public:
MobiusNVariation(T weight = 1.0) : ParametricVariation<T>("MobiusN", eVariationId::VAR_MOBIUSN, weight, true, true, false, false, true) MobiusNVariation(T weight = 1.0) : ParametricVariation<T>("MobiusN", eVariationId::VAR_MOBIUSN, weight, true, true, false, false, true)
@ -2632,7 +2632,7 @@ private:
/// Rename this mobius_strip for deconfliction, which breaks backward compatibility. /// Rename this mobius_strip for deconfliction, which breaks backward compatibility.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MobiusStripVariation : public ParametricVariation<T> class MobiusStripVariation : public ParametricVariation<T>
{ {
public: public:
MobiusStripVariation(T weight = 1.0) : ParametricVariation<T>("mobius_strip", eVariationId::VAR_MOBIUS_STRIP, weight) MobiusStripVariation(T weight = 1.0) : ParametricVariation<T>("mobius_strip", eVariationId::VAR_MOBIUS_STRIP, weight)
@ -2799,7 +2799,7 @@ private:
/// Lissajous. /// Lissajous.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LissajousVariation : public ParametricVariation<T> class LissajousVariation : public ParametricVariation<T>
{ {
public: public:
LissajousVariation(T weight = 1.0) : ParametricVariation<T>("Lissajous", eVariationId::VAR_LISSAJOUS, weight) LissajousVariation(T weight = 1.0) : ParametricVariation<T>("Lissajous", eVariationId::VAR_LISSAJOUS, weight)
@ -2874,7 +2874,7 @@ private:
/// svf. /// svf.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SvfVariation : public ParametricVariation<T> class SvfVariation : public ParametricVariation<T>
{ {
public: public:
SvfVariation(T weight = 1.0) : ParametricVariation<T>("svf", eVariationId::VAR_SVF, weight) SvfVariation(T weight = 1.0) : ParametricVariation<T>("svf", eVariationId::VAR_SVF, weight)
@ -2933,7 +2933,7 @@ private:
/// target. /// target.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TargetVariation : public ParametricVariation<T> class TargetVariation : public ParametricVariation<T>
{ {
public: public:
TargetVariation(T weight = 1.0) : ParametricVariation<T>("target", eVariationId::VAR_TARGET, weight, true, true, false, false, true) TargetVariation(T weight = 1.0) : ParametricVariation<T>("target", eVariationId::VAR_TARGET, weight, true, true, false, false, true)
@ -3021,7 +3021,7 @@ private:
/// taurus. /// taurus.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TaurusVariation : public ParametricVariation<T> class TaurusVariation : public ParametricVariation<T>
{ {
public: public:
TaurusVariation(T weight = 1.0) : ParametricVariation<T>("taurus", eVariationId::VAR_TAURUS, weight) TaurusVariation(T weight = 1.0) : ParametricVariation<T>("taurus", eVariationId::VAR_TAURUS, weight)
@ -3105,7 +3105,7 @@ private:
/// collideoscope. /// collideoscope.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CollideoscopeVariation : public ParametricVariation<T> class CollideoscopeVariation : public ParametricVariation<T>
{ {
public: public:
CollideoscopeVariation(T weight = 1.0) : ParametricVariation<T>("collideoscope", eVariationId::VAR_COLLIDEOSCOPE, weight, true, true, false, false, true) CollideoscopeVariation(T weight = 1.0) : ParametricVariation<T>("collideoscope", eVariationId::VAR_COLLIDEOSCOPE, weight, true, true, false, false, true)
@ -3223,7 +3223,7 @@ private:
/// bMod. /// bMod.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BModVariation : public ParametricVariation<T> class BModVariation : public ParametricVariation<T>
{ {
public: public:
BModVariation(T weight = 1.0) : ParametricVariation<T>("bMod", eVariationId::VAR_BMOD, weight) BModVariation(T weight = 1.0) : ParametricVariation<T>("bMod", eVariationId::VAR_BMOD, weight)
@ -3294,7 +3294,7 @@ private:
/// bSwirl. /// bSwirl.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BSwirlVariation : public ParametricVariation<T> class BSwirlVariation : public ParametricVariation<T>
{ {
public: public:
BSwirlVariation(T weight = 1.0) : ParametricVariation<T>("bSwirl", eVariationId::VAR_BSWIRL, weight) BSwirlVariation(T weight = 1.0) : ParametricVariation<T>("bSwirl", eVariationId::VAR_BSWIRL, weight)
@ -3361,7 +3361,7 @@ private:
/// bTransform. /// bTransform.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BTransformVariation : public ParametricVariation<T> class BTransformVariation : public ParametricVariation<T>
{ {
public: public:
BTransformVariation(T weight = 1.0) : ParametricVariation<T>("bTransform", eVariationId::VAR_BTRANSFORM, weight) BTransformVariation(T weight = 1.0) : ParametricVariation<T>("bTransform", eVariationId::VAR_BTRANSFORM, weight)
@ -3445,7 +3445,7 @@ private:
/// bCollide. /// bCollide.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BCollideVariation : public ParametricVariation<T> class BCollideVariation : public ParametricVariation<T>
{ {
public: public:
BCollideVariation(T weight = 1.0) : ParametricVariation<T>("bCollide", eVariationId::VAR_BCOLLIDE, weight) BCollideVariation(T weight = 1.0) : ParametricVariation<T>("bCollide", eVariationId::VAR_BCOLLIDE, weight)
@ -3542,7 +3542,7 @@ private:
/// eclipse. /// eclipse.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EclipseVariation : public ParametricVariation<T> class EclipseVariation : public ParametricVariation<T>
{ {
public: public:
EclipseVariation(T weight = 1.0) : ParametricVariation<T>("eclipse", eVariationId::VAR_ECLIPSE, weight) EclipseVariation(T weight = 1.0) : ParametricVariation<T>("eclipse", eVariationId::VAR_ECLIPSE, weight)
@ -3642,7 +3642,7 @@ private:
/// flipcircle. /// flipcircle.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FlipCircleVariation : public ParametricVariation<T> class FlipCircleVariation : public ParametricVariation<T>
{ {
public: public:
FlipCircleVariation(T weight = 1.0) : ParametricVariation<T>("flipcircle", eVariationId::VAR_FLIP_CIRCLE, weight, true) FlipCircleVariation(T weight = 1.0) : ParametricVariation<T>("flipcircle", eVariationId::VAR_FLIP_CIRCLE, weight, true)
@ -3705,7 +3705,7 @@ private:
/// flipy. /// flipy.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FlipYVariation : public Variation<T> class FlipYVariation : public Variation<T>
{ {
public: public:
FlipYVariation(T weight = 1.0) : Variation<T>("flipy", eVariationId::VAR_FLIP_Y, weight) { } FlipYVariation(T weight = 1.0) : Variation<T>("flipy", eVariationId::VAR_FLIP_Y, weight) { }
@ -3746,7 +3746,7 @@ public:
/// eCollide. /// eCollide.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ECollideVariation : public ParametricVariation<T> class ECollideVariation : public ParametricVariation<T>
{ {
public: public:
ECollideVariation(T weight = 1.0) : ParametricVariation<T>("eCollide", eVariationId::VAR_ECOLLIDE, weight, true) ECollideVariation(T weight = 1.0) : ParametricVariation<T>("eCollide", eVariationId::VAR_ECOLLIDE, weight, true)
@ -3884,7 +3884,7 @@ private:
/// eJulia. /// eJulia.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EJuliaVariation : public ParametricVariation<T> class EJuliaVariation : public ParametricVariation<T>
{ {
public: public:
EJuliaVariation(T weight = 1.0) : ParametricVariation<T>("eJulia", eVariationId::VAR_EJULIA, weight, true) EJuliaVariation(T weight = 1.0) : ParametricVariation<T>("eJulia", eVariationId::VAR_EJULIA, weight, true)
@ -4000,7 +4000,7 @@ private:
/// eMod. /// eMod.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EModVariation : public ParametricVariation<T> class EModVariation : public ParametricVariation<T>
{ {
public: public:
EModVariation(T weight = 1.0) : ParametricVariation<T>("eMod", eVariationId::VAR_EMOD, weight, true) EModVariation(T weight = 1.0) : ParametricVariation<T>("eMod", eVariationId::VAR_EMOD, weight, true)
@ -4095,7 +4095,7 @@ private:
/// eMotion. /// eMotion.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EMotionVariation : public ParametricVariation<T> class EMotionVariation : public ParametricVariation<T>
{ {
public: public:
EMotionVariation(T weight = 1.0) : ParametricVariation<T>("eMotion", eVariationId::VAR_EMOTION, weight, true) EMotionVariation(T weight = 1.0) : ParametricVariation<T>("eMotion", eVariationId::VAR_EMOTION, weight, true)
@ -4199,7 +4199,7 @@ private:
/// ePush. /// ePush.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EPushVariation : public ParametricVariation<T> class EPushVariation : public ParametricVariation<T>
{ {
public: public:
EPushVariation(T weight = 1.0) : ParametricVariation<T>("ePush", eVariationId::VAR_EPUSH, weight, true) EPushVariation(T weight = 1.0) : ParametricVariation<T>("ePush", eVariationId::VAR_EPUSH, weight, true)
@ -4288,7 +4288,7 @@ private:
/// eRotate. /// eRotate.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ERotateVariation : public ParametricVariation<T> class ERotateVariation : public ParametricVariation<T>
{ {
public: public:
ERotateVariation(T weight = 1.0) : ParametricVariation<T>("eRotate", eVariationId::VAR_EROTATE, weight, true) ERotateVariation(T weight = 1.0) : ParametricVariation<T>("eRotate", eVariationId::VAR_EROTATE, weight, true)
@ -4368,7 +4368,7 @@ private:
/// eScale. /// eScale.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EScaleVariation : public ParametricVariation<T> class EScaleVariation : public ParametricVariation<T>
{ {
public: public:
EScaleVariation(T weight = 1.0) : ParametricVariation<T>("eScale", eVariationId::VAR_ESCALE, weight, true) EScaleVariation(T weight = 1.0) : ParametricVariation<T>("eScale", eVariationId::VAR_ESCALE, weight, true)

View File

@ -8,7 +8,7 @@ namespace EmberNs
/// eSwirl. /// eSwirl.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ESwirlVariation : public ParametricVariation<T> class ESwirlVariation : public ParametricVariation<T>
{ {
public: public:
ESwirlVariation(T weight = 1.0) : ParametricVariation<T>("eSwirl", eVariationId::VAR_ESWIRL, weight, true) ESwirlVariation(T weight = 1.0) : ParametricVariation<T>("eSwirl", eVariationId::VAR_ESWIRL, weight, true)
@ -90,7 +90,7 @@ private:
/// lazyTravis. /// lazyTravis.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LazyTravisVariation : public ParametricVariation<T> class LazyTravisVariation : public ParametricVariation<T>
{ {
public: public:
LazyTravisVariation(T weight = 1.0) : ParametricVariation<T>("lazyTravis", eVariationId::VAR_LAZY_TRAVIS, weight) LazyTravisVariation(T weight = 1.0) : ParametricVariation<T>("lazyTravis", eVariationId::VAR_LAZY_TRAVIS, weight)
@ -356,7 +356,7 @@ private:
/// squish. /// squish.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SquishVariation : public ParametricVariation<T> class SquishVariation : public ParametricVariation<T>
{ {
public: public:
SquishVariation(T weight = 1.0) : ParametricVariation<T>("squish", eVariationId::VAR_SQUISH, weight) SquishVariation(T weight = 1.0) : ParametricVariation<T>("squish", eVariationId::VAR_SQUISH, weight)
@ -512,7 +512,7 @@ private:
/// circus. /// circus.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CircusVariation : public ParametricVariation<T> class CircusVariation : public ParametricVariation<T>
{ {
public: public:
CircusVariation(T weight = 1.0) : ParametricVariation<T>("circus", eVariationId::VAR_CIRCUS, weight, true, true, true) CircusVariation(T weight = 1.0) : ParametricVariation<T>("circus", eVariationId::VAR_CIRCUS, weight, true, true, true)
@ -582,7 +582,7 @@ private:
/// tancos. /// tancos.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TancosVariation : public Variation<T> class TancosVariation : public Variation<T>
{ {
public: public:
TancosVariation(T weight = 1.0) : Variation<T>("tancos", eVariationId::VAR_TANCOS, weight, true) { } TancosVariation(T weight = 1.0) : Variation<T>("tancos", eVariationId::VAR_TANCOS, weight, true) { }
@ -621,7 +621,7 @@ public:
/// rippled. /// rippled.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RippledVariation : public Variation<T> class RippledVariation : public Variation<T>
{ {
public: public:
RippledVariation(T weight = 1.0) : Variation<T>("rippled", eVariationId::VAR_RIPPLED, weight, true) { } RippledVariation(T weight = 1.0) : Variation<T>("rippled", eVariationId::VAR_RIPPLED, weight, true) { }
@ -661,7 +661,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RotateXVariation : public ParametricVariation<T> class RotateXVariation : public ParametricVariation<T>
{ {
public: public:
RotateXVariation(T weight = 1.0) : ParametricVariation<T>("rotate_x", eVariationId::VAR_ROTATE_X, weight) RotateXVariation(T weight = 1.0) : ParametricVariation<T>("rotate_x", eVariationId::VAR_ROTATE_X, weight)
@ -744,7 +744,7 @@ private:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RotateYVariation : public ParametricVariation<T> class RotateYVariation : public ParametricVariation<T>
{ {
public: public:
RotateYVariation(T weight = 1.0) : ParametricVariation<T>("rotate_y", eVariationId::VAR_ROTATE_Y, weight) RotateYVariation(T weight = 1.0) : ParametricVariation<T>("rotate_y", eVariationId::VAR_ROTATE_Y, weight)
@ -824,7 +824,7 @@ private:
/// This was originally pre and post spin_z, consolidated here to be consistent with the other rotate variations. /// This was originally pre and post spin_z, consolidated here to be consistent with the other rotate variations.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RotateZVariation : public ParametricVariation<T> class RotateZVariation : public ParametricVariation<T>
{ {
public: public:
RotateZVariation(T weight = 1.0) : ParametricVariation<T>("rotate_z", eVariationId::VAR_ROTATE_Z, weight) RotateZVariation(T weight = 1.0) : ParametricVariation<T>("rotate_z", eVariationId::VAR_ROTATE_Z, weight)
@ -903,7 +903,7 @@ private:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MirrorXVariation : public Variation<T> class MirrorXVariation : public Variation<T>
{ {
public: public:
MirrorXVariation(T weight = 1.0) : Variation<T>("mirror_x", eVariationId::VAR_MIRROR_X, weight) { } MirrorXVariation(T weight = 1.0) : Variation<T>("mirror_x", eVariationId::VAR_MIRROR_X, weight) { }
@ -974,7 +974,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MirrorYVariation : public Variation<T> class MirrorYVariation : public Variation<T>
{ {
public: public:
MirrorYVariation(T weight = 1.0) : Variation<T>("mirror_y", eVariationId::VAR_MIRROR_Y, weight) { } MirrorYVariation(T weight = 1.0) : Variation<T>("mirror_y", eVariationId::VAR_MIRROR_Y, weight) { }
@ -1045,7 +1045,7 @@ public:
/// This uses in/out in a rare and different way. /// This uses in/out in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MirrorZVariation : public Variation<T> class MirrorZVariation : public Variation<T>
{ {
public: public:
MirrorZVariation(T weight = 1.0) : Variation<T>("mirror_z", eVariationId::VAR_MIRROR_Z, weight) { } MirrorZVariation(T weight = 1.0) : Variation<T>("mirror_z", eVariationId::VAR_MIRROR_Z, weight) { }
@ -1115,7 +1115,7 @@ public:
/// RBlur. /// RBlur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API RBlurVariation : public ParametricVariation<T> class RBlurVariation : public ParametricVariation<T>
{ {
public: public:
RBlurVariation(T weight = 1.0) : ParametricVariation<T>("rblur", eVariationId::VAR_RBLUR, weight) RBlurVariation(T weight = 1.0) : ParametricVariation<T>("rblur", eVariationId::VAR_RBLUR, weight)
@ -1192,7 +1192,7 @@ private:
/// JuliaNab. /// JuliaNab.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JuliaNabVariation : public ParametricVariation<T> class JuliaNabVariation : public ParametricVariation<T>
{ {
public: public:
JuliaNabVariation(T weight = 1.0) : ParametricVariation<T>("juliaNab", eVariationId::VAR_JULIANAB, weight, true) JuliaNabVariation(T weight = 1.0) : ParametricVariation<T>("juliaNab", eVariationId::VAR_JULIANAB, weight, true)
@ -1283,7 +1283,7 @@ private:
/// Sintrange. /// Sintrange.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SintrangeVariation : public ParametricVariation<T> class SintrangeVariation : public ParametricVariation<T>
{ {
public: public:
SintrangeVariation(T weight = 1.0) : ParametricVariation<T>("sintrange", eVariationId::VAR_SINTRANGE, weight) SintrangeVariation(T weight = 1.0) : ParametricVariation<T>("sintrange", eVariationId::VAR_SINTRANGE, weight)
@ -1338,7 +1338,7 @@ private:
/// Voron. /// Voron.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API VoronVariation : public ParametricVariation<T> class VoronVariation : public ParametricVariation<T>
{ {
public: public:
VoronVariation(T weight = 1.0) : ParametricVariation<T>("Voron", eVariationId::VAR_VORON, weight) VoronVariation(T weight = 1.0) : ParametricVariation<T>("Voron", eVariationId::VAR_VORON, weight)
@ -1490,7 +1490,7 @@ private:
/// Waffle. /// Waffle.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WaffleVariation : public ParametricVariation<T> class WaffleVariation : public ParametricVariation<T>
{ {
public: public:
WaffleVariation(T weight = 1.0) : ParametricVariation<T>("waffle", eVariationId::VAR_WAFFLE, weight) WaffleVariation(T weight = 1.0) : ParametricVariation<T>("waffle", eVariationId::VAR_WAFFLE, weight)
@ -1616,7 +1616,7 @@ private:
/// Square3D. /// Square3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Square3DVariation : public Variation<T> class Square3DVariation : public Variation<T>
{ {
public: public:
Square3DVariation(T weight = 1.0) : Variation<T>("square3D", eVariationId::VAR_SQUARE3D, weight) { } Square3DVariation(T weight = 1.0) : Variation<T>("square3D", eVariationId::VAR_SQUARE3D, weight) { }
@ -1647,7 +1647,7 @@ public:
/// SuperShape3D. /// SuperShape3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SuperShape3DVariation : public ParametricVariation<T> class SuperShape3DVariation : public ParametricVariation<T>
{ {
public: public:
SuperShape3DVariation(T weight = 1.0) : ParametricVariation<T>("SuperShape3D", eVariationId::VAR_SUPER_SHAPE3D, weight) SuperShape3DVariation(T weight = 1.0) : ParametricVariation<T>("SuperShape3D", eVariationId::VAR_SUPER_SHAPE3D, weight)
@ -1851,7 +1851,7 @@ private:
/// sphyp3D. /// sphyp3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Sphyp3DVariation : public ParametricVariation<T> class Sphyp3DVariation : public ParametricVariation<T>
{ {
public: public:
Sphyp3DVariation(T weight = 1.0) : ParametricVariation<T>("sphyp3D", eVariationId::VAR_SPHYP3D, weight, true) Sphyp3DVariation(T weight = 1.0) : ParametricVariation<T>("sphyp3D", eVariationId::VAR_SPHYP3D, weight, true)
@ -1935,7 +1935,7 @@ private:
/// circlecrop. /// circlecrop.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CirclecropVariation : public ParametricVariation<T> class CirclecropVariation : public ParametricVariation<T>
{ {
public: public:
CirclecropVariation(T weight = 1.0) : ParametricVariation<T>("circlecrop", eVariationId::VAR_CIRCLECROP, weight) CirclecropVariation(T weight = 1.0) : ParametricVariation<T>("circlecrop", eVariationId::VAR_CIRCLECROP, weight)
@ -2092,7 +2092,7 @@ private:
/// julian3Dx. /// julian3Dx.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Julian3DxVariation : public ParametricVariation<T> class Julian3DxVariation : public ParametricVariation<T>
{ {
public: public:
Julian3DxVariation(T weight = 1.0) : ParametricVariation<T>("julian3Dx", eVariationId::VAR_JULIAN3DX, weight, true, true) Julian3DxVariation(T weight = 1.0) : ParametricVariation<T>("julian3Dx", eVariationId::VAR_JULIAN3DX, weight, true, true)
@ -2188,7 +2188,7 @@ private:
/// fourth. /// fourth.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FourthVariation : public ParametricVariation<T> class FourthVariation : public ParametricVariation<T>
{ {
public: public:
FourthVariation(T weight = 1.0) : ParametricVariation<T>("fourth", eVariationId::VAR_FOURTH, weight, true, true, false, false, true) FourthVariation(T weight = 1.0) : ParametricVariation<T>("fourth", eVariationId::VAR_FOURTH, weight, true, true, false, false, true)
@ -2356,7 +2356,7 @@ private:
/// mobiq. /// mobiq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API MobiqVariation : public ParametricVariation<T> class MobiqVariation : public ParametricVariation<T>
{ {
public: public:
MobiqVariation(T weight = 1.0) : ParametricVariation<T>("mobiq", eVariationId::VAR_MOBIQ, weight) MobiqVariation(T weight = 1.0) : ParametricVariation<T>("mobiq", eVariationId::VAR_MOBIQ, weight)
@ -2507,7 +2507,7 @@ private:
/// spherivoid. /// spherivoid.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SpherivoidVariation : public ParametricVariation<T> class SpherivoidVariation : public ParametricVariation<T>
{ {
public: public:
SpherivoidVariation(T weight = 1.0) : ParametricVariation<T>("spherivoid", eVariationId::VAR_SPHERIVOID, weight, true, true, false, false, true) SpherivoidVariation(T weight = 1.0) : ParametricVariation<T>("spherivoid", eVariationId::VAR_SPHERIVOID, weight, true, true, false, false, true)
@ -2569,7 +2569,7 @@ private:
/// farblur. /// farblur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FarblurVariation : public ParametricVariation<T> class FarblurVariation : public ParametricVariation<T>
{ {
public: public:
FarblurVariation(T weight = 1.0) : ParametricVariation<T>("farblur", eVariationId::VAR_FARBLUR, weight) FarblurVariation(T weight = 1.0) : ParametricVariation<T>("farblur", eVariationId::VAR_FARBLUR, weight)
@ -2658,7 +2658,7 @@ private:
/// curl_sp. /// curl_sp.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CurlSPVariation : public ParametricVariation<T> class CurlSPVariation : public ParametricVariation<T>
{ {
public: public:
CurlSPVariation(T weight = 1.0) : ParametricVariation<T>("curl_sp", eVariationId::VAR_CURL_SP, weight) CurlSPVariation(T weight = 1.0) : ParametricVariation<T>("curl_sp", eVariationId::VAR_CURL_SP, weight)
@ -2763,7 +2763,7 @@ private:
/// heat. /// heat.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HeatVariation : public ParametricVariation<T> class HeatVariation : public ParametricVariation<T>
{ {
public: public:
HeatVariation(T weight = 1.0) : ParametricVariation<T>("heat", eVariationId::VAR_HEAT, weight, true, false, false, false, true) HeatVariation(T weight = 1.0) : ParametricVariation<T>("heat", eVariationId::VAR_HEAT, weight, true, false, false, false, true)
@ -2906,7 +2906,7 @@ private:
/// interference2. /// interference2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Interference2Variation : public ParametricVariation<T> class Interference2Variation : public ParametricVariation<T>
{ {
public: public:
Interference2Variation(T weight = 1.0) : ParametricVariation<T>("interference2", eVariationId::VAR_INTERFERENCE2, weight) Interference2Variation(T weight = 1.0) : ParametricVariation<T>("interference2", eVariationId::VAR_INTERFERENCE2, weight)
@ -3112,7 +3112,7 @@ private:
/// sinq. /// sinq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SinqVariation : public Variation<T> class SinqVariation : public Variation<T>
{ {
public: public:
SinqVariation(T weight = 1.0) : Variation<T>("sinq", eVariationId::VAR_SINQ, weight) { } SinqVariation(T weight = 1.0) : Variation<T>("sinq", eVariationId::VAR_SINQ, weight) { }
@ -3161,7 +3161,7 @@ public:
/// sinhq. /// sinhq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SinhqVariation : public Variation<T> class SinhqVariation : public Variation<T>
{ {
public: public:
SinhqVariation(T weight = 1.0) : Variation<T>("sinhq", eVariationId::VAR_SINHQ, weight) { } SinhqVariation(T weight = 1.0) : Variation<T>("sinhq", eVariationId::VAR_SINHQ, weight) { }
@ -3210,7 +3210,7 @@ public:
/// secq. /// secq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SecqVariation : public Variation<T> class SecqVariation : public Variation<T>
{ {
public: public:
SecqVariation(T weight = 1.0) : Variation<T>("secq", eVariationId::VAR_SECQ, weight, true) { } SecqVariation(T weight = 1.0) : Variation<T>("secq", eVariationId::VAR_SECQ, weight, true) { }
@ -3261,7 +3261,7 @@ public:
/// sechq. /// sechq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SechqVariation : public Variation<T> class SechqVariation : public Variation<T>
{ {
public: public:
SechqVariation(T weight = 1.0) : Variation<T>("sechq", eVariationId::VAR_SECHQ, weight, true) { } SechqVariation(T weight = 1.0) : Variation<T>("sechq", eVariationId::VAR_SECHQ, weight, true) { }
@ -3312,7 +3312,7 @@ public:
/// tanq. /// tanq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TanqVariation : public Variation<T> class TanqVariation : public Variation<T>
{ {
public: public:
TanqVariation(T weight = 1.0) : Variation<T>("tanq", eVariationId::VAR_TANQ, weight) { } TanqVariation(T weight = 1.0) : Variation<T>("tanq", eVariationId::VAR_TANQ, weight) { }
@ -3368,7 +3368,7 @@ public:
/// tanhq. /// tanhq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TanhqVariation : public Variation<T> class TanhqVariation : public Variation<T>
{ {
public: public:
TanhqVariation(T weight = 1.0) : Variation<T>("tanhq", eVariationId::VAR_TANHQ, weight) { } TanhqVariation(T weight = 1.0) : Variation<T>("tanhq", eVariationId::VAR_TANHQ, weight) { }
@ -3424,7 +3424,7 @@ public:
/// cosq. /// cosq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CosqVariation : public Variation<T> class CosqVariation : public Variation<T>
{ {
public: public:
CosqVariation(T weight = 1.0) : Variation<T>("cosq", eVariationId::VAR_COSQ, weight) { } CosqVariation(T weight = 1.0) : Variation<T>("cosq", eVariationId::VAR_COSQ, weight) { }
@ -3473,7 +3473,7 @@ public:
/// coshq. /// coshq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CoshqVariation : public Variation<T> class CoshqVariation : public Variation<T>
{ {
public: public:
CoshqVariation(T weight = 1.0) : Variation<T>("coshq", eVariationId::VAR_COSHQ, weight) { } CoshqVariation(T weight = 1.0) : Variation<T>("coshq", eVariationId::VAR_COSHQ, weight) { }
@ -3522,7 +3522,7 @@ public:
/// cotq. /// cotq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CotqVariation : public Variation<T> class CotqVariation : public Variation<T>
{ {
public: public:
CotqVariation(T weight = 1.0) : Variation<T>("cotq", eVariationId::VAR_COTQ, weight) { } CotqVariation(T weight = 1.0) : Variation<T>("cotq", eVariationId::VAR_COTQ, weight) { }
@ -3578,7 +3578,7 @@ public:
/// cothq. /// cothq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CothqVariation : public Variation<T> class CothqVariation : public Variation<T>
{ {
public: public:
CothqVariation(T weight = 1.0) : Variation<T>("cothq", eVariationId::VAR_COTHQ, weight) { } CothqVariation(T weight = 1.0) : Variation<T>("cothq", eVariationId::VAR_COTHQ, weight) { }
@ -3634,7 +3634,7 @@ public:
/// cscq. /// cscq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CscqVariation : public Variation<T> class CscqVariation : public Variation<T>
{ {
public: public:
CscqVariation(T weight = 1.0) : Variation<T>("cscq", eVariationId::VAR_CSCQ, weight, true) { } CscqVariation(T weight = 1.0) : Variation<T>("cscq", eVariationId::VAR_CSCQ, weight, true) { }
@ -3685,7 +3685,7 @@ public:
/// cschq. /// cschq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CschqVariation : public Variation<T> class CschqVariation : public Variation<T>
{ {
public: public:
CschqVariation(T weight = 1.0) : Variation<T>("cschq", eVariationId::VAR_CSCHQ, weight, true) { } CschqVariation(T weight = 1.0) : Variation<T>("cschq", eVariationId::VAR_CSCHQ, weight, true) { }
@ -3736,7 +3736,7 @@ public:
/// estiq. /// estiq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API EstiqVariation : public Variation<T> class EstiqVariation : public Variation<T>
{ {
public: public:
EstiqVariation(T weight = 1.0) : Variation<T>("estiq", eVariationId::VAR_ESTIQ, weight) { } EstiqVariation(T weight = 1.0) : Variation<T>("estiq", eVariationId::VAR_ESTIQ, weight) { }
@ -3783,7 +3783,7 @@ public:
/// loq. /// loq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LoqVariation : public ParametricVariation<T> class LoqVariation : public ParametricVariation<T>
{ {
public: public:
LoqVariation(T weight = 1.0) : ParametricVariation<T>("loq", eVariationId::VAR_LOQ, weight) LoqVariation(T weight = 1.0) : ParametricVariation<T>("loq", eVariationId::VAR_LOQ, weight)
@ -3849,7 +3849,7 @@ private:
/// curvature. /// curvature.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CurvatureVariation : public Variation<T> class CurvatureVariation : public Variation<T>
{ {
public: public:
CurvatureVariation(T weight = 1.0) : Variation<T>("curvature", eVariationId::VAR_CURVATURE, weight, true, true, false, false, true) { } CurvatureVariation(T weight = 1.0) : Variation<T>("curvature", eVariationId::VAR_CURVATURE, weight, true, true, false, false, true) { }
@ -3885,7 +3885,7 @@ public:
/// q_ode. /// q_ode.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API QodeVariation : public ParametricVariation<T> class QodeVariation : public ParametricVariation<T>
{ {
public: public:
QodeVariation(T weight = 1.0) : ParametricVariation<T>("q_ode", eVariationId::VAR_Q_ODE, weight) QodeVariation(T weight = 1.0) : ParametricVariation<T>("q_ode", eVariationId::VAR_Q_ODE, weight)
@ -3977,7 +3977,7 @@ private:
/// blur_heart. /// blur_heart.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlurHeartVariation : public ParametricVariation<T> class BlurHeartVariation : public ParametricVariation<T>
{ {
public: public:
BlurHeartVariation(T weight = 1.0) : ParametricVariation<T>("blur_heart", eVariationId::VAR_BLUR_HEART, weight) BlurHeartVariation(T weight = 1.0) : ParametricVariation<T>("blur_heart", eVariationId::VAR_BLUR_HEART, weight)
@ -4073,7 +4073,7 @@ private:
/// Truchet. /// Truchet.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TruchetVariation : public ParametricVariation<T> class TruchetVariation : public ParametricVariation<T>
{ {
public: public:
TruchetVariation(T weight = 1.0) : ParametricVariation<T>("Truchet", eVariationId::VAR_TRUCHET, weight) TruchetVariation(T weight = 1.0) : ParametricVariation<T>("Truchet", eVariationId::VAR_TRUCHET, weight)
@ -4392,7 +4392,7 @@ private:
/// gdoffs. /// gdoffs.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GdoffsVariation : public ParametricVariation<T> class GdoffsVariation : public ParametricVariation<T>
{ {
public: public:
GdoffsVariation(T weight = 1.0) : ParametricVariation<T>("gdoffs", eVariationId::VAR_GDOFFS, weight) GdoffsVariation(T weight = 1.0) : ParametricVariation<T>("gdoffs", eVariationId::VAR_GDOFFS, weight)
@ -4549,7 +4549,7 @@ private:
/// octagon. /// octagon.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API OctagonVariation : public ParametricVariation<T> class OctagonVariation : public ParametricVariation<T>
{ {
public: public:
OctagonVariation(T weight = 1.0) : ParametricVariation<T>("octagon", eVariationId::VAR_OCTAGON, weight) OctagonVariation(T weight = 1.0) : ParametricVariation<T>("octagon", eVariationId::VAR_OCTAGON, weight)
@ -4689,7 +4689,7 @@ private:
/// trade. /// trade.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API TradeVariation : public ParametricVariation<T> class TradeVariation : public ParametricVariation<T>
{ {
public: public:
TradeVariation(T weight = 1.0) : ParametricVariation<T>("trade", eVariationId::VAR_TRADE, weight) TradeVariation(T weight = 1.0) : ParametricVariation<T>("trade", eVariationId::VAR_TRADE, weight)
@ -4834,7 +4834,7 @@ private:
/// Juliac. /// Juliac.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JuliacVariation : public ParametricVariation<T> class JuliacVariation : public ParametricVariation<T>
{ {
public: public:
JuliacVariation(T weight = 1.0) : ParametricVariation<T>("Juliac", eVariationId::VAR_JULIAC, weight, true, false, false, false, true) JuliacVariation(T weight = 1.0) : ParametricVariation<T>("Juliac", eVariationId::VAR_JULIAC, weight, true, false, false, false, true)
@ -4909,7 +4909,7 @@ private:
/// blade3D. /// blade3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Blade3DVariation : public Variation<T> class Blade3DVariation : public Variation<T>
{ {
public: public:
Blade3DVariation(T weight = 1.0) : Variation<T>("blade3D", eVariationId::VAR_BLADE3D, weight, true, true) { } Blade3DVariation(T weight = 1.0) : Variation<T>("blade3D", eVariationId::VAR_BLADE3D, weight, true, true) { }
@ -4947,7 +4947,7 @@ public:
/// Blob3D. /// Blob3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Blob3DVariation : public ParametricVariation<T> class Blob3DVariation : public ParametricVariation<T>
{ {
public: public:
Blob3DVariation(T weight = 1.0) : ParametricVariation<T>("blob3D", eVariationId::VAR_BLOB3D, weight, true, true, true, true) Blob3DVariation(T weight = 1.0) : ParametricVariation<T>("blob3D", eVariationId::VAR_BLOB3D, weight, true, true, true, true)
@ -5019,7 +5019,7 @@ private:
/// blocky. /// blocky.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BlockyVariation : public ParametricVariation<T> class BlockyVariation : public ParametricVariation<T>
{ {
public: public:
BlockyVariation(T weight = 1.0) : ParametricVariation<T>("blocky", eVariationId::VAR_BLOCKY, weight, true) BlockyVariation(T weight = 1.0) : ParametricVariation<T>("blocky", eVariationId::VAR_BLOCKY, weight, true)
@ -5175,7 +5175,7 @@ MAKEPREPOSTPARVAR(Blocky, blocky, BLOCKY)
///// LinearXZ. ///// LinearXZ.
///// </summary> ///// </summary>
//template <typename T> //template <typename T>
//class EMBER_API LinearXZVariation : public Variation<T> //class LinearXZVariation : public Variation<T>
//{ //{
//public: //public:
// LinearXZVariation(T weight = 1.0) : Variation<T>("linearxz", eVariationId::VAR_LINEAR_XZ, weight) { } // LinearXZVariation(T weight = 1.0) : Variation<T>("linearxz", eVariationId::VAR_LINEAR_XZ, weight) { }
@ -5206,7 +5206,7 @@ MAKEPREPOSTPARVAR(Blocky, blocky, BLOCKY)
///// LinearYZ. ///// LinearYZ.
///// </summary> ///// </summary>
//template <typename T> //template <typename T>
//class EMBER_API LinearYZVariation : public Variation<T> //class LinearYZVariation : public Variation<T>
//{ //{
//public: //public:
// LinearYZVariation(T weight = 1.0) : Variation<T>("linearyz", eVariationId::VAR_LINEAR_YZ, weight) { } // LinearYZVariation(T weight = 1.0) : Variation<T>("linearyz", eVariationId::VAR_LINEAR_YZ, weight) { }

View File

@ -8,7 +8,7 @@ namespace EmberNs
/// bubble2. /// bubble2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Bubble2Variation : public ParametricVariation<T> class Bubble2Variation : public ParametricVariation<T>
{ {
public: public:
Bubble2Variation(T weight = 1.0) : ParametricVariation<T>("bubble2", eVariationId::VAR_BUBBLE2, weight, true) Bubble2Variation(T weight = 1.0) : ParametricVariation<T>("bubble2", eVariationId::VAR_BUBBLE2, weight, true)
@ -79,7 +79,7 @@ private:
/// CircleLinear. /// CircleLinear.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CircleLinearVariation : public ParametricVariation<T> class CircleLinearVariation : public ParametricVariation<T>
{ {
public: public:
CircleLinearVariation(T weight = 1.0) : ParametricVariation<T>("CircleLinear", eVariationId::VAR_CIRCLELINEAR, weight) CircleLinearVariation(T weight = 1.0) : ParametricVariation<T>("CircleLinear", eVariationId::VAR_CIRCLELINEAR, weight)
@ -260,7 +260,7 @@ private:
/// The original would loop infinitely as x and y approached zero, so put a check for a max of 10 iters. /// The original would loop infinitely as x and y approached zero, so put a check for a max of 10 iters.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CircleRandVariation : public ParametricVariation<T> class CircleRandVariation : public ParametricVariation<T>
{ {
public: public:
CircleRandVariation(T weight = 1.0) : ParametricVariation<T>("CircleRand", eVariationId::VAR_CIRCLERAND, weight) CircleRandVariation(T weight = 1.0) : ParametricVariation<T>("CircleRand", eVariationId::VAR_CIRCLERAND, weight)
@ -386,7 +386,7 @@ private:
/// The original would loop infinitely as x and y approached zero, so put a check for a max of 10 iters. /// The original would loop infinitely as x and y approached zero, so put a check for a max of 10 iters.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CircleTrans1Variation : public ParametricVariation<T> class CircleTrans1Variation : public ParametricVariation<T>
{ {
public: public:
CircleTrans1Variation(T weight = 1.0) : ParametricVariation<T>("CircleTrans1", eVariationId::VAR_CIRCLETRANS1, weight) CircleTrans1Variation(T weight = 1.0) : ParametricVariation<T>("CircleTrans1", eVariationId::VAR_CIRCLETRANS1, weight)
@ -576,7 +576,7 @@ private:
/// cubic3D. /// cubic3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Cubic3DVariation : public ParametricVariation<T> class Cubic3DVariation : public ParametricVariation<T>
{ {
public: public:
Cubic3DVariation(T weight = 1.0) : ParametricVariation<T>("cubic3D", eVariationId::VAR_CUBIC3D, weight) Cubic3DVariation(T weight = 1.0) : ParametricVariation<T>("cubic3D", eVariationId::VAR_CUBIC3D, weight)
@ -803,7 +803,7 @@ private:
/// cubicLattice_3D. /// cubicLattice_3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CubicLattice3DVariation : public ParametricVariation<T> class CubicLattice3DVariation : public ParametricVariation<T>
{ {
public: public:
CubicLattice3DVariation(T weight = 1.0) : ParametricVariation<T>("cubicLattice_3D", eVariationId::VAR_CUBIC_LATTICE3D, weight) CubicLattice3DVariation(T weight = 1.0) : ParametricVariation<T>("cubicLattice_3D", eVariationId::VAR_CUBIC_LATTICE3D, weight)
@ -1021,7 +1021,7 @@ private:
/// foci_3D. /// foci_3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Foci3DVariation : public Variation<T> class Foci3DVariation : public Variation<T>
{ {
public: public:
Foci3DVariation(T weight = 1.0) : Variation<T>("foci_3D", eVariationId::VAR_FOCI3D, weight, false, false, false, false, true) { } Foci3DVariation(T weight = 1.0) : Variation<T>("foci_3D", eVariationId::VAR_FOCI3D, weight, false, false, false, false, true) { }
@ -1061,7 +1061,7 @@ public:
/// ho. /// ho.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HoVariation : public ParametricVariation<T> class HoVariation : public ParametricVariation<T>
{ {
public: public:
HoVariation(T weight = 1.0) : ParametricVariation<T>("ho", eVariationId::VAR_HO, weight) HoVariation(T weight = 1.0) : ParametricVariation<T>("ho", eVariationId::VAR_HO, weight)
@ -1144,7 +1144,7 @@ private:
/// Julia3Dq. /// Julia3Dq.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Julia3DqVariation : public ParametricVariation<T> class Julia3DqVariation : public ParametricVariation<T>
{ {
public: public:
Julia3DqVariation(T weight = 1.0) : ParametricVariation<T>("julia3Dq", eVariationId::VAR_JULIA3DQ, weight, true, true, false, false, true) Julia3DqVariation(T weight = 1.0) : ParametricVariation<T>("julia3Dq", eVariationId::VAR_JULIA3DQ, weight, true, true, false, false, true)
@ -1230,7 +1230,7 @@ private:
/// line. /// line.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LineVariation : public ParametricVariation<T> class LineVariation : public ParametricVariation<T>
{ {
public: public:
LineVariation(T weight = 1.0) : ParametricVariation<T>("line", eVariationId::VAR_LINE, weight) LineVariation(T weight = 1.0) : ParametricVariation<T>("line", eVariationId::VAR_LINE, weight)
@ -1306,7 +1306,7 @@ private:
/// Loonie2. /// Loonie2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Loonie2Variation : public ParametricVariation<T> class Loonie2Variation : public ParametricVariation<T>
{ {
public: public:
Loonie2Variation(T weight = 1.0) : ParametricVariation<T>("loonie2", eVariationId::VAR_LOONIE2, weight, true, true) Loonie2Variation(T weight = 1.0) : ParametricVariation<T>("loonie2", eVariationId::VAR_LOONIE2, weight, true, true)
@ -1467,7 +1467,7 @@ private:
/// Loonie3. /// Loonie3.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Loonie3Variation : public ParametricVariation<T> class Loonie3Variation : public ParametricVariation<T>
{ {
public: public:
Loonie3Variation(T weight = 1.0) : ParametricVariation<T>("loonie3", eVariationId::VAR_LOONIE3, weight, true) Loonie3Variation(T weight = 1.0) : ParametricVariation<T>("loonie3", eVariationId::VAR_LOONIE3, weight, true)
@ -1555,7 +1555,7 @@ private:
/// loonie_3D. /// loonie_3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Loonie3DVariation : public ParametricVariation<T> class Loonie3DVariation : public ParametricVariation<T>
{ {
public: public:
Loonie3DVariation(T weight = 1.0) : ParametricVariation<T>("loonie_3D", eVariationId::VAR_LOONIE3D, weight, true, false, false, false, true) Loonie3DVariation(T weight = 1.0) : ParametricVariation<T>("loonie_3D", eVariationId::VAR_LOONIE3D, weight, true, false, false, false, true)
@ -1637,7 +1637,7 @@ private:
/// mcarpet. /// mcarpet.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API McarpetVariation : public ParametricVariation<T> class McarpetVariation : public ParametricVariation<T>
{ {
public: public:
McarpetVariation(T weight = 1.0) : ParametricVariation<T>("mcarpet", eVariationId::VAR_MCARPET, weight, true) McarpetVariation(T weight = 1.0) : ParametricVariation<T>("mcarpet", eVariationId::VAR_MCARPET, weight, true)
@ -1706,7 +1706,7 @@ private:
/// which is slightly slower, but more correct. /// which is slightly slower, but more correct.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Waves23DVariation : public ParametricVariation<T> class Waves23DVariation : public ParametricVariation<T>
{ {
public: public:
Waves23DVariation(T weight = 1.0) : ParametricVariation<T>("waves2_3D", eVariationId::VAR_WAVES23D, weight) Waves23DVariation(T weight = 1.0) : ParametricVariation<T>("waves2_3D", eVariationId::VAR_WAVES23D, weight)
@ -1760,7 +1760,7 @@ private:
/// Pie3D. /// Pie3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Pie3DVariation : public ParametricVariation<T> class Pie3DVariation : public ParametricVariation<T>
{ {
public: public:
Pie3DVariation(T weight = 1.0) : ParametricVariation<T>("pie3D", eVariationId::VAR_PIE3D, weight) Pie3DVariation(T weight = 1.0) : ParametricVariation<T>("pie3D", eVariationId::VAR_PIE3D, weight)
@ -1828,7 +1828,7 @@ private:
/// popcorn2_3D. /// popcorn2_3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Popcorn23DVariation : public ParametricVariation<T> class Popcorn23DVariation : public ParametricVariation<T>
{ {
public: public:
Popcorn23DVariation(T weight = 1.0) : ParametricVariation<T>("popcorn2_3D", eVariationId::VAR_POPCORN23D, weight, false, false, false, false, true) Popcorn23DVariation(T weight = 1.0) : ParametricVariation<T>("popcorn2_3D", eVariationId::VAR_POPCORN23D, weight, false, false, false, false, true)
@ -1940,7 +1940,7 @@ private:
/// sinusoidal3d. /// sinusoidal3d.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Sinusoidal3DVariation : public Variation<T> class Sinusoidal3DVariation : public Variation<T>
{ {
public: public:
Sinusoidal3DVariation(T weight = 1.0) : Variation<T>("sinusoidal3D", eVariationId::VAR_SINUSOIDAL3D, weight) { } Sinusoidal3DVariation(T weight = 1.0) : Variation<T>("sinusoidal3D", eVariationId::VAR_SINUSOIDAL3D, weight) { }
@ -1971,7 +1971,7 @@ public:
/// scry_3D. /// scry_3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Scry3DVariation : public ParametricVariation<T> class Scry3DVariation : public ParametricVariation<T>
{ {
public: public:
Scry3DVariation(T weight = 1.0) : ParametricVariation<T>("scry_3D", eVariationId::VAR_SCRY3D, weight, true, false, false, false, true) Scry3DVariation(T weight = 1.0) : ParametricVariation<T>("scry_3D", eVariationId::VAR_SCRY3D, weight, true, false, false, false, true)
@ -2031,7 +2031,7 @@ private:
/// shredlin. /// shredlin.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ShredlinVariation : public ParametricVariation<T> class ShredlinVariation : public ParametricVariation<T>
{ {
public: public:
ShredlinVariation(T weight = 1.0) : ParametricVariation<T>("shredlin", eVariationId::VAR_SHRED_LIN, weight) ShredlinVariation(T weight = 1.0) : ParametricVariation<T>("shredlin", eVariationId::VAR_SHRED_LIN, weight)
@ -2117,7 +2117,7 @@ private:
/// splitbrdr. /// splitbrdr.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SplitBrdrVariation : public ParametricVariation<T> class SplitBrdrVariation : public ParametricVariation<T>
{ {
public: public:
SplitBrdrVariation(T weight = 1.0) : ParametricVariation<T>("SplitBrdr", eVariationId::VAR_SPLIT_BRDR, weight, true) SplitBrdrVariation(T weight = 1.0) : ParametricVariation<T>("SplitBrdr", eVariationId::VAR_SPLIT_BRDR, weight, true)
@ -2261,7 +2261,7 @@ private:
/// wdisc. /// wdisc.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API WdiscVariation : public Variation<T> class WdiscVariation : public Variation<T>
{ {
public: public:
WdiscVariation(T weight = 1.0) : Variation<T>("wdisc", eVariationId::VAR_WDISC, weight, true, true, false, false, true) { } WdiscVariation(T weight = 1.0) : Variation<T>("wdisc", eVariationId::VAR_WDISC, weight, true, true, false, false, true) { }
@ -2304,7 +2304,7 @@ public:
/// falloff. /// falloff.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API FalloffVariation : public ParametricVariation<T> class FalloffVariation : public ParametricVariation<T>
{ {
public: public:
FalloffVariation(T weight = 1.0) : ParametricVariation<T>("falloff", eVariationId::VAR_FALLOFF, weight, false, false, false, false, true) FalloffVariation(T weight = 1.0) : ParametricVariation<T>("falloff", eVariationId::VAR_FALLOFF, weight, false, false, false, false, true)
@ -2467,7 +2467,7 @@ private:
/// falloff2. /// falloff2.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Falloff2Variation : public ParametricVariation<T> class Falloff2Variation : public ParametricVariation<T>
{ {
public: public:
Falloff2Variation(T weight = 1.0) : ParametricVariation<T>("falloff2", eVariationId::VAR_FALLOFF2, weight, true, false, false, false, true) Falloff2Variation(T weight = 1.0) : ParametricVariation<T>("falloff2", eVariationId::VAR_FALLOFF2, weight, true, false, false, false, true)
@ -2667,7 +2667,7 @@ private:
/// falloff3. /// falloff3.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Falloff3Variation : public ParametricVariation<T> class Falloff3Variation : public ParametricVariation<T>
{ {
public: public:
Falloff3Variation(T weight = 1.0) : ParametricVariation<T>("falloff3", eVariationId::VAR_FALLOFF3, weight, true, false, false, false, true) Falloff3Variation(T weight = 1.0) : ParametricVariation<T>("falloff3", eVariationId::VAR_FALLOFF3, weight, true, false, false, false, true)
@ -2900,7 +2900,7 @@ private:
/// xtrb. /// xtrb.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API XtrbVariation : public ParametricVariation<T> class XtrbVariation : public ParametricVariation<T>
{ {
public: public:
XtrbVariation(T weight = 1.0) : ParametricVariation<T>("xtrb", eVariationId::VAR_XTRB, weight) XtrbVariation(T weight = 1.0) : ParametricVariation<T>("xtrb", eVariationId::VAR_XTRB, weight)
@ -3438,7 +3438,7 @@ private:
/// This uses state and the OpenCL version looks different and better than the CPU. /// This uses state and the OpenCL version looks different and better than the CPU.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hexaplay3DVariation : public ParametricVariation<T> class Hexaplay3DVariation : public ParametricVariation<T>
{ {
public: public:
Hexaplay3DVariation(T weight = 1.0) : ParametricVariation<T>("hexaplay3D", eVariationId::VAR_HEXAPLAY3D, weight) Hexaplay3DVariation(T weight = 1.0) : ParametricVariation<T>("hexaplay3D", eVariationId::VAR_HEXAPLAY3D, weight)
@ -3717,7 +3717,7 @@ private:
/// This is because different paths do different things to helper.Out.z /// This is because different paths do different things to helper.Out.z
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Hexnix3DVariation : public ParametricVariation<T> class Hexnix3DVariation : public ParametricVariation<T>
{ {
public: public:
Hexnix3DVariation(T weight = 1.0) : ParametricVariation<T>("hexnix3D", eVariationId::VAR_HEXNIX3D, weight) Hexnix3DVariation(T weight = 1.0) : ParametricVariation<T>("hexnix3D", eVariationId::VAR_HEXNIX3D, weight)
@ -4101,7 +4101,7 @@ private:
/// hexcrop. /// hexcrop.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HexcropVariation : public ParametricVariation<T> class HexcropVariation : public ParametricVariation<T>
{ {
public: public:
HexcropVariation(T weight = 1.0) : ParametricVariation<T>("hexcrop", eVariationId::VAR_HEXCROP, weight) HexcropVariation(T weight = 1.0) : ParametricVariation<T>("hexcrop", eVariationId::VAR_HEXCROP, weight)

View File

@ -8,7 +8,7 @@ namespace EmberNs
/// hexes. /// hexes.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API HexesVariation : public ParametricVariation<T> class HexesVariation : public ParametricVariation<T>
{ {
public: public:
HexesVariation(T weight = 1.0) : ParametricVariation<T>("hexes", eVariationId::VAR_HEXES, weight) HexesVariation(T weight = 1.0) : ParametricVariation<T>("hexes", eVariationId::VAR_HEXES, weight)
@ -300,7 +300,7 @@ private:
/// nBlur. /// nBlur.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API NblurVariation : public ParametricVariation<T> class NblurVariation : public ParametricVariation<T>
{ {
struct RandXyParams struct RandXyParams
{ {
@ -1138,7 +1138,7 @@ private:
/// octapol. /// octapol.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API OctapolVariation : public ParametricVariation<T> class OctapolVariation : public ParametricVariation<T>
{ {
public: public:
OctapolVariation(T weight = 1.0) : ParametricVariation<T>("octapol", eVariationId::VAR_OCTAPOL, weight) OctapolVariation(T weight = 1.0) : ParametricVariation<T>("octapol", eVariationId::VAR_OCTAPOL, weight)
@ -1477,7 +1477,7 @@ private:
/// This uses the input point in an extremely rare way since it changes it. /// This uses the input point in an extremely rare way since it changes it.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CrobVariation : public ParametricVariation<T> class CrobVariation : public ParametricVariation<T>
{ {
public: public:
CrobVariation(T weight = 1.0) : ParametricVariation<T>("crob", eVariationId::VAR_CROB, weight) CrobVariation(T weight = 1.0) : ParametricVariation<T>("crob", eVariationId::VAR_CROB, weight)
@ -1810,7 +1810,7 @@ private:
/// bubbleT3D. /// bubbleT3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API BubbleT3DVariation : public ParametricVariation<T> class BubbleT3DVariation : public ParametricVariation<T>
{ {
public: public:
BubbleT3DVariation(T weight = 1.0) : ParametricVariation<T>("bubbleT3D", eVariationId::VAR_BUBBLET3D, weight, true) BubbleT3DVariation(T weight = 1.0) : ParametricVariation<T>("bubbleT3D", eVariationId::VAR_BUBBLET3D, weight, true)
@ -2361,7 +2361,7 @@ private:
/// synth. /// synth.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API SynthVariation : public ParametricVariation<T> class SynthVariation : public ParametricVariation<T>
{ {
public: public:
SynthVariation(T weight = 1.0) : ParametricVariation<T>("synth", eVariationId::VAR_SYNTH, weight, true, true, false, true) SynthVariation(T weight = 1.0) : ParametricVariation<T>("synth", eVariationId::VAR_SYNTH, weight, true, true, false, true)
@ -3694,7 +3694,7 @@ private:
/// crackle. /// crackle.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API CrackleVariation : public ParametricVariation<T> class CrackleVariation : public ParametricVariation<T>
{ {
public: public:
CrackleVariation(T weight = 1.0) : ParametricVariation<T>("crackle", eVariationId::VAR_CRACKLE, weight) CrackleVariation(T weight = 1.0) : ParametricVariation<T>("crackle", eVariationId::VAR_CRACKLE, weight)
@ -3922,7 +3922,7 @@ private:
/// This variation is special in that it only exists as a post_. /// This variation is special in that it only exists as a post_.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PostSmartcropVariation : public ParametricVariation<T> class PostSmartcropVariation : public ParametricVariation<T>
{ {
public: public:
PostSmartcropVariation(T weight = 1.0) : ParametricVariation<T>("post_smartcrop", eVariationId::VAR_POST_SMARTCROP, weight) PostSmartcropVariation(T weight = 1.0) : ParametricVariation<T>("post_smartcrop", eVariationId::VAR_POST_SMARTCROP, weight)
@ -4428,7 +4428,7 @@ private:
/// erf. /// erf.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API ErfVariation : public Variation<T> class ErfVariation : public Variation<T>
{ {
public: public:
ErfVariation(T weight = 1.0) : Variation<T>("erf", eVariationId::VAR_ERF, weight) { } ErfVariation(T weight = 1.0) : Variation<T>("erf", eVariationId::VAR_ERF, weight) { }
@ -4459,7 +4459,7 @@ public:
/// xerf. /// xerf.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API XerfVariation : public Variation<T> class XerfVariation : public Variation<T>
{ {
public: public:
XerfVariation(T weight = 1.0) : Variation<T>("xerf", eVariationId::VAR_XERF, weight, true) { } XerfVariation(T weight = 1.0) : Variation<T>("xerf", eVariationId::VAR_XERF, weight, true) { }
@ -4494,7 +4494,7 @@ public:
}; };
template <typename T> template <typename T>
class EMBER_API WVariation : public ParametricVariation<T> class WVariation : public ParametricVariation<T>
{ {
public: public:
WVariation(T weight = 1.0) : ParametricVariation<T>("w", eVariationId::VAR_W, weight, true, true, false, false, true) WVariation(T weight = 1.0) : ParametricVariation<T>("w", eVariationId::VAR_W, weight, true, true, false, false, true)
@ -4796,7 +4796,7 @@ private:
}; };
template <typename T> template <typename T>
class EMBER_API XVariation : public ParametricVariation<T> class XVariation : public ParametricVariation<T>
{ {
public: public:
XVariation(T weight = 1.0) : ParametricVariation<T>("x", eVariationId::VAR_X, weight, true, false, false, false, true) XVariation(T weight = 1.0) : ParametricVariation<T>("x", eVariationId::VAR_X, weight, true, false, false, false, true)
@ -4993,7 +4993,7 @@ private:
}; };
template <typename T> template <typename T>
class EMBER_API YVariation : public ParametricVariation<T> class YVariation : public ParametricVariation<T>
{ {
public: public:
YVariation(T weight = 1.0) : ParametricVariation<T>("y", eVariationId::VAR_Y, weight, true, true, false, false, true) YVariation(T weight = 1.0) : ParametricVariation<T>("y", eVariationId::VAR_Y, weight, true, true, false, false, true)
@ -5190,7 +5190,7 @@ private:
}; };
template <typename T> template <typename T>
class EMBER_API ZVariation : public ParametricVariation<T> class ZVariation : public ParametricVariation<T>
{ {
public: public:
ZVariation(T weight = 1.0) : ParametricVariation<T>("z", eVariationId::VAR_Z, weight, true, true, false, false, true) ZVariation(T weight = 1.0) : ParametricVariation<T>("z", eVariationId::VAR_Z, weight, true, true, false, false, true)

View File

@ -8,7 +8,7 @@ namespace EmberNs
/// splits3D. /// splits3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Splits3DVariation : public ParametricVariation<T> class Splits3DVariation : public ParametricVariation<T>
{ {
public: public:
Splits3DVariation(T weight = 1.0) : ParametricVariation<T>("splits3D", eVariationId::VAR_SPLITS3D, weight) Splits3DVariation(T weight = 1.0) : ParametricVariation<T>("splits3D", eVariationId::VAR_SPLITS3D, weight)
@ -93,7 +93,7 @@ private:
/// when running on the GPU. The results might look different. /// when running on the GPU. The results might look different.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API Waves2BVariation : public ParametricVariation<T> class Waves2BVariation : public ParametricVariation<T>
{ {
public: public:
Waves2BVariation(T weight = 1.0) : ParametricVariation<T>("waves2b", eVariationId::VAR_WAVES2B, weight) Waves2BVariation(T weight = 1.0) : ParametricVariation<T>("waves2b", eVariationId::VAR_WAVES2B, weight)
@ -249,7 +249,7 @@ private:
/// jac_cn. /// jac_cn.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JacCnVariation : public ParametricVariation<T> class JacCnVariation : public ParametricVariation<T>
{ {
public: public:
JacCnVariation(T weight = 1.0) : ParametricVariation<T>("jac_cn", eVariationId::VAR_JAC_CN, weight) JacCnVariation(T weight = 1.0) : ParametricVariation<T>("jac_cn", eVariationId::VAR_JAC_CN, weight)
@ -322,7 +322,7 @@ private:
/// jac_dn. /// jac_dn.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JacDnVariation : public ParametricVariation<T> class JacDnVariation : public ParametricVariation<T>
{ {
public: public:
JacDnVariation(T weight = 1.0) : ParametricVariation<T>("jac_dn", eVariationId::VAR_JAC_DN, weight) JacDnVariation(T weight = 1.0) : ParametricVariation<T>("jac_dn", eVariationId::VAR_JAC_DN, weight)
@ -395,7 +395,7 @@ private:
/// jac_sn. /// jac_sn.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API JacSnVariation : public ParametricVariation<T> class JacSnVariation : public ParametricVariation<T>
{ {
public: public:
JacSnVariation(T weight = 1.0) : ParametricVariation<T>("jac_sn", eVariationId::VAR_JAC_SN, weight) JacSnVariation(T weight = 1.0) : ParametricVariation<T>("jac_sn", eVariationId::VAR_JAC_SN, weight)
@ -468,7 +468,7 @@ private:
/// pressure_wave. /// pressure_wave.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PressureWaveVariation : public ParametricVariation<T> class PressureWaveVariation : public ParametricVariation<T>
{ {
public: public:
PressureWaveVariation(T weight = 1.0) : ParametricVariation<T>("pressure_wave", eVariationId::VAR_PRESSURE_WAVE, weight) PressureWaveVariation(T weight = 1.0) : ParametricVariation<T>("pressure_wave", eVariationId::VAR_PRESSURE_WAVE, weight)
@ -524,7 +524,7 @@ private:
/// gamma. /// gamma.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API GammaVariation : public Variation<T> class GammaVariation : public Variation<T>
{ {
public: public:
GammaVariation(T weight = 1.0) : Variation<T>("gamma", eVariationId::VAR_GAMMA, weight, true, true, false, false, true) GammaVariation(T weight = 1.0) : Variation<T>("gamma", eVariationId::VAR_GAMMA, weight, true, true, false, false, true)
@ -559,7 +559,7 @@ public:
/// prose3D. /// prose3D.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API PRose3DVariation : public ParametricVariation<T> class PRose3DVariation : public ParametricVariation<T>
{ {
public: public:
PRose3DVariation(T weight = 1.0) : ParametricVariation<T>("pRose3D", eVariationId::VAR_PROSE3D, weight, true, true, false, false, true) PRose3DVariation(T weight = 1.0) : ParametricVariation<T>("pRose3D", eVariationId::VAR_PROSE3D, weight, true, true, false, false, true)
@ -863,7 +863,7 @@ private:
/// http://jwildfire.org/forum/viewtopic.php?f=23&t=1450&p=2692#p2692 /// http://jwildfire.org/forum/viewtopic.php?f=23&t=1450&p=2692#p2692
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API LogDBVariation : public ParametricVariation<T> class LogDBVariation : public ParametricVariation<T>
{ {
public: public:
LogDBVariation(T weight = 1.0) : ParametricVariation<T>("log_db", eVariationId::VAR_LOG_DB, weight, true, false, false, false, true) LogDBVariation(T weight = 1.0) : ParametricVariation<T>("log_db", eVariationId::VAR_LOG_DB, weight, true, false, false, false, true)

View File

@ -9,7 +9,7 @@ namespace EmberNs
/// This accesses the summed output point in a rare and different way. /// This accesses the summed output point in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCBubbleVariation : public ParametricVariation<T> class DCBubbleVariation : public ParametricVariation<T>
{ {
public: public:
DCBubbleVariation(T weight = 1.0) : ParametricVariation<T>("dc_bubble", eVariationId::VAR_DC_BUBBLE, weight, true) DCBubbleVariation(T weight = 1.0) : ParametricVariation<T>("dc_bubble", eVariationId::VAR_DC_BUBBLE, weight, true)
@ -120,7 +120,7 @@ private:
/// DC Carpet. /// DC Carpet.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCCarpetVariation : public ParametricVariation<T> class DCCarpetVariation : public ParametricVariation<T>
{ {
public: public:
DCCarpetVariation(T weight = 1.0) : ParametricVariation<T>("dc_carpet", eVariationId::VAR_DC_CARPET, weight) DCCarpetVariation(T weight = 1.0) : ParametricVariation<T>("dc_carpet", eVariationId::VAR_DC_CARPET, weight)
@ -191,7 +191,7 @@ private:
/// DC Cube. /// DC Cube.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCCubeVariation : public ParametricVariation<T> class DCCubeVariation : public ParametricVariation<T>
{ {
public: public:
DCCubeVariation(T weight = 1.0) : ParametricVariation<T>("dc_cube", eVariationId::VAR_DC_CUBE, weight) DCCubeVariation(T weight = 1.0) : ParametricVariation<T>("dc_cube", eVariationId::VAR_DC_CUBE, weight)
@ -381,7 +381,7 @@ private:
/// This accesses the summed output point in a rare and different way. /// This accesses the summed output point in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCCylinderVariation : public ParametricVariation<T> class DCCylinderVariation : public ParametricVariation<T>
{ {
public: public:
DCCylinderVariation(T weight = 1.0) : ParametricVariation<T>("dc_cylinder", eVariationId::VAR_DC_CYLINDER, weight) DCCylinderVariation(T weight = 1.0) : ParametricVariation<T>("dc_cylinder", eVariationId::VAR_DC_CYLINDER, weight)
@ -508,7 +508,7 @@ private:
/// DC GridOut. /// DC GridOut.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCGridOutVariation : public Variation<T> class DCGridOutVariation : public Variation<T>
{ {
public: public:
DCGridOutVariation(T weight = 1.0) : Variation<T>("dc_gridout", eVariationId::VAR_DC_GRIDOUT, weight) { } DCGridOutVariation(T weight = 1.0) : Variation<T>("dc_gridout", eVariationId::VAR_DC_GRIDOUT, weight) { }
@ -685,7 +685,7 @@ public:
/// This accesses the summed output point in a rare and different way. /// This accesses the summed output point in a rare and different way.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCLinearVariation : public ParametricVariation<T> class DCLinearVariation : public ParametricVariation<T>
{ {
public: public:
DCLinearVariation(T weight = 1.0) : ParametricVariation<T>("dc_linear", eVariationId::VAR_DC_LINEAR, weight) DCLinearVariation(T weight = 1.0) : ParametricVariation<T>("dc_linear", eVariationId::VAR_DC_LINEAR, weight)
@ -795,7 +795,7 @@ private:
/// DC Triangle. /// DC Triangle.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCTriangleVariation : public ParametricVariation<T> class DCTriangleVariation : public ParametricVariation<T>
{ {
public: public:
DCTriangleVariation(T weight = 1.0) : ParametricVariation<T>("dc_triangle", eVariationId::VAR_DC_TRIANGLE, weight) DCTriangleVariation(T weight = 1.0) : ParametricVariation<T>("dc_triangle", eVariationId::VAR_DC_TRIANGLE, weight)
@ -1004,7 +1004,7 @@ private:
/// These will follow the same naming convention as all other variations. /// These will follow the same naming convention as all other variations.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCZTranslVariation : public ParametricVariation<T> class DCZTranslVariation : public ParametricVariation<T>
{ {
public: public:
DCZTranslVariation(T weight = 1.0) : ParametricVariation<T>("dc_ztransl", eVariationId::VAR_DC_ZTRANSL, weight) DCZTranslVariation(T weight = 1.0) : ParametricVariation<T>("dc_ztransl", eVariationId::VAR_DC_ZTRANSL, weight)
@ -1109,7 +1109,7 @@ private:
/// dc_perlin. /// dc_perlin.
/// </summary> /// </summary>
template <typename T> template <typename T>
class EMBER_API DCPerlinVariation : public ParametricVariation <T> class DCPerlinVariation : public ParametricVariation <T>
{ {
public: public:
DCPerlinVariation(T weight = 1.0) : ParametricVariation<T>("dc_perlin", eVariationId::VAR_DC_PERLIN, weight) DCPerlinVariation(T weight = 1.0) : ParametricVariation<T>("dc_perlin", eVariationId::VAR_DC_PERLIN, weight)

View File

@ -10,8 +10,8 @@
namespace EmberNs namespace EmberNs
{ {
/// <summary> /// <summary>
/// Xform and Variation need each other, but each can't include the other. /// Xform and Ember need each other, but each can't include the other.
/// So Xform includes this file, and Ember is declared as a forward declaration here. /// So Ember includes this file, and Ember is declared as a forward declaration here.
/// </summary> /// </summary>
template <typename T> class Ember; template <typename T> class Ember;
@ -879,6 +879,7 @@ public:
bool Flatten(vector<string>& names) bool Flatten(vector<string>& names)
{ {
bool shouldFlatten = true; bool shouldFlatten = true;
VariationList<T>& vl(VariationList<T>::Instance());
if (GetVariationById(eVariationId::VAR_FLATTEN) == nullptr) if (GetVariationById(eVariationId::VAR_FLATTEN) == nullptr)
{ {
@ -914,7 +915,7 @@ public:
if (shouldFlatten)//Flatten was not present and neither was any variation name or parameter in the list. if (shouldFlatten)//Flatten was not present and neither was any variation name or parameter in the list.
{ {
Variation<T>* var = new FlattenVariation<T>(); auto var = vl.GetVariationCopy(eVariationId::VAR_FLATTEN);
if (AddVariation(var)) if (AddVariation(var))
{ {

View File

@ -74,6 +74,7 @@ public:
/// Constructor that initializes the random context. /// Constructor that initializes the random context.
/// </summary> /// </summary>
XmlToEmber() XmlToEmber()
: m_VariationList(VariationList<T>::Instance())
{ {
Timing t; Timing t;
@ -1535,7 +1536,7 @@ private:
static bool m_Init; static bool m_Init;
static unordered_map<string, string> m_BadParamNames; static unordered_map<string, string> m_BadParamNames;
static vector<pair<pair<string, string>, vector<string>>> m_BadVariationNames; static vector<pair<pair<string, string>, vector<string>>> m_BadVariationNames;
VariationList<T> m_VariationList;//The variation list used to make copies of variations to populate the embers with. VariationList<T>& m_VariationList;//The variation list used to make copies of variations to populate the embers with.
PaletteList<T> m_PaletteList; PaletteList<T> m_PaletteList;
}; };
} }

View File

@ -64,13 +64,13 @@ bool EmberGenome(EmberOptions& opt)
return true; return true;
} }
VariationList<T>& varList(VariationList<T>::Instance());
if (opt.AllVars() || opt.RegVars() || opt.PreVars() || opt.PostVars()) if (opt.AllVars() || opt.RegVars() || opt.PreVars() || opt.PostVars())
{ {
VariationList<T> vl;
if (opt.AllVars()) if (opt.AllVars())
{ {
auto& vars = vl.AllVars(); auto& vars = varList.AllVars();
for (auto& v : vars) for (auto& v : vars)
cout << v->Name() << "\n"; cout << v->Name() << "\n";
@ -82,13 +82,13 @@ bool EmberGenome(EmberOptions& opt)
vector<Variation<T>*> vars; vector<Variation<T>*> vars;
if (opt.RegVars()) if (opt.RegVars())
vars.insert(vars.end(), vl.RegVars().begin(), vl.RegVars().end()); vars.insert(vars.end(), varList.RegVars().begin(), varList.RegVars().end());
if (opt.PreVars()) if (opt.PreVars())
vars.insert(vars.end(), vl.PreVars().begin(), vl.PreVars().end()); vars.insert(vars.end(), varList.PreVars().begin(), varList.PreVars().end());
if (opt.PostVars()) if (opt.PostVars())
vars.insert(vars.end(), vl.PostVars().begin(), vl.PostVars().end()); vars.insert(vars.end(), varList.PostVars().begin(), varList.PostVars().end());
for (auto& v : vars) for (auto& v : vars)
cout << v->Name() << "\n"; cout << v->Name() << "\n";
@ -116,7 +116,6 @@ bool EmberGenome(EmberOptions& opt)
Ember<T>* aselp0, *aselp1, *pTemplate = nullptr; Ember<T>* aselp0, *aselp1, *pTemplate = nullptr;
XmlToEmber<T> parser; XmlToEmber<T> parser;
EmberToXml<T> emberToXml; EmberToXml<T> emberToXml;
VariationList<T> varList;
EmberReport emberReport, emberReport2; EmberReport emberReport, emberReport2;
const vector<pair<size_t, size_t>> devices = Devices(opt.Devices()); const vector<pair<size_t, size_t>> devices = Devices(opt.Devices());
unique_ptr<RenderProgress<T>> progress(new RenderProgress<T>()); unique_ptr<RenderProgress<T>> progress(new RenderProgress<T>());

View File

@ -89,7 +89,7 @@ void MakeTestAllVarsRegPrePost(vector<Ember<T>>& embers)
{ {
uint index = 0; uint index = 0;
ostringstream ss; ostringstream ss;
VariationList<T> varList; VariationList<T>& varList(VariationList<T>::Instance());
PaletteList<T> paletteList; PaletteList<T> paletteList;
QTIsaac<ISAAC_SIZE, ISAAC_INT> rand; QTIsaac<ISAAC_SIZE, ISAAC_INT> rand;
paletteList.Add("flam3-palettes.xml"); paletteList.Add("flam3-palettes.xml");
@ -337,7 +337,7 @@ template <typename T>
static vector<Variation<T>*> FindVarsWith(vector<string>& stringVec, bool findAll = true) static vector<Variation<T>*> FindVarsWith(vector<string>& stringVec, bool findAll = true)
{ {
int index = 0; int index = 0;
VariationList<T> vl; VariationList<T>& vl(VariationList<T>::Instance());
vector<Variation<T>*> vec; vector<Variation<T>*> vec;
while (index < vl.RegSize()) while (index < vl.RegSize())
@ -360,9 +360,9 @@ static vector<Variation<T>*> FindVarsWith(vector<string>& stringVec, bool findAl
bool TestVarCounts() bool TestVarCounts()
{ {
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
#ifdef DO_DOUBLE #ifdef DO_DOUBLE
VariationList<double> vld; VariationList<double>& vld(VariationList<double>::Instance());
bool success((vlf.Size() == vld.Size()) && (vlf.Size() == size_t(eVariationId::LAST_VAR))); bool success((vlf.Size() == vld.Size()) && (vlf.Size() == size_t(eVariationId::LAST_VAR)));
#else #else
bool success = true; bool success = true;
@ -392,7 +392,7 @@ template <typename T>
bool TestVarUnique() bool TestVarUnique()
{ {
bool success = true; bool success = true;
VariationList<T> vl; VariationList<T>& vl(VariationList<T>::Instance());
vector<eVariationId> ids; vector<eVariationId> ids;
vector<string> names; vector<string> names;
ids.reserve(vl.Size()); ids.reserve(vl.Size());
@ -580,7 +580,7 @@ bool TestVarEqual(const Variation<sT>* var1, const Variation<dT>* var2)
bool TestVarPrePostNames() bool TestVarPrePostNames()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
for (size_t i = 0; i < vlf.Size(); i++) for (size_t i = 0; i < vlf.Size(); i++)
{ {
@ -646,7 +646,7 @@ template <typename sT, typename dT>
bool TestVarCopy() bool TestVarCopy()
{ {
bool success = true; bool success = true;
VariationList<sT> vlf; VariationList<sT>& vlf(VariationList<sT>::Instance());
for (size_t i = 0; i < vlf.Size(); i++) for (size_t i = 0; i < vlf.Size(); i++)
{ {
@ -676,7 +676,7 @@ bool TestVarCopy()
bool TestParVars() bool TestParVars()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
for (size_t i = 0; i < vlf.ParametricSize(); i++) for (size_t i = 0; i < vlf.ParametricSize(); i++)
{ {
@ -730,7 +730,7 @@ bool TestParVars()
bool TestVarRegPrePost() bool TestVarRegPrePost()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
for (size_t i = 0; i < vlf.RegSize(); i++) for (size_t i = 0; i < vlf.RegSize(); i++)
{ {
@ -782,7 +782,7 @@ bool TestVarRegPrePost()
bool TestVarPrecalcUsedCL() bool TestVarPrecalcUsedCL()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
for (size_t i = 0; i < vlf.Size(); i++) for (size_t i = 0; i < vlf.Size(); i++)
{ {
@ -951,7 +951,7 @@ bool TestVarPrecalcUsedCL()
bool TestVarAssignTypes() bool TestVarAssignTypes()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
vector<string> vset, vsum; vector<string> vset, vsum;
vset.push_back("vIn.x"); vset.push_back("vIn.x");
vset.push_back("vIn.y"); vset.push_back("vIn.y");
@ -1009,7 +1009,7 @@ bool TestVarAssignTypes()
bool TestVarAssignVals() bool TestVarAssignVals()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
vector<string> xout, yout, zout; vector<string> xout, yout, zout;
xout.push_back("vOut.x ="); xout.push_back("vOut.x =");
xout.push_back("vOut.x +="); xout.push_back("vOut.x +=");
@ -1056,7 +1056,7 @@ bool TestVarAssignVals()
bool TestZepsFloor() bool TestZepsFloor()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
vector<string> zeps; vector<string> zeps;
zeps.push_back("Zeps(floor"); zeps.push_back("Zeps(floor");
@ -1077,7 +1077,7 @@ bool TestZepsFloor()
bool TestConstants() bool TestConstants()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
vector<string> stringVec; vector<string> stringVec;
stringVec.push_back("2 * M_PI"); stringVec.push_back("2 * M_PI");
stringVec.push_back("2*M_PI"); stringVec.push_back("2*M_PI");
@ -1101,7 +1101,7 @@ bool TestConstants()
bool TestGlobalFuncs() bool TestGlobalFuncs()
{ {
bool success = true; bool success = true;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
vector<string> funcs; vector<string> funcs;
FunctionMapper mapper; FunctionMapper mapper;
@ -1130,7 +1130,7 @@ bool TestGlobalFuncs()
void PrintAllVars() void PrintAllVars()
{ {
uint i = 0; uint i = 0;
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
while (auto var = vlf.GetVariation(i++)) while (auto var = vlf.GetVariation(i++))
cout << var->Name() << endl; cout << var->Name() << endl;
@ -1139,7 +1139,7 @@ void PrintAllVars()
void TestXformsInOutPoints() void TestXformsInOutPoints()
{ {
uint index = 0; uint index = 0;
VariationList<float> varList; VariationList<float>& varList(VariationList<float>::Instance());
PaletteList<float> paletteList; PaletteList<float> paletteList;
QTIsaac<ISAAC_SIZE, ISAAC_INT> rand; QTIsaac<ISAAC_SIZE, ISAAC_INT> rand;
paletteList.Add("flam3-palettes.xml"); paletteList.Add("flam3-palettes.xml");
@ -2111,12 +2111,12 @@ int _tmain(int argc, _TCHAR* argv[])
TestCasting(); TestCasting();
t.Toc("TestCasting()"); t.Toc("TestCasting()");
t.Tic(); t.Tic();
VariationList<float> vlf; VariationList<float>& vlf(VariationList<float>::Instance());
t.Toc("Creating VariationList<float>"); t.Toc("Creating VariationList<float>");
cout << "There are " << vlf.Size() << " variations present." << endl; cout << "There are " << vlf.Size() << " variations present." << endl;
#ifdef DO_DOUBLE #ifdef DO_DOUBLE
t.Tic(); t.Tic();
VariationList<double> vld; VariationList<double>& vld(VariationList<double>::Instance());
t.Toc("Creating VariationList<double>"); t.Toc("Creating VariationList<double>");
#endif #endif
t.Tic(); t.Tic();

View File

@ -48,7 +48,8 @@ FractoriumEmberControllerBase::~FractoriumEmberControllerBase()
/// <param name="fractorium">Pointer to the main window.</param> /// <param name="fractorium">Pointer to the main window.</param>
template <typename T> template <typename T>
FractoriumEmberController<T>::FractoriumEmberController(Fractorium* fractorium) FractoriumEmberController<T>::FractoriumEmberController(Fractorium* fractorium)
: FractoriumEmberControllerBase(fractorium) : FractoriumEmberControllerBase(fractorium),
m_VariationList(VariationList<T>::Instance())
{ {
bool b = false; bool b = false;
m_PreviewRun = false; m_PreviewRun = false;

View File

@ -499,7 +499,7 @@ private:
Xform<T> m_CopiedFinalXform; Xform<T> m_CopiedFinalXform;
Palette<T> m_TempPalette; Palette<T> m_TempPalette;
PaletteList<T> m_PaletteList; PaletteList<T> m_PaletteList;
VariationList<T> m_VariationList; VariationList<T>& m_VariationList;
unique_ptr<SheepTools<T, float>> m_SheepTools; unique_ptr<SheepTools<T, float>> m_SheepTools;
unique_ptr<GLEmberController<T>> m_GLController; unique_ptr<GLEmberController<T>> m_GLController;
unique_ptr<EmberNs::Renderer<T, float>> m_PreviewRenderer; unique_ptr<EmberNs::Renderer<T, float>> m_PreviewRenderer;

View File

@ -282,7 +282,7 @@ void FractoriumEmberController<T>::AddFinalXform()
{ {
Xform<T> final; Xform<T> final;
auto combo = m_Fractorium->ui.CurrentXformCombo; auto combo = m_Fractorium->ui.CurrentXformCombo;
final.AddVariation(new LinearVariation<T>());//Just a placeholder so other parts of the code don't see it as being empty. final.AddVariation(m_VariationList.GetVariationCopy(eVariationId::VAR_LINEAR));//Just a placeholder so other parts of the code don't see it as being empty.
m_Ember.SetFinalXform(final); m_Ember.SetFinalXform(final);
int index = int(m_Ember.TotalXformCount() - 1);//Set index to the last item. int index = int(m_Ember.TotalXformCount() - 1);//Set index to the last item.
FillXforms(index); FillXforms(index);

View File

@ -10,7 +10,8 @@
/// <param name="f">The window flags. Default: 0.</param> /// <param name="f">The window flags. Default: 0.</param>
FractoriumVariationsDialog::FractoriumVariationsDialog(FractoriumSettings* settings, QWidget* p, Qt::WindowFlags f) FractoriumVariationsDialog::FractoriumVariationsDialog(FractoriumSettings* settings, QWidget* p, Qt::WindowFlags f)
: QDialog(p, f), : QDialog(p, f),
m_Settings(settings) m_Settings(settings),
m_VariationList(VariationList<float>::Instance())
{ {
ui.setupUi(this); ui.setupUi(this);
auto table = ui.VariationsTable; auto table = ui.VariationsTable;

View File

@ -41,7 +41,7 @@ private:
void GuiToData(); void GuiToData();
void Populate(); void Populate();
void SetCheckFromMap(QTableWidgetItem* cb, const Variation<float>* var); void SetCheckFromMap(QTableWidgetItem* cb, const Variation<float>* var);
VariationList<float> m_VariationList; VariationList<float>& m_VariationList;
QMap<QString, QVariant> m_Vars; QMap<QString, QVariant> m_Vars;
FractoriumSettings* m_Settings; FractoriumSettings* m_Settings;
Ui::VariationsDialog ui; Ui::VariationsDialog ui;