UNPKG

@polygonjs/polygonjs

Version:

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

55 lines (54 loc) 1.44 kB
"use strict"; import { TypedNumericParam } from "./_Numeric"; import { ParamType } from "../poly/ParamType"; import { CoreString } from "../../core/String"; import { isString, isBoolean, isNumber } from "../../core/Type"; export class BooleanParam extends TypedNumericParam { static type() { return ParamType.BOOLEAN; } // TODO: be careful as this does not allow serialization of expressions as default value defaultValueSerialized() { if (isString(this._default_value)) { return this._default_value; } else { return this.convert(this._default_value) || false; } } rawInputSerialized() { return this._raw_input; } valueSerialized() { return this.value; } _copyValue(param) { this.set(param.value); } static areRawInputEqual(raw_input1, raw_input2) { return raw_input1 == raw_input2; } static areValuesEqual(val1, val2) { return val1 == val2; } convert(raw_val) { if (isBoolean(raw_val)) { return raw_val; } else { if (isNumber(raw_val)) { return raw_val >= 1; } else { if (isString(raw_val)) { if (CoreString.isBoolean(raw_val)) { return CoreString.toBoolean(raw_val); } else { if (CoreString.isNumber(raw_val)) { const parsed = parseFloat(raw_val); return parsed >= 1; } } } } } return null; } }