added helper: calculateBounds(PointBufferSet)