polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
66 lines (65 loc) • 2.39 kB
JavaScript
import {BaseNodeGlMathFunctionArg1GlNode} from "./_BaseMathFunction";
function MathFunctionArg1Factory(type, options = {}) {
const gl_method_name = options.method || type;
const gl_output_name = options.out || "val";
const gl_input_name = options.in || "in";
return class Node extends BaseNodeGlMathFunctionArg1GlNode {
static type() {
return type;
}
initializeNode() {
super.initializeNode();
this.io.connection_points.set_input_name_function(this._gl_input_name.bind(this));
this.io.connection_points.set_output_name_function(this._gl_output_name.bind(this));
}
_gl_input_name(index) {
return gl_input_name;
}
_gl_output_name(index) {
return gl_output_name;
}
gl_method_name() {
return gl_method_name;
}
};
}
export class AbsGlNode extends MathFunctionArg1Factory("abs") {
}
export class AcosGlNode extends MathFunctionArg1Factory("acos", {out: "radians"}) {
}
export class AsinGlNode extends MathFunctionArg1Factory("asin", {out: "radians"}) {
}
export class AtanGlNode extends MathFunctionArg1Factory("atan", {out: "radians"}) {
}
export class CeilGlNode extends MathFunctionArg1Factory("ceil") {
}
export class CosGlNode extends MathFunctionArg1Factory("cos", {in: "radians"}) {
}
export class DegreesGlNode extends MathFunctionArg1Factory("degrees", {in: "radians", out: "degrees"}) {
}
export class ExpGlNode extends MathFunctionArg1Factory("exp") {
}
export class Exp2GlNode extends MathFunctionArg1Factory("exp2") {
}
export class FloorGlNode extends MathFunctionArg1Factory("floor") {
}
export class FractGlNode extends MathFunctionArg1Factory("fract") {
}
export class InverseSqrtGlNode extends MathFunctionArg1Factory("inverseSqrt", {method: "inversesqrt"}) {
}
export class LogGlNode extends MathFunctionArg1Factory("log") {
}
export class Log2GlNode extends MathFunctionArg1Factory("log2") {
}
export class NormalizeGlNode extends MathFunctionArg1Factory("normalize", {out: "normalized"}) {
}
export class RadiansGlNode extends MathFunctionArg1Factory("radians", {in: "degrees", out: "radians"}) {
}
export class SignGlNode extends MathFunctionArg1Factory("sign") {
}
export class SinGlNode extends MathFunctionArg1Factory("sin", {in: "radians"}) {
}
export class SqrtGlNode extends MathFunctionArg1Factory("sqrt") {
}
export class TanGlNode extends MathFunctionArg1Factory("tan") {
}