3
0

MaterialCanvasTestData.cpp 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <Atom/RPI.Edit/Common/AssetUtils.h>
  9. #include <AtomToolsFramework/Graph/DynamicNode/DynamicNodeConfig.h>
  10. #include <AzCore/IO/FileIO.h>
  11. #include <AzCore/IO/Path/Path.h>
  12. #include <AzCore/std/algorithm.h>
  13. #include <AzFramework/StringFunc/StringFunc.h>
  14. namespace MaterialCanvas
  15. {
  16. AZStd::string GetTestDataPathForNodeConfig(const AtomToolsFramework::DynamicNodeConfig& nodeConfig)
  17. {
  18. AZStd::string baseName = AZ::RPI::AssetUtils::SanitizeFileName(nodeConfig.m_title);
  19. AZStd::to_lower(baseName.begin(), baseName.end());
  20. return AZStd::string::format(
  21. "@gemroot:MaterialCanvas@/Assets/MaterialCanvas/GraphData/Nodes/Functions/%s.materialgraphnode", baseName.c_str());
  22. }
  23. void CreateTestNodes()
  24. {
  25. const AZ::Vector4 defaultValue = AZ::Vector4::CreateZero();
  26. AtomToolsFramework::DynamicNodeConfig nodeConfig;
  27. nodeConfig.m_category = "Math Operations";
  28. nodeConfig.m_title = "Combine";
  29. nodeConfig.m_inputSlots.emplace_back("inX", "X", "X", AZStd::any(defaultValue.GetX()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  30. nodeConfig.m_inputSlots.emplace_back("inY", "Y", "Y", AZStd::any(defaultValue.GetY()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  31. nodeConfig.m_inputSlots.emplace_back("inZ", "Z", "Z", AZStd::any(defaultValue.GetZ()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  32. nodeConfig.m_inputSlots.emplace_back("inW", "W", "W", AZStd::any(defaultValue.GetW()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  33. nodeConfig.m_outputSlots.emplace_back("outValue", "Value", "Value", AZStd::any(""), "float4", AtomToolsFramework::DynamicNodeSettingsMap());
  34. nodeConfig.Save(GetTestDataPathForNodeConfig(nodeConfig));
  35. nodeConfig = {};
  36. nodeConfig.m_category = "Math Operations";
  37. nodeConfig.m_title = "Split";
  38. nodeConfig.m_outputSlots.emplace_back("outX", "X", "X", AZStd::any(defaultValue.GetX()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  39. nodeConfig.m_outputSlots.emplace_back("outY", "Y", "Y", AZStd::any(defaultValue.GetY()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  40. nodeConfig.m_outputSlots.emplace_back("outZ", "Z", "Z", AZStd::any(defaultValue.GetZ()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  41. nodeConfig.m_outputSlots.emplace_back("outW", "W", "W", AZStd::any(defaultValue.GetW()), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  42. nodeConfig.m_inputSlots.emplace_back("inValue", "Value", "Value", AZStd::any(defaultValue), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  43. nodeConfig.Save(GetTestDataPathForNodeConfig(nodeConfig));
  44. nodeConfig = {};
  45. nodeConfig.m_category = "Math Operations";
  46. nodeConfig.m_title = "Add";
  47. nodeConfig.m_inputSlots.emplace_back("inValue1", "Value1", "Value1", AZStd::any(defaultValue), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  48. nodeConfig.m_inputSlots.emplace_back("inValue2", "Value2", "Value2", AZStd::any(defaultValue), "color|float[1-4]?", AtomToolsFramework::DynamicNodeSettingsMap());
  49. nodeConfig.m_outputSlots.emplace_back("outValue", "Value", "Value", AZStd::any(defaultValue), "float4", AtomToolsFramework::DynamicNodeSettingsMap());
  50. nodeConfig.Save(GetTestDataPathForNodeConfig(nodeConfig));
  51. nodeConfig.m_title = "Subtract";
  52. nodeConfig.Save(GetTestDataPathForNodeConfig(nodeConfig));
  53. nodeConfig.m_title = "Multiply";
  54. nodeConfig.Save(GetTestDataPathForNodeConfig(nodeConfig));
  55. nodeConfig.m_title = "Divide";
  56. nodeConfig.Save(GetTestDataPathForNodeConfig(nodeConfig));
  57. }
  58. } // namespace MaterialCanvas