13
13
* limitations under the License.
14
14
*/
15
15
16
- import { Box3 , BoxGeometry , BufferGeometry , Event as ThreeEvent , EventDispatcher , Line , Matrix4 , Mesh , PerspectiveCamera , Quaternion , Vector3 , WebGLRenderer , XRControllerEventType , XRTargetRaySpace , Object3D } from 'three' ;
16
+ import { Box3 , BufferGeometry , Event as ThreeEvent , EventDispatcher , Line , Matrix4 , PerspectiveCamera , Quaternion , Vector3 , WebGLRenderer , XRControllerEventType , XRTargetRaySpace , Object3D } from 'three' ;
17
17
import { XREstimatedLight } from 'three/examples/jsm/webxr/XREstimatedLight.js' ;
18
18
19
19
import { CameraChangeDetails , ControlsInterface } from '../features/controls.js' ;
@@ -49,8 +49,6 @@ const MAX_DISTANCE = 10;
49
49
const DECAY = 150 ;
50
50
// Longer controller/hand indicator line (meters).
51
51
const MAX_LINE_LENGTH = 5 ;
52
- // Maximum dimension of rotation indicator box on controller (meters).
53
- const BOX_SIZE = 0.1 ;
54
52
// Axis Y in webxr.
55
53
const AXIS_Y = new Vector3 ( 0 , 1 , 0 ) ;
56
54
// Webxr rotation sensitivity
@@ -83,7 +81,6 @@ export interface ARTrackingEvent extends ThreeEvent {
83
81
84
82
interface UserData {
85
83
turning : boolean
86
- box : Mesh
87
84
line : Line
88
85
isSelected : boolean
89
86
initialX : number
@@ -104,7 +101,6 @@ const hitPosition = new Vector3();
104
101
const camera = new PerspectiveCamera ( 45 , 1 , 0.1 , 100 ) ;
105
102
const lineGeometry = new BufferGeometry ( ) . setFromPoints (
106
103
[ new Vector3 ( 0 , 0 , 0 ) , new Vector3 ( 0 , 0 , - 1 ) ] ) ;
107
- const boxGeometry = new BoxGeometry ( ) ;
108
104
109
105
export class ARRenderer extends EventDispatcher <
110
106
{ status : { status : ARStatus } , tracking : { status : ARTracking } } > {
@@ -337,19 +333,6 @@ export class ARRenderer extends EventDispatcher<
337
333
this . scaleLine . name = 'scale line' ;
338
334
this . scaleLine . visible = false ;
339
335
this . controller1 . add ( this . scaleLine ) ;
340
-
341
- const { size} = scene ;
342
- const scale = BOX_SIZE / Math . max ( size . x , size . y , size . z ) ;
343
- const box = new Mesh ( boxGeometry ) ;
344
- box . name = 'box' ;
345
- box . scale . copy ( size ) . multiplyScalar ( scale ) ;
346
- box . visible = false ;
347
-
348
- this . controller1 . userData . box = box ;
349
- scene . add ( box ) ;
350
- const box2 = box . clone ( ) ;
351
- this . controller2 . userData . box = box2 ;
352
- scene . add ( box2 ) ;
353
336
}
354
337
}
355
338
@@ -362,10 +345,7 @@ export class ARRenderer extends EventDispatcher<
362
345
363
346
const scene = this . presentedScene ! ;
364
347
const intersection =
365
- this . placementBox ! . controllerIntersection ( scene , controller )
366
- controller . userData . box . visible =
367
- ( intersection == null || controller . userData . turning ) &&
368
- ! this . isTwoFingering ;
348
+ this . placementBox ! . controllerIntersection ( scene , controller ) ;
369
349
controller . userData . line . scale . z =
370
350
intersection == null ? MAX_LINE_LENGTH : intersection . distance ;
371
351
return intersection != null ;
@@ -592,7 +572,6 @@ export class ARRenderer extends EventDispatcher<
592
572
if ( this . xrMode !== 'screen-space' ) {
593
573
if ( this . controller1 != null ) {
594
574
this . controller1 . userData . turning = false ;
595
- this . controller1 . userData . box . visible = false ;
596
575
this . controller1 . userData . line . visible = true ;
597
576
this . controller1 . removeEventListener (
598
577
'selectstart' , this . onControllerSelectStart ) ;
@@ -603,7 +582,6 @@ export class ARRenderer extends EventDispatcher<
603
582
}
604
583
if ( this . controller2 != null ) {
605
584
this . controller2 . userData . turning = false ;
606
- this . controller2 . userData . box . visible = false ;
607
585
this . controller2 . userData . line . visible = true ;
608
586
this . controller2 . removeEventListener (
609
587
'selectstart' , this . onControllerSelectStart ) ;
0 commit comments