Scene.orderIndependentTranslucency by default on iPad and iOS due to a WebGL regression, see #9827. The old default will be restored once the issue has been resolved.ModelExperimental. #10271ModelExperimental. #10282ModelExperimental. #10314debugWireframe to ModelExperimental. #10332GeoJsonSource.process to support adding features without removing existing entities, similar to CzmlDataSource.process. #9275KmlDataSource now exposes the camera and canvas properties, which are used to provide information about the state of the Viewer when making network requests for a Link. Passing these values in the constructor is now optional.GoogleEarthEnterpriseImageryProvider.requestImagery, GridImageryProvider.requestImagery, and TileCoordinateImageryProvider.requestImagery return types to match interface. #10265Event class was made generic in order to support strongly typed event callbacks. #10292Cesium3dTilesInspector. #10246ModelExperimental when loading a Draco-compressed model with tangents. #10294i3dm tilesets that are loaded using ModelExperimental. #10302test and other support tasks from within the release zip file. #10311Cesium.when. Any Promise in the Cesium API has changed to the native Promise API. Code bases using cesium will likely need updates after this change. See the upgrade guide for instructions on how to update your code base to be compliant with native promises.ArcGisMapServerImageryProvider.readyPromise will not reject if there is a failure unless the request cannot be retried.SingleTileImageryProvider.readyPromise will not reject if there is a failure unless the request cannot be retried.EXT_structural_metadata property attributes in CustomShader #10228EXT_structural_metadata property textures in CustomShader #10247minimumPixelSize, scale, and maximumScale to ModelExperimental. #10092Cesium3DTileset now has a splitDirection property, allowing the tileset to only be drawn on the left or right side of the screen. This is useful for visual comparison of tilesets. #10193lightColor to ModelExperimental #10207ModelExperimental. #10234ModelExperimental. #10250Cartesian2.clamp, Cartesian3.clamp, and Cartesian4.clamp. #10197tileset.metadata and content.group.metadata are more symmetric with content.metadata and tile.metadata. #10224Scene documentation for msaaSamples property. #10205pnts tiles would crash when Cesium.ExperimentalFeatures.enableModelExperimental was true. #10183ShadowMap documentation for options.pointLightRadius type. #10195minimumLevel on metadataFailure for TileMapServiceImageryProvider. #10198ImagerySplitDirection and Scene.imagerySplitPosition have been deprecated and will be removed in CesiumJS 1.94. Use SplitDirection and Scene.splitPosition instead.ImageBasedLighting instead of as individual options. The individual parameters are deprecated and will be removed in CesiumJS 1.94. #10226when.js will be removed and replaced with native promises. Cesium.when is deprecated and will be removed in 1.92. Any Promise returned from a function as of 1.92 will switch the native Promise API. Code bases using cesium will likely need updates after this change. See the upgrade guide for instructions on how to update your code base to be compliant with native promises.camera.getPickRay that arises when the scene is not rendered. camera.getPickRay can now return undefined. #10139Viewer constructor with the msaaSamples option and can be controlled through Scene.msaaSamples.ModelExperimental by default. #10055ModelExperimental. #10070depthPlaneEllipsoidOffset to Viewer and Scene constructors to address rendering artifacts below the WGS84 ellipsoid. #9200debugColorTiles in ModelExperimental. #10071ModelExperimental. #10077packArray and unpackArray for matrix types. #10118Matrix2, Matrix3, and Matrix4. #10124
setScale, setUniformScale, setRotation, getRotation, and multiplyByUniformScale to Matrix2.setScale, setUniformScale, setRotation, and multiplyByUniformScale to Matrix3.setUniformScale, setRotation, getRotation, and fromRotation to Matrix4.AxisAlignedBoundingBox.fromCorners. #10130BoundingSphere.fromTransformation. #10130OrientedBoundingBox.fromTransformation, OrientedBoundingBox.computeCorners, and OrientedBoundingBox.computeTransformation. #10130Rectangle.subsection. #10130ModelExperimental's model matrix would not update its bounding sphere. #10078ModelExperimental with opaque features was not being rendered. #10110ModelExperimental can now be selected via (tileset|model).featureIdIndex and (tileset|model).instanceFeatureIdIndex. #10018CustomShader. #10018CustomShader into Documentation/CustomShaderGuide/ to make it more discoverable. #10054Cesium3DTileFeature.featureId and ModelFeature.featureId so the feature ID or batch ID can be accessed from a picked feature. #10022I3dmLoader to transcode .i3dm to ModelExperimental. #9968PntsLoader to transcode .pnts to ModelExperimental. #9978ModelExperimental. #9998stroke or fill properties but valid opacity values. #9717scene.pickTranslucentDepth for translucent point clouds with eye dome lighting. #9991tileset.pointCloudShading that throws if set to undefined to clarify that this is disallowed. #9998_BATCHID accessors in ModelExperimental #10008 and 10031tileset.imageBasedLightingFactor has no effect on i3dm tile content. #10020screenSpaceCameraController.minimumDistance. #9932Scene.debugShowGlobeDepth. #9965CesiumInspectorViewModel.globeDepth and CesiumInspectorViewModel.pickDepth. #9965barycentricCoordinates returns undefined when the input triangle is degenerate. #9175pointSize field to custom vertex shaders for more control over shading point clouds. #9960lambertDiffuseMultiplier property to Globe object to enhance terrain lighting. #9878getFeatureInfoUrl option to WebMapServiceImageryProvider which reads the getFeatureInfo request URL for WMS service if it differs with the getCapabilities URL. #9563tileset.enableModelExperimental so tilesets with Model and ModelExperimental can be mixed in the same scene. #9982ModelExperimental. #9955ModelExperimental. #9957CustomShaderPipelineStage. #9964Camera.changed handles changes in heading. #9970Implicit3DTileContent. #9971ModelExperimental where indices were not the correct data type after draco decode. #9974GetMap bbox parameter so that it follows the axis ordering as defined in the EPSG database. #9797KmlDataSource so that it can handle relative URLs for additional elements - video, audio, iframe etc. #9328KHR_materials_pbrSpecularGlossiness extension. #9943ModelExperimental, a new experimental architecture for loading glTF models. It is disabled by default; set ExperimentalFeatures.enableModelExperimental = true to enable it.CustomShader class for styling Cesium3DTileset or ModelExperimental with custom GLSL shadersScreenOverlay support to KmlDataSource. #9864CumulusCloud.color for customizing cloud colors. #9877undefined rather than throwing an error. #9882Rectangle.union with rectangles that span the entire globe. #9866CameraFlightPath when using Columbus View. #9192Scene.terrainExaggeration and options.terrainExaggeration for CesiumWidget, Viewer, and Scene, which were deprecated in CesiumJS 1.83. Use Globe.terrainExaggeration instead.CloudCollection and CumulusCloud for adding procedurally generated clouds to a scene. #9737BingMapsGeocoderService now takes an optional Culture Code for localizing results. #9729polylinePositions getter to Cesium3DTileFeature that gets the decoded positions of a polyline vector feature. #9684ImageryLayerCollection.pickImageryLayers, which determines the imagery layers that are intersected by a pick ray. #9651TileBoundingRegion.distanceToCamera that caused incorrect results when the camera was on the opposite site of the globe. #9678undefined and Material.DefaultImageId. #9644polylineVolume with very close points. #9669PolylineGeometry that incorrectly shifted colors when duplicate positions were removed. #9676OrientedBoundingBox.distancedSquaredTo such that they handle halfAxes with magnitudes near zero. #9670Label was created with a soft hyphen in its text. #9682distanceSquaredTo in BoundingSphere. #9686ktx2ktx2 converter tool to update existing KTX1 files.KHR_texture_basisu extension.Material.PixelFormat and WebGLConstants enums from WebGL extensions WEBGL_compressed_texture_etc, WEBGL_compressed_texture_astc, and EXT_texture_compression_bptc.Globe.terrainExaggeration and Globe.terrainExaggerationRelativeHeight. #9603CustomHeightmapTerrainProvider, a simple TerrainProvider that gets height values from a callback function. #9604CESIUM_primitive_outline extension. #8959ImageBitmap. #9624options.fadingEnabled parameter to ShadowMap to control whether shadows fade out when the light source is close to the horizon. #9565outlineWidth property will be ignored on all major browsers on Windows platforms. #9600KmlTour, KmlTourFlyTo, and KmlTourWait. Added documentation and a kmlTours getter to KmlDataSource. Removed references to KmlTourSoundCues. #8073geometricError would fail to load. #9618WebMapTileServiceImageryProvider where using URL subdomains caused query parameters to be dropped from requests. #9606ScreenSpaceCameraController.tilt3DOnTerrain that caused unexpected camera behavior when tilting terrain diagonally along the screen. #9562GlobeSurfaceTile to print terrain tile request errors to console. #9570positionToEyeEC and tangentToEyeMatrix properties for custom materials were not set in GlobeFS. #9597Matrix4.inverse and Matrix4.inverseTransformation that used "affine transformation" instead of "rotation and translation" specifically. #9608preferImageBitmap, which caused them to decode on the main thread and cause frame rate stuttering. #9627color and show in Cesium3DTileStyle. A default color value is used if no color conditions are given. The default value for show, true, is used if no show conditions are given. #9633Scene.terrainExaggeration and options.terrainExaggeration for CesiumWidget, Viewer, and Scene have been deprecated and will be removed in CesiumJS 1.85. They will be replaced with Globe.terrainExaggeration.FeatureDetection.supportsBigInt64Array, FeatureDetection.supportsBigUint64Array and FeatureDetection.supportsBigInt.processTerrain in decodeGoogleEarthEnterprisePacket to handle a newer terrain packet format that includes water surface meshes after terrain meshes. #9519Camera.flyTo would not work properly with a non-WGS84 Ellipsoid. #9498ViewportQuad rectangle after creating the viewport had no effect.#9511ArcGISTiledElevationTerrainProvider. #9522loadCRN and loadKTX have been deprecated and will be removed in CesiumJS 1.83. They will be replaced with support for KTX2. #9478Cesium3DTileset.url, which was deprecated in CesiumJS 1.78. Use Cesium3DTileset.resource.url to retrieve the url value.EasingFunction.QUADRACTIC_IN, which was deprecated in CesiumJS 1.77. Use EasingFunction.QUADRATIC_IN.EasingFunction.QUADRACTIC_OUT, which was deprecated in CesiumJS 1.77. Use EasingFunction.QUADRATIC_OUT.EasingFunction.QUADRACTIC_IN_OUT, which was deprecated in CesiumJS 1.77. Use EasingFunction.QUADRATIC_IN_OUT.TaskProcessor.maximumActiveTasks constructor option to be infinity by default. #9313sampleTerrain and sampleTerrainMostDetailed not working for ArcGISTiledElevationTerrainProvider. #9286polylineVolume now expects its shape positions to specified using the cartesian2 property. Use of the cartesian is also supported for backward-compatibility. #9384Cesium3DTileset is updated. #9366BillboardCollection.show, EntityCluster.show, LabelCollection.show, PointPrimitiveCollection.show, and PolylineCollection.show for a convenient way to control show of the entire collection #9307TaskProcessor now accepts an absolute URL in addition to a worker name as it's first parameter. This makes it possible to use custom web workers with Cesium's task processing system without copying them to Cesium's Workers directory. #9338Cartesian2.cross which computes the magnitude of the cross product of two vectors whose Z values are implicitly 0. #9305Math.previousPowerOfTwo. #9310Math.mod introducing a small amount of floating point error even when the input did not need to be altered. #9354Cesium3DTileset.url has been deprecated and will be removed in Cesium 1.79. Instead, use Cesium3DTileset.resource.url to retrieve the url value.ElevationBand material, which maps colors and gradients to exact elevations. #9132color, backFaceCulling, or silhouetteSize would trigger an error. #9271EasingFunction.QUADRACTIC_IN was deprecated and will be removed in Cesium 1.79. It has been replaced with EasingFunction.QUADRATIC_IN. #9220EasingFunction.QUADRACTIC_OUT was deprecated and will be removed in Cesium 1.79. It has been replaced with EasingFunction.QUADRATIC_OUT. #9220EasingFunction.QUADRACTIC_IN_OUT was deprecated and will be removed in Cesium 1.79. It has been replaced with EasingFunction.QUADRATIC_IN_OUT. #9220tileset.preloadWhenHidden is true and tileset.show is false. Also fixed a related issue where styles would be reapplied if the style being set is the same as the active style. #9223EllipsoidTangentPlane.fromPoints which didn't list a return type. #9227KHR_materials_unlit extension had the normal attribute disabled. #9173.writeTextToCanvas which listed incorrect return type. #9196Viewer.globe constructor option to allow disabling the globe on startup. #9063Matrix3.inverseTranspose and Matrix4.inverseTranspose. #9135MapboxApi, which was deprecated in CesiumJS 1.72. Pass your access token directly to the MapboxImageryProvider or MapboxStyleImageryProvider constructors.BingMapsApi, which was deprecated in CesiumJS 1.72. Pass your access key directly to the BingMapsImageryProvider or BingMapsGeocoderService constructors.line-height specifier in the font property of a Label. #8954Viewer now has default pick handling for Cesium3DTileFeature data and will display its properties in the default Viewer InfoBox as well as set Viewer.selectedEntity to a transient Entity instance representing the data. #9121.data: scheme for the Cesium ion logo URL. #9085TileAvailability are not sorted correctly, causing terrain to sometimes fail to achieve its maximum detail. #9098BaseLayerPicker defaults. If you are using MapboxImageryProvider or MapboxStyleImageryProvider, use options.accessToken when initializing the imagery provider.TEXCOORD_1. #9075MapboxApi.defaultAccessToken was deprecated and will be removed in CesiumJS 1.73. Pass your access token directly to the MapboxImageryProvider or MapboxStyleImageryProvider constructors.BingMapsApi was deprecated and will be removed in CesiumJS 1.73. Pass your access key directly to the BingMapsImageryProvider or BingMapsGeocoderService constructors.Color.fromCssColorString when color string contains spaces. #9015arcType: ArcType.RHUMB, including lines drawn via GeoJSON. #9028translucencyByDistance for label outline color #9003SampledPositionProperty.removeSample #9017Mali GPUs that do not support float textures via WebGL #9023WallGeometry to respect the order of positions passed in, instead of making the positions respect a counter clockwise winding order. This will only affect the look of walls with an image material. If this changed the way your wall is drawing, reverse the order of the positions. #8955backFaceCulling property to Cesium3DTileset and Model to support viewing the underside or interior of a tileset or model. #8981Ellipsoid.surfaceArea for computing the approximate surface area of a rectangle on the surface of an ellipsoid. #8986Color.toCssHexString for getting the CSS hex string equivalent for a color. #8987Ellipsoid.geodeticSurfaceNormal when given the origin as input. undefined is returned instead. #8986WallGeometry when there were adjacent positions with very close values. #8952scene.pickFromRay intersection inaccuracies. #8439Entity constructor would throw an exception.#8832ScreenSpaceEventHandler.getInputAction which listed incorrect return type. #9002toString method to the Resource class in case an instance gets logged as a string. #8722Transforms.rotationMatrixFromPositionVelocity method from Cesium's private API. #8927ImageryProvider types, which were missing defaultNightAlpha and defaultDayAlpha properties. #8908MaterialProperty, which were missing the ability to take primitive types in their constructor. #8904GeometryInstance instances using XXXGeometry classes. #8941.buildModuleUrl, which was accidentally excluded from the official CesiumJS API. #8923EllipsoidGeodesic which incorrectly listed result as required. #8904EllipsoidTangentPlane.fromPoints, which takes an array of Cartesian3, not a single instance. #8928EntityCollection.getById and CompositeEntityCollection.getById, which can both return undefined. #8928Viewer options parameters.viewer.scene.primitives.add(Cesium.createOsmBuildings())."types": ["cesium"] in your tsconfig.json in order for the definitions to be used.Source/Cesium.d.ts after install.GlobeTranslucency object including front face alpha, back face alpha, and a translucency rectangle.Globe.undergroundColor and Globe.undergroundColorAlphaByDistance for controlling how the back side of the globe is rendered when the camera is underground or the globe is translucent. #8867Cesium3DTileset.extensions to get the extensions property from the tileset JSON. #8829Camera.completeFlight, which causes the current camera flight to immediately jump to the final destination and call its complete callback. #8788nightAlpha and dayAlpha properties to ImageryLayer to control alpha separately for the night and day sides of the globe. #8868SkyAtmosphere.perFragmentAtmosphere to switch between per-vertex and per-fragment atmosphere shading. #8866PostProcessStage #8798frustumSplits option to DebugCameraPrimitive. 8849#rgba and #rrggbbaa formats in Color.fromCssColorString. 8873TerrainProvider. #8766${feature.propertyName} and ${feature["propertyName"]} syntax would cause a crash. Also fixed an issue where property names with non-alphanumeric characters would crash. #8785DebugCameraPrimitive was ignoring the near and far planes of the Camera. #8848Scene.sunColor has been removed. Use scene.light.color and scene.light.intensity instead. #8774isArray. Use the native Array.isArray function instead. #8779RequestScheduler to the public API; this allows users to have more control over the requests made by CesiumJS. #8384Scene.cameraUnderground for checking whether the camera is underneath the globe. #8765skeleton was considered required by Cesium. #8175update events should expect one additional event firing as an animation stops. #7387CesiumWidget instances. #8591CesiumUnminified build now includes sourcemaps. #8572STEP animation interpolation. #8786--experimental-modules. It can still be used in earlier versions as well. #8572TileMapServiceImageryProvider will now force minimumLevel to 0 if the tilemapresource.xml metadata request fails and the rectangle is too large for the given detail level #8448Cesium3DTileset.skipLevelOfDetail is now false by default. #8631LEQUALS depth test function instead of LESS. This means that when geometry overlaps, the later geometry will be visible above the earlier, where previously the opposite was true. We believe this is a more sensible default, and makes it easier to render e.g. outlined buildings with glTF. #8646Entity.tileset for loading a 3D Tiles tileset via the Entity API using the new Cesium3DTilesetGraphics class. #8580tileset.uri, tileset.show, and tileset.maximumScreenSpaceError properties to CZML processing for loading 3D Tiles. #8580Color.lerp for linearly interpolating between two RGB colors. #8607CesiumTerrainProvider now supports terrain tiles using a WebMercatorTilingScheme by specifying "projection": "EPSG:3857" in layer.json. It also now supports numbering tiles from the North instead of the South by specifying "scheme": "slippyMap" in layer.json. #8563isNaN, isFinite, null, and undefined in the 3D Tiles styling GLSL backend for point clouds. #8621sizeInMeters to ParticleSystem. #7746isArray function has been deprecated and will be removed in Cesium 1.69. Use the native Array.isArray function instead. #8526Scene.sunColor has been deprecated and will be removed in Cesium 1.69. Use scene.light.color and scene.light.intensity instead. #8493useBrowserRecommendedResolution flag in Viewer and CesiumWidget now defaults to true. This ensures Cesium rendering is fast and smooth by default across all devices. Set it to false to always render at native device resolution instead at the cost of performance on under-powered devices. #8548Cesium now creates a WebGL context with a powerPreference value of high-performance. Some browsers use this setting to enable a second, more powerful, GPU. You can set it back to default, or opt-in to low-power mode, by passing the context option when creating a Viewer or CesiumWidget instance:
var viewer = new Viewer("cesiumContainer", {
contextOptions: {
webgl: {
powerPreference: "default",
},
},
});
Added more customization to Cesium's lighting system. #8493
Light, DirectionalLight, and SunLight classes for creating custom light sources.Scene.light for setting the scene's light source, which defaults to a SunLight.Globe.dynamicAtmosphereLighting for enabling lighting effects on atmosphere and fog, such as day/night transitions. It is true by default but may be set to false if the atmosphere should stay unchanged regardless of the scene's light direction.Globe.dynamicAtmosphereLightingFromSun for using the sun direction instead of the scene's light direction when Globe.dynamicAtmosphereLighting is enabled. See the moonlight example in the Lighting Sandcastle example.Updated SampleData models to glTF 2.0. #7802
Added Globe.showSkirts to support the ability to hide terrain skirts when viewing terrain from below the surface. #8489
Added minificationFilter and magnificationFilter options to Material to control texture filtering. #8473
Added a font cache to improve label performance. #8537
PolylineCollection could result in an instanceIndex is out of range error. #8546RequestScheduler double-counted image requests made via createImageBitmap. #8162Cesium3DTileset in Picking.js. #8532EXT_float_blend being implicitly enabled. #8534PointPrimitiveCollection was rendered in the middle of the screen instead of being clipped. #8542ReferenceProperty now returns undefined when the target entity or property does not exist, instead of throwing. #8544Primitive was being created asynchronously. #8569camera.lookAt with the origin (0, 0, 0) as the target. This could happen when looking at a tileset with the origin as its center. #8571camera.viewBoundingSphere was modifying the offset parameter. #8438BoundingSphere.projectTo2D when the bounding sphere’s center is at the origin. #8482OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions now require a pixelRatio argument before the result argument. The previous function definition has been deprecated since 1.63. #8320Matrix4.getRotation has been renamed to Matrix4.getMatrix3. Matrix4.getRotation has been deprecated since 1.62. #8183createTileMapServiceImageryProvider and createOpenStreetMapImageryProvider have been removed. Instead, pass the same options to new TileMapServiceImageryProvider and new OpenStreetMapImageryProvider respectively. The old functions have been deprecated since 1.62. #8174Globe.backFaceCulling to support viewing terrain from below the surface. #8470GroundPrimitive. #4883OrientedBoundingBox.fromRectangle for rectangles with width greater than 180 degrees. #8475window.devicePixelRatio greater than 1.0. #8351https://sandcastle.cesium.comhttps://cesium.com/learn/cesiumjs/ref-doc/https://cesium.com/downloads/https://cesium.com/downloads/cesiumjs/releases/<CesiumJS Version Number>/Build/Cesium/Cesium.js"type": "module" to package.json to take advantage of native ES6 module support in newer versions of Node.js. This also enables module-based front-end development for tooling that relies on Node.js module resolution.Build/Cesium/Cesium.js and Build/CesiumUnminified/Cesium.js have been upgraded from IIFE to UMD modules that support IIFE, AMD, and commonjs.pixelRatio parameter to OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions. Pass in scene.pixelRatio for dimensions in CSS pixel units or 1.0 for dimensions in native device pixel units. #8237scene.sampleHeightMostDetailed and scene.clampToHeightMostDetailed would not resolve in request render mode. #8281scene.globe.depthTestAgainstTerrain is false, and primitives are under the globe. #8205innerRadii, minimumClock, maximumClock, minimumCone or maximumCone. #8277OrthographicFrustum.getPixelDimensions, OrthographicOffCenterFrustum.getPixelDimensions, PerspectiveFrustum.getPixelDimensions, and PerspectiveOffCenterFrustum.getPixelDimensions now take a pixelRatio argument before the result argument. The previous function definition will no longer work in 1.65. #8237createTileMapServiceImageryProvider and createOpenStreetMapImageryProvider have been deprecated and will be removed in Cesium 1.65. Instead, pass the same options to new TileMapServiceImageryProvider and new OpenStreetMapImageryProvider respectively.Matrix4.getRotation has been deprecated and renamed to Matrix4.getMatrix3. Matrix4.getRotation will be removed in version 1.65.innerRadii, minimumClock, maximumClock, minimumCone, and maximumCone. This affects both EllipsoidGeometry and EllipsoidOutlineGeometry. See the updated Sandcastle example. #5995useBrowserRecommendedResolution flag to Viewer and CesiumWidget. When true, Cesium renders at CSS pixel resolution instead of native device resolution. This replaces the workaround in the 1.61 change list. 8215TileMapResourceImageryProvider and OpenStreetMapImageryProvider classes to improve API consistency: #4812credit parameter to CzmlDataSource, GeoJsonDataSource, KmlDataSource and Model. #8173Matrix3.getRotation to get the rotational component of a matrix with scaling removed. #8182Camera.flyTo flies to the correct location in 2D when the destination crosses the international date line #7909BlendingState.ALPHA_BLEND and BlendingState.ADDITIVE_BLEND. #8202TileCoordinatesImageryProvider #8131quadDetails error from zooming into the map really close. #8011depthFailAppearance resource freeing for Primitive #8044index parameter to PrimitiveCollection.add. #8041viewer.resolutionScale = 1.0 / window.devicePixelRatio. #8082getByName method to DataSourceCollection allowing to retrieve DataSources by their name property from the collectionscene.postProcessStages.fxaa.enabled = true #7875KHR_texture_transform without a sampler defined. #7916viewer.scene.highDynamicRange = true to re-enable. #7966GoogleEarthEnterpriseTerrainProvider. #8109totalScale property to Label which is the total scale of the label taking into account the label's scale and the relative size of the desired font compared to the generated glyph size.PolygonGraphics.hierarchy now converts constant array values to a PolygonHierarchy when set, so code that accesses the value of the property can rely on it always being a PolygonHierarchy.ArcGISTiledElevationTerrainProvider to support LERC encoded terrain from ArcGIS ImageServer. #7940heightReference to box, cylinder, and ellipsoid, and added CZML support for classificationType to corridor, ellipse, polygon, polyline, and rectangle. #7899exportKML function to export Entity instances with Point, Billboard, Model, Label, Polyline and Polygon graphics. #7921scene.highDynamicRange is enabled. #7924Math.factorial to return the correct values. (https://github.com/CesiumGS/cesium/pull/7969)This is an npm-only release to fix a publishing issue.
BingMapsStyle values ROAD_ON_DEMAND and AERIAL_WITH_LABELS_ON_DEMAND. The older versions of these, ROAD and AERIAL_WITH_LABELS, have been deprecated by Bing. #7808checkerboard material to CZML. #7845BingMapsImageryProvider now uses DiscardEmptyTileImagePolicy by default to detect missing tiles as zero-length responses instead of inspecting pixel values. #7810layer.json file.HeightReference of CLAMP_TO_GROUND or RELATIVE_TO_GROUND. This includes when removing a DataSource.Cesium3DTileset.cullRequestsWhileMoving option to ignore requests for tiles that will likely be out-of-view due to the camera's movement when they come back from the server.Cesium3DTileset.cullRequestsWhileMovingMultiplier option to act as a multiplier when used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.Cesium3DTileset.preloadFlightDestinations option to preload tiles at the camera's flight destination while the camera is in flight.Cesium3DTileset.preferLeaves option to prefer loading of leaves. Good for additive refinement point clouds. Set to false by default.Cesium3DTileset.progressiveResolutionHeightFraction option to load tiles at a smaller resolution first. This can help get a quick layer of tiles down while full resolution tiles continue to load.Cesium3DTileset.foveatedScreenSpaceError option to prioritize loading tiles in the center of the screen.Cesium3DTileset.foveatedConeSize option to control the cone size that determines which tiles are deferred for loading. Tiles outside the cone are potentially deferred.Cesium3DTileset.foveatedMinimumScreenSpaceErrorRelaxation option to control the starting screen space error relaxation for tiles outside the foveated cone.Cesium3DTileset.foveatedInterpolationCallback option to control how screen space error threshold is interpolated for tiles outside the foveated cone.Cesium3DTileset.foveatedTimeDelay option to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in.PolylineGlowMaterial called taperPower, that works similar to the existing glowPower parameter, to taper the back of the line away. #7626Cesium3DTileset.preloadWhenHidden tileset option to preload tiles when tileset.show is false. Loads tiles as if the tileset is visible but does not render them. #7774KHR_texture_transform glTF extension. #7549SampledProperty and SampledPositionProperty. #7723heightReference and extrudedHeightReference for geoemtry types that support it.CesiumMath.toSNorm documentation changed to reflect the function's implementation. #7774CesiumMath.normalize to convert a scalar value in an arbitrary range to a scalar in the range [0.0, 1.0]. #7774clampToHeightMostDetailed or sampleHeightMostDetailed would crash if entities were created when the promise resolved. #7690WebMercatorTilingScheme) to be culled unexpectedly in some views. #7702Resource.fetchImage now takes a preferImageBitmap option to use createImageBitmap when supported to move image decode off the main thread. This option defaults to false.Resource.fetchImage behavior is now identical to 1.55 and earlier.
Resource.fetchImage back to return an Image by default, instead of an ImageBitmap when supported. Note that an ImageBitmap cannot be flipped during texture upload. Instead, set flipY : true during fetch to flip it.flipY option in Resource.fetchImage to false. This only has an effect when ImageBitmap is used.Resource.fetchImage now returns an ImageBitmap instead of Image when supported. This allows for decoding images while fetching using createImageBitmap to greatly speed up texture upload and decrease frame drops when loading models with large textures. #7579Cesium3DTileStyle.style now has an empty Object as its default value, instead of undefined. #7567Scene.clampToHeight now takes an optional width argument before the result argument. #7693Resource class, addQueryParameters and addTemplateValues have been removed. Please use setQueryParameters and setTemplateValues instead. #7695Resource.fetchImage now takes an options object. Use resource.fetchImage({ preferBlob: true }) instead of resource.fetchImage(true). The previous function definition will no longer work in 1.57. #7579ScreenSpaceEventHandler.touchHoldDelayMilliseconds. #7286Resource.fetchImage now has a flipY option to vertically flip an image during fetch & decode. It is only valid when ImageBitmapOptions is supported by the browser. #7579backFaceCulling and normalShading options to PointCloudShading. Both options are only applicable for point clouds containing normals. #7399Cesium3DTileStyle.style reacts to updates and represents the current state of the style. #7567BlendFunction.ONE_MINUS_CONSTANT_COLOR. #7624HeadingPitchRoll.pitch being NaN when using .fromQuaternion due to a rounding error for pitches close to +/- 90°. #7654Resource when used with template replacements using numeric keys. #7668Cesium3DTilePointFeature where anchorLineColor used the same color instance instead of cloning the color #7686czm_materialInput.slope is now an angle in radians between 0 and pi/2 (flat to vertical), rather than a projected length 1 to 0 (flat to vertical).czm_materialInput.aspect was added as an angle in radians between 0 and 2pi (east, north, west to south).arcType support for polyline and polygon, which supersedes followSurface. followSurface is still supported for compatibility with existing documents. #7582Resource class and any functionality using it internally.EllipsoidRhumbLines.findIntersectionWithLongitude when longitude was IDL. #7551EXT_texture_webp glTF extension. #7486HeightReference.CLAMP_TO_GROUND are now clamped to both terrain and 3D Tiles. #7434classificationType for GroundPrimitive, CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics is now ClassificationType.BOTH. #7434ModelAnimation.speedup and ModelAnimationCollection.speedup have been removed. Use ModelAnimation.multiplier and ModelAnimationCollection.multiplier respectively instead. #7494Scene.clampToHeight now takes an optional width argument before the result argument. The previous function definition will no longer work in 1.56. #7287PolylineGeometry.followSurface has been superceded by PolylineGeometry.arcType. The previous definition will no longer work in 1.57. Replace followSurface: false with arcType: Cesium.ArcType.NONE and followSurface: true with arcType: Cesium.ArcType.GEODESIC. #7492SimplePolylineGeometry.followSurface has been superceded by SimplePolylineGeometry.arcType. The previous definition will no longer work in 1.57. Replace followSurface: false with arcType: Cesium.ArcType.NONE and followSurface: true with arcType: Cesium.ArcType.GEODESIC. #7492height) and GroundPrimitives on 3D Tiles. #7434classificationType property to PolylineGraphics and GroundPolylinePrimitive which specifies whether a polyline clamped to ground should be clamped to terrain, 3D Tiles, or both. #7437Scene.sampleHeight, Scene.clampToHeight, Scene.sampleHeightMostDetailed, and Scene.clampToHeightMostDetailed. #7287nodeTransformations to rotate a model's wheels based on its velocity. #7361EllipsoidRhumbLine class as a rhumb line counterpart to EllipsoidGeodesic. #7484PolygonGeometry, PolygonOutlineGeometry, PolylineGeometry, GroundPolylineGeometry, and SimplePolylineGeometry. #7492NODE_ENV is specifically set to development.QuantizedMeshTerrainData.interpolateHeight. #7508EXT_texture_webp extension. #7486CESIUM_3D_TILE classification type would render on terrain. #7422scene.globe.cartographicLimitRectangle to undefined would cause a crash. #7477PrimitiveCollection.removeAll to no longer contain removed primitives. #7491GeoJsonDataSource to use polygons and polylines that use rhumb lines. #7492Scene.specularEnvironmentMaps is a url to a KTX file that contains the specular environment map and convoluted mipmaps for image-based lighting of all PBR models in the scene.Scene.sphericalHarmonicCoefficients is an array of 9 Cartesian3 spherical harmonics coefficients for the diffuse irradiance of all PBR models in the scene.specularEnvironmentMaps and sphericalHarmonicCoefficients properties of Model and Cesium3DTileset can be used to override the values from the scene for specific models and tilesets.luminanceAtZenith property of Model and Cesium3DTileset adjusts the luminance of the procedural image-based lighting.highDynamicRange is enabled. #7427highDynamicRange is toggled. #7451TerrainProviders that implement availability must now also implement the loadTileDataAvailability method.ModelAnimation.speedup has been deprecated and renamed to ModelAnimation.multiplier. speedup will be removed in version 1.54. #7393Scene.sampleHeightMostDetailed, an asynchronous version of Scene.sampleHeight that uses the maximum level of detail for 3D Tiles.Scene.clampToHeightMostDetailed, an asynchronous version of Scene.clampToHeight that uses the maximum level of detail for 3D Tiles.Scene.highDynamicRange. #7017Scene.invertClassificationSupported for checking if invert classification is supported.computeLineSegmentLineSegmentIntersection to Intersections2D. #7228cutoutRectangle to ImageryLayer, which allows cutting out rectangular areas in imagery layers to reveal underlying imagery. #7056atmosphereHueShift, atmosphereSaturationShift, and atmosphereBrightnessShift properties to Globe which shift the color of the ground atmosphere to match the hue, saturation, and brightness shifts of the sky atmosphere. #4195lightColor property to Cesium3DTileset, Model, and ModelGraphics to change the intensity of the light used when shading model. #7025imageBasedLightingFactor property to Cesium3DTileset, Model, and ModelGraphics to scale the diffuse and specular image-based lighting contributions to the final color. #7025Transforms.fixedFrameToHeadingPitchRoll, a helper function for extracting a HeadingPitchRoll from a fixed frame transform. #7164Ray.clone. #7174perPositionHeight. #7188pickPosition would return incorrect results when called after sampleHeight or clampToHeight. #7113sampleHeight and clampToHeight would crash if picking a primitive that doesn't write depth. #7120BingMapsGeocoderService. #7143VelocityOrientationProperty. #6641KHR_materials_common lights extension. #7206Clipping planes on tilesets now use the root tile's transform, or the root tile's bounding sphere if a transform is not defined. #7034
This is to make clipping planes' coordinates always relative to the object they're attached to. So if you were positioning the clipping planes as in the example below, this is no longer necessary:
clippingPlanes.modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(
tileset.boundingSphere.center
);
This also fixes several issues with clipping planes not using the correct transform for tilesets with children.
Scene.sampleHeight to get the height of geometry in the scene. May be used to clamp objects to the globe, 3D Tiles, or primitives in the scene.Scene.clampToHeight to clamp a cartesian position to the scene geometry.WEBGL_depth_texture or WEBKIT_WEBGL_depth_texture). Added Scene.sampleHeightSupported and Scene.clampToHeightSupported functions for checking if height sampling is supported.Cesium3DTileset.initialTilesLoaded to indicate that all tiles in the initial view are loaded. #6934cartographicLimitRectangle to Globe. Use this to limit terrain and imagery to a specific Rectangle area. #6987OpenCageGeocoderService, which provides geocoding via OpenCage. #7015Globe.showGroundAtmosphere. 6877
Globe.nightFadeOutDistance and Globe.nightFadeInDistance to configure when ground atmosphere night lighting fades in and out. 6877onStop event to Clock that fires each time stopTime is reached. #7066Resource requests in recent versions of Edge #7085.ClippingPlaneCollection.clone. #6872Globe.pick to return a position in ECEF coordinates regardless of the current scene mode. This will only effect you if you were working around a bug to make Globe.pick work in 2D and Columbus View. Use Globe.pickWorldCoordinates to get the position in world coordinates that correlate to the current scene mode. #6859frameState parameter in evaluate and evaluateColor functions in Expression, StyleExpression, ConditionsExpression and all other places that call the functions. #6890PostProcessStageLibrary.createLensFlarStage. Use PostProcessStageLibrary.createLensFlareStage instead. #6972Scene.fxaa. Use Scene.postProcessStages.fxaa.enabled instead. #6980heightReference to BoxGraphics, CylinderGraphics and EllipsoidGraphics, which can be used to clamp these entity types to terrain. #6932GeocoderViewModel.destinationFound for specifying a function that is called upon a successful geocode. The default behavior is to fly to the destination found by the geocoder. #6915ClippingPlaneCollection.planeAdded and ClippingPlaneCollection.planeRemoved events. planeAdded is raised when a new plane is added to the collection and planeRemoved is raised when a plane is removed. #6875Matrix4.setScale for setting the scale on an affine transformation matrix #6888width and height to Scene.drillPick for specifying a search area. #6922Cesium3DTileset.root for getting the root tile of a tileset. #6944Cesium3DTileset.extras and Cesium3DTile.extras for getting application specific metadata from 3D Tiles. #6974skipLevelOfDetail is false.skipLevelOfDetail is true.getPickRay in 2D. #2480Globe.pick for 2D and Columbus View. #6859ClippingPlaneCollection to be created every frame when used with a model entity. #6872Plane entities so they are better aligned with the globe surface. #6887fromLightSource to false. #6883false on a polyline clamped to the ground. #6912Cesium3DTileset wasn't using the correct tilesetVersion. #6933scene.pick after setting a new terrain provider. #6918drillPick on a polyline clamped to the ground. 6907createGroundPolylineGeometry web worker no longer depends on GroundPolylinePrimitive, making the worker smaller and potentially avoiding a hanging build in some webpack configurations. #6946height) and GroundPrimitives to fail when crossing the international date line. #6951CylinderGeometry when the top radius is not equal to the bottom radius #6863TimeDynamicPointCloud for playback of time-dynamic point cloud data, where each frame is a 3D Tiles Point Cloud tile. #6721CoplanarPolygonGeometry and CoplanarPolygonGeometryOutline for drawing polygons composed of coplanar positions that are not necessarily on the ellipsoid surface. #6769perPositionHeight, including supporting vertical polygons. This also improves KML compatibility. #6791Cartesian3.midpoint to compute the midpoint between two Cartesian3 positions #6836equalsEpsilon methods to OrthographicFrustum, PerspectiveFrustum, OrthographicOffCenterFrustum and PerspectiveOffCenterFrustum.content.url is deprecated to reflect updates to the 3D Tiles spec. Use content.uri instead. Support for content.url will remain for backwards compatibility. #67443DTILES_batch_table_hierarchy extension instead. Support for the deprecated batch table hierarchy will remain for backwards compatibility. #6780PostProcessStageLibrary.createLensFlarStage is deprecated due to misspelling and will be removed in Cesium 1.49. Use PostProcessStageLibrary.createLensFlareStage instead.region bounding volume don't get transformed when the tileset's modelMatrix changes. #6755WebMercatorProjection. #6809PolygonGeometry when using VertexFormat.POSITION_ONLY, perPositionHeight and extrudedHeight [#6790](expect(https://github.com/CesiumGS/cesium/pull/6790)PolygonGeometry and EllipseGeometry tangent and bitangent attributes when a texture rotation is used #6788Viewer is passed the option geocoder: true #6833CallbackProperty. #6815tsd-jsdoc #6767requestRenderMode was enabled. #6812heightReference and extrudedHeightReference properties to CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics. #6717PostProcessStage has a selected property which is an array of primitives used for selectively applying a post-process stage. #6476matrix is [0,0,1,0,0,1,0,0,-1,0,0,0,0,0,0,1].orientation using the Entity API or from within CZML. See #6738 for more details.PolylineGraphics instead of CorridorGraphics for polylines on terrain. #6706clampToGround option for PolylineGraphics (polyline entities).WEBGL_depth_texture or WEBKIT_WEBGL_depth_texture), otherwise clampToGround will be ignored. Use Entity.supportsPolylinesOnTerrain to check for support.GroundPolylinePrimitive and GroundPolylineGeometry.PostProcessStage has a selected property which is an array of primitives used for selectively applying a post-process stage. #6476
PostProcessStageLibrary.createBlackAndWhiteStage and PostProcessStageLibrary.createSilhouetteStage have per-feature support.zIndex with corridor, ellipse, polygon, polyline and rectangle. #6708clampToGround option for polyline. #6706RTC_CENTER property in batched 3D model tilesets to conform to the updated 3D Tiles spec. #6488heightReference and extrudedHeightReference properties to CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics. #6717
height and/or extrudedHeight properties to clamp the geometry to terrain or set the height relative to terrain.Geometry crossing the IDL. Attributes will be barycentrically interpolated. #6644colorMode of random could return the exact same color on successive calls to Color.fromRandom().Iso8601.MAXIMUM_VALUE now formats to a string which can be parsed by fromIso8601.height) and GroundPrimitives. #6393zIndex for ground geometry, including corridor, ellipse, polygon and rectangle entities. #6362ParticleSystem no longer uses forces. #6510Particle no longer uses size, rate, lifeTime, life, minimumLife, maximumLife, minimumWidth, minimumHeight, maximumWidth, and maximumHeight. #6510Scene.copyGlobeDepth. Globe depth will now be copied by default when supported. #6393classificationType for GroundPrimitive, CorridorGraphics, EllipseGraphics, PolygonGraphics and RectangleGraphics is now ClassificationType.TERRAIN. If you wish the geometry to color both terrain and 3D tiles, pass in the option classificationType: Cesium.ClassificationType.BOTH.options argument for Credit #6373. Pass in an html string instead.Scene.fxaa property has been deprecated and will be removed in Cesium 1.47. Use Scene.postProcessStages.fxaa.enabled.height) and GroundPrimitives. #6393
ClassificationType.TERRAIN at this time. Adding a material to a terrain Entity will cause it to behave as if it is ClassificationType.TERRAIN.WEBGL_depth_texture or WEBKIT_WEBGL_depth_texture), so materials on terrain entities and GroundPrimitives are not supported in Internet Explorer.SingleTileImageryProvider.GroundPrimitive.supportsMaterials and Entity.supportsMaterialsforEntitiesOnTerrain, both of which can be used to check if materials on terrain entities and GroundPrimitives is supported. #6393Scene.postProcessStages which is a collection of post-process stages to be run in order.ambientOcclusion property which will apply screen space ambient occlusion to the scene and run before all stages.bloom property which applies a bloom filter to the scene before all other stages but after the ambient occlusion stage.fxaa property which applies Fast Approximate Anti-aliasing (FXAA) to the scene after all other stages.PostProcessStageLibrary which contains several built-in stages that can be added to the collection.PostProcessStageComposite for multi-stage post-processes like depth of field.Post Processing to showcase the different built-in post-process stages.zIndex for ground geometry, including corridor, ellipse, polygon and rectangle entities. #6362Rectangle.equalsEpsilon for comparing the equality of two rectangles #6533ProviderViewModels with no category are displayed in an untitled group in BaseLayerPicker instead of being labeled as 'Other' #6574perPositionHeight and extrudedHeight. #6595createTileMapServiceImageryProvider. #5818ClippingPlaneCollection now uses ClippingPlane objects instead of Plane objects. #6498BingMapsImageryProvider is no longer the default base imagery layer. (Bing imagery itself is still the default, however it is provided through Cesium ion)BingMapsGeocoderService is no longer the default geocoding service.If you wish to continue to use your own Bing API key for imagery and geocoding, you can go back to the old default behavior by constructing the Viewer as follows:
Cesium.BingMapsApi.defaultKey = "yourBingKey";
var viewer = new Cesium.Viewer("cesiumContainer", {
imageryProvider: new Cesium.BingMapsImageryProvider({
url: "https://dev.virtualearth.net",
}),
geocoder: [
new Cesium.CartographicGeocoderService(),
new Cesium.BingMapsGeocoderService(),
],
});
Particle.size, ParticleSystem.rate, ParticleSystem.lifeTime, ParticleSystem.life, ParticleSystem.minimumLife, and ParticleSystem.maximumLife have been renamed to Particle.imageSize, ParticleSystem.emissionRate, ParticleSystem.lifetime, ParticleSystem.particleLife, ParticleSystem.minimumParticleLife, and ParticleSystem.maximumParticleLife. Use of the size, rate, lifeTime, life, minimumLife, and maximumLife parameters is deprecated and will be removed in Cesium 1.46.ParticleSystem.forces array has been switched out for singular function ParticleSystems.updateCallback. Use of the forces parameter is deprecated and will be removed in Cesium 1.46.ParticleSystem will no longer be individual components. ParticleSystem.minimumWidth and ParticleSystem.minimumHeight will now be ParticleSystem.minimumImageSize, ParticleSystem.maximumWidth and ParticleSystem.maximumHeight will now be ParticleSystem.maximumImageSize, and ParticleSystem.width and ParticleSystem.height will now be ParticleSystem.imageSize. Use of the minimumWidth, minimumHeight, maximumWidth, maximumHeight, width, and height parameters is deprecated and will be removed in Cesium 1.46.logarithmicDepthBuffer to Scene. With this option there is typically a single frustum using logarithmic depth rendered. This increases performance by issuing less draw calls to the GPU and helps to avoid artifacts on the connection of two frustums. #58510.1 and 1e10 respectively.IonGeocoderService and made it the default geocoding service for the Geocoder widget.createWorldImagery which provides Bing Maps imagery via a Cesium ion account.PeliasGeocoderService, which provides geocoding via a Pelias server.BaseLayerPicker to group layers by category. ProviderViewModel.category was also added to support this feature.Math.log2 to compute the base 2 logarithm of a number.GeocodeType enum and use it as an optional parameter to all GeocoderService instances to differentiate between autocomplete and search requests.initWebAssemblyModule function to TaskProcessor to load a Web Assembly module in a web worker. #6420supportsWebAssembly function to FeatureDetection to check if a browser supports loading Web Assembly modules. #6420MapboxImageryProvider performance by 300% via tiles.mapbox.com subdomain switching. #6426sampleTerrain from node.js to enable offline terrain samplingParticleSystem class constructor. When defined the variables override startColor and endColor and startScale and endScale. #6429TimeIntervalCollection.removeInterval. #6418.GroundPrimitives and ClassificationPrimitives will become ready when show is false. #6428TimeInterval so now it throws if fromIso8601 is given an ISO 8601 string with improper formatting. #6164New in X.X which will include all new Sandcastle demos added for the current release. #6384DataSourceCollection. #6316GeometryVisualizer now requires primitive and groundPrimitive parameters. #6316Resource instance, all additional parameters that are part of the Resource class have been removed. This generally includes proxy, headers and query parameters. #6368loadArrayBuffer, loadBlob, loadImage, loadJson, loadJsonp, loadText, loadXML and loadWithXhr have been removed. Please use the equivalent fetch functions on the Resource class. #6368ClippingPlaneCollection is now supported in Internet Explorer, so ClippingPlaneCollection.isSupported has been deprecated and will be removed in Cesium 1.45.ClippingPlaneCollection should now be used with ClippingPlane objects instead of Plane. Use of Plane objects has been deprecated and will be removed in Cesium 1.45.Credit now takes an html and showOnScreen parameters instead of an options object. Use of the options parameter is deprecated and will be removed in Cesium 1.46.Credit.text, Credit.imageUrl and Credit.link properties have all been deprecated and will be removed in Cesium 1.46. Use Credit.html to retrieve the credit content.Credit.hasImage and Credit.hasLink functions have been deprecated and will be removed in Cesium 1.46.New in X.X which will include all new Sandcastle demos added for the current release. #6384dequantizeInShader option parameter to Model and Model.fromGltf to specify if Draco compressed glTF assets should be dequantized on the GPU.DataSourceCollection. #6316
DataSource will render in front of all ground geometry from another DataSource in the same collection with a lower index.DataSourceCollection.raise, DataSourceCollection.lower, DataSourceCollection.raiseToTop and DataSourceCollection.lowerToBottom functions to change the ordering of a DataSource in the collection.ClippingPlaneCollection updates #6201:
ClippingPlane object to be used with ClippingPlaneCollection.Credit has been modified to take an HTML string as the credit content. #6331WebMapServiceImageryProvider so it can take an srs or crs string to pass to the resource query parameters based on the WMS version. #6223sourceType specifies the type of data source if the URL doesn't have a known file extension.flyTo=false optionally disables the automatic flyTo after loading the data source.alphaCutoff in glTF models. #6346BLEND enabled. #6371invertClassification. #6349globe.show is false. #6374GeometryUpdater.perInstanceColorAppearanceType and GeometryUpdater.materialAppearanceType. #6239GeometryVisualizer no longer uses a type parameter. #6239GeometryVisualizer no longer displays polylines. Use PolylineVisualizer instead. #6239CesiumIon object has been completely refactored and renamed to Ion.assets.agi.com are deprecated and will be available until September 1, 2018. To continue using them, access them via Cesium ionResource class, addQueryParameters and addTemplateValues have been deprecated and will be removed in Cesium 1.45. Please use setQueryParameters and setTemplateValues instead.Ion, IonResource, and IonImageryProvider objects for loading data hosted on Cesium ion.createWorldTerrain helper function for easily constructing the new Cesium World Terrain.CesiumTerrainProvider, createTileMapServiceImageryProvider and Cesium3DTileset #6204Cesium.Math.cbrt. #6222PolylineVisualizer for displaying polyline entities #6239Resource class #6205
put, patch, delete, options and head methods, so it can be used for all XHR requests.preserveQueryParameters parameter to getDerivedResource, to allow us to append query parameters instead of always replacing them.setQueryParameters and appendQueryParameters to allow for better handling of query strings.CesiumViewer demo application #6198Globe.tilesLoaded getter property to determine if all terrain and imagery is loaded. #6194classificationType property to entities which specifies whether an entity on the ground, like a polygon or rectangle, should be clamped to terrain, 3D Tiles, or both. #6195options.ellipsoid to pass the ellipsoid to KmlDataSource constructors / loaders. #6176CESIUM_BASE_URL wouldn't work without a trailing /. #6225AxisAlignedBoundingBox did not copy over center value when cloning an undefined result. #6183Resource.fetch when called with no arguments #6206Resource.clone to clone the Request object, so resource can be used in parallel. #6208Material so it can now take a Resource object as an image. #6199Cesium.Math class. #6233_This is an npm-only release to fix an issue with using Cesium in Node.js.__
CesiumIon utility class for working with the Cesium ion beta API. #6136Cesium3DTileset, KMLDataSource, CZMLDataSource, GeoJsonDataSource, Model, and Billboard.shouldAnimate option to true when creating the Viewer to enable animation.Resource instance, all additional parameters that are part of the Resource class have been deprecated and will be removed in Cesium 1.44. This generally includes proxy, headers and query parameters.loadArrayBuffer, loadBlob, loadImage, loadJson, loadJsonp, loadText, loadXML and loadWithXhr have been deprecated and will be removed in Cesium 1.44. Please use the equivalent fetch functions on the Resource class.Cesium3DTileStyle has expanded to include styling point features. See the styling specification for details.Cesium3DTileFeature can modify color and show properties for polygon, polyline, and geometry features.Cesium3DTilePointFeature can modify the styling options for a point feature.Scene.requestRenderMode enables a mode which will only request new render frames on changes to the scene, or when the simulation time change exceeds scene.maximumRenderTimeChange.Scene.requestRender will explicitly request a new render frame when in request render mode.Scene.preUpdate and Scene.postUpdate events that are raised before and after the scene updates respectively. The scene is always updated before executing a potential render. Continue to listen to Scene.preRender and Scene.postRender events for when the scene renders a frame.CreditDisplay.update, which updates the credit display before a new frame is rendered.Globe.imageryLayersUpdatedEvent, which is raised when an imagery layer is added, shown, hidden, moved, or removed on the globe.Cesium3DTileset.classificationType to specify if a tileset classifies terrain, another 3D Tiles tileset, or both. This only applies to vector, geometry and batched 3D model tilesets. The limitations on the glTF contained in the b3dm tile are:
POSITION and _BATCHID semantics are required.CESIUM_RTC and WEB3D_quantized_attributes.Viewer.zoomTo and Viewer.flyTo to take a Cesium3DTileset as a target. #6104shouldAnimate option to the Viewer constructor to indicate if the clock should begin animating on startup. #6154Cesium3DTileset.ellipsoid determining the size and shape of the globe. This can be set at construction and defaults to a WGS84 ellipsoid.Plane.projectPointOntoPlane for projecting a Cartesian3 position onto a Plane. #6092Cartesian3.projectVector for projecting one vector to another. #6093Cesium3DTileset.tileFailed event that will be raised when a tile fails to load. The object passed to the event listener will have a url and message property. If there are no event listeners, error messages will be logged to the console. #6088AttributeCompression.zigZagDeltaDecode which will decode delta and ZigZag encoded buffers in place.pack and unpack functions to OrientedBoundingBox for packing to and unpacking from a flat buffer.tileset.colorBlendMode is MIX or REPLACE. #5874ClippingPlaneCollection.isSupported function for checking if rendering with clipping planes is supported.#6084Cartographic.toCartesian to convert from Cartographic to Cartesian3. #6163BoundingSphere.volume for computing the volume of a BoundingSphere. #6069Camera.move* and Camera.look* functions in 2D mode. #5884Camera.moveStart and Camera.moveEnd events not being raised when camera is close to the ground. #4753OrientedBoundingBox documentation. #6147https://cesiumjs.org and https://cesium.com.text, imageUrl, and link parameters from Credit, which were deprecated in Cesium 1.40. Use options.text, options.imageUrl, and options.link instead.clippingPlanes property to ModelGraphics, Model, Cesium3DTileset, and Globe, which specifies a ClippingPlaneCollection to selectively disable rendering.PlaneGeometry, PlaneOutlineGeometry, PlaneGeometryUpdater, PlaneOutlineGeometryUpdater, PlaneGraphics, and Entity.plane to visualize planes.Plane.transformPlane to apply a transformation to a plane.Globe.enableLighting was false. #6042invertClassification was enabled, the invert color had an alpha less than 1.0, and the window was resized. #6046text, imageUrl and link parameters from Credit have been deprecated and will be removed in Cesium 1.41. Use options.text, options.imageUrl and options.link instead.Globe.material to apply materials to the globe/terrain for shading such as height- or slope-based color ramps. See the new Sandcastle example. #5919polyline.depthFailMaterial, label.scaleByDistance, distanceDisplayCondition, and disableDepthTestDistance. #5986xsi namespace declarations. #6003clampAnimations parameter to Model and Entity.model. Setting this to false allows different length animations to loop asynchronously over the duration of the longest animation.Invalid asm.js: Invalid member of stdlib console error by recompiling crunch.js with latest emscripten toolchain. #5847file: scheme compatibility to joinUrls. #5989@experimental tag to the documentation. A small subset of the Cesium API tagged as such are subject to breaking changes without deprecation. See the Coding Guide for further explanation. #6010Cesium.Label.enableRightToLeftDetection = true at the start of your application. #5771xsi namespace declarations. #5860ImageryLayer that allow for adjusting the texture sampler used for up and down-sampling of imagery tiles, namely minificationFilter and magnificationFilter with possible values LINEAR (the default) and NEAREST defined in TextureMinificationFilter and TextureMagnificationFilter. #5846Fog.minimumBrightness to affect how bright the fog will be when in complete darkness. #5934parentUrl property in CesiumTerrainProvider to allow for compositing of tilesets. #5864invertClassification and invertClassificationColor to Scene. When invertClassification is true, any 3D Tiles geometry that is not classified by a ClassificationPrimitive or GroundPrimitive will have its color multiplied by invertClassificationColor. #5836customTags property to the UrlTemplateImageryProvider to allow custom keywords in the template URL. #5696eyeSeparation and focalLength properties to Scene to configure VR settings. #5917Scene/CullingVolume has been removed. Use Core/CullingVolume.Scene/OrthographicFrustum has been removed. Use Core/OrthographicFrustum.Scene/OrthographicOffCenterFrustum has been removed. Use Core/OrthographicOffCenterFrustum.Scene/PerspectiveFrustum has been removed. Use Core/PerspectiveFrustum.Scene/PerspectiveOffCenterFrustum has been removed. Use Core/PerspectiveOffCenterFrustum.orientation as the velocity vector of an entity, using velocityReference syntax. #5807velocityReference within an interval. #5738ModelAnimationCollection by its index. #5815ModelAnimationCollection that caused adding an animation by its name to throw an error. #5815PolylineCollection preventing the display of more than 16K points in a single collection. #5538buildApps now creates a built version of Sandcastle which uses the built version of Cesium for better performance.skipLevelOfDetail optimization is off. #5869options.clock when creating a new Viewer instance is removed, pass options.clockViewModel instead.GoogleEarthImageryProvider, use GoogleEarthEnterpriseMapsProvider instead.throttleRequest parameter from TerrainProvider.requestTileGeometry and inherited terrain providers. It is replaced with an optional Request object. Set the request's throttle property to true to throttle requests.options.url parameter of loadWithXhr and for the url parameter of loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadXML, loadImage, loadCRN, loadKTX, and loadCubeMap. Instead url must be a string.classificationType to ClassificationPrimitive and GroundPrimitive to choose whether terrain, 3D Tiles, or both are classified. #5770replaceState bug that was causing the CesiumViewer demo application to crash in Safari and iOS. #5691Entity id type to be String in EntityCollection and CompositeEntityCollection #5791Model and BillboardCollection would throw an error if the globe is undefined. #5638Model glTF cache loses reference to the model's buffer data. #5720disableDepthTestDistance. #5501 #5331 #5621CANVAS_DARK, CANVAS_LIGHT, and CANVAS_GRAY. #5737Cesium3DTileset.loadJson to support overriding the default tileset loading behavior. #5685KHR_materials_common extension. #57733D Tiles Interactivity Sandcastle demo. #5703Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result) was removed. Use Quaternion.fromHeadingPitchRoll(hpr, result) instead where hpr is a HeadingPitchRoll.Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result) was removed. Use Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) instead where fixedFrameTransform is a a 4x4 transformation matrix (see Transforms.localFrameToFixedFrameGenerator).Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result) was removed. Use Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) instead where fixedFrameTransform is a a 4x4 transformation matrix (see Transforms.localFrameToFixedFrameGenerator).color, show, and pointSize properties of Cesium3DTileStyle are no longer initialized with default values.Scene/CullingVolume is deprecated and will be removed in 1.38. Use Core/CullingVolume.Scene/OrthographicFrustum is deprecated and will be removed in 1.38. Use Core/OrthographicFrustum.Scene/OrthographicOffCenterFrustum is deprecated and will be removed in 1.38. Use Core/OrthographicOffCenterFrustum.Scene/PerspectiveFrustum is deprecated and will be removed in 1.38. Use Core/PerspectiveFrustum.Scene/PerspectiveOffCenterFrustum is deprecated and will be removed in 1.38. Use Core/PerspectiveOffCenterFrustum.ClassificationPrimitive which defines a volume and draws the intersection of the volume and terrain or 3D Tiles. #5625tileLoad event to Cesium3DTileset. #5628HeightReference.CLAMP_TO_GROUND and no position #5648width and height to scene.pick. #5602Viewer.flyTo not respecting zoom limits, and resetting minimumZoomDistance if the camera zoomed past the minimumZoomDistance. 5573Cesium3DTilesInspector that selects the first tileset hovered over if no tilest is specified. #5139Entity.computeModelMatrix which returns the model matrix representing the entity's transformation. #5584color, show, or pointSize with a string or object literal. show may also take a boolean and pointSize may take a number. #5412KmlDataSource.name to specify a name for the datasource #5660.GeoJsonDataSource.name to specify a name for the datasource #5653Cesium3DTilesInspectorViewModel and removing a tileset #5607Billboard, Label and PointPrimitive constructors to clone NearFarScale parameters #5654FrustumGeometry and FrustumOutlineGeometry. #5649options parameter to the constructors of PerspectiveFrustum, PerspectiveOffCenterFrustum, OrthographicFrustum, and OrthographicOffCenterFrustum to set properties. #5649OrthographicFrustum. #5586JulianDate.fromIso8601 will default to midnight UTC if no time is provided to match the Javascript Date specification. You must specify a local time of midnight to achieve the old behavior.GoogleEarthImageryProvider has been deprecated and will be removed in Cesium 1.37, use GoogleEarthEnterpriseMapsProvider instead.throttleRequest parameter for TerrainProvider.requestTileGeometry, CesiumTerrainProvider.requestTileGeometry, VRTheWorldTerrainProvider.requestTileGeometry, and EllipsoidTerrainProvider.requestTileGeometry is deprecated and will be replaced with an optional Request object. The throttleRequests parameter will be removed in 1.37. Instead set the request's throttle property to true to throttle requests.options.url parameter of loadWithXhr and for the url parameter of loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadXML, loadImage, loadCRN, loadKTX, and loadCubeMap is deprecated. This will be removed in 1.37, instead url must be a string.Cesium3DTilesetCesium3DTileStyle, StyleExpression, Expression, and ConditionsExpressionCesium3DTileCesium3DTileContentCesium3DTileFeatureCesium3DTilesInspector, Cesium3DTilesInspectorViewModel, and viewerCesium3DTilesInspectorMixinCesium3DTileColorBlendModeParticleSystem, Particle, ParticleBurst, BoxEmitter, CircleEmitter, ConeEmitter, ParticleEmitter, and SphereEmitter, and the new Sandcastle examples: Particle System and Particle System Fireworks. #5212options.clock, options.times and options.dimensions to WebMapTileServiceImageryProvider in order to handle time dynamic and static values for dimensions.options.request parameter to loadWithXhr and a request parameter to loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadJsonp, loadXML, loadImageFromTypedArray, loadImage, loadCRN, and loadKTX.CzmlDataSource and KmlDataSource load functions now take an optional query object, which will append query parameters to all network requests. #5419, #5434fromIso8601, fromIso8601DateArray, and fromIso8601DurationArray to TimeIntervalCollection for handling various ways groups of intervals can be specified in ISO8601 format.fromJulianDateArray to TimeIntervalCollection for generating intervals from a list of dates.Cesium.Math.randomBetween.defaultValue to check for both undefined and null. #5551throttleRequestByServer function has been removed. Instead pass a Request object with throttleByServer set to true to any of following load functions: loadWithXhr, loadArrayBuffer, loadBlob, loadImageViaBlob, loadText, loadJson, loadJsonp, loadXML, loadImageFromTypedArray, loadImage, loadCRN, and loadKTX.options.clock when creating a new Viewer instance has been deprecated and will be removed in Cesium 1.37, pass options.clockViewModel instead.PolylineCollection would ignore the far distance when updating the distance display condition. #5283Camera.pickEllipsoid with a canvas of size 0.BoundingSphere.fromOrientedBoundingBox. #5334PolylineCollection model matrix was updated. #5327EllipsoidGeometry and EllipsoidOutlineGeometry were given floating point values when expecting integers. #5260sizeInMeters set to true would move upwards when zooming out. #5373SampledProperty.setInterpolationOptions does not ignore undefined options. #3575basePath option to Cesium.Model.fromGltf. #5320OrthographicFrustum. Use OrthographicOffCenterFrustum instead. #5109GoogleEarthEnterpriseTerrainProvider and GoogleEarthEnterpriseImageryProvider to read data from Google Earth Enterprise servers. #5189.PolylineDash Material type.PolylineDashMaterialProperty to the Entity API.polylineDash property .disableDepthTestDistance to billboards, points and labels. This sets the distance to the camera where the depth test will be disabled. Setting it to zero (the default) will always enable the depth test. Setting it to Number.POSITVE_INFINITY will never enabled the depth test. Also added scene.minimumDisableDepthTestDistance to change the default value from zero. #5166depthFailMaterial property to line entities, which is the material used to render the line when it fails the depth test. #5160MapboxImageryProvider default token error message. #5191Matrix3.fromHeadingPitchRoll. #5195Scene.pickPosition now caches results per frame to increase performance. #5117left, right, bottom, and top properties of OrthographicFrustum are deprecated and will be removed in 1.33. Use OrthographicOffCenterFrustum instead.ArcGisImageServerTerrainProvider.properties in an Entity created by GeoJsonDataSource are now instances of ConstantProperty instead of raw values.projectionPicker to true in the options when creating a Viewer to add a widget that will switch projections. #5021switchToOrthographicFrustum or switchToPerspectiveFrustum on Camera to change projections.Camera.flyTo and Camera.flyToBoundingSphere: flyOverLongitude, flyOverLongitudeWeight, and pitchAdjustHeight. #5070Viewer.trackedEntityChanged, which is raised when the value of viewer.trackedEntity changes. #5060Camera.DEFAULT_OFFSET for default view of objects with bounding spheres. #4936TileBoundingBox that caused the terrain to disappear in certain places 4032PinBuilder where inset images could have low-alpha fringes against an opaque background. #5099GroundPrimitive rendering in 2D and Columbus View. #5078ModelAnimationCache causing different animations to reference the same animation. #5064ConstantProperty now provides valueOf and toString methods that return the constant value.Quaternion.fromHeadingPitchRoll that made it erroneously throw an exception when passed individual angles in an unminified / debug build.CesiumInspectorViewModel when using the NW / NE / SW / SE / Parent buttons to navigate to a terrain tile that is not yet loaded.QuadtreePrimitive now uses frameState.afterRender to fire tileLoadProgressEvent #3450Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result) will be removed in 1.33. Use Quaternion.fromHeadingPitchRoll(hpr, result) instead where hpr is a HeadingPitchRoll. #4896Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result) will be removed in 1.33. Use Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) instead where fixedFrameTransform is a a 4x4 transformation matrix (see Transforms.localFrameToFixedFrameGenerator). #4896Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result) will be removed in 1.33. Use Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result) instead where fixedFrameTransform is a a 4x4 transformation matrix (see Transforms.localFrameToFixedFrameGenerator). #4896ArcGisImageServerTerrainProvider will be removed in 1.32 due to missing TIFF support in web browsers. #4981Color.FUCHSIA from Color.FUSCHIA. #4977MIDDLE_DOUBLE_CLICK and RIGHT_DOUBLE_CLICK from ScreenSpaceEventType have been removed. #5052GeometryPipeline.computeBinormalAndTangent. Use GeometryPipeline.computeTangentAndBitangent instead. #5053url and key properties from GeocoderViewModel. #5056BingMapsGeocoderServices now requires options.scene. #5056loadKTX, to load KTX textures, and loadCRN to load crunch compressed textures.PixelFormat and WebGLConstants enums from WebGL extensions WEBGL_compressed_s3tc, WEBGL_compressed_texture_pvrtc, and WEBGL_compressed_texture_etc1.CompressedTextureBuffer.Scene.pickPosition in Columbus view and 2D. #4990Scene.pickTranslucentDepth is true. #4979GroundPrimitives on hardware without the EXT_frag_depth extension; however, this could cause artifacts for certain viewing angles. #4930Transforms.localFrameToFixedFrameGenerator to generate a function that computes a 4x4 transformation matrix from a local reference frame to fixed reference frame. #4896Label.scaleByDistance to control minimum/maximum label size based on distance from the camera. #5019DebugCameraPrimitive to draw multifrustum planes. The attribute debugShowFrustumPlanes of Scene and frustumPlanes of CesiumInspector toggle this. #4932RectangleGeometry by skipping unnecessary logic in the code. #4948VertexArray attributes not being set correctly. #4995Viewer.selectedEntityChanged, which is raised when the value of viewer.selectedEntity changes. #5043url and key will be removed from GeocoderViewModel in 1.31. These properties will be available on geocoder services that support them, like BingMapsGeocoderService.GeometryPipeline.computeBinormalAndTangent will be removed in 1.31. Use GeometryPipeline.createTangentAndBitangent instead. #4856MIDDLE_DOUBLE_CLICK and RIGHT_DOUBLE_CLICK from ScreenSpaceEventType have been deprecated and will be removed in 1.31. #4910heading, pitch, roll parameters from Transform.headingPitchRollToFixedFrame and Transform.headingPitchRollQuaternion. Pass a HeadingPitchRoll object instead. #4843binormal has been renamed to bitangent for Geometry and VertexFormat. #4856CesiumInspectorViewModel properties were removed or changed from variables to functions. #4857ShadowMap constructor has been made private. #4010sampleTerrainMostDetailed to sample the height of an array of positions using the best available terrain data at each point. This requires a TerrainProvider with the availability property.blendOption property to BillboardCollection, LabelCollection, and PointPrimitiveCollection. The default is BlendOption.OPAQUE_AND_TRANSLUCENT; however, if all billboards, labels, or points are either completely opaque or completely translucent, blendOption can be changed to BlendOption.OPAQUE or BlendOption.TRANSLUCENT, respectively, to increase performance by up to 2x.GeocoderService, an interface for geocoders, and BingMapsGeocoderService and CartographicGeocoderService implementations. #4723ImageryLayer with a splitter to allow layers to only display to the left or right of a splitter. See ImageryLayer.splitDirection, Scene.imagerySplitPosition, and the Sandcastle example.GroundPrimitives where rendering incorrectly or disappearing at different zoom levels. #4161, #4326TerrainProvider now optionally exposes an availability property that can be used to query the terrain level that is available at a location or in a rectangle. Currently only CesiumTerrainProvider exposes this property.Geocoder autocomplete drop down visibility in Firefox. #4916Rectangle.fromRadians.perInstanceAttribute of DebugAppearance has been made optional and defaults to false.debugShowFrustums is enabled with OIT. #4864npm run test-webgl-stub.Model with a color/translucency. Added color, colorBlendMode, and colorBlendAmount properties to Model, ModelGraphics, and CZML. Also added ColorBlendMode enum. #4547Model with a silhouette. Added silhouetteColor and silhouetteSize properties to Model, ModelGraphics, and CZML. #4314Label properties showBackground, backgroundColor, and backgroundPadding to the primitive, Entity, and CZML layers.\n) in Cesium Labels and CZML. [#2402]VerticalOrigin.BASELINE. Previously, VerticalOrigin.BOTTOM would sometimes align to the baseline depending on the contents of a label.
(https://github.com/CesiumGS/cesium/issues/2402)RectangleGeometry. #2737globe.getHeight incorrectly returned undefined. #3411GroundPrimitive to render incorrectly on systems without the WEBGL_depth_texture extension. #4747bindShapeMatrix. #4722Rectangle.union to correctly account for rectangles that cross the IDL. #4732result properties when its properties are undefined. #4029divideComponents function to Cartesian2, Cartesian3, and Cartesian4. #4750WebGLConstants enum. Previously, this was part of the private Renderer API. #4731Billboard, Label, and PointPrimitive visual quality. #4675
LESS to LEQUAL, allowing label glyphs of equal depths to overlap.TextureAtlas.borderWidthInPixels has always been applied to the upper and right edges of each internal texture, but is now also applied to the bottom and left edges of the entire TextureAtlas, guaranteeing borders on all sides regardless of position within the atlas.Cartographic.fromCartesian when the cartesian is not on the ellipsoid surface. #4611Transforms.headingPitchRollToFixedFrame and Transforms.headingPitchRollQuaternion have been deprecated and will be removed in 1.30. Pass the new HeadingPitchRoll object instead. #4498scene parameter for creating BillboardVisualizer, LabelVisualizer, and PointVisualizer has been removed. Instead, pass an instance of EntityCluster. #4514KmlDataSource and GeoJsonDataSource were not honoring the clampToGround option for billboards and labels and was instead always clamping, reducing performance in cases when it was unneeded. #4459KmlDataSource features to respect timespan and timestamp properties of its parents (e.g. Folders or NetworkLinks). #4041KmlDataSource bug where features had duplicate IDs and only one was drawn. #3941GeoJsonDataSource now treats null crs values as a no-op instead of failing to load. #4456GeoJsonDataSource now gracefully handles missing style icons instead of failing to load. #4452HeadingPitchRoll #4047
HeadingPitchRoll.fromQuaternion function for retrieving heading-pitch-roll angles from a quaternion.HeadingPitchRoll.fromDegrees function that returns a new HeadingPitchRoll instance from angles given in degrees.HeadingPitchRoll.clone function to duplicate HeadingPitchRoll instance.HeadingPitchRoll.equals and HeadingPitchRoll.equalsEpsilon functions for comparing two instances.Matrix3.fromHeadingPitchRoll Computes a 3x3 rotation matrix from the provided headingPitchRoll.BoundingSphere computation for Primitive instances with a modelMatrix. #4428@2x.png, via the MapboxImageryProvider format option. #4453.rectangle option. https://github.com/CesiumGS/cesium/issues/4377distanceDisplayCondition properties. #4403blendFuncSeparate parameters were loaded in the wrong order. #4435RectangleGeometry rotation when the rectangle is close to the international date line #3874clusterBillboards, clusterLabels, and cluserPoints properties to EntityCluster to selectively cluster screen space entities.Transforms.northUpEastToFixedFrame to compute a 4x4 local transformation matrix from a reference frame with a north-west-up axes.Geocoder usability by selecting text on click #4464Rectangle.simpleIntersection which is an optimized version of Rectangle.intersection for more constrained input. #4339scene parameter for creating BillboardVisualizer, LabelVisualizer, and PointVisualizer has been deprecated and will be removed in 1.28. Instead, pass an instance of EntityCluster.castShadows and receiveShadows properties from Model, Primitive, and Globe. Instead, use shadows with the ShadowMode enum, e.g. model.shadows = ShadowMode.ENABLED.Viewer.terrainShadows now uses the ShadowMode enum instead of a Boolean, e.g. viewer.terrainShadows = ShadowMode.RECEIVE_ONLY.Billboard, Label and Point entities. #4240DistanceDisplayConditions to all primitives to determine the range interval from the camera for when it will be visible.defaultGamma property of your BingMapsImageryProvider instance to 1.3.HeightmapTerrainData with an encoding in which actual heights were equal to the minimum representable height.AttributeCompression.compressTextureCoordinates and decompressTextureCoordinates that could cause a small inaccuracy in the encoded texture coordinates.TrustedServer collection that controls which servers should have withCredential set to true on XHR Requests.backgroundColor and borderWidth properties to writeTextToCanvas.CesiumMath.clampToLatitudeRange. A convenience function to clamp a passed radian angle to valid Latitudes.DebugCameraPrimitive to visualize the view frustum of a camera.KmlDataSource unsupportedNodeEvent listeners have changed to allow better handling of unsupported KML Features.verticalOrigin set to CENTER by default instead of BOTTOM.castShadows and receiveShadows properties from Model, Primitive, and Globe. They will be removed in 1.26. Use shadows instead with the ShadowMode enum, e.g. model.shadows = ShadowMode.ENABLED.Viewer.terrainShadows now uses the ShadowMode enum instead of a Boolean, e.g. viewer.terrainShadows = ShadowMode.RECEIVE_ONLY. Boolean support will be removed in 1.26.shadows property to the entity API for Box, Corridor, Cylinder, Ellipse, Ellipsoid, Polygon, Polyline, PoylineVolume, Rectangle, and Wall. #4005Camera.cancelFlight to cancel the existing camera flight if it exists.KmlDataSource defaulting KML Feature node to hidden unless all ancestors are visible. This better matches the KML specification.relativeToGround and clampToGround.GeocoderViewModel.keepExpanded which when set to true will always keep the Geocoder in its expanded state.INT and UNSIGNED_INT in ComponentDatatype.ComponentDatatype.fromName for getting a ComponentDatatype from its name.BillboardGraphics.alignedAxis as the velocity vector of an entity, using velocityReference syntax.urlSchemeZeroPadding property to UrlTemplateImageryProvider to allow the numeric parts of a URL, such as {x}, to be padded with zeros to make them a fixed width.VelocityVectorProperty is now optional.rangeMax parameter to Math.toSNorm and Math.fromSNorm. #4121MapQuest OpenStreetMap from the list of demo base layers since direct tile access has been discontinued. See the MapQuest Developer Blog for details.GroundPrimitive.initializeTerrainHeights() must be called and have the returned promise resolve before a GroundPrimitive can be added synchronously.heightReference property to point, billboard and model entities.GroundPrimitive if its material is a ColorMaterialProperty instance and it doesn't have a height or extrudedHeight. Entities with any other type of material are not clamped to terrain.KMLDataSourcealtitudeMode.clampToGround property. When true, clamps Polygon, LineString and LinearRing features to the ground if their altitudeMode is clampToGround. For this case, lines use a corridor instead of a polyline.GeoJsonDataSourceclampToGround property. When true, clamps Polygon and LineString features to the ground. For this case, lines use a corridor instead of a polyline.Box, Corridor and Cylinder. Added new CZML properties:
Billboard: width, height, heightReference, scaleByDistance, translucencyByDistance, pixelOffsetScaleByDistance, imageSubRegionLabel: heightReference, translucencyByDistance, pixelOffsetScaleByDistanceModel: heightReference, maximumScalePoint: heightReference, scaleByDistance, translucencyByDistanceEllipsoid: subdivisions, stackPartitions, slicePartitionsrotatable2D property to to Scene, CesiumWidget and Viewer to enable map rotation in 2D mode. #3897Camera.setView and Camera.flyTo now use the orientation.heading parameter in 2D if the map is rotatable.Camera.changed event that will fire whenever the camera has changed more than Camera.percentageChanged. percentageChanged is in the range [0, 1].GroundPrimitive performance.unsupportedNodeEvent to KmlDataSource that is fired whenever an unsupported node is encountered.Clock now keeps its configuration settings self-consistent. Previously, this was done by AnimationViewModel and could become inconsistent in certain cases. #4007IntersectionTests.rayTriangleParametric.packArray and unpackArray functions to Cartesian2, Cartesian3, and Cartesian4.KmlDataSource now requires options.camera and options.canvas.Viewer.shadows and Viewer.terrainShadows. Both are off by default.Viewer.shadowMap and Scene.shadowMap for accessing the scene's shadow map.castShadows and receiveShadows properties to Model and Entity.model, and options to the Model constructor and Model.fromGltf.castShadows and receiveShadows properties to Primitive, and options to the Primitive constructor.castShadows and receiveShadows properties to Globe.heightReference to models so they can be drawn on terrain.Globe.enableLighting is true. 3439Url tag. #3895.VelocityVectorProperty so billboard's aligned axis can follow the velocity vector. #3908terrainProviderChanged event to Scene and GlobeSkyAtmosphere. See the new Sandcastle example: Atmosphere Color. #3439Billboard.computeScreenSpacePosition returning the wrong y coordinate. #3920Matrix4.fromCamera was taking eye/target instead of position/direction. #3927Scene.nearToFarDistance2D that determines the size of each frustum of the multifrustum in 2D.Matrix4.computeView.CullingVolume.fromBoundingSphere.debugShowShadowVolume to GroundPrimitive.ImageryMaterialProperty.alpha. Use ImageryMaterialProperty.color.alpha instead.OpenStreetMapImageryProvider. Use createOpenStreetMapImageryProvider instead.PolygonGraphics.closeTop, PolygonGraphics.closeBottom, and PolygonGeometry options for creating an extruded polygon without a top or bottom. #3879CzmlDataSource #3860Camera.flyTo would not work with a rectangle in 2D. #3688ArcGisMapServerImageryProvider to connect to a MapServer specifying the Web Mercator projection and a fullExtent bigger than the valid extent of the projection. #3854TileMapServiceImageryProvider. Use createTileMapServiceImageryProvider instead.GroundPrimitive.geometryInstance. Use GroundPrimitive.geometryInstances instead.definedNotNull. Use defined instead.ImageryMaterialProperty.alpha. It will be removed in 1.21. Use ImageryMaterialProperty.color.alpha instead.NetworkLink to not append a ? if there isn't a query string.styleUrl references within a StyleMap.GeoJsonDataSource now handles CRS urn:ogc:def:crs:EPSG::4326TimeIntervalCollection.removeInterval bug that resulted in too many intervals being removed.GroundPrimitive throws a DeveloperError when passed an unsupported geometry type instead of crashing.GroundPrimitive volume was being clipped by the far plane. #3706Camera.computeViewRectangle was incorrect when crossing the international date line. #3717Rectangle result parameter to Camera.computeViewRectangle.EntityCollection.collectionChanged. #3739Entity with a path without ever actually rendering it. #3738Color.fromCssColorString from reusing the input result alpha value in some cases.PolygonGeometry now changes the input Cartesian3 values of options.positions so that they are on the ellipsoid surface. This only affects polygons created synchronously with options.perPositionHeight = false when the positions have a non-zero height and the same positions are used for multiple entities. In this case, make a copy of the Cartesian3 values used for the polygon positions.KmlDataSource taking a proxy object. It will throw an exception in 1.21. It now should take a options object with required camera and canvas parameters.definedNotNull. It will be removed in 1.20. Use defined instead, which now checks for null as well as undefined.NetworkLink refresh modes onInterval, onExpire and onStop. Includes support for viewboundScale, viewFormat, httpQuery.NetworkLinkControl including minRefreshPeriod, cookie and expires.StyleMap. The highlight style is still ignored.root:// URLs.Viewer.zoomTo and Viewer.flyTo now accept an ImageryLayer instance as a valid parameter and will zoom to the extent of the imagery.Camera.flyHome function for resetting the camera to the home view.Camera.flyTo now honors max and min zoom settings in ScreenSpaceCameraController.show property to CzmlDataSource, GeoJsonDataSource, KmlDataSource, CustomDataSource, and EntityCollection for easily toggling display of entire data sources.owner property to CompositeEntityCollection.DataSouceDisplay.ready for determining whether or not static data associated with the Entity API has been rendered.GroundPrimitive with an EllipseGeometry from having a rotation.CorridorGeometry and CorridorOutlineGeometry synchronously.DeveloperError, undefined is returned.latitude, longitude, height in the Geocoder.IntersectionTests.lineSegmentSphere where the ray origin was not set.length to Matrix2, Matrix3 and Matrix4 so these can be used as array-like objects.Color.add, Color.subtract, Color.multiply, Color.divide, Color.mod, Color.multiplyByScalar, and Color.divideByScalar functions to perform arithmetic operations on colors.result parameter to Color.fromRgba, Color.fromHsl and Color.fromCssColorString.navigator is not defined reference error when Cesium is used with Node.js.CESIUM_binary_glTF. Use KHR_binary_glTF instead, which is the default for the online COLLADA-to-glTF converter.GroundPrimitive.geometryInstance. It will be removed in 1.20. Use GroundPrimitive.geometryInstances instead.TileMapServiceImageryProvider. It will be removed in 1.20. Use createTileMapServiceImageryProvider instead.VRButton which is a simple, single-button widget that toggles VR mode. It is off by default. To enable the button, set the vrButton option to Viewer to true. Only Cardboard for mobile is supported. More VR devices will be supported when the WebVR API is more stable.Scene.useWebVR to switch the scene to use stereoscopic rendering.Cesium now honors window.devicePixelRatio on browsers that support the CSS imageRendering attribute. This greatly improves performance on mobile devices and high DPI displays by rendering at the browser-recommended resolution. This also reduces bandwidth usage and increases battery life in these cases. To enable the previous behavior, use the following code:
if (Cesium.FeatureDetection.supportsImageRenderingPixelated()) {
viewer.resolutionScale = window.devicePixelRatio;
}
GroundPrimitive now supports batching geometry for better performance.
Improved compatibility with glTF KHR_binary_glTF and KHR_materials_common extensions
Added ImageryLayer.getViewableRectangle to make it easy to get the effective bounds of an imagery layer.
Improved compatibility with glTF KHR_binary_glTF and KHR_materials_common extensions
Fixed a picking issue that sometimes prevented objects being selected. #3386
Fixed cracking between tiles in 2D. #3486
Fixed creating bounding volumes for GroundPrimitives whose containing rectangle has a width greater than pi.
Fixed incorrect texture coordinates for polygons with large height.
Fixed camera.flyTo not working when in 2D mode and only orientation changes
Added UrlTemplateImageryProvider.reinitialize for changing imagery provider options without creating a new instance.
UrlTemplateImageryProvider now accepts a promise to an options object in addition to taking the object directly.
Fixed a bug that prevented WMS feature picking from working with THREDDS XML and msGMLOutput in Internet Explorer 11.
Added Scene.useDepthPicking to enable or disable picking using the depth buffer. #3390
Added BoundingSphere.fromEncodedCartesianVertices to create bounding volumes from parallel arrays of the upper and lower bits of EncodedCartesian3s.
Added helper functions: getExtensionFromUri, getAbsoluteUri, and Math.logBase.
Added Rectangle.union and Rectangle.expand.
TMS support now works with newer versions of gdal2tiles.py generated layers. createTileMapServiceImageryProvider. Tilesets generated with older gdal2tiles.py versions may need to have the flipXY : true option set to load correctly.
Camera.viewRectangle. Use Camera.setView({destination: rectangle}) instead.RectanglePrimitive. Use RectangleGeometry or Entity.rectangle instead.Polygon. Use PolygonGeometry or Entity.polygon instead.OrthographicFrustum.getPixelSize. Use OrthographicFrustum.getPixelDimensions instead.PerspectiveFrustum.getPixelSize. Use PerspectiveFrustum.getPixelDimensions instead.PerspectiveOffCenterFrustum.getPixelSize. Use PerspectiveOffCenterFrustum.getPixelDimensions instead.Scene\HeadingPitchRange. Use Core\HeadingPitchRange instead.jsonp. Use loadJsonp instead.HeightmapTessellator from the public API. It is an implementation details.TerrainMesh from the public API. It is an implementation details.Model node transformations via CZML and the Entity API. See the new Sandcastle example: CZML Model - Node Transformations. #3316Globe.tileLoadProgressEvent, which is raised when the length of the tile load queue changes, enabling incremental loading indicators.GetFeatureInfoFormat and WebMapServiceImageryProvider.enableFeaturePicking toggle to all ImageryProviders that support feature picking.CorridorGeometry and PolylineVolumeGeometry. #3293CorridorGeometry with nearly colinear points. #3320EllipseGeometry and EllipseOutlineGeometry. #3078Rectangle.fromCartographicArray now uses the smallest rectangle regardess of whether or not it crosses the international date line. #3227TranslationRotationScale property, which represents an affine transformation defined by a translation, rotation, and scale.Matrix4.fromTranslationRotationScale.NodeTransformationProperty, which is a Property value that is defined by independent translation, rotation, and scale Property instances.PropertyBag, which is a Property whose value is a key-value mapping of property names to the computed value of other properties.ModelGraphics.runAnimations which is a boolean Property indicating if all model animations should be started after the model is loaded.ModelGraphics.nodeTransformations which is a PropertyBag of TranslationRotationScale properties to be applied to a loaded model.runAnimations and nodeTransformations properties on the model packet.HeightmapTessellator. It will be removed in 1.17.TerrainMesh. It will be removed in 1.17.OpenStreetMapImageryProvider. It will be removed in 1.18. Use createOpenStreetMapImageryProvider instead.Scene.fog for options. #3154terrainExaggeration option.ImageMaterialProperty.image now accepts an HTMLVideoElement. You can also assign a video element directly to an Entity material property.Material image uniforms now accept and HTMLVideoElement anywhere it could previously take a Canvas element.VideoSynchronizer helper object for keeping an HTMLVideoElement in sync with a scene's clock.Cartographic.fromCartesian function.createOpenStreetMapImageryProvider function to replace the OpenStreetMapImageryProvider class. This function returns a constructed UrlTemplateImageryProvider.GeoJsonDataSource.load now takes an optional describeProperty function for generating feature description properties. #3140ImageryProvider.readyPromise and TerrainProvider.readyPromise and implemented it in all terrain and imagery providers. This is a promise which resolves when ready becomes true and rejected if there is an error during initialization. #3175Entity.parent to undefined to throw an exception. #3169Entity polyline graphics to be incorrect when a scene's ellipsoid was not WGS84. #3174CompositeEntityCollection).ImageMaterialProperty.alpha and a alpha uniform to Image and Material types to control overall image opacity. It defaults to 1.0, fully opaque.Camera.getPixelSize function to get the size of a pixel in meters based on the current view.Camera.distanceToBoundingSphere function.BoundingSphere.fromOrientedBoundingBox function.getBaseUri, which given a URI with or without query parameters, returns the base path of the URI.Queue.peek to return the item at the front of a Queue.JulianDate.fromIso8601 so that it correctly parses the YYYY-MM-DDThh:mmTZD format.Model.maximumScale and ModelGraphics.maximumScale properties, giving an upper limit for minimumPixelSize.jsonp that prevented it from returning a promise. Its replacement, loadJsonp, was unaffected.<subfolder>/package.json and *.profile.js files, not used since Cesium moved away from a Dojo-based build years ago. This will allow future compatibility with newer systems like Browserify and Webpack.Camera.viewRectangle. It will be removed in 1.17. Use Camera.setView({destination: rectangle}) instead.Camera.setView have been deprecated and will be removed in 1.17:position. Use destination instead.positionCartographic. Convert to a Cartesian3 and use destination instead.heading, pitch and roll. Use orientation.heading/pitch/roll instead.CESIUM_binary_glTF extension support for glTF models. KHR_binary_glTF should be used instead. CESIUM_binary_glTF will be removed in 1.18. Reconvert models using the online model converter.RectanglePrimitive. It will be removed in 1.17. Use RectangleGeometry or Entity.rectangle instead.EllipsoidPrimitive. It will be removed in 1.17. Use EllipsoidGeometry or Entity.ellipsoid instead.EllipsoidPrimitive private, use EllipsoidGeometry or Entity.ellipsoid instead.BoxGeometry.minimumCorner and BoxGeometry.maximumCorner. These will be removed in 1.17. Use BoxGeometry.minimum and BoxGeometry.maximum instead.BoxOutlineGeometry.minimumCorner and BoxOutlineGeometry.maximumCorner. These will be removed in 1.17. Use BoxOutlineGeometry.minimum and BoxOutlineGeometry.maximum instead.OrthographicFrustum.getPixelSize. It will be removed in 1.17. Use OrthographicFrustum.getPixelDimensions instead.PerspectiveFrustum.getPixelSize. It will be removed in 1.17. Use PerspectiveFrustum.getPixelDimensions instead.PerspectiveOffCenterFrustum.getPixelSize. It will be removed in 1.17. Use PerspectiveOffCenterFrustum.getPixelDimensions instead.Scene\HeadingPitchRange. It will be removed in 1.17. Use Core\HeadingPitchRange instead.jsonp. It will be removed in 1.17. Use loadJsonp instead.BillboardCollection and LabelCollection by using WebGL instancing.Camera.setView to take the same parameter options as Camera.flyTo. options.destination takes a rectangle, options.orientation works with heading/pitch/roll or direction/up, and options.endTransform was added. #3100ArcGisMapServerImageryProvider.ImageryLayerFeatureInfo now has an imageryLayer property, indicating the layer that contains the feature.TileMapServiceImageryProvider and CesiumTerrainProvider work properly when the provided base url contains query parameters and fragments.failIfMajorPerformanceCaveat now defaults to false, which is the WebGL default. This improves compatibility with out-of-date drivers and remote desktop sessions. Cesium will run slower in these cases instead of simply failing to load. #3108BoxOutlineGeometry.fromAxisAlignedBoundingBox and BoxGeometry.fromAxisAlignedBoundingBox functions.Java and ant are no longer required to develop Cesium. #3106requirejs from 2.1.9 to 2.1.20. #3107almond from 0.2.6 to 0.3.1. #3107ScreenSpaceCameraController.minimumZoomDistance default from 20.0 to 1.0.Billboard.sizeInMeters. true sets the billboard size to be measured in meters; otherwise, the size of the billboard is measured in pixels. Also added support for billboard sizeInMeters to entities and CZML.AssociativeArray that would cause unbounded memory growth when adding and removing lots of items.WebGLRenderingContext. Now constants are hard-coded in WebGLConstants. #2989subdomains option to the WebMapTileServiceImageryProvider constructor.subdomains option to the WebMapServiceImageryProvider constructor.options.credit parameter to MapboxImageryProvider.setView from working across all scene modes.camera.positionWC to occasionally return the incorrect value.AxisAlignedBoundingBox.intersect and BoundingSphere.intersect. Use BoundingSphere.intersectPlane instead.getFeatureInfoAsGeoJson and getFeatureInfoAsXml constructor parameters from WebMapServiceImageryProvider.GroundPrimitive which works much like Primitive but drapes geometry over terrain. Valid geometries that can be draped on terrain are CircleGeometry, CorridorGeometry, EllipseGeometry, PolygonGeometry, and RectangleGeometry. Because of the cutting edge nature of this feature in WebGL, it requires the EXT_frag_depth extension, which is currently only supported in Chrome, Firefox, and Edge. Apple support is expected in iOS 9 and MacOS Safari 9. Android support varies by hardware and IE11 will most likely never support it. You can use webglreport.com to verify support for your hardware. Finally, this feature is currently only supported in Primitives and not yet available via the Entity API. #2865Added Scene.groundPrimitives, which is a primitive collection like Scene.primitives, but for GroundPrimitive instances. It allows custom z-ordering. #2960 For example:
// draws the ellipse on top of the rectangle
var ellipse = scene.groundPrimitives.add(new Cesium.GroundPrimitive({...}));
var rectangle = scene.groundPrimitives.add(new Cesium.GroundPrimitive({...}));
// move the rectangle to draw on top of the ellipse
scene.groundPrimitives.raise(rectangle);
Added reverseZ tag to UrlTemplateImageryProvider. #2961
Added BoundingSphere.isOccluded and OrientedBoundingBox.isOccluded to determine if the volumes are occluded by an Occluder.
Added distanceSquaredTo and computePlaneDistances functions to OrientedBoundingBox.
Fixed a GLSL precision issue that enables Cesium to support Mali-400MP GPUs and other mobile GPUs where GLSL shaders did not previously compile. #2984
Fixed an issue where extruded PolygonGeometry was always extruding to the ellipsoid surface instead of specified height. #2923
Fixed an issue where non-feature nodes prevented KML documents from loading. #2945
Fixed an issue where JulianDate would not parse certain dates properly. #405
ObjectOrientedBoundingBox. Use OrientedBoundingBox instead.MapboxImageryProvider to load imagery from Mapbox.maximumHeight option to Viewer.flyTo. #2868UrlTemplateImageryProvider.ArcGisMapServerImageryProvider.ArcGisMapServerImageryProvider for pickFeatures requests.CTRL + Left Click Drag mouse behavior is now duplicated for CTRL + Right Click Drag for better compatibility with Firefox on Mac OS #2872.WallGeometry #2872WallGeometry bug that caused walls covering a short distance not to render. #2897PolygonGeometry clockwise winding order bug.RectangleGeometry bug for small heights. #2823BillboardCollection bounding sphere for billboards with a non-center vertical origin. #2894Camera.positionCartographic to be incorrect. #2838Scene.pickPosition after calling Scene.drillPick. #2813Scene.depthTestAgainstTerrain is true so objects behind terrain are not picked.Scene.fxaaOrderIndependentTranslucency, which was deprecated in 1.10. Use Scene.fxaa which is now true by default.Camera.clone, which was deprecated in 1.10.cesiumjs.org/stk-terrain/world has been deprecated, use assets.agi.com/stk-terrain/world instead. A redirect will be in place until 1.14.AxisAlignedBoundingBox.intersect and BoundingSphere.intersect. These will be removed in 1.13. Use AxisAlignedBoundingBox.intersectPlane and BoundingSphere.intersectPlane instead.ObjectOrientedBoundingBox. It will be removed in 1.12. Use OrientedBoundingBox instead.OrientedBoundingBox for view frustum culling. See Terrain Culling with Oriented Bounding Boxes.UrlTemplateImageryProvider. This new imagery provider allows access to a wide variety of imagery sources, including OpenStreetMap, TMS, WMTS, WMS, WMS-C, and various custom schemes, by specifying a URL template to use to request imagery tiles.Camera.viewRectangle so that the specified rectangle is now better centered on the screen. #2764viewer.zoomTo or viewer.flyTo were called immediately before or during a scene morph. #2775Camera functions would throw an exception if used from within a Scene.morphComplete callback. #2776Model can now load Binary glTF from a Uint8Array.ImageryLayer that could cause an exception and the render loop to stop when the base layer did not cover the entire globe.scene.debugShowFramesPerSecond === true can now be styled using the cesium-performanceDisplay CSS classes in shared.css #2779.Plane.fromCartesian4.Plane.ORIGIN_XY_PLANE/ORIGIN_YZ_PLANE/ORIGIN_ZX_PLANE constants for commonly-used planes.Matrix2/Matrix3/Matrix4.ZERO constants.Matrix2/Matrix3.multiplyByScale for multiplying against non-uniform scales.projectPointToNearestOnPlane and projectPointsToNearestOnPlane to EllipsoidTangentPlane to project 3D points to the nearest 2D point on an EllipsoidTangentPlane.EllipsoidTangentPlane.plane property to get the Plane for the tangent plane.EllipsoidTangentPlane.xAxis/yAxis/zAxis properties to get the local coordinate system of the tangent plane.QuantizedMeshTerrainData constructor argument orientedBoundingBox.TerrainMesh.orientedBoundingBox which holds the OrientedBoundingBox for the mesh for a single terrain tile.InfoBoxViewModel.defaultSanitizer, InfoBoxViewModel.sanitizer, and Cesium.sanitize, which was deprecated in 1.7.InfoBoxViewModel.descriptionRawHtml, which was deprecated in 1.7. Use InfoBoxViewModel.description instead.GeoJsonDataSource.fromUrl, which was deprecated in 1.7. Use GeoJsonDataSource.load instead. Unlike fromUrl, load can take either a url or parsed JSON object and returns a promise to a new instance, rather than a new instance.GeoJsonDataSource.prototype.loadUrl, which was deprecated in 1.7. Instead, pass a url as the first parameter to GeoJsonDataSource.prototype.load.CzmlDataSource.prototype.loadUrl, which was deprecated in 1.7. Instead, pass a url as the first parameter to CzmlDataSource.prototype.load.CzmlDataSource.prototype.processUrl, which was deprecated in 1.7. Instead, pass a url as the first parameter to CzmlDataSource.prototype.process.sourceUri parameter to all CzmlDataSource load and process functions, which was deprecated in 1.7. Instead pass an options object with sourceUri property.PolygonGraphics.positions which was deprecated in 1.6. Instead, use PolygonGraphics.hierarchy.WebMapServiceImageryProvider constructor parameters options.getFeatureInfoAsGeoJson and options.getFeatureInfoAsXml were deprecated and will be removed in Cesium 1.13. Use options.getFeatureInfoFormats instead.Camera.clone. It will be removed in 1.11.Scene.fxaaOrderIndependentTranslucency. It will be removed in 1.11. Use Scene.fxaa which is now true by default..bgltf). Cesium will also include the models as plain glTF (.gltf) until 1.13. Cesium support for .gltf will not be removed.view query parameter to the CesiumViewer app, which sets the initial camera position using longitude, latitude, height, heading, pitch and roll. For example: http://cesiumjs.org/Cesium/Build/Apps/CesiumViewer/index.html/index.html?view=-75.0,40.0,300.0,9.0,-13.0,3.0Billboard.heightReference and Label.heightReference to clamp billboards and labels to terrain.Model. See Faster 3D Models with Binary glTF.Model.PointPrimitive and PointPrimitiveCollection, which are faster and use less memory than billboards with circles.Entity.point to use the new PointPrimitive instead of billboards. This does not change the Entity.point API.Scene.pickPosition to reconstruct the WGS84 position from window coordinates.Camera.moveStart and Camera.moveEnd events.GeocoderViewModel.complete event. Triggered after the camera flight is completed.KmlDataSource can now load a KML file that uses explicit XML namespacing, e.g. kml:Document.Entity.show now properly toggles the display of all descendant entities, previously it only affected its direct children.Entity instances with show set to false to reappear when new Entity geometry is added. #2686Rotation object which, when passed to SampledProperty, always interpolates values towards the shortest angle. Also hooked up CZML to use Rotation for all time-dynamic rotations.TileProviderError now optionally takes an error parameter with more details of the error or exception that occurred. ImageryLayer passes that information through when tiles fail to load. This allows tile provider error handling to take a different action when a tile returns a 404 versus a 500, for example.ArcGisMapServerImageryProvider now has a maximumLevel constructor parameter.ArcGisMapServerImageryProvider picking now works correctly when the layers parameter is specified. Previously, it would pick from all layers even if only displaying a subset.WebMapServiceImageryProvider.pickFeatures now works with WMS servers, such as Google Maps Engine, that can only return feature information in HTML format.WebMapServiceImageryProvider now accepts an array of GetFeatureInfoFormat instances that it will use to obtain information about the features at a given position on the globe. This enables an arbitrary info_format to be passed to the WMS server, and an arbitrary JavaScript function to be used to interpret the response.ImageryLayer attempting to generate mipmaps for textures that are not a power-of-two size.ImageryLayerCollection.pickImageryLayerFeatures would return incorrect results when picking from a terrain tile that was partially covered by correct-level imagery and partially covered by imagery from an ancestor level.debug.tilesWaitingForChildren in QuadtreePrimitive.throttleRequestsByServer.maximumRequestsPerServer property.createGeometry to load individual-geometry workers using a CommonJS-style require when run in a CommonJS-like environment.buildModuleUrl.setBaseUrl function to allow the Cesium base URL to be set without the use of the global CESIUM_BASE_URL variable.ThirdParty/zip to defer its call to buildModuleUrl until it is needed, rather than executing during module loading.Scene.drillPick.ellipsoid parameter to construction options of imagery and terrain providers that were lacking it. Note that terrain bounding spheres are precomputed on the server, so any supplied terrain ellipsoid must match the one used by the server.Scene to show the depth buffer information for a specified view frustum slice and exposed capability in CesiumInspector widget.ColorMaterialProperty.fromColor, previously deprecated in 1.6. Pass a Color directly to the ColorMaterialProperty constructor instead.CompositeEntityCollection.entities and EntityCollection.entities, both previously deprecated in 1.6. Use CompositeEntityCollection.values and EntityCollection.values instead.DataSourceDisplay.getScene and DataSourceDisplay.getDataSources, both previously deprecated in 1.6. Use DataSourceDisplay.scene and DataSourceDisplay.dataSources instead.Entity no longer takes a string id as its constructor argument. Pass an options object with id property instead. This was previously deprecated in 1.6.Model.readyToRender, previously deprecated in 1.6. Use Model.readyPromise instead.material properties and Material uniform values can now take a canvas element in addition to an image or url. #2667Entity.viewFrom to be ignored when flying to, zooming to, or tracking an Entity. #2628Corridor and PolylineVolume geometry to be incorrect for sharp corners #2626Geocoder styling issue in Safari. #2658.Viewer or CesiumWidget was resized to 0 while the camera was in motion. #2662InfoBox title from updating if the name of viewer.selectedEntity changed. #2644result parameter to computeScreenSpacePosition on both Billboard and Label.CesiumInspector debugging widget.Primitive.modelMatrix is not the identity matrix when in in 2D or Columbus View.eye, target, and up parameters to Camera.lookAt which were deprecated in Cesium 1.6. Use the target and offset.Camera.setTransform, which was deprecated in Cesium 1.6. Use Camera.lookAtTransform.Camera.transform, which was deprecated in Cesium 1.6. Use Camera.lookAtTransform.direction and up options to Camera.flyTo, which were deprecated in Cesium 1.6. Use the orientation option.Camera.flyToRectangle, which was deprecated in Cesium 1.6. Use Camera.flyTo.smallterrain tileset. It will be removed in 1.11. Use the STK World Terrain tileset.Entity.show, a boolean for hiding or showing an entity and its children.Entity.isShowing, a read-only property that indicates if an entity is currently being drawn.visibility element.PolylineArrowMaterialProperty to allow entities materials to use polyline arrows.VelocityOrientationProperty to easily orient Entity graphics (such as a model) along the direction it is moving.VelocityOrientationProperty to orient an aircraft in flight.viewer.zoomTo and viewer.flyTo so they are now "best effort" and work even if some entities being zoomed to are not currently in the scene.PointerEvent detection so that it works with older implementations of the specification. This also fixes lack of mouse handling when detection failed, such as when using Cesium in the Windows WebBrowser control.GeoJSON data.ArcGisMapServerImagerProvider.ArcGisMapServerImagerProvider constructor.layers parameter to the ArcGisMapServerImagerProvider constructor.ArcGisMapServerImageProvider with a "singleFusedMapCache" in the geographic projection (EPSG:4326).CesiumWidget and Viewer, for skyBox, skyAtmosphere, and globe.InfoBox that would occur when attempting to display plain text.ExtendedData node.in Color.fromCssColorString where undefined would be returned for the CSS color transparent.Color.TRANSPARENT.TimeStamp nodes.errorEvent and rejecting their load promise.viewerEntityMixin, which was deprecated in Cesium 1.5. Its functionality is now directly part of the Viewer widget.Camera.tilt, which was deprecated in Cesium 1.6. Use Camera.pitch.Camera.heading and Camera.tilt. They were deprecated in Cesium 1.6. Use Camera.setView.Camera.setPositionCartographic, which was was deprecated in Cesium 1.6. Use Camera.setView.InfoBoxViewModel.defaultSanitizer, InfoBoxViewModel.sanitizer, and Cesium.sanitize. They will be removed in 1.10.InfoBoxViewModel.descriptionRawHtml, it will be removed in 1.10. Use InfoBoxViewModel.description instead.GeoJsonDataSource.fromUrl, it will be removed in 1.10. Use GeoJsonDataSource.load instead. Unlike fromUrl, load can take either a url or parsed JSON object and returns a promise to a new instance, rather than a new instance.GeoJsonDataSource.prototype.loadUrl, it will be removed in 1.10. Instead, pass a url as the first parameter to GeoJsonDataSource.prototype.load.CzmlDataSource.prototype.loadUrl, it will be removed in 1.10. Instead, pass a url as the first parameter to CzmlDataSource.prototype.load.CzmlDataSource.prototype.processUrl, it will be removed in 1.10. Instead, pass a url as the first parameter to CzmlDataSource.prototype.process.sourceUri parameter to all CzmlDataSource load and process functions. Support will be removed in 1.10. Instead pass an options object with sourceUri property.KmlDataSource. Check out the new Sandcastle Demo and the reference documentation for more details.InfoBox sanitization now relies on iframe sandboxing. This allows for much more content to be displayed in the InfoBox (and still be secure).InfoBox.frame which is the instance of the iframe that is used to host description content. Sanitization can be controlled via the frame's sandbox attribute. See the above link for additional information.ElipseOutlineGeometry and CircleOutlineGeometry to be extruded to the ground when they should have instead been drawn at height. #2499.PolylineGeometry and SimplePolylineGeometry when used asynchronously. #2516Entity objects were modified in quick succession. #2514.camera.flyToBoundingSphere would ignore range if the bounding sphere radius was 0. #2519InfoBox and BaseLayerPicker caused by using Bootstrap with Cesium. #2487pack and unpack functions to Matrix2 and Matrix3.ScreenSpaceCameraController.enableCollisionDetection to enable/disable camera collision detection with terrain.CzmlDataSource.load and GeoJsonDataSource.load to make it easy to create and load data in a single line.Promise to a DataSource to DataSourceCollection.add. The DataSource will not actually be added until the promise resolves.Promise to a target to viewer.zoomTo and viewer.flyTo.CzmlDataSource and GeoJsonDataSource loading functions now return Promise instances that resolve to the instances after data is loaded.CzmlDataSource and GeoJsonDataSource loading functions is now more consistent. Rather than a mix of exceptions and Promise rejections, all errors are raised via Promise rejections.Geocoder widget now allows input of longitude, latitude, and an optional height in degrees and meters. Example: -75.596, 40.038, 1000 or -75.596 40.038.Rectangle.intersectWith was deprecated in Cesium 1.5. Use Rectangle.intersection, which is the same but returns undefined when two rectangles do not intersect.Rectangle.isEmpty was deprecated in Cesium 1.5.sourceUri parameter to GeoJsonDatasource.load was deprecated in Cesium 1.4 and has been removed. Use options.sourceUri instead.PolygonGraphics.positions created by GeoJSONDataSource now evaluate to a PolygonHierarchy object instead of an array of positions.Camera.tilt was deprecated in Cesium 1.6. It will be removed in Cesium 1.7. Use Camera.pitch.Camera.heading and Camera.tilt were deprecated in Cesium 1.6. They will become read-only in Cesium 1.7. Use Camera.setView.Camera.setPositionCartographic was deprecated in Cesium 1.6. It will be removed in Cesium 1.7. Use Camera.setView.direction and up options to Camera.flyTo have been deprecated in Cesium 1.6. They will be removed in Cesium 1.8. Use the orientation option.Camera.flyToRectangle has been deprecated in Cesium 1.6. They will be removed in Cesium 1.8. Use Camera.flyTo.Camera.setTransform was deprecated in Cesium 1.6. It will be removed in Cesium 1.8. Use Camera.lookAtTransform.Camera.transform was deprecated in Cesium 1.6. It will be removed in Cesium 1.8. Use Camera.lookAtTransform.eye, target, and up parameters to Camera.lookAt were deprecated in Cesium 1.6. It will be removed in Cesium 1.8. Use the target and offset.PolygonGraphics.positions was deprecated and replaced with PolygonGraphics.hierarchy, whose value is a PolygonHierarchy instead of an array of positions. PolygonGraphics.positions will be removed in Cesium 1.8.Model.readyToRender event was deprecated and will be removed in Cesium 1.9. Use the new Model.readyPromise instead.ColorMaterialProperty.fromColor(color) has been deprecated and will be removed in Cesium 1.9. The constructor can now take a Color directly, for example new ColorMaterialProperty(color).DataSourceDisplay methods getScene and getDataSources have been deprecated and replaced with scene and dataSources properties. They will be removed in Cesium 1.9.Entity constructor taking a single string value for the id has been deprecated. The constructor now takes an options object which allows you to provide any and all Entity related properties at construction time. Support for the deprecated behavior will be removed in Cesium 1.9.EntityCollection.entities and CompositeEntityCollect.entities properties have both been renamed to values. Support for the deprecated behavior will be removed in Cesium 1.9.GeoJsonDataSource now supports polygons with holes.Primitive will succeed, but not render. #2375viewer.entities which allows you to easily create and manage Entity instances without a corresponding DataSource. This is just a shortcut to viewer.dataSourceDisplay.defaultDataSource.entitiesviewer.zoomTo and viewer.flyTo which takes an entity, array of entities, EntityCollection, or DataSource as a parameter and zooms or flies to the corresponding visualization.viewer.trackedEntity to undefined will now restore the camera controls to their default states.InfoBox, you can now stop tracking by clicking the button a second time.Quaternion.fromHeadingPitchRoll to create a rotation from heading, pitch, and roll angles.Transforms.headingPitchRollToFixedFrame to create a local frame from a position and heading/pitch/roll angles.Transforms.headingPitchRollQuaternion which is the quaternion rotation from Transforms.headingPitchRollToFixedFrame.Color.fromAlpha and Color.withAlpha to make it easy to create translucent colors from constants, i.e. var translucentRed = Color.RED.withAlpha(0.95).PolylineVolumeGraphics and Entity.polylineVolumeCamera.lookAtTransform which sets the camera position and orientation given a transformation matrix defining a reference frame and either a cartesian offset or heading/pitch/range from the center of that frame.Camera.setView (which use heading, pitch, and roll) and Camera.roll.Camera.flyTo that can be either direction and up unit vectors or heading, pitch and roll angles.BillboardGraphics.imageSubRegion, to enable custom texture atlas use for Entity instances.CheckerboardMaterialProperty to enable use of the checkerboard material with the entity API.PolygonHierarchy to make defining polygons with holes clearer.PolygonGraphics.hierarchy for supporting polygons with holes via data sources.BoundingSphere.fromBoundingSpheres, which creates a BoundingSphere that encloses the specified array of BoundingSpheres.Model.readyPromise and Primitive.readyPromise which are promises that resolve when the primitives are ready.ConstantProperty can now hold any value; previously it was limited to values that implemented equals and clones functions, as well as a few special cases.EllipsoidGeodesic that caused it to modify the height of the positions passed to the constructor or to to setEndPoints.WebMapTileServiceImageryProvider now supports RESTful requests (by accepting a tile-URL template).Camera.roll to be around 180 degrees, indicating the camera was upside-down, when in the Southern hemisphere.Primitive.getGeometryInstanceAttributes now contains the instance's bounding sphere and repeated calls will always now return the same object instance.SelectionIndicator widget now works for all entity visualization and uses the center of visualization instead of entity.position. This produces more accurate results, especially for shapes, volumes, and models.CustomDataSource which makes it easy to create and manage a group of entities without having to manually implement the DataSource interface in a new class.DataSourceDisplay.defaultDataSource which is an instance of CustomDataSource and allows you to easily add custom entities to the display.Camera.viewBoundingSphere and Camera.flyToBoundingSphere, which as the names imply, sets or flies to a view that encloses the provided BoundingSphereProperty values, there is no longer a need to create an instance of ConstantProperty or ConstantPositionProperty, you can now assign a value directly to the corresponding property. The same is true for material images and colors.GeometryPipeline.wrapLongitude, which was deprecated in 1.4. Use GeometryPipeline.splitLongitude instead.GeometryPipeline.combine, which was deprecated in 1.4. Use GeometryPipeline.combineInstances instead.viewerEntityMixin was deprecated. It will be removed in Cesium 1.6. Its functionality is now directly part of the Viewer widget.Rectangle.intersectWith was deprecated. It will be removed in Cesium 1.6. Use Rectangle.intersection, which is the same but returns undefined when two rectangles do not intersect.Rectangle.isEmpty was deprecated. It will be removed in Cesium 1.6.Model to save memory and improve loading speed when several models with the same url are created.ModelNode.show for per-node show/hide.Viewer and CesiumWidget: imageryLayers, terrainProvider, and camera. This avoids the need to access viewer.scene in some cases.BoxGraphics and Entity.box.CorridorGraphics and Entity.corridor.CylinderGraphics and Entity.cylinder.Rectangle.computeWidth, Rectangle.computeHeight, Rectangle.width, and Rectangle.height. #2195ConstantProperty now accepts HTMLElement instances as valid values.BillboardGraphics.image and ImageMaterialProperty.image now accept Property instances that represent an Image or Canvas in addition to a url.PolylineGeometry that would cause gaps in the line. #2136upsampleQuantizedTerrainMesh rounding errors that had occasionally led to missing terrain skirt geometry in upsampled tiles.Math.mod which computes m % n but also works when m is negative.TerrainProvider are now required to implement the getTileDataAvailable function. Backwards compatibility for this was deprecated in Cesium 1.2.sourceUri parameter to GeoJsonDatasource.load was deprecated and will be removed in Cesium 1.6 on February 3, 2015 (#2257). Use options.sourceUri instead.GeometryPipeline.wrapLongitude was deprecated. It will be removed in Cesium 1.5 on January 2, 2015. Use GeometryPipeline.splitLongitude. (#2272)GeometryPipeline.combine was deprecated. It will be removed in Cesium 1.5. Use GeometryPipeline.combineInstances.DataSource layer. This is exposed via the new outlineWidth property on EllipseGraphics, EllipsoidGraphics, PolygonGraphics, RectangleGraphics, and WallGraphics.outlineWidth support to CZML geometry packets.stroke-width support to the GeoJSON simple-style implementation.CallbackProperty to support lazy property evaluation as well as make custom properties easier to create.GeoJsonDataSource.load, GeoJsonDataSource.loadUrl, and GeoJsonDataSource.fromUrl to allow for basic per-instance styling. Sandcastle example.EllipseGeometry, EllipseOutlineGeometry, CircleGeometry, and CircleOutlineGeometry.tileMatrixLabels option to WebMapTileServiceImageryProvider.PolylineGeometry that would cause the geometry to be split across the IDL for 3D only scenes. #1197modelMatrix and cull options to Primitive constructor.translation parameter to Matrix4.fromRotationTranslation now defaults to Cartesian3.ZERO.ModelNode.matrix when a node is targeted for animation.Camera.tilt now clamps to [-pi / 2, pi / 2] instead of [0, pi / 2].distanceSquared to Cartesian2, Cartesian3, and Cartesian4.Matrix4.multiplyByMatrix3.Model where the WebGL shader optimizer in Linux was causing mesh loading to fail.CesiumTerrainProvider for terrain tiles with more than 64K vertices, which is common for sub-meter terrain.Primitive.compressVertices. When true (default), geometry vertices are compressed to save GPU memory.culture option to BingMapsImageryProvider constructor.rectangle to be stretched to the edges of imagery tiles. #416Globe.pick that caused it to return incorrect results when using terrain data with vertex normals. The bug manifested itself as strange behavior when navigating around the surface with the mouse as well as incorrect results when using Camera.viewRectangle.sampleTerrain that could cause it to produce undefined heights when sampling for a position very near the edge of a tile.ReferenceProperty instances now retain their last value if the entity being referenced is removed from the target collection. The reference will be automatically reattached if the target is reintroduced.TerrainProvider interface should now include the new getTileDataAvailable function. The function will be required starting in Cesium 1.4.Model where the wrong animations could be used when the model was created from glTF JSON instead of a url to a glTF file. #2078GeoJsonDataSource which was causing polygons with height values to be drawn onto the surface.GeoJsonDataSource.fromUrl to make it easy to add a data source in less code.PinBuilder class for easy creation of map pins. (Sandcastle example)Color.brighten and Color.darken to make it easy to brighten or darker a color instance.Scene, CesiumWidget, and Viewer to disable order independent translucency.ArcGisMapServerImageryProvider.TerrainProvider.getTileDataAvailable to improve tile loading performance when camera starts near globe.Globe.showWaterEffect to enable/disable the water effect for supported terrain providers.Globe.baseColor to set the color of the globe when no imagery is available.GeoJSON Point feature graphics to use BillboardGraphics with a blue map pin instead of color PointGraphics.PinBuilder and GeoJSON simplestyle support.WebMapTileServiceImageryProvider, for accessing tiles on a WMTS 1.0.0 server.pickFeatures function to the ImageryProvider interface. With supporting imagery providers, such as WebMapServiceImageryProvider, it can be used to determine the rasterized features under a particular location.ImageryLayerCollection.pickImageryLayerFeatures. It determines the rasterized imagery layer features intersected by a given pick ray by querying supporting layers using ImageryProvider.pickFeatures.tileWidth, tileHeight, minimumLevel, and tilingScheme parameters to the WebMapServiceImageryProvider constructor.id property to Scene which is a readonly unique identifier associated with each instance.FeatureDetection.supportsWebWorkers.viewerEntityMixin now automatically queries for imagery layer features on click and shows their properties in the InfoBox panel.SceneTransforms.wgs84ToWindowCoordinates to incorrectly return undefined when in 2D.ImageryLayer that caused layer images to be rendered twice for each terrain tile that existed prior to adding the imagery layer.Camera.pickEllipsoid that caused it to return the back side of the ellipsoid when near the surface.loadWithXhr from working with older browsers, such as Internet Explorer 9.Breaking changes (why so many?)
Matrix2, Matrix3, Matrix4 and Quaternion functions that take a result parameter now require the parameter, except functions starting with from.Removed Billboard.imageIndex and BillboardCollection.textureAtlas. Instead, use Billboard.image.
Code that looked like:
var billboards = new Cesium.BillboardCollection();
var textureAtlas = new Cesium.TextureAtlas({
scene : scene,
images : images // array of loaded images
});
billboards.textureAtlas = textureAtlas;
billboards.add({
imageIndex : 0,
position : //...
});
should now look like:
var billboards = new Cesium.BillboardCollection();
billboards.add({
image : '../images/Cesium_Logo_overlay.png',
position : //...
});
Updated the Model Converter and Model to support glTF 0.8. See the forum post for full details.
Model primitives are now rotated to be Z-up to match Cesium convention; glTF stores models with Y up.
SimplePolylineGeometry and PolylineGeometry now curve to follow the ellipsoid surface by default. To disable this behavior, set the option followSurface to false.
Renamed DynamicScene layer to DataSources. The following types were also renamed:
DynamicBillboard -> BillboardGraphics
DynamicBillboardVisualizer -> BillboardVisualizer
CompositeDynamicObjectCollection -> CompositeEntityCollection
DynamicClock -> DataSourceClock
DynamicEllipse -> EllipseGraphics
DynamicEllipsoid -> EllipsoidGraphics
DynamicObject -> Entity
DynamicObjectCollection -> EntityCollection
DynamicObjectView -> EntityView
DynamicLabel -> LabelGraphics
DynamicLabelVisualizer -> LabelVisualizer
DynamicModel -> ModelGraphics
DynamicModelVisualizer -> ModelVisualizer
DynamicPath -> PathGraphics
DynamicPathVisualizer -> PathVisualizer
DynamicPoint -> PointGraphics
DynamicPointVisualizer -> PointVisualizer
DynamicPolygon -> PolygonGraphics
DynamicPolyline -> PolylineGraphics
DynamicRectangle -> RectangleGraphics
DynamicWall -> WallGraphics
viewerDynamicObjectMixin -> viewerEntityMixin
Removed DynamicVector and DynamicVectorVisualizer.
Renamed DataSource.dynamicObjects to DataSource.entities.
EntityCollection.getObjects() and CompositeEntityCollection.getObjects() are now properties named EntityCollection.entities and CompositeEntityCollection.entities.
Renamed Viewer.trackedObject and Viewer.selectedObject to Viewer.trackedEntity and Viewer.selectedEntity when using the viewerEntityMixin.
Renamed functions for consistency:
BoundingSphere.getPlaneDistances -> BoundingSphere.computePlaneDistances
Cartesian[2,3,4].getMaximumComponent -> Cartesian[2,3,4].maximumComponent
Cartesian[2,3,4].getMinimumComponent -> Cartesian[2,3,4].minimumComponent
Cartesian[2,3,4].getMaximumByComponent -> Cartesian[2,3,4].maximumByComponent
Cartesian[2,3,4].getMinimumByComponent -> Cartesian[2,3,4].minimumByComponent
CubicRealPolynomial.realRoots -> CubicRealPolynomial.computeRealRoots
CubicRealPolynomial.discriminant -> CubicRealPolynomial.computeDiscriminant
JulianDate.getTotalDays -> JulianDate.totalDyas
JulianDate.getSecondsDifference -> JulianDate.secondsDifference
JulianDate.getDaysDifference -> JulianDate.daysDifference
JulianDate.getTaiMinusUtc -> JulianDate.computeTaiMinusUtc
Matrix3.getEigenDecompostion -> Matrix3.computeEigenDecomposition
Occluder.getVisibility -> Occluder.computeVisibility
Occluder.getOccludeePoint -> Occluder.computerOccludeePoint
QuadraticRealPolynomial.discriminant -> QuadraticRealPolynomial.computeDiscriminant
QuadraticRealPolynomial.realRoots -> QuadraticRealPolynomial.computeRealRoots
QuarticRealPolynomial.discriminant -> QuarticRealPolynomial.computeDiscriminant
QuarticRealPolynomial.realRoots -> QuarticRealPolynomial.computeRealRoots
Quaternion.getAxis -> Quaternion.computeAxis
Quaternion.getAngle -> Quaternion.computeAngle
Quaternion.innerQuadrangle -> Quaternion.computeInnerQuadrangle
Rectangle.getSouthwest -> Rectangle.southwest
Rectangle.getNorthwest -> Rectangle.northwest
Rectangle.getSoutheast -> Rectangle.southeast
Rectangle.getNortheast -> Rectangle.northeast
Rectangle.getCenter -> Rectangle.center
CullingVolume.getVisibility -> CullingVolume.computeVisibility
Replaced PerspectiveFrustum.fovy with PerspectiveFrustum.fov which will change the field of view angle in either the X or Y direction depending on the aspect ratio.
Removed the following from the Cesium API: Transforms.earthOrientationParameters, EarthOrientationParameters, EarthOrientationParametersSample, Transforms.iau2006XysData, Iau2006XysData, Iau2006XysSample, IauOrientationAxes, TimeConstants, Scene.frameState, FrameState, EncodedCartesian3, EllipsoidalOccluder, TextureAtlas, and FAR. These are still available but are not part of the official API and may change in future versions.
Removed DynamicObject.vertexPositions. Use DynamicWall.positions, DynamicPolygon.positions, and DynamicPolyline.positions instead.
Removed defaultPoint, defaultLine, and defaultPolygon from GeoJsonDataSource.
Removed Primitive.allow3DOnly. Set the Scene constructor option scene3DOnly instead.
SampledProperty and SampledPositionProperty no longer extrapolate outside of their sample data time range by default.
Changed the following functions to properties:
TerrainProvider.hasWaterMask
CesiumTerrainProvider.hasWaterMask
ArcGisImageServerTerrainProvider.hasWaterMask
EllipsoidTerrainProvider.hasWaterMask
VRTheWorldTerrainProvider.hasWaterMask
Removed ScreenSpaceCameraController.ellipsoid. The behavior that depended on the ellipsoid is now determined based on the scene state.
Sandcastle examples now automatically wrap the example code in RequireJS boilerplate. To upgrade any custom examples, copy the code into an existing example (such as Hello World) and save a new file.
Removed CustomSensorVolume, RectangularPyramidSensorVolume, DynamicCone, DynamicConeVisualizerUsingCustomSensor, DynamicPyramid and DynamicPyramidVisualizer. This will be moved to a plugin in early August. #1887
If Primitive.modelMatrix is changed after creation, it only affects primitives with one instance and only in 3D mode.
ImageryLayer properties alpha, brightness, contrast, hue, saturation, and gamma may no longer be functions. If you need to change these values each frame, consider moving your logic to an event handler for Scene.preRender.
Removed closeTop and closeBottom options from RectangleGeometry.
CZML changes:
CZML is now versioned using the . scheme. For example, any CZML 1.0 implementation will be able to load any 1. document (with graceful degradation). Major version number increases will be reserved for breaking changes. We fully expect these major version increases to happen, as CZML is still in development, but we wanted to give developers a stable target to work with.
A "1.0" version string is required to be on the document packet, which is required to be the first packet in a CZML file. Previously the document packet was optional; it is now mandatory. The simplest document packet is:
{
"id":"document",
"version":"1.0"
}
The vertexPositions property has been removed. There is now a positions property directly on objects that use it, currently polyline, polygon, and wall.
cone, pyramid, and vector have been removed from the core CZML schema. They are now treated as extensions maintained by Analytical Graphics and have been renamed to agi_conicSensor, agi_customPatternSensor, and agi_vector respectively.
The orientation property has been changed to match Cesium convention. To update existing CZML documents, conjugate the quaternion values.
pixelOffset now uses the top-left of the screen as the origin; previously it was the bottom-left. To update existing documents, negate the y value.
Removed color, outlineColor, and outlineWidth properties from polyline and path. There is a new material property that allows you to specify a variety of materials, such as solidColor, polylineOutline and polylineGlow.
See the CZML Schema for more details. We plan on greatly improving this document in the coming weeks.
Added camera collision detection with terrain to the default mouse interaction.
Modified the default camera tilt mouse behavior to tilt about the point clicked, taking into account terrain.
Modified the default camera mouse behavior to look about the camera's position when the sky is clicked.
Cesium can now render an unlimited number of imagery layers, no matter how few texture units are supported by the hardware.
Added support for rendering terrain lighting with oct-encoded per-vertex normals. Added CesiumTerrainProvider.requestVertexNormals to request per vertex normals. Added hasVertexNormals property to all terrain providers to indicate whether or not vertex normals are included in the requested terrain tiles.
Added Globe.getHeight and Globe.pick for finding the terrain height at a given Cartographic coordinate and picking the terrain with a ray.
Added scene3DOnly options to Viewer, CesiumWidget, and Scene constructors. This setting optimizes memory usage and performance for 3D mode at the cost of losing the ability to use 2D or Columbus View.
Added forwardExtrapolationType, forwardExtrapolationDuration, backwardExtrapolationType, and backwardExtrapolationDuration to SampledProperty and SampledPositionProperty which allows the user to specify how a property calculates its value when outside the range of its sample data.
Prevent primitives from flashing off and on when modifying static DataSources.
Added the following methods to IntersectionTests: rayTriangle, lineSegmentTriangle, raySphere, and lineSegmentSphere.
Matrix types now have add and subtract functions.
Matrix3 type now has a fromCrossProduct function.
Added CesiumMath.signNotZero, CesiumMath.toSNorm and CesiumMath.fromSNorm functions.
DataSource & CZML models now default to North-East-Down orientation if none is provided.
TileMapServiceImageryProvider now works with tilesets created by tools that better conform to the TMS specification. In particular, a profile of global-geodetic or global-mercator is now supported (in addition to the previous geodetic and mercator) and in these profiles it is assumed that the X coordinates of the bounding box correspond to the longitude direction.
EntityCollection and CompositeEntityCollection now include the array of modified entities as the last parameter to their onCollectionChanged event.
RectangleGeometry, RectangleOutlineGeometry and RectanglePrimitive can cross the international date line.
Breaking changes (why so many?)
# symbol to separate identifier from property path. objectId.position should now be objectId#position.Cartesian2, Cartesian3, Cartesian4, TimeInterval, and JulianDate functions that take a result parameter now require the parameter (except for functions starting with from).Transforms.pointToWindowCoordinates and SceneTransforms.wgs84ToWindowCoordinates to return window coordinates with origin at the top left corner.Billboard.pixelOffset and Label.pixelOffset now have their origin at the top left corner.Replaced CameraFlightPath.createAnimation with Camera.flyTo and replaced CameraFlightPath.createAnimationRectangle with Camera.flyToRectangle. Code that looked like:
scene.animations.add(Cesium.CameraFlightPath.createAnimation(scene, {
destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
}));
should now look like:
scene.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0)
});
Camera.flyTo and Camera.flyToRectangle:options.duration is now in seconds, not milliseconds.options.endReferenceFrame to options.endTransform.options.onComplete to options.complete.options.onCancel to options.cancel.Scene.morphToColumbusView, Scene.morphTo2D, and Scene.morphTo3D parameter duration.HomeButton constructor parameter options.duration, HomeButtonViewModel constructor parameter duration, and HomeButtonViewModel.duration.SceneModePicker constructor parameter duration, SceneModePickerViewModel constructor parameter duration, and SceneModePickerViewModel.duration.Geocoder and GeocoderViewModel constructor parameter options.flightDuration and GeocoderViewModel.flightDuration.ScreenSpaceCameraController.bounceAnimationTime.FrameRateMonitor constructor parameter options.samplingWindow, options.quietPeriod, and options.warmupPeriod.JulianDate to be in line with other Core types.JulianDate.now() instead.JulianDate.getJulianTimeFraction and JulianDate.compareTonew JulianDate() -> JulianDate.now()date.getJulianDayNumber() -> date.dayNumberdate.getSecondsOfDay() -> secondsOfDaydate.getTotalDays() -> JulianDate.getTotalDays(date)date.getSecondsDifference(arg1, arg2) -> JulianDate.getSecondsDifference(arg2, arg1) (Note, order of arguments flipped)date.getDaysDifference(arg1, arg2) -> JulianDate.getDaysDifference(arg2, arg1) (Note, order of arguments flipped)date.getTaiMinusUtc() -> JulianDate.getTaiMinusUtc(date)date.addSeconds(seconds) -> JulianDate.addSeconds(date, seconds)date.addMinutes(minutes) -> JulianDate.addMinutes(date, minutes)date.addHours(hours) -> JulianDate.addHours(date, hours)date.addDays(days) -> JulianDate.addDays(date, days)date.lessThan(right) -> JulianDate.lessThan(left, right)date.lessThanOrEquals(right) -> JulianDate.lessThanOrEquals(left, right)date.greaterThan(right) -> JulianDate.greaterThan(left, right)date.greaterThanOrEquals(right) -> JulianDate.greaterThanOrEquals(left, right)Refactored TimeInterval to be in line with other Core types.
The constructor no longer requires parameters and now takes a single options parameter. Code that looked like:
new TimeInterval(startTime, stopTime, true, true, data);
should now look like:
new TimeInterval({
start : startTime,
stop : stopTime,
isStartIncluded : true,
isStopIncluded : true,
data : data
});
TimeInterval.fromIso8601 now takes a single options parameter. Code that looked like:
TimeInterval.fromIso8601(intervalString, true, true, data);
should now look like:
TimeInterval.fromIso8601({
iso8601 : intervalString,
isStartIncluded : true,
isStopIncluded : true,
data : data
});
interval.intersect(otherInterval) -> TimeInterval.intersect(interval, otherInterval)interval.contains(date) -> TimeInterval.contains(interval, date)
Removed TimeIntervalCollection.intersectInterval.
TimeIntervalCollection.findInterval now takes a single options parameter instead of individual parameters. Code that looked like:
intervalCollection.findInterval(startTime, stopTime, false, true);
should now look like:
intervalCollection.findInterval({
start : startTime,
stop : stopTime,
isStartIncluded : false,
isStopIncluded : true
});
TimeIntervalCollection.empty was renamed to TimeIntervalCollection.isEmptyScene.animations and AnimationCollection from the public Cesium API.color, outlineColor, and outlineWidth in DynamicPath with a material property.ModelAnimationCollection.add and ModelAnimationCollection.addAll renamed options.startOffset to options.delay. Also renamed ModelAnimation.startOffset to ModelAnimation.delay.Scene.scene2D.projection property with read-only Scene.mapProjection. Set this with the mapProjection option for the Viewer, CesiumWidget, or Scene constructors.Simon1994PlanetaryPositions functions ComputeSunPositionInEarthInertialFrame and ComputeMoonPositionInEarthInertialFrame to computeSunPositionInEarthInertialFrame and computeMoonPositionInEarthInertialFrame, respectively.Scene constructor function now takes an options parameter instead of individual parameters.CesiumWidget.showErrorPanel now takes a message parameter in between the previous title and error parameters.Camera.createCorrectPositionAnimation.LeapSecond.leapSeconds to JulianDate.leapSeconds.Event.removeEventListener no longer throws DeveloperError if the listener does not exist; it now returns false.SceneMode have better correspondence with mode names to help with debugging.Cesium now supports Internet Explorer 11.0.9 on desktops. For the best results, use the new IE Developer Channel for development.
ReferenceProperty can now handle sub-properties, for example, myObject#billboard.scale.
DynamicObject.id can now include period characters.
Added PolylineGlowMaterialProperty which enables data sources to use the PolylineGlow material.
Fixed support for embedded resources in glTF models.
Added HermitePolynomialApproximation.interpolate for performing interpolation when derivative information is available.
SampledProperty and SampledPositionProperty can now store derivative information for each sample value. This allows for more accurate interpolation when using HermitePolynomialApproximation.
Added FrameRateMonitor to monitor the frame rate achieved by a Scene and to raise a lowFrameRate event when it falls below a configurable threshold.
Added PerformanceWatchdog widget and viewerPerformanceWatchdogMixin.
Viewer and CesiumWidget now provide more user-friendly error messages when an initialization or rendering error occurs.
Viewer and CesiumWidget now take a new optional parameter, creditContainer.
Viewer can now optionally be constructed with a DataSourceCollection. Previously, it always created one itself internally.
Fixed a problem that could rarely lead to the camera's tilt property being NaN.
GeoJsonDataSource no longer uses the name or title property of the feature as the dynamic object's name if the value of the property is null.
Added TimeIntervalCollection.isStartIncluded and TimeIntervalCollection.isStopIncluded.
Added Cesium.VERSION to the combined Cesium.js file.
Made general improvements to the reference documentation.
Updated third-party Tween.js from r7 to r13.
Updated third-party JSDoc 3.3.0-alpha5 to 3.3.0-alpha9.
The development web server has been rewritten in Node.js, and is now included as part of each release.
Breaking changes (why so many?)
Scene.createTextureAtlas with new TextureAtlas.Removed CameraFlightPath.createAnimationCartographic. Code that looked like:
var flight = CameraFlightPath.createAnimationCartographic(scene, {
destination : cartographic
}); scene.animations.add(flight);
should now look like:
var flight = CameraFlightPath.createAnimation(scene, {
destination : ellipsoid.cartographicToCartesian(cartographic)
});
scene.animations.add(flight);
CesiumWidget.onRenderLoopError and Viewer.renderLoopError. They have been replaced by Scene.renderError.CompositePrimitive to PrimitiveCollection and added an options parameter to the constructor function.Shapes.compute2DCircle, Shapes.computeCircleBoundary and Shapes.computeEllipseBoundary. Instead, use CircleOutlineGeometry and EllipseOutlineGeometry. See the tutorial.PolylinePipeline, PolygonPipeline, Tipsify, FrustumCommands, and all Renderer types (except noted below) from the public Cesium API. These are still available but are not part of the official API and may change in future versions. Renderer types in particular are likely to change.PixelFormat from Renderer to Core.Renderer to Scene: TextureAtlas, TextureAtlasBuilder, BlendEquation, BlendFunction, BlendingState, CullFace, DepthFunction, StencilFunction, and StencilOperation.Scene to Core: TerrainProvider, ArcGisImageServerTerrainProvider, CesiumTerrainProvider, EllipsoidTerrainProvider, VRTheWorldTerrainProvider, TerrainData, HeightmapTerrainData, QuantizedMeshTerrainData, TerrainMesh, TilingScheme, GeographicTilingScheme, WebMercatorTilingScheme, sampleTerrain, TileProviderError, Credit.TilingScheme.createRectangleOfLevelZeroTiles, GeographicTilingScheme.createLevelZeroTiles and WebMercatorTilingScheme.createLevelZeroTiles.CameraColumbusViewMode.Enumeration.Added new functions to Cartesian3: fromDegrees, fromRadians, fromDegreesArray, fromRadiansArray, fromDegreesArray3D and fromRadiansArray3D. Added fromRadians to Cartographic.
Fixed dark lighting in 3D and Columbus View when viewing a primitive edge on. (#592)
Improved Internet Explorer 11.0.8 support including workarounds for rendering labels, billboards, and the sun.
Improved terrain and imagery rendering performance when very close to the surface.
Added preRender and postRender events to Scene.
Added Viewer.targetFrameRate and CesiumWidget.targetFrameRate to allow for throttling of the requestAnimationFrame rate.
Added Viewer.resolutionScale and CesiumWidget.resolutionScale to allow the scene to be rendered at a resolution other than the canvas size.
Camera.transform now works consistently across scene modes.
Fixed a bug that prevented sampleTerrain from working with STK World Terrain in Firefox.
sampleTerrain no longer fails when used with a TerrainProvider that is not yet ready.
Fixed problems that could occur when using ArcGisMapServerImageryProvider to access a tiled MapServer of non-global extent.
Added interleave option to Primitive constructor.
Upgraded JSDoc from 3.0 to 3.3.0-alpha5. The Cesium reference documentation now has a slightly different look and feel.
Upgraded Dojo from 1.9.1 to 1.9.3. NOTE: Dojo is only used in Sandcastle and not required by Cesium.
Scene.primitives.centralBody moved to Scene.globe.CesiumWidget.centralBody and Viewer.centralBody. Use CesiumWidget.scene.globe and Viewer.scene.globe.CentralBody to Globe.Model.computeWorldBoundingSphere with Model.boundingSphere.setDynamicObjectCollection, getDynamicObjectCollection, getScene, and removeAllPrimitives which are all superfluous after the introduction of DataSourceDisplay. The affected classes are:DynamicBillboardVisualizerDynamicConeVisualizerUsingCustomSensorDynamicLabelVisualizerDynamicModelVisualizerDynamicPathVisualizerDynamicPointVisualizerDynamicPyramidVisualizerDynamicVectorVisualizerGeometryVisualizerExtent -> RectangleExtentGeometry -> RectangleGeomtryExtentGeometryOutline -> RectangleGeometryOutlineExtentPrimitive -> RectanglePrimitiveBoundingRectangle.fromExtent -> BoundingRectangle.fromRectangleBoundingSphere.fromExtent2D -> BoundingSphere.fromRectangle2DBoundingSphere.fromExtentWithHeights2D -> BoundingSphere.fromRectangleWithHeights2DBoundingSphere.fromExtent3D -> BoundingSphere.fromRectangle3DEllipsoidalOccluder.computeHorizonCullingPointFromExtent -> EllipsoidalOccluder.computeHorizonCullingPointFromRectangleOccluder.computeOccludeePointFromExtent -> Occluder.computeOccludeePointFromRectangleCamera.getExtentCameraCoordinates -> Camera.getRectangleCameraCoordinatesCamera.viewExtent -> Camera.viewRectangleCameraFlightPath.createAnimationExtent -> CameraFlightPath.createAnimationRectangleTilingScheme.extentToNativeRectangle -> TilingScheme.rectangleToNativeRectangleTilingScheme.tileXYToNativeExtent -> TilingScheme.tileXYToNativeRectangleTilingScheme.tileXYToExtent -> TilingScheme.tileXYToRectangleDataSource get methods into properties.getName -> namegetClock -> clockgetChangedEvent -> changedEventgetDynamicObjectCollection -> dynamicObjectsgetErrorEvent -> errorEventBaseLayerPicker has been extended to support terrain selection (#1607).BaseLayerPicker constructor function now takes the container element and an options object instead of a CentralBody and ImageryLayerCollection.BaseLayerPickerViewModel constructor function now takes an options object instead of a CentralBody and ImageryLayerCollection.ImageryProviderViewModel -> ProviderViewModelBaseLayerPickerViewModel.selectedName -> BaseLayerPickerViewModel.buttonTooltipBaseLayerPickerViewModel.selectedIconUrl -> BaseLayerPickerViewModel.buttonImageUrlBaseLayerPickerViewModel.selectedItem -> BaseLayerPickerViewModel.selectedImageryBaseLayerPickerViewModel.imageryLayershas been removed and replaced with BaseLayerPickerViewModel.centralBodyTimeIntervalCollection.clear to TimeIntervalColection.removeAllContext is now private.Scene.context. Instead, use Scene.drawingBufferWidth, Scene.drawingBufferHeight, Scene.maximumAliasedLineWidth, and Scene.createTextureAtlas.Billboard.computeScreenSpacePosition, Label.computeScreenSpacePosition, SceneTransforms.clipToWindowCoordinates and SceneTransforms.clipToDrawingBufferCoordinates take a Scene parameter instead of a Context.Camera constructor takes Scene as parameter instead of ContextImageryProvider interface arenow require a hasAlphaChannel property.checkForChromeFrame since Chrome Frame is no longer supported by Google. See Google's official announcement.DataSource no longer need to implement getIsTimeVarying.NavigationHelpButton widget that, when clicked, displays information about how to navigate around the globe with the mouse. The new button is enabled by default in the Viewer widget.Model.minimumPixelSize property so models remain visible when the viewer zooms out.DynamicRectangle to support DataSource provided RectangleGeometry.DynamicWall to support DataSource provided WallGeometry.BingMapsImageryProvider and other imagery providers that return false from hasAlphaChannel.GridMaterial.GeometryVisualizer now creates geometry asynchronously to prevent locking up the browser.Clock.canAnimate to prevent time from advancing, even while the clock is animating.Viewer now prevents time from advancing if asynchronous geometry is being processed in order to avoid showing an incomplete picture. This can be disabled via the Viewer.allowDataSourcesToSuspendAnimation settings.Model.getMaterial, ModelMaterial, and ModelMesh.material.asynchronous and ready properties to Model.Cartesian4.fromColor and Color.fromCartesian4.getScale and getMaximumScale to Matrix2, Matrix3, and Matrix4.Breaking changes:
All CameraController functions have been moved up to the Camera. Removed CameraController. For example, code that looked like:
scene.camera.controller.viewExtent(extent);
should now look like:
scene.camera.viewExtent(extent);
ImageryLayer
getImageryProvider -> imageryProvidergetExtent -> extentBillboard, Label
getShow, setShow -> showgetPosition, setPosition -> positiongetPixelOffset, setPixelOffset -> pixelOffsetgetTranslucencyByDistance, setTranslucencyByDistance -> translucencyByDistancegetPixelOffsetScaleByDistance, setPixelOffsetScaleByDistance -> pixelOffsetScaleByDistancegetEyeOffset, setEyeOffset -> eyeOffsetgetHorizontalOrigin, setHorizontalOrigin -> horizontalOrigingetVerticalOrigin, setVerticalOrigin -> verticalOrigingetScale, setScale -> scalegetId -> idBillboard
getScaleByDistance, setScaleByDistance -> scaleByDistancegetImageIndex, setImageIndex -> imageIndexgetColor, setColor -> colorgetRotation, setRotation -> rotationgetAlignedAxis, setAlignedAxis -> alignedAxisgetWidth, setWidth -> widthgetHeight setHeight -> heightLabel
getText, setText -> textgetFont, setFont -> fontgetFillColor, setFillColor -> fillColorgetOutlineColor, setOutlineColor -> outlineColorgetOutlineWidth, setOutlineWidth -> outlineWidthgetStyle, setStyle -> stylePolygon
getPositions, setPositions -> positionsPolyline
getShow, setShow -> showgetPositions, setPositions -> positionsgetMaterial, setMeterial -> materialgetWidth, setWidth -> widthgetLoop, setLoop -> loopgetId -> idOccluder
getPosition -> positiongetRadius -> radiussetCameraPosition -> cameraPositionLeapSecond
getLeapSeconds, setLeapSeconds -> leapSecondsFullscreen
getFullscreenElement -> elementgetFullscreenChangeEventName -> changeEventNamegetFullscreenErrorEventName -> errorEventNameisFullscreenEnabled -> enabledisFullscreen -> fullscreenEvent
getNumberOfListeners -> numberOfListenersEllipsoidGeodesic
getSurfaceDistance -> surfaceDistancegetStart -> startgetEnd -> endgetStartHeading -> startHeadinggetEndHeading -> endHeadingAnimationCollection
getAll -> allCentralBodySurface
getTerrainProvider, setTerrainProvider -> terrainProviderCredit
getText -> textgetImageUrl -> imageUrlgetLink -> linkTerrainData, HightmapTerrainData, QuanitzedMeshTerrainData
getWaterMask -> waterMaskTile
getChildren -> childrenBuffer
getSizeInBytes -> sizeInBytesgetUsage -> usagegetVertexArrayDestroyable, setVertexArrayDestroyable -> vertexArrayDestroyableCubeMap
getPositiveX -> positiveXgetNegativeX -> negativeXgetPositiveY -> positiveYgetNegativeY -> negativeYgetPositiveZ -> positiveZgetNegativeZ -> negativeZCubeMap, Texture
getSampler, setSampler -> samplergetPixelFormat -> pixelFormatgetPixelDatatype -> pixelDatatypegetPreMultiplyAlpha -> preMultiplyAlphagetFlipY -> flipYgetWidth -> widthgetHeight -> heightCubeMapFace
getPixelFormat -> pixelFormatgetPixelDatatype -> pixelDatatypeFramebuffer
getNumberOfColorAttachments -> numberOfColorAttachmentsgetDepthTexture -> depthTexturegetDepthRenderbuffer -> depthRenderbuffergetStencilRenderbuffer -> stencilRenderbuffergetDepthStencilTexture -> depthStencilTexturegetDepthStencilRenderbuffer -> depthStencilRenderbufferhasDepthAttachment -> hasdepthAttachmentRenderbuffer
getFormat -> formatgetWidth -> widthgetHeight -> heightShaderProgram
getVertexAttributes -> vertexAttributesgetNumberOfVertexAttributes -> numberOfVertexAttributesgetAllUniforms -> allUniformsgetManualUniforms -> manualUniformsTexture
getDimensions -> dimensionsTextureAtlas
getBorderWidthInPixels -> borderWidthInPixelsgetTextureCoordinates -> textureCoordinatesgetTexture -> texturegetNumberOfImages -> numberOfImagesgetGUID -> guidVertexArray
getNumberOfAttributes -> numberOfAttributesgetIndexBuffer -> indexBufferBoundingRectangle
union, expandBoundingSphere
union, expand, getPlaneDistances, projectTo2DPlane
getPointDistanceRay
getPointSpherical
normalizeExtent
validate, getSouthwest, getNorthwest, getNortheast, getSoutheast, getCenter, intersectWith, contains, isEmpty, subsampleDataSource now has additional required properties, isLoading and loadingEvent as well as a new optional update method which will be called each frame.Stripe material uniforms lightColor and darkColor to evenColor and oddColor.SceneTransitioner with new functions and properties on the Scene: morphTo2D, morphToColumbusView, morphTo3D, completeMorphOnUserInput, morphStart, morphComplete, and completeMorph.TexturePool.Improved visual quality for translucent objects with Weighted Blended Order-Independent Transparency.
Fixed extruded polygons rendered in the southern hemisphere. #1490
Fixed Primitive picking that have a closed appearance drawn on the surface. #1333
Added StripeMaterialProperty for supporting the Stripe material in DynamicScene.
loadArrayBuffer, loadBlob, loadJson, loadText, and loadXML now support loading data from data URIs.
The debugShowBoundingVolume property on primitives now works across all scene modes.
Eliminated the use of a texture pool for Earth surface imagery textures. The use of the pool was leading to mipmapping problems in current versions of Google Chrome where some tiles would show imagery from entirely unrelated parts of the globe.
Scene
getCanvas -> canvasgetContext -> contextgetPrimitives -> primitivesgetCamera -> cameragetScreenSpaceCameraController -> screenSpaceCameraControllergetFrameState -> frameStategetAnimations -> animationsCompositePrimitive
getCentralBody, setCentralBody -> centralBodygetLength -> lengthEllipsoid
getRadii -> radiigetRadiiSquared -> radiiSquaredgetRadiiToTheFourth -> radiiToTheFourthgetOneOverRadii -> oneOverRadiigetOneOverRadiiSquared -> oneOverRadiiSquaredgetMinimumRadius -> minimumRadiusgetMaximumRadius -> maximumRadiusCentralBody
getEllipsoid -> ellipsoidgetImageryLayers -> imageryLayersEllipsoidalOccluder
getEllipsoid -> ellipsoidgetCameraPosition, setCameraPosition -> cameraPositionEllipsoidTangentPlane
getEllipsoid -> ellipsoidgetOrigin -> originGeographicProjection
getEllipsoid -> ellipsoidWebMercatorProjection
getEllipsoid -> ellipsoidSceneTransitioner
getScene -> scenegetEllipsoid -> ellipsoidScreenSpaceCameraController
getEllipsoid, setEllipsoid -> ellipsoidSkyAtmosphere
getEllipsoid -> ellipsoidTilingScheme, GeographicTilingScheme, WebMercatorTilingSheme
getEllipsoid -> ellipsoidgetExtent -> extentgetProjection -> projectionArcGisMapServerImageryProvider, BingMapsImageryProvider, GoogleEarthImageryProvider, GridImageryProvider, OpenStreetMapImageryProvider, SingleTileImageryProvider, TileCoordinatesImageryProvider, TileMapServiceImageryProvider, WebMapServiceImageryProvider
getProxy -> proxygetTileWidth -> tileWidthgetTileHeight -> tileHeightgetMaximumLevel -> maximumLevelgetMinimumLevel -> minimumLevelgetTilingScheme -> tilingSchemegetExtent -> extentgetTileDiscardPolicy -> tileDiscardPolicygetErrorEvent -> errorEventisReady -> readygetCredit -> creditArcGisMapServerImageryProvider, BingMapsImageryProvider, GoogleEarthImageryProvider, OpenStreetMapImageryProvider, SingleTileImageryProvider, TileMapServiceImageryProvider, WebMapServiceImageryProvider
getUrl -> urlArcGisMapServerImageryProvider
isUsingPrecachedTiles - > usingPrecachedTilesBingMapsImageryProvider
getKey -> keygetMapStyle -> mapStyleGoogleEarthImageryProvider
getPath -> pathgetChannel -> channelgetVersion -> versiongetRequestType -> requestTypeWebMapServiceImageryProvider
getLayers -> layersCesiumTerrainProvider, EllipsoidTerrainProvider, ArcGisImageServerTerrainProvider, VRTheWorldTerrainProvider
getErrorEvent -> errorEventgetCredit -> creditgetTilingScheme -> tilingSchemeisReady -> readyTimeIntervalCollection
getChangedEvent -> changedEventgetStart -> startgetStop -> stopgetLength -> lengthisEmpty -> emptyDataSourceCollection, ImageryLayerCollection, LabelCollection, PolylineCollection, SensorVolumeCollection
getLength -> lengthBillboardCollection
getLength -> lengthgetTextureAtlas, setTextureAtlas -> textureAtlasgetDestroyTextureAtlas, setDestroyTextureAtlas -> destroyTextureAtlasScene.getUniformState(). Use scene.context.getUniformState().dynamicObject property on the primitives they create. Instead, they set the id property that is standard for all primitives.propertyChanged on DynamicScene objects has been renamed to definitionChanged. Also, the event is now raised in the case of an existing property being modified as well as having a new property assigned (previously only property assignment would raise the event).visualizerTypes parameter to the DataSouceDisplay has been changed to a callback function that creates an array of visualizer instances.DynamicDirectionsProperty and DynamicVertexPositionsProperty were both removed, they have been superseded by PropertyArray and PropertyPositionArray, which make it easy for DataSource implementations to create time-dynamic arrays.VisualizerCollection has been removed. It is superseded by DataSourceDisplay.DynamicEllipsoidVisualizer, DynamicPolygonVisualizer, and DynamicPolylineVisualizer have been removed. They are superseded by GeometryVisualizer and corresponding GeometryUpdater implementations; EllipsoidGeometryUpdater, PolygonGeometryUpdater, PolylineGeometryUpdater.CameraFlightPath functions to take place in the camera's current reference frame. The arguments to the function now need to be given in world coordinates and an optional reference frame can be given when the flight is completed.PixelDatatype properties are now JavaScript numbers, not Enumeration instances.combine now takes two objects instead of an array, and defaults to copying shallow references. The allowDuplicates parameter has been removed. In the event of duplicate properties, the first object's properties will be used.FeatureDetection.supportsCrossOriginImagery. This check was only useful for very old versions of WebKit.Model for drawing 3D models using glTF. See the tutorial and Sandcastle example.SelectionIndicator and InfoBox widgets to Viewer, activated by viewerDynamicObjectMixin.CesiumTerrainProvider now supports mesh-based terrain like the tiles created by STK Terrain Server.CesiumInspector widget for graphics debugging. In Cesium Viewer, it is enabled by using the query parameter inspector=true. Also see the Sandcastle example.DynamicEllipse, DynamicPolygon, and DynamicEllipsoid now have properties matching their geometry counterpart, i.e. EllipseGeometry, EllipseOutlineGeometry, etc. These properties are also available in CZML.definitionChanged event to the Property interface as well as most DynamicScene objects. This makes it easy for a client to observe when new data is loaded into a property or object.isConstant property to the Property interface. Constant properties do not change in regards to simulation time, i.e. Property.getValue will always return the same result for all times.ConstantProperty is now mutable; it's value can be updated via ConstantProperty.setValue.GeographicTilingScheme.OpenStreetMapImageryProvider now supports imagery with a minimum level.BingMapsImageryProvider now uses HTTPS by default for metadata and tiles when the document is loaded over HTTPS.CreditDisplay.CreditDisplay by the BingMapsImageryProvider.WallGeometry bug that failed by removing positions that were less close together by less than 6 decimal places. #1483EllipsoidGeometry texture coordinates. #1454Polylines to join the first and last point. #960performance.now() instead of Date.now(), when available, to limit time spent loading terrain and imagery tiles. This results in more consistent frame rates while loading tiles on some systems.RequestErrorEvent now includes the headers that were returned with the error response.AssociativeArray, which is a helper class for maintaining a hash of objects that also needs to be iterated often.TimeIntervalCollection.getChangedEvent which returns an event that will be raised whenever intervals are updated.Material.fromType to override default uniforms. #1522Intersections2D class containing operations on 2D triangles.czm_inverseViewProjection and czm_inverseModelViewProjection automatic GLSL uniform.Viewer constructor argument options.fullscreenElement now matches the FullscreenButton default of document.body, it was previously the Viewer container itself.Viewer.objectTracked event; Viewer.trackedObject is now an ES5 Knockout observable that can be subscribed to directly.PerformanceDisplay with Scene.debugShowFramesPerSecond.Asphalt, Blob, Brick, Cement, Erosion, Facet, Grass, TieDye, and Wood materials were moved to the Materials Pack Plugin.GeometryPipeline.createAttributeIndices to GeometryPipeline.createAttributeLocations.attributeIndices property to attributeLocations when calling Context.createVertexArrayFromGeometry.PerformanceDisplay requires a DOM element as a parameter.Viewer now monitors the clock settings of the first added DataSource for changes, and also now has a constructor option automaticallyTrackFirstDataSourceClock which will turn off this behavior.DynamicObjectCollection created by CzmlDataSource now sends a single collectionChanged event after CZML is loaded; previously it was sending an event every time an object was created or removed during the load process.ScreenSpaceCameraController.enableInputs to fix issue with inputs not being restored after overlapping camera flights.TileMapServiceImageryProvider can now handle casing differences in tilemapresource.xml.OpenStreetMapImageryProvider now supports imagery with a minimum level.Quaternion.fastSlerp and Quaternion.fastSquad.Breaking changes:
Added allowTextureFilterAnisotropic (default: true) and failIfMajorPerformanceCaveat (default: true) properties to the contextOptions property passed to Viewer, CesiumWidget, and Scene constructors and moved the existing properties to a new webgl sub-property. For example, code that looked like:
var viewer = new Viewer('cesiumContainer', {
contextOptions : {
alpha : true
}
});
should now look like:
var viewer = new Viewer('cesiumContainer', {
contextOptions : {
webgl : {
alpha : true
}
}
});
The read-only Cartesian3 objects must now be cloned to camera properties instead of assigned. For example, code that looked like:
camera.up = Cartesian3.UNIT_Z;
should now look like:
Cartesian3.clone(Cartesian3.UNIT_Z, camera.up);
BaseLayerPicker.css, no longer import other CSS files. Most applications should import widgets.css (and optionally lighter.css).SvgPath has been replaced by a Knockout binding: cesiumSvgPath.DynamicObject.availability is now a TimeIntervalCollection instead of a TimeInterval.BoundingSphere.transform.Matrix4.multiplyByPoint now returns a Cartesian3 instead of a Cartesian4.The minified, combined Cesium.js file now omits certain DeveloperError checks, to increase performance and reduce file size. When developing your application, we recommend using the unminified version locally for early error detection, then deploying the minified version to production.
Fixed disabling CentralBody.enableLighting.
Fixed Geocoder flights when following an object.
The Viewer widget now clears Geocoder input when the user clicks the home button.
The Geocoder input type has been changed to search, which improves usability (particularly on mobile devices). There were also some other minor styling improvements.
Added CentralBody.maximumScreenSpaceError.
Added translateEventTypes, zoomEventTypes, rotateEventTypes, tiltEventTypes, and lookEventTypes properties to ScreenSpaceCameraController to change the default mouse inputs.
Added Billboard.setPixelOffsetScaleByDistance, Label.setPixelOffsetScaleByDistance, DynamicBillboard.pixelOffsetScaleByDistance, and DynamicLabel.pixelOffsetScaleByDistance to control minimum/maximum pixelOffset scaling based on camera distance.
Added BoundingSphere.transformsWithoutScale.
Added fromArray function to Matrix2, Matrix3 and Matrix4.
Added Matrix4.multiplyTransformation, Matrix4.multiplyByPointAsVector.
Breaking changes:
Changed the CatmulRomSpline and HermiteSpline constructors from taking an array of structures to a structure of arrays. For example, code that looked like:
var controlPoints = [
{ point: new Cartesian3(1235398.0, -4810983.0, 4146266.0), time: 0.0},
{ point: new Cartesian3(1372574.0, -5345182.0, 4606657.0), time: 1.5},
{ point: new Cartesian3(-757983.0, -5542796.0, 4514323.0), time: 3.0},
{ point: new Cartesian3(-2821260.0, -5248423.0, 4021290.0), time: 4.5},
{ point: new Cartesian3(-2539788.0, -4724797.0, 3620093.0), time: 6.0}
]; var spline = new HermiteSpline(controlPoints);
should now look like:
var spline = new HermiteSpline({
times : [ 0.0, 1.5, 3.0, 4.5, 6.0 ],
points : [
new Cartesian3(1235398.0, -4810983.0, 4146266.0),
new Cartesian3(1372574.0, -5345182.0, 4606657.0),
new Cartesian3(-757983.0, -5542796.0, 4514323.0),
new Cartesian3(-2821260.0, -5248423.0, 4021290.0),
new Cartesian3(-2539788.0, -4724797.0, 3620093.0)
]
});
loadWithXhr now takes an options object, and allows specifying HTTP method and data to send with the request.SceneTransitioner.onTransitionStart to SceneTransitioner.transitionStart.SceneTransitioner.onTransitionComplete to SceneTransitioner.transitionComplete.CesiumWidget.onRenderLoopError to CesiumWidget.renderLoopError.SceneModePickerViewModel.onTransitionStart to SceneModePickerViewModel.transitionStart.Viewer.onRenderLoopError to Viewer.renderLoopError.Viewer.onDropError to Viewer.dropError.CesiumViewer.onDropError to CesiumViewer.dropError.viewerDragDropMixin.onDropError to viewerDragDropMixin.dropError.viewerDynamicObjectMixin.onObjectTracked to viewerDynamicObjectMixin.objectTracked.PixelFormat, PrimitiveType, IndexDatatype, TextureWrap, TextureMinificationFilter, and TextureMagnificationFilter properties are now JavaScript numbers, not Enumeration instances.sizeInBytes properties on IndexDatatype with IndexDatatype.getSizeInBytes.Added perPositionHeight option to PolygonGeometry and PolygonOutlineGeometry.
Added QuaternionSpline and LinearSpline.
Added Quaternion.log, Quaternion.exp, Quaternion.innerQuadrangle, and Quaternion.squad.
Added Matrix3.inverse and Matrix3.determinant.
Added ObjectOrientedBoundingBox.
Added Ellipsoid.transformPositionFromScaledSpace.
Added Math.nextPowerOfTwo.
Renamed our main website from cesium.agi.com to cesiumjs.org.
Matrix3.fromQuaternion to be consistent with graphics conventions. Mirrored change in Quaternion.fromRotationMatrix.Matrix2, Matrix3, and Matrix4: toArray, getColumn, setColumn, getRow, setRow, multiply, multiplyByVector, multiplyByScalar, negate, and transpose.Matrix4: getTranslation, getRotation, inverse, inverseTransformation, multiplyByTranslation, multiplyByUniformScale, multiplyByPoint. For example, code that previously looked like matrix.toArray(); should now look like Matrix3.toArray(matrix);.DynamicPolyline color, outlineColor, and outlineWidth properties with a single material property.DynamicBillboard.nearFarScalar to DynamicBillboard.scaleByDistance.DataSource.getName, which returns a user-readable name for the data source.document objects are no longer added to the DynamicObjectCollection created by CzmlDataSource. Use the CzmlDataSource interface to access the data instead.TimeInterval.equals, and TimeInterval.equalsEpsilon now compare interval data as well.Widgets/Images and replaced by a new SvgPath class.CesiumWidget.css for global Cesium button styles.container to be the toolbar itself now, no need for separate containers for each widget on the bar.Property implementations are now required to implement a prototype equals function.ConstantProperty and TimeIntervalCollectionProperty no longer take a clone function and instead require objects to implement prototype clone and equals functions.SkyBox constructor now takes an options argument with a sources property, instead of directly taking sources.SkyBox.getSources with SkyBox.sources.bearing property of DynamicEllipse is now called rotation.ellipse.bearing property is now ellipse.rotation.Geocoder widget that allows users to enter an address or the name of a landmark and zoom to that location. It is enabled by default in applications that use the Viewer widget.GoogleEarthImageryProvider.Moon for drawing the moon, and IauOrientationAxes for computing the Moon's orientation.Material.translucent property. Set this property or Appearance.translucent for correct rendering order. Translucent geometries are rendered after opaque geometries.enableLighting, lightingFadeOutDistance, and lightingFadeInDistance properties to CentralBody to configure lighting.Billboard.setTranslucencyByDistance, Label.setTranslucencyByDistance, DynamicBillboard.translucencyByDistance, and DynamicLabel.translucencyByDistance to control minimum/maximum translucency based on camera distance.PolylineVolumeGeometry and PolylineVolumeGeometryOutline.Shapes.compute2DCircle.Appearances tab to Sandcastle with an example for each geometry appearance.Scene.drillPick to return list of objects each containing 1 primitive at a screen space position.PolylineOutlineMaterialProperty for use with DynamicPolyline.material.Array and JulianDate objects as custom CZML properties.DynamicObject.name and corresponding CZML support. This is a non-unique, user-readable name for the object.DynamicObject.parent and corresponding CZML support. This allows for DataSource objects to present data hierarchically.DynamicPoint.scaleByDistance to control minimum/maximum point size based on distance from the camera.skyBox to the CesiumWidget and Viewer constructors for changing the default stars.Matrix4.fromTranslationQuaternionRotationScale and Matrix4.multiplyByScale.Matrix3.getEigenDecomposition.getFilenameFromUri, which given a URI with or without query parameters, returns the last segment of the URL.equals and equalsEpsilon method back to Cartesian2, Cartesian3, Cartesian4, and Quaternion.NearFarScalar, and TimeIntervalCollection.FrameState.events.Primitive.allowPicking to save memory when picking is not needed.debugShowBoundingVolume, for debugging primitive rendering, to Primitive, Polygon, ExtentPrimitive, EllipsoidPrimitive, BillboardCollection, LabelCollection, and PolylineCollection.DebugModelMatrixPrimitive for debugging primitive's modelMatrix.options argument to the EllipsoidPrimitive constructor.Added a user-defined id to all primitives for use with picking. For example:
primitives.add(new Polygon({
id : {
// User-defined object returned by Scene.pick
},
// ...
}));
// ...
var p = scene.pick(/* ... */);
if (defined(p) && defined(p.id)) {
// Use properties and functions in p.id
}
Breaking changes:
Cesium now prints a reminder to the console if your application uses Bing Maps imagery and you do not supply a Bing Maps key for your application. This is a reminder that you should create a Bing Maps key for your application as soon as possible and prior to deployment. You can generate a Bing Maps key by visiting https://www.bingmapsportal.com/. Set the BingMapsApi.defaultKey property to the value of your application's key before constructing the CesiumWidget or any other types that use the Bing Maps API.
BingMapsApi.defaultKey = 'my-key-generated-with-bingmapsportal.com';
Scene.pick now returns an object with a primitive property, not the primitive itself. For example, code that looked like:
var primitive = scene.pick(/* ... */); if (defined(primitive)) {
// Use primitive
}
should now look like:
var p = scene.pick(/* ... */);
if (defined(p) && defined(p.primitive)) {
// Use p.primitive
}
getViewMatrix, getInverseViewMatrix, getInverseTransform, getPositionWC, getDirectionWC, getUpWC and getRightWC from Camera. Instead, use the viewMatrix, inverseViewMatrix, inverseTransform, positionWC, directionWC, upWC, and rightWC properties.getProjectionMatrix and getInfiniteProjectionMatrix from PerspectiveFrustum, PerspectiveOffCenterFrustum and OrthographicFrustum. Instead, use the projectionMatrix and infiniteProjectionMatrix properties.The following prototype functions were removed:
From Quaternion: conjugate, magnitudeSquared, magnitude, normalize, inverse, add, subtract, negate, dot, multiply, multiplyByScalar, divideByScalar, getAxis, getAngle, lerp, slerp, equals, equalsEpsilon
From Cartesian2, Cartesian3, and Cartesian4: getMaximumComponent, getMinimumComponent, magnitudeSquared, magnitude, normalize, dot, multiplyComponents, add, subtract, multiplyByScalar, divideByScalar, negate, abs, lerp, angleBetween, mostOrthogonalAxis, equals, and equalsEpsilon.
From Cartesian3: cross
Code that previously looked like quaternion.magnitude(); should now look like Quaternion.magnitude(quaternion);.
DynamicObjectCollection and CompositeDynamicObjectCollection have been largely re-written, see the documentation for complete details. Highlights include:getObject has been renamed getById.removeObject has been renamed removeById.collectionChanged event added for notification of objects being added or removed.DynamicScene graphics object (DynamicBillboard, etc...) have had their static mergeProperties and clean functions removed.UniformState.update now takes a context as its first parameter.Camera constructor now takes a context instead of a canvas.SceneTransforms.clipToWindowCoordinates now takes a context instead of a canvas.canvasDimensions from FrameState.context option from Material constructor and parameter from Material.fromType.TextureWrap.CLAMP to TextureWrap.CLAMP_TO_EDGE.Added Geometries tab to Sandcastle with an example for each geometry type.
Added CorridorOutlineGeometry.
Added PolylineGeometry, PolylineColorAppearance, and PolylineMaterialAppearance.
Added colors option to SimplePolylineGeometry for per vertex or per segment colors.
Added proper support for browser zoom.
Added propertyChanged event to DynamicScene graphics objects for receiving change notifications.
Added prototype clone and merge functions to DynamicScene graphics objects.
Added width, height, and nearFarScalar properties to DynamicBillboard for controlling the image size.
Added heading and tilt properties to CameraController.
Added Scene.sunBloom to enable/disable the bloom filter on the sun. The bloom filter should be disabled for better frame rates on mobile devices.
Added getDrawingBufferWidth and getDrawingBufferHeight to Context.
Added new built-in GLSL functions czm_getLambertDiffuse and czm_getSpecular.
Added support for EXT_frag_depth.
Improved graphics performance.
Improved runtime generation of GLSL shaders.
Made sun size accurate.
Fixed bug in triangulation that fails on complex polygons. Instead, it makes a best effort to render what it can. #1121
Fixed geometries not closing completely. #1093
Fixed EllipsoidTangentPlane.projectPointOntoPlane for tangent planes on an ellipsoid other than the unit sphere.
CompositePrimitive.add now returns the added primitive. This allows us to write more concise code.
var p = new Primitive(/* ... */);
primitives.add(p);
return p;
becomes
return primitives.add(new Primitive(/* ... */));
This releases fixes 2D and other issues with Chrome 29.0.1547.57 (#1002 and #1047).
Breaking changes:
CameraFlightPath functions createAnimation, createAnimationCartographic, and createAnimationExtent now take scene as their first parameter instead of frameState.DynamicScene property system to vastly improve the API. See #1080 for complete details.CzmlBoolean, CzmlCartesian2, CzmlCartesian3, CzmlColor, CzmlDefaults, CzmlDirection, CzmlHorizontalOrigin, CzmlImage, CzmlLabelStyle, CzmlNumber, CzmlPosition, CzmlString, CzmlUnitCartesian3, CzmlUnitQuaternion, CzmlUnitSpherical, and CzmlVerticalOrigin since they are no longer needed.DynamicProperty, DynamicMaterialProperty, DynamicDirectionsProperty, and DynamicVertexPositionsProperty; replacing them with an all new system of properties.
Property - base interface for all properties.CompositeProperty - a property composed of other properties.ConstantProperty - a property whose value never changes.SampledProperty - a property whose value is interpolated from a set of samples.TimeIntervalCollectionProperty - a property whose value changes based on time interval.MaterialProperty - base interface for all material properties.CompositeMaterialProperty - a CompositeProperty for materials.ColorMaterialProperty - a property that maps to a color material. (replaces DynamicColorMaterial)GridMaterialProperty - a property that maps to a grid material. (replaces DynamicGridMaterial)ImageMaterialProperty - a property that maps to an image material. (replaces DynamicImageMaterial)PositionProperty- base interface for all position properties.CompositePositionProperty - a CompositeProperty for positions.ConstantPositionProperty - a PositionProperty whose value does not change in respect to the ReferenceFrame in which is it defined.SampledPositionProperty - a SampledProperty for positions.TimeIntervalCollectionPositionProperty - A TimeIntervalCollectionProperty for positions.processCzml, use CzmlDataSource instead.Source/Widgets/Viewer/lighter.css was deleted, use Source/Widgets/lighter.css instead.ExtentGeometry parameters for extruded extent to make them consistent with other geometries.options.extrudedOptions.height -> options.extrudedHeightoptions.extrudedOptions.closeTop -> options.closeBottomoptions.extrudedOptions.closeBottom -> options.closeTopGeometry constructors no longer compute vertices or indices. Use the type's createGeometry method. For example, code that looked like:
var boxGeometry = new BoxGeometry({
minimumCorner : min,
maximumCorner : max,
vertexFormat : VertexFormat.POSITION_ONLY
});
should now look like:
var box = new BoxGeometry({
minimumCorner : min,
maximumCorner : max,
vertexFormat : VertexFormat.POSITION_ONLY
});
var geometry = BoxGeometry.createGeometry(box);
createTypedArray and createArrayBufferView from each of the ComponentDatatype enumerations. Instead, use ComponentDatatype.createTypedArray and ComponentDatatype.createArrayBufferView.DataSourceDisplay now requires a DataSourceCollection to be passed into its constructor.DeveloperError and RuntimeError no longer contain an error property. Call toString, or check the stack property directly instead.createPickFragmentShaderSource with createShaderSource.PolygonPipeline.earClip2D to PolygonPipeline.triangulate.Added outline geometries. #1021.
Added CorridorGeometry.
Added Billboard.scaleByDistance and NearFarScalar to control billboard minimum/maximum scale based on camera distance.
Added EllipsoidGeodesic.
Added PolylinePipeline.scaleToSurface.
Added PolylinePipeline.scaleToGeodeticHeight.
Added the ability to specify a minimumTerrainLevel and maximumTerrainLevel when constructing an ImageryLayer. The layer will only be shown for terrain tiles within the specified range.
Added Math.setRandomNumberSeed and Math.nextRandomNumber for generating repeatable random numbers.
Added Color.fromRandom to generate random and partially random colors.
Added an onCancel callback to CameraFlightPath functions that will be executed if the flight is canceled.
Added Scene.debugShowFrustums and Scene.debugFrustumStatistics for rendering debugging.
Added Packable and PackableForInterpolation interfaces to aid interpolation and in-memory data storage. Also made most core Cesium types implement them.
Added InterpolationAlgorithm interface to codify the base interface already being used by LagrangePolynomialApproximation, LinearApproximation, and HermitePolynomialApproximation.
Improved the performance of polygon triangulation using an O(n log n) algorithm.
Improved geometry batching performance by moving work to a web worker.
Improved WallGeometry to follow the curvature of the earth.
Improved visual quality of closed translucent geometries.
Optimized polyline bounding spheres.
Viewer now automatically sets its clock to that of the first added DataSource, regardless of how it was added to the DataSourceCollection. Previously, this was only done for dropped files by viewerDragDropMixin.
CesiumWidget and Viewer now display an HTML error panel if an error occurs while rendering, which can be disabled with a constructor option.
CameraFlightPath now automatically disables and restores mouse input for the flights it generates.
Fixed broken surface rendering in Columbus View when using the EllipsoidTerrainProvider.
Fixed triangulation for polygons that cross the international date line.
Fixed EllipsoidPrimitive rendering for some oblate ellipsoids. #1067.
Fixed Cesium on Nexus 4 with Android 4.3.
Upgraded Knockout from version 2.2.1 to 2.3.0.
CubeMapEllipsoidTessellator with EllipsoidGeometry.BoxTessellator with BoxGeometry.ExtentTessletaor with ExtentGeometry.PlaneTessellator. It was incomplete and not used.MeshFilters to GeometryPipeline.MeshFilters.toWireframeInPlace to GeometryPipeline.toWireframe.MeshFilters.mapAttributeIndices. It was not used.Context.createVertexArrayFromMesh to Context.createVertexArrayFromGeometry. Likewise, renamed mesh constructor property to geometry.ComponentDatatype.*.toTypedArray to ComponentDatatype.*.createTypedArray.Polygon.configureExtent. Use ExtentPrimitive instead.Polygon.bufferUsage. It is no longer needed.height and textureRotationAngle arguments from Polygon setPositions and configureFromPolygonHierarchy functions. Use Polygon height and textureRotationAngle properties.PolygonPipeline.cleanUp to PolygonPipeline.removeDuplicates.PolygonPipeline.wrapLongitude. Use GeometryPipeline.wrapLongitude instead.surfaceHeight parameter to BoundingSphere.fromExtent3D.surfaceHeight parameter to Extent.subsample.pointInsideTriangle2D to pointInsideTriangle.getLogo to getCredit for ImageryProvider and TerrainProvider.intersectionWidth to DynamicCone, DynamicPyramid, CustomSensorVolume, and RectangularPyramidSensorVolume.ExtentPrimitive.PolylinePipeline.removeDuplicates.barycentricCoordinates to compute the barycentric coordinates of a point in a triangle.BoundingSphere.fromEllipsoid.BoundingSphere.projectTo2D.Extent.fromDegrees.czm_tangentToEyeSpaceMatrix built-in GLSL function.DrawCommand.debugShowBoundingVolume and Scene.debugCommandFilter.ExtentGeometry.Credit and CreditDisplay for displaying credits on the screen.CustomSensorVolume and RectangularPyramidSensorVolume.configureFromPolygonHierarchy.CesiumViewerWidget and replaced it with a new Viewer widget with mixin architecture. This new widget does not depend on Dojo and is part of the combined Cesium.js file. It is intended to be a flexible base widget for easily building robust applications. (#838)clockViewModel.shouldAnimate() -> clockViewModel.shouldAnimateclockViewModel.shouldAnimate(true); -> clockViewModel.shouldAnimate = true;ImageryProviderViewModel.fromConstants has been removed. Use the ImageryProviderViewModel constructor directly.transitioner property on CesiumWidget, HomeButton, and ScreenModePicker to sceneTrasitioner to be consistent with property naming convention.ImageryProvider.loadImage now requires that the calling imagery provider instance be passed as its first parameter.checkForChromeFrame function, and replaced it with a new standalone version that returns a promise to signal when the asynchronous check has completed.Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg. If you were previously using this image with SingleTileImageryProvider, consider instead using TileMapServiceImageryProvider with a URL of Assets/Textures/NaturalEarthII.Client CZML SandCastle demo has been removed, largely because it is redundant with the Simple CZML demo.Two Viewer Widgets SandCastle demo has been removed. We will add back a multi-scene example when we have a good architecture for it in place.clone functions in all objects such that if the object being cloned is undefined, the function will return undefined instead of throwing an exception.CesiumWidget (#608, #834).Billboards.TileMapServiceImageryProvider now supports imagery with a minimum level. This improves compatibility with tile sets generated by MapTiler or gdal2tiles.py using their default settings.Context.getAntialias.BaseLayerPicker where destroy wasn't properly cleaning everything up.Timeline update event.screenSpaceEventHandler property to CesiumWidget. Also added a sceneMode option to the constructor to set the initial scene mode.useDefaultRenderLoop property to CesiumWidget that allows the default render loop to be disabled so that a custom render loop can be used.CesiumWidget.onRenderLoopError which is an Event that is raised if an exception is generated inside of the default render loop.ImageryProviderViewModel.creationCommand can now return an array of ImageryProvider instances, which allows adding multiple layers when a single item is selected in the BaseLayerPicker widget.Uniform.getFrameNumber and Uniform.getTime with Uniform.getFrameState, which returns the full frame state.Widgets/Fullscreen folder to Widgets/FullscreenButton along with associated objects/files.FullscreenWidget -> FullscreenButtonFullscreenViewModel -> FullscreenButtonViewModeladdAttribute, removeAttribute, and setIndexBuffer from VertexArray. They were not used.DynamicObjectView in 3D. The object automatically selects LVLH or EastNorthUp based on the object's velocity.CzmlDirection, DynamicVector, and DynamicVectorVisualizer objects.SceneTransforms.wgs84ToWindowCoordinates. #746.fromElements to Cartesian2, Cartesian3, and Cartesian4.DrawCommand.cull to avoid redundant visibility checks.czm_morphTime automatic GLSL uniform.IntersectionTests.trianglePlaneIntersection.computeHorizonCullingPoint, computeHorizonCullingPointFromVertices, and computeHorizonCullingPointFromExtent methods to EllipsoidalOccluder and used them to build a more accurate horizon occlusion test for terrain rendering.Sun and Scene.sun.HomeButton widget for returning to the default view of the current scene mode.Command.beforeExecute and Command.afterExecute events to enable additional processing when a command is executed.Polygon.configureExtent.CameraController.getExtentCameraCoordinates and CameraFlightPath.createAnimationExtent.frameState.mode === SceneMode.MORPHING.2008-11-10T14:00:00+02:30.Breaking changes:
Removed the color, outline color, and outline width properties of polylines. Instead, use materials for polyline color and outline properties. Code that looked like:
var polyline = polylineCollection.add({
positions : positions,
color : new Color(1.0, 1.0, 1.0, 1.0),
outlineColor : new Color(1.0, 0.0, 0.0, 1.0),
width : 1.0,
outlineWidth : 3.0
});
should now look like:
var outlineMaterial = Material.fromType(context, Material.PolylineOutlineType);
outlineMaterial.uniforms.color = new Color(1.0, 1.0, 1.0, 1.0);
outlineMaterial.uniforms.outlineColor = new Color(1.0, 0.0, 0.0, 1.0);
outlineMaterial.uniforms.outlinewidth = 2.0;
var polyline = polylineCollection.add({
positions : positions,
width : 3.0,
material : outlineMaterial
});
CzmlCartographic has been removed and all cartographic values are converted to Cartesian internally during CZML processing. This improves performance and fixes interpolation of cartographic source data. The Cartographic representation can still be retrieved if needed.ComplexConicSensorVolume, which was not documented and did not work on most platforms. It will be brought back in a future release. This does not affect CZML, which uses a custom sensor to approximate a complex conic.computeSunPosition with Simon1994PlanetaryPosition, which has functions to calculate the position of the sun and the moon more accurately.Context.createClearState. These properties are now part of ClearCommand.RenderState objects returned from Context.createRenderState are now immutable.positionMC from czm_materialInput. It is no longer used by any materials.Added wide polylines that work with and without ANGLE.
Polylines now use materials to describe their surface appearance. See the Fabric wiki page for more details on how to create materials.
Added new PolylineOutline, PolylineGlow, PolylineArrow, and Fade materials.
Added czm_pixelSizeInMeters automatic GLSL uniform.
Added AnimationViewModel.snapToTicks, which when set to true, causes the shuttle ring on the Animation widget to snap to the defined tick values, rather than interpolate between them.
Added Color.toRgba and Color.fromRgba to convert to/from numeric unsigned 32-bit RGBA values.
Added GridImageryProvider for custom rendering effects and debugging.
Added new Grid material.
Made EllipsoidPrimitive double-sided.
Improved rendering performance by minimizing WebGL state calls.
Fixed an error in Web Worker creation when loading Cesium.js from a different origin.
Fixed EllipsoidPrimitive picking and picking objects with materials that have transparent parts.
Fixed imagery smearing artifacts on mobile devices and other devices without high-precision fragment shaders.
Billboard.computeScreenSpacePosition now takes Context and FrameState arguments instead of a UniformState argument.clampToPixel property from BillboardCollection and LabelCollection. This option is no longer needed due to overall LabelCollection visualization improvements.Widgets/Dojo/CesiumWidget and replaced it with Widgets/CesiumWidget, which has no Dojo dependancies.destroyObject no longer deletes properties from the object being destroyed.darker.css files have been deleted and the darker theme is now the default style for widgets. The original theme is now known as lighter and is in corresponding lighter.css files.cesium-<widget>-<className>.view2D, view3D, and viewColumbus properties from CesiumViewerWidget. Use the sceneTransitioner property instead.BoundingSphere.fromCornerPoints.fromArray and distance functions to Cartesian2, Cartesian3, and Cartesian4.DynamicPath.resolution property for setting the maximum step size, in seconds, to take when sampling a position for path visualization.TileCoordinatesImageryProvider that renders imagery with tile X, Y, Level coordinates on the surface of the globe. This is mostly useful for debugging.DynamicEllipse and DynamicObject.ellipse property to render CZML ellipses on the globe.sampleTerrain function to sample the terrain height of a list of Cartographic positions.DynamicObjectCollection.removeObject and handling of the new CZML delete property.alpha of exactly 0.0 are no longer rendered. Previously these invisible layers were rendered normally, which was a waste of resources. Unlike the show property, imagery tiles in a layer with an alpha of 0.0 are still downloaded, so the layer will become visible more quickly when its alpha is increased.onTransitionStart and onTransitionComplete events to SceneModeTransitioner.SceneModePicker; a new widget for morphing between scene modes.BaseLayerPicker; a new widget for switching among pre-configured base layer imagery providers.Animation widget for controlling playback.ClockStep.SYSTEM_CLOCK_DEPENDENT was renamed to ClockStep.SYSTEM_CLOCK_MULTIPLIER.ClockStep.SYSTEM_CLOCK was added to have the clock always match the system time.ClockRange.LOOP was renamed to ClockRange.LOOP_STOP and now only loops in the forward direction.Clock.reverseTick was removed, simply negate Clock.multiplier and pass it to Clock.tick.Clock.shouldAnimate was added to indicate if Clock.tick should actually advance time.Dojo/TimelineWidget was removed. You should use the non-toolkit specific Timeline widget directly.CesiumViewerWidget.fullScreenElement, instead use the CesiumViewerWidget.fullscreen.viewModel.fullScreenElement observable property.IntersectionTests.rayPlane now takes the new Plane type instead of separate planeNormal and planeD arguments.ImageryProviderError to TileProviderError.CesiumTerrainProvider, ArcGisImageServerTerrainProvider, and VRTheWorldTerrainProvider. See the Terrain Tutorial for more information.FullscreenWidget which is a simple, single-button widget that toggles fullscreen mode of the specified element.Picking Sandcastle example.HeightmapTessellator to create a mesh from a heightmap.JulianDate.equals.Plane for representing the equation of a plane.IntersectionTests.PolylineCollection with a model matrix other than the identity would be incorrectly rendered in 2D and Columbus view.ScreenSpaceCameraController where disabled mouse events can cause the camera to be moved after being re-enabled.Cesium.js file and other required files are now created in Build/Cesium and Build/CesiumUnminified folders.Cesium.js file are now in a Workers subdirectory.erosion property from Polygon, ComplexConicSensorVolume, RectangularPyramidSensorVolume, and ComplexConicSensorVolume. Use the new Erosion material. See the Sandbox Animation example.setRectangle and getRectangle methods from ViewportQuad. Use the new rectangle property.time parameter from Scene.initializeFrame. Instead, pass the time to Scene.render.RimLighting and Erosion materials. See the Fabric wiki page.hue and saturation properties to ImageryLayer.czm_hue and czm_saturation to adjust the hue and saturation of RGB colors.JulianDate.getDaysDifference method.Transforms.computeIcrfToFixedMatrix and computeFixedToIcrfMatrix.EarthOrientationParameters, EarthOrientationParametersSample, Iau2006XysData, and Iau2006XysDataSample classes to Core.ViewportQuad now supports the material system. See the Fabric wiki page.EllipsoidPrimitive.Breaking changes:
Renamed the server property to url when constructing a BingMapsImageryProvider. Likewise, renamed BingMapsImageryProvider.getServer to BingMapsImageryProvider.getUrl. Code that looked like
var bing = new BingMapsImageryProvider({
server : 'dev.virtualearth.net'
});
should now look like:
var bing = new BingMapsImageryProvider({
url : 'http://dev.virtualearth.net'
});
toCSSColor to toCssColorString.minimumZoomDistance and maximumZoomDistance from the CameraController to the ScreenSpaceCameraController.Added fromCssColorString to Color to create a Color instance from any CSS value.
Added fromHsl to Color to create a Color instance from H, S, L values.
Added Scene.backgroundColor.
Added textureRotationAngle parameter to Polygon.setPositions and Polygon.configureFromPolygonHierarchy to rotate textures on polygons.
Added Matrix3.fromRotationX, Matrix3.fromRotationY, Matrix3.fromRotationZ, and Matrix2.fromRotation.
Added fromUniformScale to Matrix2, Matrix3, and Matrix4.
Added fromScale to Matrix2.
Added multiplyByUniformScale to Matrix4.
Added flipY property when calling Context.createTexture2D and Context.createCubeMap.
Added MeshFilters.encodePosition and EncodedCartesian3.encode.
Fixed jitter artifacts with polygons.
Fixed camera tilt close to the minimumZoomDistance.
Fixed a bug that could lead to blue tiles when zoomed in close to the North and South poles.
Fixed a bug where removing labels would remove the wrong label and ultimately cause a crash.
Worked around a bug in Firefox 18 preventing typed arrays from being transferred to or from Web Workers.
Upgraded RequireJS to version 2.1.2, and Almond to 0.2.3.
Updated the default Bing Maps API key.
EventHandler to ScreenSpaceEventHandler.MouseEventType to ScreenSpaceEventType.MouseEventType.MOVE to ScreenSpaceEventType.MOUSE_MOVE.CameraEventHandler to CameraEventAggregator.*MouseAction to *InputAction (including get, set, remove, etc).Camera2DController, CameraCentralBodyController, CameraColumbusViewController, CameraFlightController, CameraFreeLookController, CameraSpindleController, and CameraControllerCollection. Common ways to modify the camera are through the CameraController object of the Camera and will work in all scene modes. The default camera handler is the ScreenSpaceCameraController object on the Scene.Source/Assets/Textures/NE2_50M_SR_W_2048.jpg with Source/Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg.JulianDate.toIso8601, which creates an ISO8601 compliant representation of a JulianDate.Timeline widget now properly displays leap seconds.Timeline.makeLabel to take a JulianDate instead of a JavaScript date parameter.Assets. Images used by Sandcastle examples have been moved to the Sandcastle folder, and images used by the Dojo widgets are now self-contained in the Widgets package.positionToEyeEC in czm_materialInput is no longer normalized by default.FullScreen and related functions have been renamed to Fullscreen to match the W3C standard name.Fullscreen.isFullscreenEnabled was incorrectly implemented in certain browsers. isFullscreenEnabled now correctly determines whether the browser will allow an element to go fullscreen. A new isFullscreen function is available to determine if the browser is currently in fullscreen mode.Fullscreen.getFullScreenChangeEventName and Fullscreen.getFullScreenChangeEventName now return the proper event name, suitable for use with the addEventListener API, instead prefixing them with "on".Scene.setSunPosition and Scene.getSunPosition. The sun position used for lighting is automatically computed based on the scene's time.CentralBody, including the ground atmosphere, night texture, specular map, cloud map, cloud shadows, and bump map. These features weren't really production ready and had a disproportionate cost in terms of shader complexity and compilation time. They may return in a more polished form in a future release.affectedByLighting property from Polygon, EllipsoidPrimitive, RectangularPyramidSensorVolume, CustomSensorVolume, and ComplexConicSensorVolume.DistanceIntervalMaterial. This was not documented.Matrix2.getElementIndex, Matrix3.getElementIndex, and Matrix4.getElementIndex functions have had their parameters swapped and now take row first and column second. This is consistent with other class constants, such as Matrix2.COLUMN1ROW2.CentralBody.showSkyAtmosphere with Scene.skyAtmosphere and SkyAtmosphere. This has no impact for those using the Cesium widget.TileMapServiceImageryProvider. See the Imagery Layers Sandcastle example.Water material. See the Materials Sandcastle example.SkyBox to draw stars. Added CesiumWidget.showSkyBox and CesiumViewerWidget.showSkyBox.Matrix4 functions: Matrix4.multiplyByTranslation, multiplyByPoint, and Matrix4.fromScale. Added Matrix3.fromScale.EncodedCartesian3, which is used to eliminate jitter when drawing primitives.czm_frameNumber, czm_temeToPseudoFixed, czm_entireFrustum, czm_inverseModel, czm_modelViewRelativeToEye, czm_modelViewProjectionRelativeToEye, czm_encodedCameraPositionMCHigh, and czm_encodedCameraPositionMCLow.czm_translateRelativeToEye and czm_luminance GLSL functions.shininess to czm_materialInput.QuadraticRealPolynomial, CubicRealPolynomial, and QuarticRealPolynomial for finding the roots of quadratic, cubic, and quartic polynomials.IntersectionTests.grazingAltitudeLocation for finding a point on a ray nearest to an ellipsoid.mostOrthogonalAxis function to Cartesian2, Cartesian3, and Cartesian4.Texture2DPool to TexturePool.BingMapsTileProvider to BingMapsImageryProvider.SingleTileProvider to SingleTileImageryProvider.ArcGISTileProvider to ArcGisMapServerImageryProvider.EquidistantCylindrdicalProjection to GeographicProjection.MercatorProjection to WebMercatorProjection.CentralBody.dayTileProvider has been removed. Instead, add one or more imagery providers to the collection returned by CentralBody.getImageryLayers().description.generateTextureCoords parameter passed to ExtentTessellator.compute is now called description.generateTextureCoordinates.bringForward, sendBackward, bringToFront, and sendToBack methods on CompositePrimitive to raise, lower, raiseToTop, and lowerToBottom, respectively.Cache and CachePolicy are no longer used and have been removed.CentralBody now allows imagery from multiple sources to be layered and alpha blended on the globe. See the new Imagery Layers and Map Projections Sandcastle examples.WebMapServiceImageryProvider.getElementIndex to Matrix2, Matrix3, and Matrix4.render and renderForPick functions of primitives. The primitive update function updates a list of commands for the renderer. For more details, see the Data Driven Renderer.Context.getViewport and Context.setViewport. The viewport defaults to the size of the canvas if a primitive does not override the viewport property in the render state.shallowEquals has been removed.undefined to any of the set functions on Billboard now throws an exception.undefined to any of the set functions on Polyline now throws an exception.PolygonPipeline.scaleToGeodeticHeight now takes ellipsoid as the last parameter, instead of the first. It also now defaults to Ellipsoid.WGS84 if no parameter is provided.DynamicEllipsoid and DynamicEllipsoidVisualizer which use the new EllipsoidPrimitive to implement ellipsoids in CZML.Extent functions now take optional result parameters. Also added getCenter, intersectWith, and contains functions.DynamicObjectView for tracking a DynamicObject with the camera across scene modes; also hooked up CesiumViewerWidget to use it.enableTranslate, enableZoom, and enableRotate properties to Camera2DController to selectively toggle camera behavior. All values default to true.Camera2DController.setPositionCartographic to simplify moving the camera programmatically when in 2D mode.Matrix4.multiplyByTranslation, Matrix4.fromScale, and Matrix3.fromScale.Breaking changes:
Materials are now created through a centralized Material class using a JSON schema called Fabric. For example, change:
polygon.material = new BlobMaterial({repeat : 10.0});
to:
polygon.material = Material.fromType(context, 'Blob');
polygon.material.repeat = 10.0;
or:
polygon.material = new Material({
context : context,
fabric : {
type : 'Blob',
uniforms : {
repeat : 10.0
}
}
});
Label.computeScreenSpacePosition now requires the current scene state as a parameter.undefined to any of the set functions on Label now throws an exception.agi_ prefix on GLSL identifiers to czm_.ViewportQuad properties vertexShader and fragmentShader with optional constructor arguments.czm_viewport from an ivec4 to a vec4 to reduce casting.Billboard now defaults to an image index of -1 indicating no texture, previously billboards defaulted to 0 indicating the first texture in the atlas. For example, change:
billboards.add({
position : { x : 1.0, y : 2.0, z : 3.0 },
});
to:
billboards.add({
position : { x : 1.0, y : 2.0, z : 3.0 },
imageIndex : 0
});
SceneState to FrameState.SunPosition was changed from a static object to a function computeSunPosition; which now returns a Cartesian3 with the computed position. It was also optimized for performance and memory pressure. For example, change:
var result = SunPosition.compute(date); var position = result.position;
to:
var position = computeSunPosition(date);
All Quaternion operations now have static versions that work with any objects exposing x, y, z and w properties.
Added support for nested polygons with holes. See Polygon.configureFromPolygonHierarchy.
Added support to the renderer for view frustum and central body occlusion culling. All built-in primitives, such as BillboardCollection, Polygon, PolylineCollection, etc., can be culled. See the advanced examples in the Sandbox for details.
Added writeTextToCanvas function which handles sizing the resulting canvas to fit the desired text.
Added support for CZML path visualization via the DynamicPath and DynamicPathVisualizer objects. See the CZML wiki for more details.
Added support for WEBGL_depth_texture. See Framebuffer.setDepthTexture.
Added CesiumMath.isPowerOfTwo.
Added affectedByLighting to ComplexConicSensorVolume, CustomSensorVolume, and RectangularPyramidSensorVolume to turn lighting on/off for these objects.
CZML Polygon, Cone, and Pyramid objects are no longer affected by lighting.
Added czm_viewRotation and czm_viewInverseRotation automatic GLSL uniforms.
Added a clampToPixel property to BillboardCollection and LabelCollection. When true, it aligns all billboards and text to a pixel in screen space, providing a crisper image at the cost of jumpier motion.
Ellipsoid functions now take optional result parameters.
Breaking changes:
EventHandler.TextureAtlas takes an object literal in its constructor instead of separate parameters. Code that previously looked like:
context.createTextureAtlas(images, pixelFormat, borderWidthInPixels);
should now look like:
context.createTextureAtlas({images : images, pixelFormat : pixelFormat, borderWidthInPixels : borderWidthInPixels});
Camera.pickEllipsoid returns the picked position in world coordinates and the ellipsoid parameter is optional. Prefer the new Scene.pickEllipsoid method. For example, change
var position = camera.pickEllipsoid(ellipsoid, windowPosition);
to:
var position = scene.pickEllipsoid(windowPosition, ellipsoid);
Camera.getPickRay now returns the new Ray type instead of an object with position and direction properties.Camera.viewExtent now takes an Extent argument instead of west, south, east and north arguments. Prefer Scene.viewExtent over Camera.viewExtent. Scene.viewExtent will work in any SceneMode. For example, change
camera.viewExtent(ellipsoid, west, south, east, north);
to:
scene.viewExtent(extent, ellipsoid);
CameraSpindleController.mouseConstrainedZAxis has been removed. Instead, use CameraSpindleController.constrainedAxis. Code that previously looked like:
spindleController.mouseConstrainedZAxis = true;
should now look like:
spindleController.constrainedAxis = Cartesian3.UNIT_Z;
Camera2DController constructor and CameraControllerCollection.add2D now require a projection instead of an ellipsoid.Chain has been removed. when is now included as a more complete CommonJS Promises/A implementation.Jobs.downloadImage was replaced with loadImage to provide a promise that will asynchronously load an image.jsonp now returns a promise for the requested data, removing the need for a callback parameter.Cartesian3.prototype.getXY() was replaced with Cartesian2.fromCartesian3. Code that previously looked like cartesian3.getXY(); should now look like Cartesian2.fromCartesian3(cartesian3);.Cartesian4.prototype.getXY() was replaced with Cartesian2.fromCartesian4. Code that previously looked like cartesian4.getXY(); should now look like Cartesian2.fromCartesian4(cartesian4);.Cartesian4.prototype.getXYZ() was replaced with Cartesian3.fromCartesian4. Code that previously looked like cartesian4.getXYZ(); should now look like Cartesian3.fromCartesian4(cartesian4);.Math.angleBetween was removed because it was a duplicate of Cartesian3.angleBetween. Simply replace calls of the former to the later.Cartographic3 was renamed to Cartographic.Cartographic2 was removed; use Cartographic instead.Ellipsoid.toCartesian was renamed to Ellipsoid.cartographicToCartesian.Ellipsoid.toCartesians was renamed to Ellipsoid.cartographicArrayToCartesianArray.Ellipsoid.toCartographic2 was renamed to Ellipsoid.cartesianToCartographic.Ellipsoid.toCartographic2s was renamed to Ellipsoid.cartesianArrayToCartographicArray.Ellipsoid.toCartographic3 was renamed to Ellipsoid.cartesianToCartographic.Ellipsoid.toCartographic3s was renamed to Ellipsoid.cartesianArrayToCartographicArray.Ellipsoid.cartographicDegreesToCartesian was removed. Code that previously looked like ellipsoid.cartographicDegreesToCartesian(new Cartographic(45, 50, 10)) should now look like ellipsoid.cartographicToCartesian(Cartographic.fromDegrees(45, 50, 10)).Math.cartographic3ToRadians, Math.cartographic2ToRadians, Math.cartographic2ToDegrees, and Math.cartographic3ToDegrees were removed. These functions are no longer needed because Cartographic instances are always represented in radians.multiplyWith now start with multiplyBy to be consistent with functions starting with divideBy.multiplyWithMatrix function on each Matrix type was renamed to multiply.values property has been eliminated and Matrices are no longer immutable. Code that previously looked like matrix = matrix.setColumn0Row0(12); now looks like matrix[Matrix2.COLUMN0ROW0] = 12;. Code that previously looked like matrix.setColumn3(cartesian3); now looked like matrix.setColumn(3, cartesian3, matrix).'Polyline' is no longer externally creatable. To create a 'Polyline' use the 'PolylineCollection.add' method.
Polyline polyline = new Polyline();
to
PolylineCollection polylineCollection = new PolylineCollection();
Polyline polyline = polylineCollection.add();
All Cartesian2 operations now have static versions that work with any objects exposing x and y properties.
All Cartesian3 operations now have static versions that work with any objects exposing x, y, and z properties.
All Cartesian4 operations now have static versions that work with any objects exposing x, y, z and w properties.
All Cartographic operations now have static versions that work with any objects exposing longitude, latitude, and height properties.
All Matrix classes are now indexable like arrays.
All Matrix operations now have static versions of all prototype functions and anywhere we take a Matrix instance as input can now also take an Array or TypedArray.
All Matrix, Cartesian, and Cartographic operations now take an optional result parameter for object re-use to reduce memory pressure.
Added Cartographic.fromDegrees to make creating Cartographic instances from values in degrees easier.
Added addImage to TextureAtlas so images can be added to a texture atlas after it is constructed.
Added Scene.pickEllipsoid, which picks either the ellipsoid or the map depending on the current SceneMode.
Added Event, a new utility class which makes it easy for objects to expose event properties.
Added TextureAtlasBuilder, a new utility class which makes it easy to build a TextureAtlas asynchronously.
Added Clock, a simple clock for keeping track of simulated time.
Added LagrangePolynomialApproximation, HermitePolynomialApproximation, and LinearApproximation interpolation algorithms.
Added CoordinateConversions, a new static class where most coordinate conversion methods will be stored.
Added Spherical coordinate type
Added a new DynamicScene layer for time-dynamic, data-driven visualization. This include CZML processing. For more details see https://github.com/CesiumGS/cesium/wiki/Architecture and https://github.com/CesiumGS/cesium/wiki/CZML-in-Cesium.
Added a new application, Cesium Viewer, for viewing CZML files and otherwise exploring the globe.
Added a new Widgets directory, to contain common re-usable Cesium related controls.
Added a new Timeline widget to the Widgets directory.
Added a new Widgets/Dojo directory, to contain dojo-specific widgets.
Added new Timeline and Cesium dojo widgets.
Added CameraCentralBodyController as the new default controller to handle mouse input.
Added computeTemeToPseudoFixedMatrix function to Transforms.
Added 'PolylineCollection' to manage numerous polylines. 'PolylineCollection' dramatically improves rendering speed when using polylines.
Tipsify.tipsify and Tipsify.calculateACMR to accept an object literal instead of three separate arguments. Supplying a maximum index and cache size is now optional.CentralBody no longer requires a camera as the first parameter.CentralBody.northPoleColor and CentralBody.southPoleColor to fill in the poles if they are not covered by a texture.Polygon.configureExtent to create a polygon defined by west, south, east, and north values.Camera to provide position and directions in world coordinates.showThroughEllipsoid to CustomSensorVolume and RectangularPyramidSensorVolume to allow sensors to draw through Earth.affectedByLighting to CentralBody and Polygon to turn lighting on/off for these objects.Breaking changes:
Geoscope.* references to Cesium.*, and reference Cesium.js instead of Geoscope.js.CompositePrimitive.addGround was removed; use CompositePrimitive.add instead. For example, change
primitives.addGround(polygon);
to:
primitives.add(polygon);
Moved eastNorthUpToFixedFrame and northEastDownToFixedFrame functions from Ellipsoid to a new Transforms object. For example, change
var m = ellipsoid.eastNorthUpToFixedFrame(p);
to:
var m = Cesium.Transforms.eastNorthUpToFixedFrame(p, ellipsoid);
fillStyle and strokeStyle were renamed to fillColor and outlineColor; they are also now color objects instead of strings. The label Color property has been removed.For example, change
label.setFillStyle("red");
label.setStrokeStyle("#FFFFFFFF");
to:
label.setFillColor({ red : 1.0, blue : 0.0, green : 0.0, alpha : 1.0 });
label.setOutlineColor({ red : 1.0, blue : 1.0, green : 1.0, alpha : 1.0 });
Tipsify.Tipsify to Tipsify.tipsify.Tipsify.CalculateACMR to Tipsify.calculateACMR.LeapSecond.CompareLeapSecondDate to LeapSecond.compareLeapSecondDate.Geoscope.JSONP.get is now Cesium.jsonp. Cesium.jsonp now takes a url, a callback function, and an options object. The previous 2nd and 4th parameters are now specified using the options object.TWEEN is no longer globally defined, and is instead available as Cesium.Tween.run are now moved to Cesium.Chain.run, etc.Geoscope.CollectionAlgorithms.binarySearch is now Cesium.binarySearch.Geoscope.ContainmentTests.pointInsideTriangle2D is now Cesium.pointInsideTriangle2D.Static constructor methods prefixed with "createFrom", now start with "from":
Matrix2.createfromColumnMajorArray
becomes
Matrix2.fromColumnMajorArray
The JulianDate constructor no longer takes a Date object, use the new from methods instead:
new JulianDate(new Date());
becomes
JulianDate.fromDate(new Date("January 1, 2011 12:00:00 EST"));
JulianDate.fromIso8601("2012-04-24T18:08Z");
JulianDate.fromTotalDays(23452.23);
JulianDate.getDate is now JulianDate.toDate() and returns a new instance each time.CentralBody.logoOffsetX and logoOffsetY have been replaced with CentralBody.logoOffset, a Cartesian2.Ellipsoid.getScaledWgs84() has been removed since it is not needed.getXXX() methods which returned a new instance of what should really be a constant are now exposed as frozen properties instead. This should improve performance and memory pressure.
Cartsian2/3/4.getUnitX() -> Cartsian2/3/4.UNIT_X
Cartsian2/3/4.getUnitY() -> Cartsian2/3/4.UNIT_Y
Cartsian2/3/4.getUnitZ() -> Cartsian3/4.UNIT_Z
Cartsian2/3/4.getUnitW() -> Cartsian4.UNIT_W
Matrix/2/3/4.getIdentity() -> Matrix/2/3/4.IDENTITY
Quaternion.getIdentity() -> Quaternion.IDENTITY
Ellipsoid.getWgs84() -> Ellipsoid.WGS84
Ellipsoid.getUnitSphere() -> Ellipsoid.UNIT_SPHERE
Cartesian2/3/4/Cartographic.getZero() -> Cartesian2/3/4/Cartographic.ZERO
Added PerformanceDisplay which can be added to a scene to display frames per second (FPS).
Labels now correctly allow specifying fonts by non-pixel CSS units such as points, ems, etc.
Added Shapes.computeEllipseBoundary and updated Shapes.computeCircleBoundary to compute boundaries using arc-distance.
Added fileExtension and credit properties to OpenStreetMapTileProvider construction.
Night lights no longer disappear when CentralBody.showGroundAtmosphere is true.
Breaking changes:
Geoscope.SkyFromSpace object with CentralBody.showSkyAtmosphere property.event.x and event.y with event.position.movement.startX and startY with movement.startPosition. Replaced movement.endX and movement.endY with movement.endPosition.Scene.Pick now takes a Cartesian2 with the origin at the upper-left corner of the canvas. For example, code that looked like:
scene.pick(movement.endX, scene.getCanvas().clientHeight - movement.endY);
becomes:
scene.pick(movement.endPosition);
Added SceneTransitioner to switch between 2D and 3D views. See the new Skeleton 2D example.
Added CentralBody.showGroundAtmosphere to show an atmosphere on the ground.
Added Camera.pickEllipsoid to get the point on the globe under the mouse cursor.
Added Polygon.height to draw polygons at a constant altitude above the ellipsoid.
Geoscope.Constants and Geoscope.Trig with Geoscope.Math.PolygonsetColor and getColor with a material.color property.setEllipsoid and getEllipsoid with an ellipsoid property.setGranularity and getGranularity with a granularity property.PolylinesetColor/getColor and setOutlineColor/getOutlineColor with color and outline properties.setWidth/getWidth and setOutlineWidth/getOutlineWidth with width and outlineWidth properties.Geoscope.BillboardCollection.bufferUsage. It is now automatically determined.Geoscope.Label set/get functions for shadowOffset, shadowBlur, shadowColor. These are no longer supported.Scene.getTransitions to Scene.getAnimations.SensorCollection to SensorVolumeCollection.ComplexConicSensorVolume.material with separate materials for each surface: outerMaterial, innerMaterial, and capMaterial.TranslucentSensorVolumeMaterial to ColorMaterial.DistanceIntervalSensorVolumeMaterial to DistanceIntervalMaterial.TieDyeSensorVolumeMaterial to TieDyeMaterial.CheckerboardSensorVolumeMaterial to CheckerboardMaterial.PolkaDotSensorVolumeMaterial to DotMaterial.FacetSensorVolumeMaterial to FacetMaterial.BlobSensorVolumeMaterial to BlobMaterial.VerticalStripeMaterialHorizontalStripeMaterialDistanceIntervalMaterialPolygon.material property.ConicSensorVolume via the new maximumClockAngle and minimumClockAngle properties.RectangularPyramidSensorVolume.BillboardCollection and LabelCollection.Added Scene, which reduces the amount of code required to use Geoscope. See the Skeleton. We recommend using this instead of explicitly calling update() and render() for individual or composite primitives. Existing code will need minor changes:
Other breaking changes:
Camera get/set functions, e.g., getPosition/setPosition were replaced with properties, e.g., position.
Replaced CompositePrimitive, Polygon, and Polyline getShow/setShow functions with a show property.
Replaced Polyline, Polygon, BillboardCollection, and LabelCollection getBufferUsage/setBufferUsage functions with a bufferUsage property.
Changed colors used by billboards, labels, polylines, and polygons. Previously, components were named r, g, b, and a. They are now red, green, blue, and alpha. Previously, each component's range was [0, 255]. The range is now [0, 1] floating point. For example,
color : { r : 0, g : 255, b : 0, a : 255 }
becomes:
color : { red : 0.0, green : 1.0, blue : 0.0, alpha : 1.0 }
Shapes.computeCircleBoundary to compute circles. See the Sandbox.Changed the EventHandler constructor function to take the Geoscope canvas, which ensures the mouse position is correct regardless of the canvas' position on the page. Code that previously looked like:
var handler = new Geoscope.EventHandler();
should now look like:
var handler = new Geoscope.EventHandler(canvas);
Context.Pick no longer requires clamping the x and y arguments. Code that previously looked like:
var pickedObject = context.pick(primitives, us, Math.max(x, 0.0),
Math.max(context.getCanvas().clientHeight - y, 0.0));
can now look like:
var pickedObject = context.pick(primitives, us, x, context.getCanvas().clientHeight - y);
Changed Polyline.setWidth and Polyline.setOutlineWidth to clamp the width to the WebGL implementation limit instead of throwing an exception. Code that previously looked like:
var maxWidth = context.getMaximumAliasedLineWidth();
polyline.setWidth(Math.min(5, maxWidth));
polyline.setOutlineWidth(Math.min(10, maxWidth));
can now look like:
polyline.setWidth(5);
polyline.setOutlineWidth(10);
BREAKING CHANGE: The Context constructor-function now takes an element instead of an ID. Code that previously looked like:
var context = new Geoscope.Context("glCanvas");
var canvas = context.getCanvas();
should now look like:
var canvas = document.getElementById("glCanvas");
var context = new Geoscope.Context(canvas);
Geoscope.Polygon for drawing polygons on the globe.Context.pick to pick objects in one line of code.bringForward, bringToFront, sendBackward, and sendToBack functions to CompositePrimitive to control the render-order for ground primitives.getShow/setShow functions to Polyline and CompositePrimitive.CameraFreeLookEventHandler, CameraSpindleEventHandler, and EventHandler.Ellipsoid.toCartesian3 with Ellipsoid.toCartesian.updateForPick functions no longer require a UniformState argument.Geoscope.Polyline. See the Sandbox example.CompositePrimitive, LabelCollection, and BillboardCollection have consistent function names, including a new contains() function.CompositePrimitive, TimeStandard, and LeapSecond types.Geoscope.TimeStandard for handling TAI and UTC time standards.Geoscope.Quaternion, which is a foundation for future camera control.Geoscope.PrimitiveCollection to simplify rendering.Geoscope.LabelCollection for drawing text.Geoscope.JulianDate and Geoscope.TimeConstants for proper time handling.Geoscope.ViewportQuad and Geoscope.Rectangle (foundations for 2D map).SunPosition type to compute the sun position for a julian date.Cartographic2 and Cartographic3 are now mutable types.