code: function( geometry, styles, ctx, offset ){
  
              var name = geometry.name
                  ,x = +(offset && offset.x)
                  ,y = +(offset && offset.y)
                  ,w = geometry.aabb().hw
                  ;
  
              ctx = ctx || this.ctx;
              styles = styles || this.options.styles[ name ] || this.options.styles.circle || {};
  
              ctx.save();
              ctx.translate(x, y);
  
              if (name === 'circle'){
  
                  this.drawCircle(0, 0, geometry.radius, styles, ctx);
  
              } else if (name === 'convex-polygon'){
  
                  this.drawPolygon(geometry.vertices, styles, ctx);
  
              } else if (name === 'rectangle'){
  
                  this.drawRect(0, 0, geometry.width, geometry.height, styles, ctx);
  
              } else if (name === 'compound'){
  
                  for ( var i = 0, l = geometry.children.length, ch; i < l; i++ ){
                      ch = geometry.children[ i ];
  
                      // translate
                      ctx.translate(ch.pos.x, ch.pos.y);
                      // rotate
                      ctx.rotate(ch.angle);
  
                      this.draw( ch.g, styles, ctx );
  
                      // unrotate
                      ctx.rotate(-ch.angle);
                      // untranslate
                      ctx.translate(-ch.pos.x, -ch.pos.y);
                  }
  
              } else {
  
                  // assume it's a point
                  this.drawCircle(0, 0, 1, styles, ctx);
              }
  
              if (name !== 'compound' && styles.angleIndicator){
  
                  ctx.beginPath();
                  this.setStyle( styles.angleIndicator, ctx );
                  ctx.moveTo(0, 0);
                  ctx.lineTo(w, 0);
                  ctx.closePath();
                  ctx.stroke();
              }
  
              ctx.restore();
  
              return this;
          }
docs: CanvasRenderer#draw( geometry[, styles, ctx, offset] ) -> this
  - geometry (Geometry): The shape to draw
  - styles (Object): The styles configuration
  - ctx (Canvas2DContext): The canvas context
  - offset (Vectorish): The offset from center
  
  Draw a geometry to a context.