// // Copyright Contributors to the MaterialX Project // SPDX-License-Identifier: Apache-2.0 // #include #include #include #include #include #include namespace ems = emscripten; namespace mx = MaterialX; EMSCRIPTEN_BINDINGS(material) { ems::function("getShaderNodes", ems::optional_override([](mx::NodePtr materialNode) { std::vector set = mx::getShaderNodes(materialNode); // Put all elements into an std::vector std::vector vec; vec.insert(vec.end(), set.begin(), set.end()); return vec; })); ems::function("getShaderNodes", ems::optional_override([](mx::NodePtr materialNode, const std::string& nodeType) { std::vector set = mx::getShaderNodes(materialNode, nodeType); // Put all elements into an std::vector std::vector vec; vec.insert(vec.end(), set.begin(), set.end()); return vec; })); ems::function("getShaderNodes", ems::optional_override([](mx::NodePtr materialNode, const std::string& nodeType, const std::string& target) { std::vector set = mx::getShaderNodes(materialNode, nodeType, target); // Put all elements into an std::vector std::vector vec; vec.insert(vec.end(), set.begin(), set.end()); return vec; })); ems::function("getConnectedOutputs", &mx::getConnectedOutputs); }