shape ops work in progress

git-svn-id: http://skia.googlecode.com/svn/trunk@7738 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/Intersection/LineCubicIntersection.cpp b/experimental/Intersection/LineCubicIntersection.cpp
index faed89f..1e97ab2 100644
--- a/experimental/Intersection/LineCubicIntersection.cpp
+++ b/experimental/Intersection/LineCubicIntersection.cpp
@@ -107,7 +107,9 @@
         double cubicT = rootVals[index];
         double lineT = findLineT(cubicT);
         if (pinTs(cubicT, lineT)) {
-            intersections.insert(cubicT, lineT);
+            _Point pt;
+            xy_at_t(line, lineT, pt.x, pt.y);
+            intersections.insert(cubicT, lineT, pt);
         }
     }
     return intersections.fUsed;
@@ -125,12 +127,12 @@
     double rootVals[3];
     int roots = horizontalIntersect(axisIntercept, rootVals);
     for (int index = 0; index < roots; ++index) {
-        double x;
+        _Point pt;
         double cubicT = rootVals[index];
-        xy_at_t(cubic, cubicT, x, *(double*) NULL);
-        double lineT = (x - left) / (right - left);
+        xy_at_t(cubic, cubicT, pt.x, pt.y);
+        double lineT = (pt.x - left) / (right - left);
         if (pinTs(cubicT, lineT)) {
-            intersections.insert(cubicT, lineT);
+            intersections.insert(cubicT, lineT, pt);
         }
     }
     if (flipped) {
@@ -151,12 +153,12 @@
     double rootVals[3];
     int roots = verticalIntersect(axisIntercept, rootVals);
     for (int index = 0; index < roots; ++index) {
-        double y;
+        _Point pt;
         double cubicT = rootVals[index];
-        xy_at_t(cubic, cubicT, *(double*) NULL, y);
-        double lineT = (y - top) / (bottom - top);
+        xy_at_t(cubic, cubicT, pt.x, pt.y);
+        double lineT = (pt.y - top) / (bottom - top);
         if (pinTs(cubicT, lineT)) {
-            intersections.insert(cubicT, lineT);
+            intersections.insert(cubicT, lineT, pt);
         }
     }
     if (flipped) {
@@ -172,7 +174,7 @@
     for (int cIndex = 0; cIndex < 4; cIndex += 3) {
         for (int lIndex = 0; lIndex < 2; lIndex++) {
             if (cubic[cIndex] == line[lIndex]) {
-                intersections.insert(cIndex >> 1, lIndex);
+                intersections.insert(cIndex >> 1, lIndex, line[lIndex]);
             }
         }
     }
@@ -185,10 +187,10 @@
             continue;
         }
         if (cubic[cIndex].x == left) {
-            intersections.insert(cIndex >> 1, 0);
+            intersections.insert(cIndex >> 1, 0, cubic[cIndex]);
         }
         if (cubic[cIndex].x == right) {
-            intersections.insert(cIndex >> 1, 1);
+            intersections.insert(cIndex >> 1, 1, cubic[cIndex]);
         }
     }
 }
@@ -200,10 +202,10 @@
             continue;
         }
         if (cubic[cIndex].y == top) {
-            intersections.insert(cIndex >> 1, 0);
+            intersections.insert(cIndex >> 1, 0, cubic[cIndex]);
         }
         if (cubic[cIndex].y == bottom) {
-            intersections.insert(cIndex >> 1, 1);
+            intersections.insert(cIndex >> 1, 1, cubic[cIndex]);
         }
     }
 }