1 /**
2  *   SFCGAL
3  *
4  *   Copyright (C) 2012-2013 Oslandia <infos@oslandia.com>
5  *   Copyright (C) 2012-2013 IGN (http://www.ign.fr)
6  *
7  *   This library is free software; you can redistribute it and/or
8  *   modify it under the terms of the GNU Library General Public
9  *   License as published by the Free Software Foundation; either
10  *   version 2 of the License, or (at your option) any later version.
11  *
12  *   This library is distributed in the hope that it will be useful,
13  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  *   Library General Public License for more details.
16 
17  *   You should have received a copy of the GNU Library General Public
18  *   License along with this library; if not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef _SFCGAL_TRIANGULATE_TRIANGULATEPOLYGON_H_
22 #define _SFCGAL_TRIANGULATE_TRIANGULATEPOLYGON_H_
23 
24 #include <SFCGAL/config.h>
25 
26 #include <SFCGAL/Geometry.h>
27 
28 namespace SFCGAL {
29 namespace triangulate {
30 
31 /**
32  * @brief Triangulate 3D polygons in a Geometry.
33  *
34  * @param g input geometry
35  * @param triangulatedSurface resulting TriangulatedSurface
36  * @param usePolygonPlanes use polygon plane or Triangulate in OXY plane
37  * @todo unittest
38  * @ingroup detail
39  */
40 SFCGAL_API void triangulatePolygon3D(
41     const Geometry& g,
42     TriangulatedSurface& triangulatedSurface
43 );
44 /**
45  * @brief Triangulate a 3D Polygon
46  * @todo unittest
47  * @ingroup detail
48  */
49 SFCGAL_API void triangulatePolygon3D(
50     const Polygon& g,
51     TriangulatedSurface& triangulatedSurface
52 );
53 /**
54  * @brief Triangulate a 3D Triangle (copy triangle)
55  * @todo unittest
56  * @ingroup detail
57  */
58 SFCGAL_API void triangulatePolygon3D(
59     const Triangle& g,
60     TriangulatedSurface& triangulatedSurface
61 );
62 /**
63  * @brief Triangulate a 3D TriangulatedSurface (copy triangles)
64  *
65  * @todo unittest
66  * @ingroup detail
67  */
68 SFCGAL_API void triangulatePolygon3D(
69     const TriangulatedSurface& g,
70     TriangulatedSurface& triangulatedSurface
71 );
72 /**
73  * @brief Triangulate a 3D MultiPolygon
74  * @todo unittest
75  * @ingroup detail
76  */
77 SFCGAL_API void opentriangulatePolygon3D(
78     const GeometryCollection& g,
79     TriangulatedSurface& triangulatedSurface
80 );
81 /**
82  * @brief Triangulate 3D polygons in a PolyhedralSurface.
83  *
84  * @todo unittest
85  * @ingroup detail
86  */
87 SFCGAL_API void triangulatePolygon3D(
88     const PolyhedralSurface& polyhedralSurface,
89     TriangulatedSurface& triangulatedSurface
90 );
91 /**
92  * @brief Triangulate a Solid
93  *
94  * @todo unittest
95  * @ingroup detail
96  */
97 SFCGAL_API void triangulatePolygon3D(
98     const Solid& g,
99     TriangulatedSurface& triangulatedSurface
100 );
101 
102 }//algorithm
103 }//SFCGAL
104 
105 #endif
106 
107