NGL@1.0.0-beta.7 Home Manual Reference Source Gallery

src/store/chain-store.js

  1. /**
  2. * @file Chain Store
  3. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  4. * @private
  5. */
  6.  
  7. import Store from './store.js'
  8.  
  9. /**
  10. * Chain store
  11. */
  12. class ChainStore extends Store {
  13. get _defaultFields () {
  14. return [
  15. [ 'entityIndex', 1, 'uint16' ],
  16. [ 'modelIndex', 1, 'uint16' ],
  17. [ 'residueOffset', 1, 'uint32' ],
  18. [ 'residueCount', 1, 'uint32' ],
  19.  
  20. [ 'chainname', 4, 'uint8' ],
  21. [ 'chainid', 4, 'uint8' ]
  22. ]
  23. }
  24.  
  25. setChainname (i, str) {
  26. const j = 4 * i
  27. this.chainname[ j ] = str.charCodeAt(0)
  28. this.chainname[ j + 1 ] = str.charCodeAt(1)
  29. this.chainname[ j + 2 ] = str.charCodeAt(2)
  30. this.chainname[ j + 3 ] = str.charCodeAt(3)
  31. }
  32.  
  33. getChainname (i) {
  34. let chainname = ''
  35. for (let k = 0; k < 4; ++k) {
  36. const code = this.chainname[ 4 * i + k ]
  37. if (code) {
  38. chainname += String.fromCharCode(code)
  39. } else {
  40. break
  41. }
  42. }
  43. return chainname
  44. }
  45.  
  46. setChainid (i, str) {
  47. const j = 4 * i
  48. this.chainid[ j ] = str.charCodeAt(0)
  49. this.chainid[ j + 1 ] = str.charCodeAt(1)
  50. this.chainid[ j + 2 ] = str.charCodeAt(2)
  51. this.chainid[ j + 3 ] = str.charCodeAt(3)
  52. }
  53.  
  54. getChainid (i) {
  55. let chainid = ''
  56. for (let k = 0; k < 4; ++k) {
  57. const code = this.chainid[ 4 * i + k ]
  58. if (code) {
  59. chainid += String.fromCharCode(code)
  60. } else {
  61. break
  62. }
  63. }
  64. return chainid
  65. }
  66. }
  67.  
  68. export default ChainStore