             var keyRectangles:Array = [];
 
             keyRectangles["headerRectangles"] = generateHeaderRectangles(keyPoints, dimensions);
+            keyRectangles["headerRectangle"] = generateVisibleHeaderRectangle(keyPoints, dimensions);
 
             return keyRectangles;
         }
 
+        private function generateVisibleHeaderRectangle(keyPoints:Array, dimensions:Array):Rectangle
+        {
+            const topLeftCorner:Point = keyPoints["b"];
+            return new Rectangle(topLeftCorner.x, topLeftCorner.y, getHeaderWidthFromKeyPoints(keyPoints), getHeaderHeightFromKeyPoints(keyPoints));
+        }
         private function generateHeaderRectangles(keyPoints:Array, dimensions:Array):Array
         {
             var headerRectangles:Array = [];

                    + "\n DEBUG INFO: headerRectangles=" + headerRectangles);
        }

        private function getHeaderIndexAtGlobalPoint(globalPoint:Point):int
        {
            var localPoint:Point = _sut.globalToLocal(globalPoint);
            return _sut.getHeaderIndexAt(localPoint.x, localPoint.y);
        }

        private function getHeaderIndexAssumption(point:Point):int

        private var _keyRectangles:Array;
        private var _keyPoints:Array;

        //@TODO add cases with horizontal scroll, and also with fixed columns
        public static var dimensions:Array = [/*x, y, width, header padding left, header padding top, [column widths] */
            [[10, 0, 300, 5, 0, [25, 150]]],
            [[0, 0, 300, 5, 0, [25, 150]]]
