      *  calculated size (x,y) transformed with <code>matrix</code> will fit in the
      *  specified <code>width</code> and <code>height</code>.
      * 
+     *  @param explicitWidth Explicit width for the calculated size. The function
+     *  will first try to find a solution using this width.
+     * 
+     *  @param explicitHeight Preferred height for the calculated size. The function
+     *  will first try to find a solution using this height.
+     * 
      *  @param preferredWidth Preferred width for the calculated size. If possible
      *  the function will set the calculated size width to this value.
      * 

        }
        else if (!isNaN(width))
        {
            return calcUBoundsToFitTBoundsWidth(width, matrix,
                                                preferredWidth, preferredHeight, 
                                                minWidth, minHeight, 
                                                maxWidth, maxHeight);
        }
        else
        {
            return calcUBoundsToFitTBoundsHeight(height, matrix,
                                                 preferredWidth, preferredHeight, 
                                                 minWidth, minHeight, 
                                                 maxWidth, maxHeight);
        }
    }


        if (isNaN(width) && isNaN(height))
            return new Point(preferredWidth, preferredHeight);
            
        var actualSize:Point;
        
        if (!isNaN(width) && !isNaN(height))
        {
            actualSize = calcUBoundsToFitTBounds(width, height, matrix,
                                                           minWidth, minHeight, 
                                                           maxWidth, maxHeight); 
            
