source file of the GNU LilyPond music typesetter
- (c) 1996, 1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1996, 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
keyplacement by Mats Bengtsson
*/
Key_item::Key_item ()
{
+ multi_octave_b_ = false;
breakable_b_ =true;
default_b_ = false;
set_c_position (0);
}
-void
-Key_item::set (bool multi_octave_b,
- Array<Musical_pitch> const &idx_arr,
- Array<Musical_pitch> const &old_idx_arr)
-{
- multi_octave_b_ =multi_octave_b;
-
- for (int i = 0; i < idx_arr.size(); i++)
- {
- Musical_pitch m_l =idx_arr[i];
- if (multi_octave_b_)
- add (m_l);
- else
- add (m_l.notename_i_, m_l.accidental_i_);
- }
-
- for (int i = 0 ; i< old_idx_arr.size(); i++)
- {
- Musical_pitch m_l =old_idx_arr[i];
- if (multi_octave_b_)
- add_old (m_l);
- else
- add_old (m_l.notename_i_, m_l.accidental_i_);
- }
-}
-
void
Key_item::set_c_position (int c0)
{
acc_arr_.push (a);
}
-void
-Key_item::add (const Musical_pitch& pitch_r)
-{
- pitch_arr_.push (pitch_r.steps());
- acc_arr_.push (pitch_r.accidental_i_);
-}
-
void
Key_item::add_old (int p, int a)
{
old_acc_arr_.push (a);
}
-void
-Key_item::add_old (const Musical_pitch& pitch_r)
-{
- old_pitch_arr_.push (pitch_r.steps());
- old_acc_arr_.push (pitch_r.accidental_i_);
-}
int
Key_item::calculate_position(int p, int a) const
}
/*
- TODO space the `natural' signs wider
+ TODO
+ - space the `natural' signs wider
+ - dehair this
*/
Molecule*
-Key_item::brew_molecule_p() const
+Key_item::do_brew_molecule_p() const
{
Molecule*output = new Molecule;
Real inter = paper()->internote_f ();
|| (old_pitch_arr_[i] == pitch_arr_[j]
&& old_acc_arr_[i] != acc_arr_[j]))
{
- Atom a =lookup_l ()->accidental (0);
- a.translate_axis (calculate_position(old_pitch_arr_[i], old_acc_arr_[i]) * inter, Y_AXIS);
- Molecule m (a);
- output->add_at_edge (X_AXIS, RIGHT, m);
+ Molecule m =lookup_l ()->accidental (0,false);
+ m.translate_axis (calculate_position(old_pitch_arr_[i], old_acc_arr_[i]) * inter, Y_AXIS);
+ output->add_at_edge (X_AXIS, RIGHT, m,0);
}
}
Interval x(0, inter);
Interval y(0,0);
- output->add_at_edge (X_AXIS, RIGHT, lookup_l()->fill (Box(x,y)));
+ output->add_at_edge (X_AXIS, RIGHT, lookup_l()->fill (Box(x,y)),0);
}
for (int i =0; i < pitch_arr_.size(); i++)
{
- Atom a =lookup_l ()->accidental (acc_arr_[i]);
- a.translate_axis (calculate_position(pitch_arr_[i], acc_arr_[i]) * inter, Y_AXIS);
- Molecule m (a);
- output->add_at_edge (X_AXIS, RIGHT, m);
+ Molecule m =lookup_l ()->accidental (acc_arr_[i],false);
+ m.translate_axis (calculate_position(pitch_arr_[i], acc_arr_[i]) * inter, Y_AXIS);
+ output->add_at_edge (X_AXIS, RIGHT, m, 0);
}
if (pitch_arr_.size())
{
Interval (0, paper()->note_width ()),
Interval (0,0))));
- output->add_at_edge (X_AXIS, RIGHT, m);
+ output->add_at_edge (X_AXIS, RIGHT, m,0 );
}
return output;
}
-IMPLEMENT_IS_TYPE_B1(Key_item,Item);
+
void
Key_item::do_pre_processing()