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