molstar
Version:
A comprehensive macromolecular library.
134 lines (133 loc) • 5.07 kB
TypeScript
/**
* 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;
}
}