master
elfeiin 2024-02-15 06:19:50 -08:00
parent 06dc90a158
commit faa7270267
Signed by: elfein
GPG Key ID: A53FDD4FD091A276
1 changed files with 13 additions and 7 deletions

View File

@ -24,13 +24,19 @@ pub fn write_quad_tree(input: Slice2D, output: &mut BitVec<u8>) {
input.get_slice2d((hmid..hlen, vmid..vlen)),
];
let mut buffer = BitVec::<u8>::new();
for quadrant in quadrants {
if let Some(v) = quadrant.get_all() {
output.push(false);
buffer.push(v);
} else {
output.push(true);
write_quad_tree(quadrant, &mut buffer);
if hlen == 2 || vlen == 2 {
for quadrant in quadrants {
buffer.push(quadrant.get((0, 0)));
}
} else {
for quadrant in quadrants {
if let Some(v) = quadrant.get_all() {
output.push(false);
buffer.push(v);
} else {
output.push(true);
write_quad_tree(quadrant, &mut buffer);
}
}
}
output.extend_from_bitslice(&buffer);