molstar
Version:
A comprehensive macromolecular library.
105 lines (104 loc) • 3.3 kB
TypeScript
/**
* Copyright (c) 2018-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author Gianluca Tomasello <giagitom@gmail.com>
*/
import { Unit, StructureElement, Structure } from '../../../../../mol-model/structure';
import { MoleculeType, SecondaryStructureType } from '../../../../../mol-model/structure/model/types';
import { Iterator } from '../../../../../mol-data/iterator';
import { Vec3 } from '../../../../../mol-math/linear-algebra';
type PolymerTraceIteratorOptions = {
ignoreSecondaryStructure?: boolean;
useHelixOrientation?: boolean;
};
/**
* Iterates over individual residues/coarse elements in polymers of a unit while
* providing information about the neighbourhood in the underlying model for drawing splines
*/
export declare function PolymerTraceIterator(unit: Unit, structure: Structure, options?: PolymerTraceIteratorOptions): Iterator<PolymerTraceElement>;
interface PolymerTraceElement {
center: StructureElement.Location;
centerPrev: StructureElement.Location;
centerNext: StructureElement.Location;
first: boolean;
last: boolean;
initial: boolean;
final: boolean;
secStrucFirst: boolean;
secStrucLast: boolean;
secStrucType: SecondaryStructureType;
moleculeType: MoleculeType;
coarseBackboneFirst: boolean;
coarseBackboneLast: boolean;
p0: Vec3;
p1: Vec3;
p2: Vec3;
p3: Vec3;
p4: Vec3;
d12: Vec3;
d23: Vec3;
}
export declare class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement> {
private unit;
private value;
private polymerIt;
private residueIt;
private polymerSegment;
private cyclicPolymerMap;
private residueSegmentMin;
private residueSegmentMax;
private prevSecStrucType;
private currSecStrucType;
private nextSecStrucType;
private prevCoarseBackbone;
private currCoarseBackbone;
private nextCoarseBackbone;
private state;
private polymerRanges;
private residueAtomSegments;
private traceElementIndex;
private directionFromElementIndex;
private directionToElementIndex;
private moleculeType;
private atomicConformation;
private secondaryStructure;
private helixOrientationCenters;
private p0;
private p1;
private p2;
private p3;
private p4;
private p5;
private p6;
private d01;
private d12;
private d23;
private d34;
hasNext: boolean;
private atomicPos;
private pos;
private updateResidueSegmentRange;
private getResidueIndex;
private getSecStruc;
private setControlPoint;
private setFromToVector;
private setDirection;
move(): PolymerTraceElement;
constructor(unit: Unit.Atomic, structure: Structure, options?: PolymerTraceIteratorOptions);
}
export declare class CoarsePolymerTraceIterator implements Iterator<PolymerTraceElement> {
private unit;
private value;
private polymerIt;
private polymerSegment;
private state;
private conformation;
private elementIndex;
hasNext: boolean;
private getElementIndex;
private pos;
move(): PolymerTraceElement;
constructor(unit: Unit.Spheres | Unit.Gaussians, structure: Structure);
}
export {};