#N canvas 65 56 874 639 10; #X declare -lib Gem; #X obj 18 96 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 174 429 gemhead; #X obj 20 262 gemhead; #X obj 20 470 cube; #X floatatom 110 291 5 0 0 0 - - -; #X floatatom 209 293 5 0 0 0 - - -; #X obj 20 407 translateXYZ 1 0 0; #X obj 20 441 scaleXYZ 1 0.1 0.1; #X obj 195 513 colorRGB 1 0 0; #X text 15 239 The rectangle pointer.; #X text 172 408 The sphere.; #X text 505 134 Inlet_1: First set of 3D coordinates.; #X text 504 155 Inlet_2: Reference set of 3D coordinates.; #X text 504 175 Outlet_1: Pan angle.; #X text 504 196 Outlet_2: Tilt angle.; #X text 504 218 The angles are imagined with a top down perspective of the standard Gem window.; #X obj 110 270 mtl/3dPanTilt 0 0 0; #X obj 14 22 cnv 15 380 60 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 19 64 tags: 3d; #X text 21 25 Description: Calculate the pan and tilt between two 3D coordinates.; #X obj 781 23 import Gem; #X obj 265 273 mtl/gemsMouse; #X obj 265 368 pack f f 0; #X obj 266 396 t l l; #X obj 195 487 translateXYZ; #X obj 293 424 unpack f f f; #X text 14 179 Note how 2 rotateXYZ are used to transfer the pan & tilt angles to Gem angles.; #X obj 290 300 route 0 1; #X msg 290 325 \$1 \$2 0; #X obj 195 538 sphere 0.2; #X msg 353 326 \$1 \$2 -2; #X obj 20 345 rotateXYZ; #X obj 20 378 rotateXYZ; #X obj 507 112 mtl/3dPanTilt 0 0 0; #X obj 516 327 gemhead; #X obj 516 399 light; #X obj 18 119 mtl/gemsWin /lighting 1; #X obj 516 363 translateXYZ 0 0 1; #X text 258 255 Move the mouse in the gem window; #X connect 0 0 36 0; #X connect 1 0 24 0; #X connect 2 0 31 0; #X connect 4 0 31 3; #X connect 5 0 32 2; #X connect 6 0 7 0; #X connect 7 0 3 0; #X connect 8 0 29 0; #X connect 16 0 4 0; #X connect 16 1 5 0; #X connect 21 0 22 0; #X connect 21 1 27 0; #X connect 22 0 23 0; #X connect 23 0 16 0; #X connect 23 1 25 0; #X connect 24 0 8 0; #X connect 25 0 24 1; #X connect 25 1 24 2; #X connect 25 2 24 3; #X connect 27 0 28 0; #X connect 27 1 30 0; #X connect 28 0 22 0; #X connect 30 0 22 0; #X connect 31 0 32 0; #X connect 32 0 6 0; #X connect 34 0 37 0; #X connect 37 0 35 0;