diff --git a/poly2tri/sweep/sweep.cc b/poly2tri/sweep/sweep.cc index 56cddac..6add81f 100644 --- a/poly2tri/sweep/sweep.cc +++ b/poly2tri/sweep/sweep.cc @@ -172,6 +172,8 @@ Node& Sweep::NewFrontTriangle(SweepContext& tcx, Point& point, Node& node) tcx.AddToMap(triangle); Node* new_node = new Node(point); + nodes_.push_back(new_node); + new_node->next = node.next; new_node->prev = &node; node.next->prev = new_node; @@ -629,8 +631,6 @@ void Sweep::FillRightConcaveEdgeEvent(SweepContext& tcx, Edge* edge, Node& node) } } - delete &node.next; - } void Sweep::FillRightConvexEdgeEvent(SweepContext& tcx, Edge* edge, Node& node) @@ -712,8 +712,6 @@ void Sweep::FillLeftConcaveEdgeEvent(SweepContext& tcx, Edge* edge, Node& node) } } - delete &node.prev; - } void Sweep::FlipEdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle* t, Point& p) diff --git a/poly2tri/sweep/sweep.h b/poly2tri/sweep/sweep.h index 02bf9ab..5cc9e06 100644 --- a/poly2tri/sweep/sweep.h +++ b/poly2tri/sweep/sweep.h @@ -39,6 +39,8 @@ #ifndef SWEEP_H #define SWEEP_H +#include + namespace p2t { class SweepContext; @@ -113,6 +115,9 @@ Point& NextFlipPoint(Point& ep, Point& eq, Triangle& ot, Point& op); void FlipScanEdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle& flip_triangle, Triangle& t, Point& p); void FinalizationPolygon(SweepContext& tcx); + +std::vector nodes_; + }; }