0f60927d03c3543cabed80c6e6a2536dfe91c06d.svn-base 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. function init(verticesArray, maxHeight) {
  2. // let len = verticesArray.length
  3. // for (let i = 0; i < len; i += 3) {
  4. // verticesArray[i + 2] = maxHeight
  5. // }
  6. }
  7. function singleAnimation (mesh, verticesArray, animateBuffArrays, stepTotal) {
  8. let len = verticesArray.length
  9. let pollIndex = 0;
  10. return function () {
  11. return true
  12. // if (!mesh.visible) {
  13. // pollIndex = stepTotal - 1
  14. // }
  15. // for (let i = 0, index = 0; i < len; i += 3, index++) {
  16. // let Indexes = index * stepTotal + pollIndex
  17. // verticesArray[i + 2] = animateBuffArrays[Indexes]
  18. // }
  19. // pollIndex++
  20. // if (mesh.isRemove) {
  21. // return true
  22. // } else if (pollIndex < stepTotal) {
  23. // mesh.geometry.attributes.position.needsUpdate = true;
  24. // return false
  25. // } else {
  26. // return true
  27. // }
  28. }
  29. }
  30. const animation = (() => {
  31. let taskStore = []
  32. let runing = false
  33. let pause = false
  34. return function (...args) {
  35. taskStore.push(singleAnimation(...args))
  36. if (runing) return
  37. runing = true;
  38. // bus.off('addGeoing')
  39. // bus.off('addGeoEnd')
  40. // bus.on('addGeoing', () => {
  41. // pause = true
  42. // })
  43. // bus.on('addGeoEnd', () => {
  44. // pause = false
  45. // frame();
  46. // })
  47. function frame() {
  48. requestAnimationFrame(() => {
  49. for (let i = 0; i < taskStore.length; i++) {
  50. if (taskStore[i]()) {
  51. taskStore.splice(i, 1)
  52. i--
  53. }
  54. }
  55. threeLayer.renderScene()
  56. if (taskStore.length === 0) {
  57. runing = false
  58. } else if (!pause){
  59. frame();
  60. }
  61. })
  62. }
  63. frame();
  64. }
  65. })()
  66. export {
  67. animation,
  68. init
  69. }