polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
207 lines (200 loc) • 8.03 kB
text/typescript
// import {ParamType} from '../../../poly/ParamType';
// import {ParamInitValuesTypeMap} from '../../../params/types/ParamInitValuesTypeMap';
// import {ParamValue} from '../../../params/types/ParamValue';
// import {Vector2} from 'three/src/math/Vector2';
// import {Vector3} from 'three/src/math/Vector3';
// import {Vector4} from 'three/src/math/Vector4';
// import {Color} from 'three/src/math/Color';
// // import {TypeAssert} from '../../../poly/Assert';
// import {RampParam} from '../../../params/Ramp';
// // type ConvertMethod<T extends ParamType> = (val: ParamValuesTypeMap[T]) => ParamInitValuesTypeMap[T];
// type ConvertMethod<T extends ParamType> = (val: ParamValue) => ParamInitValuesTypeMap[T];
// type ParamValuetoInitValueMapGeneric = {[key in ParamType]: ConvertMethod<key>};
// // function convert_boolean(value: ParamValuesTypeMap[ParamType.BOOLEAN]): ParamInitValuesTypeMap[ParamType.BOOLEAN] {
// // return value ? 1 : 0;
// // }
// // function convert_button(value: ParamValuesTypeMap[ParamType.BUTTON]): ParamInitValuesTypeMap[ParamType.BUTTON] {
// // return value;
// // }
// // function convert_color(value: ParamValuesTypeMap[ParamType.COLOR]): ParamInitValuesTypeMap[ParamType.COLOR] {
// // return value.toArray() as Number3;
// // }
// // function convert_float(value: ParamValuesTypeMap[ParamType.FLOAT]): ParamInitValuesTypeMap[ParamType.FLOAT] {
// // return value;
// // }
// // function convert_integer(value: ParamValuesTypeMap[ParamType.INTEGER]): ParamInitValuesTypeMap[ParamType.INTEGER] {
// // return value;
// // }
// // function convert_operator_path(
// // value: ParamValuesTypeMap[ParamType.OPERATOR_PATH]
// // ): ParamInitValuesTypeMap[ParamType.OPERATOR_PATH] {
// // return value;
// // }
// // function convert_ramp(value: ParamValuesTypeMap[ParamType.RAMP]): ParamInitValuesTypeMap[ParamType.RAMP] {
// // return value;
// // }
// // function convert_separator(
// // value: ParamValuesTypeMap[ParamType.SEPARATOR]
// // ): ParamInitValuesTypeMap[ParamType.SEPARATOR] {
// // return value;
// // }
// // function convert_string(value: ParamValuesTypeMap[ParamType.STRING]): ParamInitValuesTypeMap[ParamType.STRING] {
// // return value;
// // }
// // function convert_vector2(value: ParamValuesTypeMap[ParamType.VECTOR2]): ParamInitValuesTypeMap[ParamType.VECTOR2] {
// // return value.toArray() as Number2;
// // }
// // function convert_vector3(value: ParamValuesTypeMap[ParamType.VECTOR3]): ParamInitValuesTypeMap[ParamType.VECTOR3] {
// // return value.toArray() as Number3;
// // }
// // function convert_vector4(value: ParamValuesTypeMap[ParamType.VECTOR4]): ParamInitValuesTypeMap[ParamType.VECTOR4] {
// // return value.toArray() as Number4;
// // }
// function convert_boolean(value: ParamValue): ParamInitValuesTypeMap[ParamType.BOOLEAN] {
// return value ? 1 : 0;
// }
// function convert_button(value: ParamValue): ParamInitValuesTypeMap[ParamType.BUTTON] {
// return null;
// }
// function convert_color(value: ParamValue): ParamInitValuesTypeMap[ParamType.COLOR] {
// if (CoreType.isNumber(value)) {
// return [value, value, value];
// }
// if (value instanceof Vector2) {
// const v2 = value.toArray() as Number2;
// return [v2[0], v2[1], v2[0]];
// }
// if (value instanceof Vector3) {
// return value.toArray() as Number3;
// }
// if (value instanceof Color) {
// return value.toArray() as Number3;
// }
// if (value instanceof Vector4) {
// const v4 = value.toArray() as Number4;
// return [v4[0], v4[1], v4[2]];
// }
// return [0, 0, 0];
// }
// function convert_float(value: ParamValue): ParamInitValuesTypeMap[ParamType.FLOAT] {
// if (CoreType.isNumber(value)) {
// return value;
// }
// if (value instanceof Vector2 || value instanceof Vector3 || value instanceof Vector4) {
// return value.toArray()[0];
// }
// return 0;
// }
// function convert_folder(value: ParamValue): ParamInitValuesTypeMap[ParamType.FOLDER] {
// return null;
// }
// function convert_integer(value: ParamValue): ParamInitValuesTypeMap[ParamType.INTEGER] {
// if (CoreType.isNumber(value)) {
// return Math.floor(value);
// }
// if (value instanceof Vector2 || value instanceof Vector3 || value instanceof Vector4) {
// return Math.floor(value.toArray()[0]);
// }
// return 0;
// }
// function convert_operator_path(value: ParamValue): ParamInitValuesTypeMap[ParamType.OPERATOR_PATH] {
// return `${value}`;
// }
// function convert_ramp(value: ParamValue): ParamInitValuesTypeMap[ParamType.RAMP] {
// return RampParam.DEFAULT_VALUE;
// }
// function convert_separator(value: ParamValue): ParamInitValuesTypeMap[ParamType.SEPARATOR] {
// return null;
// }
// function convert_string(value: ParamValue): ParamInitValuesTypeMap[ParamType.STRING] {
// return `${value}`;
// }
// function convert_vector2(value: ParamValue): ParamInitValuesTypeMap[ParamType.VECTOR2] {
// if (CoreType.isNumber(value)) {
// return [value, value];
// }
// if (value instanceof Vector2) {
// return value.toArray() as Number2;
// }
// if (value instanceof Vector3) {
// const v3 = value.toArray();
// return [v3[0], v3[1]];
// }
// if (value instanceof Color) {
// const v3 = value.toArray();
// return [v3[0], v3[1]];
// }
// if (value instanceof Vector4) {
// const v4 = value.toArray() as Number4;
// return [v4[0], v4[1]];
// }
// return [0, 0];
// }
// function convert_vector3(value: ParamValue): ParamInitValuesTypeMap[ParamType.VECTOR3] {
// if (CoreType.isNumber(value)) {
// return [value, value, value];
// }
// if (value instanceof Vector2) {
// const v2 = value.toArray() as Number2;
// return [v2[0], v2[1], v2[0]];
// }
// if (value instanceof Vector3) {
// return value.toArray() as Number3;
// }
// if (value instanceof Color) {
// return value.toArray() as Number3;
// }
// if (value instanceof Vector4) {
// const v4 = value.toArray() as Number4;
// return [v4[0], v4[1], v4[2]];
// }
// return [0, 0, 0];
// }
// function convert_vector4(value: ParamValue): ParamInitValuesTypeMap[ParamType.VECTOR4] {
// if (CoreType.isNumber(value)) {
// return [value, value, value, value];
// }
// if (value instanceof Vector2) {
// const v2 = value.toArray() as Number2;
// return [v2[0], v2[1], v2[0], v2[0]];
// }
// if (value instanceof Vector3) {
// const v3 = value.toArray() as Number3;
// return [v3[0], v3[1], v3[2], v3[0]];
// }
// if (value instanceof Color) {
// const v3 = value.toArray() as Number3;
// return [v3[0], v3[1], v3[2], v3[0]];
// }
// if (value instanceof Vector4) {
// return value.toArray() as Number4;
// }
// return [0, 0, 0, 0];
// }
// const ParamValuetoInitValueMap: ParamValuetoInitValueMapGeneric = {
// [ParamType.BOOLEAN]: convert_boolean,
// [ParamType.BUTTON]: convert_button,
// [ParamType.COLOR]: convert_color,
// [ParamType.FLOAT]: convert_float,
// [ParamType.FOLDER]: convert_folder,
// [ParamType.INTEGER]: convert_integer,
// [ParamType.OPERATOR_PATH]: convert_operator_path,
// [ParamType.RAMP]: convert_ramp,
// [ParamType.SEPARATOR]: convert_separator,
// [ParamType.STRING]: convert_string,
// [ParamType.VECTOR2]: convert_vector2,
// [ParamType.VECTOR3]: convert_vector3,
// [ParamType.VECTOR4]: convert_vector4,
// };
// export class ParamValueToDefaultConverter {
// // static from_value<T extends ParamType>(type: T, value: ParamValuesTypeMap[T]): ParamInitValuesTypeMap[T] {
// // // TODO: typescript, try and work out of I can avoid this cast (check file Debug.ts in same folder)
// // const method: ConvertMethod<T> = (<unknown>ParamValuetoInitValueMap[type]) as ConvertMethod<T>;
// // return method(value);
// // }
// static from_value<T extends ParamType>(type: T, value: ParamValue): ParamInitValuesTypeMap[T] {
// // const method: ConvertMethod<T> = (<unknown>ParamValuetoInitValueMap[type]) as ConvertMethod<T>;
// const method: ConvertMethod<T> = (<unknown>ParamValuetoInitValueMap[type]) as ConvertMethod<T>;
// return method(value);
// }
// }