UNPKG

molstar

Version:

A comprehensive macromolecular library.

66 lines (65 loc) 2.75 kB
import { SpacegroupCell } from '../../../../mol-math/geometry'; /** Information about a region sampled in fractional coordinates */ export interface GridInfo { /** Origin in fractional coords. */ origin: Fractional; /** Box dimensions in fractional coords. */ dimensions: Fractional; /** Grid delta in fractional coordinates along each axis (in axis order) */ delta: Fractional; /** Sample count of the grid box */ sampleCount: number[]; } /** * Grid domain with the supplied info and "kind". * The "kind" is used so that the TypeScript compiler * can distinguish between different types of grids, * e.g. GridDomain<'Data'>, GridDomain<'Query'>, GridDomain<'Block'>, etc. */ export interface GridDomain<K> extends GridInfo { kind: K; sampleVolume: number; } export declare const enum Space { Cartesian = 0, Fractional = 1, Grid = 2 } export interface Coord<S extends Space> { kind: S; '0': number; '1': number; '2': number; [index: number]: number; } export interface Cartesian extends Coord<Space.Cartesian> { } export interface Fractional extends Coord<Space.Fractional> { } export interface Grid<K> extends Coord<Space.Grid> { domain: GridDomain<K>; } export declare function domain<K>(kind: K, info: GridInfo): GridDomain<K>; export declare function cartesian(x: number, y: number, z: number): Cartesian; export declare function fractional(x: number, y: number, z: number): Fractional; export declare function grid<K>(domain: GridDomain<K>, x: number, y: number, z: number): Grid<K>; export declare function withCoord<C extends (Coord<Space> | Grid<any>)>(a: C, x: number, y: number, z: number): C; export declare function clone<C extends (Coord<Space> | Grid<any>)>(a: C): C; export declare function cartesianToFractional(a: Cartesian, spacegroup: SpacegroupCell): Fractional; export declare function fractionalToGrid<K>(a: Fractional, domain: GridDomain<K>, snap: 'bottom' | 'top'): Grid<K>; export declare function gridToFractional<K>(a: Grid<K>): Fractional; export declare function clampGridToSamples<K>(a: Grid<K>): Grid<K>; export declare function add<S extends Space>(a: Coord<S>, b: Coord<S>): Coord<S>; export declare function sub<S extends Space>(a: Coord<S>, b: Coord<S>): Coord<S>; export declare function invert<S extends Space>(a: Coord<S>): Coord<S>; /** Maps each grid point to a unique integer */ export declare function linearGridIndex<K>(a: Grid<K>): number; export declare function gridMetrics(dimensions: { [i: number]: number; }): { sizeX: number; sizeXY: number; sizeXYZ: number; }; export declare function sampleCounts(dimensions: Fractional, delta: Fractional): number[]; export declare function round(v: number): number;