implement converting paths...
Stefan Schuermans authored 11 years ago
|
1) /* drawing (DXF) to G-code (NGC) converter
2) * Copyright 2013 Stefan Schuermans <stefan@schuermans.info>
3) * Copyleft: CC-BY-SA http://creativecommons.org/licenses/by-sa/3.0/
4) */
5)
6) #ifndef POLYGONS_H
7) #define POLYGONS_H
8)
9) #include <boost/shared_ptr.hpp>
10) #include <vector>
11)
|
implement converting polygo...
Stefan Schuermans authored 11 years ago
|
12) #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
implement converting paths...
Stefan Schuermans authored 11 years ago
|
13) #include <CGAL/Polygon_2.h>
14) #include <CGAL/Polygon_with_holes_2.h>
15) #include <CGAL/create_offset_polygons_2.h>
16)
17) #include "layer.h"
18)
19) /// a set of polygons
20) class Polygons {
21) public:
|
implement converting polygo...
Stefan Schuermans authored 11 years ago
|
22) typedef CGAL::Exact_predicates_inexact_constructions_kernel CgKern;
23)
24) typedef CgKern::Point_2 CgPoint;
25) typedef CGAL::Polygon_2<CgKern> CgPoly;
26) typedef CGAL::Polygon_with_holes_2<CgKern> CgPolyHoles;
27) typedef CGAL::Straight_skeleton_2<CgKern> CgSskel;
28) typedef std::vector<CgPoly> CgPolyVec;
29) typedef std::vector<CgPolyHoles> CgPolyHolesVec;
30) typedef boost::shared_ptr<CgPoly> CgPolyPtr;
31) typedef boost::shared_ptr<CgPolyHoles> CgPolyHolesPtr;
32) typedef boost::shared_ptr<CgSskel> CgSskelPtr;
33) typedef std::vector<CgPolyPtr> CgPolyPtrVec;
34) typedef std::vector<CgPolyHolesPtr> CgPolyHolesPtrVec;
|
implement converting paths...
Stefan Schuermans authored 11 years ago
|
35)
36) /**
37) * @brief clear all polygons
38) */
39) void clear();
40)
41) /**
42) * @brief add polygons from layer
43) * @param[in] layer layer to obtain the polygons from
44) * @param[in] eqDist maximum distance of two points to be considered equal
45) * @return if the layer could be converted to polygons and imported
46) */
47) bool addLayer(const Layer &layer, double eqDist);
48)
49) /**
50) * @brief load polygons from layer
51) * @param[in] layer layer to obtain the polygons from
52) * @param[in] eqDist maximum distance of two points to be considered equal
53) * @return if the layer could be converted to polygons and imported
54) */
55) bool loadLayer(const Layer &layer, double eqDist);
56)
|
implement converting polygo...
Stefan Schuermans authored 11 years ago
|
57) /**
58) * @brief add all polygons with holes as multiple paths to a layer
59) * @param[in,out] layer layer to add paths to
60) */
61) void addToLayer(Layer &layer) const;
62)
63) /**
64) * @brief write all polygons with holes as multiple paths to a layer
65) * @param[in,out] layer layer to write paths to
66) */
67) void writeToLayer(Layer &layer) const;
68)
69) protected:
70) /**
71) * @brief add a polygon as path to a layer
72) * @param[in] poly polygon to add to layer
73) * @param[in,out] layer layer to add path to
74) */
75) static void PolyToLayer(const CgPoly &poly, Layer &layer);
76)
77) /**
78) * @brief add a polygon with holes as multiple paths to a layer
79) * @param[in] poly polygon with holes to add to layer
80) * @param[in,out] layer layer to add paths to
81) */
82) static void PolyHolesToLayer(const CgPolyHoles &poly, Layer &layer);
83)
84) public:
|