lighttroupe/luz

View on GitHub
engine/plugins/actors/rounded-rectangle.luz.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ActorRoundedRectangle < ActorShape
    title                "Rounded Rectangle"
    description "A rectangle with rounded corners."

    setting 'knob_x', :float, :range => 0.0..1.00, :default => 0.25..1.00, :breaks_cache => true
    setting 'knob_y', :float, :range => 0.0..1.00, :default => 0.25..1.00, :breaks_cache => true
    setting 'detail', :integer, :range => 1..50, :default => 16..50, :breaks_cache => true        # Points on curve
    setting 'cutout_size', :float, :range => 0.0..1.00, :default => 0.00..1.0, :breaks_cache => true

    cache_rendering

    def shape
        s = Shapes.RoundedRectangle(RADIUS, RADIUS, knob_x, knob_y, detail)
        s = [s, s.dup.multiply_each(cutout_size)] unless cutout_size == 0.0
        yield :shape => s
    end
end