integ/js/vs/_vs.draw.js
author Anthony Ly <anthonyly.com@gmail.com>
Thu, 18 Apr 2013 11:56:24 +0200
changeset 41 8d64ffdaf5e3
parent 28 84719280c84d
child 53 88666afffe6b
permissions -rwxr-xr-x
résolution problème scrollbar firefox
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     1
(function ($) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     2
  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     3
$.fn._vs.draw = {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     4
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     5
    settings:{
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     6
              draw:{
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     7
                trail:1,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     8
                showLayout:false
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     9
              }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    10
    },
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    11
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    12
    update:function(_this){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    13
      /* refresh rate of canvas (show trail) */
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    14
      //console.log(_this.ctx)
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    15
      if(this.settings.draw.trail==1) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    16
        _this.ctx.clearRect(0, 0, _this.ctx.canvas.clientWidth, _this.ctx.canvas.clientHeight);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    17
      }else{
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    18
        debugDrawChart(0,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    19
            0,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    20
            ctx.canvas.clientWidth,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    21
            ctx.canvas.clientHeight,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    22
            "rgba(255,255,255,"+this.settings.draw.trail+")",
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    23
            ctx);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    24
      }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    25
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    26
      /* Draw body(s) from box2d */
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    27
      for( var b = _this.world.GetBodyList() ; b ; b = b.GetNext()) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    28
        for (var s = b.GetFixtureList(); s != null; s = s.GetNext()) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    29
          this.drawShape(_this,s);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    30
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    31
      }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    32
    
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    33
      /* Show wireframe mode */
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    34
      if(this.settings.draw.showLayout==true){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    35
        this.debugDrawChart(chart.position.x,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    36
                chart.position.y,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    37
                chart.position.width,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    38
                chart.position.height,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    39
                "rgba(255,0,0,0.2)",
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    40
                ctx);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    41
      }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    42
    },
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    43
    debugDrawChart :function (x,y,w,h,color,ctx) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    44
      ctx.save();  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    45
      ctx.translate(0,0);  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    46
      ctx.fillStyle = color;  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    47
      ctx.beginPath();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    48
      ctx.rect(x,y,w,h);      
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    49
      ctx.closePath();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    50
      ctx.strokeStyle ="#000"
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    51
      ctx.lineWidth = 0.5;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    52
      ctx.stroke();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    53
      ctx.restore();  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    54
    },
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    55
    clippedBackgroundImage:function( ctx, img,x,y ){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    56
      ctx.save(); 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    57
      ctx.clip(); 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    58
      //console.log(img)
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    59
      ctx.drawImage(img,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    60
                    x-(img.height/2),
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    61
                    y-(img.width/2),
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    62
                    img.width,
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    63
                    img.height);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    64
      ctx.restore(); 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    65
    },
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    66
    haveTexture:function(s){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    67
      var result = false
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    68
      if(typeof(s.m_userData.texture)!="undefined"){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    69
        if(typeof(s.m_userData.texture.img)!="undefined"){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    70
          if(s.m_userData.texture.img.complete){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    71
            result = true
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    72
          }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    73
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    74
      }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    75
      return result
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    76
    },
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    77
    
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    78
    drawShape: function (_this,s) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    79
    var b           = s.GetBody();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    80
    var position    = b.GetPosition();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    81
    var angle       = b.GetAngle();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    82
    var radiusCoef  = 9;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    83
    var radiusCoefMax=10
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    84
    var scale       = _this.settings.options.scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    85
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    86
    // add x and y to userData
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    87
    s.m_userData.x  = b.GetWorldCenter().x*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    88
    s.m_userData.y  = b.GetWorldCenter().y*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    89
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    90
    //
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    91
    // Call back draw 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    92
    if(typeof(s.m_userData.callback)!="undefined"){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    93
        if(typeof(s.m_userData.callback.draw)=="function"){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    94
               var t = _this.select('ID',s.m_userData.ID)
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    95
               s.m_userData.callback.draw(t)  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    96
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    97
    }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    98
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
    99
    switch (s.GetType()){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   100
      case 0:  // round
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   101
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   102
        switch (s.m_userData){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   103
          case null:
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   104
            _this.ctx.fillStyle = "rgba(255,0,0,1)";  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   105
          break;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   106
          default:
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   107
            _this.ctx.fillStyle = s.m_userData.fillStyle;  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   108
          break
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   109
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   110
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   111
        var radius = s.m_shape.m_radius
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   112
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   113
        // round token 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   114
        if(_this.settings.sedimentation.token.visible==true){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   115
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   116
          _this.ctx.save();  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   117
          _this.ctx.translate(position.x*scale, position.y*scale);  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   118
          _this.ctx.rotate(angle);  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   119
          _this.ctx.beginPath();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   120
          var h = (radius/radiusCoefMax*radiusCoef)*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   121
          
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   122
          //console.log(s.m_userData.strokeStyle)
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   123
          if(typeof(s.m_userData.strokeStyle)!="undefined"){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   124
            _this.ctx.strokeStyle = s.m_userData.strokeStyle
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   125
          } else{ 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   126
            _this.ctx.strokeStyle = "rgba(0,0,0,0)"
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   127
          }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   128
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   129
          if(typeof(s.m_userData.lineWidth)!="undefined"){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   130
            _this.ctx.lineWidth   = s.m_userData.lineWidth 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   131
          } else { 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   132
            _this.ctx.lineWidth = 0
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   133
          }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   134
          
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   135
          _this.ctx.arc(0, 0,h, 0, Math.PI*2, true); 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   136
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   137
          if(this.haveTexture(s)){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   138
              this.clippedBackgroundImage(_this.ctx,s.m_userData.texture.img
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   139
                                          ,0
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   140
                                          ,0);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   141
          }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   142
          _this.ctx.closePath();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   143
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   144
          if(_this.settings.options.layout==true){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   145
            _this.ctx.strokeStyle = "#000"
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   146
            _this.ctx.lineWidth   = 0.5
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   147
            _this.ctx.stroke();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   148
          }else{
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   149
            if(!this.haveTexture(s))_this.ctx.fill();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   150
             _this.ctx.stroke();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   151
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   152
          }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   153
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   154
          _this.ctx.restore();  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   155
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   156
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   157
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   158
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   159
      break
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   160
      case 1: // vertice (polygon and squares ...)
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   161
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   162
        //if(s.m_userData.type != "wall" && s.m_userData.type != "lift")console.log("draw",s.m_userData)
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   163
        
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   164
        switch (s.m_userData){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   165
          case null:
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   166
            _this.ctx.fillStyle = "rgba(255,0,0,1)";  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   167
          break;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   168
          default:
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   169
            _this.ctx.fillStyle = s.m_userData.fillStyle;  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   170
          break
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   171
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   172
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   173
        var width = s.m_shape.m_vertices[0].x*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   174
        var height = s.m_shape.m_vertices[0].y*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   175
        var posx = position.x*scale-s.m_shape.m_vertices[0].x*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   176
        var posy = position.y*scale-s.m_shape.m_vertices[0].y*scale
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   177
        
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   178
        _this.ctx.save();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   179
        _this.ctx.translate(position.x*scale, position.y*scale); 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   180
        _this.ctx.rotate(angle);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   181
        _this.ctx.beginPath();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   182
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   183
        //if(s.m_userData.ID==1 ){ console.log(s.m_userData.lineWidth) }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   184
        //if(typeof(s.m_userData.fillStyle)!="undefined")   _this.ctx.fillStyle   = s.m_userData.fillStyle
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   185
        if(typeof(s.m_userData.strokeStyle)!="undefined"){ _this.ctx.strokeStyle = s.m_userData.strokeStyle
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   186
        } else{   _this.ctx.strokeStyle = s.m_userData.fillStyle}
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   187
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   188
        if(typeof(s.m_userData.lineWidth)!="undefined"){  _this.ctx.lineWidth   = s.m_userData.lineWidth 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   189
        } else{   _this.ctx.lineWidth = 0}
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   190
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   191
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   192
        for (var i = 0; i < s.m_shape.m_vertices.length; i++) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   193
          var points = s.m_shape.m_vertices;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   194
          //var this = {x:0,y:0}
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   195
          _this.ctx.moveTo(( points[0].x) * scale, (points[0].y) * scale);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   196
          for (var j = 1; j < points.length; j++) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   197
             _this.ctx.lineTo((points[j].x ) * scale, (points[j].y ) * scale);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   198
          }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   199
          _this.ctx.lineTo(( points[0].x) * scale, ( points[0].y) * scale);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   200
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   201
        _this.ctx.closePath();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   202
        _this.ctx.fill(); 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   203
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   204
        // pour le debug mode
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   205
        if(_this.settings.options.layout==true){
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   206
          _this.ctx.lineWidth   = 0.1;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   207
          _this.ctx.strokeStyle ="rgb(0,0,0)"
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   208
          _this.ctx.stroke();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   209
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   210
          // incomming points Drawer
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   211
          //for (var i = _this.settings.sedimentation.incoming.point.length - 1; i >= 0; i--) {
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   212
            //
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   213
            //_this.settings.sedimentation.incoming.point[i].y
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   214
            // draw green 
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   215
            //_this.ctx.font = '40px Arial';
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   216
            //_this.ctx.fillText("x", _this.settings.sedimentation.incoming.point[i].x, _this.settings.sedimentation.incoming.point[i].y);
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   217
            //_this.ctx.fillStyle = "rgb(0,250,0,0.5)";  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   218
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   219
          //};
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   220
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   221
        }else{
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   222
          _this.ctx.stroke();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   223
        }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   224
        _this.ctx.restore();
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   225
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   226
      break;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   227
      case 2:
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   228
  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   229
      break;
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   230
      _this.ctx.fillStyle = "rgb(0,0,0)";  
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   231
    }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   232
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   233
  }
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   234
}
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   235
84719280c84d import VS lib
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   236
})(jQuery);