From ff0286325a3dd1f4fe7e29e78341b9bd63e1725c Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 14 Jul 2017 21:15:32 +0200 Subject: blind-matrix-{rotate,shear}: add -d MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/blind-matrix-rotate.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'src/blind-matrix-rotate.c') diff --git a/src/blind-matrix-rotate.c b/src/blind-matrix-rotate.c index d45f2fd..0b0fc18 100644 --- a/src/blind-matrix-rotate.c +++ b/src/blind-matrix-rotate.c @@ -1,9 +1,10 @@ /* See LICENSE file for copyright and license details. */ #include "common.h" -USAGE("[-c]") +USAGE("[-cd]") static int per_channel = 0; +static int in_degrees = 0; #define PROCESS(TYPE)\ do {\ @@ -19,15 +20,25 @@ static int per_channel = 0; }\ \ while (eread_frame(stream, buf)) {\ - if (per_channel) {\ + if (per_channel && in_degrees) {\ + for (i = 0; i < 4; i++) {\ + matrix[4][i] = matrix[0][i] = degcos(buf[i]);\ + matrix[3][i] = -(matrix[1][i] = degsin(buf[i]));\ + }\ + } else if (per_channel) {\ for (i = 0; i < 4; i++) {\ matrix[4][i] = matrix[0][i] = cos(buf[i]);\ matrix[3][i] = -(matrix[1][i] = sin(buf[i]));\ }\ } else {\ buf[1] *= buf[3];\ - matrix[4][0] = matrix[0][0] = cos(buf[1]);\ - matrix[3][0] = -(matrix[1][0] = sin(buf[1]));\ + if (in_degrees) {\ + matrix[4][0] = matrix[0][0] = degcos(buf[1]);\ + matrix[3][0] = -(matrix[1][0] = degsin(buf[1]));\ + } else {\ + matrix[4][0] = matrix[0][0] = cos(buf[1]);\ + matrix[3][0] = -(matrix[1][0] = sin(buf[1]));\ + }\ matrix[0][3] = matrix[0][2] = matrix[0][1] = matrix[0][0];\ matrix[1][3] = matrix[1][2] = matrix[1][1] = matrix[1][0];\ matrix[3][3] = matrix[3][2] = matrix[3][1] = matrix[3][0];\ @@ -50,6 +61,9 @@ main(int argc, char *argv[]) case 'c': per_channel = 1; break; + case 'd': + in_degrees = 1; + break; default: usage(); } ARGEND; -- cgit v1.2.3-70-g09d2