UNPKG

pdbe-molstar

Version:
48 lines (47 loc) 2.76 kB
import { AssemblySymmetryParams, AssemblySymmetryProps } from 'molstar/lib/extensions/assembly-symmetry/prop'; import { StructureRef } from 'molstar/lib/mol-plugin-state/manager/structure/hierarchy-state'; import { PurePluginUIComponent } from 'molstar/lib/mol-plugin-ui/base'; import { PluginContext } from 'molstar/lib/mol-plugin/context'; import { UUID } from 'molstar/lib/mol-util'; import { ParamDefinition as PD } from 'molstar/lib/mol-util/param-definition'; declare const DefaultSymmetryParams: { /** State of the visibility button */ on: PD.BooleanParam; /** Index of the currently selected symmetry (in case there a more symmetries for an assembly), regardless of whether visibility is on of off */ symmetryIndex: PD.Select<number>; /** `true` if visibility is on and symmetry data have been retrieved and contain at least one non-trivial symmetry. */ hasSymmetries: PD.BooleanParam; }; type SymmetryParams = typeof DefaultSymmetryParams; type SymmetryProps = PD.ValuesFor<SymmetryParams>; interface SymmetryControlsState { params: SymmetryParams; values: SymmetryProps; } /** UI controls for showing Assembly Symmetry annotations (a row within Annotations section) */ export declare class SymmetryAnnotationControls extends PurePluginUIComponent<{}, SymmetryControlsState> { state: SymmetryControlsState; currentStructureId: UUID | undefined; componentDidMount(): void; /** Synchronize parameters and values in UI with real parameters currently applied in `AssemblySymmetryProvider` */ syncParams(): void; /** Return `true` if symmetry data have been retrieved and contain at least one non-trivial symmetry. */ hasSymmetriesAvailable(): boolean; /** Get the first loaded structure, if any. */ getPivotStructure(): StructureRef | undefined; /** Get parameters currently applied in `AssemblySymmetryProvider` */ getRealParams(): AssemblySymmetryParams; /** Get parameter values currently applied in `AssemblySymmetryProvider` */ getRealValues(): AssemblySymmetryProps; /** Return `true` if an `AssemblySymmetry3D` node existing in the */ hasAssemblySymmetry3D(): boolean; /** Run changes needed to set visibility on or off, and set UI accordingly */ apply(applied: boolean): Promise<void>; /** Run changes needed to change parameter values, and set UI accordingly */ changeParamValues(values: SymmetryProps): Promise<void>; /** Try to retrieve symmetry data and create `AssemblySymmetry3D` representation */ initSymmetry(initialSymmetryIndex?: number): Promise<void>; render(): import("react/jsx-runtime").JSX.Element; } export declare function isAssemblySymmetryAnnotationApplicable(plugin: PluginContext): boolean; export {};