/** * Copyright (c) 2023-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Adam Midlik */ import { Vec3 } from '../../../mol-math/linear-algebra.js'; import { Model, Structure } from '../../../mol-model/structure.js'; import { MVSAnnotationRow } from './schemas.js'; /** Properties describing position, size, etc. of a text in 3D */ export interface TextProps { /** Anchor point for the text (i.e. the center of the text will appear in front of `center`) */ center: Vec3; /** Depth of the text wrt anchor point (i.e. the text will appear in distance `radius` in front of the anchor point) */ depth: number; /** Relative text size */ scale: number; /** Index of the first element within structure, to which this text is bound (for coloring and similar purposes) */ group: number; } /** Return `TextProps` (position, size, etc.) for a text that is to be bound to a substructure of `structure` defined by union of `rows`. * Derives `center` and `depth` from the boundary sphere of the substructure, `scale` from the number of heavy atoms in the substructure. */ export declare function textPropsForSelection(structure: Structure, rows: MVSAnnotationRow[], onlyInModel?: Model): TextProps | undefined;