]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/dimensions.hh
Issue 4086/5: Introduce callable Smob infrastructure
[lilypond.git] / lily / include / dimensions.hh
1 #ifndef DIMENSIONS_HH
2 #define DIMENSIONS_HH
3
4 #include "real.hh"
5 #include "std-string.hh"
6
7 const Real INCH_TO_PT = 72.270;
8 const Real CM_TO_PT = (INCH_TO_PT / 2.54);
9 const Real MM_TO_PT = (CM_TO_PT / 10);
10 const Real PT_TO_PT = 1.0;
11 const Real INCH_TO_BP = 72;
12 const Real BIGPOINT_TO_POINT = (INCH_TO_PT / INCH_TO_BP);
13 const Real CHAR_TO_PT = 1.0;
14 const Real PT_TO_MM = (1.0 / MM_TO_PT);
15
16 #ifdef POINTS
17
18 #define INTERNAL_UNIT "pt"
19
20 #define PT *(PT_TO_PT)
21 #define MM *(MM_TO_PT)
22 #define CM *(CM_TO_PT)
23 #define INCH *(INCH_TO_PT)
24 #define BIGPOINT *(BIGPOINT_TO_POINT)
25 #define CHAR *(CHAR_TO_PT)
26
27 #else // mm
28
29 #define INTERNAL_UNIT "mm"
30
31 #define PT *(PT_TO_PT *PT_TO_MM)
32 #define MM *(MM_TO_PT *PT_TO_MM)
33 #define CM *(CM_TO_PT *PT_TO_MM)
34 #define INCH *(INCH_TO_PT *PT_TO_MM)
35 #define BIGPOINT *(BIGPOINT_TO_POINT *PT_TO_MM)
36 #define CHAR *(CHAR_TO_PT *PT_TO_MM)
37
38 #endif
39
40 string print_dimen (Real);
41 const Real point_constant = 1 PT;
42 const Real inch_constant = 1 INCH;
43 const Real cm_constant = 1 CM;
44 const Real mm_constant = 1 MM;
45 const Real bigpoint_constant = 1 BIGPOINT;
46
47 #endif /* DIMENSIONS_HH */
48