Fix STL to Godot type convertion of polypartition

This commit is contained in:
Haoyu Qiu 2021-05-21 17:12:13 +08:00
parent 152a08b314
commit d16bef8b55
2 changed files with 12 additions and 12 deletions

View file

@ -1289,7 +1289,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto
bool error = false;
numvertices = 0;
for (iter = inpolys->front(); iter; iter++) {
for (iter = inpolys->front(); iter; iter = iter->next()) {
numvertices += iter->get().GetNumPoints();
}
@ -1298,7 +1298,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto
newnumvertices = numvertices;
polystartindex = 0;
for (iter = inpolys->front(); iter; iter++) {
for (iter = inpolys->front(); iter; iter = iter->next()) {
poly = &(iter->get());
polyendindex = polystartindex + poly->GetNumPoints() - 1;
for (i = 0; i < poly->GetNumPoints(); i++) {
@ -1408,7 +1408,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto
newedge.p1 = v->p;
newedge.p2 = v->p;
edgeIter = edgeTree.lower_bound(newedge);
if (edgeIter == edgeTree.front()) {
if (edgeIter == nullptr || edgeIter == edgeTree.front()) {
error = true;
break;
}
@ -1449,7 +1449,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto
newedge.p1 = v->p;
newedge.p2 = v->p;
edgeIter = edgeTree.lower_bound(newedge);
if (edgeIter == edgeTree.front()) {
if (edgeIter == nullptr || edgeIter == edgeTree.front()) {
error = true;
break;
}
@ -1494,7 +1494,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto
newedge.p1 = v->p;
newedge.p2 = v->p;
edgeIter = edgeTree.lower_bound(newedge);
if (edgeIter == edgeTree.front()) {
if (edgeIter == nullptr || edgeIter == edgeTree.front()) {
error = true;
break;
}