UNPKG

molstar

Version:

A comprehensive macromolecular library.

64 lines (63 loc) 3.64 kB
/** * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ import { StructureElement } from '../../../mol-model/structure'; import { PluginContext } from '../../../mol-plugin/context'; import { StateTransform, StateTransformer, StateObjectCell } from '../../../mol-state'; import { StateTransforms } from '../../transforms'; import { PluginStateObject } from '../../objects'; import { StatefulPluginComponent } from '../../component'; import { ParamDefinition as PD } from '../../../mol-util/param-definition'; import { LociLabelTextParams } from '../../../mol-repr/shape/loci/common'; import { LineParams } from '../../../mol-repr/structure/representation/line'; export { StructureMeasurementManager }; export declare const MeasurementGroupTag = "measurement-group"; export declare type StructureMeasurementCell = StateObjectCell<PluginStateObject.Shape.Representation3D, StateTransform<StateTransformer<PluginStateObject.Molecule.Structure.Selections, PluginStateObject.Shape.Representation3D, any>>>; export declare const StructureMeasurementParams: { distanceUnitLabel: PD.Text<string>; textColor: PD.Color; }; export declare type StructureMeasurementOptions = PD.ValuesFor<typeof StructureMeasurementParams>; export interface StructureMeasurementManagerState { labels: StructureMeasurementCell[]; distances: StructureMeasurementCell[]; angles: StructureMeasurementCell[]; dihedrals: StructureMeasurementCell[]; orientations: StructureMeasurementCell[]; options: StructureMeasurementOptions; } declare type StructureMeasurementManagerAddOptions = { customText?: string; selectionTags?: string | string[]; reprTags?: string | string[]; lineParams?: Partial<PD.Values<LineParams>>; labelParams?: Partial<PD.Values<LociLabelTextParams>>; }; declare class StructureMeasurementManager extends StatefulPluginComponent<StructureMeasurementManagerState> { private plugin; readonly behaviors: { state: import("rxjs").BehaviorSubject<StructureMeasurementManagerState>; }; private stateUpdated; private getGroup; setOptions(options: StructureMeasurementOptions): Promise<void>; addDistance(a: StructureElement.Loci, b: StructureElement.Loci, options?: StructureMeasurementManagerAddOptions & { visualParams?: Partial<StateTransformer.Params<typeof StateTransforms.Representation.StructureSelectionsDistance3D>>; }): Promise<void>; addAngle(a: StructureElement.Loci, b: StructureElement.Loci, c: StructureElement.Loci, options?: StructureMeasurementManagerAddOptions & { visualParams?: Partial<StateTransformer.Params<typeof StateTransforms.Representation.StructureSelectionsAngle3D>>; }): Promise<void>; addDihedral(a: StructureElement.Loci, b: StructureElement.Loci, c: StructureElement.Loci, d: StructureElement.Loci, options?: StructureMeasurementManagerAddOptions & { visualParams?: Partial<StateTransformer.Params<typeof StateTransforms.Representation.StructureSelectionsDihedral3D>>; }): Promise<void>; addLabel(a: StructureElement.Loci, options?: Omit<StructureMeasurementManagerAddOptions, 'customText' | 'lineParams'> & { visualParams?: Partial<StateTransformer.Params<typeof StateTransforms.Representation.StructureSelectionsLabel3D>>; }): Promise<void>; addOrientation(a: StructureElement.Loci): Promise<void>; private _empty; private getTransforms; private sync; constructor(plugin: PluginContext); }