Horizon
Loading...
Searching...
No Matches
cdt.h
1/*
2 * Poly2Tri Copyright (c) 2009-2018, Poly2Tri Contributors
3 * https://github.com/jhasse/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
45namespace p2t {
46
47class CDT
48{
49public:
50
56 CDT(const std::vector<Point*>& polyline);
57
61 ~CDT();
62
68 void AddHole(const std::vector<Point*>& polyline);
69
75 void AddPoint(Point* point);
76
80 void Triangulate();
81
85 std::vector<Triangle*> GetTriangles();
86
90 std::list<Triangle*> GetMap();
91
92 private:
93
98 SweepContext* sweep_context_;
99 Sweep* sweep_;
100
101};
102
103}
104
105#endif
Definition cdt.h:48
std::list< Triangle * > GetMap()
Get triangle map.
Definition cdt.cpp:60
void Triangulate()
Triangulate - do this AFTER you've added the polyline, holes, and Steiner points.
Definition cdt.cpp:50
void AddHole(const std::vector< Point * > &polyline)
Add a hole.
Definition cdt.cpp:41
std::vector< Triangle * > GetTriangles()
Get CDT triangles.
Definition cdt.cpp:55
void AddPoint(Point *point)
Add a steiner point.
Definition cdt.cpp:46
~CDT()
Destructor - clean up memory.
Definition cdt.cpp:65
Definition sweep_context.h:51
Definition sweep.h:53
Sweep-line, Constrained Delauney Triangulation (CDT) See: Domiter, V.
Definition shapes.cpp:36
Definition shapes.h:45