zoom(scale, pointer) {
    if (this.options.zoomView === true) {
      const scaleOld = this.body.view.scale;
      if (scale < 0.00001) {
        scale = 0.00001;
      }
      if (scale > 10) {
        scale = 10;
      }

      let preScaleDragPointer = undefined;
      if (this.drag !== undefined) {
        if (this.drag.dragging === true) {
          preScaleDragPointer = this.canvas.DOMtoCanvas(this.drag.pointer);
        }
      }
      // + this.canvas.frame.canvas.clientHeight / 2
      const translation = this.body.view.translation;

      const scaleFrac = scale / scaleOld;
      const tx = (1 - scaleFrac) * pointer.x + translation.x * scaleFrac;
      const ty = (1 - scaleFrac) * pointer.y + translation.y * scaleFrac;

      this.body.view.scale = scale;
      this.body.view.translation = { x: tx, y: ty };

      if (preScaleDragPointer != undefined) {
        const postScaleDragPointer =
          this.canvas.canvasToDOM(preScaleDragPointer);
        this.drag.pointer.x = postScaleDragPointer.x;
        this.drag.pointer.y = postScaleDragPointer.y;
      }

      this.body.emitter.emit("_requestRedraw");

      if (scaleOld < scale) {
        this.body.emitter.emit("zoom", {
          direction: "+",
          scale: this.body.view.scale,
          pointer: pointer,
        });
      } else {
        this.body.emitter.emit("zoom", {
          direction: "-",
          scale: this.body.view.scale,
          pointer: pointer,
        });
      }
    }
  }
Zoom the network in or out
@param {number} scale a number around 1, and between 0.01 and 10
@param {{x: number, y: number}} pointer    Position on screen
@private