source file of the GNU LilyPond music typesetter
- (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
-
#ifndef COLLISION_HH
#define COLLISION_HH
+#include "std-vector.hh"
+#include "grob-interface.hh"
#include "lily-proto.hh"
-#include "lily-guile.hh"
-#include "parray.hh"
+
/**
- Resolve conflicts between various Note_columns (chords).
-
- TODO
+ Resolve conflicts between various Note_columns (chords).
- * multistaff support (see Chlapik: equal noteheads should be on the
- same hpos.)
+ TODO
- * Make interface of this, similar to align-interface.
-
-*/
+ * multistaff support (see Chlapik: equal noteheads should be on the
+ same hpos.)
+
+ * Make interface of this, similar to align-interface.
+ */
class Note_collision_interface
{
public:
- static SCM automatic_shift (Grob*, Drul_array< Link_array <Grob> >);
- static SCM forced_shift (Grob*);
-
- static Drul_array< Link_array <Grob> > get_clash_groups (Grob *me);
- DECLARE_SCHEME_CALLBACK (force_shift_callback, (SCM element, SCM axis));
- static void do_shifts (Grob*);
- static void add_column (Grob*me,Grob*ncol);
- static bool has_interface(Grob*);
+ static SCM automatic_shift (Grob *, Drul_array<vector<Grob*> >);
+ static SCM forced_shift (Grob *);
+
+ static Drul_array<vector<Grob*> > get_clash_groups (Grob *me);
+ DECLARE_SCHEME_CALLBACK (calc_positioning_done, (SCM smob));
+ static void add_column (Grob *me, Grob *ncol);
+ DECLARE_GROB_INTERFACE();
};
#endif // COLLISION_HH