Browse Source

Layers: Add isEnabled(). (#22825)

* Layers: Add testLayer().

* Layers: Rename testLayer() to isEnabled().
Michael Herzog 3 years ago
parent
commit
609e1efd50

+ 7 - 0
docs/api/en/core/Layers.html

@@ -72,6 +72,13 @@
 			Returns true if this and the passed *layers* object have at least one layer in common.
 			Returns true if this and the passed *layers* object have at least one layer in common.
 		</p>
 		</p>
 
 
+		<h3>[method:Boolean isEnabled]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Returns true if the given layer is enabled.
+		</p>
+
 		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
 		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
 		<p>
 		<p>
 			layer - an integer from 0 to 31.<br /><br />
 			layer - an integer from 0 to 31.<br /><br />

+ 7 - 0
docs/api/ko/core/Layers.html

@@ -71,6 +71,13 @@
 			전달받은 *layers* 오브젝트가 적어도 1개 이상의 레이어를 가지고 있으면 true를 리턴합니다.
 			전달받은 *layers* 오브젝트가 적어도 1개 이상의 레이어를 가지고 있으면 true를 리턴합니다.
 		</p>
 		</p>
 
 
+		<h3>[method:Boolean isEnabled]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Returns true if the given layer is enabled.
+		</p>
+
 		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
 		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
 		<p>
 		<p>
 			layer - 0부터 31까지의 정수.<br /><br />
 			layer - 0부터 31까지의 정수.<br /><br />

+ 7 - 0
docs/api/zh/core/Layers.html

@@ -67,6 +67,13 @@
 			如果传入图层对象与当前对象属于相同的一组图层,则返回 true,否则返回 false。
 			如果传入图层对象与当前对象属于相同的一组图层,则返回 true,否则返回 false。
 		</p>
 		</p>
 
 
+		<h3>[method:Boolean isEnabled]( [param:Integer layer] )</h3>
+		<p>
+			layer - an integer from 0 to 31.<br /><br />
+
+			Returns true if the given layer is enabled.
+		</p>
+
 		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
 		<h3>[method:undefined toggle]( [param:Integer layer] )</h3>
 		<p>
 		<p>
 			layer - 一个 0 - 31 的整数。<br /><br />
 			layer - 一个 0 - 31 的整数。<br /><br />

+ 6 - 0
src/core/Layers.js

@@ -48,6 +48,12 @@ class Layers {
 
 
 	}
 	}
 
 
+	isEnabled( channel ) {
+
+		return ( this.mask & ( 1 << channel | 0 ) ) !== 0;
+
+	}
+
 }
 }
 
 
 
 

+ 41 - 25
test/unit/src/core/Layers.tests.js

@@ -7,106 +7,122 @@ export default QUnit.module( 'Core', () => {
 	QUnit.module( 'Layers', () => {
 	QUnit.module( 'Layers', () => {
 
 
 		// INSTANCING
 		// INSTANCING
-		QUnit.todo( "Instancing", ( assert ) => {
+		QUnit.todo( 'Instancing', ( assert ) => {
 
 
-			assert.ok( false, "everything's gonna be alright" );
+			assert.ok( false, 'everything\'s gonna be alright' );
 
 
 		} );
 		} );
 
 
 		// PUBLIC STUFF
 		// PUBLIC STUFF
-		QUnit.test( "set", ( assert ) => {
+		QUnit.test( 'set', ( assert ) => {
 
 
 			var a = new Layers();
 			var a = new Layers();
 
 
 			a.set( 0 );
 			a.set( 0 );
-			assert.strictEqual( a.mask, 1, "Set channel 0" );
+			assert.strictEqual( a.mask, 1, 'Set channel 0' );
 
 
 			a.set( 1 );
 			a.set( 1 );
-			assert.strictEqual( a.mask, 2, "Set channel 1" );
+			assert.strictEqual( a.mask, 2, 'Set channel 1' );
 
 
 			a.set( 2 );
 			a.set( 2 );
-			assert.strictEqual( a.mask, 4, "Set channel 2" );
+			assert.strictEqual( a.mask, 4, 'Set channel 2' );
 
 
 		} );
 		} );
 
 
-		QUnit.test( "enable", ( assert ) => {
+		QUnit.test( 'enable', ( assert ) => {
 
 
 			var a = new Layers();
 			var a = new Layers();
 
 
 			a.set( 0 );
 			a.set( 0 );
 			a.enable( 0 );
 			a.enable( 0 );
-			assert.strictEqual( a.mask, 1, "Enable channel 0 with mask 0" );
+			assert.strictEqual( a.mask, 1, 'Enable channel 0 with mask 0' );
 
 
 			a.set( 0 );
 			a.set( 0 );
 			a.enable( 1 );
 			a.enable( 1 );
-			assert.strictEqual( a.mask, 3, "Enable channel 1 with mask 0" );
+			assert.strictEqual( a.mask, 3, 'Enable channel 1 with mask 0' );
 
 
 			a.set( 1 );
 			a.set( 1 );
 			a.enable( 0 );
 			a.enable( 0 );
-			assert.strictEqual( a.mask, 3, "Enable channel 0 with mask 1" );
+			assert.strictEqual( a.mask, 3, 'Enable channel 0 with mask 1' );
 
 
 			a.set( 1 );
 			a.set( 1 );
 			a.enable( 1 );
 			a.enable( 1 );
-			assert.strictEqual( a.mask, 2, "Enable channel 1 with mask 1" );
+			assert.strictEqual( a.mask, 2, 'Enable channel 1 with mask 1' );
 
 
 		} );
 		} );
 
 
-		QUnit.test( "toggle", ( assert ) => {
+		QUnit.test( 'toggle', ( assert ) => {
 
 
 			var a = new Layers();
 			var a = new Layers();
 
 
 			a.set( 0 );
 			a.set( 0 );
 			a.toggle( 0 );
 			a.toggle( 0 );
-			assert.strictEqual( a.mask, 0, "Toggle channel 0 with mask 0" );
+			assert.strictEqual( a.mask, 0, 'Toggle channel 0 with mask 0' );
 
 
 			a.set( 0 );
 			a.set( 0 );
 			a.toggle( 1 );
 			a.toggle( 1 );
-			assert.strictEqual( a.mask, 3, "Toggle channel 1 with mask 0" );
+			assert.strictEqual( a.mask, 3, 'Toggle channel 1 with mask 0' );
 
 
 			a.set( 1 );
 			a.set( 1 );
 			a.toggle( 0 );
 			a.toggle( 0 );
-			assert.strictEqual( a.mask, 3, "Toggle channel 0 with mask 1" );
+			assert.strictEqual( a.mask, 3, 'Toggle channel 0 with mask 1' );
 
 
 			a.set( 1 );
 			a.set( 1 );
 			a.toggle( 1 );
 			a.toggle( 1 );
-			assert.strictEqual( a.mask, 0, "Toggle channel 1 with mask 1" );
+			assert.strictEqual( a.mask, 0, 'Toggle channel 1 with mask 1' );
 
 
 		} );
 		} );
 
 
-		QUnit.test( "disable", ( assert ) => {
+		QUnit.test( 'disable', ( assert ) => {
 
 
 			var a = new Layers();
 			var a = new Layers();
 
 
 			a.set( 0 );
 			a.set( 0 );
 			a.disable( 0 );
 			a.disable( 0 );
-			assert.strictEqual( a.mask, 0, "Disable channel 0 with mask 0" );
+			assert.strictEqual( a.mask, 0, 'Disable channel 0 with mask 0' );
 
 
 			a.set( 0 );
 			a.set( 0 );
 			a.disable( 1 );
 			a.disable( 1 );
-			assert.strictEqual( a.mask, 1, "Disable channel 1 with mask 0" );
+			assert.strictEqual( a.mask, 1, 'Disable channel 1 with mask 0' );
 
 
 			a.set( 1 );
 			a.set( 1 );
 			a.disable( 0 );
 			a.disable( 0 );
-			assert.strictEqual( a.mask, 2, "Disable channel 0 with mask 1" );
+			assert.strictEqual( a.mask, 2, 'Disable channel 0 with mask 1' );
 
 
 			a.set( 1 );
 			a.set( 1 );
 			a.disable( 1 );
 			a.disable( 1 );
-			assert.strictEqual( a.mask, 0, "Disable channel 1 with mask 1" );
+			assert.strictEqual( a.mask, 0, 'Disable channel 1 with mask 1' );
 
 
 		} );
 		} );
 
 
-		QUnit.test( "test", ( assert ) => {
+		QUnit.test( 'test', ( assert ) => {
 
 
 			var a = new Layers();
 			var a = new Layers();
 			var b = new Layers();
 			var b = new Layers();
 
 
-			assert.ok( a.test( b ), "Start out true" );
+			assert.ok( a.test( b ), 'Start out true' );
 
 
 			a.set( 1 );
 			a.set( 1 );
-			assert.notOk( a.test( b ), "Set channel 1 in a and fail the QUnit.test" );
+			assert.notOk( a.test( b ), 'Set channel 1 in a and fail the QUnit.test' );
 
 
 			b.toggle( 1 );
 			b.toggle( 1 );
-			assert.ok( a.test( b ), "Toggle channel 1 in b and pass again" );
+			assert.ok( a.test( b ), 'Toggle channel 1 in b and pass again' );
+
+		} );
+
+		QUnit.test( 'isEnabled', ( assert ) => {
+
+			var a = new Layers();
+
+			a.enable( 1 );
+			assert.ok( a.isEnabled( 1 ), 'Enable channel 1 and pass the QUnit.test' );
+
+			a.enable( 2 );
+			assert.ok( a.isEnabled( 2 ), 'Enable channel 2 and pass the QUnit.test' );
+
+			a.toggle( 1 );
+			assert.notOk( a.isEnabled( 1 ), 'Toggle channel 1 and fail the QUnit.test' );
+			assert.ok( a.isEnabled( 2 ), 'Channel 2 still enabled and pass the QUnit.test' );
 
 
 		} );
 		} );