INNER CODE UNIT · Rust
hit_test_masked
rlaope/estudy · site/graph/crates/graph-wasm/src/lib.rs:400
pub fn hit_test_masked(x: f32, y: f32, mask: &[u8]) -> u32 {
G.with(|g| {
let g = g.borrow();
let view = match &g.view {
Some(v) => v,
None => return NONE,
};
let n = g.radius.len();
let mut best = NONE;
let mut best_d = f32::INFINITY;
for i in 0..n {
if !mask.is_empty() && mask[i] == 0 {
continue;
}
let sx = g.pos[2 * i] * view.scale + view.tx;
let sy = g.pos[2 * i + 1] * view.scale + view.ty;
let r = g.radius[i] * view.node_scale + 3.0; // 여유 3px
let dx = sx - x;