+
+void
+Box::add_point (Offset o)
+{
+ interval_a_[X_AXIS].add_point (o[X_AXIS]);
+ interval_a_[Y_AXIS].add_point (o[Y_AXIS]);
+}
+
+Offset
+Box::center () const
+{
+ return Offset (interval_a_[X_AXIS].center (),
+ interval_a_[Y_AXIS].center ());
+}
+
+void
+Box::widen (Real x, Real y)
+{
+ interval_a_[X_AXIS].widen (x);
+ interval_a_[Y_AXIS].widen (y);
+}
+
+/****************************************************************/
+
+#include "ly-smobs.icc"
+
+IMPLEMENT_SIMPLE_SMOBS (Box);
+IMPLEMENT_TYPE_P (Box, "ly:box?");
+IMPLEMENT_DEFAULT_EQUAL_P (Box);
+
+SCM
+Box::mark_smob (SCM x)
+{
+ (void)x;
+ return SCM_EOL;
+}
+
+int
+Box::print_smob (SCM x, SCM p, scm_print_state*)
+{
+ (void)x;
+ scm_puts ("#<Box>", p);
+ return 1;
+}