summaryrefslogtreecommitdiff
path: root/lib/ruby
diff options
context:
space:
mode:
authorMatthias Kramm <kramm@quiss.org>2010-01-06 12:36:53 -0800
committerMatthias Kramm <kramm@quiss.org>2010-01-06 12:36:53 -0800
commit9bcdd3d1665c7f85d2fc7472e45ebfbf89c65783 (patch)
tree63b533a18825a6d305ce0ab909097ace1c917025 /lib/ruby
parent1503f016b8d04b374c0e2290d37a4f2f91e63688 (diff)
added .bbox method to glyph in ruby interface
Diffstat (limited to 'lib/ruby')
-rw-r--r--lib/ruby/gfx.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/ruby/gfx.c b/lib/ruby/gfx.c
index 11addd21..661d8efb 100644
--- a/lib/ruby/gfx.c
+++ b/lib/ruby/gfx.c
@@ -281,6 +281,16 @@ static VALUE glyph_advance(VALUE cls)
return rb_float_new(glyph->font->font->glyphs[glyph->nr].advance);
}
+static VALUE glyph_bbox(VALUE cls)
+{
+ Get_Glyph(glyph,cls);
+ gfxbbox_t bbox = gfxline_getbbox(glyph->font->font->glyphs[glyph->nr].line);
+ return rb_ary_new3(4, rb_float_new(bbox.xmin),
+ rb_float_new(bbox.ymin),
+ rb_float_new(bbox.xmax),
+ rb_float_new(bbox.ymax));
+}
+
static VALUE glyph_unicode(VALUE cls)
{
Get_Glyph(glyph,cls);
@@ -646,6 +656,7 @@ void Init_gfx()
rb_define_method(Glyph, "polygon", glyph_polygon, 0);
rb_define_method(Glyph, "unicode", glyph_unicode, 0);
rb_define_method(Glyph, "advance", glyph_advance, 0);
+ rb_define_method(Glyph, "bbox", glyph_bbox, 0);
Font = rb_define_class_under(GFX, "Font", rb_cObject);
rb_define_method(Font, "name", font_name, 0);