diff --git a/docs/api/en/core/Layers.html b/docs/api/en/core/Layers.html index 8b5b5b8800849e27630285472d35ab8f5ae7fe08..66161e8487814757b24bf412aafef73c81b74a43 100644 --- a/docs/api/en/core/Layers.html +++ b/docs/api/en/core/Layers.html @@ -80,6 +80,16 @@ Toggle membership of *layer*.

+

[method:null enableAll]()

+

+ Add membership to all layers. +

+ +

[method:null disableAll]()

+

+ Remove membership from all layers. +

+

Source

diff --git a/examples/webgl_layers.html b/examples/webgl_layers.html index 7957acbde4f593af8fd883a82409f35d9660b2a6..29922bb2ef769127d72453131b8e480ec30bd55e 100644 --- a/examples/webgl_layers.html +++ b/examples/webgl_layers.html @@ -93,26 +93,48 @@ stats = new Stats(); container.appendChild( stats.dom ); - var layers = { red: true, green: true, blue: true }; + var layers = { - // - // Init gui - var gui = new GUI(); - gui.add( layers, 'red' ).onChange( function () { + 'toggle red': function() { + + camera.layers.toggle( 0 ); + + }, + + 'toggle green': function() { + + camera.layers.toggle( 1 ); + + }, - camera.layers.toggle( 0 ); + 'toggle blue': function() { - } ); - gui.add( layers, 'green' ).onChange( function () { + camera.layers.toggle( 2 ); - camera.layers.toggle( 1 ); + }, - } ); - gui.add( layers, 'blue' ).onChange( function () { + 'enable all': function() { - camera.layers.toggle( 2 ); + camera.layers.enableAll(); - } ); + }, + + 'disable all': function() { + + camera.layers.disableAll(); + + } + + }; + + // + // Init gui + var gui = new GUI(); + gui.add( layers, 'toggle red' ); + gui.add( layers, 'toggle green' ); + gui.add( layers, 'toggle blue' ); + gui.add( layers, 'enable all' ); + gui.add( layers, 'disable all' ); window.addEventListener( 'resize', onWindowResize, false ); diff --git a/src/core/Layers.d.ts b/src/core/Layers.d.ts index 4dbf9431193045165b078df752316d1a1d546584..4911dc42fa3ab1a733921ed0502e3387ce723f6d 100644 --- a/src/core/Layers.d.ts +++ b/src/core/Layers.d.ts @@ -10,4 +10,7 @@ export class Layers { disable( channel: number ): void; test( layers: Layers ): boolean; + enableAll (): void; + disableAll (): void; + } diff --git a/src/core/Layers.js b/src/core/Layers.js index 345b9cb79ce7e212cf2628fedb4b233807bf5d3e..fabbfaf2644d7a6ec00e7dd0827d10c7a61ed015 100644 --- a/src/core/Layers.js +++ b/src/core/Layers.js @@ -38,6 +38,18 @@ Object.assign( Layers.prototype, { return ( this.mask & layers.mask ) !== 0; + }, + + enableAll: function () { + + this.mask = 0xffffffff | 0; + + }, + + disableAll: function () { + + this.mask = 0; + } } );