Hi, I was looking for some kind of magic in those hardcoded tables, but after using brute force (generate all valuse, put them into table and see what we have here) I realised that it's just (x,y) -> (i, angle) conversion and we're using only the angle...
I don't have Intuos4, so I need someone to test the patch. There are 2 questions: 1. Are todays PCs fast enough to use floating point calculations to convert tilt X and Y into rotation? (I think so, but again I can't test it). 2. There are small discrepancies beetween "hardcoded table" rotation and "on-the-fly" rotation. Are they small enough to avoid changing user experience? (I think so, but I want to be sure) If you want to see some comparison beetween hardcoded values and those calculated on-the-fly see here: http://firszt.eu/PLD/tilt.ods There is big difference for (0,0) point, but if I understand the whole idea correctly if shouldn't make difference. If results of the test are OK, we could combine those 2 remaining functions (generic rotation and Intuos4 rotation) into one and move them to wcmFilter.c or wcmCommon.c and remove wcmTilt2Rotation.c. -- Przemo
>From 8cdbb16abd0086fd752241b2c25662eb16d37498 Mon Sep 17 00:00:00 2001 From: Przemo Firszt <prz...@firszt.eu> Date: Mon, 11 Jan 2010 15:34:40 +0000 Subject: [PATCH 5/5] Replace hardcoded rotation tables using function Signed-off-by: Przemo Firszt <prz...@firszt.eu> --- src/wcmTilt2Rotation.c | 702 +----------------------------------------------- 1 files changed, 6 insertions(+), 696 deletions(-) diff --git a/src/wcmTilt2Rotation.c b/src/wcmTilt2Rotation.c index 23fd878..925bbd4 100644 --- a/src/wcmTilt2Rotation.c +++ b/src/wcmTilt2Rotation.c @@ -21,673 +21,14 @@ #endif #include "xf86Wacom.h" +#include <math.h> -void wcmTilt2R(WacomDeviceStatePtr ds); - -/* Constants to convert X and Y tilt to rotation */ -unsigned short tiltTable_00[65] = { - ( 0 | (90 << 8)),( 0 | (89 << 8)),( 0 | (88 << 8)),( 0 | (87 << 8)),( 0 | (86 << 8)), - ( 0 | (85 << 8)),( 0 | (84 << 8)),( 0 | (83 << 8)),( 0 | (82 << 8)),( 0 | (81 << 8)), - ( 0 | (80 << 8)),( 0 | (79 << 8)),( 0 | (78 << 8)),( 0 | (77 << 8)),( 0 | (76 << 8)), - ( 0 | (75 << 8)),( 0 | (74 << 8)),( 0 | (73 << 8)),( 0 | (72 << 8)),( 0 | (71 << 8)), - ( 0 | (70 << 8)),( 0 | (69 << 8)),( 0 | (68 << 8)),( 0 | (67 << 8)),( 0 | (66 << 8)), - ( 0 | (65 << 8)),( 0 | (64 << 8)),( 0 | (63 << 8)),( 0 | (62 << 8)),( 0 | (61 << 8)), - ( 0 | (60 << 8)),( 0 | (59 << 8)),( 0 | (58 << 8)),( 0 | (57 << 8)),( 0 | (56 << 8)), - ( 0 | (55 << 8)),( 0 | (54 << 8)),( 0 | (53 << 8)),( 0 | (52 << 8)),( 0 | (51 << 8)), - ( 0 | (50 << 8)),( 0 | (49 << 8)),( 0 | (48 << 8)),( 0 | (47 << 8)),( 0 | (46 << 8)), - ( 0 | (45 << 8)),( 0 | (44 << 8)),( 0 | (43 << 8)),( 0 | (42 << 8)),( 0 | (41 << 8)), - ( 0 | (40 << 8)),( 0 | (39 << 8)),( 0 | (38 << 8)),( 0 | (37 << 8)),( 0 | (36 << 8)), - ( 0 | (35 << 8)),( 0 | (34 << 8)),( 0 | (33 << 8)),( 0 | (32 << 8)),( 0 | (31 << 8)), - ( 0 | (30 << 8)),( 0 | (29 << 8)),( 0 | (28 << 8)),( 0 | (27 << 8)),( 0 | (26 << 8)) -}; - -unsigned short tiltTable_01[64] = { - (45 | (89 << 8)),(27 | (88 << 8)),(18 | (87 << 8)),(14 | (86 << 8)),(11 | (85 << 8)), - ( 9 | (84 << 8)),( 8 | (83 << 8)),( 7 | (82 << 8)),( 6 | (81 << 8)),( 6 | (80 << 8)), - ( 5 | (79 << 8)),( 5 | (78 << 8)),( 4 | (77 << 8)),( 4 | (76 << 8)),( 4 | (75 << 8)), - ( 3 | (74 << 8)),( 3 | (73 << 8)),( 3 | (72 << 8)),( 3 | (71 << 8)),( 3 | (70 << 8)), - ( 3 | (69 << 8)),( 2 | (68 << 8)),( 2 | (67 << 8)),( 2 | (66 << 8)),( 2 | (65 << 8)), - ( 2 | (64 << 8)),( 2 | (63 << 8)),( 2 | (62 << 8)),( 2 | (61 << 8)),( 2 | (60 << 8)), - ( 2 | (59 << 8)),( 2 | (58 << 8)),( 2 | (57 << 8)),( 1 | (56 << 8)),( 1 | (55 << 8)), - ( 1 | (54 << 8)),( 1 | (53 << 8)),( 1 | (52 << 8)),( 1 | (51 << 8)),( 1 | (50 << 8)), - ( 1 | (49 << 8)),( 1 | (48 << 8)),( 1 | (47 << 8)),( 1 | (46 << 8)),( 1 | (45 << 8)), - ( 1 | (44 << 8)),( 1 | (43 << 8)),( 1 | (42 << 8)),( 1 | (41 << 8)),( 1 | (40 << 8)), - ( 1 | (39 << 8)),( 1 | (38 << 8)),( 1 | (37 << 8)),( 1 | (36 << 8)),( 1 | (35 << 8)), - ( 1 | (34 << 8)),( 1 | (33 << 8)),( 1 | (32 << 8)),( 1 | (31 << 8)),( 1 | (30 << 8)), - ( 1 | (29 << 8)),( 1 | (28 << 8)),( 1 | (27 << 8)),( 0 | (26 << 8)) -}; - -unsigned short tiltTable_02[63] = { - (45 | (87 << 8)),(34 | (86 << 8)),(27 | (86 << 8)),(22 | (85 << 8)),(18 | (84 << 8)), - (16 | (83 << 8)),(14 | (82 << 8)),(12 | (81 << 8)),(11 | (80 << 8)),(10 | (79 << 8)), - ( 9 | (78 << 8)),( 9 | (77 << 8)),( 8 | (76 << 8)),( 7 | (75 << 8)),( 7 | (74 << 8)), - ( 7 | (73 << 8)),( 6 | (72 << 8)),( 6 | (71 << 8)),( 5 | (70 << 8)),( 5 | (69 << 8)), - ( 5 | (68 << 8)),( 5 | (67 << 8)),( 4 | (66 << 8)),( 4 | (65 << 8)),( 4 | (64 << 8)), - ( 4 | (63 << 8)),( 4 | (62 << 8)),( 4 | (61 << 8)),( 3 | (60 << 8)),( 3 | (59 << 8)), - ( 3 | (58 << 8)),( 3 | (57 << 8)),( 3 | (56 << 8)),( 3 | (55 << 8)),( 3 | (54 << 8)), - ( 3 | (53 << 8)),( 3 | (52 << 8)),( 2 | (51 << 8)),( 2 | (50 << 8)),( 2 | (49 << 8)), - ( 2 | (48 << 8)),( 2 | (47 << 8)),( 2 | (46 << 8)),( 2 | (45 << 8)),( 2 | (44 << 8)), - ( 2 | (43 << 8)),( 2 | (42 << 8)),( 2 | (41 << 8)),( 2 | (40 << 8)),( 2 | (39 << 8)), - ( 2 | (38 << 8)),( 2 | (37 << 8)),( 1 | (36 << 8)),( 1 | (35 << 8)),( 1 | (34 << 8)), - ( 1 | (33 << 8)),( 1 | (32 << 8)),( 1 | (31 << 8)),( 1 | (30 << 8)),( 1 | (29 << 8)), - ( 1 | (28 << 8)),( 1 | (27 << 8)),( 1 | (26 << 8)) -}; - -unsigned short tiltTable_03[62] = { - (45 | (86 << 8)),(37 | (85 << 8)),(31 | (84 << 8)),(27 | (83 << 8)),(23 | (82 << 8)), - (20 | (81 << 8)),(18 | (81 << 8)),(17 | (80 << 8)),(15 | (79 << 8)),(14 | (78 << 8)), - (13 | (77 << 8)),(12 | (76 << 8)),(11 | (75 << 8)),(10 | (74 << 8)),(10 | (73 << 8)), - ( 9 | (72 << 8)),( 9 | (71 << 8)),( 8 | (70 << 8)),( 8 | (69 << 8)),( 7 | (68 << 8)), - ( 7 | (67 << 8)),( 7 | (66 << 8)),( 6 | (65 << 8)),( 6 | (64 << 8)),( 6 | (63 << 8)), - ( 6 | (62 << 8)),( 5 | (61 << 8)),( 5 | (60 << 8)),( 5 | (59 << 8)),( 5 | (58 << 8)), - ( 5 | (57 << 8)),( 4 | (56 << 8)),( 4 | (55 << 8)),( 4 | (54 << 8)),( 4 | (53 << 8)), - ( 4 | (52 << 8)),( 4 | (51 << 8)),( 4 | (50 << 8)),( 3 | (49 << 8)),( 3 | (48 << 8)), - ( 3 | (47 << 8)),( 3 | (46 << 8)),( 3 | (45 << 8)),( 3 | (44 << 8)),( 3 | (43 << 8)), - ( 3 | (42 << 8)),( 3 | (41 << 8)),( 3 | (40 << 8)),( 2 | (39 << 8)),( 2 | (38 << 8)), - ( 2 | (37 << 8)),( 2 | (36 << 8)),( 2 | (35 << 8)),( 2 | (34 << 8)),( 2 | (33 << 8)), - ( 2 | (32 << 8)),( 2 | (31 << 8)),( 2 | (30 << 8)),( 2 | (29 << 8)),( 2 | (28 << 8)), - ( 2 | (27 << 8)),( 1 | (26 << 8)) -}; - -unsigned short tiltTable_04[61] = { - (45 | (84 << 8)),(39 | (84 << 8)),(34 | (83 << 8)),(30 | (82 << 8)),(26 | (81 << 8)), - (24 | (80 << 8)),(22 | (79 << 8)),(20 | (78 << 8)),(18 | (77 << 8)),(17 | (76 << 8)), - (16 | (75 << 8)),(15 | (75 << 8)),(14 | (74 << 8)),(13 | (73 << 8)),(12 | (72 << 8)), - (11 | (71 << 8)),(11 | (70 << 8)),(10 | (69 << 8)),(10 | (68 << 8)),( 9 | (67 << 8)), - ( 9 | (66 << 8)),( 9 | (65 << 8)),( 8 | (64 << 8)),( 8 | (63 << 8)),( 7 | (62 << 8)), - ( 7 | (61 << 8)),( 7 | (60 << 8)),( 7 | (59 << 8)),( 6 | (58 << 8)),( 6 | (57 << 8)), - ( 6 | (56 << 8)),( 6 | (55 << 8)),( 5 | (54 << 8)),( 5 | (53 << 8)),( 5 | (52 << 8)), - ( 5 | (51 << 8)),( 5 | (50 << 8)),( 5 | (49 << 8)),( 4 | (48 << 8)),( 4 | (47 << 8)), - ( 4 | (46 << 8)),( 4 | (45 << 8)),( 4 | (44 << 8)),( 4 | (43 << 8)),( 4 | (42 << 8)), - ( 3 | (41 << 8)),( 3 | (40 << 8)),( 3 | (39 << 8)),( 3 | (38 << 8)),( 3 | (37 << 8)), - ( 3 | (36 << 8)),( 3 | (35 << 8)),( 3 | (34 << 8)),( 3 | (33 << 8)),( 3 | (32 << 8)), - ( 2 | (31 << 8)),( 2 | (30 << 8)),( 2 | (29 << 8)),( 2 | (28 << 8)),( 2 | (27 << 8)), - ( 2 | (26 << 8)) -}; - -unsigned short tiltTable_05[60] = { - (45 | (83 << 8)),(40 | (82 << 8)),(35 | (81 << 8)),(32 | (81 << 8)),(29 | (80 << 8)), - (26 | (79 << 8)),(24 | (78 << 8)),(22 | (77 << 8)),(21 | (76 << 8)),(19 | (75 << 8)), - (18 | (74 << 8)),(17 | (73 << 8)),(16 | (72 << 8)),(15 | (71 << 8)),(14 | (70 << 8)), - (14 | (69 << 8)),(13 | (69 << 8)),(12 | (68 << 8)),(12 | (67 << 8)),(11 | (66 << 8)), - (11 | (65 << 8)),(10 | (64 << 8)),(10 | (63 << 8)),( 9 | (62 << 8)),( 9 | (61 << 8)), - ( 9 | (60 << 8)),( 8 | (59 << 8)),( 8 | (58 << 8)),( 8 | (57 << 8)),( 7 | (56 << 8)), - ( 7 | (55 << 8)),( 7 | (54 << 8)),( 7 | (53 << 8)),( 6 | (52 << 8)),( 6 | (51 << 8)), - ( 6 | (50 << 8)),( 6 | (49 << 8)),( 6 | (48 << 8)),( 5 | (47 << 8)),( 5 | (46 << 8)), - ( 5 | (45 << 8)),( 5 | (44 << 8)),( 5 | (43 << 8)),( 5 | (42 << 8)),( 4 | (41 << 8)), - ( 4 | (40 << 8)),( 4 | (39 << 8)),( 4 | (38 << 8)),( 4 | (37 << 8)),( 4 | (36 << 8)), - ( 4 | (35 << 8)),( 3 | (34 << 8)),( 3 | (33 << 8)),( 3 | (32 << 8)),( 3 | (31 << 8)), - ( 3 | (30 << 8)),( 3 | (29 << 8)),( 3 | (28 << 8)),( 3 | (27 << 8)),( 2 | (26 << 8)) -}; - -unsigned short tiltTable_06[59] = { - (45 | (82 << 8)),(41 | (81 << 8)),(37 | (80 << 8)),(34 | (79 << 8)),(31 | (78 << 8)), - (28 | (78 << 8)),(26 | (77 << 8)),(24 | (76 << 8)),(23 | (75 << 8)),(21 | (74 << 8)), - (20 | (73 << 8)),(19 | (72 << 8)),(18 | (71 << 8)),(17 | (70 << 8)),(16 | (69 << 8)), - (15 | (68 << 8)),(15 | (67 << 8)),(14 | (66 << 8)),(13 | (65 << 8)),(13 | (64 << 8)), - (12 | (63 << 8)),(12 | (63 << 8)),(11 | (62 << 8)),(11 | (61 << 8)),(10 | (60 << 8)), - (10 | (59 << 8)),(10 | (58 << 8)),( 9 | (57 << 8)),( 9 | (56 << 8)),( 9 | (55 << 8)), - ( 8 | (54 << 8)),( 8 | (53 << 8)),( 8 | (52 << 8)),( 7 | (51 << 8)),( 7 | (50 << 8)), - ( 7 | (49 << 8)),( 7 | (48 << 8)),( 6 | (47 << 8)),( 6 | (46 << 8)),( 6 | (45 << 8)), - ( 6 | (44 << 8)),( 6 | (43 << 8)),( 5 | (42 << 8)),( 5 | (41 << 8)),( 5 | (40 << 8)), - ( 5 | (39 << 8)),( 5 | (38 << 8)),( 5 | (37 << 8)),( 4 | (36 << 8)),( 4 | (35 << 8)), - ( 4 | (34 << 8)),( 4 | (33 << 8)),( 4 | (32 << 8)),( 4 | (31 << 8)),( 3 | (30 << 8)), - ( 3 | (29 << 8)),( 3 | (28 << 8)),( 3 | (27 << 8)),( 3 | (26 << 8)) -}; - -unsigned short tiltTable_07[58] = { - (45 | (80 << 8)),(41 | (79 << 8)),(38 | (79 << 8)),(35 | (78 << 8)),(32 | (77 << 8)), - (30 | (76 << 8)),(28 | (75 << 8)),(26 | (74 << 8)),(25 | (74 << 8)),(23 | (73 << 8)), - (22 | (72 << 8)),(21 | (71 << 8)),(20 | (70 << 8)),(19 | (69 << 8)),(18 | (68 << 8)), - (17 | (67 << 8)),(16 | (66 << 8)),(15 | (65 << 8)),(15 | (64 << 8)),(14 | (63 << 8)), - (14 | (62 << 8)),(13 | (61 << 8)),(12 | (60 << 8)),(12 | (59 << 8)),(12 | (58 << 8)), - (11 | (58 << 8)),(11 | (57 << 8)),(10 | (56 << 8)),(10 | (55 << 8)),(10 | (54 << 8)), - ( 9 | (53 << 8)),( 9 | (52 << 8)),( 9 | (51 << 8)),( 8 | (50 << 8)),( 8 | (49 << 8)), - ( 8 | (48 << 8)),( 8 | (47 << 8)),( 7 | (46 << 8)),( 7 | (45 << 8)),( 7 | (44 << 8)), - ( 7 | (43 << 8)),( 6 | (42 << 8)),( 6 | (41 << 8)),( 6 | (40 << 8)),( 6 | (39 << 8)), - ( 5 | (38 << 8)),( 5 | (37 << 8)),( 5 | (36 << 8)),( 5 | (35 << 8)),( 5 | (34 << 8)), - ( 5 | (33 << 8)),( 4 | (32 << 8)),( 4 | (31 << 8)),( 4 | (30 << 8)),( 4 | (29 << 8)), - ( 4 | (28 << 8)),( 4 | (27 << 8)),( 3 | (26 << 8)) -}; - -unsigned short tiltTable_08[57] = { - (45 | (79 << 8)),(42 | (78 << 8)),(39 | (77 << 8)),(36 | (77 << 8)),(33 | (76 << 8)), - (31 | (75 << 8)),(29 | (74 << 8)),(28 | (73 << 8)),(26 | (72 << 8)),(25 | (71 << 8)), - (23 | (71 << 8)),(22 | (70 << 8)),(21 | (69 << 8)),(20 | (68 << 8)),(19 | (67 << 8)), - (18 | (66 << 8)),(18 | (65 << 8)),(17 | (64 << 8)),(16 | (63 << 8)),(15 | (62 << 8)), - (15 | (61 << 8)),(14 | (60 << 8)),(14 | (59 << 8)),(13 | (58 << 8)),(13 | (57 << 8)), - (12 | (56 << 8)),(12 | (55 << 8)),(11 | (54 << 8)),(11 | (53 << 8)),(11 | (53 << 8)), - (10 | (52 << 8)),(10 | (51 << 8)),(10 | (50 << 8)),( 9 | (49 << 8)),( 9 | (48 << 8)), - ( 9 | (47 << 8)),( 8 | (46 << 8)),( 8 | (45 << 8)),( 8 | (44 << 8)),( 7 | (43 << 8)), - ( 7 | (42 << 8)),( 7 | (41 << 8)),( 7 | (40 << 8)),( 6 | (39 << 8)),( 6 | (38 << 8)), - ( 6 | (37 << 8)),( 6 | (36 << 8)),( 6 | (35 << 8)),( 5 | (34 << 8)),( 5 | (33 << 8)), - ( 5 | (32 << 8)),( 5 | (31 << 8)),( 5 | (30 << 8)),( 4 | (29 << 8)),( 4 | (28 << 8)), - ( 4 | (27 << 8)),( 4 | (26 << 8)) -}; - -unsigned short tiltTable_09[56] = { - (45 | (77 << 8)),(42 | (77 << 8)),(39 | (76 << 8)),(37 | (75 << 8)),(34 | (74 << 8)), - (32 | (74 << 8)),(31 | (73 << 8)),(29 | (72 << 8)),(27 | (71 << 8)),(26 | (70 << 8)), - (25 | (69 << 8)),(24 | (68 << 8)),(22 | (67 << 8)),(21 | (67 << 8)),(20 | (66 << 8)), - (20 | (65 << 8)),(19 | (64 << 8)),(18 | (63 << 8)),(17 | (62 << 8)),(17 | (61 << 8)), - (16 | (60 << 8)),(15 | (59 << 8)),(15 | (58 << 8)),(14 | (57 << 8)),(14 | (56 << 8)), - (13 | (55 << 8)),(13 | (54 << 8)),(12 | (53 << 8)),(12 | (52 << 8)),(11 | (51 << 8)), - (11 | (50 << 8)),(11 | (50 << 8)),(10 | (49 << 8)),(10 | (48 << 8)),(10 | (47 << 8)), - ( 9 | (46 << 8)),( 9 | (45 << 8)),( 9 | (44 << 8)),( 8 | (43 << 8)),( 8 | (42 << 8)), - ( 8 | (41 << 8)),( 8 | (40 << 8)),( 7 | (39 << 8)),( 7 | (38 << 8)),( 7 | (37 << 8)), - ( 7 | (36 << 8)),( 6 | (35 << 8)),( 6 | (34 << 8)),( 6 | (33 << 8)),( 6 | (32 << 8)), - ( 5 | (31 << 8)),( 5 | (30 << 8)),( 5 | (29 << 8)),( 5 | (28 << 8)),( 5 | (27 << 8)), - ( 4 | (26 << 8)) -}; - -unsigned short tiltTable_10[55] = { - (45 | (76 << 8)),(42 | (75 << 8)),(40 | (75 << 8)),(37 | (74 << 8)),(35 | (73 << 8)), - (33 | (72 << 8)),(32 | (71 << 8)),(30 | (71 << 8)),(28 | (70 << 8)),(27 | (69 << 8)), - (26 | (68 << 8)),(25 | (67 << 8)),(24 | (66 << 8)),(23 | (65 << 8)),(22 | (64 << 8)), - (21 | (64 << 8)),(20 | (63 << 8)),(19 | (62 << 8)),(18 | (61 << 8)),(18 | (60 << 8)), - (17 | (59 << 8)),(16 | (58 << 8)),(16 | (57 << 8)),(15 | (56 << 8)),(15 | (55 << 8)), - (14 | (54 << 8)),(14 | (53 << 8)),(13 | (52 << 8)),(13 | (51 << 8)),(12 | (50 << 8)), - (12 | (49 << 8)),(11 | (48 << 8)),(11 | (47 << 8)),(11 | (46 << 8)),(10 | (46 << 8)), - (10 | (45 << 8)),(10 | (44 << 8)),( 9 | (43 << 8)),( 9 | (42 << 8)),( 9 | (41 << 8)), - ( 8 | (40 << 8)),( 8 | (39 << 8)),( 8 | (38 << 8)),( 8 | (37 << 8)),( 7 | (36 << 8)), - ( 7 | (35 << 8)),( 7 | (34 << 8)),( 7 | (33 << 8)),( 6 | (32 << 8)),( 6 | (31 << 8)), - ( 6 | (30 << 8)),( 6 | (29 << 8)),( 5 | (28 << 8)),( 5 | (27 << 8)),( 5 | (26 << 8)) -}; - -unsigned short tiltTable_11[54] = { - (45 | (75 << 8)),(42 | (74 << 8)),(40 | (73 << 8)),(38 | (72 << 8)),(36 | (72 << 8)), - (34 | (71 << 8)),(32 | (70 << 8)),(31 | (69 << 8)),(29 | (68 << 8)),(28 | (68 << 8)), - (27 | (67 << 8)),(26 | (66 << 8)),(25 | (65 << 8)),(24 | (64 << 8)),(23 | (63 << 8)), - (22 | (62 << 8)),(21 | (61 << 8)),(20 | (60 << 8)),(19 | (60 << 8)),(19 | (59 << 8)), - (18 | (58 << 8)),(17 | (57 << 8)),(17 | (56 << 8)),(16 | (55 << 8)),(16 | (54 << 8)), - (15 | (53 << 8)),(14 | (52 << 8)),(14 | (51 << 8)),(13 | (50 << 8)),(13 | (49 << 8)), - (13 | (48 << 8)),(12 | (47 << 8)),(12 | (46 << 8)),(11 | (45 << 8)),(11 | (44 << 8)), - (11 | (44 << 8)),(10 | (43 << 8)),(10 | (42 << 8)),(10 | (41 << 8)),( 9 | (40 << 8)), - ( 9 | (39 << 8)),( 9 | (38 << 8)),( 8 | (37 << 8)),( 8 | (36 << 8)),( 8 | (35 << 8)), - ( 7 | (34 << 8)),( 7 | (33 << 8)),( 7 | (32 << 8)),( 7 | (31 << 8)),( 6 | (30 << 8)), - ( 6 | (29 << 8)),( 6 | (28 << 8)),( 6 | (27 << 8)),( 5 | (26 << 8)) -}; - -unsigned short tiltTable_12[53] = { - (45 | (73 << 8)),(43 | (73 << 8)),(40 | (72 << 8)),(38 | (71 << 8)),(37 | (70 << 8)), - (35 | (70 << 8)),(33 | (69 << 8)),(32 | (68 << 8)),(30 | (67 << 8)),(29 | (66 << 8)), - (28 | (65 << 8)),(27 | (65 << 8)),(26 | (64 << 8)),(25 | (63 << 8)),(24 | (62 << 8)), - (23 | (61 << 8)),(22 | (60 << 8)),(21 | (59 << 8)),(20 | (58 << 8)),(19 | (57 << 8)), - (19 | (57 << 8)),(18 | (56 << 8)),(17 | (55 << 8)),(17 | (54 << 8)),(16 | (53 << 8)), - (16 | (52 << 8)),(15 | (51 << 8)),(15 | (50 << 8)),(14 | (49 << 8)),(14 | (48 << 8)), - (13 | (47 << 8)),(13 | (46 << 8)),(12 | (45 << 8)),(12 | (44 << 8)),(12 | (43 << 8)), - (11 | (42 << 8)),(11 | (41 << 8)),(10 | (41 << 8)),(10 | (40 << 8)),(10 | (39 << 8)), - ( 9 | (38 << 8)),( 9 | (37 << 8)),( 9 | (36 << 8)),( 8 | (35 << 8)),( 8 | (34 << 8)), - ( 8 | (33 << 8)),( 8 | (32 << 8)),( 7 | (31 << 8)),( 7 | (30 << 8)),( 7 | (29 << 8)), - ( 6 | (28 << 8)),( 6 | (27 << 8)),( 6 | (26 << 8)) -}; - -unsigned short tiltTable_13[52] = { - (45 | (72 << 8)),(43 | (71 << 8)),(41 | (71 << 8)),(39 | (70 << 8)),(37 | (69 << 8)), - (35 | (68 << 8)),(34 | (67 << 8)),(32 | (67 << 8)),(31 | (66 << 8)),(30 | (65 << 8)), - (29 | (64 << 8)),(27 | (63 << 8)),(26 | (63 << 8)),(25 | (62 << 8)),(24 | (61 << 8)), - (23 | (60 << 8)),(23 | (59 << 8)),(22 | (58 << 8)),(21 | (57 << 8)),(20 | (56 << 8)), - (20 | (55 << 8)),(19 | (55 << 8)),(18 | (54 << 8)),(18 | (53 << 8)),(17 | (52 << 8)), - (16 | (51 << 8)),(16 | (50 << 8)),(15 | (49 << 8)),(15 | (48 << 8)),(14 | (47 << 8)), - (14 | (46 << 8)),(13 | (45 << 8)),(13 | (44 << 8)),(13 | (43 << 8)),(12 | (42 << 8)), - (12 | (41 << 8)),(11 | (40 << 8)),(11 | (39 << 8)),(11 | (39 << 8)),(10 | (38 << 8)), - (10 | (37 << 8)),(10 | (36 << 8)),( 9 | (35 << 8)),( 9 | (34 << 8)),( 9 | (33 << 8)), - ( 8 | (32 << 8)),( 8 | (31 << 8)),( 8 | (30 << 8)),( 7 | (29 << 8)),( 7 | (28 << 8)), - ( 7 | (27 << 8)),( 6 | (26 << 8)) -}; - -unsigned short tiltTable_14[51] = { - (45 | (71 << 8)),(43 | (70 << 8)),(41 | (69 << 8)),(39 | (68 << 8)),(38 | (68 << 8)), - (36 | (67 << 8)),(34 | (66 << 8)),(33 | (65 << 8)),(32 | (65 << 8)),(30 | (64 << 8)), - (29 | (63 << 8)),(28 | (62 << 8)),(27 | (61 << 8)),(26 | (60 << 8)),(25 | (60 << 8)), - (24 | (59 << 8)),(23 | (58 << 8)),(23 | (57 << 8)),(22 | (56 << 8)),(21 | (55 << 8)), - (20 | (54 << 8)),(20 | (53 << 8)),(19 | (52 << 8)),(18 | (52 << 8)),(18 | (51 << 8)), - (17 | (50 << 8)),(17 | (49 << 8)),(16 | (48 << 8)),(15 | (47 << 8)),(15 | (46 << 8)), - (14 | (45 << 8)),(14 | (44 << 8)),(14 | (43 << 8)),(13 | (42 << 8)),(13 | (41 << 8)), - (12 | (40 << 8)),(12 | (39 << 8)),(11 | (38 << 8)),(11 | (37 << 8)),(11 | (37 << 8)), - (10 | (36 << 8)),(10 | (35 << 8)),(10 | (34 << 8)),( 9 | (33 << 8)),( 9 | (32 << 8)), - ( 9 | (31 << 8)),( 8 | (30 << 8)),( 8 | (29 << 8)),( 8 | (28 << 8)),( 7 | (27 << 8)), - ( 7 | (26 << 8)) -}; - -unsigned short tiltTable_15[50] = { - (45 | (69 << 8)),(43 | (69 << 8)),(41 | (68 << 8)),(40 | (67 << 8)),(38 | (66 << 8)), - (36 | (66 << 8)),(35 | (65 << 8)),(34 | (64 << 8)),(32 | (63 << 8)),(31 | (63 << 8)), - (30 | (62 << 8)),(29 | (61 << 8)),(28 | (60 << 8)),(27 | (59 << 8)),(26 | (58 << 8)), - (25 | (58 << 8)),(24 | (57 << 8)),(23 | (56 << 8)),(22 | (55 << 8)),(22 | (54 << 8)), - (21 | (53 << 8)),(20 | (52 << 8)),(20 | (51 << 8)),(19 | (50 << 8)),(18 | (50 << 8)), - (18 | (49 << 8)),(17 | (48 << 8)),(17 | (47 << 8)),(16 | (46 << 8)),(16 | (45 << 8)), - (15 | (44 << 8)),(15 | (43 << 8)),(14 | (42 << 8)),(14 | (41 << 8)),(13 | (40 << 8)), - (13 | (39 << 8)),(12 | (38 << 8)),(12 | (37 << 8)),(11 | (36 << 8)),(11 | (35 << 8)), - (11 | (35 << 8)),(10 | (34 << 8)),(10 | (33 << 8)),(10 | (32 << 8)),( 9 | (31 << 8)), - ( 9 | (30 << 8)),( 8 | (29 << 8)),( 8 | (28 << 8)),( 8 | (27 << 8)),( 7 | (26 << 8)) -}; - -unsigned short tiltTable_16[49] = { - (45 | (68 << 8)),(43 | (67 << 8)),(41 | (67 << 8)),(40 | (66 << 8)),(38 | (65 << 8)), - (37 | (64 << 8)),(35 | (64 << 8)),(34 | (63 << 8)),(33 | (62 << 8)),(32 | (61 << 8)), - (30 | (60 << 8)),(29 | (60 << 8)),(28 | (59 << 8)),(27 | (58 << 8)),(26 | (57 << 8)), - (26 | (56 << 8)),(25 | (55 << 8)),(24 | (55 << 8)),(23 | (54 << 8)),(22 | (53 << 8)), - (22 | (52 << 8)),(21 | (51 << 8)),(20 | (50 << 8)),(19 | (49 << 8)),(19 | (48 << 8)), - (18 | (48 << 8)),(18 | (47 << 8)),(17 | (46 << 8)),(17 | (45 << 8)),(16 | (44 << 8)), - (15 | (43 << 8)),(15 | (42 << 8)),(14 | (41 << 8)),(14 | (40 << 8)),(14 | (39 << 8)), - (13 | (38 << 8)),(13 | (37 << 8)),(12 | (36 << 8)),(12 | (35 << 8)),(11 | (34 << 8)), - (11 | (34 << 8)),(11 | (33 << 8)),(10 | (32 << 8)),(10 | (31 << 8)),( 9 | (30 << 8)), - ( 9 | (29 << 8)),( 9 | (28 << 8)),( 8 | (27 << 8)),( 8 | (26 << 8)) -}; - -unsigned short tiltTable_17[48] = { - (45 | (67 << 8)),(43 | (66 << 8)),(42 | (65 << 8)),(40 | (65 << 8)),(39 | (64 << 8)), - (37 | (63 << 8)),(36 | (62 << 8)),(34 | (62 << 8)),(33 | (61 << 8)),(32 | (60 << 8)), - (31 | (59 << 8)),(30 | (58 << 8)),(29 | (58 << 8)),(28 | (57 << 8)),(27 | (56 << 8)), - (26 | (55 << 8)),(25 | (54 << 8)),(24 | (53 << 8)),(24 | (53 << 8)),(23 | (52 << 8)), - (22 | (51 << 8)),(21 | (50 << 8)),(21 | (49 << 8)),(20 | (48 << 8)),(19 | (47 << 8)), - (19 | (46 << 8)),(18 | (46 << 8)),(18 | (45 << 8)),(17 | (44 << 8)),(16 | (43 << 8)), - (16 | (42 << 8)),(15 | (41 << 8)),(15 | (40 << 8)),(14 | (39 << 8)),(14 | (38 << 8)), - (13 | (37 << 8)),(13 | (36 << 8)),(13 | (35 << 8)),(12 | (34 << 8)),(12 | (33 << 8)), - (11 | (32 << 8)),(11 | (32 << 8)),(10 | (31 << 8)),(10 | (30 << 8)),(10 | (29 << 8)), - ( 9 | (28 << 8)),( 9 | (27 << 8)),( 8 | (26 << 8)) -}; - -unsigned short tiltTable_18[47] = { - (45 | (65 << 8)),(43 | (65 << 8)),(42 | (64 << 8)),(40 | (63 << 8)),(39 | (63 << 8)), - (37 | (62 << 8)),(36 | (61 << 8)),(35 | (60 << 8)),(34 | (60 << 8)),(33 | (59 << 8)), - (31 | (58 << 8)),(30 | (57 << 8)),(29 | (56 << 8)),(28 | (56 << 8)),(27 | (55 << 8)), - (27 | (54 << 8)),(26 | (53 << 8)),(25 | (52 << 8)),(24 | (51 << 8)),(23 | (51 << 8)), - (23 | (50 << 8)),(22 | (49 << 8)),(21 | (48 << 8)),(20 | (47 << 8)),(20 | (46 << 8)), - (19 | (45 << 8)),(19 | (44 << 8)),(18 | (44 << 8)),(17 | (43 << 8)),(17 | (42 << 8)), - (16 | (41 << 8)),(16 | (40 << 8)),(15 | (39 << 8)),(15 | (38 << 8)),(14 | (37 << 8)), - (14 | (36 << 8)),(13 | (35 << 8)),(13 | (34 << 8)),(12 | (33 << 8)),(12 | (32 << 8)), - (11 | (31 << 8)),(11 | (31 << 8)),(11 | (30 << 8)),(10 | (29 << 8)),(10 | (28 << 8)), - ( 9 | (27 << 8)),( 9 | (26 << 8)) -}; - -unsigned short tiltTable_19[46] = { - (45 | (64 << 8)),(43 | (63 << 8)),(42 | (63 << 8)),(40 | (62 << 8)),(39 | (61 << 8)), - (38 | (61 << 8)),(36 | (60 << 8)),(35 | (59 << 8)),(34 | (58 << 8)),(33 | (58 << 8)), - (32 | (57 << 8)),(31 | (56 << 8)),(30 | (55 << 8)),(29 | (54 << 8)),(28 | (54 << 8)), - (27 | (53 << 8)),(26 | (52 << 8)),(25 | (51 << 8)),(25 | (50 << 8)),(24 | (50 << 8)), - (23 | (49 << 8)),(22 | (48 << 8)),(22 | (47 << 8)),(21 | (46 << 8)),(20 | (45 << 8)), - (20 | (44 << 8)),(19 | (43 << 8)),(18 | (43 << 8)),(18 | (42 << 8)),(17 | (41 << 8)), - (17 | (40 << 8)),(16 | (39 << 8)),(16 | (38 << 8)),(15 | (37 << 8)),(15 | (36 << 8)), - (14 | (35 << 8)),(14 | (34 << 8)),(13 | (33 << 8)),(13 | (32 << 8)),(12 | (31 << 8)), - (12 | (30 << 8)),(11 | (30 << 8)),(11 | (29 << 8)),(10 | (28 << 8)),(10 | (27 << 8)), - (10 | (26 << 8)) -}; - -unsigned short tiltTable_20[45] = { - (45 | (63 << 8)),(43 | (62 << 8)),(42 | (61 << 8)),(41 | (61 << 8)),(39 | (60 << 8)), - (38 | (59 << 8)),(37 | (59 << 8)),(36 | (58 << 8)),(34 | (57 << 8)),(33 | (56 << 8)), - (32 | (56 << 8)),(31 | (55 << 8)),(30 | (54 << 8)),(29 | (53 << 8)),(28 | (53 << 8)), - (27 | (52 << 8)),(27 | (51 << 8)),(26 | (50 << 8)),(25 | (49 << 8)),(24 | (48 << 8)), - (23 | (48 << 8)),(23 | (47 << 8)),(22 | (46 << 8)),(21 | (45 << 8)),(21 | (44 << 8)), - (20 | (43 << 8)),(19 | (42 << 8)),(19 | (41 << 8)),(18 | (41 << 8)),(18 | (40 << 8)), - (17 | (39 << 8)),(16 | (38 << 8)),(16 | (37 << 8)),(15 | (36 << 8)),(15 | (35 << 8)), - (14 | (34 << 8)),(14 | (33 << 8)),(13 | (32 << 8)),(13 | (31 << 8)),(12 | (30 << 8)), - (12 | (29 << 8)),(11 | (29 << 8)),(11 | (28 << 8)),(11 | (27 << 8)),(10 | (26 << 8)) -}; - -unsigned short tiltTable_21[44] = { - (45 | (62 << 8)),(44 | (61 << 8)),(42 | (60 << 8)),(41 | (60 << 8)),(39 | (59 << 8)), - (38 | (58 << 8)),(37 | (57 << 8)),(36 | (57 << 8)),(35 | (56 << 8)),(34 | (55 << 8)), - (33 | (55 << 8)),(32 | (54 << 8)),(31 | (53 << 8)),(30 | (52 << 8)),(29 | (51 << 8)), - (28 | (51 << 8)),(27 | (50 << 8)),(26 | (49 << 8)),(25 | (48 << 8)),(25 | (47 << 8)), - (24 | (46 << 8)),(23 | (46 << 8)),(22 | (45 << 8)),(22 | (44 << 8)),(21 | (43 << 8)), - (20 | (42 << 8)),(20 | (41 << 8)),(19 | (40 << 8)),(18 | (40 << 8)),(18 | (39 << 8)), - (17 | (38 << 8)),(17 | (37 << 8)),(16 | (36 << 8)),(16 | (35 << 8)),(15 | (34 << 8)), - (15 | (33 << 8)),(14 | (32 << 8)),(13 | (31 << 8)),(13 | (30 << 8)),(12 | (29 << 8)), - (12 | (28 << 8)),(12 | (28 << 8)),(11 | (27 << 8)),(11 | (26 << 8)) -}; - -unsigned short tiltTable_22[43] = { - (45 | (60 << 8)),(44 | (60 << 8)),(42 | (59 << 8)),(41 | (58 << 8)),(40 | (58 << 8)), - (38 | (57 << 8)),(37 | (56 << 8)),(36 | (56 << 8)),(35 | (55 << 8)),(34 | (54 << 8)), - (33 | (53 << 8)),(32 | (53 << 8)),(31 | (52 << 8)),(30 | (51 << 8)),(29 | (50 << 8)), - (28 | (49 << 8)),(27 | (49 << 8)),(27 | (48 << 8)),(26 | (47 << 8)),(25 | (46 << 8)), - (24 | (45 << 8)),(23 | (45 << 8)),(23 | (44 << 8)),(22 | (43 << 8)),(21 | (42 << 8)), - (21 | (41 << 8)),(20 | (40 << 8)),(19 | (39 << 8)),(19 | (38 << 8)),(18 | (38 << 8)), - (18 | (37 << 8)),(17 | (36 << 8)),(16 | (35 << 8)),(16 | (34 << 8)),(15 | (33 << 8)), - (15 | (32 << 8)),(14 | (31 << 8)),(14 | (30 << 8)),(13 | (29 << 8)),(13 | (28 << 8)), - (12 | (27 << 8)),(12 | (27 << 8)),(11 | (26 << 8)) -}; - -unsigned short tiltTable_23[42] = { - (45 | (59 << 8)),(44 | (58 << 8)),(42 | (58 << 8)),(41 | (57 << 8)),(40 | (56 << 8)), - (39 | (56 << 8)),(37 | (55 << 8)),(36 | (54 << 8)),(35 | (54 << 8)),(34 | (53 << 8)), - (33 | (52 << 8)),(32 | (51 << 8)),(31 | (51 << 8)),(30 | (50 << 8)),(29 | (49 << 8)), - (29 | (48 << 8)),(28 | (48 << 8)),(27 | (47 << 8)),(26 | (46 << 8)),(25 | (45 << 8)), - (24 | (44 << 8)),(24 | (43 << 8)),(23 | (43 << 8)),(22 | (42 << 8)),(22 | (41 << 8)), - (21 | (40 << 8)),(20 | (39 << 8)),(20 | (38 << 8)),(19 | (37 << 8)),(18 | (37 << 8)), - (18 | (36 << 8)),(17 | (35 << 8)),(17 | (34 << 8)),(16 | (33 << 8)),(15 | (32 << 8)), - (15 | (31 << 8)),(14 | (30 << 8)),(14 | (29 << 8)),(13 | (28 << 8)),(13 | (27 << 8)), - (12 | (26 << 8)),(12 | (26 << 8)) -}; - -unsigned short tiltTable_24[41] = { - (45 | (58 << 8)),(44 | (57 << 8)),(42 | (57 << 8)),(41 | (56 << 8)),(40 | (55 << 8)), - (39 | (55 << 8)),(38 | (54 << 8)),(37 | (53 << 8)),(35 | (53 << 8)),(34 | (52 << 8)), - (33 | (51 << 8)),(32 | (50 << 8)),(32 | (50 << 8)),(31 | (49 << 8)),(30 | (48 << 8)), - (29 | (47 << 8)),(28 | (46 << 8)),(27 | (46 << 8)),(26 | (45 << 8)),(26 | (44 << 8)), - (25 | (43 << 8)),(24 | (42 << 8)),(23 | (42 << 8)),(23 | (41 << 8)),(22 | (40 << 8)), - (21 | (39 << 8)),(20 | (38 << 8)),(20 | (37 << 8)),(19 | (36 << 8)),(19 | (36 << 8)), - (18 | (35 << 8)),(17 | (34 << 8)),(17 | (33 << 8)),(16 | (32 << 8)),(16 | (31 << 8)), - (15 | (30 << 8)),(14 | (29 << 8)),(14 | (28 << 8)),(13 | (27 << 8)),(13 | (26 << 8)), - (12 | (25 << 8)) -}; - -unsigned short tiltTable_25[40] = { - (45 | (57 << 8)),(44 | (56 << 8)),(42 | (55 << 8)),(41 | (55 << 8)),(40 | (54 << 8)), - (39 | (53 << 8)),(38 | (53 << 8)),(37 | (52 << 8)),(36 | (51 << 8)),(35 | (51 << 8)), - (34 | (50 << 8)),(33 | (49 << 8)),(32 | (48 << 8)),(31 | (48 << 8)),(30 | (47 << 8)), - (29 | (46 << 8)),(28 | (45 << 8)),(27 | (45 << 8)),(27 | (44 << 8)),(26 | (43 << 8)), - (25 | (42 << 8)),(24 | (41 << 8)),(24 | (41 << 8)),(23 | (40 << 8)),(22 | (39 << 8)), - (21 | (38 << 8)),(21 | (37 << 8)),(20 | (36 << 8)),(19 | (35 << 8)),(19 | (35 << 8)), - (18 | (34 << 8)),(17 | (33 << 8)),(17 | (32 << 8)),(16 | (31 << 8)),(16 | (30 << 8)), - (15 | (29 << 8)),(14 | (28 << 8)),(14 | (27 << 8)),(13 | (26 << 8)),(13 | (25 << 8)) -}; - -unsigned short tiltTable_26[39] = { - (45 | (55 << 8)),(44 | (55 << 8)),(43 | (54 << 8)),(41 | (54 << 8)),(40 | (53 << 8)), - (39 | (52 << 8)),(38 | (52 << 8)),(37 | (51 << 8)),(36 | (50 << 8)),(35 | (50 << 8)), - (34 | (49 << 8)),(33 | (48 << 8)),(32 | (47 << 8)),(31 | (47 << 8)),(30 | (46 << 8)), - (29 | (45 << 8)),(28 | (44 << 8)),(28 | (44 << 8)),(27 | (43 << 8)),(26 | (42 << 8)), - (25 | (41 << 8)),(24 | (40 << 8)),(24 | (40 << 8)),(23 | (39 << 8)),(22 | (38 << 8)), - (22 | (37 << 8)),(21 | (36 << 8)),(20 | (35 << 8)),(20 | (34 << 8)),(19 | (34 << 8)), - (18 | (33 << 8)),(18 | (32 << 8)),(17 | (31 << 8)),(16 | (30 << 8)),(16 | (29 << 8)), - (15 | (28 << 8)),(15 | (27 << 8)),(14 | (26 << 8)),(13 | (25 << 8)) -}; - -unsigned short tiltTable_27[38] = { - (45 | (54 << 8)),(44 | (54 << 8)),(43 | (53 << 8)),(41 | (52 << 8)),(40 | (52 << 8)), - (39 | (51 << 8)),(38 | (50 << 8)),(37 | (50 << 8)),(36 | (49 << 8)),(35 | (48 << 8)), - (34 | (48 << 8)),(33 | (47 << 8)),(32 | (46 << 8)),(31 | (46 << 8)),(30 | (45 << 8)), - (30 | (44 << 8)),(29 | (43 << 8)),(28 | (42 << 8)),(27 | (42 << 8)),(26 | (41 << 8)), - (25 | (40 << 8)),(25 | (39 << 8)),(24 | (38 << 8)),(23 | (38 << 8)),(22 | (37 << 8)), - (22 | (36 << 8)),(21 | (35 << 8)),(20 | (34 << 8)),(20 | (33 << 8)),(19 | (33 << 8)), - (18 | (32 << 8)),(18 | (31 << 8)),(17 | (30 << 8)),(16 | (29 << 8)),(16 | (28 << 8)), - (15 | (27 << 8)),(15 | (26 << 8)),(14 | (25 << 8)) -}; - -unsigned short tiltTable_28[37] = { - (45 | (53 << 8)),(44 | (52 << 8)),(43 | (52 << 8)),(42 | (51 << 8)),(40 | (51 << 8)), - (39 | (50 << 8)),(38 | (49 << 8)),(37 | (49 << 8)),(36 | (48 << 8)),(35 | (47 << 8)), - (34 | (47 << 8)),(33 | (46 << 8)),(32 | (45 << 8)),(31 | (44 << 8)),(31 | (44 << 8)), - (30 | (43 << 8)),(29 | (42 << 8)),(28 | (41 << 8)),(27 | (41 << 8)),(26 | (40 << 8)), - (26 | (39 << 8)),(25 | (38 << 8)),(24 | (37 << 8)),(23 | (37 << 8)),(23 | (36 << 8)), - (22 | (35 << 8)),(21 | (34 << 8)),(20 | (33 << 8)),(20 | (32 << 8)),(19 | (32 << 8)), - (18 | (31 << 8)),(18 | (30 << 8)),(17 | (29 << 8)),(16 | (28 << 8)),(16 | (27 << 8)), - (15 | (26 << 8)),(15 | (25 << 8)) -}; - -unsigned short tiltTable_29[36] = { - (45 | (52 << 8)),(44 | (51 << 8)),(43 | (51 << 8)),(42 | (50 << 8)),(40 | (50 << 8)), - (39 | (49 << 8)),(38 | (48 << 8)),(37 | (48 << 8)),(36 | (47 << 8)),(35 | (46 << 8)), - (34 | (46 << 8)),(33 | (45 << 8)),(33 | (44 << 8)),(32 | (43 << 8)),(31 | (43 << 8)), - (30 | (42 << 8)),(29 | (41 << 8)),(28 | (40 << 8)),(27 | (40 << 8)),(27 | (39 << 8)), - (26 | (38 << 8)),(25 | (37 << 8)),(24 | (36 << 8)),(23 | (36 << 8)),(23 | (35 << 8)), - (22 | (34 << 8)),(21 | (33 << 8)),(21 | (32 << 8)),(20 | (31 << 8)),(19 | (31 << 8)), - (18 | (30 << 8)),(18 | (29 << 8)),(17 | (28 << 8)),(16 | (27 << 8)),(16 | (26 << 8)), - (15 | (25 << 8)) -}; - -unsigned short tiltTable_30[35] = { - (45 | (51 << 8)),(44 | (50 << 8)),(43 | (50 << 8)),(42 | (49 << 8)),(41 | (48 << 8)), - (40 | (48 << 8)),(38 | (47 << 8)),(37 | (46 << 8)),(36 | (46 << 8)),(35 | (45 << 8)), - (35 | (44 << 8)),(34 | (44 << 8)),(33 | (43 << 8)),(32 | (42 << 8)),(31 | (42 << 8)), - (30 | (41 << 8)),(29 | (40 << 8)),(28 | (39 << 8)),(27 | (39 << 8)),(27 | (38 << 8)), - (26 | (37 << 8)),(25 | (36 << 8)),(24 | (35 << 8)),(24 | (35 << 8)),(23 | (34 << 8)), - (22 | (33 << 8)),(21 | (32 << 8)),(21 | (31 << 8)),(20 | (30 << 8)),(19 | (30 << 8)), - (18 | (29 << 8)),(18 | (28 << 8)),(17 | (27 << 8)),(16 | (26 << 8)),(16 | (25 << 8)) -}; - -unsigned short tiltTable_31[34] = { - (45 | (50 << 8)),(44 | (49 << 8)),(43 | (48 << 8)),(42 | (48 << 8)),(41 | (47 << 8)), - (40 | (47 << 8)),(39 | (46 << 8)),(38 | (45 << 8)),(37 | (45 << 8)),(36 | (44 << 8)), - (35 | (43 << 8)),(34 | (43 << 8)),(33 | (42 << 8)),(32 | (41 << 8)),(31 | (41 << 8)), - (30 | (40 << 8)),(29 | (39 << 8)),(28 | (38 << 8)),(28 | (38 << 8)),(27 | (37 << 8)), - (26 | (36 << 8)),(25 | (35 << 8)),(24 | (34 << 8)),(24 | (34 << 8)),(23 | (33 << 8)), - (22 | (32 << 8)),(21 | (31 << 8)),(21 | (30 << 8)),(20 | (29 << 8)),(19 | (29 << 8)), - (18 | (28 << 8)),(18 | (27 << 8)),(17 | (26 << 8)),(16 | (25 << 8)) -}; - -unsigned short tiltTable_32[33] = { - (45 | (49 << 8)),(44 | (48 << 8)),(43 | (47 << 8)),(42 | (47 << 8)),(41 | (46 << 8)), - (40 | (46 << 8)),(39 | (45 << 8)),(38 | (44 << 8)),(37 | (44 << 8)),(36 | (43 << 8)), - (35 | (42 << 8)),(34 | (42 << 8)),(33 | (41 << 8)),(32 | (40 << 8)),(31 | (40 << 8)), - (30 | (39 << 8)),(29 | (38 << 8)),(29 | (37 << 8)),(28 | (37 << 8)),(27 | (36 << 8)), - (26 | (35 << 8)),(25 | (34 << 8)),(24 | (33 << 8)),(24 | (33 << 8)),(23 | (32 << 8)), - (22 | (31 << 8)),(21 | (30 << 8)),(21 | (29 << 8)),(20 | (29 << 8)),(19 | (28 << 8)), - (18 | (27 << 8)),(18 | (26 << 8)),(17 | (25 << 8)) -}; - -unsigned short tiltTable_33[32] = { - (45 | (47 << 8)),(44 | (47 << 8)),(43 | (46 << 8)),(42 | (46 << 8)),(41 | (45 << 8)), - (40 | (45 << 8)),(39 | (44 << 8)),(38 | (43 << 8)),(37 | (43 << 8)),(36 | (42 << 8)), - (35 | (41 << 8)),(34 | (41 << 8)),(33 | (40 << 8)),(32 | (39 << 8)),(31 | (39 << 8)), - (30 | (38 << 8)),(29 | (37 << 8)),(29 | (36 << 8)),(28 | (36 << 8)),(27 | (35 << 8)), - (26 | (34 << 8)),(25 | (33 << 8)),(24 | (33 << 8)),(24 | (32 << 8)),(23 | (31 << 8)), - (22 | (30 << 8)),(21 | (29 << 8)),(21 | (28 << 8)),(20 | (28 << 8)),(19 | (27 << 8)), - (18 | (26 << 8)),(18 | (25 << 8)) -}; - -unsigned short tiltTable_34[31] = { - (45 | (46 << 8)),(44 | (46 << 8)),(43 | (45 << 8)),(42 | (45 << 8)),(41 | (44 << 8)), - (40 | (43 << 8)),(39 | (43 << 8)),(38 | (42 << 8)),(37 | (42 << 8)),(36 | (41 << 8)), - (35 | (40 << 8)),(34 | (40 << 8)),(33 | (39 << 8)),(32 | (38 << 8)),(31 | (38 << 8)), - (30 | (37 << 8)),(30 | (36 << 8)),(29 | (35 << 8)),(28 | (35 << 8)),(27 | (34 << 8)), - (26 | (33 << 8)),(25 | (32 << 8)),(24 | (32 << 8)),(24 | (31 << 8)),(23 | (30 << 8)), - (22 | (29 << 8)),(21 | (28 << 8)),(21 | (27 << 8)),(20 | (27 << 8)),(19 | (26 << 8)), - (18 | (25 << 8)) -}; - -unsigned short tiltTable_35[30] = { - (45 | (45 << 8)),(44 | (45 << 8)),(43 | (44 << 8)),(42 | (44 << 8)),(41 | (43 << 8)), - (40 | (42 << 8)),(39 | (42 << 8)),(38 | (41 << 8)),(37 | (41 << 8)),(36 | (40 << 8)), - (35 | (39 << 8)),(34 | (39 << 8)),(33 | (38 << 8)),(32 | (37 << 8)),(31 | (37 << 8)), - (30 | (36 << 8)),(30 | (35 << 8)),(29 | (34 << 8)),(28 | (34 << 8)),(27 | (33 << 8)), - (26 | (32 << 8)),(25 | (31 << 8)),(24 | (31 << 8)),(24 | (30 << 8)),(23 | (29 << 8)), - (22 | (28 << 8)),(21 | (27 << 8)),(20 | (26 << 8)),(20 | (26 << 8)),(19 | (25 << 8)) -}; - -unsigned short tiltTable_36[29] = { - (45 | (44 << 8)),(44 | (44 << 8)),(43 | (43 << 8)),(42 | (43 << 8)),(41 | (42 << 8)), - (40 | (41 << 8)),(39 | (41 << 8)),(38 | (40 << 8)),(37 | (40 << 8)),(36 | (39 << 8)), - (35 | (38 << 8)),(34 | (38 << 8)),(33 | (37 << 8)),(32 | (36 << 8)),(31 | (36 << 8)), - (30 | (35 << 8)),(30 | (34 << 8)),(29 | (33 << 8)),(28 | (33 << 8)),(27 | (32 << 8)), - (26 | (31 << 8)),(25 | (30 << 8)),(24 | (30 << 8)),(24 | (29 << 8)),(23 | (28 << 8)), - (22 | (27 << 8)),(21 | (26 << 8)),(20 | (26 << 8)),(20 | (25 << 8)) -}; - -unsigned short tiltTable_37[28] = { - (45 | (43 << 8)),(44 | (43 << 8)),(43 | (42 << 8)),(42 | (42 << 8)),(41 | (41 << 8)), - (40 | (40 << 8)),(39 | (40 << 8)),(38 | (39 << 8)),(37 | (39 << 8)),(36 | (38 << 8)), - (35 | (37 << 8)),(34 | (37 << 8)),(33 | (36 << 8)),(32 | (35 << 8)),(31 | (35 << 8)), - (30 | (34 << 8)),(30 | (33 << 8)),(29 | (33 << 8)),(28 | (32 << 8)),(27 | (31 << 8)), - (26 | (30 << 8)),(25 | (29 << 8)),(24 | (29 << 8)),(24 | (28 << 8)),(23 | (27 << 8)), - (22 | (26 << 8)),(21 | (25 << 8)),(20 | (25 << 8)) -}; - -unsigned short tiltTable_38[27] = { - (45 | (42 << 8)),(44 | (42 << 8)),(43 | (41 << 8)),(42 | (41 << 8)),(41 | (40 << 8)), - (40 | (39 << 8)),(39 | (39 << 8)),(38 | (38 << 8)),(37 | (38 << 8)),(36 | (37 << 8)), - (35 | (36 << 8)),(34 | (36 << 8)),(33 | (35 << 8)),(32 | (34 << 8)),(31 | (34 << 8)), - (30 | (33 << 8)),(30 | (32 << 8)),(29 | (32 << 8)),(28 | (31 << 8)),(27 | (30 << 8)), - (26 | (29 << 8)),(25 | (29 << 8)),(24 | (28 << 8)),(23 | (27 << 8)),(23 | (26 << 8)), - (22 | (25 << 8)),(21 | (25 << 8)) -}; - -unsigned short tiltTable_39[26] = { - (45 | (41 << 8)),(44 | (41 << 8)),(43 | (40 << 8)),(42 | (40 << 8)),(41 | (39 << 8)), - (40 | (38 << 8)),(39 | (38 << 8)),(38 | (37 << 8)),(37 | (37 << 8)),(36 | (36 << 8)), - (35 | (35 << 8)),(34 | (35 << 8)),(33 | (34 << 8)),(32 | (33 << 8)),(31 | (33 << 8)), - (30 | (32 << 8)),(30 | (31 << 8)),(29 | (31 << 8)),(28 | (30 << 8)),(27 | (29 << 8)), - (26 | (28 << 8)),(25 | (28 << 8)),(24 | (27 << 8)),(23 | (26 << 8)),(22 | (25 << 8)), - (22 | (24 << 8)) -}; - -unsigned short tiltTable_40[25] = { - (45 | (40 << 8)),(44 | (40 << 8)),(43 | (39 << 8)),(42 | (39 << 8)),(41 | (38 << 8)), - (40 | (37 << 8)),(39 | (37 << 8)),(38 | (36 << 8)),(37 | (36 << 8)),(36 | (35 << 8)), - (35 | (34 << 8)),(34 | (34 << 8)),(33 | (33 << 8)),(32 | (32 << 8)),(31 | (32 << 8)), - (30 | (31 << 8)),(30 | (30 << 8)),(29 | (30 << 8)),(28 | (29 << 8)),(27 | (28 << 8)), - (26 | (27 << 8)),(25 | (27 << 8)),(24 | (26 << 8)),(23 | (25 << 8)),(22 | (24 << 8)) -}; - -unsigned short tiltTable_41[24] = { - (45 | (39 << 8)),(44 | (39 << 8)),(43 | (38 << 8)),(42 | (38 << 8)),(41 | (37 << 8)), - (40 | (36 << 8)),(39 | (36 << 8)),(38 | (35 << 8)),(37 | (35 << 8)),(36 | (34 << 8)), - (35 | (34 << 8)),(34 | (33 << 8)),(33 | (32 << 8)),(32 | (32 << 8)),(31 | (31 << 8)), - (30 | (30 << 8)),(29 | (29 << 8)),(29 | (29 << 8)),(28 | (28 << 8)),(27 | (27 << 8)), - (26 | (27 << 8)),(25 | (26 << 8)),(24 | (25 << 8)),(23 | (24 << 8)) -}; - -unsigned short tiltTable_42[23] = { - (45 | (38 << 8)),(44 | (38 << 8)),(43 | (37 << 8)),(42 | (37 << 8)),(41 | (36 << 8)), - (40 | (36 << 8)),(39 | (35 << 8)),(38 | (34 << 8)),(37 | (34 << 8)),(36 | (33 << 8)), - (35 | (33 << 8)),(34 | (32 << 8)),(33 | (31 << 8)),(32 | (31 << 8)),(31 | (30 << 8)), - (30 | (29 << 8)),(29 | (29 << 8)),(28 | (28 << 8)),(27 | (27 << 8)),(27 | (26 << 8)), - (26 | (26 << 8)),(25 | (25 << 8)),(24 | (24 << 8)) -}; - -unsigned short tiltTable_43[22] = { - (45 | (37 << 8)),(44 | (37 << 8)),(43 | (36 << 8)),(42 | (36 << 8)),(41 | (35 << 8)), - (40 | (35 << 8)),(39 | (34 << 8)),(38 | (33 << 8)),(37 | (33 << 8)),(36 | (32 << 8)), - (35 | (32 << 8)),(34 | (31 << 8)),(33 | (30 << 8)),(32 | (30 << 8)),(31 | (29 << 8)), - (30 | (28 << 8)),(29 | (28 << 8)),(28 | (27 << 8)),(27 | (26 << 8)),(26 | (25 << 8)), - (25 | (25 << 8)),(24 | (24 << 8)) -}; - -unsigned short tiltTable_44[21] = { - (45 | (36 << 8)),(44 | (36 << 8)),(43 | (35 << 8)),(42 | (35 << 8)),(41 | (34 << 8)), - (40 | (34 << 8)),(39 | (33 << 8)),(38 | (33 << 8)),(37 | (32 << 8)),(36 | (31 << 8)), - (35 | (31 << 8)),(34 | (30 << 8)),(33 | (29 << 8)),(32 | (29 << 8)),(31 | (28 << 8)), - (30 | (27 << 8)),(29 | (27 << 8)),(28 | (26 << 8)),(27 | (25 << 8)),(26 | (25 << 8)), - (25 | (24 << 8)) -}; - -unsigned short tiltTable_45[20] = { - (45 | (35 << 8)),(44 | (35 << 8)),(43 | (34 << 8)),(42 | (34 << 8)),(41 | (33 << 8)), - (40 | (33 << 8)),(39 | (32 << 8)),(38 | (32 << 8)),(37 | (31 << 8)),(36 | (30 << 8)), - (35 | (30 << 8)),(34 | (29 << 8)),(33 | (29 << 8)),(32 | (28 << 8)),(31 | (27 << 8)), - (30 | (27 << 8)),(29 | (26 << 8)),(28 | (25 << 8)),(27 | (24 << 8)),(26 | (24 << 8)) -}; - -unsigned short tiltTable_46[19] = { - (45 | (34 << 8)),(44 | (34 << 8)),(43 | (33 << 8)),(42 | (33 << 8)),(41 | (32 << 8)), - (40 | (32 << 8)),(39 | (31 << 8)),(38 | (31 << 8)),(37 | (30 << 8)),(36 | (30 << 8)), - (35 | (29 << 8)),(34 | (28 << 8)),(33 | (28 << 8)),(32 | (27 << 8)),(31 | (26 << 8)), - (30 | (26 << 8)),(29 | (25 << 8)),(28 | (24 << 8)),(27 | (24 << 8)) -}; - -unsigned short tiltTable_47[18] = { - (45 | (33 << 8)),(44 | (33 << 8)),(43 | (32 << 8)),(42 | (32 << 8)),(41 | (31 << 8)), - (40 | (31 << 8)),(39 | (30 << 8)),(38 | (30 << 8)),(37 | (29 << 8)),(36 | (29 << 8)), - (35 | (28 << 8)),(34 | (27 << 8)),(33 | (27 << 8)),(32 | (26 << 8)),(31 | (25 << 8)), - (30 | (25 << 8)),(29 | (24 << 8)),(28 | (23 << 8)) -}; - -unsigned short tiltTable_48[17] = { - (45 | (32 << 8)),(44 | (32 << 8)),(43 | (32 << 8)),(42 | (31 << 8)),(41 | (31 << 8)), - (40 | (30 << 8)),(39 | (29 << 8)),(38 | (29 << 8)),(37 | (28 << 8)),(36 | (28 << 8)), - (35 | (27 << 8)),(34 | (27 << 8)),(33 | (26 << 8)),(32 | (25 << 8)),(31 | (25 << 8)), - (30 | (24 << 8)),(28 | (23 << 8)) -}; - -unsigned short tiltTable_49[16] = { - (45 | (32 << 8)),(44 | (31 << 8)),(43 | (31 << 8)),(42 | (30 << 8)),(41 | (30 << 8)), - (40 | (29 << 8)),(39 | (29 << 8)),(38 | (28 << 8)),(37 | (27 << 8)),(36 | (27 << 8)), - (35 | (26 << 8)),(34 | (26 << 8)),(33 | (25 << 8)),(31 | (24 << 8)),(30 | (24 << 8)), - (29 | (23 << 8)) -}; - -unsigned short tiltTable_50[15] = { - (45 | (31 << 8)),(44 | (30 << 8)),(43 | (30 << 8)),(42 | (29 << 8)),(41 | (29 << 8)), - (40 | (28 << 8)),(39 | (28 << 8)),(38 | (27 << 8)),(37 | (27 << 8)),(36 | (26 << 8)), - (35 | (25 << 8)),(33 | (25 << 8)),(32 | (24 << 8)),(31 | (24 << 8)),(30 | (23 << 8)) -}; - -unsigned short tiltTable_51[14] = { - (45 | (30 << 8)),(44 | (29 << 8)),(43 | (29 << 8)),(42 | (28 << 8)),(41 | (28 << 8)), - (40 | (27 << 8)),(39 | (27 << 8)),(38 | (26 << 8)),(37 | (26 << 8)),(35 | (25 << 8)), - (34 | (25 << 8)),(33 | (24 << 8)),(32 | (23 << 8)),(31 | (23 << 8)) -}; - -unsigned short tiltTable_52[13] = { - (45 | (29 << 8)),(44 | (28 << 8)),(43 | (28 << 8)),(42 | (28 << 8)),(41 | (27 << 8)), - (40 | (27 << 8)),(39 | (26 << 8)),(38 | (25 << 8)),(36 | (25 << 8)),(35 | (24 << 8)), - (34 | (24 << 8)),(33 | (23 << 8)),(32 | (22 << 8)) -}; - -unsigned short tiltTable_53[12] = { - (45 | (28 << 8)),(44 | (28 << 8)),(43 | (27 << 8)),(42 | (27 << 8)),(41 | (26 << 8)), - (40 | (26 << 8)),(39 | (25 << 8)),(37 | (25 << 8)),(36 | (24 << 8)),(35 | (23 << 8)), - (34 | (23 << 8)),(33 | (22 << 8)) -}; - -unsigned short tiltTable_54[11] = { - (45 | (27 << 8)),(44 | (27 << 8)),(43 | (26 << 8)),(42 | (26 << 8)),(41 | (25 << 8)), - (40 | (25 << 8)),(38 | (24 << 8)),(37 | (24 << 8)),(36 | (23 << 8)),(35 | (23 << 8)), - (34 | (22 << 8)) -}; - -unsigned short tiltTable_55[10] = { - (45 | (26 << 8)),(44 | (26 << 8)),(43 | (25 << 8)),(42 | (25 << 8)),(41 | (25 << 8)), - (40 | (24 << 8)),(38 | (23 << 8)),(37 | (23 << 8)),(36 | (22 << 8)),(35 | (22 << 8)) -}; - -unsigned short tiltTable_56[9] = { - (45 | (25 << 8)),(44 | (25 << 8)),(43 | (25 << 8)),(42 | (24 << 8)),(41 | (24 << 8)), - (39 | (23 << 8)),(38 | (23 << 8)),(37 | (22 << 8)),(36 | (22 << 8)) -}; - -unsigned short tiltTable_57[8] = { - (45 | (25 << 8)),(44 | (24 << 8)),(43 | (24 << 8)),(42 | (23 << 8)),(40 | (23 << 8)), - (39 | (22 << 8)),(38 | (22 << 8)),(37 | (21 << 8)) -}; - -unsigned short tiltTable_58[7] = { - (45 | (24 << 8)),(44 | (23 << 8)),(43 | (23 << 8)),(42 | (23 << 8)),(40 | (22 << 8)), - (39 | (22 << 8)),(38 | (21 << 8)) -}; - -unsigned short tiltTable_59[6] = { - (45 | (23 << 8)),(44 | (23 << 8)),(43 | (22 << 8)),(42 | (22 << 8)),(40 | (21 << 8)), - (39 | (21 << 8)) -}; - -unsigned short tiltTable_60[5] = { - (45 | (22 << 8)),(44 | (22 << 8)),(43 | (21 << 8)),(41 | (21 << 8)),(40 | (20 << 8)) -}; - -unsigned short tiltTable_61[4] = { - (45 | (21 << 8)),(44 | (21 << 8)),(43 | (21 << 8)),(41 | (20 << 8)) -}; - -unsigned short tiltTable_62[3] = { - (45 | (21 << 8)),(44 | (20 << 8)),(43 | (20 << 8)) -}; - -unsigned short tiltTable_63[2] = { - (45 | (20 << 8)),(44 | (19 << 8)) -}; +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif -unsigned short tiltTable_64[1] = { - (45 | (19 << 8)) -}; -unsigned short *cTable[] = { - &tiltTable_00[0],&tiltTable_01[0],&tiltTable_02[0],&tiltTable_03[0],&tiltTable_04[0],&tiltTable_05[0], - &tiltTable_06[0],&tiltTable_07[0],&tiltTable_08[0],&tiltTable_09[0],&tiltTable_10[0],&tiltTable_11[0], - &tiltTable_12[0],&tiltTable_13[0],&tiltTable_14[0],&tiltTable_15[0],&tiltTable_16[0],&tiltTable_17[0], - &tiltTable_18[0],&tiltTable_19[0],&tiltTable_20[0],&tiltTable_21[0],&tiltTable_22[0],&tiltTable_23[0], - &tiltTable_24[0],&tiltTable_25[0],&tiltTable_26[0],&tiltTable_27[0],&tiltTable_28[0],&tiltTable_29[0], - &tiltTable_30[0],&tiltTable_31[0],&tiltTable_32[0],&tiltTable_33[0],&tiltTable_34[0],&tiltTable_35[0], - &tiltTable_36[0],&tiltTable_37[0],&tiltTable_38[0],&tiltTable_39[0],&tiltTable_40[0],&tiltTable_41[0], - &tiltTable_42[0],&tiltTable_43[0],&tiltTable_44[0],&tiltTable_45[0],&tiltTable_46[0],&tiltTable_47[0], - &tiltTable_48[0],&tiltTable_49[0],&tiltTable_50[0],&tiltTable_51[0],&tiltTable_52[0],&tiltTable_53[0], - &tiltTable_54[0],&tiltTable_55[0],&tiltTable_56[0],&tiltTable_57[0],&tiltTable_58[0],&tiltTable_59[0], - &tiltTable_60[0],&tiltTable_61[0],&tiltTable_62[0],&tiltTable_63[0],&tiltTable_64[0] -}; +void wcmTilt2R(WacomDeviceStatePtr ds); /***************************************************************************** * wcmTilt2R - @@ -700,38 +41,7 @@ void wcmTilt2R(WacomDeviceStatePtr ds) short tilt_x = ds->tiltx; short tilt_y = ds->tilty; - short offset = -180; - unsigned short *xyTable; - - if (tilt_x < 0) - { - tilt_x = -tilt_x; - offset *= -1; - } - - if (tilt_y <= 0) - { - tilt_y = -tilt_y; - offset *= -1; - offset -= 180; - } - - if (tilt_y < tilt_x) - { - short tmp = tilt_x; - tilt_x = tilt_y; - tilt_y = tmp; - offset *= -1; - offset -= 90; - } - - xyTable = cTable[tilt_x]; - ds->rotation = (xyTable[tilt_y-tilt_x] & 0xFF) + offset; - - if (ds->rotation < 0) - { - ds->rotation *= -1; - } + ds->rotation = ABS(round(((180 * atan2(tilt_x,tilt_y)) / M_PI) - 180)); /* Intuos4 mouse has an (180-5) offset */ ds->rotation = ((360 - ds->rotation + 180 - 5) % 360) * 5; -- 1.6.5.7
------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel