This commit is contained in:
2026-01-06 13:25:49 +00:00
parent 5d495d731b
commit 4e15e08b7f
1395 changed files with 295666 additions and 323 deletions

View File

@@ -0,0 +1,47 @@
//
// Copyright Contributors to the MaterialX Project
// SPDX-License-Identifier: Apache-2.0
//
#include <JsMaterialX/VectorHelper.h>
#include <JsMaterialX/Helpers.h>
#include <MaterialXCore/Material.h>
#include <emscripten/bind.h>
#include <unordered_set>
#include <vector>
namespace ems = emscripten;
namespace mx = MaterialX;
EMSCRIPTEN_BINDINGS(material)
{
ems::function("getShaderNodes", ems::optional_override([](mx::NodePtr materialNode) {
std::vector<mx::NodePtr> set = mx::getShaderNodes(materialNode);
// Put all elements into an std::vector
std::vector<mx::NodePtr> 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<mx::NodePtr> set = mx::getShaderNodes(materialNode, nodeType);
// Put all elements into an std::vector
std::vector<mx::NodePtr> 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<mx::NodePtr> set = mx::getShaderNodes(materialNode, nodeType, target);
// Put all elements into an std::vector
std::vector<mx::NodePtr> vec;
vec.insert(vec.end(), set.begin(), set.end());
return vec;
}));
ems::function("getConnectedOutputs", &mx::getConnectedOutputs);
}