summaryrefslogtreecommitdiffstats
path: root/src/live_effects/pathoutlineprovider.h
blob: 0ee0f261e180d9cfa8aa4313f233169321e1f123 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef _SEEN_PATH_OUTLINE_H
#define _SEEN_PATH_OUTLINE_H

#include <livarot/Path.h>
#include <livarot/LivarotDefs.h>

enum LineJoinType {
    LINEJOIN_STRAIGHT,
    LINEJOIN_ROUND,
    LINEJOIN_POINTY,
    LINEJOIN_REFLECTED,
    LINEJOIN_EXTRAPOLATED
};

namespace Geom
{
	Geom::CubicBezier sbasis_to_cubicbezier(Geom::D2<Geom::SBasis> const & sbasis_in);
	std::vector<Geom::Path> split_at_cusps(const Geom::Path& in);
}

namespace Outline 
{
    unsigned bezierOrder (const Geom::Curve* curve_in);
    std::vector<Geom::Path> PathVectorOutline(std::vector<Geom::Path> const & path_in, double line_width, ButtType linecap_type,
                                              LineJoinType linejoin_type, double miter_limit);

    /*Geom::PathVector outlinePath(const Geom::PathVector& path_in, double line_width, LineJoinType join,
                                 ButtType butt, double miter_lim, bool extrapolate = false);*/
    Geom::Path PathOutsideOutline(Geom::Path const & path_in, double line_width, LineJoinType linejoin_type, double miter_limit);
}

#endif // _SEEN_PATH_OUTLINE_H