+
+
+
+struct Cluster_beacon
+{
+public:
+ DECLARE_SCHEME_CALLBACK (height, (SCM, SCM));
+ static bool has_interface (Grob *);
+};
+
+MAKE_SCHEME_CALLBACK (Cluster_beacon,height,2);
+SCM
+Cluster_beacon::height (SCM g, SCM ax)
+{
+ Grob *me = unsmob_grob (g);
+
+ Interval v = robust_scm2interval (me->get_property ("positions"), Interval (0,0));
+ return ly_interval2scm (Staff_symbol_referencer::staff_space (me) * 0.5 * v);
+}
+
+
+
+ADD_INTERFACE(Cluster_beacon,
+ "cluster-beacon-interface",
+ "A place holder for the cluster spanner to determine the vertical "
+ "extents of a cluster spanner at this X position.",
+ "positions");