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