Zamenjan vrstni red gumbov, rotacija kamere

main
Jurij Podgoršek 2022-05-05 18:59:50 +02:00
parent b6858405b2
commit 1509776296
2 changed files with 54 additions and 31 deletions

30
anim.js
View File

@ -38,6 +38,10 @@ var rotacijaX = 0;
var rotacijaY = 0; var rotacijaY = 0;
var rotacijaZ = 0; var rotacijaZ = 0;
var crotacijaX = 0.000;
var crotacijaY = 0.000;
var crotacijaZ = 0.000;
// Premik obstojecih barv // Premik obstojecih barv
var zamikBarve = 0.01; var zamikBarve = 0.01;
@ -104,6 +108,12 @@ function render () {
camRotate(); camRotate();
}; };
window.onkeydown = function (e) {
crotacijaX *= 0.7;
crotacijaY *= 0.7;
crotacijaZ *= 0.7;
}
function modulirajParametre() { function modulirajParametre() {
// Vsi gumbi? => RESET // Vsi gumbi? => RESET
if ((keysPressed[0] + keysPressed[1] + keysPressed[2] + keysPressed[3]) === 4 && !reset) { if ((keysPressed[0] + keysPressed[1] + keysPressed[2] + keysPressed[3]) === 4 && !reset) {
@ -126,23 +136,25 @@ function modulirajParametre() {
} }
// Rotiranje manualno (z rocnimi gibi "iz sredine") // Rotiranje manualno (z rocnimi gibi "iz sredine")
if (keysPressed[3]) { if (keysPressed[0]) {
var k = objekti.slice(-1)[0]; var k = objekti.slice(-1)[0];
qObj.multiply(qWWd); qObj.multiply(qWWd);
k.quaternion.multiply(qWWd); k.quaternion.multiply(qWWd);
} }
if (keysPressed[2]) { if (keysPressed[1]) {
drotacijaX += qWWd.x / 10; drotacijaX += qWWd.x / 10;
drotacijaY += qWWd.y / 10; drotacijaY += qWWd.y / 10;
drotacijaZ += qWWd.z / 10; drotacijaZ += qWWd.z / 10;
} }
if (keysPressed[1]) { if (keysPressed[2]) {
//qKamera.multiply(qWWd); crotacijaX += qWWd.x / 30;
obj_limit *= 1 - dqY; crotacijaY += qWWd.y / 30;
crotacijaZ += qWWd.z / 30;
} }
if (keysPressed[0]) { if (keysPressed[3]) {
width *= 1 + (dqX / 3); width *= 1 + (dqX / 3);
barva_mod += (dqZ / 1000); barva_mod += (dqZ / 1000);
obj_limit *= 1 - dqY;
} }
} }
@ -201,10 +213,12 @@ function addObj(w, h) {
}; };
qK = new THREE.Quaternion() qK = new THREE.Quaternion()
scene.setRotationFromQuaternion(qK)
function camRotate () { function camRotate () {
qK.multiply(qKamera); //scene.setRotationFromQuaternion(qKamera)
scene.rotation.x += crotacijaX
scene.rotation.y += crotacijaY
scene.rotation.z += crotacijaZ
} }
// Inicializiraj // Inicializiraj

View File

@ -7,6 +7,8 @@ const PORT = 6676
// Do we have a problem, shall we debug? // Do we have a problem, shall we debug?
const DEBUG = true const DEBUG = true
const MIDI = false
@ -21,11 +23,12 @@ const WebSocket = require('ws')
const osc = require('osc') const osc = require('osc')
const readline = require('readline') const readline = require('readline')
const fs = require('fs') const fs = require('fs')
const midi = require('midi')
if (MIDI) {
let midiOn = false const midi = require('midi')
let midiNotes = {} let midiOn = false
let midiNotes = {}
}
// Vzemi iz argumenta // Vzemi iz argumenta
@ -55,12 +58,14 @@ const server = http.Server(app);
// Odprti serijski OSC link // Odprti serijski OSC link
let scon = null let scon = null
// Midi port if (MIDI) {
const mo = new midi.Output() // Midi port
//mo.getPortCount() const mo = new midi.Output()
//mo.getPortName(0) //mo.getPortCount()
//mo.openPort(0) //mo.getPortName(0)
mo.openVirtualPort("kegel") //mo.openPort(0)
mo.openVirtualPort("kegel")
}
function openSerial() { function openSerial() {
console.log('opening ', tty, baudrate) console.log('opening ', tty, baudrate)
@ -242,19 +247,21 @@ const sendAll = (msg, info, oscWS, osclients) => {
} }
if (msg.address == '/accel') { if (msg.address == '/accel') {
if (msg.args[1] > 2000) { if (MIDI) {
console.log("SEND MIDI!") if (msg.args[1] > 2000) {
const visina = Math.round((msg.args[1] - 2000) / 100) console.log("SEND MIDI!")
midiNotes[visina] = true const visina = Math.round((msg.args[1] - 2000) / 100)
mo.send([144, visina, 127]) midiNotes[visina] = true
midiOn = true mo.send([144, visina, 127])
} midiOn = true
}
if (msg.args[1] < 2000 && midiOn) { if (msg.args[1] < 2000 && midiOn) {
Object.keys(midiNotes).forEach(visina => { Object.keys(midiNotes).forEach(visina => {
mo.send([128, visina, 127]) mo.send([128, visina, 127])
}) })
midiOn = false midiOn = false
}
} }
} }
@ -303,4 +310,6 @@ wss.on('connection', function (ws) {
}) })
// Zapri midi // Zapri midi
mo.closePort() if (MIDI) {
mo.closePort()
}