@@ -251,6 +251,66 @@ const createViewer = (
251
251
}
252
252
253
253
254
+ const xPlaneButton = document . getElementById ( `${ viewerDOMId } -xPlaneButton` ) ;
255
+ const yPlaneButton = document . getElementById ( `${ viewerDOMId } -yPlaneButton` ) ;
256
+ const zPlaneButton = document . getElementById ( `${ viewerDOMId } -zPlaneButton` ) ;
257
+ const volumeRenderingButton = document . getElementById ( `${ viewerDOMId } -volumeRenderingButton` ) ;
258
+
259
+ const viewModeChangedHandlers = [ ] ;
260
+ const xPlaneButtonListener = ( event ) => {
261
+ const enabled = xPlaneButton . checked ;
262
+ if ( enabled ) {
263
+ viewModeChangedHandlers . forEach ( ( handler ) => {
264
+ handler . call ( null , 'XPlane' ) ;
265
+ } )
266
+ }
267
+ }
268
+ xPlaneButton . addEventListener ( 'click' , xPlaneButtonListener )
269
+ const yPlaneButtonListener = ( event ) => {
270
+ const enabled = yPlaneButton . checked ;
271
+ if ( enabled ) {
272
+ viewModeChangedHandlers . forEach ( ( handler ) => {
273
+ handler . call ( null , 'YPlane' ) ;
274
+ } )
275
+ }
276
+ }
277
+ yPlaneButton . addEventListener ( 'click' , yPlaneButtonListener )
278
+ const zPlaneButtonListener = ( event ) => {
279
+ const enabled = zPlaneButton . checked ;
280
+ if ( enabled ) {
281
+ viewModeChangedHandlers . forEach ( ( handler ) => {
282
+ handler . call ( null , 'ZPlane' ) ;
283
+ } )
284
+ }
285
+ }
286
+ zPlaneButton . addEventListener ( 'click' , zPlaneButtonListener )
287
+ const volumeRenderingButtonListener = ( event ) => {
288
+ const enabled = volumeRenderingButton . checked ;
289
+ if ( enabled ) {
290
+ viewModeChangedHandlers . forEach ( ( handler ) => {
291
+ handler . call ( null , 'VolumeRendering' ) ;
292
+ } )
293
+ }
294
+ }
295
+ volumeRenderingButton . addEventListener ( 'click' , volumeRenderingButtonListener )
296
+
297
+ publicAPI . subscribeViewModeChanged = ( handler ) => {
298
+ const index = viewModeChangedHandlers . length ;
299
+ viewModeChangedHandlers . push ( handler ) ;
300
+ function unsubscribe ( ) {
301
+ viewModeChangedHandlers [ index ] = null ;
302
+ }
303
+ return Object . freeze ( { unsubscribe } ) ;
304
+ }
305
+
306
+ publicAPI . setInterpolationEnabled = ( enabled ) => {
307
+ const interpolation = toggleInterpolationButton . checked ;
308
+ if ( enabled && ! interpolation || ! enabled && interpolation ) {
309
+ toggleInterpolationButton . click ( ) ;
310
+ }
311
+ }
312
+
313
+
254
314
publicAPI . setViewMode = ( mode ) => {
255
315
switch ( mode ) {
256
316
case 'XPlane' :
@@ -274,6 +334,7 @@ const createViewer = (
274
334
}
275
335
}
276
336
337
+
277
338
let shadowEnabled = true ;
278
339
publicAPI . setShadowEnabled = ( shadow ) => {
279
340
const toggleShadowButton = document . getElementById ( `${ viewerDOMId } -toggleShadowButton` ) ;
0 commit comments