986c763dc78b1df4d5e9fa723372b1c0469eb2b5
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) #include <CGAL/create_offset_polygons_2.h>
16) 
17) #include "layer.h"
18) 
19) /// a set of polygons
20) class Polygons {
21) public:
Stefan Schuermans 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;
Stefan Schuermans 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) 
Stefan Schuermans 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: