ba3a06cd66c627e2317b0fda60f6d76be5425a81
Stefan Schuermans 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) 
Stefan Schuermans implement converting polygo...

Stefan Schuermans authored 11 years ago

12) #include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
Stefan Schuermans 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:
Stefan Schuermans 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;
Stefan Schuermans 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) 
Stefan Schuermans 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) 
Stefan Schuermans 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: