Adding my Bitmap2Path sample for 1on1 meeting.

BUG=
R=reed@google.com, borenet@google.com

Author: dierk@google.com

Review URL: https://chromiumcodereview.appspot.com/16829003

git-svn-id: http://skia.googlecode.com/svn/trunk@9843 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/utils/SkPathUtils.h b/include/utils/SkPathUtils.h
new file mode 100644
index 0000000..80f4f6b
--- /dev/null
+++ b/include/utils/SkPathUtils.h
@@ -0,0 +1,40 @@
+/*
+ *  CAUTION: EXPERIMENTAL CODE
+ *
+ *  This code is not to be used and will not be supported
+ *  if it fails on you. DO NOT USE!
+ *
+ */
+
+#ifndef SkPathUtils_DEFINED
+#define SKPathUtils_DEFINED
+
+#include "SkPath.h"
+
+/*
+ * The following methods return the boundary path given a 1-bit bitmap, specified
+ * by width/height and stride. The bits are interpreted as 1 being "in" the path,
+ * and 0 being "out". The bits are interpreted as MSB on the left, and LSB on the right.
+ */
+
+class SK_API SkPathUtils {
+public:
+    /**
+       This variation iterates the binary data sequentially (as in scanline fashion)
+       and will add each run of 1's to the path as a rectangular path. Upon parsing
+       all binary data the path is simplified using the PathOps::Simplify() method.
+    */
+    static void BitsToPath_Path(SkPath* path, const char* bitmap,
+                            int h, int w, int stride);
+
+    /**
+       This variation utilizes the SkRegion class to generate paths, adding
+       each run of 1's to the SkRegion as an SkIRect. Upon parsing the entirety
+       of the binary the SkRegion is converted to a Path via getBoundaryPath().
+    */
+    static void BitsToPath_Region(SkPath* path, const char* bitmap,
+                                   int h, int w, int stride);
+
+};
+
+#endif