+
+ LY_ASSERT_SMOB (Grob, grob, 1);
+ return me->original () ? me->original ()->self_scm () : me->self_scm ();
+}
+
+
+LY_DEFINE (ly_grob_suicide_x, "ly:grob-suicide!",
+ 1, 0, 0, (SCM grob),
+ "Kill @var{grob}.")
+{
+ Grob *me = unsmob_grob (grob);
+
+ LY_ASSERT_SMOB (Grob, grob, 1);
+
+ me->suicide ();
+ return SCM_UNSPECIFIED;
+}
+
+LY_DEFINE (ly_grob_translate_axis_x, "ly:grob-translate-axis!",
+ 3, 0, 0, (SCM grob, SCM d, SCM a),
+ "Translate @var{g} on axis@tie{}@var{a} over"
+ " distance@tie{}@var{d}.")
+{
+ Grob *me = unsmob_grob (grob);
+
+ LY_ASSERT_SMOB (Grob, grob, 1);
+ LY_ASSERT_TYPE (scm_is_number, d, 2);
+ LY_ASSERT_TYPE (is_axis, a, 3);
+
+ me->translate_axis (scm_to_double (d), Axis (scm_to_int (a)));
+ return SCM_UNSPECIFIED;
+}
+
+LY_DEFINE (ly_grob_default_font, "ly:grob-default-font",
+ 1, 0, 0, (SCM grob),
+ "Return the default font for grob @var{gr}.")
+{
+ Grob *gr = unsmob_grob (grob);
+
+ LY_ASSERT_SMOB (Grob, grob, 1);
+
+ return Font_interface::get_default_font (gr)->self_scm ();