Branch data Line data Source code
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 : : #include "cdt.h" 32 : : 33 : : namespace p2t { 34 : : 35 : 13 : CDT::CDT(const std::vector<Point*>& polyline) 36 : : { 37 : 13 : sweep_context_ = new SweepContext(polyline); 38 : 13 : sweep_ = new Sweep; 39 : 13 : } 40 : : 41 : 13 : void CDT::AddHole(const std::vector<Point*>& polyline) 42 : : { 43 : 13 : sweep_context_->AddHole(polyline); 44 : 13 : } 45 : : 46 : 0 : void CDT::AddPoint(Point* point) { 47 : 0 : sweep_context_->AddPoint(point); 48 : 0 : } 49 : : 50 : 13 : void CDT::Triangulate() 51 : : { 52 : 13 : sweep_->Triangulate(*sweep_context_); 53 : 13 : } 54 : : 55 : 13 : std::vector<p2t::Triangle*> CDT::GetTriangles() 56 : : { 57 : 13 : return sweep_context_->GetTriangles(); 58 : : } 59 : : 60 : 0 : std::list<p2t::Triangle*> CDT::GetMap() 61 : : { 62 : 0 : return sweep_context_->GetMap(); 63 : : } 64 : : 65 : 13 : CDT::~CDT() 66 : : { 67 : 13 : delete sweep_context_; 68 : 13 : delete sweep_; 69 : 13 : } 70 : : 71 : : }