2 p-col.cc -- implement Paper_column
4 source file of the GNU LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
14 Paper_column::add_rod (Paper_column * p, Real d)
16 Direction dir = Direction (sign (p->rank_i () - rank_i ()));
17 for (int i=0; i < minimal_dists_arr_drul_[dir].size (); i++)
19 Column_rod &rod = minimal_dists_arr_drul_[dir][i];
20 if (rod.other_l_ == p)
22 rod.distance_f_ = rod.distance_f_ >? d;
31 minimal_dists_arr_drul_[dir].push (cr);
36 Paper_column::rank_i() const
42 Paper_column::set_rank (int i)
46 prebreak_l()->rank_i_ = i;
48 postbreak_l()->rank_i_ = i;
52 Paper_column::do_print() const
55 DOUT << "rank: " << rank_i_ << '\n';
59 prebreak_l()->print();
64 postbreak_l()->print();
68 DOUT <<'\n' << ((break_status_i_ == LEFT) ? "prebreak" : "postbreak");
73 for (int i=0; i < minimal_dists_arr_drul_[LEFT].size (); i++)
75 minimal_dists_arr_drul_[LEFT][i].print ();
78 for (int i=0; i < minimal_dists_arr_drul_[RIGHT].size (); i++)
80 minimal_dists_arr_drul_[RIGHT][i].print ();
86 Paper_column::compare (Paper_column const &c1, Paper_column const &c2)
88 return c1.rank_i() - c2.rank_i ();
92 Paper_column::prebreak_l() const
94 return (Paper_column*)broken_to_drul_[LEFT];
98 Paper_column::postbreak_l() const
100 return(Paper_column*) broken_to_drul_[RIGHT];
103 Paper_column::breakpoint_b() const
108 Paper_column::Paper_column()
111 error_mark_b_ = false;
117 Paper_column::line_l() const
123 Paper_column::used_b() const
128 IMPLEMENT_IS_TYPE_B1(Paper_column, Horizontal_group_item);
131 Paper_column::column_l () const
133 return (Paper_column*)this;
138 Paper_column::preprocess ()
140 minimal_dists_arr_drul_[LEFT].sort (Column_rod::compare);
141 minimal_dists_arr_drul_[RIGHT].sort (Column_rod::compare);