aboutsummaryrefslogtreecommitdiff
path: root/evc/src/bin
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-12-07 21:23:42 +0100
committermetamuffin <metamuffin@disroot.org>2022-12-07 21:23:42 +0100
commit2ac18802b58d671c10538e78d50a620baad9a188 (patch)
tree17f924039fd8f3dae2801902d4bdeaac8ea74624 /evc/src/bin
parent9d7986bbfd44b69a623fa29528b5d13000b91c77 (diff)
downloadvideo-codec-experiments-2ac18802b58d671c10538e78d50a620baad9a188.tar
video-codec-experiments-2ac18802b58d671c10538e78d50a620baad9a188.tar.bz2
video-codec-experiments-2ac18802b58d671c10538e78d50a620baad9a188.tar.zst
advanced transform
Diffstat (limited to 'evc/src/bin')
-rw-r--r--evc/src/bin/decode.rs50
1 files changed, 2 insertions, 48 deletions
diff --git a/evc/src/bin/decode.rs b/evc/src/bin/decode.rs
index 9be1a16..7b44ede 100644
--- a/evc/src/bin/decode.rs
+++ b/evc/src/bin/decode.rs
@@ -4,13 +4,9 @@ use clap::Parser;
use evc::{
block::Block,
codec::decode::decode_block,
- format::{
- header::Header,
- ser::{map_scalar8, Source},
- },
+ debug::draw_debug,
+ format::{header::Header, ser::Source},
frame::Frame,
- helpers::{matrix::Mat2, pixel::Pixel, vector::Vec2},
- view::View,
};
use log::info;
use std::io::{BufReader, BufWriter};
@@ -54,45 +50,3 @@ fn main() -> anyhow::Result<()> {
drop(input);
Ok(())
}
-
-fn draw_debug(block: &Block, mut target: View<&mut Frame>) {
- match &block {
- Block::Literal(_) => {
- target.draw_box(Pixel::GREEN);
- }
- Block::Split(box [a, b]) => {
- let [at, bt] = target.split_mut_unsafe();
- draw_debug(a, at);
- draw_debug(b, bt);
- }
- Block::Reference { translation } => {
- target.draw_box(Pixel::BLUE);
- target.frame.draw_line(
- target.center().into(),
- (target.center() + *translation).into(),
- Pixel::RED,
- )
- }
- Block::AdvancedReference(r) => {
- let mat = Mat2 {
- a: map_scalar8(r.transform.a),
- b: map_scalar8(r.transform.b),
- c: map_scalar8(r.transform.c),
- d: map_scalar8(r.transform.d),
- };
- let translation = Vec2 {
- x: map_scalar8(r.translation.x),
- y: map_scalar8(r.translation.y),
- };
- let tl = mat.transform(target.offset.into()) + translation;
- let tr = mat.transform((target.offset + target.size.x_only()).into()) + translation;
- let bl = mat.transform((target.offset + target.size.y_only()).into()) + translation;
- let br = mat.transform((target.offset + target.size).into()) + translation;
- target.frame.draw_line(tl, tr, Pixel::MAGENTA);
- target.frame.draw_line(tr, br, Pixel::MAGENTA);
- target.frame.draw_line(br, bl, Pixel::MAGENTA);
- target.frame.draw_line(bl, tl, Pixel::MAGENTA);
- target.draw_box(Pixel::CYAN);
- }
- }
-}