aboutsummaryrefslogtreecommitdiff
path: root/bv1/codec/src/split.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bv1/codec/src/split.rs')
-rw-r--r--bv1/codec/src/split.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/bv1/codec/src/split.rs b/bv1/codec/src/split.rs
new file mode 100644
index 0000000..c17179e
--- /dev/null
+++ b/bv1/codec/src/split.rs
@@ -0,0 +1,42 @@
+use crate::{View, P2};
+
+pub fn split(view: View) -> [View; 2] {
+ let s = view.size();
+ if s.x > s.y {
+ let mid_x = (view.a.x + view.b.x) / 2;
+ [
+ View {
+ a: view.a,
+ b: P2 {
+ x: mid_x,
+ y: view.b.y,
+ },
+ },
+ View {
+ a: P2 {
+ x: mid_x,
+ y: view.a.y,
+ },
+ b: view.b,
+ },
+ ]
+ } else {
+ let mid_y = (view.a.y + view.b.y) / 2;
+ [
+ View {
+ a: view.a,
+ b: P2 {
+ x: view.b.x,
+ y: mid_y,
+ },
+ },
+ View {
+ a: P2 {
+ x: view.a.x,
+ y: mid_y,
+ },
+ b: view.b,
+ },
+ ]
+ }
+}