]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/rest-collision.hh
release: 1.3.92
[lilypond.git] / lily / include / rest-collision.hh
index 84fe927e5bec6d2c9c92bff11d3265c0e846dc84..c2ae9cd1fd1e4c772ea60cb438cc108fba22a15c 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 
 #define REST_COLLISION_HH
 
 #include "lily-proto.hh"
-#include "item.hh"
+#include "lily-guile.hh"
 
-class Rest_collision : public Item {
-    Link_array<Rest_column> rest_l_arr_;
-    Link_array<Note_column> ncol_l_arr_;
+
+
+/*
+  Move rests in note-columns so that they do not collide.
+  
+  properties:
+
+  read-only
+
+  maximum-rest-count -- kill off rests so we don't more than this
+    number left.
+
+  minimum-distance -- minimum distance between notes and rests.
+
+  read/write
+  
+  elements -- list of elts (both rests and notes) participating in the
+    collision.
+
+
+  sets in elements:
+
+    rest-collision -- pointer to self.
+
+    
+  
+    
+*/
+
+class Rest_collision           // interface
+{
 public:
-    void add (Note_column*);
-    void add (Rest_column*);
-    DECLARE_MY_RUNTIME_TYPEINFO;
-    Rest_collision();
-protected:
-    virtual void do_post_processing();
-    virtual void do_pre_processing();
-    virtual void do_print() const;
-    virtual void do_substitute_dependency (Score_elem*,Score_elem*);
+  static void add_column (Score_element*me,Score_element*);
+  static void set_interface (Score_element*me);
+  static bool has_interface (Score_element*);
+  static Real force_shift_callback (Score_element *, Axis);
+  static SCM do_shift (Score_element*,SCM);
 };
 #endif // REST_COLLISION_HH