<!DOCTYPE html>
<html>
<head>
    <title>Bezier Example</title>
    <!--<script src="../dist/kity.js"></script>-->
    <!--<script src="./coordinate/coordinate.js"></script>-->
</head>
<body></body>

<script src="../dev-lib/sea.js"></script>
<script>

    seajs.config({
        base: '../src'
    });

    define('start', function(require) {

        var kity = require('kity');
//        var Coordinate = require('../example/coordinate/coordinate');

        var BezierViewer = kity.createClass({
            base: kity.Group,
            constructor: function(bezier) {
                this.callBase();
                this.addShape(bezier);
                this.bezier = bezier.stroke(new kity.Color('red').set('a', 0.8));
                this.update();
            },
            update: function() {
                var points = this.bezier.getBezierPoints();
                if (this.group) {
                    this.group.remove();
                }

                this.addShape(this.group = new kity.Group().pipe(function() {
                    for (var i = 0; i < points.length; i++) {
                        var p = points[i], f, b;
                        f = p.getForward();
                        b = p.getBackward();
                        p = p.getVertex();
                        this.addShape(new kity.Path().pipe(function() {
                            var d = this.getDrawer();
                            d.moveTo(b.x, b.y);
                            d.lineTo(p.x, p.y);
                            d.lineTo(f.x, f.y);
//                        this.fill('none');
                            this.stroke('red');
                        }));
                        this.addShape(new kity.Rect(6, 6, b.x - 3, b.y - 3).stroke('red').fill('white'));
                        this.addShape(new kity.Rect(6, 6, f.x - 3, f.y - 3).stroke('red').fill('white'));
                        this.addShape(new kity.Rect(6, 6, p.x - 3, p.y - 3).fill('red'));
                    }
                }));
            }
        });

        var paper = new kity.Paper(document.body).pipe(function () {
            var width = 600, height = 400;
            this.setWidth(width).setHeight(height);
//        this.setViewBox(-40.5, -40.5, width + 40.5, height + 40.5);

//            this.addShape(new Coordinate('black', [0, 59], [0, 39]));

            var bezier = new kity.Bezier().addPoints([
                new kity.BezierPoint(100, 250).setForward(100, 100),
                new kity.BezierPoint(400, 250).setBackward(400, 100)
//            new kity.BezierPoint(300, 350, false).setForward(200, 300).setBackward(400, 300),
//            new kity.BezierPoint(150, 150).setBackward(130, 200),
//            new kity.BezierPoint(300, 150, false).setForward(350, 50).setBackward(250, 50)
            ]);

            this.addShape(window.v = new BezierViewer(bezier));
            window.p = bezier.getPoint(1);
        });
    });

    seajs.use('start');
</script>
</html>