1/*
2 * Poly2Tri Copyright (c) 2009-2010, Poly2Tri Contributors
3 * http://code.google.com/p/poly2tri/
4 *
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without modification,
8 * are permitted provided that the following conditions are met:
9 *
10 * * Redistributions of source code must retain the above copyright notice,
11 * this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 * * Neither the name of Poly2Tri nor the names of its contributors may be
16 * used to endorse or promote products derived from this software without specific
17 * prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */
31
32#ifndef CDT_H
33#define CDT_H
34
35#include "advancing_front.h"
36#include "sweep_context.h"
37#include "sweep.h"
38
39/**
40 *
41 * @author Mason Green <mason.green@gmail.com>
42 *
43 */
44
45namespace p2t {
46
47class CDT
48{
49public:
50
51 /**
52 * Constructor - add polyline with non repeating points
53 *
54 * @param polyline
55 */
56 CDT(const std::vector<Point*>& polyline);
57
58 /**
59 * Destructor - clean up memory
60 */
61 ~CDT();
62
63 /**
64 * Add a hole
65 *
66 * @param polyline
67 */
68 void AddHole(const std::vector<Point*>& polyline);
69
70 /**
71 * Add a steiner point
72 *
73 * @param point
74 */
75 void AddPoint(Point* point);
76
77 /**
78 * Triangulate - do this AFTER you've added the polyline, holes, and Steiner points
79 */
80 void Triangulate();
81
82 /**
83 * Get CDT triangles
84 */
85 std::vector<Triangle*> GetTriangles();
86
87 /**
88 * Get triangle map
89 */
90 std::list<Triangle*> GetMap();
91
92 private:
93
94 /**
95 * Internals
96 */
97
98 SweepContext* sweep_context_;
99 Sweep* sweep_;
100
101};
102
103}
104
105#endif

source code of qt3d/src/3rdparty/assimp/src/contrib/poly2tri/poly2tri/sweep/cdt.h