Fix accidental disabling of post affine group box. The designer was clobbering it.

This commit is contained in:
mfeemster
2014-11-04 17:38:20 -08:00
parent b2600f0fff
commit 3f29025f99
5 changed files with 88 additions and 31 deletions

View File

@ -871,11 +871,11 @@ public:
}
/// <summary>
/// Flatten this xform by adding a flatten variation if none is present, and if any of the
/// Flatten this xform by adding a flatten variation if none is present, and if none of the
/// variations or parameters in the vector are present.
/// </summary>
/// <param name="names">Vector of variation and parameter names</param>
/// <returns>True if flatten was added, false if it already was present or if none of the specified variations or parameters were present.</returns>
/// <param name="names">Vector of variation and parameter names that inhibit flattening</param>
/// <returns>True if flatten was added, false if it already was present or if at least one of the specified variations or parameters were present.</returns>
bool Flatten(vector<string>& names)
{
bool shouldFlatten = true;
@ -890,7 +890,7 @@ public:
if (var->m_Weight != 0)//This should never happen, but just to be safe.
{
if (FindIf(names, [&] (const string& s) -> bool { return !_stricmp(s.c_str(), var->Name().c_str()); }))
if (FindIf(names, [&] (const string& s) -> bool { return !_stricmp(s.c_str(), var->Name().c_str()); }))//If any variation is present, don't flatten.
{
shouldFlatten = false;
keepGoing = false;
@ -899,7 +899,7 @@ public:
}
//Now traverse the parameters for this variation.
if (ParametricVariation<T>* parVar = dynamic_cast<ParametricVariation<T>*>(var))
if (ParametricVariation<T>* parVar = dynamic_cast<ParametricVariation<T>*>(var))//If any parametric variation parameter is present and non-zero, don't flatten.
{
ForEach(names, [&] (const string& s)
{
@ -913,7 +913,7 @@ public:
}
});
if (shouldFlatten)
if (shouldFlatten)//Flatten was not present and neither was any variation name or parameter in the list.
{
Variation<T>* var = new FlattenVariation<T>();

View File

@ -153,30 +153,33 @@ public:
m_BadParamNames.push_back(pair<string, string>("post_bwraps2_outer_twist", "post_bwraps_outer_twist"));
m_FlattenNames.reserve(24);
m_FlattenNames.push_back("linear3D");
m_FlattenNames.push_back("bubble");
m_FlattenNames.push_back("cylinder");
m_FlattenNames.push_back("zblur");
m_FlattenNames.push_back("blur3D");
m_FlattenNames.push_back("pre_ztranslate");
m_FlattenNames.push_back("pre_crop");
m_FlattenNames.push_back("pre_falloff2");
m_FlattenNames.push_back("pre_rotate_x");
m_FlattenNames.push_back("pre_rotate_y");
m_FlattenNames.push_back("ztranslate");
m_FlattenNames.push_back("zcone");
m_FlattenNames.push_back("post_rotate_x");
m_FlattenNames.push_back("post_rotate_y");
m_FlattenNames.push_back("julia3D");
m_FlattenNames.push_back("julia3Dz");
m_FlattenNames.push_back("curl3D_cz");
m_FlattenNames.push_back("hemisphere");
m_FlattenNames.push_back("pre_ztranslate");
m_FlattenNames.push_back("blur3D");
m_FlattenNames.push_back("bubble");
m_FlattenNames.push_back("bwraps");
m_FlattenNames.push_back("bwraps2");
m_FlattenNames.push_back("falloff2");
m_FlattenNames.push_back("crop");
m_FlattenNames.push_back("pre_falloff2");
m_FlattenNames.push_back("pre_crop");
m_FlattenNames.push_back("post_falloff2");
m_FlattenNames.push_back("cylinder");
m_FlattenNames.push_back("falloff2");
m_FlattenNames.push_back("hemisphere");
m_FlattenNames.push_back("julia3D");
m_FlattenNames.push_back("julia3Dz");
m_FlattenNames.push_back("linear3D");
m_FlattenNames.push_back("zblur");
m_FlattenNames.push_back("zcone");
m_FlattenNames.push_back("ztranslate");
m_FlattenNames.push_back("post_crop");
m_FlattenNames.push_back("post_falloff2");
m_FlattenNames.push_back("post_rotate_x");
m_FlattenNames.push_back("post_rotate_y");
m_FlattenNames.push_back("curl3D_cz");
//This is a vector of the param names as they are in the legacy, badly named flam3/Apophysis code.
vector<string> badParams;