From 9fd4154a2eb3696f1c4c053ccf3a9b8354d683d4 Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Fri, 16 Dec 2016 23:13:16 -0500 Subject: [PATCH 01/13] OIT workaround --- Source/Scene/OIT.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Source/Scene/OIT.js b/Source/Scene/OIT.js index 56634581365f..7d9cebd117e7 100644 --- a/Source/Scene/OIT.js +++ b/Source/Scene/OIT.js @@ -113,19 +113,27 @@ define([ function updateTextures(oit, context, width, height) { destroyTextures(oit); + var source = new Float32Array(width * height * 4); + oit._accumulationTexture = new Texture({ context : context, - width : width, - height : height, pixelFormat : PixelFormat.RGBA, - pixelDatatype : PixelDatatype.FLOAT + pixelDatatype : PixelDatatype.FLOAT, + source : { + arrayBufferView : source, + width : width, + height : height + } }); oit._revealageTexture = new Texture({ context : context, - width : width, - height : height, pixelFormat : PixelFormat.RGBA, - pixelDatatype : PixelDatatype.FLOAT + pixelDatatype : PixelDatatype.FLOAT, + source : { + arrayBufferView : source, + width : width, + height : height + } }); } From b3009f31bf8d0ea7b6bb525fee1ddd72aa1ab10b Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Fri, 16 Dec 2016 23:30:11 -0500 Subject: [PATCH 02/13] Unrelated fix --- Source/Scene/FXAA.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Scene/FXAA.js b/Source/Scene/FXAA.js index 42c1c4b4a7da..783bb7485c49 100644 --- a/Source/Scene/FXAA.js +++ b/Source/Scene/FXAA.js @@ -88,7 +88,7 @@ define([ pixelDatatype : PixelDatatype.UNSIGNED_BYTE }); - if (context.depthStencilTexture) { + if (context.depthTexture) { this._depthStencilTexture = new Texture({ context : context, width : width, From ce00c03bcbe7f3437b0494a71181a668f9d7115d Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Sun, 18 Dec 2016 09:02:22 -0500 Subject: [PATCH 03/13] Update comment --- Source/Scene/OIT.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Scene/OIT.js b/Source/Scene/OIT.js index 7d9cebd117e7..eba923512306 100644 --- a/Source/Scene/OIT.js +++ b/Source/Scene/OIT.js @@ -113,6 +113,8 @@ define([ function updateTextures(oit, context, width, height) { destroyTextures(oit); + // Use zeroed arraybuffer instead of null to initialize texture + // to workaround Firefox 50. https://github.com/AnalyticalGraphicsInc/cesium/pull/4762 var source = new Float32Array(width * height * 4); oit._accumulationTexture = new Texture({ From 51cc82b3ab40f8a618ab35e5aa2fd730d14bb9b4 Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Sun, 18 Dec 2016 09:10:25 -0500 Subject: [PATCH 04/13] Updated CHANGES.md --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 215bf28c7bf7..45de317d4270 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -15,6 +15,7 @@ Change Log * Added `WebGLConstants` enum. Previously, this was part of the private Renderer API. [#4731](https://github.com/AnalyticalGraphicsInc/cesium/pull/4731) * Fixed an bug that caused `GroundPrimitive` to render incorrectly on systems without the `WEBGL_depth_texture` extension. [#4747](https://github.com/AnalyticalGraphicsInc/cesium/pull/4747) * Fixed default Mapbox token and added a watermark to notify users that they need to sign up for their own token. +* Fixed translucency in Firefox 50. https://github.com/AnalyticalGraphicsInc/cesium/pull/4762 ### 1.28 - 2016-12-01 From 8318417aa1740e787b323c549683dc1b111251dd Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Mon, 19 Dec 2016 11:44:34 +1100 Subject: [PATCH 05/13] Fix "readyImagery is not actually ready" exception. --- Source/Scene/Imagery.js | 2 +- Source/Scene/ImageryLayer.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Scene/Imagery.js b/Source/Scene/Imagery.js index 497248f0eb81..607fb1319cc9 100644 --- a/Source/Scene/Imagery.js +++ b/Source/Scene/Imagery.js @@ -72,7 +72,7 @@ define([ this.texture.destroy(); } - if (defined(this.textureWebMercator)) { + if (defined(this.textureWebMercator) && this.texture !== this.textureWebMercator) { this.textureWebMercator.destroy(); } diff --git a/Source/Scene/ImageryLayer.js b/Source/Scene/ImageryLayer.js index 3a0a04d7f99e..745240be4d0e 100644 --- a/Source/Scene/ImageryLayer.js +++ b/Source/Scene/ImageryLayer.js @@ -811,6 +811,7 @@ define([ }); this._reprojectComputeCommands.push(computeCommand); } else { + imagery.texture = texture; finalizeReprojectTexture(this, context, imagery, texture); } }; From b4cd684a4e1e75863ccf081990506972b3c4f388 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Mon, 19 Dec 2016 12:04:46 +1100 Subject: [PATCH 06/13] Fix test failure, add a new (currently failing) test. --- Source/Scene/ImageryLayer.js | 4 ++- Specs/Scene/ImageryLayerSpec.js | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/Source/Scene/ImageryLayer.js b/Source/Scene/ImageryLayer.js index 745240be4d0e..3123f580ec78 100644 --- a/Source/Scene/ImageryLayer.js +++ b/Source/Scene/ImageryLayer.js @@ -811,7 +811,9 @@ define([ }); this._reprojectComputeCommands.push(computeCommand); } else { - imagery.texture = texture; + if (needGeographicProjection) { + imagery.texture = texture; + } finalizeReprojectTexture(this, context, imagery, texture); } }; diff --git a/Specs/Scene/ImageryLayerSpec.js b/Specs/Scene/ImageryLayerSpec.js index 88a8804b12fd..e789bf269011 100644 --- a/Specs/Scene/ImageryLayerSpec.js +++ b/Specs/Scene/ImageryLayerSpec.js @@ -17,6 +17,7 @@ defineSuite([ 'Scene/NeverTileDiscardPolicy', 'Scene/QuadtreeTile', 'Scene/SingleTileImageryProvider', + 'Scene/UrlTemplateImageryProvider', 'Scene/WebMapServiceImageryProvider', 'Specs/createScene', 'Specs/pollToPromise' @@ -38,6 +39,7 @@ defineSuite([ NeverTileDiscardPolicy, QuadtreeTile, SingleTileImageryProvider, + UrlTemplateImageryProvider, WebMapServiceImageryProvider, createScene, pollToPromise) { @@ -271,6 +273,47 @@ defineSuite([ }); }); + it('assigns texture property when reprojection is skipped because the tile is very small', function() { + var provider = new UrlTemplateImageryProvider({ + url : 'http://example.com/{z}/{x}/{y}.png', + minimumLevel : 13, + maximumLevel: 19, + rectangle : Rectangle.fromDegrees(13.39657249732205, 52.49127999816725, 13.42722986993895, 52.50998943590507) + }); + var layer = new ImageryLayer(provider); + + return pollToPromise(function() { + return provider.ready; + }).then(function() { + var imagery = new Imagery(layer, x, y, 13); + imagery.addReference(); + layer._requestImagery(imagery); + + return pollToPromise(function() { + return imagery.state === ImageryState.RECEIVED; + }).then(function() { + layer._createTexture(scene.context, imagery); + + return pollToPromise(function() { + return imagery.state === ImageryState.TEXTURE_LOADED; + }).then(function() { + var textureBeforeReprojection = imagery.textureWebMercator; + layer._reprojectTexture(scene.frameState, imagery, true); + layer.queueReprojectionCommands(scene.frameState); + scene.frameState.commandList[0].execute(computeEngine); + + return pollToPromise(function() { + return imagery.state === ImageryState.READY; + }).then(function() { + expect(imagery.texture).toBeDefined(); + expect(imagery.texture).toBe(imagery.textureWebMercator); + imagery.releaseReference(); + }); + }); + }); + }); + }); + it('cancels reprojection', function() { var provider = createWebMercatorProvider(); var layer = new ImageryLayer(provider); From af231deb3915c183855e5a266f13fd2205a76c49 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Mon, 19 Dec 2016 13:09:30 +1100 Subject: [PATCH 07/13] Fix test. --- Specs/Data/Images/Red256x256.png | Bin 0 -> 742 bytes Specs/Scene/ImageryLayerSpec.js | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 Specs/Data/Images/Red256x256.png diff --git a/Specs/Data/Images/Red256x256.png b/Specs/Data/Images/Red256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..693565bf26b36c5b5d5004d243bb5400ffada37e GIT binary patch literal 742 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911L)MWvCLlCbx$lZxy-8q?;Kn_c~qpu?a z!^VE@KZ&eBK4*bPWHAE+-(e7DJf6QIg@J*o+SA1`q$2L^aYJ4P0|DlZ&;57Zb$+N* z`EhUaI@=|06jS*%t37TypOOpuHeplylu@D4kf2JM5GeZ280o|JiBU_w2$(h*JYD@< J);T3K0RSBOL6rai literal 0 HcmV?d00001 diff --git a/Specs/Scene/ImageryLayerSpec.js b/Specs/Scene/ImageryLayerSpec.js index e789bf269011..07e3c7187836 100644 --- a/Specs/Scene/ImageryLayerSpec.js +++ b/Specs/Scene/ImageryLayerSpec.js @@ -274,6 +274,10 @@ defineSuite([ }); it('assigns texture property when reprojection is skipped because the tile is very small', function() { + loadImage.createImage = function(url, crossOrigin, deferred) { + loadImage.defaultCreateImage('Data/Images/Red256x256.png', crossOrigin, deferred); + }; + var provider = new UrlTemplateImageryProvider({ url : 'http://example.com/{z}/{x}/{y}.png', minimumLevel : 13, @@ -285,7 +289,7 @@ defineSuite([ return pollToPromise(function() { return provider.ready; }).then(function() { - var imagery = new Imagery(layer, x, y, 13); + var imagery = new Imagery(layer, 4400, 2686, 13); imagery.addReference(); layer._requestImagery(imagery); @@ -300,7 +304,7 @@ defineSuite([ var textureBeforeReprojection = imagery.textureWebMercator; layer._reprojectTexture(scene.frameState, imagery, true); layer.queueReprojectionCommands(scene.frameState); - scene.frameState.commandList[0].execute(computeEngine); + expect(scene.frameState.commandList.length).toBe(0); return pollToPromise(function() { return imagery.state === ImageryState.READY; From e4243c7fc1b1491fc607bf5c52e9f14009215817 Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Mon, 19 Dec 2016 15:45:58 +1100 Subject: [PATCH 08/13] Fix jshint warning. --- Specs/Scene/ImageryLayerSpec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/Specs/Scene/ImageryLayerSpec.js b/Specs/Scene/ImageryLayerSpec.js index 07e3c7187836..4c9ec1fcbcbb 100644 --- a/Specs/Scene/ImageryLayerSpec.js +++ b/Specs/Scene/ImageryLayerSpec.js @@ -301,7 +301,6 @@ defineSuite([ return pollToPromise(function() { return imagery.state === ImageryState.TEXTURE_LOADED; }).then(function() { - var textureBeforeReprojection = imagery.textureWebMercator; layer._reprojectTexture(scene.frameState, imagery, true); layer.queueReprojectionCommands(scene.frameState); expect(scene.frameState.commandList.length).toBe(0); From cea586032482db9915b55cc0f1cb3431dcc5647c Mon Sep 17 00:00:00 2001 From: Kevin Ring Date: Mon, 19 Dec 2016 16:03:26 +1100 Subject: [PATCH 09/13] Update CHANGES.md. --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 45de317d4270..f10f79d03af7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,6 +16,7 @@ Change Log * Fixed an bug that caused `GroundPrimitive` to render incorrectly on systems without the `WEBGL_depth_texture` extension. [#4747](https://github.com/AnalyticalGraphicsInc/cesium/pull/4747) * Fixed default Mapbox token and added a watermark to notify users that they need to sign up for their own token. * Fixed translucency in Firefox 50. https://github.com/AnalyticalGraphicsInc/cesium/pull/4762 +* Fixed a bug that could cause a "readyImagery is not actually ready" exception with some configurations of imagery layers. ### 1.28 - 2016-12-01 From 1b1d5a7791537dfea3ef05f2961d677d16e9654a Mon Sep 17 00:00:00 2001 From: Patrick Cozzi Date: Mon, 19 Dec 2016 13:47:07 -0500 Subject: [PATCH 10/13] Reorder CHANGES.md for 1.29 --- CHANGES.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index f10f79d03af7..896831df2990 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,20 +3,22 @@ Change Log ### 1.29 - 2017-01-02 -* Added the ability to blend a `Model` with a color/translucency. Added `color`, `colorBlendMode`, and `colorBlendAmount` properties to `Model`, `ModelGraphics`, and CZML. Added `ColorBlendMode` enum. [#4547](https://github.com/AnalyticalGraphicsInc/cesium/pull/4547) -* Added the ability to render a `Model` with a silhouette. Added `silhouetteColor` and `silhouetteSize` properties to `Model`, `ModelGraphics`, and CZML. [#4314](https://github.com/AnalyticalGraphicsInc/cesium/pull/4314) -* Added new `Label` properties `showBackground`, `backgroundColor`, and `backgroundPadding` to the primitive, Entity, and CZML layers. -* Added new enum `VerticalOrigin.BASELINE`. Previously, `VerticalOrigin.BOTTOM` would sometimes align to the baseline depending on the contents of a label. -* Added support for newlines (`\n`) in Cesium `Label`s and CZML. [#2402](https://github.com/AnalyticalGraphicsInc/cesium/issues/2402) -* Fixed tooltips for gallery thumbnails in Sandcastle [#4702](https://github.com/AnalyticalGraphicsInc/cesium/pull/4702) -* Fixed `Rectangle.union` to correctly account for rectangles that cross the IDL [#4732](https://github.com/AnalyticalGraphicsInc/cesium/pull/4732). +* Improved 3D Models + * Added the ability to blend a `Model` with a color/translucency. Added `color`, `colorBlendMode`, and `colorBlendAmount` properties to `Model`, `ModelGraphics`, and CZML. Also added `ColorBlendMode` enum. [#4547](https://github.com/AnalyticalGraphicsInc/cesium/pull/4547) + * Added the ability to render a `Model` with a silhouette. Added `silhouetteColor` and `silhouetteSize` properties to `Model`, `ModelGraphics`, and CZML. [#4314](https://github.com/AnalyticalGraphicsInc/cesium/pull/4314) +* Improved Labels + * Added new `Label` properties `showBackground`, `backgroundColor`, and `backgroundPadding` to the primitive, Entity, and CZML layers. + * Added new enum `VerticalOrigin.BASELINE`. Previously, `VerticalOrigin.BOTTOM` would sometimes align to the baseline depending on the contents of a label. + * Added support for newlines (`\n`) in Cesium `Label`s and CZML. [#2402](https://github.com/AnalyticalGraphicsInc/cesium/issues/2402) * Fixed texture rotation for `RectangleGeometry` [#2737](https://github.com/AnalyticalGraphicsInc/cesium/issues/2737) -* Added `divideComponents` function to `Cartesian2`, `Cartesian3`, and `Cartesian4`. [#4750](https://github.com/AnalyticalGraphicsInc/cesium/pull/4750) -* Added `WebGLConstants` enum. Previously, this was part of the private Renderer API. [#4731](https://github.com/AnalyticalGraphicsInc/cesium/pull/4731) -* Fixed an bug that caused `GroundPrimitive` to render incorrectly on systems without the `WEBGL_depth_texture` extension. [#4747](https://github.com/AnalyticalGraphicsInc/cesium/pull/4747) -* Fixed default Mapbox token and added a watermark to notify users that they need to sign up for their own token. * Fixed translucency in Firefox 50. https://github.com/AnalyticalGraphicsInc/cesium/pull/4762 +* Fixed a bug that caused `GroundPrimitive` to render incorrectly on systems without the `WEBGL_depth_texture` extension. [#4747](https://github.com/AnalyticalGraphicsInc/cesium/pull/4747) +* Fixed default Mapbox token and added a watermark to notify users that they need to sign up for their own token. * Fixed a bug that could cause a "readyImagery is not actually ready" exception with some configurations of imagery layers. +* Fixed `Rectangle.union` to correctly account for rectangles that cross the IDL [#4732](https://github.com/AnalyticalGraphicsInc/cesium/pull/4732). +* Added `divideComponents` function to `Cartesian2`, `Cartesian3`, and `Cartesian4`. [#4750](https://github.com/AnalyticalGraphicsInc/cesium/pull/4750) +* Added `WebGLConstants` enum. Previously, this was part of the private Renderer API. [#4731](https://github.com/AnalyticalGraphicsInc/cesium/pull/4731) +* Fixed tooltips for gallery thumbnails in Sandcastle [#4702](https://github.com/AnalyticalGraphicsInc/cesium/pull/4702) ### 1.28 - 2016-12-01 From 4b41ee242cb601d98a5bb4dc9eaace11ba746676 Mon Sep 17 00:00:00 2001 From: Ed Mackey Date: Mon, 19 Dec 2016 16:13:19 -0500 Subject: [PATCH 11/13] Fix incorrect doc default. --- Source/DataSources/LabelGraphics.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/DataSources/LabelGraphics.js b/Source/DataSources/LabelGraphics.js index 3f5396ccd463..3377176256cf 100644 --- a/Source/DataSources/LabelGraphics.js +++ b/Source/DataSources/LabelGraphics.js @@ -35,7 +35,7 @@ define([ * @param {Property} [options.outlineColor=Color.BLACK] A Property specifying the outline {@link Color}. * @param {Property} [options.outlineWidth=1.0] A numeric Property specifying the outline width. * @param {Property} [options.show=true] A boolean Property specifying the visibility of the label. - * @param {Property} [options.showBackground=true] A boolean Property specifying the visibility of the background behind the label. + * @param {Property} [options.showBackground=false] A boolean Property specifying the visibility of the background behind the label. * @param {Property} [options.backgroundColor=new Color(0.165, 0.165, 0.165, 0.8)] A Property specifying the background {@link Color}. * @param {Property} [options.backgroundPadding=new Cartesian2(7, 5)] A {@link Cartesian2} Property specifying the horizontal and vertical background padding in pixels. * @param {Property} [options.scale=1.0] A numeric Property specifying the scale to apply to the text. From bcf563c4d1acac018a10183793d69a31714fc488 Mon Sep 17 00:00:00 2001 From: Scott Hunter Date: Mon, 19 Dec 2016 17:05:34 -0500 Subject: [PATCH 12/13] Update CZML validation document and test. --- Specs/Data/CZML/ValidationDocument.czml | 162 ++++++++++++++++++++++-- Specs/DataSources/CzmlDataSourceSpec.js | 48 +++++++ 2 files changed, 201 insertions(+), 9 deletions(-) diff --git a/Specs/Data/CZML/ValidationDocument.czml b/Specs/Data/CZML/ValidationDocument.czml index ee2f1882ec3b..ada01b4758fd 100644 --- a/Specs/Data/CZML/ValidationDocument.czml +++ b/Specs/Data/CZML/ValidationDocument.czml @@ -105,7 +105,8 @@ 121,42,244,168 ] }, - "outlineWidth":15323 + "outlineWidth":15323, + "shadows":"CAST_ONLY" }, "corridor":{ "show":true, @@ -135,7 +136,8 @@ 198,25,134,60 ] }, - "outlineWidth":9132 + "outlineWidth":9132, + "shadows":"CAST_ONLY" }, "cylinder":{ "show":true, @@ -160,7 +162,8 @@ }, "outlineWidth":64018, "numberOfVerticalLines":38567, - "slices":39979 + "slices":39979, + "shadows":"CAST_ONLY" }, "ellipse":{ "show":true, @@ -188,7 +191,8 @@ ] }, "outlineWidth":8839, - "numberOfVerticalLines":38878 + "numberOfVerticalLines":38878, + "shadows":"CAST_ONLY" }, "ellipsoid":{ "show":true, @@ -216,7 +220,8 @@ "outlineWidth":47507, "stackPartitions":54278, "slicePartitions":28562, - "subdivisions":14008 + "subdivisions":14008, + "shadows":"CAST_ONLY" }, "label":{ "show":true, @@ -224,6 +229,17 @@ "font":"14px sans-serif", "style":"FILL_AND_OUTLINE", "scale":6510, + "showBackground":true, + "backgroundColor":{ + "rgba":[ + 225,114,54,128 + ] + }, + "backgroundPadding":{ + "cartesian2":[ + 5508,56341 + ] + }, "pixelOffset":{ "cartesian2":[ 25913,30821 @@ -267,7 +283,14 @@ "maximumScale":64305, "incrementallyLoadTextures":true, "runAnimations":true, + "shadows":"CAST_ONLY", "heightReference":"CLAMP_TO_GROUND", + "silhouetteColor":{ + "rgba":[ + 29,61,52,101 + ] + }, + "silhouetteSize":4645, "color":{ "rgba":[ 0,52,75,73 @@ -367,7 +390,8 @@ "outlineWidth":62220, "perPositionHeight":true, "closeTop":true, - "closeBottom":true + "closeBottom":true, + "shadows":"CAST_ONLY" }, "polyline":{ "show":true, @@ -387,7 +411,8 @@ } } }, - "followSurface":true + "followSurface":true, + "shadows":"CAST_ONLY" }, "rectangle":{ "show":true, @@ -419,7 +444,8 @@ }, "outlineWidth":59794, "closeTop":true, - "closeBottom":true + "closeBottom":true, + "shadows":"CAST_ONLY" }, "wall":{ "show":true, @@ -455,7 +481,8 @@ 107,196,96,198 ] }, - "outlineWidth":50458 + "outlineWidth":50458, + "shadows":"CAST_ONLY" }, "agi_conicSensor":{ "show":true, @@ -1551,6 +1578,16 @@ } } }, + { + "id":"constant_label_backgroundColor_rgbaf", + "label":{ + "backgroundColor":{ + "rgbaf":[ + 0.8941176470588236,0.9490196078431372,0.49411764705882355,0.8431372549019608 + ] + } + } + }, { "id":"constant_label_fillColor_rgbaf", "label":{ @@ -1571,6 +1608,16 @@ } } }, + { + "id":"constant_model_silhouetteColor_rgbaf", + "model":{ + "silhouetteColor":{ + "rgbaf":[ + 0.29411764705882354,0.3137254901960784,0.4196078431372549,0.8784313725490196 + ] + } + } + }, { "id":"constant_model_color_rgbaf", "model":{ @@ -5207,6 +5254,9 @@ }, "outlineWidth":{ "reference":"Constant#box.outlineWidth" + }, + "shadows":{ + "reference":"Constant#box.shadows" } }, "corridor":{ @@ -5251,6 +5301,9 @@ }, "outlineWidth":{ "reference":"Constant#corridor.outlineWidth" + }, + "shadows":{ + "reference":"Constant#corridor.shadows" } }, "cylinder":{ @@ -5290,6 +5343,9 @@ }, "slices":{ "reference":"Constant#cylinder.slices" + }, + "shadows":{ + "reference":"Constant#cylinder.shadows" } }, "ellipse":{ @@ -5338,6 +5394,9 @@ }, "numberOfVerticalLines":{ "reference":"Constant#ellipse.numberOfVerticalLines" + }, + "shadows":{ + "reference":"Constant#ellipse.shadows" } }, "ellipsoid":{ @@ -5374,6 +5433,9 @@ }, "subdivisions":{ "reference":"Constant#ellipsoid.subdivisions" + }, + "shadows":{ + "reference":"Constant#ellipsoid.shadows" } }, "label":{ @@ -5392,6 +5454,15 @@ "scale":{ "reference":"Constant#label.scale" }, + "showBackground":{ + "reference":"Constant#label.showBackground" + }, + "backgroundColor":{ + "reference":"Constant#label.backgroundColor" + }, + "backgroundPadding":{ + "reference":"Constant#label.backgroundPadding" + }, "pixelOffset":{ "reference":"Constant#label.pixelOffset" }, @@ -5445,9 +5516,18 @@ "runAnimations":{ "reference":"Constant#model.runAnimations" }, + "shadows":{ + "reference":"Constant#model.shadows" + }, "heightReference":{ "reference":"Constant#model.heightReference" }, + "silhouetteColor":{ + "reference":"Constant#model.silhouetteColor" + }, + "silhouetteSize":{ + "reference":"Constant#model.silhouetteSize" + }, "color":{ "reference":"Constant#model.color" }, @@ -5569,6 +5649,9 @@ }, "closeBottom":{ "reference":"Constant#polygon.closeBottom" + }, + "shadows":{ + "reference":"Constant#polygon.shadows" } }, "polyline":{ @@ -5595,6 +5678,9 @@ }, "followSurface":{ "reference":"Constant#polyline.followSurface" + }, + "shadows":{ + "reference":"Constant#polyline.shadows" } }, "rectangle":{ @@ -5643,6 +5729,9 @@ }, "closeBottom":{ "reference":"Constant#rectangle.closeBottom" + }, + "shadows":{ + "reference":"Constant#rectangle.shadows" } }, "wall":{ @@ -5685,6 +5774,9 @@ }, "outlineWidth":{ "reference":"Constant#wall.outlineWidth" + }, + "shadows":{ + "reference":"Constant#wall.shadows" } }, "agi_conicSensor":{ @@ -8310,6 +8402,20 @@ 3600,42123 ] }, + "backgroundColor":{ + "epoch":"2016-06-17T12:00:00Z", + "rgba":[ + 0,30,92,161,169, + 3600,85,52,166,62 + ] + }, + "backgroundPadding":{ + "epoch":"2016-06-17T12:00:00Z", + "cartesian2":[ + 0,32945,5504, + 3600,35323,6281 + ] + }, "pixelOffset":{ "epoch":"2016-06-17T12:00:00Z", "cartesian2":[ @@ -8382,6 +8488,20 @@ 3600,25558 ] }, + "silhouetteColor":{ + "epoch":"2016-06-17T12:00:00Z", + "rgba":[ + 0,33,239,70,81, + 3600,60,48,26,123 + ] + }, + "silhouetteSize":{ + "epoch":"2016-06-17T12:00:00Z", + "number":[ + 0,65103, + 3600,29065 + ] + }, "color":{ "epoch":"2016-06-17T12:00:00Z", "rgba":[ @@ -10091,6 +10211,18 @@ } } }, + { + "id":"sampled_label_backgroundColor_rgbaf", + "label":{ + "backgroundColor":{ + "epoch":"2016-06-17T12:00:00Z", + "rgbaf":[ + 0,0.9607843137254902,0.18823529411764706,0.8705882352941177,0.27058823529411763, + 3600,0.8823529411764706,0.796078431372549,0.6039215686274509,0.8235294117647058 + ] + } + } + }, { "id":"sampled_label_fillColor_rgbaf", "label":{ @@ -10115,6 +10247,18 @@ } } }, + { + "id":"sampled_model_silhouetteColor_rgbaf", + "model":{ + "silhouetteColor":{ + "epoch":"2016-06-17T12:00:00Z", + "rgbaf":[ + 0,0.23137254901960785,0.8666666666666667,0.26666666666666666,0.6352941176470588, + 3600,0.7490196078431373,0.22745098039215686,0.807843137254902,0.08235294117647059 + ] + } + } + }, { "id":"sampled_model_color_rgbaf", "model":{ diff --git a/Specs/DataSources/CzmlDataSourceSpec.js b/Specs/DataSources/CzmlDataSourceSpec.js index 1da26e311f2f..7c2c956b09a1 100644 --- a/Specs/DataSources/CzmlDataSourceSpec.js +++ b/Specs/DataSources/CzmlDataSourceSpec.js @@ -2876,6 +2876,7 @@ defineSuite([ expect(e.box.outline.getValue(date)).toEqual(true); expect(e.box.outlineColor.getValue(date)).toEqual(Color.fromBytes(121, 42, 244, 168)); expect(e.box.outlineWidth.getValue(date)).toEqual(15323.0); + expect(e.box.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.corridor.show.getValue(date)).toEqual(true); expect(e.corridor.positions.getValue(date)).toEqual([ new Cartesian3(36415, 2702, 36618), new Cartesian3(47759, 11706, 63277) ]); expect(e.corridor.width.getValue(date)).toEqual(20413.0); @@ -2888,6 +2889,7 @@ defineSuite([ expect(e.corridor.outline.getValue(date)).toEqual(true); expect(e.corridor.outlineColor.getValue(date)).toEqual(Color.fromBytes(198, 25, 134, 60)); expect(e.corridor.outlineWidth.getValue(date)).toEqual(9132.0); + expect(e.corridor.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.cylinder.show.getValue(date)).toEqual(true); expect(e.cylinder.length.getValue(date)).toEqual(33298.0); expect(e.cylinder.topRadius.getValue(date)).toEqual(16245.0); @@ -2899,6 +2901,7 @@ defineSuite([ expect(e.cylinder.outlineWidth.getValue(date)).toEqual(64018.0); expect(e.cylinder.numberOfVerticalLines.getValue(date)).toEqual(38567.0); expect(e.cylinder.slices.getValue(date)).toEqual(39979.0); + expect(e.cylinder.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.ellipse.show.getValue(date)).toEqual(true); expect(e.ellipse.semiMajorAxis.getValue(date)).toEqual(60072.0); expect(e.ellipse.semiMinorAxis.getValue(date)).toEqual(38653.0); @@ -2913,6 +2916,7 @@ defineSuite([ expect(e.ellipse.outlineColor.getValue(date)).toEqual(Color.fromBytes(160, 82, 145, 104)); expect(e.ellipse.outlineWidth.getValue(date)).toEqual(8839.0); expect(e.ellipse.numberOfVerticalLines.getValue(date)).toEqual(38878.0); + expect(e.ellipse.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.ellipsoid.show.getValue(date)).toEqual(true); expect(e.ellipsoid.radii.getValue(date)).toEqual(new Cartesian3(15638, 24381, 37983)); expect(e.ellipsoid.fill.getValue(date)).toEqual(true); @@ -2923,11 +2927,15 @@ defineSuite([ expect(e.ellipsoid.stackPartitions.getValue(date)).toEqual(54278.0); expect(e.ellipsoid.slicePartitions.getValue(date)).toEqual(28562.0); expect(e.ellipsoid.subdivisions.getValue(date)).toEqual(14008.0); + expect(e.ellipsoid.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.label.show.getValue(date)).toEqual(true); expect(e.label.text.getValue(date)).toEqual('string36641'); expect(e.label.font.getValue(date)).toEqual('14px sans-serif'); expect(e.label.style.getValue(date)).toEqual(LabelStyle.FILL_AND_OUTLINE); expect(e.label.scale.getValue(date)).toEqual(6510.0); + expect(e.label.showBackground.getValue(date)).toEqual(true); + expect(e.label.backgroundColor.getValue(date)).toEqual(Color.fromBytes(225, 114, 54, 128)); + expect(e.label.backgroundPadding.getValue(date)).toEqual(new Cartesian2(5508, 56341)); expect(e.label.pixelOffset.getValue(date)).toEqual(new Cartesian2(25913, 30821)); expect(e.label.eyeOffset.getValue(date)).toEqual(new Cartesian3(30502, 29047, 25457)); expect(e.label.horizontalOrigin.getValue(date)).toEqual(HorizontalOrigin.LEFT); @@ -2945,7 +2953,10 @@ defineSuite([ expect(e.model.maximumScale.getValue(date)).toEqual(64305.0); expect(e.model.incrementallyLoadTextures.getValue(date)).toEqual(true); expect(e.model.runAnimations.getValue(date)).toEqual(true); + expect(e.model.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.model.heightReference.getValue(date)).toEqual(HeightReference.CLAMP_TO_GROUND); + expect(e.model.silhouetteColor.getValue(date)).toEqual(Color.fromBytes(29, 61, 52, 101)); + expect(e.model.silhouetteSize.getValue(date)).toEqual(4645.0); expect(e.model.color.getValue(date)).toEqual(Color.fromBytes(0, 52, 75, 73)); expect(e.model.colorBlendMode.getValue(date)).toEqual(ColorBlendMode.REPLACE); expect(e.model.colorBlendAmount.getValue(date)).toEqual(7475.0); @@ -2980,12 +2991,14 @@ defineSuite([ expect(e.polygon.perPositionHeight.getValue(date)).toEqual(true); expect(e.polygon.closeTop.getValue(date)).toEqual(true); expect(e.polygon.closeBottom.getValue(date)).toEqual(true); + expect(e.polygon.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.polyline.show.getValue(date)).toEqual(true); expect(e.polyline.positions.getValue(date)).toEqual([ new Cartesian3(23333, 31067, 17529), new Cartesian3(57924, 41186, 31648) ]); expect(e.polyline.width.getValue(date)).toEqual(14667.0); expect(e.polyline.granularity.getValue(date)).toEqual(53395.0); expect(e.polyline.material.color.getValue(date)).toEqual(Color.fromBytes(88, 0, 232, 230)); expect(e.polyline.followSurface.getValue(date)).toEqual(true); + expect(e.polyline.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.rectangle.show.getValue(date)).toEqual(true); expect(e.rectangle.coordinates.getValue(date)).toEqual(new Rectangle(1.13325368272577, 0.703573207377445, 0.756676249095309, 0.339217858685931)); expect(e.rectangle.height.getValue(date)).toEqual(20608.0); @@ -3000,6 +3013,7 @@ defineSuite([ expect(e.rectangle.outlineWidth.getValue(date)).toEqual(59794.0); expect(e.rectangle.closeTop.getValue(date)).toEqual(true); expect(e.rectangle.closeBottom.getValue(date)).toEqual(true); + expect(e.rectangle.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e.wall.show.getValue(date)).toEqual(true); expect(e.wall.positions.getValue(date)).toEqual([ new Cartesian3(21681, 40276, 30621), new Cartesian3(3959, 61967, 19442) ]); expect(e.wall.minimumHeights.getValue(date)).toEqual([ 49466, 44737 ]); @@ -3010,6 +3024,7 @@ defineSuite([ expect(e.wall.outline.getValue(date)).toEqual(true); expect(e.wall.outlineColor.getValue(date)).toEqual(Color.fromBytes(107, 196, 96, 198)); expect(e.wall.outlineWidth.getValue(date)).toEqual(50458.0); + expect(e.wall.shadows.getValue(date)).toEqual(ShadowMode.CAST_ONLY); expect(e = dataSource.entities.getById('constant_position_cartographicRadians')).toBeDefined(); expect(e.position.getValue(date)).toEqual(Cartesian3.fromRadians(0.368123392863751, 0.678098621973879, 32050)); expect(e = dataSource.entities.getById('constant_position_cartographicDegrees')).toBeDefined(); @@ -3169,10 +3184,14 @@ defineSuite([ expect(e.ellipsoid.material.oddColor.getValue(date)).toEqualEpsilon(new Color(0.580392156862745, 0.164705882352941, 0.741176470588235, 0.0941176470588235), 1e-14); expect(e = dataSource.entities.getById('constant_ellipsoid_outlineColor_rgbaf')).toBeDefined(); expect(e.ellipsoid.outlineColor.getValue(date)).toEqualEpsilon(new Color(0.494117647058824, 0.0823529411764706, 0.274509803921569, 0.823529411764706), 1e-14); + expect(e = dataSource.entities.getById('constant_label_backgroundColor_rgbaf')).toBeDefined(); + expect(e.label.backgroundColor.getValue(date)).toEqualEpsilon(new Color(0.894117647058824, 0.949019607843137, 0.494117647058824, 0.843137254901961), 1e-14); expect(e = dataSource.entities.getById('constant_label_fillColor_rgbaf')).toBeDefined(); expect(e.label.fillColor.getValue(date)).toEqualEpsilon(new Color(0.16078431372549, 0.568627450980392, 0.776470588235294, 0.505882352941176), 1e-14); expect(e = dataSource.entities.getById('constant_label_outlineColor_rgbaf')).toBeDefined(); expect(e.label.outlineColor.getValue(date)).toEqualEpsilon(new Color(0.458823529411765, 0.325490196078431, 0.909803921568627, 0.67843137254902), 1e-14); + expect(e = dataSource.entities.getById('constant_model_silhouetteColor_rgbaf')).toBeDefined(); + expect(e.model.silhouetteColor.getValue(date)).toEqualEpsilon(new Color(0.294117647058824, 0.313725490196078, 0.419607843137255, 0.87843137254902), 1e-14); expect(e = dataSource.entities.getById('constant_model_color_rgbaf')).toBeDefined(); expect(e.model.color.getValue(date)).toEqualEpsilon(new Color(0.568627450980392, 0.333333333333333, 0.141176470588235, 0.572549019607843), 1e-14); expect(e = dataSource.entities.getById('constant_path_material_solidColor_color')).toBeDefined(); @@ -3551,6 +3570,7 @@ defineSuite([ expect(e.box.outline.getValue(date)).toEqual(constant.box.outline.getValue(date)); expect(e.box.outlineColor.getValue(date)).toEqual(constant.box.outlineColor.getValue(date)); expect(e.box.outlineWidth.getValue(date)).toEqual(constant.box.outlineWidth.getValue(date)); + expect(e.box.shadows.getValue(date)).toEqual(constant.box.shadows.getValue(date)); expect(e.corridor.show.getValue(date)).toEqual(constant.corridor.show.getValue(date)); expect(e.corridor.positions.getValue(date)).toEqual([dataSource.entities.getById('ConstantPosition1').position.getValue(date), dataSource.entities.getById('ConstantPosition2').position.getValue(date)]); expect(e.corridor.width.getValue(date)).toEqual(constant.corridor.width.getValue(date)); @@ -3563,6 +3583,7 @@ defineSuite([ expect(e.corridor.outline.getValue(date)).toEqual(constant.corridor.outline.getValue(date)); expect(e.corridor.outlineColor.getValue(date)).toEqual(constant.corridor.outlineColor.getValue(date)); expect(e.corridor.outlineWidth.getValue(date)).toEqual(constant.corridor.outlineWidth.getValue(date)); + expect(e.corridor.shadows.getValue(date)).toEqual(constant.corridor.shadows.getValue(date)); expect(e.cylinder.show.getValue(date)).toEqual(constant.cylinder.show.getValue(date)); expect(e.cylinder.length.getValue(date)).toEqual(constant.cylinder.length.getValue(date)); expect(e.cylinder.topRadius.getValue(date)).toEqual(constant.cylinder.topRadius.getValue(date)); @@ -3574,6 +3595,7 @@ defineSuite([ expect(e.cylinder.outlineWidth.getValue(date)).toEqual(constant.cylinder.outlineWidth.getValue(date)); expect(e.cylinder.numberOfVerticalLines.getValue(date)).toEqual(constant.cylinder.numberOfVerticalLines.getValue(date)); expect(e.cylinder.slices.getValue(date)).toEqual(constant.cylinder.slices.getValue(date)); + expect(e.cylinder.shadows.getValue(date)).toEqual(constant.cylinder.shadows.getValue(date)); expect(e.ellipse.show.getValue(date)).toEqual(constant.ellipse.show.getValue(date)); expect(e.ellipse.semiMajorAxis.getValue(date)).toEqual(constant.ellipse.semiMajorAxis.getValue(date)); expect(e.ellipse.semiMinorAxis.getValue(date)).toEqual(constant.ellipse.semiMinorAxis.getValue(date)); @@ -3588,6 +3610,7 @@ defineSuite([ expect(e.ellipse.outlineColor.getValue(date)).toEqual(constant.ellipse.outlineColor.getValue(date)); expect(e.ellipse.outlineWidth.getValue(date)).toEqual(constant.ellipse.outlineWidth.getValue(date)); expect(e.ellipse.numberOfVerticalLines.getValue(date)).toEqual(constant.ellipse.numberOfVerticalLines.getValue(date)); + expect(e.ellipse.shadows.getValue(date)).toEqual(constant.ellipse.shadows.getValue(date)); expect(e.ellipsoid.show.getValue(date)).toEqual(constant.ellipsoid.show.getValue(date)); expect(e.ellipsoid.radii.getValue(date)).toEqual(constant.ellipsoid.radii.getValue(date)); expect(e.ellipsoid.fill.getValue(date)).toEqual(constant.ellipsoid.fill.getValue(date)); @@ -3598,11 +3621,15 @@ defineSuite([ expect(e.ellipsoid.stackPartitions.getValue(date)).toEqual(constant.ellipsoid.stackPartitions.getValue(date)); expect(e.ellipsoid.slicePartitions.getValue(date)).toEqual(constant.ellipsoid.slicePartitions.getValue(date)); expect(e.ellipsoid.subdivisions.getValue(date)).toEqual(constant.ellipsoid.subdivisions.getValue(date)); + expect(e.ellipsoid.shadows.getValue(date)).toEqual(constant.ellipsoid.shadows.getValue(date)); expect(e.label.show.getValue(date)).toEqual(constant.label.show.getValue(date)); expect(e.label.text.getValue(date)).toEqual(constant.label.text.getValue(date)); expect(e.label.font.getValue(date)).toEqual(constant.label.font.getValue(date)); expect(e.label.style.getValue(date)).toEqual(constant.label.style.getValue(date)); expect(e.label.scale.getValue(date)).toEqual(constant.label.scale.getValue(date)); + expect(e.label.showBackground.getValue(date)).toEqual(constant.label.showBackground.getValue(date)); + expect(e.label.backgroundColor.getValue(date)).toEqual(constant.label.backgroundColor.getValue(date)); + expect(e.label.backgroundPadding.getValue(date)).toEqual(constant.label.backgroundPadding.getValue(date)); expect(e.label.pixelOffset.getValue(date)).toEqual(constant.label.pixelOffset.getValue(date)); expect(e.label.eyeOffset.getValue(date)).toEqual(constant.label.eyeOffset.getValue(date)); expect(e.label.horizontalOrigin.getValue(date)).toEqual(constant.label.horizontalOrigin.getValue(date)); @@ -3620,7 +3647,10 @@ defineSuite([ expect(e.model.maximumScale.getValue(date)).toEqual(constant.model.maximumScale.getValue(date)); expect(e.model.incrementallyLoadTextures.getValue(date)).toEqual(constant.model.incrementallyLoadTextures.getValue(date)); expect(e.model.runAnimations.getValue(date)).toEqual(constant.model.runAnimations.getValue(date)); + expect(e.model.shadows.getValue(date)).toEqual(constant.model.shadows.getValue(date)); expect(e.model.heightReference.getValue(date)).toEqual(constant.model.heightReference.getValue(date)); + expect(e.model.silhouetteColor.getValue(date)).toEqual(constant.model.silhouetteColor.getValue(date)); + expect(e.model.silhouetteSize.getValue(date)).toEqual(constant.model.silhouetteSize.getValue(date)); expect(e.model.color.getValue(date)).toEqual(constant.model.color.getValue(date)); expect(e.model.colorBlendMode.getValue(date)).toEqual(constant.model.colorBlendMode.getValue(date)); expect(e.model.colorBlendAmount.getValue(date)).toEqual(constant.model.colorBlendAmount.getValue(date)); @@ -3655,12 +3685,14 @@ defineSuite([ expect(e.polygon.perPositionHeight.getValue(date)).toEqual(constant.polygon.perPositionHeight.getValue(date)); expect(e.polygon.closeTop.getValue(date)).toEqual(constant.polygon.closeTop.getValue(date)); expect(e.polygon.closeBottom.getValue(date)).toEqual(constant.polygon.closeBottom.getValue(date)); + expect(e.polygon.shadows.getValue(date)).toEqual(constant.polygon.shadows.getValue(date)); expect(e.polyline.show.getValue(date)).toEqual(constant.polyline.show.getValue(date)); expect(e.polyline.positions.getValue(date)).toEqual([dataSource.entities.getById('ConstantPosition1').position.getValue(date), dataSource.entities.getById('ConstantPosition2').position.getValue(date)]); expect(e.polyline.width.getValue(date)).toEqual(constant.polyline.width.getValue(date)); expect(e.polyline.granularity.getValue(date)).toEqual(constant.polyline.granularity.getValue(date)); expect(e.polyline.material.color.getValue(date)).toEqual(constant.polyline.material.color.getValue(date)); expect(e.polyline.followSurface.getValue(date)).toEqual(constant.polyline.followSurface.getValue(date)); + expect(e.polyline.shadows.getValue(date)).toEqual(constant.polyline.shadows.getValue(date)); expect(e.rectangle.show.getValue(date)).toEqual(constant.rectangle.show.getValue(date)); expect(e.rectangle.coordinates.getValue(date)).toEqual(constant.rectangle.coordinates.getValue(date)); expect(e.rectangle.height.getValue(date)).toEqual(constant.rectangle.height.getValue(date)); @@ -3675,6 +3707,7 @@ defineSuite([ expect(e.rectangle.outlineWidth.getValue(date)).toEqual(constant.rectangle.outlineWidth.getValue(date)); expect(e.rectangle.closeTop.getValue(date)).toEqual(constant.rectangle.closeTop.getValue(date)); expect(e.rectangle.closeBottom.getValue(date)).toEqual(constant.rectangle.closeBottom.getValue(date)); + expect(e.rectangle.shadows.getValue(date)).toEqual(constant.rectangle.shadows.getValue(date)); expect(e.wall.show.getValue(date)).toEqual(constant.wall.show.getValue(date)); expect(e.wall.positions.getValue(date)).toEqual([dataSource.entities.getById('ConstantPosition1').position.getValue(date), dataSource.entities.getById('ConstantPosition2').position.getValue(date)]); expect(e.wall.minimumHeights.getValue(date)).toEqual([dataSource.entities.getById('ConstantDouble1').billboard.scale.getValue(date), dataSource.entities.getById('ConstantDouble2').billboard.scale.getValue(date)]); @@ -3685,6 +3718,7 @@ defineSuite([ expect(e.wall.outline.getValue(date)).toEqual(constant.wall.outline.getValue(date)); expect(e.wall.outlineColor.getValue(date)).toEqual(constant.wall.outlineColor.getValue(date)); expect(e.wall.outlineWidth.getValue(date)).toEqual(constant.wall.outlineWidth.getValue(date)); + expect(e.wall.shadows.getValue(date)).toEqual(constant.wall.shadows.getValue(date)); expect(e = dataSource.entities.getById('reference_box_material_image')).toBeDefined(); expect(e.box.material.image.getValue(date)).toEqual(dataSource.entities.getById('material_box_material_image').box.material.image.getValue(date)); expect(e.box.material.repeat.getValue(date)).toEqual(dataSource.entities.getById('material_box_material_image').box.material.repeat.getValue(date)); @@ -4033,6 +4067,10 @@ defineSuite([ expect(e.ellipsoid.subdivisions.getValue(documentStopDate)).toEqual(53957.0); expect(e.label.scale.getValue(documentStartDate)).toEqual(40153.0); expect(e.label.scale.getValue(documentStopDate)).toEqual(42123.0); + expect(e.label.backgroundColor.getValue(documentStartDate)).toEqual(Color.fromBytes(30, 92, 161, 169)); + expect(e.label.backgroundColor.getValue(documentStopDate)).toEqual(Color.fromBytes(85, 52, 166, 62)); + expect(e.label.backgroundPadding.getValue(documentStartDate)).toEqual(new Cartesian2(32945, 5504)); + expect(e.label.backgroundPadding.getValue(documentStopDate)).toEqual(new Cartesian2(35323, 6281)); expect(e.label.pixelOffset.getValue(documentStartDate)).toEqual(new Cartesian2(8539, 9761)); expect(e.label.pixelOffset.getValue(documentStopDate)).toEqual(new Cartesian2(10537, 54569)); expect(e.label.eyeOffset.getValue(documentStartDate)).toEqual(new Cartesian3(5984, 34327, 59014)); @@ -4053,6 +4091,10 @@ defineSuite([ expect(e.model.minimumPixelSize.getValue(documentStopDate)).toEqual(40522.0); expect(e.model.maximumScale.getValue(documentStartDate)).toEqual(8290.0); expect(e.model.maximumScale.getValue(documentStopDate)).toEqual(25558.0); + expect(e.model.silhouetteColor.getValue(documentStartDate)).toEqual(Color.fromBytes(33, 239, 70, 81)); + expect(e.model.silhouetteColor.getValue(documentStopDate)).toEqual(Color.fromBytes(60, 48, 26, 123)); + expect(e.model.silhouetteSize.getValue(documentStartDate)).toEqual(65103.0); + expect(e.model.silhouetteSize.getValue(documentStopDate)).toEqual(29065.0); expect(e.model.color.getValue(documentStartDate)).toEqual(Color.fromBytes(74, 69, 164, 116)); expect(e.model.color.getValue(documentStopDate)).toEqual(Color.fromBytes(127, 30, 46, 170)); expect(e.model.colorBlendAmount.getValue(documentStartDate)).toEqual(64130.0); @@ -4355,12 +4397,18 @@ defineSuite([ expect(e = dataSource.entities.getById('sampled_ellipsoid_outlineColor_rgbaf')).toBeDefined(); expect(e.ellipsoid.outlineColor.getValue(documentStartDate)).toEqualEpsilon(new Color(0.552941176470588, 0.549019607843137, 0.431372549019608, 0.568627450980392), 1e-14); expect(e.ellipsoid.outlineColor.getValue(documentStopDate)).toEqualEpsilon(new Color(0.435294117647059, 0.698039215686274, 0.396078431372549, 0.772549019607843), 1e-14); + expect(e = dataSource.entities.getById('sampled_label_backgroundColor_rgbaf')).toBeDefined(); + expect(e.label.backgroundColor.getValue(documentStartDate)).toEqualEpsilon(new Color(0.96078431372549, 0.188235294117647, 0.870588235294118, 0.270588235294118), 1e-14); + expect(e.label.backgroundColor.getValue(documentStopDate)).toEqualEpsilon(new Color(0.882352941176471, 0.796078431372549, 0.603921568627451, 0.823529411764706), 1e-14); expect(e = dataSource.entities.getById('sampled_label_fillColor_rgbaf')).toBeDefined(); expect(e.label.fillColor.getValue(documentStartDate)).toEqualEpsilon(new Color(0.709803921568627, 0.556862745098039, 0.337254901960784, 0.247058823529412), 1e-14); expect(e.label.fillColor.getValue(documentStopDate)).toEqualEpsilon(new Color(0.43921568627451, 0.694117647058824, 0.901960784313726, 0.0823529411764706), 1e-14); expect(e = dataSource.entities.getById('sampled_label_outlineColor_rgbaf')).toBeDefined(); expect(e.label.outlineColor.getValue(documentStartDate)).toEqualEpsilon(new Color(0.631372549019608, 0.709803921568627, 0.270588235294118, 0.792156862745098), 1e-14); expect(e.label.outlineColor.getValue(documentStopDate)).toEqualEpsilon(new Color(0.435294117647059, 0.176470588235294, 0.235294117647059, 0.631372549019608), 1e-14); + expect(e = dataSource.entities.getById('sampled_model_silhouetteColor_rgbaf')).toBeDefined(); + expect(e.model.silhouetteColor.getValue(documentStartDate)).toEqualEpsilon(new Color(0.231372549019608, 0.866666666666667, 0.266666666666667, 0.635294117647059), 1e-14); + expect(e.model.silhouetteColor.getValue(documentStopDate)).toEqualEpsilon(new Color(0.749019607843137, 0.227450980392157, 0.807843137254902, 0.0823529411764706), 1e-14); expect(e = dataSource.entities.getById('sampled_model_color_rgbaf')).toBeDefined(); expect(e.model.color.getValue(documentStartDate)).toEqualEpsilon(new Color(0.0509803921568627, 0.83921568627451, 0.470588235294118, 0.956862745098039), 1e-14); expect(e.model.color.getValue(documentStopDate)).toEqualEpsilon(new Color(0.435294117647059, 0.945098039215686, 0.431372549019608, 0.619607843137255), 1e-14); From 8ff63f706a0e87e8cfcbe3750ca496a120042669 Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Tue, 20 Dec 2016 11:57:00 -0500 Subject: [PATCH 13/13] Context stencil fix --- Specs/Scene/SceneSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Specs/Scene/SceneSpec.js b/Specs/Scene/SceneSpec.js index 151b77c3c8b2..a4729f3cb711 100644 --- a/Specs/Scene/SceneSpec.js +++ b/Specs/Scene/SceneSpec.js @@ -117,7 +117,7 @@ defineSuite([ var contextAttributes = scene.context._gl.getContextAttributes(); // Do not check depth and antialias since they are requests not requirements expect(contextAttributes.alpha).toEqual(false); - expect(contextAttributes.stencil).toEqual(false); + expect(contextAttributes.stencil).toEqual(true); expect(contextAttributes.premultipliedAlpha).toEqual(true); expect(contextAttributes.preserveDrawingBuffer).toEqual(false); });