X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fpaper-def.hh;h=4970d49905f1182ee6fd33ee4c0c19f8a113365f;hb=28d97df78de5e56962730b42119c2d9b73401fa7;hp=9eb94245d5d9f915bdbeef5ce278ddb210ce3465;hpb=7c9b553acad88d5cd62461989f0f20652dc04dda;p=lilypond.git diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh index 9eb94245d5..4970d49905 100644 --- a/lily/include/paper-def.hh +++ b/lily/include/paper-def.hh @@ -1,76 +1,96 @@ /* -paper-def.hh -- declare Paper_def + paper-def.hh -- declare Paper_def - source file of the LilyPond music typesetter + source file of the GNU LilyPond music typesetter - (c) 1996,1997 Han-Wen Nienhuys + (c) 1996--2000 Han-Wen Nienhuys */ #ifndef PAPER_DEF_HH #define PAPER_DEF_HH -#include "proto.hh" + +#include + +#include "lily-proto.hh" +#include "lily-guile.hh" #include "real.hh" -#include "string.hh" -#include "moment.hh" +#include "moment.hh" +#include "array.hh" +#include "interval.hh" +#include "music-output-def.hh" /** - symbols, dimensions and constants + Symbols, dimensions and constants pertaining to visual output. This struct takes care of all kinds of symbols, dimensions and - constants. Most of them are related to the point-size of the fonts, - so therefore, the lookup table for symbols is also in here. + constants. Most of them are related to the point-size of the fonts, + so therefore, the lookup table for symbols is also in here. + + TODO: + + add support for multiple fontsizes + + remove all utility funcs + - TODO: + add support for other len->wid conversions. + + + Interesting variables: + + /// The distance between lines + interline + +*/ +class Paper_def : public Music_output_def +{ + map *lookup_p_tab_p_; + static int default_count_i_; + +protected: + VIRTUAL_COPY_CONS(Music_output_def); - add support for multiple fontsizes - split into "Input_paper_def" and Paper_def - add support for other len->wid conversions. - */ -class Paper_def { - Lookup *lookup_p_; public: - String outfile; - - Real linewidth; - - /// how much space does a whole note take (ideally?) - Real whole_width; - - /// ideal = geometric_ ^ log2(duration) - Real geometric_; - - /* *************** */ - void reinit(); - Paper_def(Lookup*); - void set(Lookup*); - ~Paper_def(); - Paper_def(Paper_def const&); - /** - The distance between lines - */ - Real interline()const; - /// half the distance between lines - Real internote()const; - - /// thickness of the standard line - Real rule_thickness()const; - - /// height of the staff - Real standard_height()const; - - /// width of a quaver ball - Real note_width() const; - void print() const; - Lookup const * lookup_l(); // TODO naming - - /** convert a duration to an idealspacing - influence using the geometric_ and whole_width parameters. - */ - Real duration_to_dist(Moment); + virtual ~Paper_def (); + + Array shape_int_a_; + /* + JUNKME + */ + Real get_realvar (SCM symbol) const; + Real get_var (String id) const; + + + void reinit (); + Paper_def (); + void set_lookup (int, Lookup*); + + Paper_def (Paper_def const&); + /** The distance between beams of multiplicity_i + JUNKME + */ + Real interbeam_f (int multiplicity_i) const; + + Interval line_dimensions_int (int) const; + + void print () const; + + Lookup const * lookup_l (int sz) const; // TODO naming + + + virtual int get_next_default_count () const; + static void reset_default_count(); + + void output_settings (Paper_outputter*) const; + + Paper_stream* paper_stream_p () const; + String base_output_str () const; + + // urg + friend int yyparse (void*); }; #endif // Paper_def_HH -