@@ -79,14 +79,24 @@ export class NgtsOrbitControls {
7979 @Output ( ) end = new EventEmitter < THREE . Event > ( ) ;
8080
8181 private store = injectNgtStore ( ) ;
82+ private invalidate = this . store . select ( 'invalidate' ) ;
83+ private performance = this . store . select ( 'performance' ) ;
84+ private defaultCamera = this . store . select ( 'camera' ) ;
85+ private glDomElement = this . store . select ( 'gl' , 'domElement' ) ;
86+
87+ private regress = this . inputs . select ( 'regress' ) ;
88+ private camera = this . inputs . select ( 'camera' ) ;
89+ private domElement = this . inputs . select ( 'domElement' ) ;
90+ private keyEvents = this . inputs . select ( 'keyEvents' ) ;
91+ private makeDefault = this . inputs . select ( 'makeDefault' ) ;
8292
8393 args = computed ( ( ) => [ this . controlsRef . nativeElement ] ) ;
8494 enableDamping = this . inputs . select ( 'enableDamping' ) ;
8595
8696 constructor ( ) {
8797 injectBeforeRender (
8898 ( ) => {
89- const controls = this . controlsRef . untracked ;
99+ const controls = this . controlsRef . nativeElement ;
90100 if ( controls && controls . enabled ) {
91101 controls . update ( ) ;
92102 }
@@ -101,40 +111,28 @@ export class NgtsOrbitControls {
101111 }
102112
103113 private setControls ( ) {
104- const camera = this . inputs . select ( 'camera' ) ;
105- const defaultCamera = this . store . select ( 'camera' ) ;
106- const trigger = computed ( ( ) => ( { camera : camera ( ) , defaultCamera : defaultCamera ( ) } ) ) ;
107-
108114 effect ( ( ) => {
109- const { camera, defaultCamera } = trigger ( ) ;
115+ const [ camera , defaultCamera , controls ] = [
116+ this . camera ( ) ,
117+ this . defaultCamera ( ) ,
118+ this . controlsRef . nativeElement ,
119+ ] ;
110120 const controlsCamera = camera || defaultCamera ;
111- const controls = this . controlsRef . nativeElement ;
112121 if ( ! controls || controls . object !== controlsCamera ) {
113122 this . controlsRef . nativeElement = new OrbitControls ( controlsCamera as NgtCamera ) ;
114123 }
115124 } ) ;
116125 }
117126
118127 private connectElement ( ) {
119- const glDomElement = this . store . select ( 'gl' , 'domElement' ) ;
120- const domElement = this . inputs . select ( 'domElement' ) ;
121- const regress = this . inputs . select ( 'regress' ) ;
122- const invalidate = this . store . select ( 'invalidate' ) ;
123- const keyEvents = this . inputs . select ( 'keyEvents' ) ;
124-
125- const trigger = computed ( ( ) => {
126- const eventsSource = this . store . get ( 'events' , 'connected' ) ;
127- return {
128- keyEvents : keyEvents ( ) ,
129- controls : this . controlsRef . nativeElement ,
130- domElement : domElement ( ) || eventsSource || glDomElement ( ) ,
131- regress : regress ( ) ,
132- invalidate : invalidate ( ) ,
133- } ;
134- } ) ;
135-
136128 effect ( ( onCleanup ) => {
137- const { domElement, controls, keyEvents } = trigger ( ) ;
129+ const [ keyEvents , domElement , controls ] = [
130+ this . keyEvents ( ) ,
131+ this . domElement ( ) || this . store . get ( 'events' , 'connected' ) || this . glDomElement ( ) ,
132+ this . controlsRef . nativeElement ,
133+ this . invalidate ( ) ,
134+ this . regress ( ) ,
135+ ] ;
138136 if ( ! controls ) return ;
139137 if ( keyEvents ) {
140138 controls . connect ( keyEvents === true ? domElement : keyEvents ) ;
@@ -146,11 +144,8 @@ export class NgtsOrbitControls {
146144 }
147145
148146 private makeControlsDefault ( ) {
149- const makeDefault = this . inputs . select ( 'makeDefault' ) ;
150- const trigger = computed ( ( ) => ( { controls : this . controlsRef . nativeElement , makeDefault : makeDefault ( ) } ) ) ;
151-
152147 effect ( ( onCleanup ) => {
153- const { controls, makeDefault } = trigger ( ) ;
148+ const [ controls , makeDefault ] = [ this . controlsRef . nativeElement , this . makeDefault ( ) ] ;
154149 if ( ! controls ) return ;
155150 if ( makeDefault ) {
156151 const oldControls = this . store . get ( 'controls' ) ;
@@ -161,18 +156,13 @@ export class NgtsOrbitControls {
161156 }
162157
163158 private setEvents ( ) {
164- const invalidate = this . store . select ( 'invalidate' ) ;
165- const performance = this . store . select ( 'performance' ) ;
166- const regress = this . inputs . select ( 'regress' ) ;
167-
168- const trigger = computed ( ( ) => ( {
169- invalidate : invalidate ( ) ,
170- performance : performance ( ) ,
171- regress : regress ( ) ,
172- controls : this . controlsRef . nativeElement ,
173- } ) ) ;
174159 effect ( ( onCleanup ) => {
175- const { controls, invalidate, performance, regress } = trigger ( ) ;
160+ const [ controls , invalidate , performance , regress ] = [
161+ this . controlsRef . nativeElement ,
162+ this . invalidate ( ) ,
163+ this . performance ( ) ,
164+ this . regress ( ) ,
165+ ] ;
176166 if ( ! controls ) return ;
177167 const changeCallback : ( e : THREE . Event ) => void = ( e ) => {
178168 invalidate ( ) ;
0 commit comments