aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs/SkRect_Reference.bmh
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-01-26 12:56:22 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-26 18:22:10 +0000
commit2dc84ad3ef88320f612a9459d53f67b63082aebc (patch)
tree7a68c05581c94b658f7e8ac8bb3e66136b5b55fb /docs/SkRect_Reference.bmh
parent33bf56d6b48180ca48c85de0f4f0747b61c1d315 (diff)
working on global enum and image info
Added global enum support. That exposed one big hole in bookmaker: The topic overview should not be in the class or struct if the topic includes multiple objects, which is the case for SkImageInfo and enums like SkColorType. This straightens that out, and then used that knowledge to strengthen the topics in SkRect as a test. Now SkRect has more groups of methods, and can expose and link to sets of methods with the same name. This work also is getting ready for tightening SeeAlso data, to be checked as part of the bots' tasks soon. Also, remove links from markup for lowercase method names unless the reference has trailing parentheses. TBR=caryclark@google.com Docs-Preview: https://skia.org/?cl=98782 Bug: skia:6898 Change-Id: I35419c9789da17e272047bf7b9c95b1cf44bb7fe Reviewed-on: https://skia-review.googlesource.com/98782 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Cary Clark <caryclark@skia.org> Reviewed-by: Cary Clark <caryclark@google.com>
Diffstat (limited to 'docs/SkRect_Reference.bmh')
-rw-r--r--docs/SkRect_Reference.bmh668
1 files changed, 418 insertions, 250 deletions
diff --git a/docs/SkRect_Reference.bmh b/docs/SkRect_Reference.bmh
index 0df650b668..fd223d1f01 100644
--- a/docs/SkRect_Reference.bmh
+++ b/docs/SkRect_Reference.bmh
@@ -2,6 +2,23 @@
#Alias Rects
#Alias Rect_Reference
+#Topic Overview
+
+#Subtopic Subtopics
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Constructors # functions that construct SkRect ##
+# Member_Functions # static functions and member methods ##
+# Members # member values ##
+# Operators # operator overloading methods ##
+# Related_Functions # similar methods grouped together ##
+#Table ##
+##
+
+#Topic Overview ##
+
#Struct SkRect
SkRect holds four SkScalar coordinates describing the upper and
@@ -14,48 +31,20 @@ its top, it is considered empty.
SkRect can be constructed from int values to avoid compiler warnings that
integer input cannot convert to SkScalar without loss of precision.
-#Topic Overview
-
-#Subtopic Subtopics
-#ToDo manually add subtopics ##
-#Table
-#Legend
-# topics # description ##
-#Legend ##
-# Constructors # functions that construct SkPath ##
-# Member_Functions # static functions and member methods ##
-# Operators # operator overloading methods ##
-#Table ##
-##
-
-#Subtopic Constructors
+#Subtopic Related_Functions
#Table
#Legend
-# name # description ##
+# name # description ##
#Legend ##
-# Make # constructs from ISize returning (0, 0, width, height) ##
-# MakeEmpty # constructs from bounds of (0, 0, 0, 0) ##
-# MakeFromIRect # deprecated ##
-# MakeIWH # constructs from int input returning (0, 0, width, height) ##
-# MakeLTRB # constructs from SkScalar left, top, right, bottom ##
-# MakeLargest # deprecated ##
-# MakeSize # constructs from Size returning (0, 0, width, height) ##
-# MakeWH # constructs from SkScalar input returning (0, 0, width, height) ##
-# MakeXYWH # constructs from SkScalar input returning (x, y, width, height) ##
-# makeInset # constructs from sides moved symmetrically about the center ##
-# makeOffset # constructs from translated sides ##
-# makeOutset # constructs from sides moved symmetrically about the center ##
-# makeSorted # constructs, ordering sides from smaller to larger ##
-#Table ##
-#Subtopic ##
-
-#Subtopic Operators
-#Table
-#Legend
-# description # function ##
-#Legend ##
-# bool operator!=(const SkRect& a, const SkRect& b) # returns true if members are unequal ##
-# bool operator==(const SkRect& a, const SkRect& b) # returns true if members are equal ##
+# As_Points # conversion to and from Points ##
+# From_Integers # set Scalar values from integer input ##
+# Inset_Outset_Offset # moves sides ##
+# Intersection # set to shared bounds ##
+# Join # set to union of bounds ##
+# Properties # side values, center, validity ##
+# Rounding # adjust to integer bounds ##
+# Set # replaces all values ##
+# Sorting # orders sides ##
#Table ##
#Subtopic ##
@@ -121,7 +110,7 @@ integer input cannot convert to SkScalar without loss of precision.
#Table ##
#Subtopic ##
-#Topic ##
+#Subtopic Members
#Member SkScalar fLeft
May contain any value, including infinities and NaN. The smaller of the
@@ -143,6 +132,28 @@ May contain any value, including infinities and NaN. The larger of the
vertical values when sorted. When equal to or less than fTop, Rect is empty.
##
+#Subtopic Members ##
+
+#Subtopic Constructors
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Make # constructs from ISize returning (0, 0, width, height) ##
+# MakeEmpty # constructs from bounds of (0, 0, 0, 0) ##
+# MakeFromIRect # deprecated ##
+# MakeIWH # constructs from int input returning (0, 0, width, height) ##
+# MakeLTRB # constructs from SkScalar left, top, right, bottom ##
+# MakeLargest # deprecated ##
+# MakeSize # constructs from Size returning (0, 0, width, height) ##
+# MakeWH # constructs from SkScalar input returning (0, 0, width, height) ##
+# MakeXYWH # constructs from SkScalar input returning (x, y, width, height) ##
+# makeInset # constructs from sides moved symmetrically about the center ##
+# makeOffset # constructs from translated sides ##
+# makeOutset # constructs from sides moved symmetrically about the center ##
+# makeSorted # constructs, ordering sides from smaller to larger ##
+#Table ##
+
# ------------------------------------------------------------------------------
#Method static constexpr SkRect SK_WARN_UNUSED_RESULT MakeEmpty()
@@ -402,6 +413,29 @@ than fBottom.
##
+#Subtopic Constructors ##
+
+#Subtopic Properties
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# bottom() # returns larger bounds in y, if sorted ##
+# centerX # returns midpoint in x ##
+# centerY # returns midpoint in y ##
+# height() # returns span in y ##
+# isEmpty # returns true if width or height are zero or negative ##
+# isFinite # returns true if no member is infinite or NaN ##
+# isSorted # returns true if width or height are zero or positive ##
+# left() # returns smaller bounds in x, if sorted ##
+# right() # returns larger bounds in x, if sorted ##
+# top() # returns smaller bounds in y, if sorted ##
+# width() # returns span in x ##
+# x() # returns bounds left ##
+# y() # returns bounds top ##
+#Table ##
+
# ------------------------------------------------------------------------------
#Method bool isEmpty() const
@@ -738,6 +772,18 @@ left: 2e+38 right: 3e+38 centerX: inf safe mid x: 2.5e+38
##
+#Subtopic Properties ##
+
+#Subtopic Operators
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# bool operator!=(const SkRect& a, const SkRect& b) # returns true if members are unequal ##
+# bool operator==(const SkRect& a, const SkRect& b) # returns true if members are equal ##
+#Table ##
+
# ------------------------------------------------------------------------------
#Method bool operator==(const SkRect& a, const SkRect& b)
@@ -808,6 +854,19 @@ test with NaN is not equal to itself
##
+#Subtopic Operators ##
+
+#Subtopic As_Points
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# setBounds # sets to upper and lower limits of Point array ##
+# setBoundsCheck # sets to upper and lower limits of Point array ##
+# toQuad # returns four corners as Point ##
+#Table ##
+
# ------------------------------------------------------------------------------
#Method void toQuad(SkPoint quad[4]) const
@@ -843,6 +902,108 @@ corners: {1, 2} {3, 2} {3, 4} {1, 4}
# ------------------------------------------------------------------------------
+#Method void setBounds(const SkPoint pts[], int count)
+
+Sets to bounds of Point array with count entries. If count is zero or smaller,
+or if Point array contains an infinity or NaN, sets to (0, 0, 0, 0).
+
+Result is either empty or sorted: fLeft is less than or equal to fRight, and
+fTop is less than or equal to fBottom.
+
+#Param pts Point array ##
+#Param count entries in array ##
+
+#Example
+ SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
+ for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
+ SkRect rect;
+ rect.setBounds(points, count);
+ if (count > 0) {
+ SkDebugf("added: %3g, %g ", points[count - 1].fX, points[count - 1].fY);
+ } else {
+ SkDebugf("%14s", " ");
+ }
+ SkDebugf("count: %d rect: %g, %g, %g, %g\n", count,
+ rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
+ }
+#StdOut
+ count: 0 rect: 0, 0, 0, 0
+added: 3, 4 count: 1 rect: 3, 4, 3, 4
+added: 1, 2 count: 2 rect: 1, 2, 3, 4
+added: 5, 6 count: 3 rect: 1, 2, 5, 6
+added: nan, 8 count: 4 rect: 0, 0, 0, 0
+##
+##
+
+#SeeAlso set setBoundsCheck SkPath::addPoly
+
+##
+
+# ------------------------------------------------------------------------------
+
+#Method bool setBoundsCheck(const SkPoint pts[], int count)
+
+Sets to bounds of Point array with count entries. Returns false if count is
+zero or smaller, or if Point array contains an infinity or NaN; in these cases
+sets Rect to (0, 0, 0, 0).
+
+Result is either empty or sorted: fLeft is less than or equal to fRight, and
+fTop is less than or equal to fBottom.
+
+#Param pts Point array ##
+#Param count entries in array ##
+
+#Return true if all Point values are finite ##
+
+#Example
+ SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
+ for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
+ SkRect rect;
+ bool success = rect.setBoundsCheck(points, count);
+ if (count > 0) {
+ SkDebugf("added: %3g, %g ", points[count - 1].fX, points[count - 1].fY);
+ } else {
+ SkDebugf("%14s", " ");
+ }
+ SkDebugf("count: %d rect: %g, %g, %g, %g success: %s\n", count,
+ rect.fLeft, rect.fTop, rect.fRight, rect.fBottom, success ? "true" : "false");
+ }
+#StdOut
+ count: 0 rect: 0, 0, 0, 0 success: true
+added: 3, 4 count: 1 rect: 3, 4, 3, 4 success: true
+added: 1, 2 count: 2 rect: 1, 2, 3, 4 success: true
+added: 5, 6 count: 3 rect: 1, 2, 5, 6 success: true
+added: nan, 8 count: 4 rect: 0, 0, 0, 0 success: false
+##
+##
+
+#SeeAlso set setBounds SkPath::addPoly
+
+##
+
+#Subtopic As_Points ##
+
+#Subtopic Set
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# iset() # sets to int input (left, top, right, bottom) ##
+# isetWH # sets to int input (0, 0, width, height) ##
+# set() # sets to SkScalar input (left, top, right, bottom) and others ##
+# # void set(const SkIRect& src) ##
+# # void set(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) ##
+# # void set(const SkPoint pts[], int count) ##
+# # void set(const SkPoint& p0, const SkPoint& p1) ##
+# setEmpty # sets to (0, 0, 0, 0) ##
+# setLTRB # sets to SkScalar input (left, top, right, bottom) ##
+# setWH # sets to SkScalar input (0, 0, width, height) ##
+# setXYWH # sets to SkScalar input (x, y, width, height) ##
+#Table ##
+
+# ------------------------------------------------------------------------------
+
#Method void setEmpty()
Sets Rect to (0, 0, 0, 0).
@@ -953,63 +1114,6 @@ rect2: {3, 4, 1, 2}
# ------------------------------------------------------------------------------
-#Method void iset(int left, int top, int right, int bottom)
-
-Sets Rect to (left, top, right, bottom).
-All parameters are promoted from integer to Scalar.
-left and right are not sorted; left is not necessarily less than right.
-top and bottom are not sorted; top is not necessarily less than bottom.
-
-#Param left promoted to SkScalar and stored in fLeft ##
-#Param top promoted to SkScalar and stored in fTop ##
-#Param right promoted to SkScalar and stored in fRight ##
-#Param bottom promoted to SkScalar and stored in fBottom ##
-
-#Example
- SkRect rect1 = {3, 4, 1, 2};
- SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
- SkRect rect2;
- rect2.iset(3, 4, 1, 2);
- SkDebugf("rect2: {%g, %g, %g, %g}\n", rect2.fLeft, rect2.fTop, rect2.fRight, rect2.fBottom);
-#StdOut
-rect1: {3, 4, 1, 2}
-rect2: {3, 4, 1, 2}
-##
-##
-
-#SeeAlso set setLTRB SkIRect::set SkIntToScalar
-
-##
-
-# ------------------------------------------------------------------------------
-
-#Method void isetWH(int width, int height)
-
-Sets Rect to (0, 0, width, height).
-width and height may be zero or negative. width and height are promoted from
-integer to SkScalar, large values may lose precision.
-
-#Param width promoted to SkScalar and stored in fRight ##
-#Param height promoted to SkScalar and stored in fBottom ##
-
-#Example
- SkRect rect1 = {0, 0, 1, 2};
- SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
- SkRect rect2;
- rect2.isetWH(1, 2);
- SkDebugf("rect2: {%g, %g, %g, %g}\n", rect2.fLeft, rect2.fTop, rect2.fRight, rect2.fBottom);
-#StdOut
-rect1: {0, 0, 1, 2}
-rect2: {0, 0, 1, 2}
-##
-##
-
-#SeeAlso MakeWH MakeXYWH iset() SkIRect:MakeWH
-
-##
-
-# ------------------------------------------------------------------------------
-
#Method void set(const SkPoint pts[], int count)
Sets to bounds of Point array with count entries. If count is zero or smaller,
@@ -1049,87 +1153,6 @@ added: nan, 8 count: 4 rect: 0, 0, 0, 0
# ------------------------------------------------------------------------------
-#Method void setBounds(const SkPoint pts[], int count)
-
-Sets to bounds of Point array with count entries. If count is zero or smaller,
-or if Point array contains an infinity or NaN, sets to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts Point array ##
-#Param count entries in array ##
-
-#Example
- SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
- for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
- SkRect rect;
- rect.setBounds(points, count);
- if (count > 0) {
- SkDebugf("added: %3g, %g ", points[count - 1].fX, points[count - 1].fY);
- } else {
- SkDebugf("%14s", " ");
- }
- SkDebugf("count: %d rect: %g, %g, %g, %g\n", count,
- rect.fLeft, rect.fTop, rect.fRight, rect.fBottom);
- }
-#StdOut
- count: 0 rect: 0, 0, 0, 0
-added: 3, 4 count: 1 rect: 3, 4, 3, 4
-added: 1, 2 count: 2 rect: 1, 2, 3, 4
-added: 5, 6 count: 3 rect: 1, 2, 5, 6
-added: nan, 8 count: 4 rect: 0, 0, 0, 0
-##
-##
-
-#SeeAlso set setBoundsCheck SkPath::addPoly
-
-##
-
-# ------------------------------------------------------------------------------
-
-#Method bool setBoundsCheck(const SkPoint pts[], int count)
-
-Sets to bounds of Point array with count entries. Returns false if count is
-zero or smaller, or if Point array contains an infinity or NaN; in these cases
-sets Rect to (0, 0, 0, 0).
-
-Result is either empty or sorted: fLeft is less than or equal to fRight, and
-fTop is less than or equal to fBottom.
-
-#Param pts Point array ##
-#Param count entries in array ##
-
-#Return true if all Point values are finite ##
-
-#Example
- SkPoint points[] = {{3, 4}, {1, 2}, {5, 6}, {SK_ScalarNaN, 8}};
- for (int count = 0; count <= (int) SK_ARRAY_COUNT(points); ++count) {
- SkRect rect;
- bool success = rect.setBoundsCheck(points, count);
- if (count > 0) {
- SkDebugf("added: %3g, %g ", points[count - 1].fX, points[count - 1].fY);
- } else {
- SkDebugf("%14s", " ");
- }
- SkDebugf("count: %d rect: %g, %g, %g, %g success: %s\n", count,
- rect.fLeft, rect.fTop, rect.fRight, rect.fBottom, success ? "true" : "false");
- }
-#StdOut
- count: 0 rect: 0, 0, 0, 0 success: true
-added: 3, 4 count: 1 rect: 3, 4, 3, 4 success: true
-added: 1, 2 count: 2 rect: 1, 2, 3, 4 success: true
-added: 5, 6 count: 3 rect: 1, 2, 5, 6 success: true
-added: nan, 8 count: 4 rect: 0, 0, 0, 0 success: false
-##
-##
-
-#SeeAlso set setBounds SkPath::addPoly
-
-##
-
-# ------------------------------------------------------------------------------
-
#Method void set(const SkPoint& p0, const SkPoint& p1)
Sets bounds to the smallest Rect enclosing Points p0 and p1. The result is
@@ -1217,6 +1240,94 @@ rect: -15, 0, 0, 25 isEmpty: false
##
+#Subtopic Set ##
+
+#Subtopic From_Integers
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# iset() # sets to int input (left, top, right, bottom) ##
+# isetWH # sets to int input (0, 0, width, height) ##
+#Table ##
+
+# ------------------------------------------------------------------------------
+
+#Method void iset(int left, int top, int right, int bottom)
+
+Sets Rect to (left, top, right, bottom).
+All parameters are promoted from integer to Scalar.
+left and right are not sorted; left is not necessarily less than right.
+top and bottom are not sorted; top is not necessarily less than bottom.
+
+#Param left promoted to SkScalar and stored in fLeft ##
+#Param top promoted to SkScalar and stored in fTop ##
+#Param right promoted to SkScalar and stored in fRight ##
+#Param bottom promoted to SkScalar and stored in fBottom ##
+
+#Example
+ SkRect rect1 = {3, 4, 1, 2};
+ SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
+ SkRect rect2;
+ rect2.iset(3, 4, 1, 2);
+ SkDebugf("rect2: {%g, %g, %g, %g}\n", rect2.fLeft, rect2.fTop, rect2.fRight, rect2.fBottom);
+#StdOut
+rect1: {3, 4, 1, 2}
+rect2: {3, 4, 1, 2}
+##
+##
+
+#SeeAlso set setLTRB SkIRect::set SkIntToScalar
+
+##
+
+# ------------------------------------------------------------------------------
+
+#Method void isetWH(int width, int height)
+
+Sets Rect to (0, 0, width, height).
+width and height may be zero or negative. width and height are promoted from
+integer to SkScalar, large values may lose precision.
+
+#Param width promoted to SkScalar and stored in fRight ##
+#Param height promoted to SkScalar and stored in fBottom ##
+
+#Example
+ SkRect rect1 = {0, 0, 1, 2};
+ SkDebugf("rect1: {%g, %g, %g, %g}\n", rect1.fLeft, rect1.fTop, rect1.fRight, rect1.fBottom);
+ SkRect rect2;
+ rect2.isetWH(1, 2);
+ SkDebugf("rect2: {%g, %g, %g, %g}\n", rect2.fLeft, rect2.fTop, rect2.fRight, rect2.fBottom);
+#StdOut
+rect1: {0, 0, 1, 2}
+rect2: {0, 0, 1, 2}
+##
+##
+
+#SeeAlso MakeWH MakeXYWH iset() SkIRect:MakeWH
+
+##
+
+#Subtopic From_Integers ##
+
+#Subtopic Inset_Outset_Offset
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# inset() # moves the sides symmetrically about the center ##
+# makeInset # constructs from sides moved symmetrically about the center ##
+# makeOffset # constructs from translated sides ##
+# makeOutset # constructs from sides moved symmetrically about the center ##
+# offset() # translates sides without changing width and height ##
+# # void offset(SkScalar dx, SkScalar dy) ##
+# # void offset(const SkPoint& delta) ##
+# offsetTo # translates to (x, y) without changing width and height ##
+# outset() # moves the sides symmetrically about the center ##
+#Table ##
+
# ------------------------------------------------------------------------------
#Method SkRect makeOffset(SkScalar dx, SkScalar dy) const
@@ -1447,7 +1558,9 @@ rect: 5, 1, 55, 86
##
-#Topic Intersection
+#Subtopic Inset_Outset_Offset ##
+
+#Subtopic Intersection
Rects intersect when they enclose a common area. To intersect, each of the pair
must describe area; fLeft is less than fRight, and fTop is less than fBottom;
@@ -1462,6 +1575,89 @@ empty() returns false. The intersection of Rect pair can be described by:
The intersection is only meaningful if the resulting Rect is not empty and
describes an area: fLeft is less than fRight, and fTop is less than fBottom.
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# Intersects # returns true if areas overlap ##
+# contains() # returns true if points are equal or inside ##
+# # bool contains(const SkRect& r) const ##
+# # bool contains(const SkIRect& r) const ##
+# intersect() # sets to shared area; returns true if not empty ##
+# # bool intersect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) ##
+# # bool intersect(const SkRect& r) ##
+# # bool intersect(const SkRect& a, const SkRect& b) ##
+# intersects() # returns true if areas overlap ##
+# # bool intersects(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) const ##
+# # bool intersects(const SkRect& r) const ##
+#Table ##
+
+# ------------------------------------------------------------------------------
+
+#Method bool contains(const SkRect& r) const
+
+Returns true if Rect contains r.
+Returns false if Rect is empty or r is empty.
+
+Rect contains r when Rect area completely includes r area.
+
+#Param r Rect contained ##
+
+#Return true if all sides of Rect are outside r ##
+
+#Example
+ SkRect rect = { 30, 50, 40, 60 };
+ SkRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
+ for (auto contained : tests) {
+ SkDebugf("rect: (%g, %g, %g, %g) %s (%g, %g, %g, %g)\n",
+ rect.left(), rect.top(), rect.right(), rect.bottom(),
+ rect.contains(contained) ? "contains" : "does not contain",
+ contained.left(), contained.top(), contained.right(), contained.bottom());
+ }
+#StdOut
+rect: (30, 50, 40, 60) contains (30, 50, 31, 51)
+rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50)
+rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60)
+##
+##
+
+#SeeAlso SkIRect::contains
+
+##
+
+# ------------------------------------------------------------------------------
+
+#Method bool contains(const SkIRect& r) const
+
+Returns true if Rect contains r.
+Returns false if Rect is empty or r is empty.
+
+Rect contains r when Rect area completely includes r area.
+
+#Param r IRect contained ##
+
+#Return true if all sides of Rect are outside r ##
+
+#Example
+ SkRect rect = { 30, 50, 40, 60 };
+ SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
+ for (auto contained : tests) {
+ SkDebugf("rect: (%g, %g, %g, %g) %s (%d, %d, %d, %d)\n",
+ rect.left(), rect.top(), rect.right(), rect.bottom(),
+ rect.contains(contained) ? "contains" : "does not contain",
+ contained.left(), contained.top(), contained.right(), contained.bottom());
+ }
+#StdOut
+rect: (30, 50, 40, 60) contains (30, 50, 31, 51)
+rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50)
+rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60)
+##
+##
+
+#SeeAlso SkIRect::contains
+
+##
+
# ------------------------------------------------------------------------------
#Method bool intersect(const SkRect& r)
@@ -1636,8 +1832,20 @@ Returns false if either a or b is empty, or do not intersect.
##
-#Topic Intersection ##
+#Subtopic Intersection ##
+#Subtopic Join
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# join() # sets to union of bounds ##
+# # void join(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) ##
+# # void join(const SkRect& r) ##
+# joinNonEmptyArg # sets to union of bounds, asserting that argument is not empty ##
+# joinPossiblyEmptyRect # sets to union of bounds. Skips empty check for both ##
+#Table ##
# ------------------------------------------------------------------------------
@@ -1758,75 +1966,23 @@ sorted: 10, 0, 55, 100
##
-# ------------------------------------------------------------------------------
-
-#Method bool contains(const SkRect& r) const
-
-Returns true if Rect contains r.
-Returns false if Rect is empty or r is empty.
-
-Rect contains r when Rect area completely includes r area.
-
-#Param r Rect contained ##
-
-#Return true if all sides of Rect are outside r ##
-
-#Example
- SkRect rect = { 30, 50, 40, 60 };
- SkRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
- for (auto contained : tests) {
- SkDebugf("rect: (%g, %g, %g, %g) %s (%g, %g, %g, %g)\n",
- rect.left(), rect.top(), rect.right(), rect.bottom(),
- rect.contains(contained) ? "contains" : "does not contain",
- contained.left(), contained.top(), contained.right(), contained.bottom());
- }
-#StdOut
-rect: (30, 50, 40, 60) contains (30, 50, 31, 51)
-rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50)
-rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60)
-##
-##
-
-#SeeAlso SkIRect::contains
-
-##
-
-# ------------------------------------------------------------------------------
-
-#Method bool contains(const SkIRect& r) const
-
-Returns true if Rect contains r.
-Returns false if Rect is empty or r is empty.
-
-Rect contains r when Rect area completely includes r area.
-
-#Param r IRect contained ##
-
-#Return true if all sides of Rect are outside r ##
-
-#Example
- SkRect rect = { 30, 50, 40, 60 };
- SkIRect tests[] = { { 30, 50, 31, 51}, { 39, 49, 40, 50}, { 29, 59, 30, 60} };
- for (auto contained : tests) {
- SkDebugf("rect: (%g, %g, %g, %g) %s (%d, %d, %d, %d)\n",
- rect.left(), rect.top(), rect.right(), rect.bottom(),
- rect.contains(contained) ? "contains" : "does not contain",
- contained.left(), contained.top(), contained.right(), contained.bottom());
- }
-#StdOut
-rect: (30, 50, 40, 60) contains (30, 50, 31, 51)
-rect: (30, 50, 40, 60) does not contain (39, 49, 40, 50)
-rect: (30, 50, 40, 60) does not contain (29, 59, 30, 60)
-##
-##
-
-#SeeAlso SkIRect::contains
-
-##
+#Subtopic Join ##
-#Topic Round
+#Subtopic Rounding
-# ------------------------------------------------------------------------------
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# round() # sets members to nearest integer value ##
+# # void round(SkIRect* dst) const ##
+# # SkIRect round() const ##
+# roundIn # sets members to nearest integer value towards opposite ##
+# roundOut # sets members to nearest integer value away from opposite ##
+# # void roundOut(SkIRect* dst) const ##
+# # void roundOut(SkRect* dst) const ##
+# # SkIRect roundOut() const ##
+#Table ##
#Method void round(SkIRect* dst) const
@@ -1993,7 +2149,17 @@ round: 30, 50, 41, 61
##
-#Topic Round ##
+#Subtopic Rounding ##
+
+#Subtopic Sorting
+
+#Table
+#Legend
+# name # description ##
+#Legend ##
+# makeSorted # constructs, ordering sides from smaller to larger ##
+# sort() # orders sides from smaller to larger ##
+#Table ##
# ------------------------------------------------------------------------------
@@ -2014,7 +2180,7 @@ sorted: 20.5, 10.5, 30.5, 50.5
##
##
-#SeeAlso makeSorted SkIRect::sort
+#SeeAlso makeSorted SkIRect::sort isSorted
##
@@ -2039,10 +2205,12 @@ sorted: 20.5, 10.5, 30.5, 50.5
##
##
-#SeeAlso sort SkIRect::makeSorted
+#SeeAlso sort SkIRect::makeSorted isSorted
##
+#Subtopic Sorting ##
+
# ------------------------------------------------------------------------------
#Method const SkScalar* asScalars() const