(context, queue, zoomer, world, colours)
| 27 | }; |
| 28 | |
| 29 | export const updateZoom = (context, queue, zoomer, world, colours) => { |
| 30 | const missingSpeed = zoomer.desiredSpeed - zoomer.speed; |
| 31 | |
| 32 | zoomer.speed += Math.sign(missingSpeed) * 0.15; |
| 33 | if (!zoomer.smoothMode) zoomer.speed = zoomer.desiredSpeed; |
| 34 | |
| 35 | if (Math.abs(zoomer.speed) < 0.001) { |
| 36 | zoomer.speed = 0.0; |
| 37 | } |
| 38 | if (zoomer.speed === 0.0) return; |
| 39 | |
| 40 | if (!zoomer.smoothMode) { |
| 41 | zoomer.desiredSpeed *= 0.8; |
| 42 | if (Math.abs(zoomer.desiredSpeed) < 0.001) { |
| 43 | zoomer.desiredSpeed = 0.0; |
| 44 | } |
| 45 | } |
| 46 | |
| 47 | const mousePosition = getMousePosition(context, VIEW_CORNERS); |
| 48 | const zoomedCorners = getZoomedPositions( |
| 49 | world.corners, |
| 50 | 1.0 + zoomer.speed * -0.002, |
| 51 | mousePosition |
| 52 | ); |
| 53 | setWorldCorners(world, zoomedCorners, colours); |
| 54 | clearQueue(context, queue, world); |
| 55 | }; |
no test coverage detected