UNPKG

@chemistry/mol3dview

Version:
97 lines (96 loc) 2.24 kB
import { Element } from "@chemistry/elements"; import { Matrix3x4, Vec3 } from "@chemistry/math"; import { Atom } from "./Atom"; import { Link } from "./Link"; import { UnitCell } from "./UnitCell"; export declare class CellAtom { /** * Atom ID within molecule */ id: number; /** * label * @type {string} */ label: string; /** * Element * @type {Element} */ element: Element; /** * Cartezian position of Atom */ position: Vec3; /** * Unit Cell */ unitCell: UnitCell; /** * Fractional position of Atom */ fractional: Vec3; /** * Occupancy */ occupancy: number; /** * Isotropic U */ uiso: number; /** * Disorder Assembly */ assembly: string; /** * Disorder Group */ group: string; /** * List of Atoms Created From this Cell Atom */ children: Atom[]; /** * List of connected atoms */ links: Link[]; constructor(data: { id: number; unitCell: UnitCell; type: string; label: string; x: number; y: number; z: number; occupancy: number; uiso: number; assembly: string; group: string; }); /** * Add link to another element */ addLink(otherAtom: CellAtom, symetry: Matrix3x4): void; getLinks(): Link[]; /** * Returns true if Cell Atom has Chield with Specific position */ hasChild(position: Vec3): boolean; /** * Return Chield Atom with Specifified Position or null if not found */ getChild(position: Vec3): Atom; /** * Return true if has Atom with Specified symetry position */ hasChieldWithSymetry(symetry: Matrix3x4): boolean; /** * Return Chield Atom with Specifified symetry or similar atom liing on the same spot */ getChieldWithSymetry(symetry: Matrix3x4): Atom; /** * Create Atom & return it based on this Cell Atom * and set correct settings */ createAtom(symetry: Matrix3x4, addToChields: boolean): Atom; }