MCPcopy Create free account
hub / github.com/Ropedia/SpatialBench / build_frustum_geometries

Function build_frustum_geometries

benchmark/utils/visualization.py:76–106  ·  view source on GitHub ↗

Generate a list of trimesh line-segment geometries for all frustums of a set of cameras. Args: extrinsics: (N, 3, 4) cam2world intrinsics: (N, 3, 3) intrinsics image_size: (W, H) or (N, 2) per-frame scale: frustum size Returns: list[trimesh.path.Path

(extrinsics, intrinsics, image_size, scale=0.1)

Source from the content-addressed store, hash-verified

74
75
76def build_frustum_geometries(extrinsics, intrinsics, image_size, scale=0.1):
77 """Generate a list of trimesh line-segment geometries for all frustums of a set of cameras.
78
79 Args:
80 extrinsics: (N, 3, 4) cam2world
81 intrinsics: (N, 3, 3) intrinsics
82 image_size: (W, H) or (N, 2) per-frame
83 scale: frustum size
84
85 Returns:
86 list[trimesh.path.Path3D] — one line-segment geometry per camera
87 """
88 import trimesh
89
90 N = len(extrinsics)
91 geoms = []
92
93 for i in range(N):
94 if isinstance(image_size, (list, tuple)) and len(image_size) == 2 and not hasattr(image_size[0], '__len__'):
95 W, H = image_size
96 else:
97 W, H = image_size[i]
98
99 segs = camera_frustum_lines(intrinsics[i], extrinsics[i], W, H, scale)
100 path = trimesh.load_path(segs)
101 color = _camera_color(i, N)
102 if hasattr(path, "colors"):
103 path.colors = np.tile(color, (len(path.entities), 1))
104 geoms.append(path)
105
106 return geoms
107
108
109def _segment_to_cylinder(p0, p1, radius, sections=6):

Callers 1

save_pointcloud_glbFunction · 0.85

Calls 2

camera_frustum_linesFunction · 0.85
_camera_colorFunction · 0.85

Tested by

no test coverage detected