Provide a reference to the layer
This commit is contained in:
@@ -25,7 +25,8 @@ ol.layer.LayerProperty = {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {{brightness: number,
|
* @typedef {{layer: ol.layer.Layer,
|
||||||
|
* brightness: number,
|
||||||
* contrast: number,
|
* contrast: number,
|
||||||
* hue: number,
|
* hue: number,
|
||||||
* opacity: number,
|
* opacity: number,
|
||||||
@@ -126,6 +127,7 @@ ol.layer.Base.prototype.getLayerState = function() {
|
|||||||
var maxResolution = this.getMaxResolution();
|
var maxResolution = this.getMaxResolution();
|
||||||
var minResolution = this.getMinResolution();
|
var minResolution = this.getMinResolution();
|
||||||
return {
|
return {
|
||||||
|
layer: /** @type {ol.layer.Layer} */ (this),
|
||||||
brightness: goog.isDef(brightness) ? goog.math.clamp(brightness, -1, 1) : 0,
|
brightness: goog.isDef(brightness) ? goog.math.clamp(brightness, -1, 1) : 0,
|
||||||
contrast: goog.isDef(contrast) ? Math.max(contrast, 0) : 1,
|
contrast: goog.isDef(contrast) ? Math.max(contrast, 0) : 1,
|
||||||
hue: goog.isDef(hue) ? hue : 0,
|
hue: goog.isDef(hue) ? hue : 0,
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ describe('ol.layer.Layer', function() {
|
|||||||
|
|
||||||
it('provides default layerState', function() {
|
it('provides default layerState', function() {
|
||||||
expect(layer.getLayerState()).to.eql({
|
expect(layer.getLayerState()).to.eql({
|
||||||
|
layer: layer,
|
||||||
brightness: 0,
|
brightness: 0,
|
||||||
contrast: 1,
|
contrast: 1,
|
||||||
hue: 0,
|
hue: 0,
|
||||||
@@ -90,6 +91,7 @@ describe('ol.layer.Layer', function() {
|
|||||||
expect(layer.getMinResolution()).to.be(0.25);
|
expect(layer.getMinResolution()).to.be(0.25);
|
||||||
expect(layer.get('foo')).to.be(42);
|
expect(layer.get('foo')).to.be(42);
|
||||||
expect(layer.getLayerState()).to.eql({
|
expect(layer.getLayerState()).to.eql({
|
||||||
|
layer: layer,
|
||||||
brightness: 0.5,
|
brightness: 0.5,
|
||||||
contrast: 10,
|
contrast: 10,
|
||||||
hue: 180,
|
hue: 180,
|
||||||
@@ -132,6 +134,7 @@ describe('ol.layer.Layer', function() {
|
|||||||
layer.setMaxResolution(500);
|
layer.setMaxResolution(500);
|
||||||
layer.setMinResolution(0.25);
|
layer.setMinResolution(0.25);
|
||||||
expect(layer.getLayerState()).to.eql({
|
expect(layer.getLayerState()).to.eql({
|
||||||
|
layer: layer,
|
||||||
brightness: -0.7,
|
brightness: -0.7,
|
||||||
contrast: 0.3,
|
contrast: 0.3,
|
||||||
hue: -0.3,
|
hue: -0.3,
|
||||||
@@ -152,6 +155,7 @@ describe('ol.layer.Layer', function() {
|
|||||||
layer.setSaturation(-0.7);
|
layer.setSaturation(-0.7);
|
||||||
layer.setVisible(false);
|
layer.setVisible(false);
|
||||||
expect(layer.getLayerState()).to.eql({
|
expect(layer.getLayerState()).to.eql({
|
||||||
|
layer: layer,
|
||||||
brightness: 1,
|
brightness: 1,
|
||||||
contrast: 0,
|
contrast: 0,
|
||||||
hue: 42,
|
hue: 42,
|
||||||
@@ -170,6 +174,7 @@ describe('ol.layer.Layer', function() {
|
|||||||
layer.setSaturation(42);
|
layer.setSaturation(42);
|
||||||
layer.setVisible(true);
|
layer.setVisible(true);
|
||||||
expect(layer.getLayerState()).to.eql({
|
expect(layer.getLayerState()).to.eql({
|
||||||
|
layer: layer,
|
||||||
brightness: -1,
|
brightness: -1,
|
||||||
contrast: 42,
|
contrast: 42,
|
||||||
hue: -100,
|
hue: -100,
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ describe('ol.layer.Group', function() {
|
|||||||
|
|
||||||
it('provides default layerState', function() {
|
it('provides default layerState', function() {
|
||||||
expect(layerGroup.getLayerState()).to.eql({
|
expect(layerGroup.getLayerState()).to.eql({
|
||||||
|
layer: layerGroup,
|
||||||
brightness: 0,
|
brightness: 0,
|
||||||
contrast: 1,
|
contrast: 1,
|
||||||
hue: 0,
|
hue: 0,
|
||||||
@@ -170,6 +171,7 @@ describe('ol.layer.Group', function() {
|
|||||||
expect(layerGroup.getMaxResolution()).to.be(500);
|
expect(layerGroup.getMaxResolution()).to.be(500);
|
||||||
expect(layerGroup.getMinResolution()).to.be(0.25);
|
expect(layerGroup.getMinResolution()).to.be(0.25);
|
||||||
expect(layerGroup.getLayerState()).to.eql({
|
expect(layerGroup.getLayerState()).to.eql({
|
||||||
|
layer: layerGroup,
|
||||||
brightness: 0.5,
|
brightness: 0.5,
|
||||||
contrast: 10,
|
contrast: 10,
|
||||||
hue: 180,
|
hue: 180,
|
||||||
@@ -212,6 +214,7 @@ describe('ol.layer.Group', function() {
|
|||||||
layerGroup.setMaxResolution(500);
|
layerGroup.setMaxResolution(500);
|
||||||
layerGroup.setMinResolution(0.25);
|
layerGroup.setMinResolution(0.25);
|
||||||
expect(layerGroup.getLayerState()).to.eql({
|
expect(layerGroup.getLayerState()).to.eql({
|
||||||
|
layer: layerGroup,
|
||||||
brightness: -0.7,
|
brightness: -0.7,
|
||||||
contrast: 0.3,
|
contrast: 0.3,
|
||||||
hue: -0.3,
|
hue: -0.3,
|
||||||
@@ -232,6 +235,7 @@ describe('ol.layer.Group', function() {
|
|||||||
layerGroup.setSaturation(-0.7);
|
layerGroup.setSaturation(-0.7);
|
||||||
layerGroup.setVisible(false);
|
layerGroup.setVisible(false);
|
||||||
expect(layerGroup.getLayerState()).to.eql({
|
expect(layerGroup.getLayerState()).to.eql({
|
||||||
|
layer: layerGroup,
|
||||||
brightness: 1,
|
brightness: 1,
|
||||||
contrast: 0,
|
contrast: 0,
|
||||||
hue: 42,
|
hue: 42,
|
||||||
@@ -250,6 +254,7 @@ describe('ol.layer.Group', function() {
|
|||||||
layerGroup.setSaturation(42);
|
layerGroup.setSaturation(42);
|
||||||
layerGroup.setVisible(true);
|
layerGroup.setVisible(true);
|
||||||
expect(layerGroup.getLayerState()).to.eql({
|
expect(layerGroup.getLayerState()).to.eql({
|
||||||
|
layer: layerGroup,
|
||||||
brightness: -1,
|
brightness: -1,
|
||||||
contrast: 42,
|
contrast: 42,
|
||||||
hue: -100,
|
hue: -100,
|
||||||
@@ -345,7 +350,14 @@ describe('ol.layer.Group', function() {
|
|||||||
expect(layerStatesArray).to.be.a(Array);
|
expect(layerStatesArray).to.be.a(Array);
|
||||||
expect(layerStatesArray.length).to.be(2);
|
expect(layerStatesArray.length).to.be(2);
|
||||||
expect(layerStatesArray[0]).to.eql(layer1.getLayerState());
|
expect(layerStatesArray[0]).to.eql(layer1.getLayerState());
|
||||||
expect(layerStatesArray[0]).to.eql(layerGroup.getLayerState());
|
|
||||||
|
// layer state should match except for layer reference
|
||||||
|
var layerState = goog.object.clone(layerStatesArray[0]);
|
||||||
|
delete layerState.layer;
|
||||||
|
var groupState = goog.object.clone(layerGroup.getLayerState());
|
||||||
|
delete groupState.layer;
|
||||||
|
expect(layerState).to.eql(groupState);
|
||||||
|
|
||||||
expect(layerStatesArray[1]).to.eql(layer2.getLayerState());
|
expect(layerStatesArray[1]).to.eql(layer2.getLayerState());
|
||||||
|
|
||||||
goog.dispose(layerGroup);
|
goog.dispose(layerGroup);
|
||||||
@@ -367,8 +379,21 @@ describe('ol.layer.Group', function() {
|
|||||||
obj = layerGroup.getLayerStatesArray();
|
obj = layerGroup.getLayerStatesArray();
|
||||||
layersArray = obj.layers;
|
layersArray = obj.layers;
|
||||||
layerStatesArray = obj.layerStates;
|
layerStatesArray = obj.layerStates;
|
||||||
expect(layerStatesArray[0]).to.eql(layerGroup.getLayerState());
|
|
||||||
expect(layerStatesArray[1]).to.eql({
|
// compare layer state to group state
|
||||||
|
var groupState, layerState;
|
||||||
|
|
||||||
|
// layer state should match except for layer reference
|
||||||
|
layerState = goog.object.clone(layerStatesArray[0]);
|
||||||
|
delete layerState.layer;
|
||||||
|
groupState = goog.object.clone(layerGroup.getLayerState());
|
||||||
|
delete groupState.layer;
|
||||||
|
expect(layerState).to.eql(groupState);
|
||||||
|
|
||||||
|
// layer state should be transformed (and we ignore layer reference)
|
||||||
|
layerState = goog.object.clone(layerStatesArray[1]);
|
||||||
|
delete layerState.layer;
|
||||||
|
expect(layerState).to.eql({
|
||||||
brightness: 1,
|
brightness: 1,
|
||||||
contrast: 100,
|
contrast: 100,
|
||||||
hue: 360,
|
hue: 360,
|
||||||
@@ -392,6 +417,7 @@ describe('ol.layer.Group', function() {
|
|||||||
|
|
||||||
goog.require('goog.dispose');
|
goog.require('goog.dispose');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('goog.events.EventType');
|
||||||
|
goog.require('goog.object');
|
||||||
goog.require('ol.ObjectEventType');
|
goog.require('ol.ObjectEventType');
|
||||||
goog.require('ol.layer.Layer');
|
goog.require('ol.layer.Layer');
|
||||||
goog.require('ol.layer.Group');
|
goog.require('ol.layer.Group');
|
||||||
|
|||||||
Reference in New Issue
Block a user