diff --git a/src/mol-util/material.ts b/src/mol-util/material.ts index 10e1914b17eb2c7ca2760c44f32b65b796dc244d..4dee3882bb48151a3a854320322148469f680185 100644 --- a/src/mol-util/material.ts +++ b/src/mol-util/material.ts @@ -6,7 +6,7 @@ import { NumberArray } from './type-helpers'; import { ParamDefinition as PD } from './param-definition'; -import { toPrecision } from './number'; +import { toFixed } from './number'; /** Material properties expressed as a single number */ export type Material = { readonly '@type': 'material' } & number @@ -22,12 +22,12 @@ export namespace Material { return fromNormalized(v.metalness, v.roughness); } - export function toObjectNormalized(material: Material, precision?: number) { + export function toObjectNormalized(material: Material, fractionDigits?: number) { const metalness = (material >> 16 & 255) / 255; const roughness = (material >> 8 & 255) / 255; return { - metalness: precision ? toPrecision(metalness, precision) : metalness, - roughness: precision ? toPrecision(roughness, precision) : roughness + metalness: fractionDigits ? toFixed(metalness, fractionDigits) : metalness, + roughness: fractionDigits ? toFixed(roughness, fractionDigits) : roughness }; } @@ -45,7 +45,7 @@ export namespace Material { export function getParam(info?: { isExpanded?: boolean, isFlat?: boolean }) { return PD.Converted( - (v: Material) => toObjectNormalized(v, 2), + (v: Material) => toObjectNormalized(v, 1), (v: { metalness: number, roughness: number }) => fromObjectNormalized(v), PD.Group({ metalness: PD.Numeric(0, { min: 0, max: 1, step: 0.1 }), diff --git a/src/mol-util/number.ts b/src/mol-util/number.ts index 542ae2c2d5589970d2c7b433884aea0f613155a3..ecf5d5cdcf76b5197e0434c67551ac971b6c8f96 100644 --- a/src/mol-util/number.ts +++ b/src/mol-util/number.ts @@ -68,4 +68,8 @@ export function getPrecision(v: number) { export function toPrecision(v: number, precision: number) { return parseFloat(v.toPrecision(precision)); +} + +export function toFixed(v: number, fractionDigits: number) { + return parseFloat(v.toFixed(fractionDigits)); } \ No newline at end of file