I am unable to find an explicit reference for the use of these functions:
getBBox()
vs getBoundingClientRect()
vs getClientRects()
.
getBBox is defined in the SVG specification it returns coordinates in the local coordinate system after the application of transforms.
getBoundingClientRect and getClientRects are defined in the CSSOM specification. Their main difference is that they return coordinates in the outer SVG coordinate system.
getBoundingClientRect returns a single rect that is the union of all the rects that getClientRect would return.