OLD | NEW |
1 function ellipseXIntercept(yi, rx, ry) | 1 function ellipseXIntercept(yi, rx, ry) |
2 { | 2 { |
3 return rx * Math.sqrt(1 - (yi * yi) / (ry * ry)); | 3 return rx * Math.sqrt(1 - (yi * yi) / (ry * ry)); |
4 } | 4 } |
5 | 5 |
6 function scanConvertRoundedRectangleOutside(r, height, lineHeight, corner) | 6 function scanConvertRoundedRectangleOutside(r, height, lineHeight, corner) |
7 { | 7 { |
8 var intervals = []; | 8 var intervals = []; |
9 var upperCorner = true; | 9 var upperCorner = true; |
10 var lowerCorner = true; | 10 var lowerCorner = true; |
(...skipping 17 matching lines...) Expand all Loading... |
28 var dx = ellipseXIntercept(y - (r.y + r.height - r.ry), r.rx, r.ry); | 28 var dx = ellipseXIntercept(y - (r.y + r.height - r.ry), r.rx, r.ry); |
29 intervals.push( { y: y, left: r.x + r.rx - dx, right: r.x + r.width
- r.rx + dx} ); | 29 intervals.push( { y: y, left: r.x + r.rx - dx, right: r.x + r.width
- r.rx + dx} ); |
30 } | 30 } |
31 else // within the rectangle's vertical edges | 31 else // within the rectangle's vertical edges |
32 intervals.push( {y: y, left: r.x, right: r.x + r.width} ); | 32 intervals.push( {y: y, left: r.x, right: r.x + r.width} ); |
33 } | 33 } |
34 | 34 |
35 return intervals; | 35 return intervals; |
36 } | 36 } |
37 | 37 |
38 function genLeftRightRoundedRectFloatShapeOutsideRefTest(args) | |
39 { | |
40 genLeftRoundedRectFloatShapeOutsideRefTest(args); | |
41 genRightRoundedRectFloatShapeOutsideRefTest(args); | |
42 } | |
43 | |
44 function genLeftRoundedRectFloatShapeOutsideRefTest(args) | 38 function genLeftRoundedRectFloatShapeOutsideRefTest(args) |
45 { | 39 { |
46 var leftRoundedRect = args.roundedRect; | 40 var leftRoundedRect = args.roundedRect; |
47 var leftRoundedRectIntervals = scanConvertRoundedRectangleOutside(leftRounde
dRect, args.containerHeight, args.lineHeight, args.corner); | 41 var leftRoundedRectIntervals = scanConvertRoundedRectangleOutside(leftRounde
dRect, args.containerHeight, args.lineHeight, args.corner); |
48 var leftFloatDivs = leftRoundedRectIntervals.map(function(interval) { | 42 var leftFloatDivs = leftRoundedRectIntervals.map(function(interval) { |
49 var width = SubPixelLayout.snapToLayoutUnit(interval.right); | 43 var width = SubPixelLayout.snapToLayoutUnit(interval.right); |
50 var cls = "left-" + args.floatElementClassSuffix; | 44 var cls = "left-" + args.floatElementClassSuffix; |
51 return '<div class="' + cls + '" style="width:' + width + 'px"></div>'; | 45 return '<div class="' + cls + '" style="width:' + width + 'px"></div>'; |
52 }); | 46 }); |
53 document.getElementById("left-" + args.insertElementIdSuffix).insertAdjacent
HTML('afterend', leftFloatDivs.join("\n")); | 47 document.getElementById("left-" + args.insertElementIdSuffix).insertAdjacent
HTML('afterend', leftFloatDivs.join("\n")); |
| 48 return leftFloatDivs; |
| 49 } |
| 50 |
| 51 function getRoundedRectLeftEdge(args) |
| 52 { |
| 53 var leftRoundedRect = args.roundedRect; |
| 54 var leftRoundedRectIntervals = scanConvertRoundedRectangleOutside(leftRounde
dRect, args.containerHeight, args.lineHeight, args.corner); |
| 55 var leftSidePoints = leftRoundedRectIntervals.map(function(interval) { |
| 56 var width = SubPixelLayout.snapToLayoutUnit(interval.right); |
| 57 return width; |
| 58 }); |
| 59 return leftSidePoints; |
54 } | 60 } |
55 | 61 |
56 function genRightRoundedRectFloatShapeOutsideRefTest(args) | 62 function genRightRoundedRectFloatShapeOutsideRefTest(args) |
57 { | 63 { |
58 var rightRoundedRect = Object.create(args.roundedRect); | 64 var rightRoundedRect = Object.create(args.roundedRect); |
59 rightRoundedRect.x = args.containerWidth - args.roundedRect.width; | 65 rightRoundedRect.x = args.containerWidth - args.roundedRect.width; |
60 var rightRoundedRectIntervals = scanConvertRoundedRectangleOutside(rightRoun
dedRect, args.containerHeight, args.lineHeight, args.corner); | 66 var rightRoundedRectIntervals = scanConvertRoundedRectangleOutside(rightRoun
dedRect, args.containerHeight, args.lineHeight, args.corner); |
61 var rightFloatDivs = rightRoundedRectIntervals.map(function(interval) { | 67 var rightFloatDivs = rightRoundedRectIntervals.map(function(interval) { |
62 var width = args.containerWidth - SubPixelLayout.snapToLayoutUnit(interv
al.left); | 68 var width = args.containerWidth - SubPixelLayout.snapToLayoutUnit(interv
al.left); |
63 var cls = "right-" + args.floatElementClassSuffix; | 69 var cls = "right-" + args.floatElementClassSuffix; |
64 return '<div class="' + cls + '" style="width:' + width + 'px"></div>'; | 70 return '<div class="' + cls + '" style="width:' + width + 'px"></div>'; |
65 }); | 71 }); |
66 document.getElementById("right-" + args.insertElementIdSuffix).insertAdjacen
tHTML('afterend', rightFloatDivs.join("\n")); | 72 document.getElementById("right-" + args.insertElementIdSuffix).insertAdjacen
tHTML('afterend', rightFloatDivs.join("\n")); |
67 } | 73 } |
OLD | NEW |