From 7488eccb4f1c786641b728b37c1e8a1788c49bfe Mon Sep 17 00:00:00 2001 From: Jonathan Feldstein Date: Tue, 14 Feb 2023 13:44:57 -0500 Subject: [PATCH] Fixes MTLX split string array parsing. Fixes #2268 --- pxr/usd/usdMtlx/testenv/testUsdMtlxParser.py | 2 +- .../usdMtlx/testenv/testUsdMtlxParser.testenv/test.mtlx | 2 +- pxr/usd/usdMtlx/utils.cpp | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.py b/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.py index 433836dc55..fc6f8d02dd 100644 --- a/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.py +++ b/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.py @@ -72,7 +72,7 @@ def test_NodeParser(self): self.assertEqual(input.GetLabel(), "UI Vector") self.assertEqual(input.GetPage(), "UI Page") self.assertEqual(input.GetOptions(), - [("X", "1, 0, 0"), ("Y", "0, 1, 0"), ("Z", "0, 0, 1")]) + [("X Label", "1, 0, 0"), ("Y Label", "0, 1, 0"), ("Z Label", "0, 0, 1")]) node = Sdr.Registry().GetShaderNodeByIdentifier( 'UsdMtlxTestNamespace:nd_float') diff --git a/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.testenv/test.mtlx b/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.testenv/test.mtlx index 540a2649a7..60060fe1f0 100644 --- a/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.testenv/test.mtlx +++ b/pxr/usd/usdMtlx/testenv/testUsdMtlxParser.testenv/test.mtlx @@ -16,7 +16,7 @@ - + diff --git a/pxr/usd/usdMtlx/utils.cpp b/pxr/usd/usdMtlx/utils.cpp index ff91360d3b..01a853610e 100644 --- a/pxr/usd/usdMtlx/utils.cpp +++ b/pxr/usd/usdMtlx/utils.cpp @@ -57,6 +57,8 @@ TF_DEFINE_PUBLIC_TOKENS(UsdMtlxTokens, USD_MTLX_TOKENS); namespace { +const std::string _CommaSeparator = ","; + using DocumentCache = std::map; static @@ -586,7 +588,11 @@ UsdMtlxGetPackedUsdValues(const std::string& values, const std::string& type) std::vector UsdMtlxSplitStringArray(const std::string& s) { - return mx::splitString(s, mx::ARRAY_VALID_SEPARATORS); + std::vector strs = mx::splitString(s, _CommaSeparator); + for (size_t i=0; i