1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
|
#N canvas 325 242 656 565 10;
#X obj 51 48 inlet wiimotionplus;
#X obj 51 70 route wiimotionplus;
#X text 196 39 just in case somebody uses the [wiimote]s output directly
;
#N canvas 676 229 450 300 slowfast 0;
#X obj 105 55 inlet;
#X obj 105 77 route angle_rate low_speed;
#X obj 105 107 unpack 0 0 0;
#X obj 194 107 unpack 0 0 0;
#X obj 105 232 pack;
#X obj 105 254 outlet pitch;
#X obj 195 232 pack;
#X obj 278 232 pack;
#X obj 195 254 outlet roll;
#X obj 278 254 outlet yaw;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 2 0 4 0;
#X connect 2 1 6 0;
#X connect 2 2 7 0;
#X connect 3 0 4 1;
#X connect 3 1 6 1;
#X connect 3 2 7 1;
#X connect 4 0 5 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X restore 51 98 pd slowfast;
#X obj 51 297 pack 0 0 0;
#X obj 51 120 motionplus_rate2angle;
#X obj 51 319 outlet yaw roll pitch;
#X obj 218 230 pack 0 0 0;
#X obj 242 118 t a a a;
#X msg 242 85 reset;
#X msg 300 95 deadzone \$1;
#X floatatom 300 75 5 0 0 0 - - -;
#X obj 218 322 outlet dYaw dRoll dPitch;
#X obj 88 150 motionplus_rate2angle;
#X obj 125 180 motionplus_rate2angle;
#N canvas 0 0 450 300 angleaxis 0;
#X obj 142 209 mtx_*;
#X obj 142 231 t a a;
#X obj 273 154 loadbang;
#X msg 142 155 \$1 0 0;
#N canvas 295 417 569 550 angleaxis2mtx 0;
#X obj 73 43 inlet dYaw dRoll dPitch;
#N canvas 0 0 450 300 length 0;
#X obj 84 59 t f f;
#X obj 84 81 *;
#X obj 84 103 +;
#X obj 84 125 outlet;
#X obj 134 59 t f f;
#X obj 134 81 *;
#X obj 134 103 +;
#X obj 184 59 t f f;
#X obj 184 81 *;
#X obj 84 37 unpack 0 0 0;
#X obj 84 15 inlet;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 4 1 5 1;
#X connect 5 0 6 0;
#X connect 6 0 2 1;
#X connect 7 0 8 0;
#X connect 7 1 8 1;
#X connect 8 0 6 1;
#X connect 9 0 0 0;
#X connect 9 1 4 0;
#X connect 9 2 7 0;
#X connect 10 0 9 0;
#X restore 105 84 pd length;
#X obj 73 65 t l l;
#N canvas 0 0 450 300 normalize 0;
#X obj 74 36 inlet;
#X obj 74 58 unpack 0 0 0;
#X obj 74 102 pack 0 0 0;
#X obj 74 124 outlet;
#X obj 74 80 * 1;
#X obj 114 80 * 1;
#X obj 155 80 * 1;
#X obj 261 33 inlet length;
#X msg 261 55 1 \$1;
#X obj 261 77 /;
#X obj 165 57 t f f f;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 1 1 5 0;
#X connect 1 2 6 0;
#X connect 2 0 3 0;
#X connect 4 0 2 0;
#X connect 5 0 2 1;
#X connect 6 0 2 2;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 4 1;
#X connect 10 1 5 1;
#X connect 10 2 6 1;
#X restore 73 145 pd normalize;
#X obj 105 106 t f f;
#N canvas 0 0 450 300 deg2rad 0;
#X obj 109 112 inlet deg;
#X obj 109 231 outlet rad;
#X obj 181 179 / 45;
#X obj 181 113 loadbang;
#X obj 109 202 * 0.0174533;
#X obj 109 178 f;
#X text 93 282 rad=deg*pi/180;
#X obj 181 156 atan;
#X msg 181 135 1;
#X text 225 36 part of zexy;
#X text 63 66 convert DEGree to RADiant;
#X connect 0 0 5 0;
#X connect 2 0 4 1;
#X connect 3 0 8 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 7 0 2 0;
#X connect 8 0 7 0;
#X restore 171 146 pd deg2rad;
#X obj 171 168 t f f;
#X obj 171 190 cos;
#X obj 171 212 t f f;
#X obj 203 234 * -1;
#X obj 203 256 + 1;
#X obj 203 190 sin;
#X text 297 81 c=cos() \, s=sin() \, C=1-c;
#X text 297 141 [ z*x*C-y*s y*z*C+x*s z*z*C+c ];
#X text 297 100 [ x*x*C+c x*y*C-z*s z*x*C+y*s ];
#X text 297 121 [ x*y*C+z*s y*y*C+c y*z*C-x*s ];
#X obj 73 282 pack 0 0 0 0 0 0;
#X obj 310 255 expr;
#X obj 73 305 expr $f1*$f1*$f6+$f4 \; $f1*$f2*$f6-$f3*$f5 \; $f1*$f3*$f6+$f2*$f5
\; $f1*$f2*$f6+$f3*$f5 \; $f2*$f2*$f6+$f4 \; $f2*$f3*$f6-$f1*$f5 \;
$f1*$f3*$f6-$f2*$f5 \; $f2*$f3*$f6+$f1*$f5 \; $f3*$f3*$f6+$f4;
#X obj 73 430 pack 0 0 0 0 0 0 0 0 0;
#X obj 73 452 list prepend matrix 3 3;
#X obj 73 474 list trim;
#X obj 73 496 outlet Rot;
#X connect 0 0 2 0;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 2 1 1 0;
#X connect 3 0 16 0;
#X connect 4 0 3 1;
#X connect 4 1 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 11 0;
#X connect 7 0 8 0;
#X connect 8 0 16 3;
#X connect 8 1 9 0;
#X connect 9 0 10 0;
#X connect 10 0 16 5;
#X connect 11 0 16 4;
#X connect 16 0 18 0;
#X connect 18 0 19 0;
#X connect 18 1 19 1;
#X connect 18 2 19 2;
#X connect 18 3 19 3;
#X connect 18 4 19 4;
#X connect 18 5 19 5;
#X connect 18 6 19 6;
#X connect 18 7 19 7;
#X connect 18 8 19 8;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X restore 142 182 pd angleaxis2mtx;
#X text 170 22 doesn't really work;
#X msg 273 181 matrix 3 3 1 0 0 0 1 0 0 0 1;
#X connect 0 0 1 0;
#X connect 1 1 0 1;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 6 0 0 1;
#X restore 485 276 pd angleaxis;
#X obj 412 79 inlet;
#X obj 51 237 wrap -180 180;
#X obj 88 257 wrap -180 180;
#X obj 125 277 wrap -180 180;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 3 0;
#X connect 3 0 5 0;
#X connect 3 1 13 0;
#X connect 3 2 14 0;
#X connect 4 0 6 0;
#X connect 5 0 17 0;
#X connect 5 1 7 0;
#X connect 7 0 12 0;
#X connect 8 0 5 1;
#X connect 8 1 13 1;
#X connect 8 2 14 1;
#X connect 9 0 8 0;
#X connect 10 0 8 0;
#X connect 11 0 10 0;
#X connect 13 0 18 0;
#X connect 13 1 7 1;
#X connect 14 0 19 0;
#X connect 14 1 7 2;
#X connect 16 0 8 0;
#X connect 17 0 4 0;
#X connect 18 0 4 1;
#X connect 19 0 4 2;
|