@@ -39,9 +39,14 @@ export class NgtsCameraControls {
3939 options = input ( defaultOptions , { transform : mergeInputs ( defaultOptions ) } ) ;
4040 protected parameters = omit ( this . options , [ 'makeDefault' , 'camera' , 'regress' , 'domElement' ] ) ;
4141
42- changed = output < any > ( ) ;
43- started = output < any > ( ) ;
44- ended = output < any > ( ) ;
42+ control = output < any > ( ) ;
43+ controlStart = output < any > ( ) ;
44+ controlEnd = output < any > ( ) ;
45+ transitionStart = output < any > ( ) ;
46+ update = output < any > ( ) ;
47+ wake = output < any > ( ) ;
48+ rest = output < any > ( ) ;
49+ sleep = output < any > ( ) ;
4550
4651 private store = injectStore ( ) ;
4752
@@ -86,9 +91,7 @@ export class NgtsCameraControls {
8691 beforeRender (
8792 ( { delta } ) => {
8893 const controls = this . controls ( ) ;
89- if ( controls ?. enabled ) {
90- controls . update ( delta ) ;
91- }
94+ controls ?. update ( delta ) ;
9295 } ,
9396 { priority : - 1 } ,
9497 ) ;
@@ -114,29 +117,58 @@ export class NgtsCameraControls {
114117 this . store . invalidate ( ) ,
115118 ] ;
116119
117- const callback = ( e : any ) => {
120+ const invalidateAndRegress = ( ) => {
118121 invalidate ( ) ;
119122 if ( regress ) performanceRegress ( ) ;
120- this . changed . emit ( e ) ;
121123 } ;
122124
123- const startCallback = this . started . emit . bind ( this . started ) ;
124- const endCallback = this . ended . emit . bind ( this . ended ) ;
125+ const control = ( e : any ) => {
126+ invalidateAndRegress ( ) ;
127+ this . control . emit ( e ) ;
128+ } ;
129+
130+ const controlStart = ( e : any ) => {
131+ invalidateAndRegress ( ) ;
132+ this . controlStart . emit ( e ) ;
133+ } ;
134+
135+ const transitionStart = ( e : any ) => {
136+ invalidateAndRegress ( ) ;
137+ this . transitionStart . emit ( e ) ;
138+ } ;
139+
140+ const update = ( e : any ) => {
141+ invalidateAndRegress ( ) ;
142+ this . update . emit ( e ) ;
143+ } ;
144+
145+ const wake = ( e : any ) => {
146+ invalidateAndRegress ( ) ;
147+ this . wake . emit ( e ) ;
148+ } ;
149+
150+ const controlEnd = this . controlEnd . emit . bind ( this . controlEnd ) ;
151+ const rest = this . rest . emit . bind ( this . rest ) ;
152+ const sleep = this . sleep . emit . bind ( this . sleep ) ;
125153
126- controls . addEventListener ( 'update' , callback ) ;
127- controls . addEventListener ( 'controlstart' , startCallback ) ;
128- controls . addEventListener ( 'controlend' , endCallback ) ;
129- controls . addEventListener ( 'control' , callback ) ;
130- controls . addEventListener ( 'transitionstart' , callback ) ;
131- controls . addEventListener ( 'wake' , callback ) ;
154+ controls . addEventListener ( 'update' , update ) ;
155+ controls . addEventListener ( 'controlstart' , controlStart ) ;
156+ controls . addEventListener ( 'controlend' , controlEnd ) ;
157+ controls . addEventListener ( 'control' , control ) ;
158+ controls . addEventListener ( 'transitionstart' , transitionStart ) ;
159+ controls . addEventListener ( 'wake' , wake ) ;
160+ controls . addEventListener ( 'rest' , rest ) ;
161+ controls . addEventListener ( 'sleep' , sleep ) ;
132162
133163 onCleanup ( ( ) => {
134- controls . removeEventListener ( 'update' , callback ) ;
135- controls . removeEventListener ( 'controlstart' , startCallback ) ;
136- controls . removeEventListener ( 'controlend' , endCallback ) ;
137- controls . removeEventListener ( 'control' , callback ) ;
138- controls . removeEventListener ( 'transitionstart' , callback ) ;
139- controls . removeEventListener ( 'wake' , callback ) ;
164+ controls . removeEventListener ( 'update' , update ) ;
165+ controls . removeEventListener ( 'controlstart' , controlStart ) ;
166+ controls . removeEventListener ( 'controlend' , controlEnd ) ;
167+ controls . removeEventListener ( 'control' , control ) ;
168+ controls . removeEventListener ( 'transitionstart' , transitionStart ) ;
169+ controls . removeEventListener ( 'wake' , wake ) ;
170+ controls . removeEventListener ( 'rest' , rest ) ;
171+ controls . removeEventListener ( 'sleep' , sleep ) ;
140172 } ) ;
141173 } ) ;
142174 }
0 commit comments