source file of the GNU LilyPond music typesetter
- (c) 1997--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#ifndef STENCIL_HH
#define STENCIL_HH
#include <cstdlib> // size_t
+using namespace std;
#include "lily-proto.hh"
#include "box.hh"
*/
class Stencil
{
- friend SCM ly_stencil_set_extent_x (SCM, SCM, SCM);
-
/*
This provides the reference point of the symbol, for example with
characters, it is on the base line of the character. Usually,
Box dim_;
SCM expr_;
- DECLARE_SIMPLE_SMOBS (Stencil,);
+ DECLARE_SIMPLE_SMOBS (Stencil);
public:
Stencil (Box, SCM s);
Stencil ();
Real minimum);
void add_stencil (Stencil const &m);
void translate (Offset);
+ void rotate (Real, Offset);
void align_to (Axis a, Real x);
void translate_axis (Real, Axis);
Interval extent (Axis) const;
Box extent_box () const;
bool is_empty () const;
-
- static SCM ly_get_stencil_extent (SCM mol, SCM axis);
- static SCM ly_set_stencil_extent_x (SCM, SCM, SCM);
- static SCM ly_stencil_combined_at_edge (SCM, SCM, SCM, SCM, SCM);
+ Stencil in_color (Real r, Real g, Real b) const;
};
DECLARE_UNSMOB (Stencil, stencil);
-SCM fontify_atom (Font_metric const *, SCM atom);
void interpret_stencil_expression (SCM expr,
void (*func) (void *, SCM),
void *func_arg,
Offset o);
-
-Stencil create_stencil (SCM print);
SCM find_expression_fonts (SCM expr);
+void register_stencil_head (SCM symbol);
+bool is_stencil_head (SCM symbol);
+SCM all_stencil_heads ();
+
+Stencil points_to_line_stencil (vector<Offset> points);
+
#endif /* STENCIL_HH */