4f0f65394f0abac0a1018bf0fd5430e44594c7e3.svn-base 1020 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import * as THREE from 'three'
  2. import { animation, init } from './meshAnimation'
  3. import grentMesh from './grentMesh'
  4. import config from './config'
  5. import addText from './addText'
  6. import { threeLayer } from './initScene3D'
  7. async function listener(event) {
  8. let geoJsonArray = event.data.geoJsonArray
  9. geoJsonArray.forEach(j => {
  10. let {
  11. maxHeight,
  12. animateBuffArrays,
  13. fids,
  14. verticesBuffArrays: verticesArray,
  15. normalsBuffArrays: normalsArray,
  16. type,
  17. texts
  18. } = j
  19. let geometry = new THREE.BufferGeometry()
  20. geometry.addAttribute('position', new THREE.BufferAttribute(verticesArray, 3));
  21. geometry.addAttribute('normal', new THREE.BufferAttribute(normalsArray, 3));
  22. var mesh = grentMesh(geometry, type);
  23. threeLayer.getScene().add(mesh)
  24. mesh.maxHeight = maxHeight
  25. mesh.fids = fids
  26. init(verticesArray, maxHeight)
  27. animation(mesh, verticesArray, animateBuffArrays, config.stepTotal)
  28. addText(mesh, texts)
  29. })
  30. }
  31. export default listener