@@ -10,6 +10,8 @@ class Popup{
10
10
let trackingMode = this . trackingMode ;
11
11
this . heightDetected = 1.2 ;
12
12
let heightDetected = this . heightDetected ;
13
+ this . sizeDetected = 0.1 ;
14
+ let sizeDetected = this . sizeDetected ;
13
15
this . givenWidth = 0 ;
14
16
let givenWidth = this . givenWidth ;
15
17
this . givenLength = 0 ;
@@ -111,8 +113,6 @@ class Popup{
111
113
document . getElementById ( "setup-target-overlap-table" ) . classList . remove ( "hidden" ) ;
112
114
document . getElementById ( "setup-target-overlap" ) . classList . add ( "hidden" ) ;
113
115
document . getElementById ( "setup-target-overlap-wall" ) . classList . add ( "hidden" ) ;
114
- sceneManager . heightDetectedObservable . set ( 0.25 ) ;
115
- //sceneManager.sceneElevation = 0.75;
116
116
break ;
117
117
case 'human-tracking' :
118
118
document . getElementById ( "setup-target-overlap" ) . classList . remove ( "hidden" ) ;
@@ -130,6 +130,12 @@ class Popup{
130
130
if ( trackingMode == "human-tracking" ) document . getElementById ( "overlap-height-selection-popup" ) . value = heightDetected ;
131
131
}
132
132
133
+ this . setSizeDetected = function ( value ) {
134
+ //console.log("Setting detected size to ", value);
135
+ sizeDetected = value ;
136
+ if ( trackingMode == "wall-tracking" ) document . getElementById ( 'overlap-wall-selection-popup' ) . value = sizeDetected ;
137
+ }
138
+
133
139
/** SETUP SECTION */
134
140
function initSetupSection ( )
135
141
{
@@ -161,6 +167,7 @@ class Popup{
161
167
sceneManager . trackingModeObservable . set ( trackingModeRadios [ i ] . value )
162
168
switch ( trackingMode ) {
163
169
case "wall-tracking" :
170
+ sceneManager . sizeDetectedObservable . set ( 0.1 )
164
171
break ;
165
172
case "hand-tracking" :
166
173
sceneManager . heightDetectedObservable . set ( 0.25 )
@@ -192,6 +199,10 @@ class Popup{
192
199
sceneManager . heightDetectedObservable . set ( parseFloat ( document . getElementById ( "overlap-height-selection-popup" ) . value ) ) ;
193
200
} ) ;
194
201
202
+ document . getElementById ( 'overlap-wall-selection-popup' ) . addEventListener ( 'change' , ( ) => {
203
+ sceneManager . sizeDetectedObservable . set ( parseFloat ( document . getElementById ( 'overlap-wall-selection-popup' ) . value ) ) ;
204
+ } ) ;
205
+
195
206
document . getElementById ( 'next-button-setup' ) . addEventListener ( 'click' , ( ) =>
196
207
{
197
208
const trackingModeRadios = document . getElementsByName ( "tracking-mode-selection-builder" ) ;
@@ -534,7 +545,8 @@ class Popup{
534
545
if ( trackingMode === "wall-tracking" )
535
546
{
536
547
getLidarsTypes ( ) . filter ( l => l . recommended ) . forEach ( l => {
537
- if ( checkLidarCoherence ( givenWidth , givenHeight , l . rangeFar ) )
548
+ const rangeFar = sizeDetected === 0.1 ? l . handFar : l . fingerFar ;
549
+ if ( checkLidarCoherence ( givenWidth , givenHeight , rangeFar ) )
538
550
{ sensorsCompatible . push ( l ) }
539
551
} )
540
552
}
@@ -581,8 +593,21 @@ class Popup{
581
593
//sensorChoice.id = "hardware-input-" + s.textId;
582
594
//sensorChoice.classList.add("row", "center-x", "hardware-sensors-type", "hardware-radio-label");
583
595
584
- const near = Math . floor ( s . rangeNear * sceneManager . currentUnit . value * 100 ) / 100 ;
585
- const far = Math . floor ( ( trackingMode === 'hand-tracking' ? s . handFar : s . rangeFar ) * sceneManager . currentUnit . value * 100 ) / 100 ;
596
+ let near = Math . floor ( s . rangeNear * sceneManager . currentUnit . value * 100 ) / 100 ;
597
+ let far ;
598
+
599
+ switch ( trackingMode ) {
600
+ case 'hand-tracking' :
601
+ far = Math . floor ( s . handFar * sceneManager . currentUnit . value * 100 ) / 100 ;
602
+ break ;
603
+ case 'human-tracking' :
604
+ far = Math . floor ( s . rangeFar * sceneManager . currentUnit . value * 100 ) / 100 ;
605
+ break ;
606
+ case 'wall-tracking' :
607
+ const rangeFar = sizeDetected === 0.1 ? s . handFar : s . fingerFar ;
608
+ far = Math . floor ( rangeFar * sceneManager . currentUnit . value * 100 ) / 100 ;
609
+ break ;
610
+ }
586
611
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>` ;
587
612
sensorsDiv . appendChild ( sensorChoice ) ;
588
613
} ) ;
@@ -727,7 +752,7 @@ class Popup{
727
752
case 'wall-tracking' :
728
753
{
729
754
const sensor = getLidarsTypes ( ) . find ( sensorType => sensorType . textId === sensorTextId ) ;
730
- const config = calculateLidarConfig ( sensor , givenWidth , givenHeight ) ;
755
+ const config = calculateLidarConfig ( sensor , givenWidth , givenHeight , sceneManager . sizeDetected ) ;
731
756
if ( ! config ) {
732
757
console . error ( 'no config found with this setup' ) ;
733
758
return ;
0 commit comments