Skip to content
Snippets Groups Projects
Commit 733df07e authored by Alexander Rose's avatar Alexander Rose
Browse files

fixed cartoon visual for C-alpha only models

parent 1acdfdf2
No related branches found
No related tags found
No related merge requests found
...@@ -105,8 +105,8 @@ export interface AtomicData { ...@@ -105,8 +105,8 @@ export interface AtomicData {
export interface AtomicDerivedData { export interface AtomicDerivedData {
readonly residue: { readonly residue: {
readonly traceElementIndex: ArrayLike<ElementIndex> readonly traceElementIndex: ArrayLike<ElementIndex | -1>
readonly directionElementIndex: ArrayLike<ElementIndex> readonly directionElementIndex: ArrayLike<ElementIndex | -1>
readonly moleculeType: ArrayLike<MoleculeType> readonly moleculeType: ArrayLike<MoleculeType>
} }
} }
......
...@@ -14,8 +14,8 @@ import { getAtomIdForAtomRole } from 'mol-model/structure/util'; ...@@ -14,8 +14,8 @@ import { getAtomIdForAtomRole } from 'mol-model/structure/util';
export function getAtomicDerivedData(data: AtomicData, index: AtomicIndex, chemicalComponentMap: ChemicalComponentMap): AtomicDerivedData { export function getAtomicDerivedData(data: AtomicData, index: AtomicIndex, chemicalComponentMap: ChemicalComponentMap): AtomicDerivedData {
const { label_comp_id, _rowCount: n } = data.residues const { label_comp_id, _rowCount: n } = data.residues
const traceElementIndex = new Uint32Array(n) const traceElementIndex = new Int32Array(n)
const directionElementIndex = new Uint32Array(n) const directionElementIndex = new Int32Array(n)
const moleculeType = new Uint8Array(n) const moleculeType = new Uint8Array(n)
const moleculeTypeMap = new Map<string, MoleculeType>() const moleculeTypeMap = new Map<string, MoleculeType>()
...@@ -45,8 +45,8 @@ export function getAtomicDerivedData(data: AtomicData, index: AtomicIndex, chemi ...@@ -45,8 +45,8 @@ export function getAtomicDerivedData(data: AtomicData, index: AtomicIndex, chemi
return { return {
residue: { residue: {
traceElementIndex: traceElementIndex as unknown as ArrayLike<ElementIndex>, // TODO maybe -1 traceElementIndex: traceElementIndex as unknown as ArrayLike<ElementIndex | -1>,
directionElementIndex: directionElementIndex as unknown as ArrayLike<ElementIndex>, // TODO maybe -1 directionElementIndex: directionElementIndex as unknown as ArrayLike<ElementIndex | -1>,
moleculeType: moleculeType as unknown as ArrayLike<MoleculeType>, moleculeType: moleculeType as unknown as ArrayLike<MoleculeType>,
} }
} }
......
...@@ -81,7 +81,7 @@ export class AtomicPolymerBackboneIterator implements Iterator<PolymerBackbonePa ...@@ -81,7 +81,7 @@ export class AtomicPolymerBackboneIterator implements Iterator<PolymerBackbonePa
} }
constructor(private unit: Unit.Atomic) { constructor(private unit: Unit.Atomic) {
this.traceElementIndex = unit.model.atomicHierarchy.derived.residue.traceElementIndex this.traceElementIndex = unit.model.atomicHierarchy.derived.residue.traceElementIndex as ArrayLike<ElementIndex> // can assume it won't be -1 for polymer residues
this.polymerIt = SortedRanges.transientSegments(getPolymerRanges(unit), unit.elements) this.polymerIt = SortedRanges.transientSegments(getPolymerRanges(unit), unit.elements)
this.residueIt = Segmentation.transientSegments(unit.model.atomicHierarchy.residueAtomSegments, unit.elements) this.residueIt = Segmentation.transientSegments(unit.model.atomicHierarchy.residueAtomSegments, unit.elements)
this.value = createPolymerBackbonePair(unit) this.value = createPolymerBackbonePair(unit)
......
...@@ -47,7 +47,7 @@ export class AtomicPolymerGapIterator implements Iterator<PolymerGapPair> { ...@@ -47,7 +47,7 @@ export class AtomicPolymerGapIterator implements Iterator<PolymerGapPair> {
} }
constructor(private unit: Unit.Atomic) { constructor(private unit: Unit.Atomic) {
this.traceElementIndex = unit.model.atomicHierarchy.derived.residue.traceElementIndex this.traceElementIndex = unit.model.atomicHierarchy.derived.residue.traceElementIndex as ArrayLike<ElementIndex> // can assume it won't be -1 for polymer residues
this.gapIt = SortedRanges.transientSegments(getGapRanges(unit), unit.elements); this.gapIt = SortedRanges.transientSegments(getGapRanges(unit), unit.elements);
this.value = createPolymerGapPair(unit) this.value = createPolymerGapPair(unit)
this.hasNext = this.gapIt.hasNext this.hasNext = this.gapIt.hasNext
......
...@@ -69,7 +69,7 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement> ...@@ -69,7 +69,7 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement>
private state: AtomicPolymerTraceIteratorState = AtomicPolymerTraceIteratorState.nextPolymer private state: AtomicPolymerTraceIteratorState = AtomicPolymerTraceIteratorState.nextPolymer
private residueAtomSegments: Segmentation<ElementIndex, ResidueIndex> private residueAtomSegments: Segmentation<ElementIndex, ResidueIndex>
private traceElementIndex: ArrayLike<ElementIndex> private traceElementIndex: ArrayLike<ElementIndex>
private directionElementIndex: ArrayLike<ElementIndex> private directionElementIndex: ArrayLike<ElementIndex | -1>
private moleculeType: ArrayLike<MoleculeType> private moleculeType: ArrayLike<MoleculeType>
private atomicConformation: AtomicConformation private atomicConformation: AtomicConformation
...@@ -82,17 +82,19 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement> ...@@ -82,17 +82,19 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement>
private p6 = Vec3.zero(); private p6 = Vec3.zero();
// private v01 = Vec3.zero(); // private v01 = Vec3.zero();
private v12 = Vec3.zero(); private v12 = Vec3.create(1, 0, 0);
private v23 = Vec3.zero(); private v23 = Vec3.create(1, 0, 0);
// private v34 = Vec3.zero(); // private v34 = Vec3.zero();
hasNext: boolean = false; hasNext: boolean = false;
private pos(target: Vec3, index: number) { private pos(target: Vec3, index: number) {
if (index !== -1) {
target[0] = this.atomicConformation.x[index] target[0] = this.atomicConformation.x[index]
target[1] = this.atomicConformation.y[index] target[1] = this.atomicConformation.y[index]
target[2] = this.atomicConformation.z[index] target[2] = this.atomicConformation.z[index]
} }
}
private updateResidueSegmentRange(polymerSegment: Segmentation.Segment<ResidueIndex>) { private updateResidueSegmentRange(polymerSegment: Segmentation.Segment<ResidueIndex>) {
const { index } = this.residueAtomSegments const { index } = this.residueAtomSegments
...@@ -203,7 +205,7 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement> ...@@ -203,7 +205,7 @@ export class AtomicPolymerTraceIterator implements Iterator<PolymerTraceElement>
constructor(private unit: Unit.Atomic) { constructor(private unit: Unit.Atomic) {
this.atomicConformation = unit.model.atomicConformation this.atomicConformation = unit.model.atomicConformation
this.residueAtomSegments = unit.model.atomicHierarchy.residueAtomSegments this.residueAtomSegments = unit.model.atomicHierarchy.residueAtomSegments
this.traceElementIndex = unit.model.atomicHierarchy.derived.residue.traceElementIndex this.traceElementIndex = unit.model.atomicHierarchy.derived.residue.traceElementIndex as ArrayLike<ElementIndex> // can assume it won't be -1 for polymer residues
this.directionElementIndex = unit.model.atomicHierarchy.derived.residue.directionElementIndex this.directionElementIndex = unit.model.atomicHierarchy.derived.residue.directionElementIndex
this.moleculeType = unit.model.atomicHierarchy.derived.residue.moleculeType this.moleculeType = unit.model.atomicHierarchy.derived.residue.moleculeType
this.cyclicPolymerMap = unit.model.atomicHierarchy.cyclicPolymerMap this.cyclicPolymerMap = unit.model.atomicHierarchy.cyclicPolymerMap
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment