2 paper-def.hh -- declare Paper_def
4 source file of the GNU LilyPond music typesetter
6 (c) 1996, 1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
12 #include "lily-proto.hh"
13 #include "lily-guile.hh"
18 #include "interval.hh"
19 #include "music-output-def.hh"
23 Symbols, dimensions and constants pertaining to visual output.
25 This struct takes care of all kinds of symbols, dimensions and
26 constants. Most of them are related to the point-size of the fonts,
27 so therefore, the lookup table for symbols is also in here.
31 add support for multiple fontsizes
33 remove all utility funcs
36 add support for other len->wid conversions.
39 Interesting variables:
41 /// The distance between lines
45 class Paper_def : public Music_output_def
47 Hash_table<int, Lookup *> *lookup_p_tab_p_;
48 static int default_count_i_;
51 VIRTUAL_COPY_CONS(Music_output_def);
54 virtual ~Paper_def ();
56 Array<Interval> shape_int_a_;
60 Real get_realvar (SCM symbol) const;
61 Real get_var (String id) const;
66 void set_lookup (int, Lookup*);
68 Paper_def (Paper_def const&);
69 /** The distance between beams of multiplicity_i
72 Real interbeam_f (int multiplicity_i) const;
74 Interval line_dimensions_int (int) const;
78 Lookup const * lookup_l (int sz) const; // TODO naming
80 /** convert a duration to an idealspacing
81 influence using the geometric_ and paratime_signatures.
83 Real length_mom_to_dist (Moment, Real) const;
85 Real arithmetic_constant (Moment minimal_mom) const;
86 Real arithmetic_spacing (Moment mom,Real constant) const;
88 virtual int get_next_default_count () const;
89 static void reset_default_count();
91 void output_settings (Paper_outputter*) const;
93 Paper_stream* paper_stream_p () const;
94 String base_output_str () const;
97 friend int yyparse (void*);
100 #endif // Paper_def_HH