@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
174 lines (173 loc) • 7.39 kB
JavaScript
;
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,
};
}
}