source file of the GNU LilyPond music typesetter
- (c) 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#ifndef MOLECULE_HH
#define MOLECULE_HH
Empty molecules have empty dimensions. If add_at_edge is used to
init the molecule, we assume that
- DIMENSIONS = (Interval(0,0),Interval(0,0)
+ DIMENSIONS = (Interval (0,0),Interval (0,0)
*/
class Molecule {
Box dim_;
SCM expr_;
- DECLARE_SIMPLE_SMOBS(Molecule,);
+ DECLARE_SIMPLE_SMOBS (Molecule,);
public:
Molecule (Box, SCM s);
- Molecule();
+ Molecule ();
SCM smobbed_copy () const;
SCM get_expr () const;
/**
- Set dimensions to empty, or to (Interval(0,0),Interval(0,0) */
+ 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_molecule (Molecule const &m);
/**
align D direction in axis A.
- If D == CENTER, then move the dimension(A).center() to (0,0)
+ If D == CENTER, then move the dimension (A).center () to (0,0)
- Else, move so dimension(A)[D] == 0.0
+ Else, move so dimension (A)[D] == 0.0
*/
void align_to (Axis a, Direction d);
codify THIS into a Scheme expression.
*/
SCM create_scheme () const;
- bool empty_b() const;
+ bool empty_b () const;
+
+
+ static SCM ly_get_molecule_extent (SCM mol, SCM axis);
+ static SCM ly_set_molecule_extent_x (SCM,SCM,SCM);
+ static SCM ly_molecule_combined_at_edge (SCM,SCM,SCM,SCM,SCM);
};
-Molecule *unsmob_molecule (SCM);
+DECLARE_UNSMOB(Molecule,molecule);
SCM fontify_atom (Font_metric*, SCM atom);
Molecule create_molecule (SCM brew_molecule);