+LY_DEFINE(ly_get_molecule_extent,
+ "ly-get-molecule-extent", 2 , 0, 0, (SCM mol, SCM axis),
+ "Return a pair of numbers signifying the extent of @var{mol} in
+@var{axis} direction (0 or 1 for x and y axis respectively).
+")
+{
+ Molecule *m = unsmob_molecule (mol);
+ SCM_ASSERT_TYPE (m, mol, SCM_ARG1, __FUNCTION__, "molecule");
+ SCM_ASSERT_TYPE (ly_axis_p (axis), axis, SCM_ARG2, __FUNCTION__, "axis");
+
+ return ly_interval2scm (m->extent (Axis (gh_scm2int (axis))));
+}
+
+
+LY_DEFINE(ly_molecule_combined_at_edge,
+ "ly-combine-molecule-at-edge",
+ 5 , 0, 0, (SCM first, SCM axis, SCM direction,
+ SCM second, SCM padding),
+ "Construct a molecule by putting @var{second} next to
+@var{first}. @var{axis} can be 0 (x-axis) or 1 (y-axis), @var{direction} can be
+-1 (left or down) or 1 (right or up). @var{padding} specifies extra
+space to add in between measured in global staff space.")
+