31 lines
970 B
C++
31 lines
970 B
C++
|
#ifndef slic3r_NSVGUtils_hpp_
|
||
|
#define slic3r_NSVGUtils_hpp_
|
||
|
|
||
|
#include "Polygon.hpp"
|
||
|
#include "ExPolygon.hpp"
|
||
|
#include "nanosvg/nanosvg.h" // load SVG file
|
||
|
|
||
|
namespace Slic3r {
|
||
|
|
||
|
// Helper function to work with nano svg
|
||
|
class NSVGUtils
|
||
|
{
|
||
|
public:
|
||
|
NSVGUtils() = delete;
|
||
|
|
||
|
// inspired by nanosvgrast.h function nsvgRasterize->nsvg__flattenShape
|
||
|
static void flatten_cubic_bez(Polygon &polygon,
|
||
|
float tessTol,
|
||
|
Vec2f p1,
|
||
|
Vec2f p2,
|
||
|
Vec2f p3,
|
||
|
Vec2f p4,
|
||
|
int level);
|
||
|
// convert svg image to ExPolygons
|
||
|
static ExPolygons to_ExPolygons(NSVGimage *image,
|
||
|
float tessTol = 10.,
|
||
|
int max_level = 10);
|
||
|
};
|
||
|
} // namespace Slic3r
|
||
|
#endif // slic3r_NSVGUtils_hpp_
|