source file of the GNU LilyPond music typesetter
- (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2004--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#ifndef SLUR_SCORING_HH
#include "box.hh"
#include "lily-proto.hh"
-#include "parray.hh"
+#include "std-vector.hh"
#include "lily-guile.hh"
struct Slur_score_parameters
Real non_horizontal_penalty_;
Real max_slope_;
Real max_slope_factor_;
- Real extra_object_collision_;
+ Real extra_object_collision_penalty_;
Real accidental_collision_;
Real free_slur_distance_;
Real free_head_distance_;
Box extents_;
Real penalty_;
Grob *grob_;
+ SCM type_;
+
+ Extra_collision_info (Grob *g, Real idx, Interval x, Interval y, Real p);
+ Extra_collision_info ();
- Extra_collision_info (Grob *g, Real idx, Interval x, Interval y, Real p)
- {
- idx_ = idx;
- extents_[X_AXIS] = x;
- extents_[Y_AXIS] = y;
- penalty_ = p;
- grob_ = g;
- }
- Extra_collision_info ()
- {
- idx_ = 0.0;
- penalty_ = 0.;
- grob_ = 0;
- }
};
struct Encompass_info
Grob *slur_head_;
Grob *staff_;
Grob *stem_;
- Interval slur_head_extent_;
+ Interval slur_head_x_extent_;
Real staff_space_;
Bound_info ()
bool has_same_beam_;
Real musical_dy_;
- Link_array<Grob> columns_;
- Array<Encompass_info> encompass_infos_;
- Array<Extra_collision_info> extra_encompass_infos_;
+ Link_array__Grob_ columns_;
+ std::vector<Encompass_info> encompass_infos_;
+ std::vector<Extra_collision_info> extra_encompass_infos_;
Direction dir_;
Slur_score_parameters parameters_;
Drul_array<Bound_info> extremes_;
Drul_array<Offset> base_attachments_;
- Link_array<Slur_configuration> configurations_;
+ Link_array__Slur_configuration_ configurations_;
Real staff_space_;
Real thickness_;
void fill (Grob *);
void set_next_direction ();
+ std::vector<Offset> generate_avoid_offsets () const;
Drul_array<Bound_info> get_bound_info () const;
void generate_curves () const;
- Link_array<Slur_configuration> enumerate_attachments (Drul_array<Real> end_ys) const;
+ Link_array__Slur_configuration_ enumerate_attachments (Drul_array<Real> end_ys) const;
Drul_array<Offset> get_base_attachments () const;
Drul_array<Real> get_y_attachment_range () const;
Encompass_info get_encompass_info (Grob *col) const;
- Array<Extra_collision_info> get_extra_encompass_infos () const;
+ std::vector<Extra_collision_info> get_extra_encompass_infos () const;
Real move_away_from_staffline (Real y, Grob *on_staff) const;
int get_closest_index (SCM inspect_quants) const;
};