summaryrefslogtreecommitdiffstats
path: root/platform/windows/export/export_plugin.cpp
diff options
context:
space:
mode:
authorK. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>2023-03-13 07:13:25 -0700
committerRémi Verschelde <rverschelde@gmail.com>2023-04-27 11:39:29 +0200
commiteaa84bc682dfb7f1f97970c7f4dfd4c6e63ba681 (patch)
tree666a2737d3a251a1995e497488b890b793ad6ac8 /platform/windows/export/export_plugin.cpp
parent352ebe97259622f20b47627b4bf747cdfc79304d (diff)
downloadredot-engine-eaa84bc682dfb7f1f97970c7f4dfd4c6e63ba681.tar.gz
Fix CSG edge case causing intersection line to hit on common edge of 2 triangles.
The previous implementation assumed that the intersection entered or exited a shape when it hit right on the common edge of 2 triangles. However, there is also a case where it just "skirts" the other shape on the outside. To fix this, we added code to check the intersection distance and if the normals of the faces are pointed in the same direction as the intersection or not (e.g. inner product > 0). This handles the case where the intersection line hits the common edge of 2 triangles and skirts the other shape on the outside. Extended code to cover a third case. Fixes #58637. Co-authored-by: OldBelge <StevenGeens@users.noreply.github.com>
Diffstat (limited to 'platform/windows/export/export_plugin.cpp')
0 files changed, 0 insertions, 0 deletions