isl-org / isl-org/Open3D

Open3D crashes when using boolean_intersection with non-overlapping meshes

Open
#5,911 6 comments 2 reactions 1 assignee Claimed by @benjaminum 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

I want to compute the intersection between two TriangleMesh with [boolean_intersection](http://www.open3d.org/docs/release/python_api/open3d.t.geometry.TriangleMesh.html#open3d.t.geometry.TriangleMesh.boolean_intersection). I assume that the result would be a TriangleMesh with zero or more vertices.

However, when there is no overlap between the two meshes, Open3D crashes with the error message below.

### Steps to reproduce the bug

```python
import open3d as o3d

mesh1 = o3d.t.geometry.TriangleMesh.create_sphere(radius=1.0,resolution=20)
mesh1.translate([0,0,2])

mesh2 = o3d.t.geometry.TriangleMesh.create_sphere(radius=1.0,resolution=20)
mesh2.translate([0,0,-2])

intersection = mesh1.boolean_intersection(mesh2)
```

### Error message

```
ERROR: In /home/runner/work/Open3D/Open3D/build/vtk/src/ext_vtk/Common/DataModel/vtkPointLocator.cxx, line 845
vtkPointLocator (0x21d1800): No points to subdivide

Generic Warning: In /home/runner/work/Open3D/Open3D/build/vtk/src/ext_vtk/Filters/General/vtkIntersectionPolyDataFilter.cxx, line 2410
No Intersection between objects

ERROR: In /home/runner/work/Open3D/Open3D/build/vtk/src/ext_vtk/Filters/General/vtkDistancePolyDataFilter.cxx, line 81
vtkDistancePolyDataFilter (0x2a2ee50): No points/cells to operate on

ERROR: In /home/runner/work/Open3D/Open3D/build/vtk/src/ext_vtk/Filters/General/vtkDistancePolyDataFilter.cxx, line 81
vtkDistancePolyDataFilter (0x2a2ee50): No points/cells to operate on
```

### Expected behavior

The result of an intersection between two distant meshes should return a an empty set of points but should not crash.

### Open3D, Python and System information

```markdown
- Operating system: Ubuntu 20.04
- Python version: Python 3.8.10
- Open3D version: 0.16.0
- System architecture: x86_64
- Is this a remote workstation?: no
- How did you install Open3D?: pip
```

### 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.