@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
99 lines (98 loc) • 3.11 kB
JavaScript
;
import { ParamType } from "../../../poly/ParamType";
import { RampParam } from "../../../params/Ramp";
import { Color } from "three";
import { Vector2 } from "three";
import { Vector3 } from "three";
import { Vector4 } from "three";
export class ParamTemplate {
constructor(type, init_value, options) {
this.type = type;
this.init_value = init_value;
this.options = options;
}
}
export class ParamConfig {
static BUTTON(init_value, options) {
return new ParamTemplate(ParamType.BUTTON, init_value, options);
}
static BOOLEAN(init_value, options) {
return new ParamTemplate(ParamType.BOOLEAN, init_value, options);
}
static COLOR(init_value, options) {
if (init_value instanceof Color) {
init_value = init_value.toArray();
}
return new ParamTemplate(ParamType.COLOR, init_value, options);
}
static FLOAT(init_value, options) {
return new ParamTemplate(ParamType.FLOAT, init_value, options);
}
static FOLDER(init_value = null, options) {
return new ParamTemplate(ParamType.FOLDER, init_value, options);
}
static INTEGER(init_value, options) {
return new ParamTemplate(ParamType.INTEGER, init_value, options);
}
static RAMP(init_value = RampParam.DEFAULT_VALUE, options) {
return new ParamTemplate(ParamType.RAMP, init_value, options);
}
static STRING(init_value = "", options) {
return new ParamTemplate(ParamType.STRING, init_value, options);
}
static VECTOR2(init_value, options) {
if (init_value instanceof Vector2) {
init_value = init_value.toArray();
}
return new ParamTemplate(ParamType.VECTOR2, init_value, options);
}
static VECTOR3(init_value, options) {
if (init_value instanceof Vector3) {
init_value = init_value.toArray();
}
return new ParamTemplate(ParamType.VECTOR3, init_value, options);
}
static VECTOR4(init_value, options) {
if (init_value instanceof Vector4) {
init_value = init_value.toArray();
}
return new ParamTemplate(ParamType.VECTOR4, init_value, options);
}
//
//
// PATH PARAMS
//
//
// static OPERATOR_PATH(
// init_value: ParamInitValuesTypeMap[ParamType.OPERATOR_PATH],
// options?: ParamOptionsByTypeMap[ParamType.OPERATOR_PATH]
// ) {
// return new ParamTemplate<ParamType.OPERATOR_PATH>(ParamType.OPERATOR_PATH, init_value, options);
// }
static NODE_PATH(init_value, options) {
return new ParamTemplate(ParamType.NODE_PATH, init_value, options);
}
static PARAM_PATH(init_value, options) {
return new ParamTemplate(ParamType.PARAM_PATH, init_value, options);
}
}
export class NodeParamsConfig {
}
export class HierarchyParamConfig extends NodeParamsConfig {
constructor() {
super(...arguments);
/** @param group to apply this node to */
this.group = ParamConfig.STRING("", {
objectMask: true
});
}
}
export class HierarchyParamConfigAll extends NodeParamsConfig {
constructor() {
super(...arguments);
/** @param group to apply this node to */
this.group = ParamConfig.STRING("*", {
objectMask: true
});
}
}