]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.14
authorfred <fred>
Sun, 24 Mar 2002 19:56:21 +0000 (19:56 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:56:21 +0000 (19:56 +0000)
lily/axis-group-administration.cc [new file with mode: 0644]
lily/elem-group.cc
lily/offset.cc [new file with mode: 0644]

diff --git a/lily/axis-group-administration.cc b/lily/axis-group-administration.cc
new file mode 100644 (file)
index 0000000..5537d74
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+  axis-group.cc -- implement Axis_group_administration
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+#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
+}
index 8c4c573b26e478654de6b38fca1bb58536c05eaa..4e215381cf37f1e6104012a34997d5f197fe33eb 100644 (file)
 #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<Score_elem>
-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 (file)
index 0000000..105e7fb
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+  offset.cc -- implement Offset
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "string.hh"
+#include "offset.hh"
+
+String
+Offset::str () const
+{
+  String s;
+  s = String("(") + coordinate_a_[X_AXIS] + ", " + coordinate_a_[Y_AXIS] + ")";
+  return s;
+}