Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
geom-pathstroke.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2#ifndef INKSCAPE_HELPER_PATH_STROKE_H
3#define INKSCAPE_HELPER_PATH_STROKE_H
4
5/* Authors:
6 * Liam P. White
7 * Tavmjong Bah
8 *
9 * Copyright (C) 2014-2015 Authors
10 *
11 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
12 */
13
14#include <vector>
15#include <functional>
16#include <2geom/path.h>
17#include <2geom/pathvector.h>
18
19#include "livarot/LivarotDefs.h"
20
21namespace Inkscape {
22
33
38 BUTT_PEAK, // This is not a line ending supported by the SVG standard.
39};
40
57 Geom::Path const& input,
58 double width,
59 double miter,
62 double tolerance = -1);
63
77 Geom::Path const& input,
78 double width,
79 double miter,
81 double tolerance = -1);
82
98void outline_join(Geom::Path &res, Geom::Path const& outgoing, Geom::Point in_tang, Geom::Point out_tang, double width, double miter, LineJoinType join);
99
103bool is_path_empty(const Geom::Path &path);
104
111std::vector<Geom::PathVector> split_non_intersecting_paths(Geom::PathVector &&paths, FillRule fill_rule);
112
117do_offset(Geom::PathVector const & path_in
118 , double to_offset
119 , double tolerance
120 , double miter_limit
121 , FillRule fillrule
123 , Geom::Point point // knot on LPE
124 , Geom::PathVector &helper_path
125 , Geom::PathVector &mix_pathv_all);
126
128do_offset(Geom::PathVector const & path_in
129 , double to_offset
130 , double tolerance
131 , double miter_limit
132 , FillRule fillrule
134
135
136} // namespace Inkscape
137
138#endif // INKSCAPE_HELPER_PATH_STROKE_H
139
140/*
141 Local Variables:
142 mode:c++
143 c-file-style:"stroustrup"
144 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
145 indent-tabs-mode:nil
146 fill-column:99
147 End:
148*/
149// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8 :
Path - a sequence of contiguous curves.
TODO: insert short description here.
FillRule
Definition LivarotDefs.h:68
Sequence of subpaths.
Definition pathvector.h:122
Sequence of contiguous curves, aka spline.
Definition path.h:353
Two-dimensional point that doubles as a vector.
Definition point.h:66
vector< vector< Point > > paths
Definition metro.cpp:36
Helper class to stream background task notifications as a series of messages.
Geom::PathVector outline(Geom::Path const &input, double width, double miter, LineJoinType join, LineCapType butt, double tolerance)
Strokes the path given by input.
void outline_join(Geom::Path &res, Geom::Path const &temp, Geom::Point in_tang, Geom::Point out_tang, double width, double miter, Inkscape::LineJoinType join)
Builds a join on the provided path.
static Glib::ustring join(std::vector< Glib::ustring > const &accels, char const separator)
Geom::PathVector do_offset(Geom::PathVector const &path_in, double to_offset, double tolerance, double miter_limit, FillRule fillrule, Inkscape::LineJoinType join, Geom::Point point, Geom::PathVector &helper_path, Geom::PathVector &mix_pathv_all)
Create a user spected offset from a pathvector.
std::vector< Geom::PathVector > split_non_intersecting_paths(Geom::PathVector &&paths, FillRule fill_rule)
Split a pathvector into its connected components when filled using the given fill rule.
Geom::Path half_outline(Geom::Path const &input, double width, double miter, LineJoinType join, double tolerance)
Offset the input path by width.
bool is_path_empty(Geom::Path const &path)
Check for an empty path.
PathVector - a sequence of subpaths.
double width