getClickedItems(pointer) {
    const point = this.canvas.DOMtoCanvas(pointer);
    const items = [];

    // Note reverse order; we want the topmost clicked items to be first in the array
    // Also note that selected nodes are disregarded here; these normally display on top
    const nodeIndices = this.body.nodeIndices;
    const nodes = this.body.nodes;
    for (let i = nodeIndices.length - 1; i >= 0; i--) {
      const node = nodes[nodeIndices[i]];
      const ret = node.getItemsOnPoint(point);
      items.push.apply(items, ret); // Append the return value to the running list.
    }

    const edgeIndices = this.body.edgeIndices;
    const edges = this.body.edges;
    for (let i = edgeIndices.length - 1; i >= 0; i--) {
      const edge = edges[edgeIndices[i]];
      const ret = edge.getItemsOnPoint(point);
      items.push.apply(items, ret); // Append the return value to the running list.
    }

    return items;
  }
Determine all the visual elements clicked which are on the given point.

All elements are returned; this includes nodes, edges and their labels.
The order returned is from highest to lowest, i.e. element 0 of the return
value is the topmost item clicked on.

The return value consists of an array of the following possible elements:

- `{nodeId:number}`             - node with given id clicked on
- `{nodeId:number, labelId:0}`  - label of node with given id clicked on
- `{edgeId:number}`             - edge with given id clicked on
- `{edge:number, labelId:0}`    - label of edge with given id clicked on

## NOTES

- Currently, there is only one label associated with a node or an edge,
but this is expected to change somewhere in the future.
- Since there is no z-indexing yet, it is not really possible to set the nodes and
edges in the correct order. For the time being, nodes come first.
@param {point} pointer  mouse position in screen coordinates
@returns {Array.<nodeClickItem|nodeLabelClickItem|edgeClickItem|edgeLabelClickItem>}
@private