UNPKG

molstar

Version:

A comprehensive macromolecular library.

63 lines (62 loc) 1.95 kB
/** * Copyright (c) 2019-2021 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> * @author David Sehnal <david.sehnal@gmail.com> */ import { UUID } from '../../../mol-util'; import { Cell } from '../../../mol-math/geometry/spacegroup/cell'; import { AtomicConformation } from '../model/properties/atomic'; import { Column } from '../../../mol-data/db'; export interface Frame { readonly elementCount: number; readonly time: Time; readonly x: ArrayLike<number>; readonly y: ArrayLike<number>; readonly z: ArrayLike<number>; readonly cell?: Cell; readonly velocities?: { readonly vx: ArrayLike<number>; readonly vy: ArrayLike<number>; readonly vz: ArrayLike<number>; }; readonly forces?: { readonly fx: ArrayLike<number>; readonly fy: ArrayLike<number>; readonly fz: ArrayLike<number>; }; readonly xyzOrdering: { isIdentity: boolean; frozen?: boolean; index?: ArrayLike<number>; }; } export { Time }; interface Time { value: number; unit: Time.Unit; } declare function Time(value: number, unit: Time.Unit): { value: number; unit: Time.Unit; }; declare namespace Time { type Unit = 'ps' | 'step'; } export { Coordinates }; interface Coordinates { readonly id: UUID; readonly frames: Frame[]; readonly hasCell: boolean; readonly hasVelocities: boolean; readonly hasForces: boolean; readonly deltaTime: Time; readonly timeOffset: Time; } declare namespace Coordinates { function create(frames: Frame[], deltaTime: Time, timeOffset: Time): Coordinates; /** * Only use ordering if it's not identity. */ function getAtomicConformation(frame: Frame, atomId: Column<number>, ordering?: ArrayLike<number>): AtomicConformation; }