source file of the GNU LilyPond music typesetter
- (c) 1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#ifndef MOLECULE_HH
#define MOLECULE_HH
init the molecule, we assume that
DIMENSIONS = (Interval (0,0),Interval (0,0)
*/
-class Molecule {
+class Molecule
+{
+ friend SCM ly_molecule_set_extent_x (SCM, SCM, SCM);
+
Box dim_;
SCM expr_;
-
DECLARE_SIMPLE_SMOBS (Molecule,);
public:
/**
Set dimensions to empty, or to (Interval (0,0),Interval (0,0) */
void set_empty (bool);
- void add_at_edge (Axis a, Direction d, const Molecule &m, Real padding);
+ void add_at_edge (Axis a, Direction d, const Molecule &m, Real padding,
+ Real minimum);
void add_molecule (Molecule const &m);
void translate (Offset);
-
- /**
- align D direction in axis A.
-
- If D == CENTER, then move the dimension (A).center () to (0,0)
-
- Else, move so dimension (A)[D] == 0.0
-
- */
- void align_to (Axis a, Direction d);
+ void align_to (Axis a, Real x);
void translate_axis (Real,Axis);
Interval extent (Axis) const;
codify THIS into a Scheme expression.
*/
SCM create_scheme () const;
- bool empty_b () const;
+ bool is_empty () const;
static SCM ly_get_molecule_extent (SCM mol, SCM axis);
DECLARE_UNSMOB(Molecule,molecule);
-SCM fontify_atom (Font_metric*, SCM atom);
+SCM fontify_atom (Font_metric const*, SCM atom);
Molecule create_molecule (SCM brew_molecule);