molstar
Version:
A comprehensive macromolecular library.
86 lines (85 loc) • 3.19 kB
TypeScript
/**
* Copyright (c) 2020-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { WebGLContext } from '../../mol-gl/webgl/context';
import { Scene } from '../../mol-gl/scene';
import { Vec3, Mat3 } from '../../mol-math/linear-algebra';
import { Sphere3D } from '../../mol-math/geometry';
import { ParamDefinition as PD } from '../../mol-util/param-definition';
import { PickingId } from '../../mol-geo/geometry/picking';
import { Camera } from '../camera';
import { DataLoci, Loci } from '../../mol-model/loci';
import { MarkerAction } from '../../mol-util/marker-action';
export declare const HandleHelperParams: {
handle: PD.Mapped<PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
alpha: number;
ignoreLight: boolean;
colorX: import("../../mol-util/color").Color;
colorY: import("../../mol-util/color").Color;
colorZ: import("../../mol-util/color").Color;
scale: number;
doubleSided: boolean;
flipSided: boolean;
flatShaded: boolean;
celShaded: boolean;
xrayShaded: boolean | "inverted";
transparentBackfaces: "off" | "on" | "opaque";
bumpFrequency: number;
bumpAmplitude: 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: Vec3;
cellSize: number;
batchSize: number;
}>, "on">>;
};
export type HandleHelperParams = typeof HandleHelperParams;
export type HandleHelperProps = PD.Values<HandleHelperParams>;
export declare class HandleHelper {
private webgl;
scene: Scene;
props: HandleHelperProps;
private renderObject;
private pixelRatio;
private _transform;
getBoundingSphere(out: Sphere3D, instanceId: number): Sphere3D;
setProps(props: Partial<HandleHelperProps>): void;
get isEnabled(): boolean;
update(camera: Camera, position: Vec3, rotation: Mat3): void;
getLoci(pickingId: PickingId): {
kind: "empty-loci";
} | DataLoci<HandleHelper, {
groupId: number;
instanceId: number;
}>;
private eachGroup;
mark(loci: Loci, action: MarkerAction): boolean;
constructor(webgl: WebGLContext, props?: Partial<HandleHelperProps>);
}
export declare const HandleGroup: {
readonly None: 0;
readonly TranslateScreenXY: 1;
readonly TranslateObjectX: 3;
readonly TranslateObjectY: 4;
readonly TranslateObjectZ: 5;
};
declare function HandleLoci(handleHelper: HandleHelper, groupId: number, instanceId: number): DataLoci<HandleHelper, {
groupId: number;
instanceId: number;
}>;
export type HandleLoci = ReturnType<typeof HandleLoci>;
export declare function isHandleLoci(x: Loci): x is HandleLoci;
export {};