Code

- try to use more forward declarations for less dependencies on display/curve.h
[inkscape.git] / src / splivarot.h
1 #ifndef __SP_LIVAROT_H__
2 #define __SP_LIVAROT_H__
4 /*
5  * boolops and outlines
6  *
7  * public domain
8  */
10 #include "livarot/Path.h"
12 // boolean operations
13 // work on the current selection
14 // selection has 2 contain exactly 2 items
15 void sp_selected_path_union ();
16 void sp_selected_path_union_skip_undo ();
17 void sp_selected_path_intersect ();
18 void sp_selected_path_diff ();
19 void sp_selected_path_diff_skip_undo ();
20 void sp_selected_path_symdiff ();
21 void sp_selected_path_cut ();
22 void sp_selected_path_slice ();
24 // offset/inset of a curve
25 // takes the fill-rule in consideration
26 // offset amount is the stroke-width of the curve
27 void sp_selected_path_offset ();
28 void sp_selected_path_offset_screen (double pixels);
29 void sp_selected_path_inset ();
30 void sp_selected_path_inset_screen (double pixels);
31 void sp_selected_path_create_offset ();
32 void sp_selected_path_create_inset ();
33 void sp_selected_path_create_updating_offset ();
34 void sp_selected_path_create_updating_inset ();
36 void sp_selected_path_create_offset_object_zero ();
37 void sp_selected_path_create_updating_offset_object_zero ();
39 // outline of a curve
40 // uses the stroke-width
41 void sp_selected_path_outline ();
43 // simplifies a path (removes small segments and the like)
44 void sp_selected_path_simplify ();
46 Path *Path_for_item(SPItem *item, bool doTransformation, bool transformFull = true);
47 NArtBpath *bpath_for_curve(SPItem *item, SPCurve *curve, bool doTransformation, bool transformFull);
48 SPCurve *curve_for_item(SPItem *item);
49 NR::Maybe<Path::cut_position> get_nearest_position_on_Path(Path *path, NR::Point p, unsigned seg = 0);
50 NR::Point get_point_on_Path(Path *path, int piece, double t);
51 Path *bpath_to_Path(NArtBpath const *bpath);
53 #endif
55 /*
56   Local Variables:
57   mode:c++
58   c-file-style:"stroustrup"
59   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
60   indent-tabs-mode:nil
61   fill-column:99
62   End:
63 */
64 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :