Horizon
3rd_party
poly2tri
sweep
cdt.h
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
45
namespace
p2t
{
46
47
class
CDT
48
{
49
public
:
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
p2t::CDT::CDT
CDT(const std::vector< Point * > &polyline)
Constructor - add polyline with non repeating points.
Definition:
cdt.cpp:35
p2t::CDT::~CDT
~CDT()
Destructor - clean up memory.
Definition:
cdt.cpp:65
p2t
Sweep-line, Constrained Delauney Triangulation (CDT) See: Domiter, V.
Definition:
shapes.cpp:34
p2t::CDT::AddHole
void AddHole(const std::vector< Point * > &polyline)
Add a hole.
Definition:
cdt.cpp:41
p2t::SweepContext
Definition:
sweep_context.h:51
p2t::CDT::AddPoint
void AddPoint(Point *point)
Add a steiner point.
Definition:
cdt.cpp:46
p2t::Sweep
Definition:
sweep.h:53
p2t::CDT::GetTriangles
std::vector< Triangle * > GetTriangles()
Get CDT triangles.
Definition:
cdt.cpp:55
p2t::Point
Definition:
shapes.h:45
p2t::CDT::Triangulate
void Triangulate()
Triangulate - do this AFTER you've added the polyline, holes, and Steiner points.
Definition:
cdt.cpp:50
p2t::CDT::GetMap
std::list< Triangle * > GetMap()
Get triangle map.
Definition:
cdt.cpp:60
p2t::CDT
Definition:
cdt.h:48
Generated by
1.8.20