class Glimmer::LibUI::Shape::Bezier
Public Class Methods
new(keyword, parent, args, &block)
click to toggle source
Calls superclass method
Glimmer::LibUI::Shape::new
# File lib/glimmer/libui/shape/bezier.rb, line 31 def initialize(keyword, parent, args, &block) args.prepend nil until args.size == 8 super(keyword, parent, args, &block) end
Public Instance Methods
draw(area_draw_params)
click to toggle source
Calls superclass method
Glimmer::LibUI::Shape#draw
# File lib/glimmer/libui/shape/bezier.rb, line 36 def draw(area_draw_params) if !parent.is_a?(Figure) if include_start_point? ::LibUI.draw_path_new_figure(path_proxy.libui, x, y) else ::LibUI.draw_path_new_figure(path_proxy.libui, 0, 0) end end ::LibUI.draw_path_bezier_to(path_proxy.libui, c1_x, c1_y, c2_x, c2_y, end_x, end_y) super end
include_start_point?()
click to toggle source
Indicates if bezier is not part of a figure and yet it includes the start point in addition to other points
# File lib/glimmer/libui/shape/bezier.rb, line 49 def include_start_point? x && y end
perfect_shape()
click to toggle source
# File lib/glimmer/libui/shape/bezier.rb, line 53 def perfect_shape perfect_shape_dependencies = [x, y, c1_x, c1_y, c2_x, c2_y, end_x, end_y] if perfect_shape_dependencies != @perfect_shape_dependencies x, y, c1_x, c1_y, c2_x, c2_y, end_x, end_y = @perfect_shape_dependencies = perfect_shape_dependencies @perfect_shape = PerfectShape::CubicBezierCurve.new(points: [x, y, c1_x, c1_y, c2_x, c2_y, end_x, end_y].compact) end @perfect_shape end