objects.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /**
  2. * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author David Sehnal <david.sehnal@gmail.com>
  5. */
  6. import { PluginStateObject } from './base';
  7. import { CifFile } from 'mol-io/reader/cif';
  8. import { Model as _Model, Structure as _Structure } from 'mol-model/structure'
  9. import { StructureRepresentation } from 'mol-repr/structure/index';
  10. const _create = PluginStateObject.Create
  11. namespace PluginStateObjects {
  12. export class Root extends _create({ name: 'Root', shortName: 'R', typeClass: 'Root', description: 'Where everything begins.' }) { }
  13. export class Group extends _create({ name: 'Group', shortName: 'G', typeClass: 'Group', description: 'A group on entities.' }) { }
  14. export namespace Data {
  15. export class String extends _create<string>({ name: 'String Data', typeClass: 'Data', shortName: 'S_D', description: 'A string.' }) { }
  16. export class Binary extends _create<Uint8Array>({ name: 'Binary Data', typeClass: 'Data', shortName: 'B_D', description: 'A binary blob.' }) { }
  17. export class Json extends _create<any>({ name: 'JSON Data', typeClass: 'Data', shortName: 'JS_D', description: 'Represents JSON data.' }) { }
  18. export class Cif extends _create<CifFile>({ name: 'Cif File', typeClass: 'Data', shortName: 'CF', description: 'Represents parsed CIF data.' }) { }
  19. // TODO
  20. // export class MultipleRaw extends _create<{
  21. // [key: string]: { type: 'String' | 'Binary', data: string | Uint8Array }
  22. // }>({ name: 'Data', typeClass: 'Data', shortName: 'MD', description: 'Multiple Keyed Data.' }) { }
  23. }
  24. export class Models extends _create<ReadonlyArray<_Model>>({ name: 'Molecule Model', typeClass: 'Object', shortName: 'M_M', description: 'A model of a molecule.' }) { }
  25. export class Structure extends _create<_Structure>({ name: 'Molecule Structure', typeClass: 'Object', shortName: 'M_S', description: 'A structure of a molecule.' }) { }
  26. export class StructureRepresentation3D extends _create<{
  27. repr: StructureRepresentation<any>,
  28. // TODO
  29. // props
  30. }>({ name: 'Molecule Structure Representation', typeClass: 'Representation', shortName: 'S_R', description: 'A representation of a molecular structure.' }) { }
  31. }
  32. export { PluginStateObjects }