| 50 | # check if object_list is a list of Open3D geometries, |
| 51 | # convert tensor geometries to legacy if necessary |
| 52 | def __validate_object_list__(object_list): |
| 53 | try: |
| 54 | if isinstance(object_list, o3d.geometry.Geometry): |
| 55 | object_list = [object_list] |
| 56 | |
| 57 | elif isinstance(object_list, o3d.t.geometry.Geometry): |
| 58 | object_list = [object_list.to_legacy()] |
| 59 | |
| 60 | elif not isinstance(object_list, list): |
| 61 | raise ValueError("object_list must be a list of Open3D geometries") |
| 62 | else: |
| 63 | for obj in object_list: |
| 64 | if isinstance(obj, o3d.geometry.Geometry): |
| 65 | pass |
| 66 | elif isinstance(obj, o3d.t.geometry.Geometry): |
| 67 | obj = obj.to_legacy() |
| 68 | else: |
| 69 | raise ValueError("All elements in object_list must be Open3D geometries") |
| 70 | return object_list |
| 71 | except ValueError as e: |
| 72 | print(e) |
| 73 | |
| 74 | |
| 75 | def visualize(object_list, title="PiLiDAR", transformation=None, fullscreen=True, size=(1280,720), view="front", point_size=1, |