Skip to content

Commit 4c1fd30

Browse files
author
Léna Voinchet
committed
Initial Commit
1 parent 0ae4998 commit 4c1fd30

File tree

13 files changed

+179
-58
lines changed

13 files changed

+179
-58
lines changed

css/main.css

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ select:hover {
7878

7979
#multi-select-sensors {
8080
padding-right: 0;
81-
height: 10rem;
81+
height: 12rem;
8282
border-radius: 8px;
8383
border: none;
8484
width: 25rem;
@@ -907,6 +907,15 @@ textarea:focus {
907907
color: var(--color-green-y);
908908
}
909909

910+
/*#dimensions-table-height-input{
911+
caret-color: var(--color-grey-unselected);
912+
border-color: var(--color-grey-unselected) var(--color-grey-unselected) var(--color-grey-unselected) var(--color-grey-unselected);
913+
}
914+
915+
#dimensions-table-height-text{
916+
color: var(--color-grey-unselected);
917+
}*/
918+
910919
#dimensions-distance-input{
911920
caret-color: var(--color-blue-z);
912921
border-color: var(--color-grey-unselected) var(--color-grey-unselected) var(--color-grey-unselected) var(--color-blue-z);
@@ -1125,6 +1134,41 @@ a:hover {
11251134
transition: 0.3s ease all;
11261135
}
11271136

1137+
/* Button 2 */
1138+
#button-2 .knobs:before {
1139+
content: "";
1140+
position: absolute;
1141+
top: 4px;
1142+
left: 4px;
1143+
width: 20px;
1144+
height: 10px;
1145+
color: #fff;
1146+
font-size: 10px;
1147+
font-weight: bold;
1148+
text-align: center;
1149+
line-height: 1;
1150+
padding: 9px 4px;
1151+
background-color: #03a9f4;
1152+
border-radius: 50%;
1153+
transition: 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
1154+
}
1155+
1156+
#button-2 .checkbox:checked + .knobs:before {
1157+
content: "";
1158+
left: 42px;
1159+
background-color: rgb(34, 221, 65);
1160+
}
1161+
1162+
#button-2 .checkbox:checked ~ .layer {
1163+
background-color: #e5fde5;
1164+
}
1165+
1166+
#button-2 .knobs,
1167+
#button-2 .knobs:before,
1168+
#button-2 .layer {
1169+
transition: 0.3s ease all;
1170+
}
1171+
11281172
.button-toggle.r,
11291173
.button-toggle.r .layer {
11301174
border-radius: 100px;
@@ -1175,6 +1219,10 @@ a:hover {
11751219
margin: 1em;
11761220
}
11771221

1222+
#button-toggle-text-2{
1223+
margin: 1em;
1224+
}
1225+
11781226
#new-toggle{
11791227
padding-left: 20px;
11801228
width: 8em;

index.html

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,14 @@ <h3>Hardware</h3>
148148
<input id="dimensions-distance-input" type="text" placeholder="Sensor height" min="0" max="20" step="0.1" data-unit="1">
149149
</div>
150150
</div>
151+
<!--<div id="dimensions-table-height" class="column">
152+
<div class="column">
153+
<p id="dimensions-table-height-text">Table height (<span data-unittext="1">m</span>)</p>
154+
</div>
155+
<div class="column">
156+
<input id="dimensions-table-height-input" type="text" placeholder="Width" min="0" max="2" step="0.1" data-unit="1">
157+
</div>
158+
</div>-->
151159
</div>
152160
<div id="dimensions-warning-message" class="row center-x wrap hidden">
153161
<p id="dimensions-warning-text" class="warning-text">No hardware setup found,</p><p id="dimensions-warning-button" class="text-button">click here to get in touch with our experts.</p>
@@ -211,13 +219,24 @@ <h3 id="multi-select-label" for="multi-select">Select sensor</h3>
211219
</select>
212220
</div>
213221
</div>
214-
<!-- Outdoor/Indoor toggle -->
215-
<div id="new-toggle">
216-
<p id="button-toggle-text">INDOOR</p>
217-
<div class="button-toggle r" id="button-1">
218-
<input id="toggle-outdoor-indoor" type="checkbox" class="checkbox" />
219-
<div class="knobs"></div>
220-
<div class="layer"></div>
222+
<div class="column">
223+
<!-- Outdoor/Indoor toggle -->
224+
<div id="new-toggle">
225+
<p id="button-toggle-text">INDOOR</p>
226+
<div class="button-toggle r" id="button-1">
227+
<input id="toggle-outdoor-indoor" type="checkbox" class="checkbox" />
228+
<div class="knobs"></div>
229+
<div class="layer"></div>
230+
</div>
231+
</div>
232+
<!-- Node/Server toggle -->
233+
<div id="new-toggle">
234+
<p id="button-toggle-text-2">SERVERS</p>
235+
<div class="button-toggle r" id="button-2">
236+
<input id="toggle-node-server" type="checkbox" class="checkbox" />
237+
<div class="knobs"></div>
238+
<div class="layer"></div>
239+
</div>
221240
</div>
222241
</div>
223242
</div>
@@ -434,7 +453,7 @@ <h1 id="website-title">Augmenta Designer (beta)</h1>
434453
<div id="open-wizard" class="row center-x center-y">
435454
<div id="open-wizard-button" class="button main-button">
436455
<span class="iconify main-icon" data-icon="fa:magic"></span>
437-
<p >Generate scene</p>
456+
<p >Generate config</p>
438457
</div>
439458
</div>
440459

@@ -636,13 +655,13 @@ <h3>Front wall scene size</h3>
636655
<div id="nodes-buttons" class="row center-x">
637656
<!-- ADD BUTTON -->
638657
<div id="add-node-button" class="button main-button" >
639-
<p>+ New node</p>
658+
<p>+ New sensor</p>
640659
</div>
641660

642661
<!-- DELETE BUTTON -->
643662
<div id="delete-all-nodes-button" class="button default-button" >
644663
<span class="iconify secondary-icon" data-icon="fluent:delete-16-filled"></span>
645-
<p>Delete all nodes</p>
664+
<p>Delete all sensors</p>
646665
</div>
647666
</div>
648667

js/UI/NodeUI.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class NodeUI{
1313
{
1414
let cameraTypesOptions = ``;
1515
getCamerasTypes().filter(c => c.recommended).forEach(type => {
16-
const optionElement = `<option value="` + type.niceName + `" ` + (node.cameraType.niceName === type.niceName ? `selected` : ``) + `>` + type.niceName;
16+
const optionElement = `<option value="` + type.name + `" ` + (node.cameraType.name === type.name ? `selected` : ``) + `>` + type.name;
1717
cameraTypesOptions += optionElement;
1818
cameraTypesOptions += "</option>"
1919
});
@@ -244,7 +244,7 @@ class NodeUI{
244244

245245
function changeCameraType()
246246
{
247-
node.cameraType = getCamerasTypes().find(type => type.niceName === document.getElementById('cam-type-' + node.id).value);
247+
node.cameraType = getCamerasTypes().find(type => type.name === document.getElementById('cam-type-' + node.id).value);
248248

249249
node.cameraPerspective.fov = node.cameraType.VFov;
250250
node.cameraPerspective.aspect = node.cameraType.aspectRatio;

js/UI/Popup.js

Lines changed: 90 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class Popup{
2020
let sensorsCompatible = this.sensorsCompatible;
2121
this.usedSensor = undefined;
2222
let usedSensor = this.usedSensor;
23+
this.nodesOrServers = undefined;
24+
let nodesOrServers = this.nodesOrServers;
2325

2426
/** UI */
2527
window.addEventListener('resize', onWindowResize);
@@ -454,6 +456,17 @@ class Popup{
454456
document.getElementById("button-toggle-text").innerHTML = text;
455457
});
456458

459+
document.getElementById("toggle-node-server").addEventListener('change', () => {
460+
let bool = document.getElementById("toggle-node-server").checked;
461+
let text;
462+
if(bool){
463+
text = "NODES";
464+
} else {
465+
text = "SERVERS";
466+
}
467+
document.getElementById("button-toggle-text-2").innerHTML = text;
468+
});
469+
457470
function resetHardwareSection()
458471
{
459472
usedSensor = undefined;
@@ -503,7 +516,7 @@ class Popup{
503516
// sensorChoice.innerHTML = `
504517
// <input id="` + s.textId + `" type="radio" name="sensor-choice" value="` + s.textId + `">
505518
// <div class="row center-x center-y hardware-switch">
506-
// <p>` + s.niceName + ` (<span data-unit=` + sceneManager.currentUnit.value + `>` + near + `</span> - <span data-unit=` + sceneManager.currentUnit.value + `>` + far + `</span><span data-unittext=` + sceneManager.currentUnit.value + `>` + sceneManager.currentUnit.label +`</span>)</p>
519+
// <p>` + s.name + ` (<span data-unit=` + sceneManager.currentUnit.value + `>` + near + `</span> - <span data-unit=` + sceneManager.currentUnit.value + `>` + far + `</span><span data-unittext=` + sceneManager.currentUnit.value + `>` + sceneManager.currentUnit.label +`</span>)</p>
507520
// </div>`;
508521
// sensorsDiv.appendChild(sensorChoice);
509522
// });
@@ -519,7 +532,7 @@ class Popup{
519532

520533
const near = Math.floor(s.rangeNear * sceneManager.currentUnit.value * 100) / 100;
521534
const far = Math.floor((trackingMode === 'hand-tracking' ? s.handFar : s.rangeFar) * sceneManager.currentUnit.value * 100) / 100;
522-
sensorChoice.innerHTML = `<p>` + s.niceName + ` (<span data-unit=` + sceneManager.currentUnit.value + `>` + near + `</span> - <span data-unit=` + sceneManager.currentUnit.value + `>` + far + `</span><span data-unittext=` + sceneManager.currentUnit.value + `>` + sceneManager.currentUnit.label +`</span>)</p>`;
535+
sensorChoice.innerHTML = `<p>` + s.name + ` (<span data-unit=` + sceneManager.currentUnit.value + `>` + near + `</span> - <span data-unit=` + sceneManager.currentUnit.value + `>` + far + `</span><span data-unittext=` + sceneManager.currentUnit.value + `>` + sceneManager.currentUnit.label +`</span>)</p>`;
523536
sensorsDiv.appendChild(sensorChoice);
524537
});
525538

@@ -529,6 +542,11 @@ class Popup{
529542
let sceneEnvironment = undefined;
530543
if(sceneInfos) {
531544
sceneEnvironment = JSON.parse(sceneInfos).sceneEnvironment;
545+
if(sceneEnvironment === 'outdoor'){
546+
document.getElementById("button-toggle-text").innerHTML = "OUTDOOR";
547+
} else {
548+
document.getElementById("button-toggle-text").innerHTML = "INDOOR";
549+
}
532550
} else {
533551
//New hardware selection system
534552
const toggleElem = document.getElementById("toggle-outdoor-indoor");
@@ -540,6 +558,15 @@ class Popup{
540558
disableSensorsConsideringEnvironment(sceneEnvironment);
541559
}
542560

561+
const toggleElemNodeServer = document.getElementById("toggle-node-server");
562+
if(toggleElemNodeServer.checked){
563+
nodesOrServers = 'nodes';
564+
document.getElementById("button-toggle-text-2").innerHTML = "NODES";
565+
} else {
566+
nodesOrServers = 'servers';
567+
document.getElementById("button-toggle-text-2").innerHTML = "SERVERS";
568+
}
569+
disableSensorsConsideringNodesAndServers(nodesOrServers)
543570

544571
//Old system
545572
// const switchElement = document.getElementById('hardware-switch-indoor-outdoor');
@@ -558,10 +585,10 @@ class Popup{
558585
function bindHardwareEventListeners(sensorsElements)
559586
{
560587
//New toggle indoor-outoor events
561-
const toggleElem = document.getElementById("toggle-outdoor-indoor");
562-
toggleElem.addEventListener('change', () => {
588+
const toggleElemOutIn = document.getElementById("toggle-outdoor-indoor");
589+
toggleElemOutIn.addEventListener('change', () => {
563590
let sceneEnvironment;
564-
if(toggleElem.checked){
591+
if(toggleElemOutIn.checked){
565592
sceneEnvironment = 'outdoor'
566593
} else{
567594
sceneEnvironment = 'indoor'
@@ -570,6 +597,18 @@ class Popup{
570597
sceneManager.changeEnvironment(sceneEnvironment);
571598
});
572599

600+
//New toggle node-server events
601+
// TODO
602+
const toggleElemNodSer = document.getElementById("toggle-node-server");
603+
toggleElemNodSer.addEventListener('change', () => {
604+
if(toggleElemNodSer.checked){
605+
nodesOrServers = "nodes"
606+
} else {
607+
nodesOrServers = "servers"
608+
}
609+
disableSensorsConsideringNodesAndServers(nodesOrServers)
610+
})
611+
573612
// OLD Switch indoor-outdoor events
574613
// const switchElement = document.getElementById('hardware-switch-indoor-outdoor');
575614
// const switchInputs = switchElement.querySelectorAll('input');
@@ -638,38 +677,38 @@ class Popup{
638677

639678
function createSceneFromSelectedSensor(){
640679
const sensorTextId = document.getElementById("multi-select-sensors").value;
641-
//on click on a sensor, display the scene calculated with this sensor
642-
switch(trackingMode)
643-
{
644-
case 'wall-tracking':
645-
{
646-
const sensor = getLidarsTypes().find(sensorType => sensorType.textId === sensorTextId);
647-
const config = calculateLidarConfig(sensor, givenWidth, givenHeight);
648-
if(!config){
649-
console.error('no config found with this setup');
650-
return;
651-
}
652-
sceneManager.objects.removeSensors();
653-
createSceneFromLidarConfig(config, sceneManager);
654-
break;
655-
}
656-
case 'human-tracking':
657-
case 'hand-tracking':
658-
{
659-
const sensor = getCamerasTypes().find(sensorType => sensorType.textId === sensorTextId);
660-
const overlapHeightDetection = trackingMode === 'human-tracking' ? heightDetected : SceneManager.HAND_TRACKING_OVERLAP_HEIGHT;
661-
const config = calculateCameraConfig(trackingMode, sensor, givenWidth, givenLength, givenHeight, overlapHeightDetection);
662-
if(!config){
663-
console.error('no config found with this setup');
664-
return;
665-
}
666-
sceneManager.objects.removeSensors();
667-
createSceneFromCameraConfig(config, trackingMode, givenWidth, givenLength, givenHeight + sceneManager.sceneElevation, sceneManager);
668-
break;
669-
}
670-
default:
671-
break;
680+
//on click on a sensor, display the scene calculated with this sensor
681+
switch(trackingMode)
682+
{
683+
case 'wall-tracking':
684+
{
685+
const sensor = getLidarsTypes().find(sensorType => sensorType.textId === sensorTextId);
686+
const config = calculateLidarConfig(sensor, givenWidth, givenHeight);
687+
if(!config){
688+
console.error('no config found with this setup');
689+
return;
672690
}
691+
sceneManager.objects.removeSensors();
692+
createSceneFromLidarConfig(config, sceneManager);
693+
break;
694+
}
695+
case 'human-tracking':
696+
case 'hand-tracking':
697+
{
698+
const sensor = getCamerasTypes().find(sensorType => sensorType.textId === sensorTextId);
699+
const overlapHeightDetection = trackingMode === 'human-tracking' ? heightDetected : SceneManager.HAND_TRACKING_OVERLAP_HEIGHT;
700+
const config = calculateCameraConfig(trackingMode, sensor, givenWidth, givenLength, givenHeight, overlapHeightDetection);
701+
if(!config){
702+
console.error('no config found with this setup');
703+
return;
704+
}
705+
sceneManager.objects.removeSensors();
706+
createSceneFromCameraConfig(config, trackingMode, givenWidth, givenLength, givenHeight + sceneManager.sceneElevation, sceneManager);
707+
break;
708+
}
709+
default:
710+
break;
711+
}
673712
}
674713

675714
function disableSensorsConsideringEnvironment(environment)
@@ -709,6 +748,20 @@ class Popup{
709748
}
710749
}
711750

751+
//New function
752+
function disableSensorsConsideringNodesAndServers(nodesOrServers)
753+
{
754+
//TODO
755+
sensorsCompatible.forEach(s => {
756+
if(s.usedWith.includes(nodesOrServers)){
757+
document.getElementById(s.textId).classList.remove("hidden");
758+
}
759+
else{
760+
document.getElementById(s.textId).classList.add("hidden")
761+
}
762+
});
763+
}
764+
712765
function selectFirstSensorAvailable()
713766
{
714767
const sensorsDiv = document.getElementById('multi-select-sensors');
@@ -866,7 +919,7 @@ class Popup{
866919
}
867920

868921
const sensorInfo = document.createElement('p');
869-
sensorInfo.innerHTML = `x` + nbSensors + ` ` + usedSensor.niceName;
922+
sensorInfo.innerHTML = `x` + nbSensors + ` ` + usedSensor.name;
870923
recapDiv.appendChild(sensorInfo);
871924

872925
usedSensor.accessories.forEach(a => {

js/UI/UIManager.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class UIManager{
5050
//Copy to clipboard click
5151
document.getElementById('copy-scene-link').addEventListener('click', () => {
5252
copyLink(sceneManager.objects.generateLink());
53+
copyUrlModal.classList.add('hidden');
5354
});
5455
//CLOSE MODAL CHEN CLICKING THE CROSS
5556
document.getElementById('close-share-modal').addEventListener('click', () => copyUrlModal.classList.add('hidden'));

js/UI/Wizard.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ class Wizard{
230230
const label = document.createElement("label");
231231

232232
label.setAttribute("for", "check-cam-" + c.id)
233-
label.innerHTML = c.niceName;
233+
label.innerHTML = c.name;
234234

235235
const url = document.location.href;
236236
if(url.includes('beta')) label.classList.add('dark-mode');

js/camera-data

js/lib/polybooljs

Submodule polybooljs updated 1 file

js/lib/three-js

Submodule three-js updated 3755 files

0 commit comments

Comments
 (0)