class Body

Attributes

body_left_top_y[R]
body_left_x[R]
body_right_top_y[R]
body_right_x[R]
color[R]
draw_data[R]

Public Class Methods

new(name, offsets, renamed = []) click to toggle source
# File lib/compose/body.rb, line 10
def initialize(name, offsets, renamed = [])
  @name = name
  @draw_data = []
  @offset_x = offsets[:offset_x]
  @offset_y = offsets[:offset_y]
  @renamed = renamed
  draw_body
end

Public Instance Methods

changed?() click to toggle source
# File lib/compose/body.rb, line 48
def changed?
  return true if @color == :green || @color == :red
end
draw_body() click to toggle source
# File lib/compose/body.rb, line 19
def draw_body
  @dude_name, @color = process_item(@name)
  # head center
  head_center_x = 0.5 * Config::DUDE_FRAME_SIZE + @offset_x
  head_center_y = 0.3 * Config::DUDE_FRAME_SIZE + @offset_y

  @body_right_x, @body_right_top_y = circle_rotate(head_center_x, head_center_y,
                                                   Config::HEAD_RADIUS,
                                                   Config::BODY_CENTER + Config::SLIM_FACTOR)
  @body_left_x, @body_left_top_y = circle_rotate(head_center_x, head_center_y,
                                                   Config::HEAD_RADIUS,
                                                   Config::BODY_CENTER - Config::SLIM_FACTOR)

  @draw_data << draw_circle(head_center_x, head_center_y, Config::HEAD_RADIUS, @color)

  @draw_data << draw_line(@body_right_x, @body_right_top_y,
                          @body_right_x, @body_right_top_y + Config::BODY_LENGTH, @color)
  # left part of a body
  @draw_data << draw_line(@body_left_x, @body_left_top_y,
                          @body_left_x, @body_left_top_y + Config::BODY_LENGTH, @color)
  # bottom
  @draw_data << draw_line(@body_right_x, @body_right_top_y + Config::BODY_LENGTH,
                          @body_left_x, @body_left_top_y + Config::BODY_LENGTH, @color)

  @draw_data << draw_caption(@dude_name, head_center_x - Config::HEAD_RADIUS,
                             head_center_y - 1.1 * Config::HEAD_RADIUS,
                             14, :lr, @color)
end