mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	Fix STL to Godot type convertion of polypartition
This commit is contained in:
		
							parent
							
								
									152a08b314
								
							
						
					
					
						commit
						d16bef8b55
					
				
					 2 changed files with 12 additions and 12 deletions
				
			
		|  | @ -1,5 +1,5 @@ | ||||||
| diff --git a/thirdparty/misc/polypartition.cpp b/thirdparty/misc/polypartition.cpp
 | diff --git a/thirdparty/misc/polypartition.cpp b/thirdparty/misc/polypartition.cpp
 | ||||||
| index 3a8a6efa8319..4f1b6dcb21d8 100644
 | index 3a8a6efa83..5e94793b79 100644
 | ||||||
| --- a/thirdparty/misc/polypartition.cpp
 | --- a/thirdparty/misc/polypartition.cpp
 | ||||||
| +++ b/thirdparty/misc/polypartition.cpp
 | +++ b/thirdparty/misc/polypartition.cpp
 | ||||||
| @@ -23,10 +23,7 @@
 | @@ -23,10 +23,7 @@
 | ||||||
|  | @ -510,7 +510,7 @@ index 3a8a6efa8319..4f1b6dcb21d8 100644 | ||||||
| -      return 0;
 | -      return 0;
 | ||||||
| -    }
 | -    }
 | ||||||
| -    numvertices += iter->GetNumPoints();
 | -    numvertices += iter->GetNumPoints();
 | ||||||
| +  for (iter = inpolys->front(); iter; iter++) {
 | +  for (iter = inpolys->front(); iter; iter = iter->next()) {
 | ||||||
| +    numvertices += iter->get().GetNumPoints();
 | +    numvertices += iter->get().GetNumPoints();
 | ||||||
|    } |    } | ||||||
|   |   | ||||||
|  | @ -521,7 +521,7 @@ index 3a8a6efa8319..4f1b6dcb21d8 100644 | ||||||
|    polystartindex = 0; |    polystartindex = 0; | ||||||
| -  for (iter = inpolys->begin(); iter != inpolys->end(); iter++) {
 | -  for (iter = inpolys->begin(); iter != inpolys->end(); iter++) {
 | ||||||
| -    poly = &(*iter);
 | -    poly = &(*iter);
 | ||||||
| +  for (iter = inpolys->front(); iter; iter++) {
 | +  for (iter = inpolys->front(); iter; iter = iter->next()) {
 | ||||||
| +    poly = &(iter->get());
 | +    poly = &(iter->get());
 | ||||||
|      polyendindex = polystartindex + poly->GetNumPoints() - 1; |      polyendindex = polystartindex + poly->GetNumPoints() - 1; | ||||||
|      for (i = 0; i < poly->GetNumPoints(); i++) { |      for (i = 0; i < poly->GetNumPoints(); i++) { | ||||||
|  | @ -569,7 +569,7 @@ index 3a8a6efa8319..4f1b6dcb21d8 100644 | ||||||
|          newedge.p2 = v->p; |          newedge.p2 = v->p; | ||||||
|          edgeIter = edgeTree.lower_bound(newedge); |          edgeIter = edgeTree.lower_bound(newedge); | ||||||
| -        if (edgeIter == edgeTree.begin()) {
 | -        if (edgeIter == edgeTree.begin()) {
 | ||||||
| +        if (edgeIter == edgeTree.front()) {
 | +        if (edgeIter == nullptr || edgeIter == edgeTree.front()) {
 | ||||||
|            error = true; |            error = true; | ||||||
|            break; |            break; | ||||||
|          } |          } | ||||||
|  | @ -606,7 +606,7 @@ index 3a8a6efa8319..4f1b6dcb21d8 100644 | ||||||
|          newedge.p2 = v->p; |          newedge.p2 = v->p; | ||||||
|          edgeIter = edgeTree.lower_bound(newedge); |          edgeIter = edgeTree.lower_bound(newedge); | ||||||
| -        if (edgeIter == edgeTree.begin()) {
 | -        if (edgeIter == edgeTree.begin()) {
 | ||||||
| +        if (edgeIter == edgeTree.front()) {
 | +        if (edgeIter == nullptr || edgeIter == edgeTree.front()) {
 | ||||||
|            error = true; |            error = true; | ||||||
|            break; |            break; | ||||||
|          } |          } | ||||||
|  | @ -648,7 +648,7 @@ index 3a8a6efa8319..4f1b6dcb21d8 100644 | ||||||
|            newedge.p2 = v->p; |            newedge.p2 = v->p; | ||||||
|            edgeIter = edgeTree.lower_bound(newedge); |            edgeIter = edgeTree.lower_bound(newedge); | ||||||
| -          if (edgeIter == edgeTree.begin()) {
 | -          if (edgeIter == edgeTree.begin()) {
 | ||||||
| +          if (edgeIter == edgeTree.front()) {
 | +          if (edgeIter == nullptr || edgeIter == edgeTree.front()) {
 | ||||||
|              error = true; |              error = true; | ||||||
|              break; |              break; | ||||||
|            } |            } | ||||||
|  | @ -716,7 +716,7 @@ index 3a8a6efa8319..4f1b6dcb21d8 100644 | ||||||
|      } |      } | ||||||
|    } |    } | ||||||
| diff --git a/thirdparty/misc/polypartition.h b/thirdparty/misc/polypartition.h
 | diff --git a/thirdparty/misc/polypartition.h b/thirdparty/misc/polypartition.h
 | ||||||
| index f163f5d2173f..b2d905a3ef76 100644
 | index f163f5d217..b2d905a3ef 100644
 | ||||||
| --- a/thirdparty/misc/polypartition.h
 | --- a/thirdparty/misc/polypartition.h
 | ||||||
| +++ b/thirdparty/misc/polypartition.h
 | +++ b/thirdparty/misc/polypartition.h
 | ||||||
| @@ -24,8 +24,9 @@
 | @@ -24,8 +24,9 @@
 | ||||||
|  |  | ||||||
							
								
								
									
										10
									
								
								thirdparty/misc/polypartition.cpp
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								thirdparty/misc/polypartition.cpp
									
										
									
									
										vendored
									
									
								
							|  | @ -1289,7 +1289,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto | ||||||
|   bool error = false; |   bool error = false; | ||||||
| 
 | 
 | ||||||
|   numvertices = 0; |   numvertices = 0; | ||||||
|   for (iter = inpolys->front(); iter; iter++) { |   for (iter = inpolys->front(); iter; iter = iter->next()) { | ||||||
|     numvertices += iter->get().GetNumPoints(); |     numvertices += iter->get().GetNumPoints(); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | @ -1298,7 +1298,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto | ||||||
|   newnumvertices = numvertices; |   newnumvertices = numvertices; | ||||||
| 
 | 
 | ||||||
|   polystartindex = 0; |   polystartindex = 0; | ||||||
|   for (iter = inpolys->front(); iter; iter++) { |   for (iter = inpolys->front(); iter; iter = iter->next()) { | ||||||
|     poly = &(iter->get()); |     poly = &(iter->get()); | ||||||
|     polyendindex = polystartindex + poly->GetNumPoints() - 1; |     polyendindex = polystartindex + poly->GetNumPoints() - 1; | ||||||
|     for (i = 0; i < poly->GetNumPoints(); i++) { |     for (i = 0; i < poly->GetNumPoints(); i++) { | ||||||
|  | @ -1408,7 +1408,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto | ||||||
|         newedge.p1 = v->p; |         newedge.p1 = v->p; | ||||||
|         newedge.p2 = v->p; |         newedge.p2 = v->p; | ||||||
|         edgeIter = edgeTree.lower_bound(newedge); |         edgeIter = edgeTree.lower_bound(newedge); | ||||||
|         if (edgeIter == edgeTree.front()) { |         if (edgeIter == nullptr || edgeIter == edgeTree.front()) { | ||||||
|           error = true; |           error = true; | ||||||
|           break; |           break; | ||||||
|         } |         } | ||||||
|  | @ -1449,7 +1449,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto | ||||||
|         newedge.p1 = v->p; |         newedge.p1 = v->p; | ||||||
|         newedge.p2 = v->p; |         newedge.p2 = v->p; | ||||||
|         edgeIter = edgeTree.lower_bound(newedge); |         edgeIter = edgeTree.lower_bound(newedge); | ||||||
|         if (edgeIter == edgeTree.front()) { |         if (edgeIter == nullptr || edgeIter == edgeTree.front()) { | ||||||
|           error = true; |           error = true; | ||||||
|           break; |           break; | ||||||
|         } |         } | ||||||
|  | @ -1494,7 +1494,7 @@ int TPPLPartition::MonotonePartition(TPPLPolyList *inpolys, TPPLPolyList *monoto | ||||||
|           newedge.p1 = v->p; |           newedge.p1 = v->p; | ||||||
|           newedge.p2 = v->p; |           newedge.p2 = v->p; | ||||||
|           edgeIter = edgeTree.lower_bound(newedge); |           edgeIter = edgeTree.lower_bound(newedge); | ||||||
|           if (edgeIter == edgeTree.front()) { |           if (edgeIter == nullptr || edgeIter == edgeTree.front()) { | ||||||
|             error = true; |             error = true; | ||||||
|             break; |             break; | ||||||
|           } |           } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Haoyu Qiu
						Haoyu Qiu