         return d1 > d2 ? d1 : d2;
     }
 
-/*
-    public function draw(target:Graphics):void
-    {
-        target.moveTo(p0.x, p0.y);
-        target.curveTo(p1.x, p1.y, p2.x, p2.y);
+    public function draw(target:Graphics, threshold:Number = 0.5):void
+    {
+        BezierFlatten.cubicToPolyQuad(this, threshold, new GraphicsStream(target));
     }
 
     public function drawHull(target:Graphics):void

package org.yellcorp.lib.splines
{
import flash.display.Graphics;
import flash.geom.Point;
import flash.geom.Rectangle;

        target.moveTo(p0.x, p0.y);
        target.lineTo(p1.x, p1.y);
        target.lineTo(p2.x, p2.y);
        target.lineTo(p3.x, p3.y);
    }

    public static function evaluate(a:Number, b:Number, c:Number, d:Number, t:Number):Number
    {
