INNER CODE UNIT · Rust
collision_count
OpenGMK/OpenGMK · gm8decompiler/src/collision.rs:101
let collision_count = map.data.iter().filter(|x| **x).count();
let ratio = (collision_count as f64)
/ (((map.bbox_right + 1 - map.bbox_left) * (map.bbox_bottom + 1 - map.bbox_top)) as f64);
// Highest diamond ratio I've seen is 0.5454.. Lowest disk ratio I've seen is 0.777..
if ratio < 0.65 { (Shape::Diamond, 0) } else { (Shape::Disk, 0) }
};
Some(GmkCollision {
bbox_top: top,
bbox_bottom: bottom,
bbox_left: left,
bbox_right: right,
shape,
alpha_tolerance: u32::from(alpha_tolerance),
})
}