isl-org / isl-org/Open3D

How can I control individual point cloud sizes with the O3DVisualizer?

Open
#5,901 1 comment 0 reactions 0 assignees View on GitHub
question
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).

### My Question

I've seen this related issue https://github.com/isl-org/Open3D/issues/2135
But I want the menu I get with the O3DVisualizer to interactively show/hide pointclouds and groups. The example in that issue uses SceneWidget and I could't get the same menu to show? is it possible?

I adapted the example in that issue like this:

```
#!/usr/bin/env python

import numpy as np
import open3d as o3d
import open3d.visualization.gui as gui

RED = [1.0, 0.0, 0.0, 1.0]
GREEN = [0.0, 0.5, 0.0, 1.0] # dark green is easier to see on white when small
BLUE = [0.0, 0.0, 1.0, 1.0]

def add_cloud(scene, name, npts, center, radius, color, size):
pts = np.random.uniform(-radius, radius, size=[npts, 3]) + center
cloud = o3d.geometry.PointCloud()
cloud.points = o3d.utility.Vector3dVector(pts)

material = o3d.visualization.rendering.MaterialRecord()
material.shader = "defaultUnlit"
material.base_color = color
material.point_size = size
scene.add_geometry(name, cloud, material)

def main():
app = gui.Application.instance
app.initialize()
vis = o3d.visualization.O3DVisualizer("Open3D", 1024, 768)
vis.show_settings = False

add_cloud(vis, "green", 5000, [0, 0, 0], 10.0, GREEN, 2)
add_cloud(vis, "red", 500, [-2, -2, -2], 5.0, RED, 4)
add_cloud(vis, "blue", 250, [1, 1, 1], 5.0, BLUE, 20)

vis.reset_camera_to_default()
vis.show_skybox(False)
app.add_window(vis)

app.run()

if __name__ == "__main__":
main()
```

This shows all the point clouds with the last size 20. Is there any way of controlling the individual pointcloud sizes with the O3DVisualizer?

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.