isl-org / isl-org/Open3D

Bring o3d.t.geometry.TriangleMesh to parity with legacy TriangleMesh

Open
#7,137 1 comment 0 reactions 0 assignees View on GitHub
feature request
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](https://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](https://www.open3d.org/docs/release/) and the [latest documentation](https://www.open3d.org/docs/latest/) (for `main` branch).

### Proposed new feature or change

The following methods that are present in the legacy API are missing in the tensor API `o3d.t.geometry.TriangleMesh`:
* `subdivide_midpoint()`
* `paint_uniform_color()`
* addition operator `+`, and addition assignment operator `+=`

Moreover, the following C++ functions (at least) are not bound in Python, and would be useful:
* `GetVertexPositions`
* `GetVertexNormals`
* `GetVertexColors`
* `GetTriangleNormals`
* `GetTriangleColors`

I believe that making sure the tensor API does not lack anything from the legacy API is key to enable widespread transition, isn't it?

### References

_No response_

### Additional information

There is confusion among many, e.g. https://github.com/isl-org/Open3D/issues/6060#issuecomment-1531976992, https://github.com/isl-org/Open3D/discussions/6130, about the tensor vs. legacy APIs.

Also, the documentation is often lacking, e.g. the tutorial covers explicitly only the `PointCloud` part of the tensor Geomery API, not `TriangleMesh` part:

![image](https://github.com/user-attachments/assets/d1993120-c9eb-4880-9c70-c133d196a18b)

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.