client/js/renderer/shapebuilder.js
author cavaliet
Tue, 09 Sep 2014 17:49:31 +0200
changeset 326 e4afd8643576
child 327 239d372644a0
permissions -rw-r--r--
shape builder for node
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
326
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     1
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     2
define([], function () {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     3
    'use strict';
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     4
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     5
    /* ShapeBuilder Begin */
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     6
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     7
    var builders = {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     8
        "circle":{
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
     9
            getShape: function() {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    10
                return new paper.Path.Circle([0, 0], 1);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    11
            },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    12
            getImageShape: function(center, radius) {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    13
                return new paper.Path.Circle(center, radius);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    14
            }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    15
        },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    16
        "rectangle":{
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    17
            getShape: function() {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    18
                return new paper.Path.Rectangle([-2, -2], [2, 2]);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    19
            },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    20
            getImageShape: function(center, radius) {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    21
                return new paper.Path.Rectangle([-radius, -radius], [radius*2, radius*2]);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    22
            }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    23
        },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    24
        "ellipse":{
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    25
            getShape: function() {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    26
                return new paper.Path.Ellipse(new paper.Rectangle([-2, -1], [2, 1]));
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    27
            },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    28
            getImageShape: function(center, radius) {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    29
                return new paper.Path.Ellipse(new paper.Rectangle([-radius, -radius/2], [radius*2, radius]));
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    30
            }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    31
        },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    32
        "polygon":{
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    33
            getShape: function() {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    34
                return new paper.Path.RegularPolygon([0, 0], 6, 1);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    35
            },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    36
            getImageShape: function(center, radius) {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    37
                return new paper.Path.RegularPolygon([0, 0], 6, radius);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    38
            }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    39
        },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    40
        "diamond":{
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    41
            getShape: function() {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    42
                var d = new paper.Path.Rectangle([-2, -2], [2, 2]);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    43
                d.rotate(45);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    44
                return d;
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    45
            },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    46
            getImageShape: function(center, radius) {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    47
                var d = new paper.Path.Rectangle([-radius, -radius], [radius*2, radius*2]);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    48
                d.rotate(45);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    49
                return d;
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    50
            }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    51
        },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    52
        "star":{
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    53
            getShape: function() {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    54
                return new paper.Path.Star([0, 0], 8, 1, 0.7);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    55
            },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    56
            getImageShape: function(center, radius) {
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    57
                return new paper.Path.Star([0, 0], 8, radius*1, radius*0.7);
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    58
            }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    59
        },
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    60
    };
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    61
    
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    62
    var ShapeBuilder = function (shape){
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    63
        if(!(shape in builders)){
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    64
            shape = "circle";
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    65
        }
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    66
        return builders[shape];
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    67
    };
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    68
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    69
    return ShapeBuilder;
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    70
e4afd8643576 shape builder for node
cavaliet
parents:
diff changeset
    71
});