(screen_x: f64, screen_y: f64, max_results: f64)
| 1660 | |
| 1661 | #[no_mangle] |
| 1662 | pub extern "C" fn bloom_scene_pick_all(screen_x: f64, screen_y: f64, max_results: f64) -> f64 { |
| 1663 | let eng = engine(); |
| 1664 | let inv_vp = eng.renderer.inverse_vp_matrix(); |
| 1665 | let cam_pos = eng.renderer.camera_pos(); |
| 1666 | let w = eng.renderer.width() as f32; |
| 1667 | let h = eng.renderer.height() as f32; |
| 1668 | let (origin, direction) = bloom_shared::picking::screen_to_ray( |
| 1669 | screen_x as f32, screen_y as f32, w, h, &inv_vp, &cam_pos, |
| 1670 | ); |
| 1671 | let results = bloom_shared::picking::raycast_scene_all(&eng.scene, &origin, &direction, max_results as usize); |
| 1672 | let count = results.len(); |
| 1673 | unsafe { LAST_PICK_ALL = results; } |
| 1674 | count as f64 |
| 1675 | } |
| 1676 | #[no_mangle] |
| 1677 | pub extern "C" fn bloom_pick_all_handle(index: f64) -> f64 { |
| 1678 | let i = index as usize; |
nothing calls this directly
no test coverage detected