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)
16) #include "layer.h"
17)
18) /// a set of polygons
19) class Polygons {
20) public:
|
implement converting polygo...
Stefan Schuermans authored 11 years ago
|
21) typedef CGAL::Exact_predicates_inexact_constructions_kernel CgKern;
22)
23) typedef CgKern::Point_2 CgPoint;
24) typedef CGAL::Polygon_2<CgKern> CgPoly;
25) typedef CGAL::Polygon_with_holes_2<CgKern> CgPolyHoles;
26) typedef std::vector<CgPoly> CgPolyVec;
27) typedef std::vector<CgPolyHoles> CgPolyHolesVec;
28) typedef boost::shared_ptr<CgPoly> CgPolyPtr;
29) typedef boost::shared_ptr<CgPolyHoles> CgPolyHolesPtr;
30) typedef std::vector<CgPolyPtr> CgPolyPtrVec;
31) typedef std::vector<CgPolyHolesPtr> CgPolyHolesPtrVec;
|
implement converting paths...
Stefan Schuermans authored 11 years ago
|
32)
33) /**
34) * @brief clear all polygons
35) */
36) void clear();
37)
38) /**
39) * @brief add polygons from layer
40) * @param[in] layer layer to obtain the polygons from
41) * @param[in] eqDist maximum distance of two points to be considered equal
42) * @return if the layer could be converted to polygons and imported
43) */
44) bool addLayer(const Layer &layer, double eqDist);
45)
46) /**
47) * @brief load polygons from layer
48) * @param[in] layer layer to obtain the polygons from
49) * @param[in] eqDist maximum distance of two points to be considered equal
50) * @return if the layer could be converted to polygons and imported
51) */
52) bool loadLayer(const Layer &layer, double eqDist);
53)
|
implement inside cutting (h...
Stefan Schuermans authored 11 years ago
|
54) /**
55) * @brief create inner offset polygons
56) * @param[in] offset offset, > 0.0
57) * @param[out] offsetPolys offset polygons (!= *this)
58) */
59) void createInnerOffset(double offset, Polygons &offsetPolys) const;
60)
|
implement converting polygo...
Stefan Schuermans authored 11 years ago
|
61) /**
62) * @brief add all polygons with holes as multiple paths to a layer
63) * @param[in,out] layer layer to add paths to
64) */
65) void addToLayer(Layer &layer) const;
66)
67) /**
68) * @brief write all polygons with holes as multiple paths to a layer
69) * @param[in,out] layer layer to write paths to
70) */
71) void writeToLayer(Layer &layer) const;
72)
73) protected:
74) /**
75) * @brief add a polygon as path to a layer
76) * @param[in] poly polygon to add to layer
77) * @param[in,out] layer layer to add path to
78) */
79) static void PolyToLayer(const CgPoly &poly, Layer &layer);
80)
81) /**
82) * @brief add a polygon with holes as multiple paths to a layer
83) * @param[in] poly polygon with holes to add to layer
84) * @param[in,out] layer layer to add paths to
85) */
86) static void PolyHolesToLayer(const CgPolyHoles &poly, Layer &layer);
87)
88) public:
|