UNPKG

molstar

Version:

A comprehensive macromolecular library.

511 lines (510 loc) 21.3 kB
/** * Copyright (c) 2018-2024 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { StructureElement } from '../../mol-model/structure'; import { Volume } from '../../mol-model/volume'; import { PluginContext } from '../../mol-plugin/context'; import { VolumeRepresentationRegistry } from '../../mol-repr/volume/registry'; import { StateTransformer } from '../../mol-state'; import { ColorTheme } from '../../mol-theme/color'; import { SizeTheme } from '../../mol-theme/size'; import { ParamDefinition as PD } from '../../mol-util/param-definition'; import { PluginStateObject as SO } from '../objects'; import { Color } from '../../mol-util/color'; import { Script } from '../../mol-script/script'; import { Clipping } from '../../mol-theme/clipping'; export { StructureRepresentation3D }; export { ExplodeStructureRepresentation3D }; export { SpinStructureRepresentation3D }; export { UnwindStructureAssemblyRepresentation3D }; export { OverpaintStructureRepresentation3DFromScript }; export { OverpaintStructureRepresentation3DFromBundle }; export { TransparencyStructureRepresentation3DFromScript }; export { TransparencyStructureRepresentation3DFromBundle }; export { EmissiveStructureRepresentation3DFromScript }; export { EmissiveStructureRepresentation3DFromBundle }; export { SubstanceStructureRepresentation3DFromScript }; export { SubstanceStructureRepresentation3DFromBundle }; export { ClippingStructureRepresentation3DFromScript }; export { ClippingStructureRepresentation3DFromBundle }; export { ThemeStrengthRepresentation3D }; export { VolumeRepresentation3D }; type StructureRepresentation3D = typeof StructureRepresentation3D; declare const StructureRepresentation3D: StateTransformer<SO.Molecule.Structure, SO.Molecule.Structure.Representation3D, PD.Normalize<{ type: PD.NamedParams<any, string>; colorTheme: PD.NamedParams<any, string>; sizeTheme: PD.NamedParams<any, string>; }>>; type UnwindStructureAssemblyRepresentation3D = typeof UnwindStructureAssemblyRepresentation3D; declare const UnwindStructureAssemblyRepresentation3D: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ t: number; }>>; type ExplodeStructureRepresentation3D = typeof ExplodeStructureRepresentation3D; declare const ExplodeStructureRepresentation3D: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ t: number; }>>; type SpinStructureRepresentation3D = typeof SpinStructureRepresentation3D; declare const SpinStructureRepresentation3D: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ axis: PD.NamedParams<PD.Normalize<{ principalAxis: /*elided*/ any; }>, "structure"> | PD.NamedParams<PD.Normalize<{ vector: /*elided*/ any; }>, "custom">; origin: PD.NamedParams<PD.Normalize<unknown>, "structure"> | PD.NamedParams<PD.Normalize<{ vector: /*elided*/ any; }>, "custom">; t: number; }>>; type OverpaintStructureRepresentation3DFromScript = typeof OverpaintStructureRepresentation3DFromScript; declare const OverpaintStructureRepresentation3DFromScript: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ script: Script; color: Color; clear: boolean; }>[]; }>>; type OverpaintStructureRepresentation3DFromBundle = typeof OverpaintStructureRepresentation3DFromBundle; declare const OverpaintStructureRepresentation3DFromBundle: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ bundle: StructureElement.Bundle; color: Color; clear: boolean; }>[]; }>>; type TransparencyStructureRepresentation3DFromScript = typeof TransparencyStructureRepresentation3DFromScript; declare const TransparencyStructureRepresentation3DFromScript: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ script: Script; value: number; }>[]; }>>; type TransparencyStructureRepresentation3DFromBundle = typeof TransparencyStructureRepresentation3DFromBundle; declare const TransparencyStructureRepresentation3DFromBundle: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ bundle: StructureElement.Bundle; value: number; }>[]; }>>; type EmissiveStructureRepresentation3DFromScript = typeof EmissiveStructureRepresentation3DFromScript; declare const EmissiveStructureRepresentation3DFromScript: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ script: Script; value: number; }>[]; }>>; type EmissiveStructureRepresentation3DFromBundle = typeof EmissiveStructureRepresentation3DFromBundle; declare const EmissiveStructureRepresentation3DFromBundle: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ bundle: StructureElement.Bundle; value: number; }>[]; }>>; type SubstanceStructureRepresentation3DFromScript = typeof SubstanceStructureRepresentation3DFromScript; declare const SubstanceStructureRepresentation3DFromScript: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ script: Script; material: { metalness: number; roughness: number; bumpiness: number; }; clear: boolean; }>[]; }>>; type SubstanceStructureRepresentation3DFromBundle = typeof SubstanceStructureRepresentation3DFromBundle; declare const SubstanceStructureRepresentation3DFromBundle: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ bundle: StructureElement.Bundle; material: { metalness: number; roughness: number; bumpiness: number; }; clear: boolean; }>[]; }>>; type ClippingStructureRepresentation3DFromScript = typeof ClippingStructureRepresentation3DFromScript; declare const ClippingStructureRepresentation3DFromScript: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ script: Script; groups: Clipping.Groups.Flag; }>[]; }>>; type ClippingStructureRepresentation3DFromBundle = typeof ClippingStructureRepresentation3DFromBundle; declare const ClippingStructureRepresentation3DFromBundle: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ layers: PD.Normalize<{ bundle: StructureElement.Bundle; groups: Clipping.Groups.Flag; }>[]; }>>; type ThemeStrengthRepresentation3D = typeof ThemeStrengthRepresentation3D; declare const ThemeStrengthRepresentation3D: StateTransformer<SO.Molecule.Structure.Representation3D, SO.Molecule.Structure.Representation3DState, PD.Normalize<{ overpaintStrength: number; transparencyStrength: number; emissiveStrength: number; substanceStrength: number; }>>; export declare namespace VolumeRepresentation3DHelpers { function getDefaultParams(ctx: PluginContext, name: VolumeRepresentationRegistry.BuiltIn, volume: Volume, volumeParams?: Partial<PD.Values<PD.Params>>, colorName?: ColorTheme.BuiltIn, colorParams?: Partial<ColorTheme.Props>, sizeName?: SizeTheme.BuiltIn, sizeParams?: Partial<SizeTheme.Props>): StateTransformer.Params<VolumeRepresentation3D>; function getDefaultParamsStatic(ctx: PluginContext, name: VolumeRepresentationRegistry.BuiltIn, volumeParams?: Partial<PD.Values<PD.Params>>, colorName?: ColorTheme.BuiltIn, colorParams?: Partial<ColorTheme.Props>, sizeName?: SizeTheme.BuiltIn, sizeParams?: Partial<SizeTheme.Props>): StateTransformer.Params<VolumeRepresentation3D>; function getDescription(props: any): string | undefined; } type VolumeRepresentation3D = typeof VolumeRepresentation3D; declare const VolumeRepresentation3D: StateTransformer<SO.Volume.Data, SO.Volume.Representation3D, PD.Normalize<{ type: PD.NamedParams<any, string>; colorTheme: PD.NamedParams<any, string>; sizeTheme: PD.NamedParams<any, string>; }>>; export { ShapeRepresentation3D }; type ShapeRepresentation3D = typeof ShapeRepresentation3D; declare const ShapeRepresentation3D: StateTransformer<SO.Shape.Provider, SO.Shape.Representation3D, PD.Normalize<{}>>; export { ModelUnitcell3D }; type ModelUnitcell3D = typeof ModelUnitcell3D; declare const ModelUnitcell3D: StateTransformer<SO.Molecule.Model, SO.Shape.Representation3D, PD.Normalize<{ cellColor: Color; cellScale: number; ref: "origin" | "model"; attachment: "center" | "corner"; doubleSided: boolean; flipSided: boolean; flatShaded: boolean; ignoreLight: boolean; celShaded: boolean; xrayShaded: boolean | "inverted"; transparentBackfaces: "off" | "on" | "opaque"; bumpFrequency: number; bumpAmplitude: number; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; }>>; export { StructureBoundingBox3D }; type StructureBoundingBox3D = typeof StructureBoundingBox3D; declare const StructureBoundingBox3D: StateTransformer<SO.Molecule.Structure, SO.Shape.Representation3D, PD.Normalize<{ doubleSided: boolean; flipSided: boolean; flatShaded: boolean; ignoreLight: boolean; celShaded: boolean; xrayShaded: boolean | "inverted"; transparentBackfaces: "off" | "on" | "opaque"; bumpFrequency: number; bumpAmplitude: number; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; radius: number; color: Color; }>>; export { StructureSelectionsDistance3D }; type StructureSelectionsDistance3D = typeof StructureSelectionsDistance3D; declare const StructureSelectionsDistance3D: StateTransformer<SO.Molecule.Structure.Selections, SO.Shape.Representation3D, PD.Normalize<{ visuals: ("text" | "lines")[]; unitLabel: string; borderWidth: number; customText: string; textColor: Color; textSize: number; sizeFactor: number; borderColor: Color; offsetX: number; offsetY: number; offsetZ: number; background: boolean; backgroundMargin: number; backgroundColor: Color; backgroundOpacity: number; tether: boolean; tetherLength: number; tetherBaseWidth: number; attachment: "middle-center" | "bottom-left" | "bottom-center" | "bottom-right" | "middle-left" | "middle-right" | "top-left" | "top-center" | "top-right"; fontFamily: import("../../mol-geo/geometry/text/font-atlas").FontFamily; fontQuality: number; fontStyle: import("../../mol-geo/geometry/text/font-atlas").FontStyle; fontVariant: import("../../mol-geo/geometry/text/font-atlas").FontVariant; fontWeight: import("../../mol-geo/geometry/text/font-atlas").FontWeight; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; lineSizeAttenuation: boolean; linesColor: Color; linesSize: number; dashLength: number; }>>; export { StructureSelectionsAngle3D }; type StructureSelectionsAngle3D = typeof StructureSelectionsAngle3D; declare const StructureSelectionsAngle3D: StateTransformer<SO.Molecule.Structure.Selections, SO.Shape.Representation3D, PD.Normalize<{ visuals: ("text" | "vectors" | "sector" | "arc")[]; borderWidth: number; customText: string; textColor: Color; textSize: number; sizeFactor: number; borderColor: Color; offsetX: number; offsetY: number; offsetZ: number; background: boolean; backgroundMargin: number; backgroundColor: Color; backgroundOpacity: number; tether: boolean; tetherLength: number; tetherBaseWidth: number; attachment: "middle-center" | "bottom-left" | "bottom-center" | "bottom-right" | "middle-left" | "middle-right" | "top-left" | "top-center" | "top-right"; fontFamily: import("../../mol-geo/geometry/text/font-atlas").FontFamily; fontQuality: number; fontStyle: import("../../mol-geo/geometry/text/font-atlas").FontStyle; fontVariant: import("../../mol-geo/geometry/text/font-atlas").FontVariant; fontWeight: import("../../mol-geo/geometry/text/font-atlas").FontWeight; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; ignoreLight: boolean; sectorOpacity: number; color: Color; arcScale: number; doubleSided: boolean; flipSided: boolean; flatShaded: boolean; celShaded: boolean; xrayShaded: boolean | "inverted"; transparentBackfaces: "off" | "on" | "opaque"; bumpFrequency: number; bumpAmplitude: number; lineSizeAttenuation: boolean; linesSize: number; dashLength: number; }>>; export { StructureSelectionsDihedral3D }; type StructureSelectionsDihedral3D = typeof StructureSelectionsDihedral3D; declare const StructureSelectionsDihedral3D: StateTransformer<SO.Molecule.Structure.Selections, SO.Shape.Representation3D, PD.Normalize<{ visuals: ("text" | "vectors" | "sector" | "arc" | "extenders" | "arms" | "connector")[]; borderWidth: number; customText: string; textColor: Color; textSize: number; sizeFactor: number; borderColor: Color; offsetX: number; offsetY: number; offsetZ: number; background: boolean; backgroundMargin: number; backgroundColor: Color; backgroundOpacity: number; tether: boolean; tetherLength: number; tetherBaseWidth: number; attachment: "middle-center" | "bottom-left" | "bottom-center" | "bottom-right" | "middle-left" | "middle-right" | "top-left" | "top-center" | "top-right"; fontFamily: import("../../mol-geo/geometry/text/font-atlas").FontFamily; fontQuality: number; fontStyle: import("../../mol-geo/geometry/text/font-atlas").FontStyle; fontVariant: import("../../mol-geo/geometry/text/font-atlas").FontVariant; fontWeight: import("../../mol-geo/geometry/text/font-atlas").FontWeight; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; ignoreLight: boolean; sectorOpacity: number; color: Color; arcScale: number; doubleSided: boolean; flipSided: boolean; flatShaded: boolean; celShaded: boolean; xrayShaded: boolean | "inverted"; transparentBackfaces: "off" | "on" | "opaque"; bumpFrequency: number; bumpAmplitude: number; lineSizeAttenuation: boolean; linesSize: number; dashLength: number; }>>; export { StructureSelectionsLabel3D }; type StructureSelectionsLabel3D = typeof StructureSelectionsLabel3D; declare const StructureSelectionsLabel3D: StateTransformer<SO.Molecule.Structure.Selections, SO.Shape.Representation3D, PD.Normalize<{ scaleByRadius: boolean; visuals: "text"[]; snapshotKey: string; tooltip: string; borderWidth: number; customText: string; textColor: Color; textSize: number; sizeFactor: number; borderColor: Color; offsetX: number; offsetY: number; offsetZ: number; background: boolean; backgroundMargin: number; backgroundColor: Color; backgroundOpacity: number; tether: boolean; tetherLength: number; tetherBaseWidth: number; attachment: "middle-center" | "bottom-left" | "bottom-center" | "bottom-right" | "middle-left" | "middle-right" | "top-left" | "top-center" | "top-right"; fontFamily: import("../../mol-geo/geometry/text/font-atlas").FontFamily; fontQuality: number; fontStyle: import("../../mol-geo/geometry/text/font-atlas").FontStyle; fontVariant: import("../../mol-geo/geometry/text/font-atlas").FontVariant; fontWeight: import("../../mol-geo/geometry/text/font-atlas").FontWeight; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; }>>; export { StructureSelectionsOrientation3D }; type StructureSelectionsOrientation3D = typeof StructureSelectionsOrientation3D; declare const StructureSelectionsOrientation3D: StateTransformer<SO.Molecule.Structure.Selections, SO.Shape.Representation3D, PD.Normalize<{ visuals: ("box" | "axes" | "ellipsoid")[]; color: Color; scaleFactor: number; radiusScale: number; doubleSided: boolean; flipSided: boolean; flatShaded: boolean; ignoreLight: boolean; celShaded: boolean; xrayShaded: boolean | "inverted"; transparentBackfaces: "off" | "on" | "opaque"; bumpFrequency: number; bumpAmplitude: number; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; }>>; export { StructureSelectionsPlane3D }; type StructureSelectionsPlane3D = typeof StructureSelectionsPlane3D; declare const StructureSelectionsPlane3D: StateTransformer<SO.Molecule.Structure.Selections, SO.Shape.Representation3D, PD.Normalize<{ visuals: "plane"[]; color: Color; scaleFactor: number; doubleSided: boolean; flipSided: boolean; flatShaded: boolean; ignoreLight: boolean; celShaded: boolean; xrayShaded: boolean | "inverted"; transparentBackfaces: "off" | "on" | "opaque"; bumpFrequency: number; bumpAmplitude: number; alpha: number; quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest"; material: PD.Normalize<{ metalness: number; roughness: number; bumpiness: number; }>; clip: PD.Normalize<{ variant: /*elided*/ any; objects: /*elided*/ any; }>; emissive: number; density: number; instanceGranularity: boolean; lod: import("../../mol-math/linear-algebra").Vec3; cellSize: number; batchSize: number; }>>;