diff --git a/src/Plugins/SimplnxCore/src/SimplnxCore/Filters/SplitAttributeArrayFilter.cpp b/src/Plugins/SimplnxCore/src/SimplnxCore/Filters/SplitAttributeArrayFilter.cpp index 5b160f6b0e..7b51939630 100644 --- a/src/Plugins/SimplnxCore/src/SimplnxCore/Filters/SplitAttributeArrayFilter.cpp +++ b/src/Plugins/SimplnxCore/src/SimplnxCore/Filters/SplitAttributeArrayFilter.cpp @@ -38,7 +38,7 @@ Uuid SplitAttributeArrayFilter::uuid() const //------------------------------------------------------------------------------ std::string SplitAttributeArrayFilter::humanName() const { - return "Split Multicomponent Attribute Array"; + return "Split Multi component Attribute Array"; } //------------------------------------------------------------------------------ @@ -119,7 +119,7 @@ IFilter::PreflightResult SplitAttributeArrayFilter::preflightImpl(const DataStru -65402, fmt::format("Selected component '{}' is not a valid component. Input array at path '{}' only has {} components, please choose a component number between 0 and {} to extract.", comp, pInputArrayPath.toString(), numComponents, numComponents - 1)}})}; } - std::string arrayName = pInputArrayPath.getTargetName() + pPostfix + StringUtilities::number(compIndex); + std::string arrayName = pInputArrayPath.getTargetName() + pPostfix + StringUtilities::GenerateIndexString(compIndex, numComponents - 1); DataPath newArrayPath = pInputArrayPath.replaceName(arrayName); resultOutputActions.value().appendAction(std::make_unique(inputArray->getDataType(), tdims, cdims, newArrayPath)); } @@ -128,7 +128,7 @@ IFilter::PreflightResult SplitAttributeArrayFilter::preflightImpl(const DataStru { for(usize i = 0; i < numComponents; i++) { - std::string arrayName = pInputArrayPath.getTargetName() + pPostfix + StringUtilities::number(i); + std::string arrayName = pInputArrayPath.getTargetName() + pPostfix + StringUtilities::GenerateIndexString(i, numComponents - 1); DataPath newArrayPath = pInputArrayPath.replaceName(arrayName); resultOutputActions.value().appendAction(std::make_unique(inputArray->getDataType(), tdims, cdims, newArrayPath)); } diff --git a/src/simplnx/Utilities/StringUtilities.hpp b/src/simplnx/Utilities/StringUtilities.hpp index 18d9706298..c6e3c7b741 100644 --- a/src/simplnx/Utilities/StringUtilities.hpp +++ b/src/simplnx/Utilities/StringUtilities.hpp @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include #include #include @@ -509,4 +511,31 @@ inline std::vector FindBestMatches(const std::vector // return bestPairs; return bestMatches; } + +/** + * @brief Creates a '0' padded string from a number based on maxIndex which dictates how many zeros there will be. + * @param index The index in the string + * @param maxIndex The max Index which determines the number of padding digits. + * @return String + */ +inline std::string GenerateIndexString(int32 index, int32 maxIndex) +{ + std::string numStr = fmt::format("{}", index); + + if(maxIndex >= 10) + { + int mag = 0; + int max = maxIndex; + while(max > 0) + { + mag++; + max = max / 10; + } + std::stringstream ss; // Create a QTextStream to set up the padding + ss << std::setw(mag) << std::setfill('0') << index; + numStr = ss.str(); + } + return numStr; +} + } // namespace nx::core::StringUtilities