From ab836aaa82a0259bcff864c75e8370489cdc706e Mon Sep 17 00:00:00 2001 From: Person Date: Wed, 11 Mar 2020 07:02:38 -0700 Subject: [PATCH] --Bug fixes -Make xaos pasting options apply all of the time even if there is no xaos. --- Source/Fractorium/FractoriumXforms.cpp | 120 ++++++++++++------------- 1 file changed, 57 insertions(+), 63 deletions(-) diff --git a/Source/Fractorium/FractoriumXforms.cpp b/Source/Fractorium/FractoriumXforms.cpp index f417644..e68f45d 100644 --- a/Source/Fractorium/FractoriumXforms.cpp +++ b/Source/Fractorium/FractoriumXforms.cpp @@ -216,82 +216,76 @@ void Fractorium::OnAddLinkedXformButtonClicked(bool checked) { m_Controller->Add template void FractoriumEmberController::AddXformsWithXaos(Ember& ember, std::vector, size_t>>& xforms, bool preserveXaos, eXaosPasteStyle pastestyle) { - if (ember.XaosPresent()) + auto oldxfcount = ember.XformCount(); + + for (auto& it : xforms) { - auto oldxfcount = ember.XformCount(); + ember.AddXform(it.first); + auto newxfcount = ember.XformCount() - 1; + auto* newxform = ember.GetXform(newxfcount); - for (auto& it : xforms) - { - ember.AddXform(it.first); - auto newxfcount = ember.XformCount() - 1; - auto* newxform = ember.GetXform(newxfcount); - - for (size_t i = 0; i < oldxfcount; i++) - { - if (auto xform = ember.GetXform(i)) - { - switch (pastestyle) - { - case EmberCommon::eXaosPasteStyle::NONE: - newxform->SetXaos(i, 1); - xform->SetXaos(newxfcount, 1); - break; - - case EmberCommon::eXaosPasteStyle::ZERO_TO_ONE: - case EmberCommon::eXaosPasteStyle::ZERO_TO_VALS: - newxform->SetXaos(i, 0); - xform->SetXaos(newxfcount, 0); - break; - - case EmberCommon::eXaosPasteStyle::ONE_TO_VALS: - newxform->SetXaos(i, 1); - xform->SetXaos(newxfcount, 1); - break; - - case EmberCommon::eXaosPasteStyle::VALS_TO_ONE: - newxform->SetXaos(i, it.first.Xaos(i)); - xform->SetXaos(newxfcount, xform->Xaos(it.second)); - break; - - default: - break; - } - } - } - } - - for (size_t i = oldxfcount; i < ember.XformCount(); i++) + for (size_t i = 0; i < oldxfcount; i++) { if (auto xform = ember.GetXform(i)) { - for (size_t j = oldxfcount; j < ember.XformCount(); j++) + switch (pastestyle) { - switch (pastestyle) - { - case EmberCommon::eXaosPasteStyle::NONE: - case EmberCommon::eXaosPasteStyle::ZERO_TO_ONE: - xform->SetXaos(j, 1); - break; + case EmberCommon::eXaosPasteStyle::NONE: + newxform->SetXaos(i, 1); + xform->SetXaos(newxfcount, 1); + break; - case EmberCommon::eXaosPasteStyle::ZERO_TO_VALS: - case EmberCommon::eXaosPasteStyle::ONE_TO_VALS: - xform->SetXaos(j, xforms[i - oldxfcount].first.Xaos(j - oldxfcount)); - break; + case EmberCommon::eXaosPasteStyle::ZERO_TO_ONE: + case EmberCommon::eXaosPasteStyle::ZERO_TO_VALS: + newxform->SetXaos(i, 0); + xform->SetXaos(newxfcount, 0); + break; - case EmberCommon::eXaosPasteStyle::VALS_TO_ONE: - xform->SetXaos(j, 1); - break; + case EmberCommon::eXaosPasteStyle::ONE_TO_VALS: + newxform->SetXaos(i, 1); + xform->SetXaos(newxfcount, 1); + break; - default: - break; - } + case EmberCommon::eXaosPasteStyle::VALS_TO_ONE: + newxform->SetXaos(i, it.first.Xaos(i)); + xform->SetXaos(newxfcount, xform->Xaos(it.second)); + break; + + default: + break; + } + } + } + } + + for (size_t i = oldxfcount; i < ember.XformCount(); i++) + { + if (auto xform = ember.GetXform(i)) + { + for (size_t j = oldxfcount; j < ember.XformCount(); j++) + { + switch (pastestyle) + { + case EmberCommon::eXaosPasteStyle::NONE: + case EmberCommon::eXaosPasteStyle::ZERO_TO_ONE: + xform->SetXaos(j, 1); + break; + + case EmberCommon::eXaosPasteStyle::ZERO_TO_VALS: + case EmberCommon::eXaosPasteStyle::ONE_TO_VALS: + xform->SetXaos(j, xforms[i - oldxfcount].first.Xaos(j - oldxfcount)); + break; + + case EmberCommon::eXaosPasteStyle::VALS_TO_ONE: + xform->SetXaos(j, 1); + break; + + default: + break; } } } } - else - for (auto& it : xforms) - ember.AddXform(it.first); } ///