polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
26 lines (25 loc) • 1.01 kB
JavaScript
import {BaseGlMathFunctionGlNode} from "./_BaseMathFunction";
import {GlConnectionPointType} from "../utils/io/connections/Gl";
export class RefractGlNode extends BaseGlMathFunctionGlNode {
static type() {
return "refract";
}
initializeNode() {
super.initializeNode();
this.io.connection_points.set_input_name_function((index) => ["I", "N", "eta"][index]);
this.io.connection_points.set_output_name_function((index) => "refract");
this.io.connection_points.set_expected_input_types_function(this._expected_input_types.bind(this));
this.io.connection_points.set_expected_output_types_function(this._expected_output_types.bind(this));
}
gl_method_name() {
return "refract";
}
_expected_input_types() {
const type = this.io.connection_points.first_input_connection_type() || GlConnectionPointType.VEC3;
return [type, type, GlConnectionPointType.FLOAT];
}
_expected_output_types() {
const type = this._expected_input_types()[0];
return [type];
}
}