1234567891011121314151617181920212223242526272829303132333435363738 |
- function singleAnimation( verticesArray, animateBuffArrays, stepTotal) {
- let len = verticesArray.length
- let pollIndex = 0;
- return function () {
- for (let i = 0, index = 0; i < len; i += 3, index++) {
- let Indexes = index * stepTotal + pollIndex
- verticesArray[i + 2] = animateBuffArrays[Indexes]
- }
- pollIndex++
-
- if (pollIndex < stepTotal) {
- // mesh.geometry.attributes.position.needsUpdate = true;
- return false
- } else {
- return true
- }
- }
- }
- self.addEventListener('message', event => {
- let data = event.data
- let id = data.id
- let fns = singleAnimation(
- data.verticesArray,
- data.animateBuffArrays,
- data.stepTotal
- )
- let interval = setInterval(() => {
- if (fns()) {
- clearInterval(interval)
- self.postMessage(id)
- }
- }, 16)
- })
|