UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

117 lines (116 loc) 3.44 kB
"use strict"; import { NodeContext } from "../poly/NodeContext"; export class BaseNamedFunction { constructor(node, shadersCollectionController) { this.node = node; this.shadersCollectionController = shadersCollectionController; this.scene = node.scene(); this.timeController = this.scene.timeController; if (node.context() == NodeContext.JS) { this.jsNode = node; this.functionNode = this.jsNode.functionNode(); } else { this.jsNode = void 0; this.functionNode = node; } } // abstract type: string; static type() { throw "type to be overriden"; } type() { const c = this.constructor; return c.type(); } asString(...args) { if (this.shadersCollectionController) { if (this.jsNode) { this.shadersCollectionController.addFunction(this.jsNode, this); } } else { console.warn("no shadersCollectionController in func", this.type()); } return ""; } } export class NamedFunction extends BaseNamedFunction { constructor() { super(...arguments); this.async = false; } asString(...args) { super.asString(...args); const functionCall = `${this.type()}(${args.join(", ")})`; return this.async ? `await ${functionCall}` : functionCall; } } export class NamedFunction0 extends NamedFunction { } export class NamedFunction1 extends NamedFunction { } export class NamedFunction2 extends NamedFunction { } export class NamedFunction3 extends NamedFunction { } export class NamedFunction4 extends NamedFunction { } export class NamedFunction5 extends NamedFunction { } export class NamedFunction6 extends NamedFunction { } export class NamedFunction7 extends NamedFunction { } export class NamedFunction8 extends NamedFunction { } export class NamedFunction9 extends NamedFunction { } class ObjectNamedFunction extends BaseNamedFunction { asString(...args) { super.asString(...args); return `${this.type()}(${args.join(", ")})`; } } export class ObjectNamedFunction0 extends ObjectNamedFunction { } export class ObjectNamedFunction1 extends ObjectNamedFunction { } export class ObjectNamedFunction2 extends ObjectNamedFunction { } export class ObjectNamedFunction3 extends ObjectNamedFunction { } export class ObjectNamedFunction4 extends ObjectNamedFunction { } export class ObjectNamedFunction5 extends ObjectNamedFunction { } export class ObjectNamedFunction6 extends ObjectNamedFunction { } export class ObjectNamedFunction7 extends ObjectNamedFunction { } export class ObjectNamedFunction8 extends ObjectNamedFunction { } export class ObjectNamedFunction9 extends ObjectNamedFunction { } export class ObjectNamedFunction10 extends ObjectNamedFunction { } export class ObjectNamedFunction11 extends ObjectNamedFunction { } export class ObjectNamedFunction12 extends ObjectNamedFunction { } export class ObjectNamedFunction13 extends ObjectNamedFunction { } export class ObjectNamedFunction14 extends ObjectNamedFunction { } export class ObjectNamedFunction15 extends ObjectNamedFunction { } export class ObjectNamedFunction16 extends ObjectNamedFunction { } export class ObjectNamedFunction17 extends ObjectNamedFunction { } export class ObjectNamedFunction18 extends ObjectNamedFunction { } export class ObjectNamedFunction19 extends ObjectNamedFunction { } export class ObjectNamedFunction20 extends ObjectNamedFunction { } export class ObjectNamedFunction21 extends ObjectNamedFunction { }