bbee0ba341ce21ba68c40e6cde66e46d2713cd97.svn-base 987 B

123456789101112131415161718192021222324252627282930313233343536373839
  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 '../business/addText'
  6. async function listener(event) {
  7. let geoJsonArray = event.data.geoJsonArray
  8. geoJsonArray.forEach(j => {
  9. let {
  10. maxHeight,
  11. animateBuffArrays,
  12. fids,
  13. verticesBuffArrays: verticesArray,
  14. normalsBuffArrays: normalsArray,
  15. type,
  16. texts
  17. } = j
  18. let geometry = new THREE.BufferGeometry()
  19. geometry.addAttribute('position', new THREE.BufferAttribute(verticesArray, 3));
  20. geometry.addAttribute('normal', new THREE.BufferAttribute(normalsArray, 3));
  21. var mesh = grentMesh(geometry, type);
  22. threeLayer.getScene().add(mesh)
  23. mesh.maxHeight = maxHeight
  24. mesh.fids = fids
  25. init(verticesArray, maxHeight)
  26. animation(mesh, verticesArray, animateBuffArrays, config.stepTotal)
  27. addText(mesh, texts)
  28. })
  29. }
  30. export default listener