]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/collision-grav.cc
release: 0.1.13
[lilypond.git] / lily / collision-grav.cc
index 2a4903d10518cc72127d769d39c03e3a8ce5bd26..f1b71123904818c1b4d6cde9bd171bccdd7f5ac4 100644 (file)
 #include "collision.hh"
 
 void
-Collision_engraver::acknowledge_element(Score_elem_info i)
+Collision_engraver::acknowledge_element (Score_elem_info i)
 {
-    if (!(i.elem_l_->name() == Note_column::static_name()))
-       return;
-
-    if (!col_p_)
-       col_p_ = new Collision;
-    
-    col_p_->add((Note_column*)i.elem_l_->item());
+  if (i.elem_l_->is_type_b (Note_column::static_name ()))
+    {
+      Note_column * c = (Note_column*) i.elem_l_->item ();
+      if (c->rest_b ())
+       return ;
+      if (!col_p_) 
+       {
+         col_p_ = new Collision;
+         announce_element (Score_elem_info (col_p_,0));
+       }
+      col_p_->add (c);
+    }
 }
-
 void
 Collision_engraver::do_pre_move_processing()
 {
-    if (col_p_) {
-       typeset_element(col_p_);
-       col_p_ =0;
+  if (col_p_) 
+    {
+      typeset_element (col_p_);
+      col_p_ =0;
     }
 }
 Collision_engraver::Collision_engraver()
 {
-    col_p_ =0;
+  col_p_ =0;
 }
 
 
 IMPLEMENT_IS_TYPE_B1(Collision_engraver,Engraver);
-ADD_THIS_ENGRAVER(Collision_engraver);
+ADD_THIS_TRANSLATOR(Collision_engraver);