Compare commits
2 Commits
master
...
tretja-vej
Author | SHA1 | Date |
---|---|---|
Jurij Podgoršek | 111feb350a | |
Jurij Podgoršek | d7b3c48843 |
107
control.html
107
control.html
|
@ -1,107 +0,0 @@
|
|||
<html >
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>cancerainbow control</title>
|
||||
<style type="text/css">
|
||||
body {
|
||||
margin: 0
|
||||
}
|
||||
|
||||
.noUi-target {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
table tr td {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
</style>
|
||||
<link href="node_modules/nouislider/distribute/nouislider.min.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
vidni kot (FOV)
|
||||
</td>
|
||||
<td>
|
||||
<div id="fovCtl"></div>
|
||||
</td>
|
||||
<td id="fovVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
visina objekta
|
||||
</td>
|
||||
<td>
|
||||
<div id="visinaCtl"></div>
|
||||
</td>
|
||||
<td id="visinaVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
sirina objekta
|
||||
</td>
|
||||
<td>
|
||||
<div id="sirinaCtl"></div>
|
||||
</td>
|
||||
<td id="sirinaVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
limit objektov
|
||||
</td>
|
||||
<td>
|
||||
<div id="obj_limitCtl"></div>
|
||||
</td>
|
||||
<td id="obj_limitVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
rotacija X
|
||||
</td>
|
||||
<td>
|
||||
<div id="rotxCtl"></div>
|
||||
</td>
|
||||
<td id="rotxVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
rotacija Y
|
||||
</td>
|
||||
<td>
|
||||
<div id="rotyCtl"></div>
|
||||
</td>
|
||||
<td id="rotyVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
rotacija Z
|
||||
</td>
|
||||
<td>
|
||||
<div id="rotzCtl"></div>
|
||||
</td>
|
||||
<td id="rotzVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
barva
|
||||
</td>
|
||||
<td>
|
||||
<div id="barva_modCtl"></div>
|
||||
</td>
|
||||
<td id="barva_modVal"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
kamera
|
||||
</td>
|
||||
<td>
|
||||
<div id="cam_rot_offsetCtl"></div>
|
||||
</td>
|
||||
<td id="cam_rot_offsetVal"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<script src="node_modules/nouislider/distribute/nouislider.min.js"></script>
|
||||
<script src="control.js"></script>
|
||||
</body>
|
||||
</html>
|
154
control.js
154
control.js
|
@ -1,154 +0,0 @@
|
|||
// Interaktivnost
|
||||
|
||||
var socket = new WebSocket(location.origin.replace(/https?/, 'wss'));
|
||||
|
||||
function throttle (cb, limit) {
|
||||
var w = false;
|
||||
return function () {
|
||||
if (!w) {
|
||||
cb.apply(this, arguments);
|
||||
w = true;
|
||||
setTimeout(function () {
|
||||
w = false;
|
||||
}, limit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inputi = {
|
||||
"fov": {
|
||||
val: 120,
|
||||
min: 30,
|
||||
max: 179
|
||||
},
|
||||
"sirina": {
|
||||
val: 2,
|
||||
min: 1,
|
||||
max: 6,
|
||||
step: 0.1
|
||||
},
|
||||
"visina": {
|
||||
val: 2,
|
||||
min: 1,
|
||||
max: 6,
|
||||
step: 0.1
|
||||
},
|
||||
"obj_limit": {
|
||||
val: 1000,
|
||||
min: 1,
|
||||
max: 10000
|
||||
},
|
||||
"rotx": {
|
||||
val: 0,
|
||||
min: -0.1,
|
||||
max: 0.1,
|
||||
step: 0.001
|
||||
},
|
||||
"roty": {
|
||||
val: 0,
|
||||
min: -0.1,
|
||||
max: 0.1,
|
||||
step: 0.001
|
||||
},
|
||||
"rotz": {
|
||||
val: 0,
|
||||
min: -0.1,
|
||||
max: 0.1,
|
||||
step: 0.001
|
||||
},
|
||||
"barva_mod": {
|
||||
val: 0.001,
|
||||
min: 0.001,
|
||||
max: 0.18,
|
||||
step: 0.001
|
||||
},
|
||||
"cam_rot_offset": {
|
||||
val: 0,
|
||||
min: -10,
|
||||
max: 10,
|
||||
step: 0.1
|
||||
}
|
||||
};
|
||||
|
||||
Object.keys(inputi).map(function (name) {
|
||||
var valEl = document.getElementById(name + "Val");
|
||||
if (!valEl) { return; }
|
||||
|
||||
var ctlEl = document.getElementById(name + "Ctl");
|
||||
var params = inputi[name];
|
||||
|
||||
var step = params.step;
|
||||
if (!step) step = 1;
|
||||
noUiSlider.create(ctlEl, {
|
||||
start: [params.val],
|
||||
range: {
|
||||
min: [params.min],
|
||||
max: [params.max]
|
||||
},
|
||||
step: step
|
||||
});
|
||||
|
||||
ctlEl.noUiSlider.on('slide', throttle(function(val) {
|
||||
console.log("update!");
|
||||
var value = val[0];
|
||||
valEl.innerHTML = value;
|
||||
socket.send(['adjust', name, value].join(':'));
|
||||
}, 125));
|
||||
|
||||
valEl.innerHTML = ctlEl.noUiSlider.get();
|
||||
});
|
||||
|
||||
|
||||
callbacks = {
|
||||
fov: function(val) {
|
||||
if (typeof camera === 'undefined') return;
|
||||
FOV = val;
|
||||
camera.fov = val;
|
||||
camera.updateProjectionMatrix();
|
||||
},
|
||||
sirina: function(val) {
|
||||
width = parseFloat(val);
|
||||
},
|
||||
visina: function (val) {
|
||||
height = parseFloat(val);
|
||||
},
|
||||
rotx: function(val) {
|
||||
rotacijaX = parseFloat(val);
|
||||
},
|
||||
roty: function(val) {
|
||||
rotacijaY = parseFloat(val);
|
||||
},
|
||||
rotz: function(val) {
|
||||
rotacijaZ = parseFloat(val);
|
||||
},
|
||||
obj_limit: function(val) {
|
||||
obj_limit = parseInt(val);
|
||||
},
|
||||
default: function(name, val) {
|
||||
window[name] = parseFloat(val);
|
||||
}
|
||||
};
|
||||
|
||||
socket.onmessage = function (msg) {
|
||||
var parts = msg.data.split(":");
|
||||
var cmd = parts[0];
|
||||
|
||||
switch (cmd) {
|
||||
case 'adjust':
|
||||
var name = parts[1];
|
||||
var val = parts[2];
|
||||
|
||||
if (name in callbacks) {
|
||||
callbacks[name].call(this, val);
|
||||
} else {
|
||||
callbacks["default"].call(this, name, val);
|
||||
}
|
||||
|
||||
var valEl = document.getElementById(name + "Val");
|
||||
if (!valEl) { return; }
|
||||
var ctlEl = document.getElementById(name + "Ctl");
|
||||
|
||||
ctlEl.noUiSlider.set(val, false);
|
||||
valEl.innerHTML = ctlEl.noUiSlider.get();
|
||||
}
|
||||
};
|
|
@ -12,6 +12,7 @@
|
|||
<body>
|
||||
<div id="anim-container">
|
||||
</div>
|
||||
Dodan tekst
|
||||
<script src="node_modules/three/build/three.min.js"></script>
|
||||
<script src="anim.js"></script>
|
||||
<script src="control.js"></script>
|
||||
|
|
|
@ -15,15 +15,15 @@
|
|||
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
|
||||
"requires": {
|
||||
"bytes": "3.1.0",
|
||||
"content-type": "1.0.4",
|
||||
"content-type": "~1.0.4",
|
||||
"debug": "2.6.9",
|
||||
"depd": "1.1.2",
|
||||
"depd": "~1.1.2",
|
||||
"http-errors": "1.7.2",
|
||||
"iconv-lite": "0.4.24",
|
||||
"on-finished": "2.3.0",
|
||||
"on-finished": "~2.3.0",
|
||||
"qs": "6.7.0",
|
||||
"raw-body": "2.4.0",
|
||||
"type-is": "1.6.18"
|
||||
"type-is": "~1.6.17"
|
||||
}
|
||||
},
|
||||
"bytes": {
|
||||
|
@ -99,36 +99,36 @@
|
|||
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
|
||||
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
|
||||
"requires": {
|
||||
"accepts": "1.3.7",
|
||||
"accepts": "~1.3.7",
|
||||
"array-flatten": "1.1.1",
|
||||
"body-parser": "1.19.0",
|
||||
"content-disposition": "0.5.3",
|
||||
"content-type": "1.0.4",
|
||||
"content-type": "~1.0.4",
|
||||
"cookie": "0.4.0",
|
||||
"cookie-signature": "1.0.6",
|
||||
"debug": "2.6.9",
|
||||
"depd": "1.1.2",
|
||||
"encodeurl": "1.0.2",
|
||||
"escape-html": "1.0.3",
|
||||
"etag": "1.8.1",
|
||||
"finalhandler": "1.1.2",
|
||||
"depd": "~1.1.2",
|
||||
"encodeurl": "~1.0.2",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"finalhandler": "~1.1.2",
|
||||
"fresh": "0.5.2",
|
||||
"merge-descriptors": "1.0.1",
|
||||
"methods": "1.1.2",
|
||||
"on-finished": "2.3.0",
|
||||
"parseurl": "1.3.3",
|
||||
"methods": "~1.1.2",
|
||||
"on-finished": "~2.3.0",
|
||||
"parseurl": "~1.3.3",
|
||||
"path-to-regexp": "0.1.7",
|
||||
"proxy-addr": "2.0.6",
|
||||
"proxy-addr": "~2.0.5",
|
||||
"qs": "6.7.0",
|
||||
"range-parser": "1.2.1",
|
||||
"range-parser": "~1.2.1",
|
||||
"safe-buffer": "5.1.2",
|
||||
"send": "0.17.1",
|
||||
"serve-static": "1.14.1",
|
||||
"setprototypeof": "1.1.1",
|
||||
"statuses": "1.5.0",
|
||||
"type-is": "1.6.18",
|
||||
"statuses": "~1.5.0",
|
||||
"type-is": "~1.6.18",
|
||||
"utils-merge": "1.0.1",
|
||||
"vary": "1.1.2"
|
||||
"vary": "~1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"accepts": {
|
||||
|
@ -136,7 +136,7 @@
|
|||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
|
||||
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
|
||||
"requires": {
|
||||
"mime-types": "2.1.27",
|
||||
"mime-types": "~2.1.24",
|
||||
"negotiator": "0.6.2"
|
||||
}
|
||||
},
|
||||
|
@ -176,12 +176,12 @@
|
|||
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "1.0.2",
|
||||
"escape-html": "1.0.3",
|
||||
"on-finished": "2.3.0",
|
||||
"parseurl": "1.3.3",
|
||||
"statuses": "1.5.0",
|
||||
"unpipe": "1.0.0"
|
||||
"encodeurl": "~1.0.2",
|
||||
"escape-html": "~1.0.3",
|
||||
"on-finished": "~2.3.0",
|
||||
"parseurl": "~1.3.3",
|
||||
"statuses": "~1.5.0",
|
||||
"unpipe": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"forwarded": {
|
||||
|
@ -199,10 +199,10 @@
|
|||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
||||
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
|
||||
"requires": {
|
||||
"depd": "1.1.2",
|
||||
"depd": "~1.1.2",
|
||||
"inherits": "2.0.3",
|
||||
"setprototypeof": "1.1.1",
|
||||
"statuses": "1.5.0",
|
||||
"statuses": ">= 1.5.0 < 2",
|
||||
"toidentifier": "1.0.0"
|
||||
}
|
||||
},
|
||||
|
@ -211,7 +211,7 @@
|
|||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"requires": {
|
||||
"safer-buffer": "2.1.2"
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
|
@ -277,7 +277,7 @@
|
|||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
|
||||
"integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
|
||||
"requires": {
|
||||
"forwarded": "0.1.2",
|
||||
"forwarded": "~0.1.2",
|
||||
"ipaddr.js": "1.9.1"
|
||||
}
|
||||
},
|
||||
|
@ -313,18 +313,18 @@
|
|||
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"depd": "1.1.2",
|
||||
"destroy": "1.0.4",
|
||||
"encodeurl": "1.0.2",
|
||||
"escape-html": "1.0.3",
|
||||
"etag": "1.8.1",
|
||||
"depd": "~1.1.2",
|
||||
"destroy": "~1.0.4",
|
||||
"encodeurl": "~1.0.2",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"fresh": "0.5.2",
|
||||
"http-errors": "1.7.2",
|
||||
"http-errors": "~1.7.2",
|
||||
"mime": "1.6.0",
|
||||
"ms": "2.1.1",
|
||||
"on-finished": "2.3.0",
|
||||
"range-parser": "1.2.1",
|
||||
"statuses": "1.5.0"
|
||||
"on-finished": "~2.3.0",
|
||||
"range-parser": "~1.2.1",
|
||||
"statuses": "~1.5.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ms": {
|
||||
|
@ -339,9 +339,9 @@
|
|||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
|
||||
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
|
||||
"requires": {
|
||||
"encodeurl": "1.0.2",
|
||||
"escape-html": "1.0.3",
|
||||
"parseurl": "1.3.3",
|
||||
"encodeurl": "~1.0.2",
|
||||
"escape-html": "~1.0.3",
|
||||
"parseurl": "~1.3.3",
|
||||
"send": "0.17.1"
|
||||
}
|
||||
},
|
||||
|
@ -371,7 +371,7 @@
|
|||
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
||||
"requires": {
|
||||
"media-typer": "0.3.0",
|
||||
"mime-types": "2.1.27"
|
||||
"mime-types": "~2.1.24"
|
||||
},
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
|
|
14
package.json
14
package.json
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"name": "cancerain",
|
||||
"version": "0.3.0",
|
||||
"description": "epilepsija",
|
||||
"dependencies": {
|
||||
"express": "^4.17.1",
|
||||
"nouislider": "14.6.2",
|
||||
"three": "0.120.1",
|
||||
"ws": "^7.3.1"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node server.js"
|
||||
}
|
||||
}
|
|
@ -11,10 +11,10 @@ const include_files = [
|
|||
'/node_modules/three/build/three.min.js',
|
||||
'/node_modules/nouislider/distribute/nouislider.min.js',
|
||||
'/node_modules/nouislider/distribute/nouislider.min.css',
|
||||
]
|
||||
];
|
||||
|
||||
const app = express()
|
||||
const server = http.Server(app)
|
||||
const app = express();
|
||||
const server = http.Server(app);
|
||||
|
||||
app.get('/', function(req, res) {
|
||||
res.sendFile(__dirname + '/index.html');
|
||||
|
|
Loading…
Reference in New Issue