diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2022-04-13 08:27:08 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-13 08:27:08 +0200 | 
| commit | 8432bf18e24c8d26c88c5c5db5e17f997417c5e9 (patch) | |
| tree | b3ad03492d666ac249f96b7a703aa46eccfc899f | |
| parent | 895f2a21f4beea6f4c89d33666bdf3b0925d6db7 (diff) | |
| parent | 8fbed3d582b45587b985d107a10a3a3d6caa4602 (diff) | |
Merge pull request #60097 from V-Sekai/fix_triangle_mesh_selection
Rearrange TriangleMesh function to workaround MSVC compiler bug
| -rw-r--r-- | core/math/triangle_mesh.cpp | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/core/math/triangle_mesh.cpp b/core/math/triangle_mesh.cpp index debc5cd00d..e146c4a4e3 100644 --- a/core/math/triangle_mesh.cpp +++ b/core/math/triangle_mesh.cpp @@ -231,14 +231,14 @@ Vector3 TriangleMesh::get_area_normal(const AABB &p_aabb) const {  			}  			case VISIT_LEFT_BIT: {  				stack[level] = (VISIT_RIGHT_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.left | TEST_AABB_BIT;  				level++; +				stack[level] = b.left | TEST_AABB_BIT;  				continue;  			}  			case VISIT_RIGHT_BIT: {  				stack[level] = (VISIT_DONE_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.right | TEST_AABB_BIT;  				level++; +				stack[level] = b.right | TEST_AABB_BIT;  				continue;  			}  			case VISIT_DONE_BIT: { @@ -331,14 +331,14 @@ bool TriangleMesh::intersect_segment(const Vector3 &p_begin, const Vector3 &p_en  			}  			case VISIT_LEFT_BIT: {  				stack[level] = (VISIT_RIGHT_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.left | TEST_AABB_BIT;  				level++; +				stack[level] = b.left | TEST_AABB_BIT;  				continue;  			}  			case VISIT_RIGHT_BIT: {  				stack[level] = (VISIT_DONE_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.right | TEST_AABB_BIT;  				level++; +				stack[level] = b.right | TEST_AABB_BIT;  				continue;  			}  			case VISIT_DONE_BIT: { @@ -431,14 +431,14 @@ bool TriangleMesh::intersect_ray(const Vector3 &p_begin, const Vector3 &p_dir, V  			}  			case VISIT_LEFT_BIT: {  				stack[level] = (VISIT_RIGHT_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.left | TEST_AABB_BIT;  				level++; +				stack[level] = b.left | TEST_AABB_BIT;  				continue;  			}  			case VISIT_RIGHT_BIT: {  				stack[level] = (VISIT_DONE_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.right | TEST_AABB_BIT;  				level++; +				stack[level] = b.right | TEST_AABB_BIT;  				continue;  			}  			case VISIT_DONE_BIT: { @@ -551,14 +551,14 @@ bool TriangleMesh::intersect_convex_shape(const Plane *p_planes, int p_plane_cou  			}  			case VISIT_LEFT_BIT: {  				stack[level] = (VISIT_RIGHT_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.left | TEST_AABB_BIT;  				level++; +				stack[level] = b.left | TEST_AABB_BIT;  				continue;  			}  			case VISIT_RIGHT_BIT: {  				stack[level] = (VISIT_DONE_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.right | TEST_AABB_BIT;  				level++; +				stack[level] = b.right | TEST_AABB_BIT;  				continue;  			}  			case VISIT_DONE_BIT: { @@ -644,14 +644,14 @@ bool TriangleMesh::inside_convex_shape(const Plane *p_planes, int p_plane_count,  			}  			case VISIT_LEFT_BIT: {  				stack[level] = (VISIT_RIGHT_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.left | TEST_AABB_BIT;  				level++; +				stack[level] = b.left | TEST_AABB_BIT;  				continue;  			}  			case VISIT_RIGHT_BIT: {  				stack[level] = (VISIT_DONE_BIT << VISITED_BIT_SHIFT) | node; -				stack[level + 1] = b.right | TEST_AABB_BIT;  				level++; +				stack[level] = b.right | TEST_AABB_BIT;  				continue;  			}  			case VISIT_DONE_BIT: {  |