add countPoints() and getPoint()
authorreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 9 Feb 2010 16:38:45 +0000 (16:38 +0000)
committerreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 9 Feb 2010 16:38:45 +0000 (16:38 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@494 2bbb7eff-a529-9590-31e7-b0007b416f81

include/core/SkPath.h
src/core/SkPath.cpp

index ecdfd1ab4146c5359ad38b879c8b68d2600ac333..3afea09433262a3ff2b45b7cf0b7db33e8aebfdf 100644 (file)
@@ -123,6 +123,18 @@ public:
     */
     bool isRect(SkRect* rect) const;
 
+    /** Return the number of points in the path
+     */
+    int countPoints() const {
+        return this->getPoints(NULL, 0);
+    }
+
+    /** Return the point at the specified index. If the index is out of range
+         (i.e. is not 0 <= index < countPoints()) then the returned coordinates
+         will be (0,0)
+     */
+    SkPoint getPoint(int index) const;
+
     /** Returns the number of points in the path. Up to max points are copied.
      
         @param points If not null, receives up to max points
index 1c771072a293b2a05b47ff13203d14acef61f48f..2308ec67ad417f462a01a5a61b37f499326b742c 100644 (file)
@@ -184,6 +184,13 @@ int SkPath::getPoints(SkPoint copy[], int max) const {
     return count;
 }
 
+SkPoint SkPath::getPoint(int index) const {
+    if ((unsigned)index < (unsigned)fPts.count()) {
+        return fPts[index];
+    }
+    return SkPoint::Make(0, 0);
+}
+
 void SkPath::getLastPt(SkPoint* lastPt) const {
     SkDEBUGCODE(this->validate();)