console.log("Hello, Sky!"); /**** ☭☭☭☭☭☭☭☭☭☭☭☭ ****** /☭☭☭☭ Test skripta ☭☭☭☭ * ******☭☭☭☭☭☭☭☭☭☭☭☭******/ // Odmik kamere var odmik_kamere = 100; // Vidni kot var FOV = 140; // Sirina in visina test objekta var width = 25; var height = 150; var depth = 50; // Parametri animacije (euler) var rotacijaX = 0.000; var rotacijaY = 0.000; var rotacijaZ = 0.000; // Scena, kamera in render scene = new THREE.Scene; camera = new THREE.PerspectiveCamera(FOV, window.innerWidth / window.innerHeight, 0.1, 2000); camera.position.z = odmik_kamere; renderer = new THREE.WebGLRenderer({ alpha: true }); renderer.setSize(window.innerWidth, window.innerHeight); // Belo ozadje renderer.setClearColor(0xFFFFFF, 1); // Črno ozadje //renderer.setClearColor(0x000000, 1); // Dodaj test skatlo var geo = new THREE.BoxGeometry(width, height, depth); var mat = new THREE.MeshBasicMaterial({ color: 0xff00ff, wireframe: true }); // quaternion = new THREE.Quaternion(); var quaternion = null; var conjugation = null; var cube = new THREE.Mesh(geo, mat); scene.add(cube); // var objekti = [cube]; function render () { requestAnimationFrame(render); renderer.render(scene, camera); objAnim(); }; // Funkcija za animacijo objektov function objAnim() { objekti.map(function (obj) { if (conjugation) { //obj.setRotationFromEuler(new THREE.Euler(rotacijaY, -rotacijaX, rotacijaZ, 'XYZ')); newq = quaternion.clone(); //newq.multiplyQuaternions(quaternion, conjugation); //newq.multiply(conjugation); //obj.setRotationFromQuaternion(THREE.Quaternion.multiplyQuaternions(quaternion, conjugation)); obj.setRotationFromQuaternion(newq); console.log(obj.rotation.x); } }); }; // Inicializiraj document.onreadystatechange = function () { if (document.readyState === 'complete') { document.getElementById("anim-container").appendChild(renderer.domElement); render(); } }; // Lep risajz function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); } window.addEventListener('resize', onWindowResize, false); // Poslusaj OSC evente keysPressed = [0, 0, 0, 0]; const getVal = function (msg) { return msg.value; } oscCallbacks = { '/keys/': [ function(args) { keysPressed = [...args]; } ], '/quaternion/': [ function (args) { if (quaternion) { [quaternion.w, quaternion.x, quaternion.y, quaternion.z] = args.map(getVal); } else { quaternion = new THREE.Quaternion(args[0], args[1], args[2], args[3]); conjugation = quaternion.clone(); conjugation.conjugate(); } } ], '/gyro/': [ function (args) { [rotacijaX, rotacijaY, rotacijaZ] = args.map(getVal); } ] }