/*
- slur.hh -- part of GNU LilyPond
+ slur.hh -- declare Slur
- (c) 1996--1999 Han-Wen Nienhuys
+ (c) 1996--2000 Han-Wen Nienhuys
*/
#ifndef SLUR_HH
#define SLUR_HH
-#include "bow.hh"
+#include "spanner.hh"
#include "rod.hh"
/**
A #Bow# which tries to drape itself around the stems too.
*/
-class Slur : public Bow
+class Slur : public Spanner
{
public:
Slur ();
VIRTUAL_COPY_CONS(Score_element);
void add_column (Note_column*);
-
- Link_array<Note_column> encompass_arr_;
+
protected:
+ virtual Molecule do_brew_molecule () const;
virtual Array<Offset> get_encompass_offset_arr () const;
+ Bezier get_curve () const;
+ Drul_array<Real> dy_f_drul_;
+ Drul_array<Real> dx_f_drul_;
- virtual void set_default_dir ();
+ virtual Direction get_default_dir () const;
virtual void do_post_processing ();
virtual void do_add_processing ();
- virtual void do_pre_processing ();
- virtual void do_substitute_dependency (Score_element*, Score_element*);
- virtual Interval do_width () const;
Array<Rod> get_rods () const;
+
+private:
+ void de_uglyfy (class Slur_bezier_bow* bb, Real default_height);
+ void set_extremities ();
+ void set_control_points ();
+ int cross_staff_count () const;
+ Offset encompass_offset (Note_column const* )const;
};
#endif // SLUR_HH