From 32a5c47c70497797712a49eea4c10cdcdf4e15f3 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:56:21 +0000 Subject: [PATCH] lilypond-0.1.14 --- lily/axis-group-administration.cc | 80 +++++++++++++++++++++++++++++++ lily/elem-group.cc | 51 +++----------------- lily/offset.cc | 18 +++++++ 3 files changed, 104 insertions(+), 45 deletions(-) create mode 100644 lily/axis-group-administration.cc create mode 100644 lily/offset.cc diff --git a/lily/axis-group-administration.cc b/lily/axis-group-administration.cc new file mode 100644 index 0000000000..5537d742a8 --- /dev/null +++ b/lily/axis-group-administration.cc @@ -0,0 +1,80 @@ +/* + axis-group.cc -- implement Axis_group_administration + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys +*/ +#include "interval.hh" +#include "axis-group-administration.hh" +#include "graphical-element.hh" +#include "debug.hh" + +/** don't copy anything: an element can only be in one + Axis_group_element at one time. */ +Axis_group_administration::Axis_group_administration (Axis_group_administration const&) +{ +} + +bool +Axis_group_administration::contains_b (Graphical_element const *e) const +{ + return elem_l_arr_.find_l (e); +} + +Interval +Axis_group_administration::extent (Axis axis) const +{ + Interval r; + for (int i=0; i < elem_l_arr_.size(); i++) + r.unite (elem_l_arr_[i]->extent (axis)); + return r; +} + +void +Axis_group_administration::add_element (Graphical_element*e, + Axis_group_element*g, Axis a1, Axis a2) +{ + Axis_group_element *& g1 = e->axis_group_l_a_[a1]; + Axis_group_element *& g2 = e->axis_group_l_a_[a2]; + + assert (!g1 || g1 == g); + assert (!g2 || g2 == g); + g1 = g; + g2 = g; + elem_l_arr_.push (e); +} + + + +void +Axis_group_administration::remove_element (Graphical_element*e, Axis a1, Axis a2) +{ + assert (contains_b (e)); + elem_l_arr_.unordered_substitute (e,0); + + e->axis_group_l_a_[a1] = 0; + e->axis_group_l_a_[a2] = 0; +} + +void +Axis_group_administration::remove_all (Axis a1, Axis a2) +{ + for (int i=0; i < elem_l_arr_.size(); i++) + { + Graphical_element*e=elem_l_arr_[i]; + e->axis_group_l_a_[a1] = 0; + e->axis_group_l_a_[a2] = 0; + } + elem_l_arr_.clear (); +} + + +void +Axis_group_administration::print() const +{ +#ifndef NPRINT + for (int i=0; i < elem_l_arr_.size(); i++) + DOUT << elem_l_arr_[i]->name () << ' '; +#endif +} diff --git a/lily/elem-group.cc b/lily/elem-group.cc index 8c4c573b26..4e215381cf 100644 --- a/lily/elem-group.cc +++ b/lily/elem-group.cc @@ -11,54 +11,15 @@ #include "item.hh" #include "debug.hh" -void -Axis_group_element::do_unlink() -{ - remove_all(); -} - -void -Axis_group_element::do_junk_links() -{ - axis_admin_.elem_l_arr_.set_size (0); -} - - -bool -Axis_group_element::contains_b (Score_elem const*e) const -{ - return axis_admin_.contains_b (e); -} - -Link_array -Axis_group_element::get_extra_dependencies() const -{ - return axis_admin_.elem_l_arr_; -} - -void -Axis_group_element::do_print() const -{ - axis_admin_.print(); -} - - -Axis_group_element::Axis_group_element() -{ - transparent_b_ = true; -} - -// **************** - void -Vertical_group_element::add_element (Score_elem*e) +Vertical_group_element::add_element (Graphical_element*e) { axis_admin_.add_element (e, this, Y_AXIS, Y_AXIS); } void -Vertical_group_element::remove_element (Score_elem*e) +Vertical_group_element::remove_element (Graphical_element*e) { axis_admin_.remove_element (e, Y_AXIS, Y_AXIS); } @@ -84,13 +45,13 @@ Horizontal_group_element::remove_all() } void -Horizontal_group_element::add_element (Score_elem*e) +Horizontal_group_element::add_element (Graphical_element*e) { axis_admin_.add_element (e,this, X_AXIS,X_AXIS); } void -Horizontal_group_element::remove_element (Score_elem*e) +Horizontal_group_element::remove_element (Graphical_element*e) { axis_admin_.remove_element (e,X_AXIS,X_AXIS); } @@ -111,13 +72,13 @@ Horizontal_vertical_group_element::remove_all() axis_admin_.remove_all (X_AXIS,Y_AXIS); } void -Horizontal_vertical_group_element::add_element (Score_elem *e) +Horizontal_vertical_group_element::add_element (Graphical_element *e) { axis_admin_.add_element (e, this, X_AXIS, Y_AXIS); } void -Horizontal_vertical_group_element::remove_element (Score_elem*e) +Horizontal_vertical_group_element::remove_element (Graphical_element*e) { axis_admin_.remove_element (e, X_AXIS, Y_AXIS); } diff --git a/lily/offset.cc b/lily/offset.cc new file mode 100644 index 0000000000..105e7fb385 --- /dev/null +++ b/lily/offset.cc @@ -0,0 +1,18 @@ +/* + offset.cc -- implement Offset + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys +*/ + +#include "string.hh" +#include "offset.hh" + +String +Offset::str () const +{ + String s; + s = String("(") + coordinate_a_[X_AXIS] + ", " + coordinate_a_[Y_AXIS] + ")"; + return s; +} -- 2.39.5