#include "dimen.hh"
#include "misc.hh"
#include "debug.hh"
-#include "symbol.hh"
+#include "atom.hh"
#include "stem.hh"
#include "paper-def.hh"
#include "lookup.hh"
Stem_info::Stem_info (Stem const *s)
{
- x = s->hpos_f();
+ x = s->hpos_f ();
dir_ = s->dir_;
- beams_i_ = intlog2(s->flag_i_) - 2;
+ beams_i_ = 0 >? (abs (s->flag_i_) - 2);
/*
[todo]
*/
- Real notehead_y = s->paper()->interline_f ();
- // huh? why do i need the / 2
- // Real interbeam_f = s->paper()->interbeam_f ();
- Real interbeam_f = s->paper()->interbeam_f () / 2;
+ Real internote_f = s->paper ()->internote_f ();
+ Real interline_f = 2 * internote_f;
+ Real notehead_y = interline_f;
+ // huh? why do i seem to need the / 2 ?
+ Real interbeam_f = s->paper ()->interbeam_f ();
+ // Real interbeam_f = s->paper ()->interbeam_f () / 2;
+ // perhaps bo dim (y) = internote?
- /* well eh, huh?
- idealy_f_ = dir_ * s->stem_start_f() + beams_i_ * interbeam_f;
- if (beams_i_ < 3)
+ idealy_f_ = dir_ * s->stem_begin_f () + beams_i_ * interbeam_f;
+ if (beams_i_ < 3)
idealy_f_ += 2 * interline_f;
- else
+ else
idealy_f_ += 1.5 * interline_f;
- */
-
- idealy_f_ = dir_ * s->stem_end_f();
-
- miny_f_ = dir_ * s->stem_start_f() + notehead_y + beams_i_ * interbeam_f;
+ idealy_f_ /= internote_f;
+ miny_f_ = dir_ * s->stem_begin_f () + 2 + beams_i_ * interbeam_f / internote_f;
idealy_f_ = miny_f_ >? idealy_f_;
// assert (miny_f_ <= idealy_f_);