2 elem-group.cc -- implement Element_group
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "elem-group.hh"
10 #include "interval.hh"
15 Element_group::do_height()const
18 for (int i=0; i < elem_l_arr_.size(); i++)
19 r.unite(elem_l_arr_[i]->height());
24 Element_group::do_width()const
27 for (int i=0; i < elem_l_arr_.size(); i++)
28 if (elem_l_arr_[i]->item()) // makes no at preprocessing for spanners.
29 r.unite(elem_l_arr_[i]->width());
34 Element_group::add_element(Score_elem*i_l)
36 i_l->group_element_i_ ++;
38 assert(! elem_l_arr_.find_l(i_l));
39 elem_l_arr_.push(i_l);
44 Element_group::translate(Offset o)
46 for (int i=0; i < elem_l_arr_.size(); i++)
47 elem_l_arr_[i]->translate(o);
50 IMPLEMENT_STATIC_NAME(Element_group);
53 Element_group::do_print() const
56 for (int i=0; i < elem_l_arr_.size(); i++)
57 mtor << elem_l_arr_[i]->name() << ' ';
62 Element_group::do_substitute_dependency(Score_elem* old, Score_elem *new_l)
66 while ((i=elem_l_arr_.find_i(old))>=0) {
68 old->group_element_i_--;
70 new_l->group_element_i_ ++;
71 elem_l_arr_[i] = new_l;
80 Element_group::TeX_string()const
85 Element_group::Element_group(Element_group const&s)
86 :elem_l_arr_(s.elem_l_arr_)
88 for (int i=0; i < elem_l_arr_.size(); i++)
89 elem_l_arr_[i]->group_element_i_ ++;
92 Element_group::Element_group()