Skip to main content

pick_rect

Function pick_rect 

Source
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,
) -> RectPickResult
Expand 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 pixels
  • rect_max — bottom-right corner of the selection rect in viewport pixels
  • scene_items — visible scene render items for this frame
  • mesh_lookup — CPU-side mesh data keyed by SceneRenderItem::mesh_index
  • point_clouds — point cloud items for this frame
  • view_proj — combined view × projection matrix
  • viewport_size — viewport width × height in pixels