cutout/prototype/cutout-raphael.js
author ymh <ymh.work@gmail.com>
Mon, 11 May 2015 13:16:58 +0200
changeset 296 6329fbbfea40
parent 7 4edf6745bda5
permissions -rw-r--r--
upgrade version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     1
var startPath = "M0.5415 0.1793L0.5362 0.1550L0.5613 0.1389L0.5758 0.1583L0.6154 0.1599L0.6273 0.1696L0.6193 0.2051L0.5969 0.2245L0.5877 0.2003L0.5679 0.1954L0.5507 0.2116L0.5455 0.2294L0.5481 0.2536L0.5257 0.2552L0.5098 0.2390L0.5112 0.2100Z"
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     2
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     3
$(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     4
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     5
    var PATHCOLOR = "#ff00ff",
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     6
        SELECTEDCOLOR = "#ffff00",
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     7
        HANDLESIZE = 6;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     8
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
     9
    var jqs = $(".cutout-canvas"),
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    10
        offset = jqs.offset(),
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    11
        paper = new Raphael(jqs[0]),
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    12
        closed = false,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    13
        closeTimeout,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    14
        points = [];
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    15
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    16
    paper.rect(0, 0, paper.width, paper.height)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    17
        .attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    18
            stroke: "none",
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    19
            fill: "#fff",
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    20
            "fill-opacity": .01
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    21
        })
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    22
        .click(clickAddPoint)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    23
        .drag(
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    24
            function(dx, dy, mx, my) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    25
                
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    26
                if (dx*dx+dy*dy < 4) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    27
                    return;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    28
                }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    29
                
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    30
                if (!pathDragging) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    31
                    clearTimeout(closeTimeout);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    32
                    closed = true;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    33
                    resetPoints();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    34
                    for (var i = 0; i < 4; i++) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    35
                        addPoint(mx - offset.left, my - offset.top)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    36
                    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    37
                    redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    38
                    pathDragging = true;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    39
                }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    40
                
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    41
                var x = mx - offset.left,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    42
                    y = my - offset.top;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    43
                points[1].x = points[2].x = x;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    44
                points[2].y = points[3].y = y;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    45
                redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    46
            },
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    47
            function(mx, my) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    48
                pathDragging = false;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    49
            },
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    50
            function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    51
                setTimeout(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    52
                    pointDragging = false;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    53
                },0);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    54
            }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    55
        );
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    56
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    57
    function resetPoints() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    58
        points.forEach(function(p) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    59
           p.handle.remove(); 
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    60
        });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    61
        points = [];
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    62
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    63
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    64
    function addPoint(x, y) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    65
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    66
        var dragdeltax, dragdeltay, pointDragging,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    67
            point = {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    68
                x: Math.floor(x),
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    69
                y: Math.floor(y)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    70
            }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    71
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    72
        var pointrect = paper.rect(0, 0, HANDLESIZE, HANDLESIZE)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    73
            .attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    74
                stroke: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    75
                fill: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    76
                "fill-opacity": .3
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    77
            })
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    78
            .hover(shapeMouseOver, shapeMouseOut)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    79
            .drag(
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    80
                function(dx, dy) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    81
                    pointDragging = true;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    82
                    point.x = dx + dragdeltax;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    83
                    point.y = dy + dragdeltay;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    84
                    redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    85
                },
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    86
                function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    87
                    dragdeltax = point.x;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    88
                    dragdeltay = point.y;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    89
                },
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    90
                function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    91
                    setTimeout(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    92
                        pointDragging = false;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    93
                        shapeMouseOut(pointrect);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    94
                    },0);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    95
                }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    96
            )
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    97
            .click(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    98
                if (pointDragging) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
    99
                    return;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   100
                }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   101
                this.remove();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   102
                points = points.filter(function(p) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   103
                    return p != point;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   104
                });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   105
                redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   106
            });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   107
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   108
        point.handle = pointrect;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   109
            
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   110
        points.push(point);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   111
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   112
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   113
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   114
    function clickAddPoint(e, mx, my) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   115
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   116
        if (pathDragging) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   117
            return;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   118
        }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   119
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   120
        clearTimeout(closeTimeout);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   121
        closed = false;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   122
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   123
        addPoint(mx - offset.left, my - offset.top);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   124
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   125
        redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   126
        
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   127
        closeTimeout = setTimeout(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   128
            closed = true;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   129
            redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   130
        }, 1000)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   131
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   132
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   133
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   134
    function shapeMouseOver() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   135
        points.forEach(function(point) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   136
            if (point.handle !== this) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   137
                point.handle.attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   138
                    stroke: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   139
                    fill: PATHCOLOR
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   140
                });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   141
            }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   142
        });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   143
        if (this !== path) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   144
            path.attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   145
                stroke: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   146
                fill: PATHCOLOR
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   147
            });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   148
        }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   149
        this.attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   150
            stroke: SELECTEDCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   151
            fill: SELECTEDCOLOR
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   152
        });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   153
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   154
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   155
    function shapeMouseOut() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   156
        if (pathDragging || !this || !this.attr) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   157
            return;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   158
        }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   159
        this.attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   160
            stroke: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   161
            fill: PATHCOLOR
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   162
        });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   163
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   164
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   165
    function redrawPath() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   166
        var d = "M"
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   167
            + points.map(function(p) { return p.x + " " + p.y }).join("L")
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   168
            + (closed ? "Z" : "");
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   169
        path.attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   170
            path: d
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   171
        });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   172
        points.forEach(function(point) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   173
            point.handle.attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   174
                x: point.x - HANDLESIZE / 2,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   175
                y: point.y - HANDLESIZE / 2
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   176
            });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   177
        });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   178
        var transd = "M"
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   179
            + points.map(function(p) { return (p.x / paper.width).toString().replace(/(\.\d{4})\d*/,"$1") + " " + (p.y / paper.height).toString().replace(/(\.\d{4})\d*/,"$1") }).join("L")
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   180
            + "Z";
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   181
        $(".path-text").text(transd);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   182
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   183
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   184
    var dragdeltax, dragdeltay, pathDragging;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   185
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   186
    var path = paper.path()
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   187
        .attr({
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   188
            stroke: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   189
            fill: PATHCOLOR,
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   190
            "fill-opacity": .1
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   191
        })
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   192
        .click(clickAddPoint)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   193
        .hover(shapeMouseOver, shapeMouseOut)
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   194
        .drag(
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   195
            function(dx, dy) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   196
                pathDragging = true;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   197
                points.forEach(function(point) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   198
                    point.x += dx - dragdeltax;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   199
                    point.y += dy - dragdeltay;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   200
                });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   201
                dragdeltax = dx;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   202
                dragdeltay = dy;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   203
                redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   204
            },
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   205
            function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   206
                dragdeltax = 0;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   207
                dragdeltay = 0;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   208
            },
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   209
            function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   210
                setTimeout(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   211
                    pathDragging = false;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   212
                    shapeMouseOut(path);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   213
                },0);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   214
            }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   215
        );
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   216
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   217
    $(".clear-fragment").click(function() {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   218
        resetPoints();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   219
        redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   220
        return false;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   221
    });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   222
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   223
    startPath.split(/[A-Z]/).forEach(function(coords) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   224
        xy = coords.split(/[ ,]/);
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   225
        if (xy.length === 2) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   226
            addPoint(paper.width * parseFloat(xy[0]), paper.height * parseFloat(xy[1]));
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   227
        }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   228
    });
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   229
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   230
    if (points.length) {
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   231
        closed = true;
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   232
    }
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   233
    
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   234
    redrawPath();
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   235
4edf6745bda5 SVG-ized cutout moduled for IE compatibility
veltr
parents:
diff changeset
   236
});