/** * Copyright (c) 2023-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ import { PluginStateObject as PSO } from '../../../mol-plugin-state/objects.js'; import { PluginContext } from '../../../mol-plugin/context.js'; import { ParamDefinition as PD } from '../../../mol-util/param-definition.js'; import { Color } from '../../../mol-util/color/index.js'; import { Clip } from '../../../mol-util/clip.js'; import { Mat4, Vec3 } from '../../../mol-math/linear-algebra.js'; import { ParamMapping } from '../../../mol-util/param-mapping.js'; import { EntityNode } from '../ui/entities.js'; import { DistinctColorsProps } from '../../../mol-util/color/distinct.js'; import { Sphere3D } from '../../../mol-math/geometry.js'; import { StateObjectCell, StateSelection } from '../../../mol-state/index.js'; import { SpacefillRepresentationProvider } from '../../../mol-repr/structure/representation/spacefill.js'; import { Material } from '../../../mol-util/material.js'; export declare function getDistinctGroupColors(count: number, color: Color, variability: number, shift: number, props?: Partial): Color[]; export declare function getDistinctBaseColors(count: number, shift: number, props?: Partial): Color[]; export declare const ColorParams: { type: PD.Select<"generate" | "uniform" | "custom">; illustrative: PD.BooleanParam; value: PD.Color; variability: PD.Numeric; shift: PD.Numeric; lightness: PD.Numeric; alpha: PD.Numeric; emissive: PD.Numeric; }; export type ColorProps = PD.Values; export declare const ColorValueParam: PD.Color; export declare const RootParams: { type: PD.Select<"generate" | "uniform" | "custom" | "group-generate" | "group-uniform">; illustrative: PD.BooleanParam; value: PD.Color; variability: PD.Numeric; shift: PD.Numeric; lightness: PD.Numeric; alpha: PD.Numeric; emissive: PD.Numeric; }; export declare const LightnessParams: { lightness: PD.Numeric; }; export declare const DimLightness = 6; export declare const IllustrativeParams: { illustrative: PD.BooleanParam; }; export declare const OpacityParams: { alpha: PD.Numeric; }; export declare const EmissiveParams: { emissive: PD.Numeric; }; export declare const celShaded: { celShaded: PD.BooleanParam; }; export type celShadedProps = PD.Values; export declare const PatternParams: { frequency: PD.Numeric; amplitude: PD.Numeric; }; export declare const StyleParams: { ignoreLight: PD.BooleanParam; materialStyle: PD.Group>; celShaded: PD.BooleanParam; }; export declare const LodParams: { lodLevels: PD.ObjectList>; cellSize: PD.Numeric; batchSize: PD.Numeric; approximate: PD.BooleanParam; }; export declare const SimpleClipParams: { type: PD.Select<"none" | "sphere" | "cube" | "plane" | "cylinder" | "infiniteCone">; invert: PD.BooleanParam; position: PD.Group>; rotation: PD.Group>; scale: PD.Group>; }; export type SimpleClipParams = typeof SimpleClipParams; export type SimpleClipProps = PD.Values; export declare function getClipObjects(values: SimpleClipProps, boundingSphere: Sphere3D): Clip.Props['objects']; export declare function createClipMapping(node: EntityNode): ParamMapping<{ type: "none" | "sphere" | "cube" | "plane" | "cylinder" | "infiniteCone"; invert: boolean; position: PD.Normalize<{ x: /*elided*/ any; y: /*elided*/ any; z: /*elided*/ any; }>; rotation: PD.Normalize<{ axis: /*elided*/ any; angle: /*elided*/ any; }>; scale: PD.Normalize<{ x: /*elided*/ any; y: /*elided*/ any; z: /*elided*/ any; }>; }, PD.Values<{ variant: PD.Select; objects: PD.ObjectList; scale: Vec3; transform: Mat4; }>>; }> | undefined, PluginContext>; export declare const MesoscaleGroupParams: { root: PD.Value; index: PD.Value; tag: PD.Value; label: PD.Value; description: PD.Value; hidden: PD.BooleanParam; color: PD.Group>; lightness: PD.Numeric; alpha: PD.Numeric; emissive: PD.Numeric; lod: PD.Group[]; cellSize: number; batchSize: number; approximate: boolean; }>>; clip: PD.Group; rotation: PD.Normalize<{ axis: /*elided*/ any; angle: /*elided*/ any; }>; scale: PD.Normalize<{ x: /*elided*/ any; y: /*elided*/ any; z: /*elided*/ any; }>; }>>; }; export type MesoscaleGroupProps = PD.Values; declare const MesoscaleGroupObject_base: { new (data: {}, props?: { label: string; description?: string; } | undefined): { id: import("../../../mol-util/index.js").UUID; type: PSO.TypeInfo; label: string; description?: string; data: {}; }; type: PSO.TypeInfo; is(obj?: import("../../../mol-state/index.js").StateObject): obj is import("../../../mol-state/index.js").StateObject<{}, PSO.TypeInfo>; }; export declare class MesoscaleGroupObject extends MesoscaleGroupObject_base { } export declare const MesoscaleGroup: import("../../../mol-state/index.js").StateTransformer; lightness: number; alpha: number; emissive: number; lod: PD.Normalize<{ lodLevels: /*elided*/ any; cellSize: /*elided*/ any; batchSize: /*elided*/ any; approximate: /*elided*/ any; }>; clip: PD.Normalize<{ type: /*elided*/ any; invert: /*elided*/ any; position: /*elided*/ any; rotation: /*elided*/ any; scale: /*elided*/ any; }>; }>>; export declare function getMesoscaleGroupParams(graphicsMode: GraphicsMode): MesoscaleGroupProps; export type LodLevels = typeof SpacefillRepresentationProvider.defaultValues['lodLevels']; export declare function getLodLevels(graphicsMode: Exclude): LodLevels; export type GraphicsMode = 'ultra' | 'quality' | 'balanced' | 'performance' | 'custom'; export declare function getGraphicsModeProps(graphicsMode: Exclude): { lodLevels: PD.Normalize<{ minDistance: number; maxDistance: number; overlap: number; stride: number; scaleBias: number; }>[]; approximate: boolean; alphaThickness: number; }; export declare function setGraphicsCanvas3DProps(ctx: PluginContext, graphics: GraphicsMode): void; export declare const MesoscaleStateParams: { filter: PD.Value; graphics: PD.Select; description: PD.Value; focusInfo: PD.Value; link: PD.Value; textSizeDescription: PD.Numeric; index: PD.Value; }; declare const MesoscaleStateObject_base: { new (data: PD.Values<{ filter: PD.Value; graphics: PD.Select; description: PD.Value; focusInfo: PD.Value; link: PD.Value; textSizeDescription: PD.Numeric; index: PD.Value; }>, props?: { label: string; description?: string; } | undefined): { id: import("../../../mol-util/index.js").UUID; type: PSO.TypeInfo; label: string; description?: string; data: PD.Values<{ filter: PD.Value; graphics: PD.Select; description: PD.Value; focusInfo: PD.Value; link: PD.Value; textSizeDescription: PD.Numeric; index: PD.Value; }>; }; type: PSO.TypeInfo; is(obj?: import("../../../mol-state/index.js").StateObject): obj is import("../../../mol-state/index.js").StateObject; graphics: PD.Select; description: PD.Value; focusInfo: PD.Value; link: PD.Value; textSizeDescription: PD.Numeric; index: PD.Value; }>, PSO.TypeInfo>; }; export declare class MesoscaleStateObject extends MesoscaleStateObject_base { } export { MesoscaleState }; type MesoscaleState = PD.Values; declare const MesoscaleState: { init(ctx: PluginContext): Promise; get(ctx: PluginContext): MesoscaleState; set(ctx: PluginContext, props: Partial): Promise; ref(ctx: PluginContext): string; has(ctx: PluginContext): boolean; }; export declare function getRoots(plugin: PluginContext): StateSelection.CellSeq>; export declare function getGroups(plugin: PluginContext, tag?: string): StateSelection.CellSeq>; export declare function getAllGroups(plugin: PluginContext, tag?: string): StateObjectCell>, import("../../../mol-state/index.js").StateTransform>, import("../../../mol-state/index.js").StateObject>, any>>>[]; export declare function getAllLeafGroups(plugin: PluginContext, tag: string): StateObjectCell>, import("../../../mol-state/index.js").StateTransform>, import("../../../mol-state/index.js").StateObject>, any>>>[]; type EntityCells = StateSelection.CellSeq>; export declare function getEntities(plugin: PluginContext, tag?: string): EntityCells; export declare function getFilteredEntities(plugin: PluginContext, tag: string, filter: string): EntityCells; export declare function getAllEntities(plugin: PluginContext, tag?: string): EntityCells; export declare function getAllFilteredEntities(plugin: PluginContext, tag: string, filter: string): EntityCells; export declare function getEveryEntity(plugin: PluginContext, filter?: string, tag?: string): EntityCells; export declare function getEntityLabel(plugin: PluginContext, cell: StateObjectCell): string; export declare function getCellDescription(cell: StateObjectCell): string; export declare function getEntityDescription(plugin: PluginContext, cell: StateObjectCell): string; export declare function updateStyle(plugin: PluginContext, options: { ignoreLight: boolean; material: Material; celShaded: boolean; illustrative: boolean; }): Promise; export declare function updateColors(plugin: PluginContext, values: PD.Values, tag: string, filter: string): Promise; export declare function expandAllGroups(plugin: PluginContext): void;