Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2111)

Unified Diff: include/core/SkPath.h

Issue 16950021: add rect-output parameter to isRect, allowing us to return the correct bounds even if a rectagular … (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/core/SkPath.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/core/SkPath.h
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index c5e50d78a9dcd4ee7a45542d113364af43c1dc8f..a010060b24a477c77fea26ba384c500e75c80fcc 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -236,6 +236,15 @@ public:
*/
bool isLine(SkPoint line[2]) const;
+ enum Direction {
+ /** Direction either has not been or could not be computed */
+ kUnknown_Direction,
+ /** clockwise direction for adding closed contours */
+ kCW_Direction,
+ /** counter-clockwise direction for adding closed contours */
+ kCCW_Direction,
+ };
+
/** Returns true if the path specifies a rectangle. If so, and if rect is
not null, set rect to the bounds of the path. If the path does not
specify a rectangle, return false and ignore rect.
@@ -244,7 +253,36 @@ public:
a rectangle
@return true if the path specifies a rectangle
*/
- bool isRect(SkRect* rect) const;
+ bool isRect(SkRect* rect) const {
+ return this->isRect(rect, NULL, NULL);
+ }
+
+ /**
+ * Returns true if the path specifies a rectangle.
+ *
+ * If this returns false, then all output parameters are ignored, and left
+ * unchanged. If this returns true, then each of the output parameters
+ * are checked for NULL. If they are not, they return their value.
+ *
+ * @param rect If not null, set to the bounds of the rectangle
+ * @param isClosed If not null, set to true if the path is closed
+ * @param direction If not null, set to the rectangle's direction
+ * @return true if the path specifies a rectangle
+ */
+ bool isRect(SkRect* rect, bool* isClosed, Direction* direction) const;
Stephen Chennney 2013/06/21 17:19:05 Is isClosed implied by a true return value? On oth
reed1 2013/06/21 17:24:03 move line line line line that path is not closed,
+
+ /** Returns true if the path specifies a pair of nested rectangles. If so, and if
+ rect is not null, set rect[0] to the outer rectangle and rect[1] to the inner
+ rectangle. If so, and dirs is not null, set dirs[0] to the direction of
+ the outer rectangle and dirs[1] to the direction of the inner rectangle. If
+ the path does not specify a pair of nested rectangles, return
+ false and ignore rect and dirs.
+
+ @param rect If not null, returns the path as a pair of nested rectangles
+ @param dirs If not null, returns the direction of the rects
+ @return true if the path describes a pair of nested rectangles
+ */
+ bool isNestedRects(SkRect rect[2], Direction dirs[2] = NULL) const;
/** Return the number of points in the path
*/
@@ -500,15 +538,6 @@ public:
*/
void close();
- enum Direction {
- /** Direction either has not been or could not be computed */
- kUnknown_Direction,
- /** clockwise direction for adding closed contours */
- kCW_Direction,
- /** counter-clockwise direction for adding closed contours */
- kCCW_Direction,
- };
-
/**
* Return the opposite of the specified direction. kUnknown is its own
* opposite.
@@ -573,30 +602,6 @@ public:
return computedDir == dir;
}
- /** Returns true if the path specifies a rectangle. If so, and if isClosed is
- not null, set isClosed to true if the path is closed. Also, if returning true
- and direction is not null, return the rect direction. If the path does not
- specify a rectangle, return false and ignore isClosed and direction.
-
- @param isClosed If not null, set to true if the path is closed
- @param direction If not null, set to the rectangle's direction
- @return true if the path specifies a rectangle
- */
- bool isRect(bool* isClosed, Direction* direction) const;
-
- /** Returns true if the path specifies a pair of nested rectangles. If so, and if
- rect is not null, set rect[0] to the outer rectangle and rect[1] to the inner
- rectangle. If so, and dirs is not null, set dirs[0] to the direction of
- the outer rectangle and dirs[1] to the direction of the inner rectangle. If
- the path does not specify a pair of nested rectangles, return
- false and ignore rect and dirs.
-
- @param rect If not null, returns the path as a pair of nested rectangles
- @param dirs If not null, returns the direction of the rects
- @return true if the path describes a pair of nested rectangles
- */
- bool isNestedRects(SkRect rect[2], Direction dirs[2] = NULL) const;
-
/**
* Add a closed rectangle contour to the path
* @param rect The rectangle to add as a closed contour to the path
« no previous file with comments | « no previous file | src/core/SkPath.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698