Method: HDLRuby::Viz::Node#assign_svg

Defined in:
lib/HDLRuby/hruby_viz.rb

#assign_svg(n) ⇒ Object

Generate an assign description SVG text for node +n+



3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
# File 'lib/HDLRuby/hruby_viz.rb', line 3550

def assign_svg(n)
  # The shape representing the instance.
  res = "<path fill=\"#B0E2FF\" stroke=\"#000\" " +
    "stroke-width=\"#{@scale/12.0}\" " +
    # "d=\"M #{n.xpos*@scale} #{(n.ypos + n.height/2.0)*@scale} " +
    # "L #{(n.xpos + 1.0)*@scale} #{n.ypos*@scale} " + 
    # "L #{(n.xpos + n.width-n.height/2.0)*@scale} #{n.ypos*@scale} " + 
    # "A #{n.height/2.0*@scale} #{n.height/2.0*@scale} 0 0 1 " +
    # "#{(n.xpos + n.width-n.height/2.0)*@scale} #{(n.ypos+n.height)*@scale} " +
    # "L #{(n.xpos + 1.0)*@scale} #{(n.ypos+n.height)*@scale} " + 
    "d=\"M #{n.xpos*@scale} #{(n.ypos + n.height)*@scale} " +
    "L #{(n.xpos + 1.0)*@scale} #{n.ypos*@scale} " + 
    "L #{(n.xpos + n.width)*@scale} #{n.ypos*@scale} " + 
    "L #{(n.xpos + n.width-1.0)*@scale} #{(n.ypos+n.height)*@scale} " +
    "Z \" />\n"
  # Its text.
  res += "<text id=\"text#{n.name}\" " +
    "style=\"text-anchor: middle; dominant-baseline: middle;\" " +
    "font-family=\"monospace\" font-size=\"1px\" " +
    "x=\"#{(n.xpos + n.width/2.0)*@scale}\" "+
    "y=\"#{(n.ypos + n.height/2.0)*@scale}\">" +
    n.to_s + "</text>\n"
  # Its text resizing.
  res += Viz.svg_text_fit("text#{n.name}",(n.width-2)*@scale,
                           0.6*@scale)
  return res
end