private void DrawChildren(TreeMapNode r, Transform parent, Vector2 anchorMin, Vector2 anchorMax, int level)
    {
        UIRectangle rc = parent.GetComponent <UIRectangle>();

        Vector2 newAnchorMin = anchorMin;

        Vector2 newAnchorMax = anchorMax;

        if (Invert)
        {
            // Invert the anchors

            newAnchorMin = new Vector2(anchorMin.x, 1 - anchorMax.y);

            newAnchorMax = new Vector2(anchorMax.x, 1 - anchorMin.y);
        }


        PickableRect rect = new PickableRect()
        {
            rect = new CustomRect {
                anchorMin = newAnchorMin, anchorMax = newAnchorMax
            },

            color = controller.LookUp(r.Data.ColorByWeight),

            rowID = r.Data.rowID
        };

        parent.GetComponent <TreeMapCellSelectionHandler>().Rects.Add(rect);

        rc.AddCellToDraw(rect);

        cellRects.Add(r.Data.rowID, new RectWithParentTransform()
        {
            rect = rect.rect,

            parent = parent as RectTransform
        });


        if (RejectNode(parent, anchorMin, anchorMax))
        {
            SkippedDraw.Add(r.ID);

            ++Rejected;
        }
        else
        {
            ++Drawn;
        }
    }