polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
34 lines (33 loc) • 1.24 kB
JavaScript
import {VaryingWriteGlNode} from "../../VaryingWrite";
import {ParamGlNode} from "../../Param";
import {TextureGlNode} from "../../Texture";
import {RampGlNode} from "../../Ramp";
import {AttributeGlNode} from "../../Attribute";
import {IfThenGlNode} from "../../IfThen";
export class GlNodeFinder {
static find_output_nodes(node) {
const output_nodes = node.nodesByType("output");
return output_nodes;
}
static find_param_generating_nodes(node) {
const param_nodes = node.nodesByType(ParamGlNode.type());
const texture_nodes = node.nodesByType(TextureGlNode.type());
const ramp_nodes = node.nodesByType(RampGlNode.type());
let all = param_nodes.concat(texture_nodes).concat(ramp_nodes);
const if_then_nodes = node.nodesByType(IfThenGlNode.type());
for (let if_then_node of if_then_nodes) {
all = all.concat(this.find_param_generating_nodes(if_then_node));
}
return all;
}
static find_varying_nodes(node) {
const nodes = node.nodesByType(VaryingWriteGlNode.type());
return nodes;
}
static find_attribute_export_nodes(node) {
const nodes = node.nodesByType(AttributeGlNode.type());
return nodes.filter((node2) => {
return node2.is_exporting;
});
}
}