UNPKG

@polygonjs/polygonjs

Version:

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

174 lines (173 loc) 7.39 kB
"use strict"; import { ParamType } from "../../../../poly/ParamType"; import { RampParam } from "../../../../params/Ramp"; export var GlConnectionPointType = /* @__PURE__ */ ((GlConnectionPointType2) => { GlConnectionPointType2["BOOL"] = "bool"; GlConnectionPointType2["INT"] = "int"; GlConnectionPointType2["FLOAT"] = "float"; GlConnectionPointType2["MAT3"] = "mat3"; GlConnectionPointType2["MAT4"] = "mat4"; GlConnectionPointType2["VEC2"] = "vec2"; GlConnectionPointType2["VEC3"] = "vec3"; GlConnectionPointType2["VEC4"] = "vec4"; GlConnectionPointType2["SAMPLER_2D"] = "sampler2D"; GlConnectionPointType2["SAMPLER_2D_ARRAY"] = "sampler2DArray"; GlConnectionPointType2["SAMPLER_3D"] = "sampler3D"; GlConnectionPointType2["SAMPLER_CUBE"] = "samplerCube"; GlConnectionPointType2["SSS_MODEL"] = "SSSModel"; GlConnectionPointType2["SDF_CONTEXT"] = "SDFContext"; GlConnectionPointType2["SDF_MATERIAL"] = "SDFMaterial"; return GlConnectionPointType2; })(GlConnectionPointType || {}); export const GL_CONNECTION_POINT_TYPES = [ "bool" /* BOOL */, // ConnectionPointType.BVEC2, // ConnectionPointType.BVEC3, // ConnectionPointType.BVEC4, "int" /* INT */, // ConnectionPointType.IVEC2, // ConnectionPointType.IVEC3, // ConnectionPointType.IVEC4, "float" /* FLOAT */, "vec2" /* VEC2 */, "vec3" /* VEC3 */, "vec4" /* VEC4 */, "mat3" /* MAT3 */, "mat4" /* MAT4 */, "sampler2D" /* SAMPLER_2D */, "SSSModel" /* SSS_MODEL */, "SDFContext" /* SDF_CONTEXT */, "SDFMaterial" /* SDF_MATERIAL */ ]; export const GL_CONNECTION_POINT_TYPES_FOR_CONSTANT = [ "bool" /* BOOL */, "int" /* INT */, "float" /* FLOAT */, "vec2" /* VEC2 */, "vec3" /* VEC3 */, "vec4" /* VEC4 */ ]; export const GlConnectionPointTypeToParamTypeMap = { ["bool" /* BOOL */]: ParamType.BOOLEAN, // [ConnectionPointType.BVEC2]: [ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC3]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC4]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] ["int" /* INT */]: ParamType.INTEGER, // [ConnectionPointType.IVEC2]: [ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC3]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC4]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; ["float" /* FLOAT */]: ParamType.FLOAT, ["vec2" /* VEC2 */]: ParamType.VECTOR2, ["vec3" /* VEC3 */]: ParamType.VECTOR3, ["vec4" /* VEC4 */]: ParamType.VECTOR4, ["mat3" /* MAT3 */]: ParamType.BUTTON, ["mat4" /* MAT4 */]: ParamType.BUTTON, ["sampler2D" /* SAMPLER_2D */]: ParamType.RAMP, ["sampler2DArray" /* SAMPLER_2D_ARRAY */]: ParamType.RAMP, ["sampler3D" /* SAMPLER_3D */]: ParamType.RAMP, ["samplerCube" /* SAMPLER_CUBE */]: ParamType.RAMP, ["SSSModel" /* SSS_MODEL */]: ParamType.STRING, ["SDFContext" /* SDF_CONTEXT */]: ParamType.STRING, ["SDFMaterial" /* SDF_MATERIAL */]: ParamType.STRING }; export const GLParamTypeToConnectionPointTypeMap = { [ParamType.BOOLEAN]: "bool" /* BOOL */, [ParamType.COLOR]: "vec3" /* VEC3 */, // [ConnectionPointType.BVEC2]: [ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC3]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC4]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] [ParamType.INTEGER]: "int" /* INT */, // [ConnectionPointType.IVEC2]: [ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC3]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC4]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; [ParamType.FLOAT]: "float" /* FLOAT */, [ParamType.FOLDER]: void 0, [ParamType.VECTOR2]: "vec2" /* VEC2 */, [ParamType.VECTOR3]: "vec3" /* VEC3 */, [ParamType.VECTOR4]: "vec4" /* VEC4 */, [ParamType.BUTTON]: void 0, // [ParamType.OPERATOR_PATH]: undefined, [ParamType.PARAM_PATH]: void 0, [ParamType.NODE_PATH]: void 0, [ParamType.RAMP]: void 0, [ParamType.STRING]: void 0 }; export const GlConnectionPointInitValueMap = { ["bool" /* BOOL */]: false, // [ConnectionPointType.BVEC2]: [ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC3]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC4]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] ["int" /* INT */]: 0, // [ConnectionPointType.IVEC2]: [ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC3]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC4]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; ["float" /* FLOAT */]: 0, ["vec2" /* VEC2 */]: [0, 0], ["vec3" /* VEC3 */]: [0, 0, 0], ["vec4" /* VEC4 */]: [0, 0, 0, 0], ["mat3" /* MAT3 */]: null, ["mat4" /* MAT4 */]: null, ["sampler2D" /* SAMPLER_2D */]: RampParam.DEFAULT_VALUE_JSON, ["sampler2DArray" /* SAMPLER_2D_ARRAY */]: RampParam.DEFAULT_VALUE_JSON, ["sampler3D" /* SAMPLER_3D */]: RampParam.DEFAULT_VALUE_JSON, ["samplerCube" /* SAMPLER_CUBE */]: RampParam.DEFAULT_VALUE_JSON, ["SSSModel" /* SSS_MODEL */]: "SSSModel()", ["SDFContext" /* SDF_CONTEXT */]: "DefaultSDFContext()", ["SDFMaterial" /* SDF_MATERIAL */]: "DefaultSDFMaterial()" }; export const GlConnectionPointComponentsCountMap = { ["bool" /* BOOL */]: 1, // [ConnectionPointType.BVEC2]: [ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC3]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] // [ConnectionPointType.BVEC4]: [ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN, ParamType.BOOLEAN] ["int" /* INT */]: 1, // [ConnectionPointType.IVEC2]: [ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC3]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; // [ConnectionPointType.IVEC4]: [ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER, ParamType.INTEGER]; ["float" /* FLOAT */]: 1, ["vec2" /* VEC2 */]: 2, ["vec3" /* VEC3 */]: 3, ["vec4" /* VEC4 */]: 4, ["mat3" /* MAT3 */]: 9, ["mat4" /* MAT4 */]: 16, ["sampler2D" /* SAMPLER_2D */]: 1, ["sampler2DArray" /* SAMPLER_2D_ARRAY */]: 1, ["sampler3D" /* SAMPLER_3D */]: 1, ["samplerCube" /* SAMPLER_CUBE */]: 1, ["SSSModel" /* SSS_MODEL */]: 1, ["SDFContext" /* SDF_CONTEXT */]: 1, ["SDFMaterial" /* SDF_MATERIAL */]: 1 }; import { BaseConnectionPoint } from "./_Base"; export class GlConnectionPoint extends BaseConnectionPoint { // protected _init_value: any; constructor(_name, _type, _init_value) { super(_name, _type); this._name = _name; this._type = _type; this._init_value = _init_value; this._init_value = this._init_value || GlConnectionPointInitValueMap[this._type]; } type() { return this._type; } are_types_matched(src_type, dest_type) { return src_type == dest_type; } get param_type() { return GlConnectionPointTypeToParamTypeMap[this._type]; } get init_value() { return this._init_value; } toJSON() { return this._json = this._json || this._createJSON(); } _createJSON() { return { name: this._name, type: this._type // isArray: false, }; } }