pub fn pick_rect(
rect_min: Vec2,
rect_max: Vec2,
scene_items: &[SceneRenderItem],
mesh_lookup: &HashMap<usize, (Vec<[f32; 3]>, Vec<u32>)>,
point_clouds: &[PointCloudItem],
view_proj: Mat4,
viewport_size: Vec2,
) -> RectPickResultExpand description
Sub-object (triangle / point) selection inside a screen-space rectangle.
Projects triangle centroids (for mesh scene items) and point positions (for
point clouds) through view_proj, then tests NDC containment against the
rectangle defined by rect_min..rect_max (viewport-local pixels, top-left
origin).
This is a pure CPU operation — no GPU readback is required.
§Arguments
rect_min— top-left corner of the selection rect in viewport pixelsrect_max— bottom-right corner of the selection rect in viewport pixelsscene_items— visible scene render items for this framemesh_lookup— CPU-side mesh data keyed bySceneRenderItem::mesh_indexpoint_clouds— point cloud items for this frameview_proj— combined view × projection matrixviewport_size— viewport width × height in pixels