2 axis-group.cc -- implement Axis_group_administration
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
9 #include "axis-group.hh"
10 #include "score-elem.hh"
13 /** don't copy anything: an element can only be in one
14 Axis_group_element at one time. */
15 Axis_group_administration::Axis_group_administration(
16 Axis_group_administration const&)
21 Axis_group_administration::contains_b(Score_elem const *e)const
23 return elem_l_arr_.find_l(e);
27 Axis_group_administration::extent(Axis axis)const
30 for (int i=0; i < elem_l_arr_.size(); i++)
31 r.unite(elem_l_arr_[i]->extent(axis));
36 Axis_group_administration::add_element(Score_elem*e,
37 Axis_group_element*g, Axis a1, Axis a2)
39 assert( ! e->axis_group_l_a_[a1] && !e->axis_group_l_a_[a2] );
40 e->axis_group_l_a_[a1] = g;
41 e->axis_group_l_a_[a2] = g;
42 elem_l_arr_.push ( e);
48 Axis_group_administration::remove_element(Score_elem*e, Axis a1, Axis a2)
50 assert( contains_b( e));
51 elem_l_arr_.unordered_substitute(e,0);
53 e->axis_group_l_a_[a1] = 0;
54 e->axis_group_l_a_[a2] = 0;
58 Axis_group_administration::remove_all(Axis a1, Axis a2)
60 for (int i=0; i < elem_l_arr_.size(); i++) {
61 Score_elem*e=elem_l_arr_[i];
62 e->axis_group_l_a_[a1] = 0;
63 e->axis_group_l_a_[a2] = 0;
70 Axis_group_administration::print() const
73 for (int i=0; i < elem_l_arr_.size(); i++)
74 mtor << elem_l_arr_[i]->name() << ' ';