isl-org / isl-org/Open3D

TriangleMesh - is_self_intersecting return wrong result

Open
#5,117 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).

### Describe the issue

The TriangleMesh intersection tests fails for certain triangles., consider for instance the example below. In the example, the triangles are non intersecting as shown in the attached plot, however, TriangleMesh.is_self_intersecting reports True.

![image](https://user-images.githubusercontent.com/106055922/169758318-bfa681ca-08dc-4c26-93d3-c1507759a64b.png)

### Steps to reproduce the bug

```python
# Run the following snippet:

import open3d
from math import sqrt

vertices = open3d.cpu.pybind.utility.Vector3dVector([[0., 0.13918686, 1. ],
[0., 0. , 1.1270161 ],
[1., 0. , 1.0284119 ],
[1., 1.1269569 , 0. ],
[1., 0.03113556, 1. ],
[2., 1.0189056 , 0. ]])

triangles = open3d.cpu.pybind.utility.Vector3iVector([[0,1,2],[3,4,5]])

mesh = open3d.geometry.TriangleMesh(vertices , triangles)

# should return False, but returns True
mesh.is_self_intersecting()

# correctly returns False
mesh.rotate( [[1,0,0],[0,sqrt(0.5),sqrt(0.5)],[0,-sqrt(0.5),sqrt(0.5)]] ).is_self_intersecting()
```

### Error message

_No response_

### Expected behavior

_No response_

### Open3D, Python and System information

```markdown
- Operating system: Debian Bullseye
- Python version: "3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:25:59) \n[GCC 10.3.0]"
- Open3D version: 0.15.2
- System architecture: x86_64
- Is this a remote workstation?: yes
- How did you install Open3D?: conda
- Compiler version (if built from source): n/a
```

### Additional information

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.