diff --git a/src/mol-gl/_spec/renderable.spec.ts b/src/mol-gl/_spec/renderable.spec.ts index ab0f26a504a1bcd49f6a50d44153c0a12f59e67f..6d5118f10e2d505c36de4d603b9edec19fbb75aa 100644 --- a/src/mol-gl/_spec/renderable.spec.ts +++ b/src/mol-gl/_spec/renderable.spec.ts @@ -5,6 +5,7 @@ */ import { calculateBoundingSphere } from '../renderable/util'; +import { Vec3 } from '../../mol-math/linear-algebra'; describe('renderable', () => { it('calculateBoundingSphere', () => { @@ -34,7 +35,7 @@ describe('renderable', () => { transform, transform.length / 16 ) - expect(boundingSphere.radius).toBe(1.5) - expect(boundingSphere.center).toEqual([1.5, 0.0, 0.0]) + expect(boundingSphere.radius).toBeCloseTo(1.58, 2) + expect(Vec3.equals(boundingSphere.center, Vec3.create(1.418367, 0, 0))).toBe(true) }) }) diff --git a/src/mol-state/state.ts b/src/mol-state/state.ts index fe6c4291a43b08368640889d584806214553b9cd..6231870a80eb10c0339000d033f41bf78153cd15 100644 --- a/src/mol-state/state.ts +++ b/src/mol-state/state.ts @@ -1,5 +1,5 @@ /** - * Copyright (c) 2018-2019 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ @@ -154,13 +154,11 @@ class State { } if (isNested) throw e; } finally { - if (isNested) { - return; + if (!isNested) { + this.inTransaction = false; + this.events.changed.next({ state: this, inTransaction: false }); + this.events.isUpdating.next(false); } - - this.inTransaction = false; - this.events.changed.next({ state: this, inTransaction: false }); - this.events.isUpdating.next(false); } }); } @@ -714,7 +712,7 @@ function resolveParams(ctx: UpdateContext, transform: StateTransform, src: State const prms = transform.transformer.definition.params; const definition = prms ? prms(src, ctx.parent.globalContext) : {}; const defaultValues = ParamDefinition.getDefaultValues(definition); - (transform.params as any) = transform.params + (transform.params as any) = transform.params ? assignIfUndefined(transform.params, defaultValues) : defaultValues; return { definition, values: transform.params }; diff --git a/src/mol-util/data-source.ts b/src/mol-util/data-source.ts index 402a023df4e5329ec80927a439be61e49b6ca370..5568bf8a2fd0aa63ff39050f8594a53dfabb5d34 100644 --- a/src/mol-util/data-source.ts +++ b/src/mol-util/data-source.ts @@ -79,7 +79,7 @@ function genericError(isDownload: boolean) { } function readData<T extends XMLHttpRequest | FileReader>(ctx: RuntimeContext, action: string, data: T): Promise<T> { - return new Promise<T>((resolve, reject) => { + return new Promise<T>((resolve, reject) => { // first check if data reading is already done if (isDone(data)) { const { error } = data as FileReader;