helpers.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  5. */
  6. import { PluginStateObject } from '../objects';
  7. import { DistanceData } from '../../../mol-repr/shape/loci/distance';
  8. import { LabelData } from '../../../mol-repr/shape/loci/label';
  9. import { OrientationData } from '../../../mol-repr/shape/loci/orientation';
  10. import { AngleData } from '../../../mol-repr/shape/loci/angle';
  11. import { DihedralData } from '../../../mol-repr/shape/loci/dihedral';
  12. export function getDistanceDataFromStructureSelections(s: ReadonlyArray<PluginStateObject.Molecule.Structure.SelectionEntry>): DistanceData {
  13. const lociA = s[0].loci
  14. const lociB = s[1].loci
  15. return { pairs: [ { loci: [lociA, lociB] as const }] }
  16. }
  17. export function getAngleDataFromStructureSelections(s: ReadonlyArray<PluginStateObject.Molecule.Structure.SelectionEntry>): AngleData {
  18. const lociA = s[0].loci
  19. const lociB = s[1].loci
  20. const lociC = s[2].loci
  21. return { triples: [{ loci: [lociA, lociB, lociC] as const }] }
  22. }
  23. export function getDihedralDataFromStructureSelections(s: ReadonlyArray<PluginStateObject.Molecule.Structure.SelectionEntry>): DihedralData {
  24. const lociA = s[0].loci
  25. const lociB = s[1].loci
  26. const lociC = s[2].loci
  27. const lociD = s[3].loci
  28. return { quads: [{ loci: [lociA, lociB, lociC, lociD] as const }] }
  29. }
  30. export function getLabelDataFromStructureSelections(s: ReadonlyArray<PluginStateObject.Molecule.Structure.SelectionEntry>): LabelData {
  31. const loci = s[0].loci
  32. return { infos: [{ loci }] }
  33. }
  34. export function getOrientationDataFromStructureSelections(s: ReadonlyArray<PluginStateObject.Molecule.Structure.SelectionEntry>): OrientationData {
  35. const loci = s[0].loci
  36. return { locis: [loci] }
  37. }