(
handle: f64,
polygon_ptr: *const f64,
polygon_count: f64,
depth: f64,
)
| 2748 | /// depth: extrusion height |
| 2749 | #[no_mangle] |
| 2750 | pub extern "C" fn bloom_scene_extrude_polygon( |
| 2751 | handle: f64, |
| 2752 | polygon_ptr: *const f64, |
| 2753 | polygon_count: f64, |
| 2754 | depth: f64, |
| 2755 | ) { |
| 2756 | if polygon_ptr.is_null() { return; } |
| 2757 | let n = polygon_count as usize; |
| 2758 | let polygon = unsafe { std::slice::from_raw_parts(polygon_ptr, n * 2) }; |
| 2759 | |
| 2760 | let geo = bloom_shared::geometry::extrude_polygon(polygon, &[], depth); |
| 2761 | engine().scene.update_geometry(handle, geo.vertices, geo.indices); |
| 2762 | } |
| 2763 | |
| 2764 | /// Subtract an axis-aligned box from a scene node's geometry. |
| 2765 | /// Removes triangles fully inside the box (simplified CSG). |
nothing calls this directly
no test coverage detected