/** * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal * @author Alexander Rose */ import { Column } from 'mol-data/db' import { Segmentation } from 'mol-data/int'; import { ElementIndex, ChainIndex, EntityIndex } from '../../indexing'; import SortedRanges from 'mol-data/int/sorted-ranges'; export interface CoarsedElementKeys { // assign a key to each element chainKey: ArrayLike, // assign a key to each element, index to the Model.entities.data table entityKey: ArrayLike, /** find index of the residue/feature element where seq_id is included */ findSequenceKey(entityId: string, asym_id: string, seq_id: number): ElementIndex findChainKey(entityId: string, asym_id: string): ChainIndex } export interface CoarseElementData { count: number, entity_id: Column, asym_id: Column, seq_id_begin: Column, seq_id_end: Column, chainElementSegments: Segmentation, } export interface CoarseRanges { polymerRanges: SortedRanges gapRanges: SortedRanges } export type CoarseElements = CoarsedElementKeys & CoarseElementData & CoarseRanges export interface CoarseHierarchy { isDefined: boolean, spheres: CoarseElements, gaussians: CoarseElements } export namespace CoarseHierarchy { export const Empty: CoarseHierarchy = { isDefined: false } as any; }