UNPKG

molstar

Version:

A comprehensive macromolecular library.

134 lines (133 loc) 5.07 kB
/** * Copyright (c) 2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { Grid } from './grid'; import { OrderedSet } from '../../mol-data/int'; import { Sphere3D } from '../../mol-math/geometry'; import { ModelFormat } from '../../mol-model-formats/format'; import { CustomProperties } from '../custom-property'; import { ParamDefinition as PD } from '../../mol-util/param-definition'; export interface Volume { readonly label?: string; readonly entryId?: string; readonly grid: Grid; readonly sourceData: ModelFormat; customProperties: CustomProperties; /** * Not to be accessed directly, each custom property descriptor * defines property accessors that use this field to store the data. */ _propertyData: { [name: string]: any; }; readonly colorVolume?: Volume; } export declare namespace Volume { function is(x: any): x is Volume; type CellIndex = { readonly '@type': 'cell-index'; } & number; type IsoValue = IsoValue.Absolute | IsoValue.Relative; namespace IsoValue { type Relative = Readonly<{ kind: 'relative'; relativeValue: number; }>; type Absolute = Readonly<{ kind: 'absolute'; absoluteValue: number; }>; function areSame(a: IsoValue, b: IsoValue, stats: Grid['stats']): boolean; function absolute(value: number): Absolute; function relative(value: number): Relative; function calcAbsolute(stats: Grid['stats'], relativeValue: number): number; function calcRelative(stats: Grid['stats'], absoluteValue: number): number; function toAbsolute(value: IsoValue, stats: Grid['stats']): Absolute; function toRelative(value: IsoValue, stats: Grid['stats']): Relative; function toString(value: IsoValue): string; } function createIsoValueParam(defaultValue: Volume.IsoValue, stats?: Grid['stats']): PD.Conditioned<Readonly<{ kind: "absolute"; absoluteValue: number; }> | Readonly<{ kind: "relative"; relativeValue: number; }>, PD.Base<Readonly<{ kind: "absolute"; absoluteValue: number; }> | Readonly<{ kind: "relative"; relativeValue: number; }>>, { absolute: PD.Converted<Readonly<{ kind: "absolute"; absoluteValue: number; }>, number>; relative: PD.Converted<Readonly<{ kind: "relative"; relativeValue: number; }>, number>; }>; const IsoValueParam: PD.Conditioned<Readonly<{ kind: 'absolute'; absoluteValue: number; }> | Readonly<{ kind: 'relative'; relativeValue: number; }>, PD.Base<Readonly<{ kind: 'absolute'; absoluteValue: number; }> | Readonly<{ kind: 'relative'; relativeValue: number; }>>, { absolute: PD.Converted<Readonly<{ kind: 'absolute'; absoluteValue: number; }>, number>; relative: PD.Converted<Readonly<{ kind: 'relative'; relativeValue: number; }>, number>; }>; type IsoValueParam = typeof IsoValueParam; const One: Volume; function areEquivalent(volA: Volume, volB: Volume): boolean; function isEmpty(vol: Volume): boolean; function isOrbitals(volume: Volume): boolean; interface Loci { readonly kind: 'volume-loci'; readonly volume: Volume; } function Loci(volume: Volume): Loci; function isLoci(x: any): x is Loci; function areLociEqual(a: Loci, b: Loci): boolean; function isLociEmpty(loci: Loci): boolean; function getBoundingSphere(volume: Volume, boundingSphere?: Sphere3D): Sphere3D; namespace Isosurface { interface Loci { readonly kind: 'isosurface-loci'; readonly volume: Volume; readonly isoValue: Volume.IsoValue; } function Loci(volume: Volume, isoValue: Volume.IsoValue): Loci; function isLoci(x: any): x is Loci; function areLociEqual(a: Loci, b: Loci): boolean; function isLociEmpty(loci: Loci): boolean; function getBoundingSphere(volume: Volume, isoValue: Volume.IsoValue, boundingSphere?: Sphere3D): Sphere3D; } namespace Cell { interface Loci { readonly kind: 'cell-loci'; readonly volume: Volume; readonly indices: OrderedSet<CellIndex>; } function Loci(volume: Volume, indices: OrderedSet<CellIndex>): Loci; function isLoci(x: any): x is Loci; function areLociEqual(a: Loci, b: Loci): boolean; function isLociEmpty(loci: Loci): boolean; function getBoundingSphere(volume: Volume, indices: OrderedSet<CellIndex>, boundingSphere?: Sphere3D): Sphere3D; } }