Skip to content

Commit 141f54f

Browse files
author
Léna Voinchet
committed
Fix display issues on Scene Size Text
1 parent 71aedc6 commit 141f54f

File tree

6 files changed

+68
-12
lines changed

6 files changed

+68
-12
lines changed

css/main.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,7 @@ textarea:focus {
935935
padding: 10px;
936936
border-radius: 5px;
937937
position: absolute;
938+
z-index:10;
938939
}
939940

940941
#sensor-height-infos-text p{

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ <h3 id="floor-scene-size-title-inspector">Floor scene size</h3>
621621

622622
<!-- INSPECTOR READONLY SCENE SIZE -->
623623
<div id="scene-size-text-div">
624-
<h3 id="scene-size-text">Scene size: <span data-unit="1">5</span>x<span data-unit="1">5</span>(<span data-unittext="1">m</span>) with a sensor height of <span data-unit="1">6</span>(<span data-unittext="1">m</span>)</h3>
624+
<h3 id="scene-size-text">Scene size : <span data-unit="1">5</span> x <span data-unit="1">5</span>(<span data-unittext="1">m</span>) with a sensor height of <span data-unit="1">6</span>(<span data-unittext="1">m</span>)</h3>
625625
</div>
626626

627627
<div id="info-table-height-inspector"></div>

js/UI/Popup.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ class Popup{
281281
document.getElementById('input-wall-y-scene-height-inspector').value = inputSceneHeight;
282282

283283
document.getElementById('dimensions-warning-message').classList.add('hidden');
284-
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size: <span data-unit=1>' + inputSceneWidth +'</span>x<span data-unit=1>'+ inputSceneHeight +'</span><span data-unittext="1">m</span></h3>';
284+
sceneManager.updateSceneSizeText(trackingMode);
285285
return true;
286286
}
287287
else
@@ -322,12 +322,14 @@ class Popup{
322322

323323
if(checkCameraCoherence(givenSceneHeight, overlapHeightDetection, maxFar, minNear))
324324
{
325+
const convertedSceneHeight = inputSceneHeight / sceneManager.currentUnit.value;
326+
sceneManager.sceneSensorHeight = convertedSceneHeight;
325327
const warningElem = document.getElementById('warning-hook-height');
326328
if(warningElem) document.getElementById('surface-warning-message').classList.add('hidden');
327329
//update inspector
328330
document.getElementById('input-scene-sensor-height-inspector').value = inputSceneHeight;
329331
//New readonly display of values
330-
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size: <span data-unit=1>' + inputSceneWidth +'</span>x<span data-unit=1>'+ inputSceneLength +'</span><span data-unittext="1">m</span> with a sensor height of <span data-unit="1">' + inputSceneHeight + '</span><span data-unittext="1">m</span></h3>';
332+
sceneManager.updateSceneSizeText(trackingMode);
331333

332334
return true;
333335
}
@@ -392,8 +394,8 @@ class Popup{
392394
document.getElementById('dimensions-width-input').value = Math.floor(sceneSize[0] * sceneManager.currentUnit.value * 100) / 100;
393395
document.getElementById('dimensions-length-input').value = Math.floor(sceneSize[1] * sceneManager.currentUnit.value * 100) / 100;
394396
const nodes = JSON.parse(sceneInfos).objects.nodes;
395-
//The value 2.5 for hand-tracking is just to address the fact that the sensor is by default the human-tracking one
396-
if(nodes.length > 0) document.getElementById('dimensions-distance-input').value = Math.floor((nodes[0].p_z - (trackingMode === 'hand-tracking' ? 2.5 : 0)) * sceneManager.currentUnit.value * 100) / 100;
397+
//The value 4.5 for hand-tracking is just to address the fact that the sensor is by default the human-tracking one
398+
if(nodes.length > 0) document.getElementById('dimensions-distance-input').value = Math.floor((nodes[0].p_z - (trackingMode === 'hand-tracking' ? 4.5 : 0)) * sceneManager.currentUnit.value * 100) / 100;
397399
else document.getElementById('dimensions-distance-input').value = '';
398400
break;
399401
default:

js/UI/UIManager.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ class UIManager{
116116

117117
//INSPECTOR READONLY INPUTS
118118
document.getElementById("input-scene-sensor-height-inspector").value = Node.DEFAULT_NODE_HEIGHT;
119-
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size: <span data-unit=1>' + SceneManager.DEFAULT_WIDTH +'</span>x<span data-unit=1>'+ SceneManager.DEFAULT_LENGTH +'</span><span data-unittext="1">m</span> with a sensor height of <span data-unit="1">' + Node.DEFAULT_NODE_HEIGHT + '</span><span data-unittext="1">m</span></h3>';
119+
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size : <span data-unit=1>' + SceneManager.DEFAULT_WIDTH +'</span> x <span data-unit=1>'+ SceneManager.DEFAULT_LENGTH +'</span><span data-unittext="1">m</span> with a sensor height of <span data-unit="1">' + Node.DEFAULT_NODE_HEIGHT + '</span><span data-unittext="1">m</span></h3>';
120120

121121
//document.getElementById("tracking-mode-selection-inspector").value = 'human-tracking';
122122
}
@@ -189,17 +189,17 @@ class UIManager{
189189
case 'hand-tracking':
190190
document.getElementById("coverage-section").classList.remove("hidden");
191191
document.getElementById("height-detection-text").classList.add("hidden");
192-
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size: <span data-unit=1>' + sceneManager.sceneWidth +'</span>x<span data-unit=1>'+ sceneManager.sceneWidth +'</span><span data-unittext="1">m</span> with a sensor height of <span data-unit="1">' + sceneManager.sceneSensorHeight + '</span><span data-unittext="1">m</span></h3>';
192+
sceneManager.updateSceneSizeText(trackingMode);
193193
break;
194194
case 'wall-tracking':
195195
document.getElementById("coverage-section").classList.add("hidden");
196196
document.getElementById("height-detection-text").classList.add("hidden");
197-
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size: <span data-unit=1>' + sceneManager.sceneWidth +'</span>x<span data-unit=1>'+ sceneManager.sceneLength +'</span><span data-unittext="1">m</span></h3>';
197+
sceneManager.updateSceneSizeText(trackingMode);
198198
break;
199199
case 'human-tracking':
200200
document.getElementById("coverage-section").classList.remove("hidden");
201201
document.getElementById("height-detection-text").classList.remove("hidden");
202-
document.getElementById('scene-size-text-div').innerHTML= '<h3 id="scene-size-text">Scene size: <span data-unit=1>' + sceneManager.sceneWidth +'</span>x<span data-unit=1>'+ sceneManager.sceneWidth +'</span><span data-unittext="1">m</span> with a sensor height of <span data-unit="1">' + sceneManager.sceneSensorHeight + '</span><span data-unittext="1">m</span></h3>';
202+
sceneManager.updateSceneSizeText(trackingMode);
203203
break;
204204
default:
205205
break;

js/scene/SceneManager.js

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,13 @@ class SceneManager{
295295
}
296296
const unitNumberElements = document.querySelectorAll('[data-unit]');
297297
unitNumberElements.forEach(e => {
298-
if(e.tagName === 'INPUT' && e.value) e.value = Math.round(e.value / this.currentUnit.value * unit.value * 100) / 100.0;
299-
else e.innerHTML = Math.round(e.innerHTML / this.currentUnit.value * unit.value * 100) / 100.0;
298+
if(e.tagName === 'INPUT' && e.value) {
299+
const converted = Math.round(e.value / this.currentUnit.value * unit.value * 100) / 100.0;
300+
e.value = parseFloat(converted.toFixed(2));
301+
} else {
302+
const converted = Math.round(e.innerHTML / this.currentUnit.value * unit.value * 100) / 100.0;
303+
e.innerHTML = converted.toFixed(2);
304+
}
300305
e.dataset.unit = unit.value;
301306
});
302307
const unitCharElements = document.querySelectorAll('[data-unittext]');
@@ -325,6 +330,54 @@ class SceneManager{
325330
this.objects.populateStorage();
326331
}
327332

333+
//HERE
334+
this.updateSceneSizeText = function(trackingMode = "human-tracking")
335+
{
336+
let usedWidth = this.sceneWidth * this.currentUnit.value;
337+
let usedLength = this.sceneLength * this.currentUnit.value;
338+
let usedSensorHeight = this.sceneSensorHeight * this.currentUnit.value;
339+
switch(trackingMode) {
340+
case 'wall-tracking':
341+
// TODO
342+
document.getElementById('scene-size-text-div').innerHTML= `
343+
<h3 id="scene-size-text">
344+
Scene size :
345+
<span data-unit="1">${usedWidth.toFixed(2)}</span> x
346+
<span data-unit="1">${usedLength.toFixed(2)}</span>
347+
<span data-unittext="${this.currentUnit.label}">${this.currentUnit.label}</span>
348+
</h3>
349+
`;
350+
break;
351+
case 'hand-tracking':
352+
document.getElementById('scene-size-text-div').innerHTML = `
353+
<h3 id="scene-size-text">
354+
Scene size :
355+
<span data-unit="1">${usedWidth.toFixed(2)}</span> x
356+
<span data-unit="1">${usedLength.toFixed(2)}</span>
357+
<span data-unittext="${this.currentUnit.label}">${this.currentUnit.label}</span>
358+
with a sensor height of
359+
<span data-unit="1">${usedSensorHeight.toFixed(2)}</span>
360+
<span data-unittext="${this.currentUnit.label}">${this.currentUnit.label}</span>
361+
</h3>
362+
`;
363+
break;
364+
case 'human-tracking':
365+
default:
366+
document.getElementById('scene-size-text-div').innerHTML = `
367+
<h3 id="scene-size-text">
368+
Scene size :
369+
<span data-unit="1">${usedWidth.toFixed(2)}</span> x
370+
<span data-unit="1">${usedLength.toFixed(2)}</span>
371+
<span data-unittext="${this.currentUnit.label}">${this.currentUnit.label}</span>
372+
with a sensor height of
373+
<span data-unit="1">${usedSensorHeight.toFixed(2)}</span>
374+
<span data-unittext="${this.currentUnit.label}">${this.currentUnit.label}</span>
375+
</h3>
376+
`;
377+
break;
378+
}
379+
}
380+
328381
/**
329382
* Define the border of the scene to track
330383
*

js/scene/objects/sensors/Node.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { SceneObjects } from '../SceneObjects.js';
1515

1616
class Node{
1717
static DEFAULT_CAMERA_TYPE_ID = 0;
18-
static DEFAULT_NODE_HEIGHT = 5.5;
18+
static DEFAULT_NODE_HEIGHT = 7;
1919
static DEFAULT_NODE_ROTATION_X = - Math.PI / 2.0;
2020
static SIZE_TEXT_NODE = 0.4;
2121

0 commit comments

Comments
 (0)