@@ -39,9 +39,14 @@ export class NgtsCameraControls {
39
39
options = input ( defaultOptions , { transform : mergeInputs ( defaultOptions ) } ) ;
40
40
protected parameters = omit ( this . options , [ 'makeDefault' , 'camera' , 'regress' , 'domElement' ] ) ;
41
41
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 > ( ) ;
45
50
46
51
private store = injectStore ( ) ;
47
52
@@ -86,9 +91,7 @@ export class NgtsCameraControls {
86
91
beforeRender (
87
92
( { delta } ) => {
88
93
const controls = this . controls ( ) ;
89
- if ( controls ?. enabled ) {
90
- controls . update ( delta ) ;
91
- }
94
+ controls ?. update ( delta ) ;
92
95
} ,
93
96
{ priority : - 1 } ,
94
97
) ;
@@ -114,29 +117,58 @@ export class NgtsCameraControls {
114
117
this . store . invalidate ( ) ,
115
118
] ;
116
119
117
- const callback = ( e : any ) => {
120
+ const invalidateAndRegress = ( ) => {
118
121
invalidate ( ) ;
119
122
if ( regress ) performanceRegress ( ) ;
120
- this . changed . emit ( e ) ;
121
123
} ;
122
124
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 ) ;
125
153
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 ) ;
132
162
133
163
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 ) ;
140
172
} ) ;
141
173
} ) ;
142
174
}
0 commit comments