Change Log
1.36 - 2017-08-01
- Breaking changes
- The function
Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result)was removed. UseQuaternion.fromHeadingPitchRoll(hpr, result)instead wherehpris aHeadingPitchRoll. - The function
Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result)was removed. UseTransforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)instead wherefixedFrameTransformis a a 4x4 transformation matrix (seeTransforms.localFrameToFixedFrameGenerator). - The function
Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result)was removed. UseTransforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)instead wherefixedFrameTransformis a a 4x4 transformation matrix (seeTransforms.localFrameToFixedFrameGenerator).
- The function
- Deprecated
Scene/CullingVolumeis deprecated and will be removed in 1.38. UseCore/CullingVolume.Scene/OrthographicFrustumis deprecated and will be removed in 1.38. UseCore/OrthographicFrustum.Scene/OrthographicOffCenterFrustumis deprecated and will be removed in 1.38. UseCore/OrthographicOffCenterFrustum.Scene/PerspectiveFrustumis deprecated and will be removed in 1.38. UseCore/PerspectiveFrustum.Scene/PerspectiveOffCenterFrustumis deprecated and will be removed in 1.38. UseCore/PerspectiveOffCenterFrustum.
- Added ability to show tile urls in the 3D Tiles Inspector. #5592
- Fixed issue where composite 3D Tiles that contained instanced 3D Tiles with an external model reference would fail to download the model.
- Added behavior to
Cesium3DTilesInspectorthat selects the first tileset hovered over if no tilest is specified. #5139 - Added ability to provide a
widthandheighttoscene.pick. #5602 - Added setter for
GeoJsonDataSource.nameto specify a name for the datasource #5653 - Fixed issue where scene would blink when labels were added. #5537
- Fixed label positioning when height reference changes #5609
- Fixed crash when using the
Cesium3DTilesInspectorViewModeland removing a tileset #5607 - Fixed polygon outline in Polygon Sandcastle demo #5642
- Fixed label positioning when using
HeightReference.CLAMP_TO_GROUNDand no position #5648 - Updated
Billboard,LabelandPointPrimitiveconstructors to cloneNearFarScaleparameters #5654 - Added
FrustumGeometryandFrustumOutlineGeometry. #5649 - Added an
optionsparameter to the constructors ofPerspectiveFrustum,PerspectiveOffCenterFrustum,OrthographicFrustum, andOrthographicOffCenterFrustumto set properties. #5649 - Added
ClassificationPrimitivewhich defines a volume and draws the intersection of the volume and terrain or 3D Tiles. #5625
1.35.2 - 2017-07-11
- This is an npm-only release to fix an issue with using Cesium in Node.js.
- Fixed a bug where Cesium would fail to load under Node.js and some webpack configurations. #5593
- Fixed a bug where a Model's compressed textures were not being displayed. #5596
- Fixed documentation for
OrthographicFrustum. #5586
1.35.1 - 2017-07-05
- This is an npm-only release to fix a deployment issue with 1.35. No code changes.
1.35 - 2017-07-05
- Breaking changes
JulianDate.fromIso8601will default to midnight UTC if no time is provided to match the JavascriptDatespecification. You must specify a local time of midnight to achieve the old behavior.
- Deprecated
GoogleEarthImageryProviderhas been deprecated and will be removed in Cesium 1.37, useGoogleEarthEnterpriseMapsProviderinstead.- The
throttleRequestparameter forTerrainProvider.requestTileGeometry,CesiumTerrainProvider.requestTileGeometry,VRTheWorldTerrainProvider.requestTileGeometry, andEllipsoidTerrainProvider.requestTileGeometryis deprecated and will be replaced with an optionalRequestobject. ThethrottleRequestsparameter will be removed in 1.37. Instead set the request'sthrottleproperty totrueto throttle requests. - The ability to provide a Promise for the
options.urlparameter ofloadWithXhrand for theurlparameter ofloadArrayBuffer,loadBlob,loadImageViaBlob,loadText,loadJson,loadXML,loadImage,loadCRN,loadKTX, andloadCubeMapis deprecated. This will be removed in 1.37, insteadurlmust be a string.
- Added support for 3D Tiles for streaming massive heterogeneous 3D geospatial datasets (#5308). See the new Sandcastle examples. The new Cesium APIs are:
Cesium3DTilesetCesium3DTileStyle,StyleExpression,Expression, andConditionsExpressionCesium3DTileCesium3DTileContentCesium3DTileFeatureCesium3DTilesInspector,Cesium3DTilesInspectorViewModel, andviewerCesium3DTilesInspectorMixinCesium3DTileColorBlendMode
- Added a particle system for effects like smoke, fire, sparks, etc. See
ParticleSystem,Particle,ParticleBurst,BoxEmitter,CircleEmitter,ConeEmitter,ParticleEmitter, andSphereEmitter, and the new Sandcastle examples: Particle System and Particle System Fireworks. #5212 - Added
options.clock,options.timesandoptions.dimensionstoWebMapTileServiceImageryProviderin order to handle time dynamic and static values for dimensions. - Added an
options.requestparameter toloadWithXhrand arequestparameter toloadArrayBuffer,loadBlob,loadImageViaBlob,loadText,loadJson,loadJsonp,loadXML,loadImageFromTypedArray,loadImage,loadCRN, andloadKTX. CzmlDataSourceandKmlDataSourceload functions now take an optionalqueryobject, which will append query parameters to all network requests. #5419, #5434- Added Sandcastle demo for setting time with the Clock API #5457;
- Added Sandcastle demo for ArcticDEM data. #5224
- Added
fromIso8601,fromIso8601DateArray, andfromIso8601DurationArraytoTimeIntervalCollectionfor handling various ways groups of intervals can be specified in ISO8601 format. - Added
fromJulianDateArraytoTimeIntervalCollectionfor generating intervals from a list of dates. - Fixed geocoder bug so geocoder can accurately handle NSEW inputs #5407
- Fixed a bug where picking would break when the Sun came into view #5478
- Fixed a bug where picking clusters would return undefined instead of a list of the clustered entities. #5286
- Fixed bug where if polylines were set to follow the surface of an undefined globe, Cesium would throw an exception. #5413
- Reduced the amount of Sun bloom post-process effect near the horizon. #5381
- Fixed a bug where camera zooming worked incorrectly when the display height was greater than the display width #5421
- Updated glTF/glb MIME types. #5420
- Added
Cesium.Math.randomBetween. - Modified
defaultValueto check for bothundefinedandnull. #5551
1.34 - 2017-06-01
- Deprecated
- Passing
options.clockwhen creating a newViewerinstance has been deprecated and will be removed in Cesium 1.37, passoptions.clockViewModelinstead.
- Passing
- Fix issue where polylines in a
PolylineCollectionwould ignore the far distance when updating the distance display condition. #5283 - Fixed a crash when calling
Camera.pickEllipsoidwith a canvas of size 0. - Fix
BoundingSphere.fromOrientedBoundingBox. #5334 - Fixed bug where polylines would not update when
PolylineCollectionmodel matrix was updated. #5327 - Fixed a bug where adding a ground clamped label without a position would show up at a previous label's clamped position. #5338
- Fixed translucency bug for certain material types. #5335
- Fix picking polylines that use a depth fail appearance. #5337
- Fixed a crash when morphing from Columbus view to 3D. #5311
- Fixed a bug which prevented KML descriptions with relative paths from loading. #5352
- Fixed an issue where camera view could be invalid at the last frame of animation. #4949
- Fixed an issue where using the depth fail material for polylines would cause a crash in Edge. #5359
- Fixed a crash where
EllipsoidGeometryandEllipsoidOutlineGeometrywere given floating point values when expecting integers. #5260 - Fixed an issue where billboards were not properly aligned. #2487
- Fixed an issue where translucent objects could flicker when picking on mouse move. #5307
- Fixed a bug where billboards with
sizeInMetersset to true would move upwards when zooming out. #5373 - Fixed a bug where
SampledProperty.setInterpolationOptionsdoes not ignore undefinedoptions. #3575 - Added
basePathoption toCesium.Model.fromGltf. #5320
1.33 - 2017-05-01
- Breaking changes
- Removed left, right, bottom and top properties from
OrthographicFrustum. UseOrthographicOffCenterFrustuminstead. #5109
- Removed left, right, bottom and top properties from
- Added
GoogleEarthEnterpriseTerrainProviderandGoogleEarthEnterpriseImageryProviderto read data from Google Earth Enterprise servers. #5189. - Support for dashed polylines #5159.
- Added
PolylineDashMaterial type. - Added
PolylineDashMaterialPropertyto the Entity API. - Added CZML
polylineDashproperty .
- Added
- Added
disableDepthTestDistanceto 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 toNumber.POSITVE_INFINITYwill never enabled the depth test. Also addedscene.minimumDisableDepthTestDistanceto change the default value from zero. #5166 - Added a
depthFailMaterialproperty to line entities, which is the material used to render the line when it fails the depth test. #5160 - Fixed billboards not initially clustering. #5208
- Fixed issue with displaying
MapboxImageryProviderdefault token error message. #5191 - Fixed bug in conversion formula in
Matrix3.fromHeadingPitchRoll. #5195 - Upgrade FXAA to version 3.11. #5200
Scene.pickPositionnow caches results per frame to increase performance. #5117
1.32 - 2017-04-03
- Deprecated
- The
left,right,bottom, andtopproperties ofOrthographicFrustumare deprecated and will be removed in 1.33. UseOrthographicOffCenterFrustuminstead.
- The
- Breaking changes
- Removed
ArcGisImageServerTerrainProvider. - The top-level
propertiesin anEntitycreated byGeoJsonDataSourceare now instances ofConstantPropertyinstead of raw values.
- Removed
- Added support for an orthographic projection in 3D and Columbus view.
- Set
projectionPickertotruein the options when creating aViewerto add a widget that will switch projections. #5021 - Call
switchToOrthographicFrustumorswitchToPerspectiveFrustumonCamerato change projections.
- Set
- Added support for custom time-varying properties in CZML. #5105.
- Added new flight parameters to
Camera.flyToandCamera.flyToBoundingSphere:flyOverLongitude,flyOverLongitudeWeight, andpitchAdjustHeight. #5070 - Added the event
Viewer.trackedEntityChanged, which is raised when the value ofviewer.trackedEntitychanges. #5060 - Added
Camera.DEFAULT_OFFSETfor default view of objects with bounding spheres. #4936 - Fixed an issue with
TileBoundingBoxthat caused the terrain to disappear in certain places 4032 - Fixed overlapping billboard blending. #5066
- Fixed an issue with
PinBuilderwhere inset images could have low-alpha fringes against an opaque background. #5099 - Fix billboard, point and label clustering in 2D and Columbus view. #5136
- Fixed
GroundPrimitiverendering in 2D and Columbus View. #5078 - Fixed an issue with camera tracking of dynamic ellipsoids. #5133
- Fixed issues with imagerySplitPosition and the international date line in 2D mode. #5151
- Fixed a bug in
ModelAnimationCachecausing different animations to reference the same animation. #5064 ConstantPropertynow providesvalueOfandtoStringmethods that return the constant value.- Improved depth artifacts between opaque and translucent primitives. #5116
- Fixed crunch compressed textures in IE11. #5057
- Fixed a bug in
Quaternion.fromHeadingPitchRollthat made it erroneously throw an exception when passed individual angles in an unminified / debug build. - Fixed a bug that caused an exception in
CesiumInspectorViewModelwhen using the NW / NE / SW / SE / Parent buttons to navigate to a terrain tile that is not yet loaded. QuadtreePrimitivenow usesframeState.afterRenderto firetileLoadProgressEvent#3450
1.31 - 2017-03-01
- Deprecated
- The function
Quaternion.fromHeadingPitchRoll(heading, pitch, roll, result)will be removed in 1.33. UseQuaternion.fromHeadingPitchRoll(hpr, result)instead wherehpris aHeadingPitchRoll. #4896 - The function
Transforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, result)will be removed in 1.33. UseTransforms.headingPitchRollToFixedFrame(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)instead wherefixedFrameTransformis a a 4x4 transformation matrix (seeTransforms.localFrameToFixedFrameGenerator). #4896 - The function
Transforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, result)will be removed in 1.33. UseTransforms.headingPitchRollQuaternion(origin, headingPitchRoll, ellipsoid, fixedFrameTransform, result)instead wherefixedFrameTransformis a a 4x4 transformation matrix (seeTransforms.localFrameToFixedFrameGenerator). #4896 ArcGisImageServerTerrainProviderwill be removed in 1.32 due to missing TIFF support in web browsers. #4981
- The function
- Breaking changes
- Corrected spelling of
Color.FUCHSIAfromColor.FUSCHIA. #4977 - The enums
MIDDLE_DOUBLE_CLICKandRIGHT_DOUBLE_CLICKfromScreenSpaceEventTypehave been removed. #5052 - Removed the function
GeometryPipeline.computeBinormalAndTangent. UseGeometryPipeline.computeTangentAndBitangentinstead. #5053 - Removed the
urlandkeyproperties fromGeocoderViewModel. #5056 BingMapsGeocoderServicesnow requiresoptions.scene. #5056
- Corrected spelling of
- Added compressed texture support. #4758
- glTF models and imagery layers can now reference KTX textures and textures compressed with crunch.
- Added
loadKTX, to load KTX textures, andloadCRNto load crunch compressed textures. - Added new
PixelFormatandWebGLConstantsenums from WebGL extensionsWEBGL_compressed_s3tc,WEBGL_compressed_texture_pvrtc, andWEBGL_compressed_texture_etc1. - Added
CompressedTextureBuffer.
- Added support for
Scene.pickPositionin Columbus view and 2D. #4990 - Added support for depth picking translucent primitives when
Scene.pickTranslucentDepthistrue. #4979 - Fixed an issue where the camera would zoom past an object and flip to the other side of the globe. #4967 and #4982
- Enable rendering
GroundPrimitiveson hardware without theEXT_frag_depthextension; however, this could cause artifacts for certain viewing angles. #4930 - Added
Transforms.localFrameToFixedFrameGeneratorto generate a function that computes a 4x4 transformation matrix from a local reference frame to fixed reference frame. #4896 - Added
Label.scaleByDistanceto control minimum/maximum label size based on distance from the camera. #5019 - Added support to
DebugCameraPrimitiveto draw multifrustum planes. The attributedebugShowFrustumPlanesofSceneandfrustumPlanesofCesiumInspectortoggle this. #4932 - Added fix to always outline KML line extrusions so that they show up properly in 2D and other straight down views. #4961
- Improved
RectangleGeometryby skipping unnecessary logic in the code. #4948 - Fixed exception for polylines in 2D when rotating the map. #4619
- Fixed an issue with constant
VertexArrayattributes not being set correctly. #4995 - Added the event
Viewer.selectedEntityChanged, which is raised when the value ofviewer.selectedEntitychanges. #5043
1.30 - 2017-02-01
- Deprecated
- The properties
urlandkeywill be removed fromGeocoderViewModelin 1.31. These properties will be available on geocoder services that support them, likeBingMapsGeocoderService. - The function
GeometryPipeline.computeBinormalAndTangentwill be removed in 1.31. UseGeometryPipeline.createTangentAndBitangentinstead. #4856 - The enums
MIDDLE_DOUBLE_CLICKandRIGHT_DOUBLE_CLICKfromScreenSpaceEventTypehave been deprecated and will be removed in 1.31. #4910
- The properties
- Breaking changes
- Removed separate
heading,pitch,rollparameters fromTransform.headingPitchRollToFixedFrameandTransform.headingPitchRollQuaternion. Pass aHeadingPitchRollobject instead. #4843 - The property
binormalhas been renamed tobitangentforGeometryandVertexFormat. #4856 - A handful of
CesiumInspectorViewModelproperties were removed or changed from variables to functions. #4857 - The
ShadowMapconstructor has been made private. #4010
- Removed separate
- Added
sampleTerrainMostDetailedto sample the height of an array of positions using the best available terrain data at each point. This requires aTerrainProviderwith theavailabilityproperty. - Transparent parts of billboards, labels, and points no longer overwrite parts of the scene behind them. #4886
- Added
blendOptionproperty toBillboardCollection,LabelCollection, andPointPrimitiveCollection. The default isBlendOption.OPAQUE_AND_TRANSLUCENT; however, if all billboards, labels, or points are either completely opaque or completely translucent,blendOptioncan be changed toBlendOption.OPAQUEorBlendOption.TRANSLUCENT, respectively, to increase performance by up to 2x.
- Added
- Added support for custom geocoder services and autocomplete, see the Sandcastle example. Added
GeocoderService, an interface for geocoders, andBingMapsGeocoderServiceandCartographicGeocoderServiceimplementations. #4723 - Added ability to draw an
ImageryLayerwith a splitter to allow layers to only display to the left or right of a splitter. SeeImageryLayer.splitDirection,Scene.imagerySplitPosition, and the Sandcastle example. - Fixed bug where
GroundPrimitiveswhere rendering incorrectly or disappearing at different zoom levels. #4161, #4326 TerrainProvidernow optionally exposes anavailabilityproperty that can be used to query the terrain level that is available at a location or in a rectangle. Currently onlyCesiumTerrainProviderexposes this property.- Added support for WMS version 1.3 by using CRS vice SRS query string parameter to request projection. SRS is still used for older versions.
- Fixed a bug that caused all models to use the same highlight color. [#4798] (https://github.com/AnalyticalGraphicsInc/cesium/pull/4798)
- Fixed sky atmosphere from causing incorrect picking and hanging drill picking. #4783 and #4784
- Fixed KML loading when color is an empty string. #4826
- Fixed a bug that could cause a "readyImagery is not actually ready" exception when quickly zooming past the maximum available imagery level of an imagery layer near the poles.
- Fixed a bug that affected dynamic graphics with time-dynamic modelMatrix. #4907
- Fixed
Geocoderautocomplete drop down visibility in Firefox. #4916 - Added
Rectangle.fromRadians. - Updated the morph so the default view in Columbus View is now angled. #3878
- Added 2D and Columbus View support for models using the RTC extension or whose vertices are in WGS84 coordinates. #4922
- The attribute
perInstanceAttributeofDebugAppearancehas been made optional and defaults tofalse. - Fixed a bug that would cause a crash when
debugShowFrustumsis enabled with OIT. #4864 - Added the ability to run the unit tests with a WebGL Stub, which makes all WebGL calls a noop and ignores test expectations that rely on reading back from WebGL. Use the web link from the main index.html or run with
npm run test-webgl-stub.
1.29 - 2017-01-02
- Improved 3D Models
- Added the ability to blend a
Modelwith a color/translucency. Addedcolor,colorBlendMode, andcolorBlendAmountproperties toModel,ModelGraphics, and CZML. Also addedColorBlendModeenum. #4547 - Added the ability to render a
Modelwith a silhouette. AddedsilhouetteColorandsilhouetteSizeproperties toModel,ModelGraphics, and CZML. #4314
- Added the ability to blend a
- Improved Labels
- Added new
LabelpropertiesshowBackground,backgroundColor, andbackgroundPaddingto the primitive, Entity, and CZML layers. - Added support for newlines (
\n) in CesiumLabels and CZML. [#2402] - Added new enum
VerticalOrigin.BASELINE. Previously,VerticalOrigin.BOTTOMwould sometimes align to the baseline depending on the contents of a label. (https://github.com/AnalyticalGraphicsInc/cesium/issues/2402)
- Added new
- Fixed translucency in Firefox 50. #4762
- Fixed texture rotation for
RectangleGeometry. #2737 - Fixed issue where billboards on terrain had an incorrect offset. #4598
- Fixed issue where
globe.getHeightincorrectly returnedundefined. #3411 - Fixed a crash when using Entity path visualization with reference properties. #4915
- Fixed a bug that caused
GroundPrimitiveto render incorrectly on systems without theWEBGL_depth_textureextension. #4747 - Fixed default Mapbox token and added a watermark to notify users that they need to sign up for their own token.
- Fixed glTF models with skinning that used
bindShapeMatrix. #4722 - Fixed a bug that could cause a "readyImagery is not actually ready" exception with some configurations of imagery layers.
- Fixed
Rectangle.unionto correctly account for rectangles that cross the IDL. #4732 - Fixed tooltips for gallery thumbnails in Sandcastle [#4702].(https://github.com/AnalyticalGraphicsInc/cesium/pull/4702)
- DataSourceClock.getValue now preserves the provided
resultproperties when its properties areundefined. #4029 - Added
divideComponentsfunction toCartesian2,Cartesian3, andCartesian4. #4750 - Added
WebGLConstantsenum. Previously, this was part of the private Renderer API. #4731
1.28 - 2016-12-01
- Improved terrain/imagery load ordering, especially when the terrain is already fully loaded and a new imagery layer is loaded. This results in a 25% reduction in load times in many cases. #4616
- Improved
Billboard,Label, andPointPrimitivevisual quality. #4675- Corrected odd-width and odd-height billboard sizes from being incorrectly rounded up.
- Changed depth testing from
LESStoLEQUAL, allowing label glyphs of equal depths to overlap. - Label glyph positions have been adjusted and corrected.
TextureAtlas.borderWidthInPixelshas 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.
- Fall back to packing floats into an unsigned byte texture when floating point textures are unsupported. #4563
- Added support for saving html and css in GitHub Gists. #4125
- Fixed
Cartographic.fromCartesianwhen the cartesian is not on the ellipsoid surface. #4611
1.27 - 2016-11-01
- Deprecated
- Individual heading, pitch, and roll options to
Transforms.headingPitchRollToFixedFrameandTransforms.headingPitchRollQuaternionhave been deprecated and will be removed in 1.30. Pass the newHeadingPitchRollobject instead. #4498
- Individual heading, pitch, and roll options to
- Breaking changes
- The
sceneparameter for creatingBillboardVisualizer,LabelVisualizer, andPointVisualizerhas been removed. Instead, pass an instance ofEntityCluster. #4514
- The
- Fixed an issue where a billboard entity would not render after toggling the show property. #4408
- Fixed a crash when zooming from touch input on viewer initialization. #4177
- Fixed a crash when clustering is enabled, an entity has a label graphics defined, but the label isn't visible. #4414
- Added the ability for KML files to load network links to other KML files within the same KMZ archive. #4477
KmlDataSourceandGeoJsonDataSourcewere not honoring theclampToGroundoption for billboards and labels and was instead always clamping, reducing performance in cases when it was unneeded. #4459- Fixed
KmlDataSourcefeatures to respecttimespanandtimestampproperties of its parents (e.g. Folders or NetworkLinks). #4041 - Fixed a
KmlDataSourcebug where features had duplicate IDs and only one was drawn. #3941 GeoJsonDataSourcenow treats null crs values as a no-op instead of failing to load. #4456GeoJsonDataSourcenow gracefully handles missing style icons instead of failing to load. #4452- Added
HeadingPitchRoll#4047HeadingPitchRoll.fromQuaternionfunction for retrieving heading-pitch-roll angles from a quaternion.HeadingPitchRoll.fromDegreesfunction that returns a new HeadingPitchRoll instance from angles given in degrees.HeadingPitchRoll.clonefunction to duplicate HeadingPitchRoll instance.HeadingPitchRoll.equalsandHeadingPitchRoll.equalsEpsilonfunctions for comparing two instances.- Added
Matrix3.fromHeadingPitchRollComputes a 3x3 rotation matrix from the provided headingPitchRoll.
- Fixed primitive bounding sphere bug that would cause a crash when loading data sources. #4431
- Fixed
BoundingSpherecomputation forPrimitiveinstances with a modelMatrix. #4428 - Fixed a bug with rotated, textured rectangles. #4430
- Added the ability to specify retina options, such as
@2x.png, via theMapboxImageryProviderformatoption. #4453. - Fixed a crash that could occur when specifying an imagery provider's
rectangleoption. https://github.com/AnalyticalGraphicsInc/cesium/issues/4377 - Fixed a crash that would occur when using dynamic
distanceDisplayConditionproperties. #4403 - Fixed several bugs that lead to billboards and labels being improperly clamped to terrain. #4396, #4062
- Fixed a bug affected models with multiple meshes without indices. #4237
- Fixed a glTF transparency bug where
blendFuncSeparateparameters were loaded in the wrong order. #4435 - Fixed a bug where creating a custom geometry with attributes and indices that have values that are not a typed array would cause a crash. #4419
- Fixed a bug when morphing from 2D to 3D. #4388
- Fixed
RectangleGeometryrotation when the rectangle is close to the international date line #3874 - Added
clusterBillboards,clusterLabels, andcluserPointsproperties toEntityClusterto selectively cluster screen space entities. - Prevent execution of default device/browser behavior when handling "pinch" touch event/gesture. #4518.
- Fixed a shadow aliasing issue where polygon offset was not being applied. #4559
- Removed an unnecessary reprojection of Web Mercator imagery tiles to the Geographic projection on load. This should improve both visual quality and load performance slightly. #4339
- Added
Transforms.northUpEastToFixedFrameto compute a 4x4 local transformation matrix from a reference frame with a north-west-up axes. - Improved
Geocoderusability by selecting text on click #4464 - Added
Rectangle.simpleIntersectionwhich is an optimized version ofRectangle.intersectionfor more constrained input. #4339 - Fixed warning when using Webpack. #4467
1.26 - 2016-10-03
- Deprecated
- The
sceneparameter for creatingBillboardVisualizer,LabelVisualizer, andPointVisualizerhas been deprecated and will be removed in 1.28. Instead, pass an instance ofEntityCluster.
- The
- Breaking changes
- Vertex texture fetch is now required to be supported to render polylines. Maximum vertex texture image units must be greater than zero.
- Removed
castShadowsandreceiveShadowsproperties fromModel,Primitive, andGlobe. Instead, useshadowswith theShadowModeenum, e.g.model.shadows = ShadowMode.ENABLED. Viewer.terrainShadowsnow uses theShadowModeenum instead of a Boolean, e.g.viewer.terrainShadows = ShadowMode.RECEIVE_ONLY.
- Added support for clustering
Billboard,LabelandPointentities. #4240 - Added
DistanceDisplayConditions to all primitives to determine the range interval from the camera for when it will be visible. - Removed the default gamma correction for Bing Maps aerial imagery, because it is no longer an improvement to current versions of the tiles. To restore the previous look, set the
defaultGammaproperty of yourBingMapsImageryProviderinstance to 1.3. - Fixed a bug that could lead to incorrect terrain heights when using
HeightmapTerrainDatawith an encoding in which actual heights were equal to the minimum representable height. - Fixed a bug in
AttributeCompression.compressTextureCoordinatesanddecompressTextureCoordinatesthat could cause a small inaccuracy in the encoded texture coordinates. - Fixed a bug where viewing a model with transparent geometry would cause a crash. #4378
- Added
TrustedServercollection that controls which servers should havewithCredentialset totrueon XHR Requests. - Fixed billboard rotation when sized in meters. #3979
- Added
backgroundColorandborderWidthproperties towriteTextToCanvas. - Fixed timeline touch events. #4305
- Fixed a bug that was incorrectly clamping Latitudes in KML (s) to the range -PI..PI. Now correctly clamps to -PI/2..PI/2.
- Added
CesiumMath.clampToLatitudeRange. A convenience function to clamp a passed radian angle to valid Latitudes. - Added
DebugCameraPrimitiveto visualize the view frustum of a camera.
1.25 - 2016-09-01
- Breaking changes
- The number and order of arguments passed to
KmlDataSourceunsupportedNodeEventlisteners have changed to allow better handling of unsupported KML Features. - Changed billboards and labels that are clamped to terrain to have the
verticalOriginset toCENTERby default instead ofBOTTOM.
- The number and order of arguments passed to
- Deprecated
- Deprecated
castShadowsandreceiveShadowsproperties fromModel,Primitive, andGlobe. They will be removed in 1.26. Useshadowsinstead with theShadowModeenum, e.g.model.shadows = ShadowMode.ENABLED. Viewer.terrainShadowsnow uses theShadowModeenum instead of a Boolean, e.g.viewer.terrainShadows = ShadowMode.RECEIVE_ONLY. Boolean support will be removed in 1.26.
- Deprecated
- Updated the online model converter to convert OBJ models to glTF with obj2gltf, as well as optimize existing glTF models with the gltf-pipeline. Added an option to bake ambient occlusion onto the glTF model. Also added an option to compress geometry using the glTF WEB3D_quantized_attributes extension.
- Improve label quality for oblique and italic fonts. #3782
- Added
shadowsproperty to the entity API forBox,Corridor,Cylinder,Ellipse,Ellipsoid,Polygon,Polyline,PoylineVolume,Rectangle, andWall. #4005 - Added
Camera.cancelFlightto cancel the existing camera flight if it exists. - Fix overlapping camera flights by always cancelling the previous flight when a new one is created.
- Camera flights now disable collision with the terrain until all of the terrain in the area has finished loading. This prevents the camera from being moved to be above lower resolution terrain when flying to a position close to higher resolution terrain. #4075
- Fixed a crash that would occur if quickly toggling imagery visibility. #4083
- Fixed an issue causing an error if KML has a clamped to ground LineString with color. #4131
- Added logic to
KmlDataSourcedefaulting KML Feature node to hidden unless all ancestors are visible. This better matches the KML specification. - Fixed position of KML point features with an altitude mode of
relativeToGroundandclampToGround. - Added
GeocoderViewModel.keepExpandedwhich when set to true will always keep the Geocoder in its expanded state. - Added support for
INTandUNSIGNED_INTinComponentDatatype. - Added
ComponentDatatype.fromNamefor getting aComponentDatatypefrom its name. - Fixed a crash caused by draping dynamic geometry over terrain. #4255
1.24 - 2016-08-01
- Added support in CZML for expressing
BillboardGraphics.alignedAxisas the velocity vector of an entity, usingvelocityReferencesyntax. - Added
urlSchemeZeroPaddingproperty toUrlTemplateImageryProviderto allow the numeric parts of a URL, such as{x}, to be padded with zeros to make them a fixed width. - Added leap second just prior to January 2017. #4092
- Fixed an exception that would occur when switching to 2D view when shadows are enabled. #4051
- Fixed an issue causing entities to disappear when updating multiple entities simultaneously. #4096
- Normalizing the velocity vector produced by
VelocityVectorPropertyis now optional. - Pack functions now return the result array #4156
- Added optional
rangeMaxparameter toMath.toSNormandMath.fromSNorm. #4121 - Removed
MapQuest OpenStreetMapfrom the list of demo base layers since direct tile access has been discontinued. See the MapQuest Developer Blog for details. - Fixed PolylinePipeline.generateArc to accept an array of heights when there's only one position #4155
1.23 - 2016-07-01
- Breaking changes
GroundPrimitive.initializeTerrainHeights()must be called and have the returned promise resolve before aGroundPrimitivecan be added synchronously.
- Added terrain clamping to entities, KML, and GeoJSON
- Added
heightReferenceproperty to point, billboard and model entities. - Changed corridor, ellipse, polygon and rectangle entities to conform to terrain by using a
GroundPrimitiveif its material is aColorMaterialPropertyinstance and it doesn't have aheightorextrudedHeight. Entities with any other type of material are not clamped to terrain. KMLDataSource- Point and Model features will always respect
altitudeMode. - Added
clampToGroundproperty. Whentrue, clampsPolygon,LineStringandLinearRingfeatures to the ground if theiraltitudeModeisclampToGround. For this case, lines use a corridor instead of a polyline.
- Point and Model features will always respect
GeoJsonDataSource- Points with a height will be drawn at that height; otherwise, they will be clamped to the ground.
- Added
clampToGroundproperty. Whentrue, clampsPolygonandLineStringfeatures to the ground. For this case, lines use a corridor instead of a polyline.
- Added Ground Clamping Sandcastle example.
- Added
- Improved performance and accuracy of polygon triangulation by using the earcut library. Loading a GeoJSON with polygons for each country was 2x faster.
- Fix some large polygon triangulations. #2788
- Added support for the glTF extension WEB3D_quantized_attributes. #3241
- Added CZML support for
Box,CorridorandCylinder. Added new CZML properties:Billboard:width,height,heightReference,scaleByDistance,translucencyByDistance,pixelOffsetScaleByDistance,imageSubRegionLabel:heightReference,translucencyByDistance,pixelOffsetScaleByDistanceModel:heightReference,maximumScalePoint:heightReference,scaleByDistance,translucencyByDistanceEllipsoid:subdivisions,stackPartitions,slicePartitions
- Added
rotatable2Dproperty to toScene,CesiumWidgetandViewerto enable map rotation in 2D mode. #3897 Camera.setViewandCamera.flyTonow use theorientation.headingparameter in 2D if the map is rotatable.- Added
Camera.changedevent that will fire whenever the camera has changed more thanCamera.percentageChanged.percentageChangedis in the range [0, 1]. - Zooming in toward a target point now keeps the target point at the same screen position. #4016
- Improved
GroundPrimitiveperformance. - Some incorrect KML (specifically KML that reuses IDs) is now parsed correctly.
- Added
unsupportedNodeEventtoKmlDataSourcethat is fired whenever an unsupported node is encountered. Clocknow keeps its configuration settings self-consistent. Previously, this was done byAnimationViewModeland could become inconsistent in certain cases. #4007- Updated Google Cardboard Sandcastle example.
- Added hot air balloon sample model.
- Fixed handling of sampled Rectangle coordinates in CZML. #4033
- Fix "Cannot read property 'x' of undefined" error when calling SceneTransforms.wgs84ToWindowCoordinates in certain cases. #4022
- Re-enabled mouse inputs after a specified number of milliseconds past the most recent touch event.
- Exposed a parametric ray-triangle intersection test to the API as
IntersectionTests.rayTriangleParametric. - Added
packArrayandunpackArrayfunctions toCartesian2,Cartesian3, andCartesian4.
1.22.2 - 2016-06-14
- This is an npm only release to fix the improperly published 1.22.1. There were no code changes.
1.22.1 - 2016-06-13
- Fixed default Bing Key and added a watermark to notify users that they need to sign up for their own key.
1.22 - 2016-06-01
- Breaking changes
KmlDataSourcenow requiresoptions.cameraandoptions.canvas.
- Added shadows
- See the Sandcastle demo: Shadows.
- Added
Viewer.shadowsandViewer.terrainShadows. Both are off by default. - Added
Viewer.shadowMapandScene.shadowMapfor accessing the scene's shadow map. - Added
castShadowsandreceiveShadowsproperties toModelandEntity.model, and options to theModelconstructor andModel.fromGltf. - Added
castShadowsandreceiveShadowsproperties toPrimitive, and options to thePrimitiveconstructor. - Added
castShadowsandreceiveShadowsproperties toGlobe.
- Added
heightReferenceto models so they can be drawn on terrain. - Added support for rendering models in 2D and Columbus view.
- Added option to enable sun position based atmosphere color when
Globe.enableLightingistrue. 3439 - Improved KML NetworkLink compatibility by supporting the
Urltag. #3895. - Added
VelocityVectorPropertyso billboard's aligned axis can follow the velocity vector. #3908 - Improve memory management for entity billboard/label/point/path visualization.
- Added
terrainProviderChangedevent toSceneandGlobe - Added support for hue, saturation, and brightness color shifts in the atmosphere in
SkyAtmosphere. See the new Sandcastle example: Atmosphere Color. #3439 - Fixed exaggerated terrain tiles disappearing. #3676
- Fixed a bug that could cause incorrect normals to be computed for exaggerated terrain, especially for low-detail tiles. #3904
- Fixed a bug that was causing errors to be thrown when picking and terrain was enabled. #3779
- Fixed a bug that was causing the atmosphere to disappear when only atmosphere is visible. #3347
- Fixed infinite horizontal 2D scrolling in IE/Edge. #3893
- Fixed a bug that would cause a crash is the camera was on the IDL in 2D. #3951
- Fixed issue where a repeating model animation doesn't play when the clock is set to a time before the model was created. #3932
- Fixed
Billboard.computeScreenSpacePositionreturning the wrong y coordinate. #3920 - Fixed issue where labels were disappearing. #3730
- Fixed issue where billboards on terrain didn't always update when the terrain provider was changed. #3921
- Fixed issue where
Matrix4.fromCamerawas taking eye/target instead of position/direction. #3927 - Added
Scene.nearToFarDistance2Dthat determines the size of each frustum of the multifrustum in 2D. - Added
Matrix4.computeView. - Added
CullingVolume.fromBoundingSphere. - Added
debugShowShadowVolumetoGroundPrimitive. - Fix issue with disappearing tiles on Linux. #3889
1.21 - 2016-05-02
- Breaking changes
- Removed
ImageryMaterialProperty.alpha. UseImageryMaterialProperty.color.alphainstead. - Removed
OpenStreetMapImageryProvider. UsecreateOpenStreetMapImageryProviderinstead.
- Removed
- Added ability to import and export Sandcastle example using GitHub Gists. #3795
- Added
PolygonGraphics.closeTop,PolygonGraphics.closeBottom, andPolygonGeometryoptions for creating an extruded polygon without a top or bottom. #3879 - Added support for polyline arrow material to
CzmlDataSource#3860 - Fixed issue causing the sun not to render. #3801
- Fixed issue where
Camera.flyTowould not work with a rectangle in 2D. #3688 - Fixed issue causing the fog to go dark and the atmosphere to flicker when the camera clips the globe. #3178
- Fixed a bug that caused an exception and rendering to stop when using
ArcGisMapServerImageryProviderto connect to a MapServer specifying the Web Mercator projection and a fullExtent bigger than the valid extent of the projection. #3854 - Fixed issue causing an exception when switching scene modes with an active KML network link. #3865
1.20 - 2016-04-01
- Breaking changes
- Removed
TileMapServiceImageryProvider. UsecreateTileMapServiceImageryProviderinstead. - Removed
GroundPrimitive.geometryInstance. UseGroundPrimitive.geometryInstancesinstead. - Removed
definedNotNull. Usedefinedinstead. - Removed ability to rotate the map in 2D due to the new infinite 2D scrolling feature.
- Removed
- Deprecated
- Deprecated
ImageryMaterialProperty.alpha. It will be removed in 1.21. UseImageryMaterialProperty.color.alphainstead.
- Deprecated
- Added infinite horizontal scrolling in 2D.
- Added a code example to Sandcastle for the new 1-meter Pennsylvania terrain service.
- Fixed loading for KML
NetworkLinkto not append a?if there isn't a query string. - Fixed handling of non-standard KML
styleUrlreferences within aStyleMap. - Fixed issue in KML where StyleMaps from external documents fail to load.
- Added translucent and colored image support to KML ground overlays
- Fix bug when upsampling exaggerated terrain where the terrain heights were exaggerated at twice the value. #3607
- All external urls are now https by default to make Cesium work better with non-server-based applications. #3650
GeoJsonDataSourcenow handles CRSurn:ogc:def:crs:EPSG::4326- Fixed
TimeIntervalCollection.removeIntervalbug that resulted in too many intervals being removed. GroundPrimitivethrows aDeveloperErrorwhen passed an unsupported geometry type instead of crashing.- Fix issue with billboard collections that have at least one billboard with an aligned axis and at least one billboard without an aligned axis. #3318
- Fix a race condition that would cause the terrain to continue loading and unloading or cause a crash when changing terrain providers. #3690
- Fix issue where the
GroundPrimitivevolume was being clipped by the far plane. #3706 - Fixed issue where
Camera.computeViewRectanglewas incorrect when crossing the international date line. #3717 - Added
Rectangleresult parameter toCamera.computeViewRectangle. - Fixed a reentrancy bug in
EntityCollection.collectionChanged. #3739 - Fixed a crash that would occur if you added and removed an
Entitywith a path without ever actually rendering it. #3738 - Fixed issue causing parts of geometry and billboards/labels to be clipped. #3748
- Fixed bug where transparent image materials were drawn black.
- Fixed
Color.fromCssColorStringfrom reusing the inputresultalpha value in some cases.
1.19 - 2016-03-01
- Breaking changes
PolygonGeometrynow changes the inputCartesian3values ofoptions.positionsso that they are on the ellipsoid surface. This only affects polygons created synchronously withoptions.perPositionHeight = falsewhen the positions have a non-zero height and the same positions are used for multiple entities. In this case, make a copy of theCartesian3values used for the polygon positions.
- Deprecated
- Deprecated
KmlDataSourcetaking a proxy object. It will throw an exception in 1.21. It now should take aoptionsobject with requiredcameraandcanvasparameters. - Deprecated
definedNotNull. It will be removed in 1.20. Usedefinedinstead, which now checks fornullas well asundefined.
- Deprecated
- Improved KML support.
- Added support for
NetworkLinkrefresh modesonInterval,onExpireandonStop. Includes support forviewboundScale,viewFormat,httpQuery. - Added partial support for
NetworkLinkControlincludingminRefreshPeriod,cookieandexpires. - Added support for local
StyleMap. Thehighlightstyle is still ignored. - Added support for
root://URLs. - Added more warnings for unsupported features.
- Improved style processing in IE.
- Added support for
Viewer.zoomToandViewer.flyTonow accept anImageryLayerinstance as a valid parameter and will zoom to the extent of the imagery.- Added
Camera.flyHomefunction for resetting the camera to the home view. Camera.flyTonow honors max and min zoom settings inScreenSpaceCameraController.- Added
showproperty toCzmlDataSource,GeoJsonDataSource,KmlDataSource,CustomDataSource, andEntityCollectionfor easily toggling display of entire data sources. - Added
ownerproperty toCompositeEntityCollection. - Added
DataSouceDisplay.readyfor determining whether or not static data associated with the Entity API has been rendered. - Fix an issue when changing a billboard's position property multiple times per frame. #3511
- Fixed texture coordinates for polygon with position heights.
- Fixed issue that kept
GroundPrimitivewith anEllipseGeometryfrom having arotation. - Fixed crash caused when drawing
CorridorGeometryandCorridorOutlineGeometrysynchronously. - Added the ability to create empty geometries. Instead of throwing
DeveloperError,undefinedis returned. - Fixed flying to
latitude, longitude, heightin the Geocoder. - Fixed bug in
IntersectionTests.lineSegmentSpherewhere the ray origin was not set. - Added
lengthtoMatrix2,Matrix3andMatrix4so these can be used as array-like objects. - Added
Color.add,Color.subtract,Color.multiply,Color.divide,Color.mod,Color.multiplyByScalar, andColor.divideByScalarfunctions to perform arithmetic operations on colors. - Added optional
resultparameter toColor.fromRgba,Color.fromHslandColor.fromCssColorString. - Fixed bug causing
navigator is not definedreference error when Cesium is used with Node.js. - Upgraded Knockout from version 3.2.0 to 3.4.0.
- Fixed hole that appeared in the top of in dynamic ellipsoids
1.18 - 2016-02-01
- Breaking changes
- Removed support for
CESIUM_binary_glTF. UseKHR_binary_glTFinstead, which is the default for the online COLLADA-to-glTF converter.
- Removed support for
- Deprecated
- Deprecated
GroundPrimitive.geometryInstance. It will be removed in 1.20. UseGroundPrimitive.geometryInstancesinstead. - Deprecated
TileMapServiceImageryProvider. It will be removed in 1.20. UsecreateTileMapServiceImageryProviderinstead.
- Deprecated
- Reduced the amount of CPU memory used by terrain by ~25% in Chrome.
- Added a Sandcastle example to "star burst" overlapping billboards and labels.
- Added
VRButtonwhich is a simple, single-button widget that toggles VR mode. It is off by default. To enable the button, set thevrButtonoption toViewertotrue. Only Cardboard for mobile is supported. More VR devices will be supported when the WebVR API is more stable. - Added
Scene.useWebVRto switch the scene to use stereoscopic rendering. - Cesium now honors
window.devicePixelRatioon browsers that support the CSSimageRenderingattribute. 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; }
GroundPrimitivenow supports batching geometry for better performance.- Improved compatibility with glTF KHR_binary_glTF and KHR_materials_common extensions
- Added
ImageryLayer.getViewableRectangleto 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.reinitializefor changing imagery provider options without creating a new instance. UrlTemplateImageryProvidernow accepts a promise to anoptionsobject 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.useDepthPickingto enable or disable picking using the depth buffer. #3390 - Added
BoundingSphere.fromEncodedCartesianVerticesto create bounding volumes from parallel arrays of the upper and lower bits ofEncodedCartesian3s. - Added helper functions:
getExtensionFromUri,getAbsoluteUri, andMath.logBase. - Added
Rectangle.unionandRectangle.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 theflipXY : trueoption set to load correctly.
1.17 - 2016-01-04
- Breaking changes
- Removed
Camera.viewRectangle. UseCamera.setView({destination: rectangle})instead. - Removed
RectanglePrimitive. UseRectangleGeometryorEntity.rectangleinstead. - Removed
Polygon. UsePolygonGeometryorEntity.polygoninstead. - Removed
OrthographicFrustum.getPixelSize. UseOrthographicFrustum.getPixelDimensionsinstead. - Removed
PerspectiveFrustum.getPixelSize. UsePerspectiveFrustum.getPixelDimensionsinstead. - Removed
PerspectiveOffCenterFrustum.getPixelSize. UsePerspectiveOffCenterFrustum.getPixelDimensionsinstead. - Removed
Scene\HeadingPitchRange. UseCore\HeadingPitchRangeinstead. - Removed
jsonp. UseloadJsonpinstead. - Removed
HeightmapTessellatorfrom the public API. It is an implementation details. - Removed
TerrainMeshfrom the public API. It is an implementation details.
- Removed
- Reduced the amount of GPU and CPU memory used by terrain by using compression. The CPU memory was reduced by up to 40%.
- Added the ability to manipulate
Modelnode transformations via CZML and the Entity API. See the new Sandcastle example: CZML Model - Node Transformations. #3316 - Added
Globe.tileLoadProgressEvent, which is raised when the length of the tile load queue changes, enabling incremental loading indicators. - Added support for msGMLOutput and Thredds server feature information formats to
GetFeatureInfoFormatandWebMapServiceImageryProvider. - Added dynamic
enableFeaturePickingtoggle to all ImageryProviders that support feature picking. - Fixed disappearing terrain while fog is active. #3335
- Fixed short segments in
CorridorGeometryandPolylineVolumeGeometry. #3293 - Fixed
CorridorGeometrywith nearly colinear points. #3320 - Added missing points to
EllipseGeometryandEllipseOutlineGeometry. #3078 Rectangle.fromCartographicArraynow uses the smallest rectangle regardess of whether or not it crosses the international date line. #3227- Added
TranslationRotationScaleproperty, which represents an affine transformation defined by a translation, rotation, and scale. - Added
Matrix4.fromTranslationRotationScale. - Added
NodeTransformationProperty, which is aPropertyvalue that is defined by independenttranslation,rotation, andscalePropertyinstances. - Added
PropertyBag, which is aPropertywhose value is a key-value mapping of property names to the computed value of other properties. - Added
ModelGraphics.runAnimationswhich is a booleanPropertyindicating if all model animations should be started after the model is loaded. - Added
ModelGraphics.nodeTransformationswhich is aPropertyBagofTranslationRotationScaleproperties to be applied to a loaded model. - Added CZML support for new
runAnimationsandnodeTransformationsproperties on themodelpacket.
1.16 - 2015-12-01
- Deprecated
- Deprecated
HeightmapTessellator. It will be removed in 1.17. - Deprecated
TerrainMesh. It will be removed in 1.17. - Deprecated
OpenStreetMapImageryProvider. It will be removed in 1.18. UsecreateOpenStreetMapImageryProviderinstead.
- Deprecated
- Improved terrain performance by up to 35%. Added support for fog near the horizon, which improves performance by rendering less terrain tiles and reduces terrain tile requests. This is enabled by default. See
Scene.fogfor options. #3154 - Added terrain exaggeration. Enabled on viewer creation with the exaggeration scalar as the
terrainExaggerationoption. - Added support for incrementally loading textures after a Model is ready. This allows the Model to be visible as soon as possible while its textures are loaded in the background.
ImageMaterialProperty.imagenow accepts anHTMLVideoElement. You can also assign a video element directly to an Entitymaterialproperty.Materialimage uniforms now accept andHTMLVideoElementanywhere it could previously take aCanvaselement.- Added
VideoSynchronizerhelper object for keeping anHTMLVideoElementin sync with a scene's clock. - Fixed an issue with loading skeletons for skinned glTF models. #3224
- Fixed an issue with tile selection when below the surface of the ellipsoid. #3170
- Added
Cartographic.fromCartesianfunction. - Added
createOpenStreetMapImageryProviderfunction to replace theOpenStreetMapImageryProviderclass. This function returns a constructedUrlTemplateImageryProvider. GeoJsonDataSource.loadnow takes an optionaldescribePropertyfunction for generating feature description properties. #3140- Added
ImageryProvider.readyPromiseandTerrainProvider.readyPromiseand implemented it in all terrain and imagery providers. This is a promise which resolves whenreadybecomes true and rejected if there is an error during initialization. #3175 - Fixed an issue where the sun texture is not generated correctly on some mobile devices. #3141
- Fixed a bug that caused setting
Entity.parenttoundefinedto throw an exception. #3169 - Fixed a bug which caused
Entitypolyline graphics to be incorrect when a scene's ellipsoid was not WGS84. #3174 - Entities have a reference to their entity collection and to their owner (usually a data source, but can be a
CompositeEntityCollection). - Added
ImageMaterialProperty.alphaand aalphauniform toImageandMaterialtypes to control overall image opacity. It defaults to 1.0, fully opaque. - Added
Camera.getPixelSizefunction to get the size of a pixel in meters based on the current view. - Added
Camera.distanceToBoundingSpherefunction. - Added
BoundingSphere.fromOrientedBoundingBoxfunction. - Added utility function
getBaseUri, which given a URI with or without query parameters, returns the base path of the URI. - Added
Queue.peekto return the item at the front of a Queue. - Fixed
JulianDate.fromIso8601so that it correctly parses theYYYY-MM-DDThh:mmTZDformat. - Added
Model.maximumScaleandModelGraphics.maximumScaleproperties, giving an upper limit for minimumPixelSize. - Fixed glTF implementation to read the version as a string as per the specification and to correctly handle backwards compatibility for axis-angle rotations in glTF 0.8 models.
- Fixed a bug in the deprecated
jsonpthat prevented it from returning a promise. Its replacement,loadJsonp, was unaffected. - Fixed a bug where loadWithXhr would reject the returned promise with successful HTTP responses (2xx) that weren't 200.
1.15 - 2015-11-02
- Breaking changes
- Deleted old
<subfolder>/package.jsonand*.profile.jsfiles, 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.
- Deleted old
- Deprecated
- Deprecated
Camera.viewRectangle. It will be removed in 1.17. UseCamera.setView({destination: rectangle})instead. - The following options to
Camera.setViewhave been deprecated and will be removed in 1.17:position. Usedestinationinstead.positionCartographic. Convert to aCartesian3and usedestinationinstead.heading,pitchandroll. Useorientation.heading/pitch/rollinstead.
- Deprecated
CESIUM_binary_glTFextension support for glTF models. KHR_binary_glTF should be used instead.CESIUM_binary_glTFwill be removed in 1.18. Reconvert models using the online model converter. - Deprecated
RectanglePrimitive. It will be removed in 1.17. UseRectangleGeometryorEntity.rectangleinstead. - Deprecated
EllipsoidPrimitive. It will be removed in 1.17. UseEllipsoidGeometryorEntity.ellipsoidinstead. - Made
EllipsoidPrimitiveprivate, useEllipsoidGeometryorEntity.ellipsoidinstead. - Deprecated
BoxGeometry.minimumCornerandBoxGeometry.maximumCorner. These will be removed in 1.17. UseBoxGeometry.minimumandBoxGeometry.maximuminstead. - Deprecated
BoxOutlineGeometry.minimumCornerandBoxOutlineGeometry.maximumCorner. These will be removed in 1.17. UseBoxOutlineGeometry.minimumandBoxOutlineGeometry.maximuminstead. - Deprecated
OrthographicFrustum.getPixelSize. It will be removed in 1.17. UseOrthographicFrustum.getPixelDimensionsinstead. - Deprecated
PerspectiveFrustum.getPixelSize. It will be removed in 1.17. UsePerspectiveFrustum.getPixelDimensionsinstead. - Deprecated
PerspectiveOffCenterFrustum.getPixelSize. It will be removed in 1.17. UsePerspectiveOffCenterFrustum.getPixelDimensionsinstead. - Deprecated
Scene\HeadingPitchRange. It will be removed in 1.17. UseCore\HeadingPitchRangeinstead. - Deprecated
jsonp. It will be removed in 1.17. UseloadJsonpinstead.
- Deprecated
- Added support for the glTF 1.0 draft specification.
- Added support for the glTF extensions KHR_binary_glTF and KHR_materials_common.
- Decreased GPU memory usage in
BillboardCollectionandLabelCollectionby using WebGL instancing. - Added CZML examples to Sandcastle. See the new CZML tab.
- Changed
Camera.setViewto take the same parameter options asCamera.flyTo.options.destinationtakes a rectangle,options.orientationworks with heading/pitch/roll or direction/up, andoptions.endTransformwas added. #3100 - Fixed token issue in
ArcGisMapServerImageryProvider. ImageryLayerFeatureInfonow has animageryLayerproperty, indicating the layer that contains the feature.- Made
TileMapServiceImageryProviderandCesiumTerrainProviderwork properly when the provided base url contains query parameters and fragments. - The WebGL setting of
failIfMajorPerformanceCaveatnow defaults tofalse, 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. #3108 - Fixed the issue where the camera inertia takes too long to finish causing the camera move events to fire after it appears to. #2839
- Make KML invalid coordinate processing match Google Earth behavior. #3124
- Added
BoxOutlineGeometry.fromAxisAlignedBoundingBoxandBoxGeometry.fromAxisAlignedBoundingBoxfunctions. - Switched to gulp for all build tasks.
Javaandantare no longer required to develop Cesium. #3106 - Updated
requirejsfrom 2.1.9 to 2.1.20. #3107 - Updated
almondfrom 0.2.6 to 0.3.1. #3107
1.14 - 2015-10-01
- Fixed issues causing the terrain and sky to disappear when the camera is near the surface. #2415 and #2271
- Changed the
ScreenSpaceCameraController.minimumZoomDistancedefault from20.0to1.0. - Added
Billboard.sizeInMeters.truesets the billboard size to be measured in meters; otherwise, the size of the billboard is measured in pixels. Also added support for billboardsizeInMetersto entities and CZML. - Fixed a bug in
AssociativeArraythat would cause unbounded memory growth when adding and removing lots of items. - Provided a workaround for Safari 9 where WebGL constants can't be accessed through
WebGLRenderingContext. Now constants are hard-coded inWebGLConstants. #2989 - Added a workaround for Chrome 45, where the first character in a label with a small font size would not appear. #3011
- Added
subdomainsoption to theWebMapTileServiceImageryProviderconstructor. - Added
subdomainsoption to theWebMapServiceImageryProviderconstructor. - Fix zooming in 2D when tracking an object. The zoom was based on location rather than the tracked object. #2991
- Added
options.creditparameter toMapboxImageryProvider. - Fixed an issue with drill picking at low frame rates that would cause a crash. #3010
- Fixed a bug that prevented
setViewfrom working across all scene modes. - Fixed a bug that caused
camera.positionWCto occasionally return the incorrect value. - Used all the template urls defined in the CesiumTerrain provider.#3038
1.13 - 2015-09-01
-
Breaking changes
- Remove deprecated
AxisAlignedBoundingBox.intersectandBoundingSphere.intersect. UseBoundingSphere.intersectPlaneinstead. - Remove deprecated
getFeatureInfoAsGeoJsonandgetFeatureInfoAsXmlconstructor parameters fromWebMapServiceImageryProvider.
- Remove deprecated
-
Added support for
GroundPrimitivewhich works much likePrimitivebut drapes geometry over terrain. Valid geometries that can be draped on terrain areCircleGeometry,CorridorGeometry,EllipseGeometry,PolygonGeometry, andRectangleGeometry. 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. #2865 -
Added
Scene.groundPrimitives, which is a primitive collection likeScene.primitives, but forGroundPrimitiveinstances. 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
reverseZtag toUrlTemplateImageryProvider. #2961 -
Added
BoundingSphere.isOccludedandOrientedBoundingBox.isOccludedto determine if the volumes are occluded by anOccluder. -
Added
distanceSquaredToandcomputePlaneDistancesfunctions toOrientedBoundingBox. -
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
PolygonGeometrywas 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
JulianDatewould not parse certain dates properly. #405
1.12 - 2015-08-03
- Breaking changes
- Remove deprecated
ObjectOrientedBoundingBox. UseOrientedBoundingBoxinstead.
- Remove deprecated
- Added
MapboxImageryProviderto load imagery from Mapbox. - Added
maximumHeightoption toViewer.flyTo. #2868 - Added picking support to
UrlTemplateImageryProvider. - Added ArcGIS token-based authentication support to
ArcGisMapServerImageryProvider. - Added proxy support to
ArcGisMapServerImageryProviderforpickFeaturesrequests. - The default
CTRL + Left Click Dragmouse behavior is now duplicated forCTRL + Right Click Dragfor better compatibility with Firefox on Mac OS #2872. - Fixed incorrect texture coordinates for
WallGeometry#2872 - Fixed
WallGeometrybug that caused walls covering a short distance not to render. #2897 - Fixed
PolygonGeometryclockwise winding order bug. - Fixed extruded
RectangleGeometrybug for small heights. #2823 - Fixed
BillboardCollectionbounding sphere for billboards with a non-center vertical origin. #2894 - Fixed a bug that caused
Camera.positionCartographicto be incorrect. #2838 - Fixed calling
Scene.pickPositionafter callingScene.drillPick. #2813 - The globe depth is now rendered during picking when
Scene.depthTestAgainstTerrainistrueso objects behind terrain are not picked. - Fixed Cesium.js failing to parse in IE 8 and 9. While Cesium doesn't work in IE versions less than 11, this allows for more graceful error handling.
1.11 - 2015-07-01
- Breaking changes
- Removed
Scene.fxaaOrderIndependentTranslucency, which was deprecated in 1.10. UseScene.fxaawhich is nowtrueby default. - Removed
Camera.clone, which was deprecated in 1.10.
- Removed
- Deprecated
- The STK World Terrain url
cesiumjs.org/stk-terrain/worldhas been deprecated, useassets.agi.com/stk-terrain/worldinstead. A redirect will be in place until 1.14. - Deprecated
AxisAlignedBoundingBox.intersectandBoundingSphere.intersect. These will be removed in 1.13. UseAxisAlignedBoundingBox.intersectPlaneandBoundingSphere.intersectPlaneinstead. - Deprecated
ObjectOrientedBoundingBox. It will be removed in 1.12. UseOrientedBoundingBoxinstead.
- The STK World Terrain url
- Improved camera flights. #2825
- The camera now zooms to the point under the mouse cursor.
- Added a new camera mode for horizon views. When the camera is looking at the horizon and a point on terrain above the camera is picked, the camera moves in the plane containing the camera position, up and right vectors.
- Improved terrain and imagery performance and reduced tile loading by up to 50%, depending on the camera view, by using the new
OrientedBoundingBoxfor view frustum culling. See Terrain Culling with Oriented Bounding Boxes. - Added
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. - Fixed flash/streak rendering artifacts when picking. #2790, #2811
- Fixed 2D and Columbus view lighting issue. #2635.
- Fixed issues with material caching which resulted in the inability to use an image-based material multiple times. #2821
- Improved
Camera.viewRectangleso that the specified rectangle is now better centered on the screen. #2764 - Fixed a crash when
viewer.zoomToorviewer.flyTowere called immediately before or during a scene morph. #2775 - Fixed an issue where
Camerafunctions would throw an exception if used from within aScene.morphCompletecallback. #2776 - Fixed camera flights that ended up at the wrong position in Columbus view. #802
- Fixed camera flights through the map in 2D. #804
- Fixed strange camera flights from opposite sides of the globe. #1158
- Fixed camera flights that wouldn't fly to the home view after zooming out past it. #1400
- Fixed flying to rectangles that cross the IDL in Columbus view and 2D. #2093
- Fixed flights with a pitch of -90 degrees. #2468
Modelcan now load Binary glTF from aUint8Array.- Fixed a bug in
ImageryLayerthat could cause an exception and the render loop to stop when the base layer did not cover the entire globe. - The performance statistics displayed when
scene.debugShowFramesPerSecond === truecan now be styled using thecesium-performanceDisplayCSS classes inshared.css#2779. - Added
Plane.fromCartesian4. - Added
Plane.ORIGIN_XY_PLANE/ORIGIN_YZ_PLANE/ORIGIN_ZX_PLANEconstants for commonly-used planes. - Added
Matrix2/Matrix3/Matrix4.ZEROconstants. - Added
Matrix2/Matrix3.multiplyByScalefor multiplying against non-uniform scales. - Added
projectPointToNearestOnPlaneandprojectPointsToNearestOnPlanetoEllipsoidTangentPlaneto project 3D points to the nearest 2D point on anEllipsoidTangentPlane. - Added
EllipsoidTangentPlane.planeproperty to get thePlanefor the tangent plane. - Added
EllipsoidTangentPlane.xAxis/yAxis/zAxisproperties to get the local coordinate system of the tangent plane. - Add
QuantizedMeshTerrainDataconstructor argumentorientedBoundingBox. - Add
TerrainMesh.orientedBoundingBoxwhich holds theOrientedBoundingBoxfor the mesh for a single terrain tile.
1.10 - 2015-06-01
- Breaking changes
- Existing bookmarks to documentation of static members have changed #2757.
- Removed
InfoBoxViewModel.defaultSanitizer,InfoBoxViewModel.sanitizer, andCesium.sanitize, which was deprecated in 1.7. - Removed
InfoBoxViewModel.descriptionRawHtml, which was deprecated in 1.7. UseInfoBoxViewModel.descriptioninstead. - Removed
GeoJsonDataSource.fromUrl, which was deprecated in 1.7. UseGeoJsonDataSource.loadinstead. 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. - Removed
GeoJsonDataSource.prototype.loadUrl, which was deprecated in 1.7. Instead, pass a url as the first parameter toGeoJsonDataSource.prototype.load. - Removed
CzmlDataSource.prototype.loadUrl, which was deprecated in 1.7. Instead, pass a url as the first parameter toCzmlDataSource.prototype.load. - Removed
CzmlDataSource.prototype.processUrl, which was deprecated in 1.7. Instead, pass a url as the first parameter toCzmlDataSource.prototype.process. - Removed the
sourceUriparameter to allCzmlDataSourceload and process functions, which was deprecated in 1.7. Instead pass anoptionsobject withsourceUriproperty. - Removed
PolygonGraphics.positionswhich was deprecated in 1.6. Instead, usePolygonGraphics.hierarchy. - Existing bookmarks to documentation of static members changed. #2757
- Deprecated
WebMapServiceImageryProviderconstructor parametersoptions.getFeatureInfoAsGeoJsonandoptions.getFeatureInfoAsXmlwere deprecated and will be removed in Cesium 1.13. Useoptions.getFeatureInfoFormatsinstead.- Deprecated
Camera.clone. It will be removed in 1.11. - Deprecated
Scene.fxaaOrderIndependentTranslucency. It will be removed in 1.11. UseScene.fxaawhich is nowtrueby default. - The Cesium sample models are now in the Binary glTF format (
.bgltf). Cesium will also include the models as plain glTF (.gltf) until 1.13. Cesium support for.gltfwill not be removed.
- Added
viewquery 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.0 - Added
Billboard.heightReferenceandLabel.heightReferenceto clamp billboards and labels to terrain. - Added support for the CESIUM_binary_glTF extension for loading binary blobs of glTF to
Model. See Faster 3D Models with Binary glTF. - Added support for the CESIUM_RTC glTF extension for high-precision rendering to
Model. - Added
PointPrimitiveandPointPrimitiveCollection, which are faster and use less memory than billboards with circles. - Changed
Entity.pointto use the newPointPrimitiveinstead of billboards. This does not change theEntity.pointAPI. - Added
Scene.pickPositionto reconstruct the WGS84 position from window coordinates. - The default mouse controls now support panning and zooming on 3D models and other opaque geometry.
- Added
Camera.moveStartandCamera.moveEndevents. - Added
GeocoderViewModel.completeevent. Triggered after the camera flight is completed. KmlDataSourcecan now load a KML file that uses explicit XML namespacing, e.g.kml:Document.- Setting
Entity.shownow properly toggles the display of all descendant entities, previously it only affected its direct children. - Fixed a bug that sometimes caused
Entityinstances withshowset to false to reappear when newEntitygeometry is added. #2686 - Added a
Rotationobject which, when passed toSampledProperty, always interpolates values towards the shortest angle. Also hooked up CZML to useRotationfor all time-dynamic rotations. - Fixed a bug where moon rendered in front of foreground geometry. #1964
- Fixed a bug where the sun was smeared when the skybox/stars was disabled. #1829
TileProviderErrornow optionally takes anerrorparameter with more details of the error or exception that occurred.ImageryLayerpasses 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.ArcGisMapServerImageryProvidernow has amaximumLevelconstructor parameter.ArcGisMapServerImageryProviderpicking now works correctly when thelayersparameter is specified. Previously, it would pick from all layers even if only displaying a subset.WebMapServiceImageryProvider.pickFeaturesnow works with WMS servers, such as Google Maps Engine, that can only return feature information in HTML format.WebMapServiceImageryProvidernow accepts an array ofGetFeatureInfoFormatinstances that it will use to obtain information about the features at a given position on the globe. This enables an arbitraryinfo_formatto be passed to the WMS server, and an arbitrary JavaScript function to be used to interpret the response.- Fixed a crash caused by
ImageryLayerattempting to generate mipmaps for textures that are not a power-of-two size. - Fixed a bug where
ImageryLayerCollection.pickImageryLayerFeatureswould 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. - Fixed incorrect counting of
debug.tilesWaitingForChildreninQuadtreePrimitive. - Added
throttleRequestsByServer.maximumRequestsPerServerproperty. - Changed
createGeometryto load individual-geometry workers using a CommonJS-stylerequirewhen run in a CommonJS-like environment. - Added
buildModuleUrl.setBaseUrlfunction to allow the Cesium base URL to be set without the use of the global CESIUM_BASE_URL variable. - Changed
ThirdParty/zipto defer its call tobuildModuleUrluntil it is needed, rather than executing during module loading. - Added optional drilling limit to
Scene.drillPick. - Added optional
ellipsoidparameter 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. - Added debug option to
Sceneto show the depth buffer information for a specified view frustum slice and exposed capability inCesiumInspectorwidget. - Added new leap second for 30 June 2015 at UTC 23:59:60.
- Upgraded Autolinker from version 0.15.2 to 0.17.1.
1.9 - 2015-05-01
- Breaking changes
- Removed
ColorMaterialProperty.fromColor, previously deprecated in 1.6. Pass aColordirectly to theColorMaterialPropertyconstructor instead. - Removed
CompositeEntityCollection.entitiesandEntityCollection.entities, both previously deprecated in 1.6. UseCompositeEntityCollection.valuesandEntityCollection.valuesinstead. - Removed
DataSourceDisplay.getSceneandDataSourceDisplay.getDataSources, both previously deprecated in 1.6. UseDataSourceDisplay.sceneandDataSourceDisplay.dataSourcesinstead. Entityno longer takes a string id as its constructor argument. Pass an options object withidproperty instead. This was previously deprecated in 1.6.- Removed
Model.readyToRender, previously deprecated in 1.6. UseModel.readyPromiseinstead.
- Removed
- Entity
materialproperties andMaterialuniform values can now take acanvaselement in addition to an image or url. #2667 - Fixed a bug which caused
Entity.viewFromto be ignored when flying to, zooming to, or tracking an Entity. #2628 - Fixed a bug that caused
CorridorandPolylineVolumegeometry to be incorrect for sharp corners #2626 - Fixed crash when modifying a translucent entity geometry outline. #2630
- Fixed crash when loading KML GroundOverlays that spanned 360 degrees. #2639
- Fixed
Geocoderstyling issue in Safari. #2658. - Fixed a crash that would occur when the
ViewerorCesiumWidgetwas resized to 0 while the camera was in motion. #2662 - Fixed a bug that prevented the
InfoBoxtitle from updating if the name ofviewer.selectedEntitychanged. #2644 - Added an optional
resultparameter tocomputeScreenSpacePositionon bothBillboardandLabel. - Added number of cached shaders to the
CesiumInspectordebugging widget. - An exception is now thrown if
Primitive.modelMatrixis not the identity matrix when in in 2D or Columbus View.
1.8 - 2015-04-01
- Breaking changes
- Removed the
eye,target, andupparameters toCamera.lookAtwhich were deprecated in Cesium 1.6. Use thetargetandoffset. - Removed
Camera.setTransform, which was deprecated in Cesium 1.6. UseCamera.lookAtTransform. - Removed
Camera.transform, which was deprecated in Cesium 1.6. UseCamera.lookAtTransform. - Removed the
directionandupoptions toCamera.flyTo, which were deprecated in Cesium 1.6. Use theorientationoption. - Removed
Camera.flyToRectangle, which was deprecated in Cesium 1.6. UseCamera.flyTo.
- Removed the
- Deprecated
- Deprecated the
smallterraintileset. It will be removed in 1.11. Use the STK World Terrain tileset.
- Deprecated the
- Added
Entity.show, a boolean for hiding or showing an entity and its children. - Added
Entity.isShowing, a read-only property that indicates if an entity is currently being drawn. - Added support for the KML
visibilityelement. - Added
PolylineArrowMaterialPropertyto allow entities materials to use polyline arrows. - Added
VelocityOrientationPropertyto easily orient Entity graphics (such as a model) along the direction it is moving. - Added a new Sandcastle demo, Interpolation, which illustrates time-dynamic position interpolation options and uses the new
VelocityOrientationPropertyto orient an aircraft in flight. - Improved
viewer.zoomToandviewer.flyToso they are now "best effort" and work even if some entities being zoomed to are not currently in the scene. - Fixed
PointerEventdetection 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 WindowsWebBrowsercontrol. - Fixed an issue with transparency. #2572
- Fixed improper handling of null values when loading
GeoJSONdata. - Added support for automatic raster feature picking from
ArcGisMapServerImagerProvider. - Added the ability to specify the desired tiling scheme, rectangle, and width and height of tiles to the
ArcGisMapServerImagerProviderconstructor. - Added the ability to access dynamic ArcGIS MapServer layers by specifying the
layersparameter to theArcGisMapServerImagerProviderconstructor. - Fixed a bug that could cause incorrect rendering of an
ArcGisMapServerImageProviderwith a "singleFusedMapCache" in the geographic projection (EPSG:4326). - Added new construction options to
CesiumWidgetandViewer, forskyBox,skyAtmosphere, andglobe. - Fixed a bug that prevented Cesium from working in browser configurations that explicitly disabled localStorage, such as Safari's private browsing mode.
- Cesium is now tested using Jasmine 2.2.0.
1.7.1 - 2015-03-06
- Fixed a crash in
InfoBoxthat would occur when attempting to display plain text. - Fixed a crash when loading KML features that have no description and an empty
ExtendedDatanode. - Fixed a bug
in Color.fromCssColorStringwhere undefined would be returned for the CSS colortransparent. - Added
Color.TRANSPARENT. - Added support for KML
TimeStampnodes. - Improved KML compatibility to work with non-specification compliant KML files that still happen to load in Google Earth.
- All data sources now print errors to the console in addition to raising the
errorEventand rejecting their load promise.
1.7 - 2015-03-02
- Breaking changes
- Removed
viewerEntityMixin, which was deprecated in Cesium 1.5. Its functionality is now directly part of theViewerwidget. - Removed
Camera.tilt, which was deprecated in Cesium 1.6. UseCamera.pitch. - Removed
Camera.headingandCamera.tilt. They were deprecated in Cesium 1.6. UseCamera.setView. - Removed
Camera.setPositionCartographic, which was was deprecated in Cesium 1.6. UseCamera.setView.
- Removed
- Deprecated
- Deprecated
InfoBoxViewModel.defaultSanitizer,InfoBoxViewModel.sanitizer, andCesium.sanitize. They will be removed in 1.10. - Deprecated
InfoBoxViewModel.descriptionRawHtml, it will be removed in 1.10. UseInfoBoxViewModel.descriptioninstead. - Deprecated
GeoJsonDataSource.fromUrl, it will be removed in 1.10. UseGeoJsonDataSource.loadinstead. 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. - Deprecated
GeoJsonDataSource.prototype.loadUrl, it will be removed in 1.10. Instead, pass a url as the first parameter toGeoJsonDataSource.prototype.load. - Deprecated
CzmlDataSource.prototype.loadUrl, it will be removed in 1.10. Instead, pass a url as the first parameter toCzmlDataSource.prototype.load. - Deprecated
CzmlDataSource.prototype.processUrl, it will be removed in 1.10. Instead, pass a url as the first parameter toCzmlDataSource.prototype.process. - Deprecated the
sourceUriparameter to allCzmlDataSourceload and process functions. Support will be removed in 1.10. Instead pass anoptionsobject withsourceUriproperty.
- Deprecated
- Added initial support for KML 2.2 via
KmlDataSource. Check out the new Sandcastle Demo and the reference documentation for more details. InfoBoxsanitization now relies on iframe sandboxing. This allows for much more content to be displayed in the InfoBox (and still be secure).- Added
InfoBox.framewhich is the instance of the iframe that is used to host description content. Sanitization can be controlled via the frame'ssandboxattribute. See the above link for additional information. - Worked around a bug in Safari that caused most of Cesium to be broken. Cesium should now work much better on Safari for both desktop and mobile.
- Fixed incorrect ellipse texture coordinates. #2363 and #2465
- Fixed a bug that would cause incorrect geometry for long Corridors and Polyline Volumes. #2513
- Fixed a bug in imagery loading that could cause some or all of the globe to be missing when using an imagery layer that does not cover the entire globe.
- Fixed a bug that caused
ElipseOutlineGeometryandCircleOutlineGeometryto be extruded to the ground when they should have instead been drawn at height. #2499. - Fixed a bug that prevented per-vertex colors from working with
PolylineGeometryandSimplePolylineGeometrywhen used asynchronously. #2516 - Fixed a bug that would caused duplicate graphics if non-time-dynamic
Entityobjects were modified in quick succession. #2514. - Fixed a bug where
camera.flyToBoundingSpherewould ignore range if the bounding sphere radius was 0. #2519 - Fixed some styling issues with
InfoBoxandBaseLayerPickercaused by using Bootstrap with Cesium. #2487 - Added support for rendering a water effect on Quantized-Mesh terrain tiles.
- Added
packandunpackfunctions toMatrix2andMatrix3. - Added camera-terrain collision detection/response when the camera reference frame is set.
- Added
ScreenSpaceCameraController.enableCollisionDetectionto enable/disable camera collision detection with terrain. - Added
CzmlDataSource.loadandGeoJsonDataSource.loadto make it easy to create and load data in a single line. - Added the ability to pass a
Promiseto aDataSourcetoDataSourceCollection.add. TheDataSourcewill not actually be added until the promise resolves. - Added the ability to pass a
Promiseto a target toviewer.zoomToandviewer.flyTo. - All
CzmlDataSourceandGeoJsonDataSourceloading functions now returnPromiseinstances that resolve to the instances after data is loaded. - Error handling in all
CzmlDataSourceandGeoJsonDataSourceloading functions is now more consistent. Rather than a mix of exceptions andPromiserejections, all errors are raised viaPromiserejections. - In addition to addresses, the
Geocoderwidget now allows input of longitude, latitude, and an optional height in degrees and meters. Example:-75.596, 40.038, 1000or-75.596 40.038.
1.6 - 2015-02-02
- Breaking changes
Rectangle.intersectWithwas deprecated in Cesium 1.5. UseRectangle.intersection, which is the same but returnsundefinedwhen two rectangles do not intersect.Rectangle.isEmptywas deprecated in Cesium 1.5.- The
sourceUriparameter toGeoJsonDatasource.loadwas deprecated in Cesium 1.4 and has been removed. Use options.sourceUri instead. PolygonGraphics.positionscreated byGeoJSONDataSourcenow evaluate to aPolygonHierarchyobject instead of an array of positions.
- Deprecated
Camera.tiltwas deprecated in Cesium 1.6. It will be removed in Cesium 1.7. UseCamera.pitch.Camera.headingandCamera.tiltwere deprecated in Cesium 1.6. They will become read-only in Cesium 1.7. UseCamera.setView.Camera.setPositionCartographicwas deprecated in Cesium 1.6. It will be removed in Cesium 1.7. UseCamera.setView.- The
directionandupoptions toCamera.flyTohave been deprecated in Cesium 1.6. They will be removed in Cesium 1.8. Use theorientationoption. Camera.flyToRectanglehas been deprecated in Cesium 1.6. They will be removed in Cesium 1.8. UseCamera.flyTo.Camera.setTransformwas deprecated in Cesium 1.6. It will be removed in Cesium 1.8. UseCamera.lookAtTransform.Camera.transformwas deprecated in Cesium 1.6. It will be removed in Cesium 1.8. UseCamera.lookAtTransform.- The
eye,target, andupparameters toCamera.lookAtwere deprecated in Cesium 1.6. It will be removed in Cesium 1.8. Use thetargetandoffset. PolygonGraphics.positionswas deprecated and replaced withPolygonGraphics.hierarchy, whose value is aPolygonHierarchyinstead of an array of positions.PolygonGraphics.positionswill be removed in Cesium 1.8.- The
Model.readyToRenderevent was deprecated and will be removed in Cesium 1.9. Use the newModel.readyPromiseinstead. ColorMaterialProperty.fromColor(color)has been deprecated and will be removed in Cesium 1.9. The constructor can now take a Color directly, for examplenew ColorMaterialProperty(color).DataSourceDisplaymethodsgetSceneandgetDataSourceshave been deprecated and replaced withsceneanddataSourcesproperties. They will be removed in Cesium 1.9.- The
Entityconstructor 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 allEntityrelated properties at construction time. Support for the deprecated behavior will be removed in Cesium 1.9. - The
EntityCollection.entitiesandCompositeEntityCollect.entitiesproperties have both been renamed tovalues. Support for the deprecated behavior will be removed in Cesium 1.9.
- Fixed an issue which caused order independent translucency to be broken on many video cards. Disabling order independent translucency should no longer be necessary.
GeoJsonDataSourcenow supports polygons with holes.- Many Sandcastle examples have been rewritten to make use of the newly improved Entity API.
- Instead of throwing an exception when there are not enough unique positions to define a geometry, creating a
Primitivewill succeed, but not render. #2375 - Improved performance of asynchronous geometry creation (as much as 20% faster in some use cases). #2342
- Fixed picking in 2D. #2447
- Added
viewer.entitieswhich allows you to easily create and manageEntityinstances without a correspondingDataSource. This is just a shortcut toviewer.dataSourceDisplay.defaultDataSource.entities - Added
viewer.zoomToandviewer.flyTowhich takes an entity, array of entities,EntityCollection, orDataSourceas a parameter and zooms or flies to the corresponding visualization. - Setting
viewer.trackedEntitytoundefinedwill now restore the camera controls to their default states. - When you track an entity by clicking on the track button in the
InfoBox, you can now stop tracking by clicking the button a second time. - Added
Quaternion.fromHeadingPitchRollto create a rotation from heading, pitch, and roll angles. - Added
Transforms.headingPitchRollToFixedFrameto create a local frame from a position and heading/pitch/roll angles. - Added
Transforms.headingPitchRollQuaternionwhich is the quaternion rotation fromTransforms.headingPitchRollToFixedFrame. - Added
Color.fromAlphaandColor.withAlphato make it easy to create translucent colors from constants, i.e.var translucentRed = Color.RED.withAlpha(0.95). - Added
PolylineVolumeGraphicsandEntity.polylineVolume - Added
Camera.lookAtTransformwhich 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. - Added
Camera.setView(which use heading, pitch, and roll) andCamera.roll. - Added an orientation option to
Camera.flyTothat can be either direction and up unit vectors or heading, pitch and roll angles. - Added
BillboardGraphics.imageSubRegion, to enable custom texture atlas use forEntityinstances. - Added
CheckerboardMaterialPropertyto enable use of the checkerboard material with the entity API. - Added
PolygonHierarchyto make defining polygons with holes clearer. - Added
PolygonGraphics.hierarchyfor supporting polygons with holes via data sources. - Added
BoundingSphere.fromBoundingSpheres, which creates aBoundingSpherethat encloses the specified array of BoundingSpheres. - Added
Model.readyPromiseandPrimitive.readyPromisewhich are promises that resolve when the primitives are ready. ConstantPropertycan now hold any value; previously it was limited to values that implementedequalsandclonesfunctions, as well as a few special cases.- Fixed a bug in
EllipsoidGeodesicthat caused it to modify theheightof the positions passed to the constructor or to tosetEndPoints. WebMapTileServiceImageryProvidernow supports RESTful requests (by accepting a tile-URL template).- Fixed a bug that caused
Camera.rollto be around 180 degrees, indicating the camera was upside-down, when in the Southern hemisphere. - The object returned by
Primitive.getGeometryInstanceAttributesnow contains the instance's bounding sphere and repeated calls will always now return the same object instance. - Fixed a bug that caused dynamic geometry outlines widths to not work on implementations that support them.
- The
SelectionIndicatorwidget 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. - Added
CustomDataSourcewhich makes it easy to create and manage a group of entities without having to manually implement the DataSource interface in a new class. - Added
DataSourceDisplay.defaultDataSourcewhich is an instance ofCustomDataSourceand allows you to easily add custom entities to the display. - Added
Camera.viewBoundingSphereandCamera.flyToBoundingSphere, which as the names imply, sets or flies to a view that encloses the providedBoundingSphere - For constant
Propertyvalues, there is no longer a need to create an instance ofConstantPropertyorConstantPositionProperty, you can now assign a value directly to the corresponding property. The same is true for material images and colors. - All Entity and related classes can now be assigned using anonymous objects as well as be passed template objects. The correct underlying instance is created for you automatically. For a more detailed overview of changes to the Entity API, see this forum thread for details.
1.5 - 2015-01-05
- Breaking changes
- Removed
GeometryPipeline.wrapLongitude, which was deprecated in 1.4. UseGeometryPipeline.splitLongitudeinstead. - Removed
GeometryPipeline.combine, which was deprecated in 1.4. UseGeometryPipeline.combineInstancesinstead.
- Removed
- Deprecated
viewerEntityMixinwas deprecated. It will be removed in Cesium 1.6. Its functionality is now directly part of theViewerwidget.Rectangle.intersectWithwas deprecated. It will be removed in Cesium 1.6. UseRectangle.intersection, which is the same but returnsundefinedwhen two rectangles do not intersect.Rectangle.isEmptywas deprecated. It will be removed in Cesium 1.6.
- Improved GeoJSON, TopoJSON, and general polygon loading performance.
- Added caching to
Modelto save memory and improve loading speed when several models with the same url are created. - Added
ModelNode.showfor per-node show/hide. - Added the following properties to
ViewerandCesiumWidget:imageryLayers,terrainProvider, andcamera. This avoids the need to accessviewer.scenein some cases. - Dramatically improved the quality of font outlines.
- Added
BoxGraphicsandEntity.box. - Added
CorridorGraphicsandEntity.corridor. - Added
CylinderGraphicsandEntity.cylinder. - Fixed imagery providers whose rectangle crosses the IDL. Added
Rectangle.computeWidth,Rectangle.computeHeight,Rectangle.width, andRectangle.height. #2195 ConstantPropertynow acceptsHTMLElementinstances as valid values.BillboardGraphics.imageandImageMaterialProperty.imagenow acceptPropertyinstances that represent anImageorCanvasin addition to a url.- Fixed a bug in
PolylineGeometrythat would cause gaps in the line. #2136 - Fixed
upsampleQuantizedTerrainMeshrounding errors that had occasionally led to missing terrain skirt geometry in upsampled tiles. - Added
Math.modwhich computesm % nbut also works whenmis negative.
1.4 - 2014-12-01
- Breaking changes
- Types implementing
TerrainProviderare now required to implement thegetTileDataAvailablefunction. Backwards compatibility for this was deprecated in Cesium 1.2.
- Types implementing
- Deprecated
- The
sourceUriparameter toGeoJsonDatasource.loadwas deprecated and will be removed in Cesium 1.6 on February 3, 2015 (#2257). Useoptions.sourceUriinstead. GeometryPipeline.wrapLongitudewas deprecated. It will be removed in Cesium 1.5 on January 2, 2015. UseGeometryPipeline.splitLongitude. (#2272)GeometryPipeline.combinewas deprecated. It will be removed in Cesium 1.5. UseGeometryPipeline.combineInstances.
- The
- Added support for touch events on Internet Explorer 11 using the Pointer Events API.
- Added geometry outline width support to the
DataSourcelayer. This is exposed via the newoutlineWidthproperty onEllipseGraphics,EllipsoidGraphics,PolygonGraphics,RectangleGraphics, andWallGraphics. - Added
outlineWidthsupport to CZML geometry packets. - Added
stroke-widthsupport to the GeoJSON simple-style implementation. - Added the ability to specify global GeoJSON default styling. See the documentation for details.
- Added
CallbackPropertyto support lazy property evaluation as well as make custom properties easier to create. - Added an options parameter to
GeoJsonDataSource.load,GeoJsonDataSource.loadUrl, andGeoJsonDataSource.fromUrlto allow for basic per-instance styling. Sandcastle example. - Improved GeoJSON loading performance.
- Improved point visualization performance for all DataSources.
- Improved the performance and memory usage of
EllipseGeometry,EllipseOutlineGeometry,CircleGeometry, andCircleOutlineGeometry. - Added
tileMatrixLabelsoption toWebMapTileServiceImageryProvider. - Fixed a bug in
PolylineGeometrythat would cause the geometry to be split across the IDL for 3D only scenes. #1197 - Added
modelMatrixandculloptions toPrimitiveconstructor. - The
translationparameter toMatrix4.fromRotationTranslationnow defaults toCartesian3.ZERO. - Fixed
ModelNode.matrixwhen a node is targeted for animation. Camera.tiltnow clamps to [-pi / 2, pi / 2] instead of [0, pi / 2].- Fixed an issue that could lead to poor performance on lower-end GPUs like the Intel HD 3000.
- Added
distanceSquaredtoCartesian2,Cartesian3, andCartesian4. - Added
Matrix4.multiplyByMatrix3. - Fixed a bug in
Modelwhere the WebGL shader optimizer in Linux was causing mesh loading to fail.
1.3 - 2014-11-03
- Worked around a shader compilation regression in Firefox 33 and 34 by falling back to a less precise shader on those browsers. #2197
- Added support to the
CesiumTerrainProviderfor terrain tiles with more than 64K vertices, which is common for sub-meter terrain. - Added
Primitive.compressVertices. When true (default), geometry vertices are compressed to save GPU memory. - Added
cultureoption toBingMapsImageryProviderconstructor. - Reduced the amount of GPU memory used by billboards and labels.
- Fixed a bug that caused non-base imagery layers with a limited
rectangleto be stretched to the edges of imagery tiles. #416 - Fixed rendering polylines with duplicate positions. #898
- Fixed a bug in
Globe.pickthat 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 usingCamera.viewRectangle. - Fixed a bug in
sampleTerrainthat could cause it to produce undefined heights when sampling for a position very near the edge of a tile. ReferencePropertyinstances 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.- Upgraded topojson from 1.6.8 to 1.6.18.
- Upgraded Knockout from version 3.1.0 to 3.2.0.
- Upgraded CodeMirror, used by SandCastle, from 2.24 to 4.6.
1.2 - 2014-10-01
- Deprecated
- Types implementing the
TerrainProviderinterface should now include the newgetTileDataAvailablefunction. The function will be required starting in Cesium 1.4.
- Types implementing the
- Fixed model orientations to follow the same Z-up convention used throughout Cesium. There was also an orientation issue fixed in the online model converter. If you are having orientation issues after updating, try reconverting your models.
- Fixed a bug in
Modelwhere the wrong animations could be used when the model was created from glTF JSON instead of a url to a glTF file. #2078 - Fixed a bug in
GeoJsonDataSourcewhich was causing polygons with height values to be drawn onto the surface. - Fixed a bug that could cause a crash when quickly adding and removing imagery layers.
- Eliminated imagery artifacts at some zoom levels due to Mercator reprojection.
- Added support for the GeoJSON simplestyle specification. (Sandcastle example)
- Added
GeoJsonDataSource.fromUrlto make it easy to add a data source in less code. - Added
PinBuilderclass for easy creation of map pins. (Sandcastle example) - Added
Color.brightenandColor.darkento make it easy to brighten or darker a color instance. - Added a constructor option to
Scene,CesiumWidget, andViewerto disable order independent translucency. - Added support for WKID 102113 (equivalent to 102100) to
ArcGisMapServerImageryProvider. - Added
TerrainProvider.getTileDataAvailableto improve tile loading performance when camera starts near globe. - Added
Globe.showWaterEffectto enable/disable the water effect for supported terrain providers. - Added
Globe.baseColorto set the color of the globe when no imagery is available. - Changed default
GeoJSONPoint feature graphics to useBillboardGraphicswith a blue map pin instead of colorPointGraphics. - Cesium now ships with a version of the maki icon set for use with
PinBuilderand GeoJSON simplestyle support. - Cesium now ships with a default web.config file to simplify IIS deployment.
1.1 - 2014-09-02
- Added a new imagery provider,
WebMapTileServiceImageryProvider, for accessing tiles on a WMTS 1.0.0 server. - Added an optional
pickFeaturesfunction to theImageryProviderinterface. With supporting imagery providers, such asWebMapServiceImageryProvider, it can be used to determine the rasterized features under a particular location. - Added
ImageryLayerCollection.pickImageryLayerFeatures. It determines the rasterized imagery layer features intersected by a given pick ray by querying supporting layers usingImageryProvider.pickFeatures. - Added
tileWidth,tileHeight,minimumLevel, andtilingSchemeparameters to theWebMapServiceImageryProviderconstructor. - Added
idproperty toScenewhich is a readonly unique identifier associated with each instance. - Added
FeatureDetection.supportsWebWorkers. - Greatly improved the performance of time-varying polylines when using DataSources.
viewerEntityMixinnow automatically queries for imagery layer features on click and shows their properties in theInfoBoxpanel.- Fixed a bug in terrain and imagery loading that could cause an inconsistent frame rate when moving around the globe, especially on a faster internet connection.
- Fixed a bug that caused
SceneTransforms.wgs84ToWindowCoordinatesto incorrectly returnundefinedwhen in 2D. - Fixed a bug in
ImageryLayerthat caused layer images to be rendered twice for each terrain tile that existed prior to adding the imagery layer. - Fixed a bug in
Camera.pickEllipsoidthat caused it to return the back side of the ellipsoid when near the surface. - Fixed a bug which prevented
loadWithXhrfrom working with older browsers, such as Internet Explorer 9.
1.0 - 2014-08-01
- Breaking changes (why so many?)
-
All
Matrix2,Matrix3,Matrix4andQuaternionfunctions that take aresultparameter now require the parameter, except functions starting withfrom. -
Removed
Billboard.imageIndexandBillboardCollection.textureAtlas. Instead, useBillboard.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
Modelto support glTF 0.8. See the forum post for full details. -
Modelprimitives are now rotated to beZ-up to match Cesium convention; glTF stores models withYup. -
SimplePolylineGeometryandPolylineGeometrynow curve to follow the ellipsoid surface by default. To disable this behavior, set the optionfollowSurfacetofalse. -
Renamed
DynamicScenelayer toDataSources. The following types were also renamed:DynamicBillboard->BillboardGraphicsDynamicBillboardVisualizer->BillboardVisualizerCompositeDynamicObjectCollection->CompositeEntityCollectionDynamicClock->DataSourceClockDynamicEllipse->EllipseGraphicsDynamicEllipsoid->EllipsoidGraphicsDynamicObject->EntityDynamicObjectCollection->EntityCollectionDynamicObjectView->EntityViewDynamicLabel->LabelGraphicsDynamicLabelVisualizer->LabelVisualizerDynamicModel->ModelGraphicsDynamicModelVisualizer->ModelVisualizerDynamicPath->PathGraphicsDynamicPathVisualizer->PathVisualizerDynamicPoint->PointGraphicsDynamicPointVisualizer->PointVisualizerDynamicPolygon->PolygonGraphicsDynamicPolyline->PolylineGraphicsDynamicRectangle->RectangleGraphicsDynamicWall->WallGraphicsviewerDynamicObjectMixin->viewerEntityMixin
-
Removed
DynamicVectorandDynamicVectorVisualizer. -
Renamed
DataSource.dynamicObjectstoDataSource.entities. -
EntityCollection.getObjects()andCompositeEntityCollection.getObjects()are now properties namedEntityCollection.entitiesandCompositeEntityCollection.entities. -
Renamed
Viewer.trackedObjectandViewer.selectedObjecttoViewer.trackedEntityandViewer.selectedEntitywhen using theviewerEntityMixin. -
Renamed functions for consistency:
BoundingSphere.getPlaneDistances->BoundingSphere.computePlaneDistancesCartesian[2,3,4].getMaximumComponent->Cartesian[2,3,4].maximumComponentCartesian[2,3,4].getMinimumComponent->Cartesian[2,3,4].minimumComponentCartesian[2,3,4].getMaximumByComponent->Cartesian[2,3,4].maximumByComponentCartesian[2,3,4].getMinimumByComponent->Cartesian[2,3,4].minimumByComponentCubicRealPolynomial.realRoots->CubicRealPolynomial.computeRealRootsCubicRealPolynomial.discriminant->CubicRealPolynomial.computeDiscriminantJulianDate.getTotalDays->JulianDate.totalDyasJulianDate.getSecondsDifference->JulianDate.secondsDifferenceJulianDate.getDaysDifference->JulianDate.daysDifferenceJulianDate.getTaiMinusUtc->JulianDate.computeTaiMinusUtcMatrix3.getEigenDecompostion->Matrix3.computeEigenDecompositionOccluder.getVisibility->Occluder.computeVisibilityOccluder.getOccludeePoint->Occluder.computerOccludeePointQuadraticRealPolynomial.discriminant->QuadraticRealPolynomial.computeDiscriminantQuadraticRealPolynomial.realRoots->QuadraticRealPolynomial.computeRealRootsQuarticRealPolynomial.discriminant->QuarticRealPolynomial.computeDiscriminantQuarticRealPolynomial.realRoots->QuarticRealPolynomial.computeRealRootsQuaternion.getAxis->Quaternion.computeAxisQuaternion.getAngle->Quaternion.computeAngleQuaternion.innerQuadrangle->Quaternion.computeInnerQuadrangleRectangle.getSouthwest->Rectangle.southwestRectangle.getNorthwest->Rectangle.northwestRectangle.getSoutheast->Rectangle.southeastRectangle.getNortheast->Rectangle.northeastRectangle.getCenter->Rectangle.centerCullingVolume.getVisibility->CullingVolume.computeVisibility
-
Replaced
PerspectiveFrustum.fovywithPerspectiveFrustum.fovwhich will change the field of view angle in either theXorYdirection 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, andFAR. These are still available but are not part of the official API and may change in future versions. -
Removed
DynamicObject.vertexPositions. UseDynamicWall.positions,DynamicPolygon.positions, andDynamicPolyline.positionsinstead. -
Removed
defaultPoint,defaultLine, anddefaultPolygonfromGeoJsonDataSource. -
Removed
Primitive.allow3DOnly. Set theSceneconstructor optionscene3DOnlyinstead. -
SampledPropertyandSampledPositionPropertyno longer extrapolate outside of their sample data time range by default. -
Changed the following functions to properties:
TerrainProvider.hasWaterMaskCesiumTerrainProvider.hasWaterMaskArcGisImageServerTerrainProvider.hasWaterMaskEllipsoidTerrainProvider.hasWaterMaskVRTheWorldTerrainProvider.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,DynamicPyramidandDynamicPyramidVisualizer. This will be moved to a plugin in early August. #1887 -
If
Primitive.modelMatrixis changed after creation, it only affects primitives with one instance and only in 3D mode. -
ImageryLayerpropertiesalpha,brightness,contrast,hue,saturation, andgammamay no longer be functions. If you need to change these values each frame, consider moving your logic to an event handler forScene.preRender. -
Removed
closeTopandcloseBottomoptions fromRectangleGeometry. -
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 thedocumentpacket was optional; it is now mandatory. The simplest document packet is:{ "id":"document", "version":"1.0" } - The
vertexPositionsproperty has been removed. There is now apositionsproperty directly on objects that use it, currentlypolyline,polygon, andwall. cone,pyramid, andvectorhave been removed from the core CZML schema. They are now treated as extensions maintained by Analytical Graphics and have been renamed toagi_conicSensor,agi_customPatternSensor, andagi_vectorrespectively.- The
orientationproperty has been changed to match Cesium convention. To update existing CZML documents, conjugate the quaternion values. pixelOffsetnow uses the top-left of the screen as the origin; previously it was the bottom-left. To update existing documents, negate theyvalue.- Removed
color,outlineColor, andoutlineWidthproperties frompolylineandpath. There is a newmaterialproperty that allows you to specify a variety of materials, such assolidColor,polylineOutlineandpolylineGlow. - 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.requestVertexNormalsto request per vertex normals. AddedhasVertexNormalsproperty to all terrain providers to indicate whether or not vertex normals are included in the requested terrain tiles. - Added
Globe.getHeightandGlobe.pickfor finding the terrain height at a given Cartographic coordinate and picking the terrain with a ray. - Added
scene3DOnlyoptions toViewer,CesiumWidget, andSceneconstructors. 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, andbackwardExtrapolationDurationtoSampledPropertyandSampledPositionPropertywhich 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, andlineSegmentSphere. - Matrix types now have
addandsubtractfunctions. Matrix3type now has afromCrossProductfunction.- Added
CesiumMath.signNotZero,CesiumMath.toSNormandCesiumMath.fromSNormfunctions. - DataSource & CZML models now default to North-East-Down orientation if none is provided.
TileMapServiceImageryProvidernow works with tilesets created by tools that better conform to the TMS specification. In particular, a profile ofglobal-geodeticorglobal-mercatoris now supported (in addition to the previousgeodeticandmercator) and in these profiles it is assumed that the X coordinates of the bounding box correspond to the longitude direction.EntityCollectionandCompositeEntityCollectionnow include the array of modified entities as the last parameter to theironCollectionChangedevent.RectangleGeometry,RectangleOutlineGeometryandRectanglePrimitivecan cross the international date line.
Beta Releases
b30 - 2014-07-01
- Breaking changes (why so many?)
-
CZML property references now use a
#symbol to separate identifier from property path.objectId.positionshould now beobjectId#position. -
All
Cartesian2,Cartesian3,Cartesian4,TimeInterval, andJulianDatefunctions that take aresultparameter now require the parameter (except for functions starting withfrom). -
Modified
Transforms.pointToWindowCoordinatesandSceneTransforms.wgs84ToWindowCoordinatesto return window coordinates with origin at the top left corner. -
Billboard.pixelOffsetandLabel.pixelOffsetnow have their origin at the top left corner. -
Replaced
CameraFlightPath.createAnimationwithCamera.flyToand replacedCameraFlightPath.createAnimationRectanglewithCamera.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) }); -
In
Camera.flyToandCamera.flyToRectangle:options.durationis now in seconds, not milliseconds.- Renamed
options.endReferenceFrametooptions.endTransform. - Renamed
options.onCompletetooptions.complete. - Renamed
options.onCanceltooptions.cancel.
-
The following are now in seconds, not milliseconds.
Scene.morphToColumbusView,Scene.morphTo2D, andScene.morphTo3Dparameterduration.HomeButtonconstructor parameteroptions.duration,HomeButtonViewModelconstructor parameterduration, andHomeButtonViewModel.duration.SceneModePickerconstructor parameterduration,SceneModePickerViewModelconstructor parameterduration, andSceneModePickerViewModel.duration.GeocoderandGeocoderViewModelconstructor parameteroptions.flightDurationandGeocoderViewModel.flightDuration.ScreenSpaceCameraController.bounceAnimationTime.FrameRateMonitorconstructor parameteroptions.samplingWindow,options.quietPeriod, andoptions.warmupPeriod.
-
Refactored
JulianDateto be in line with other Core types.- Most functions now take result parameters.
- The default constructor no longer creates a date at the current time, use
JulianDate.now()instead. - Removed
JulianDate.getJulianTimeFractionandJulianDate.compareTo new 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
TimeIntervalto 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.fromIso8601now 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.findIntervalnow 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.emptywas renamed toTimeIntervalCollection.isEmpty -
Removed
Scene.animationsandAnimationCollectionfrom the public Cesium API. -
Replaced
color,outlineColor, andoutlineWidthinDynamicPathwith amaterialproperty. -
ModelAnimationCollection.addandModelAnimationCollection.addAllrenamedoptions.startOffsettooptions.delay. Also renamedModelAnimation.startOffsettoModelAnimation.delay. -
Replaced
Scene.scene2D.projectionproperty with read-onlyScene.mapProjection. Set this with themapProjectionoption for theViewer,CesiumWidget, orSceneconstructors. -
Moved Fresnel, Reflection, and Refraction materials to the Materials Pack Plugin.
-
Renamed
Simon1994PlanetaryPositionsfunctionsComputeSunPositionInEarthInertialFrameandComputeMoonPositionInEarthInertialFrametocomputeSunPositionInEarthInertialFrameandcomputeMoonPositionInEarthInertialFrame, respectively. -
Sceneconstructor function now takes anoptionsparameter instead of individual parameters. -
CesiumWidget.showErrorPanelnow takes amessageparameter in between the previoustitleanderrorparameters. -
Removed
Camera.createCorrectPositionAnimation. -
Moved
LeapSecond.leapSecondstoJulianDate.leapSeconds. -
Event.removeEventListenerno longer throwsDeveloperErrorif thelistenerdoes not exist; it now returnsfalse. -
Enumeration values of
SceneModehave better correspondence with mode names to help with debugging. -
The build process now requires Node.js to be installed on the system.
-
- Cesium now supports Internet Explorer 11.0.9 on desktops. For the best results, use the new IE Developer Channel for development.
ReferencePropertycan now handle sub-properties, for example,myObject#billboard.scale.DynamicObject.idcan now include period characters.- Added
PolylineGlowMaterialPropertywhich enables data sources to use the PolylineGlow material. - Fixed support for embedded resources in glTF models.
- Added
HermitePolynomialApproximation.interpolatefor performing interpolation when derivative information is available. SampledPropertyandSampledPositionPropertycan now store derivative information for each sample value. This allows for more accurate interpolation when usingHermitePolynomialApproximation.- Added
FrameRateMonitorto monitor the frame rate achieved by aSceneand to raise alowFrameRateevent when it falls below a configurable threshold. - Added
PerformanceWatchdogwidget andviewerPerformanceWatchdogMixin. ViewerandCesiumWidgetnow provide more user-friendly error messages when an initialization or rendering error occurs.ViewerandCesiumWidgetnow take a new optional parameter,creditContainer.Viewercan now optionally be constructed with aDataSourceCollection. Previously, it always created one itself internally.- Fixed a problem that could rarely lead to the camera's
tiltproperty beingNaN. GeoJsonDataSourceno longer uses thenameortitleproperty of the feature as the dynamic object's name if the value of the property is null.- Added
TimeIntervalCollection.isStartIncludedandTimeIntervalCollection.isStopIncluded. - Added
Cesium.VERSIONto the combinedCesium.jsfile. - 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.
b29 - 2014-06-02
- Breaking changes (why so many?)
-
Replaced
Scene.createTextureAtlaswithnew 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); -
Removed
CesiumWidget.onRenderLoopErrorandViewer.renderLoopError. They have been replaced byScene.renderError. -
Renamed
CompositePrimitivetoPrimitiveCollectionand added anoptionsparameter to the constructor function. -
Removed
Shapes.compute2DCircle,Shapes.computeCircleBoundaryandShapes.computeEllipseBoundary. Instead, useCircleOutlineGeometryandEllipseOutlineGeometry. See the tutorial. -
Removed
PolylinePipeline,PolygonPipeline,Tipsify,FrustumCommands, and allRenderertypes (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.Renderertypes in particular are likely to change. -
For AMD users only:
- Moved
PixelFormatfromRenderertoCore. - Moved the following from
RenderertoScene:TextureAtlas,TextureAtlasBuilder,BlendEquation,BlendFunction,BlendingState,CullFace,DepthFunction,StencilFunction, andStencilOperation. - Moved the following from
ScenetoCore:TerrainProvider,ArcGisImageServerTerrainProvider,CesiumTerrainProvider,EllipsoidTerrainProvider,VRTheWorldTerrainProvider,TerrainData,HeightmapTerrainData,QuantizedMeshTerrainData,TerrainMesh,TilingScheme,GeographicTilingScheme,WebMercatorTilingScheme,sampleTerrain,TileProviderError,Credit.
- Moved
-
Removed
TilingScheme.createRectangleOfLevelZeroTiles,GeographicTilingScheme.createLevelZeroTilesandWebMercatorTilingScheme.createLevelZeroTiles. -
Removed
CameraColumbusViewMode. -
Removed
Enumeration.
-
- Added new functions to
Cartesian3:fromDegrees,fromRadians,fromDegreesArray,fromRadiansArray,fromDegreesArray3DandfromRadiansArray3D. AddedfromRadianstoCartographic. - 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
preRenderandpostRenderevents toScene. - Added
Viewer.targetFrameRateandCesiumWidget.targetFrameRateto allow for throttling of the requestAnimationFrame rate. - Added
Viewer.resolutionScaleandCesiumWidget.resolutionScaleto allow the scene to be rendered at a resolution other than the canvas size. Camera.transformnow works consistently across scene modes.- Fixed a bug that prevented
sampleTerrainfrom working with STK World Terrain in Firefox. sampleTerrainno longer fails when used with aTerrainProviderthat is not yet ready.- Fixed problems that could occur when using
ArcGisMapServerImageryProviderto access a tiled MapServer of non-global extent. - Added
interleaveoption toPrimitiveconstructor. - 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.
b28 - 2014-05-01
- Breaking changes (why so many?):
- Renamed and moved
Scene.primitives.centralBodymoved toScene.globe. - Removed
CesiumWidget.centralBodyandViewer.centralBody. UseCesiumWidget.scene.globeandViewer.scene.globe. - Renamed
CentralBodytoGlobe. - Replaced
Model.computeWorldBoundingSpherewithModel.boundingSphere. - Refactored visualizers, removing
setDynamicObjectCollection,getDynamicObjectCollection,getScene, andremoveAllPrimitiveswhich are all superfluous after the introduction ofDataSourceDisplay. The affected classes are:DynamicBillboardVisualizerDynamicConeVisualizerUsingCustomSensorDynamicLabelVisualizerDynamicModelVisualizerDynamicPathVisualizerDynamicPointVisualizerDynamicPyramidVisualizerDynamicVectorVisualizerGeometryVisualizer
- Renamed Extent to Rectangle
Extent->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.tileXYToRectangle
- Converted
DataSourceget methods into properties.getName->namegetClock->clockgetChangedEvent->changedEventgetDynamicObjectCollection->dynamicObjectsgetErrorEvent->errorEvent
BaseLayerPickerhas been extended to support terrain selection (#1607).- The
BaseLayerPickerconstructor function now takes the container element and an options object instead of a CentralBody and ImageryLayerCollection. - The
BaseLayerPickerViewModelconstructor function now takes an options object instead of aCentralBodyandImageryLayerCollection. ImageryProviderViewModel->ProviderViewModelBaseLayerPickerViewModel.selectedName->BaseLayerPickerViewModel.buttonTooltipBaseLayerPickerViewModel.selectedIconUrl->BaseLayerPickerViewModel.buttonImageUrlBaseLayerPickerViewModel.selectedItem->BaseLayerPickerViewModel.selectedImageryBaseLayerPickerViewModel.imageryLayershas been removed and replaced withBaseLayerPickerViewModel.centralBody
- The
- Renamed
TimeIntervalCollection.cleartoTimeIntervalColection.removeAll Contextis now private.- Removed
Scene.context. Instead, useScene.drawingBufferWidth,Scene.drawingBufferHeight,Scene.maximumAliasedLineWidth, andScene.createTextureAtlas. Billboard.computeScreenSpacePosition,Label.computeScreenSpacePosition,SceneTransforms.clipToWindowCoordinatesandSceneTransforms.clipToDrawingBufferCoordinatestake aSceneparameter instead of aContext.Cameraconstructor takesSceneas parameter instead ofContext
- Removed
- Types implementing the
ImageryProviderinterface arenow require ahasAlphaChannelproperty. - Removed
checkForChromeFramesince Chrome Frame is no longer supported by Google. See Google's official announcement. - Types implementing
DataSourceno longer need to implementgetIsTimeVarying.
- Renamed and moved
- Added a
NavigationHelpButtonwidget that, when clicked, displays information about how to navigate around the globe with the mouse. The new button is enabled by default in theViewerwidget. - Added
Model.minimumPixelSizeproperty so models remain visible when the viewer zooms out. - Added
DynamicRectangleto support DataSource providedRectangleGeometry. - Added
DynamicWallto support DataSource providedWallGeometry. - Improved texture upload performance and reduced memory usage when using
BingMapsImageryProviderand other imagery providers that return false fromhasAlphaChannel. - Added the ability to offset the grid in the
GridMaterial. GeometryVisualizernow creates geometry asynchronously to prevent locking up the browser.- Add
Clock.canAnimateto prevent time from advancing, even while the clock is animating. Viewernow prevents time from advancing if asynchronous geometry is being processed in order to avoid showing an incomplete picture. This can be disabled via theViewer.allowDataSourcesToSuspendAnimationsettings.- Added ability to modify glTF material parameters using
Model.getMaterial,ModelMaterial, andModelMesh.material. - Added
asynchronousandreadyproperties toModel. - Added
Cartesian4.fromColorandColor.fromCartesian4. - Added
getScaleandgetMaximumScaletoMatrix2,Matrix3, andMatrix4. - Upgraded Knockout from version 3.0.0 to 3.1.0.
- Upgraded TopoJSON from version 1.1.4 to 1.6.8.
b27 - 2014-04-01
- Breaking changes:
-
All
CameraControllerfunctions have been moved up to theCamera. RemovedCameraController. For example, code that looked like:scene.camera.controller.viewExtent(extent);should now look like:
scene.camera.viewExtent(extent); -
Finished replacing getter/setter functions with properties:
ImageryLayergetImageryProvider->imageryProvidergetExtent->extent
Billboard,LabelgetShow,setShow->showgetPosition,setPosition->positiongetPixelOffset,setPixelOffset->pixelOffsetgetTranslucencyByDistance,setTranslucencyByDistance->translucencyByDistancegetPixelOffsetScaleByDistance,setPixelOffsetScaleByDistance->pixelOffsetScaleByDistancegetEyeOffset,setEyeOffset->eyeOffsetgetHorizontalOrigin,setHorizontalOrigin->horizontalOrigingetVerticalOrigin,setVerticalOrigin->verticalOrigingetScale,setScale->scalegetId->id
BillboardgetScaleByDistance,setScaleByDistance->scaleByDistancegetImageIndex,setImageIndex->imageIndexgetColor,setColor->colorgetRotation,setRotation->rotationgetAlignedAxis,setAlignedAxis->alignedAxisgetWidth,setWidth->widthgetHeightsetHeight->height
LabelgetText,setText->textgetFont,setFont->fontgetFillColor,setFillColor->fillColorgetOutlineColor,setOutlineColor->outlineColorgetOutlineWidth,setOutlineWidth->outlineWidthgetStyle,setStyle->style
PolygongetPositions,setPositions->positions
PolylinegetShow,setShow->showgetPositions,setPositions->positionsgetMaterial,setMeterial->materialgetWidth,setWidth->widthgetLoop,setLoop->loopgetId->id
OccludergetPosition->positiongetRadius->radiussetCameraPosition->cameraPosition
LeapSecondgetLeapSeconds,setLeapSeconds->leapSeconds
FullscreengetFullscreenElement->elementgetFullscreenChangeEventName->changeEventNamegetFullscreenErrorEventName->errorEventNameisFullscreenEnabled->enabledisFullscreen->fullscreen
EventgetNumberOfListeners->numberOfListeners
EllipsoidGeodesicgetSurfaceDistance->surfaceDistancegetStart->startgetEnd->endgetStartHeading->startHeadinggetEndHeading->endHeading
AnimationCollectiongetAll->all
CentralBodySurfacegetTerrainProvider,setTerrainProvider->terrainProvider
CreditgetText->textgetImageUrl->imageUrlgetLink->link
TerrainData,HightmapTerrainData,QuanitzedMeshTerrainDatagetWaterMask->waterMask
TilegetChildren->children
BuffergetSizeInBytes->sizeInBytesgetUsage->usagegetVertexArrayDestroyable,setVertexArrayDestroyable->vertexArrayDestroyable
CubeMapgetPositiveX->positiveXgetNegativeX->negativeXgetPositiveY->positiveYgetNegativeY->negativeYgetPositiveZ->positiveZgetNegativeZ->negativeZ
CubeMap,TexturegetSampler,setSampler->samplergetPixelFormat->pixelFormatgetPixelDatatype->pixelDatatypegetPreMultiplyAlpha->preMultiplyAlphagetFlipY->flipYgetWidth->widthgetHeight->height
CubeMapFacegetPixelFormat->pixelFormatgetPixelDatatype->pixelDatatype
FramebuffergetNumberOfColorAttachments->numberOfColorAttachmentsgetDepthTexture->depthTexturegetDepthRenderbuffer->depthRenderbuffergetStencilRenderbuffer->stencilRenderbuffergetDepthStencilTexture->depthStencilTexturegetDepthStencilRenderbuffer->depthStencilRenderbufferhasDepthAttachment->hasdepthAttachment
RenderbuffergetFormat->formatgetWidth->widthgetHeight->height
ShaderProgramgetVertexAttributes->vertexAttributesgetNumberOfVertexAttributes->numberOfVertexAttributesgetAllUniforms->allUniformsgetManualUniforms->manualUniforms
TexturegetDimensions->dimensions
TextureAtlasgetBorderWidthInPixels->borderWidthInPixelsgetTextureCoordinates->textureCoordinatesgetTexture->texturegetNumberOfImages->numberOfImagesgetGUID->guid
VertexArraygetNumberOfAttributes->numberOfAttributesgetIndexBuffer->indexBuffer
-
Finished removing prototype functions. (Use 'static' versions of these functions instead):
BoundingRectangleunion,expand
BoundingSphereunion,expand,getPlaneDistances,projectTo2D
PlanegetPointDistance
RaygetPoint
Sphericalnormalize
Extentvalidate,getSouthwest,getNorthwest,getNortheast,getSoutheast,getCenter,intersectWith,contains,isEmpty,subsample
-
DataSourcenow has additional required properties,isLoadingandloadingEventas well as a new optionalupdatemethod which will be called each frame. -
Renamed
Stripematerial uniformslightColoranddarkColortoevenColorandoddColor. -
Replaced
SceneTransitionerwith new functions and properties on theScene:morphTo2D,morphToColumbusView,morphTo3D,completeMorphOnUserInput,morphStart,morphComplete, andcompleteMorph. -
Removed
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
StripeMaterialPropertyfor supporting theStripematerial in DynamicScene. loadArrayBuffer,loadBlob,loadJson,loadText, andloadXMLnow support loading data from data URIs.- The
debugShowBoundingVolumeproperty 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.
b26 - 2014-03-03
- Breaking changes:
- Replaced getter/setter functions with properties:
ScenegetCanvas->canvasgetContext->contextgetPrimitives->primitivesgetCamera->cameragetScreenSpaceCameraController->screenSpaceCameraControllergetFrameState->frameStategetAnimations->animations
CompositePrimitivegetCentralBody,setCentralBody->centralBodygetLength->length
EllipsoidgetRadii->radiigetRadiiSquared->radiiSquaredgetRadiiToTheFourth->radiiToTheFourthgetOneOverRadii->oneOverRadiigetOneOverRadiiSquared->oneOverRadiiSquaredgetMinimumRadius->minimumRadiusgetMaximumRadius->maximumRadius
CentralBodygetEllipsoid->ellipsoidgetImageryLayers->imageryLayers
EllipsoidalOccludergetEllipsoid->ellipsoidgetCameraPosition,setCameraPosition->cameraPosition
EllipsoidTangentPlanegetEllipsoid->ellipsoidgetOrigin->origin
GeographicProjectiongetEllipsoid->ellipsoid
WebMercatorProjectiongetEllipsoid->ellipsoid
SceneTransitionergetScene->scenegetEllipsoid->ellipsoid
ScreenSpaceCameraControllergetEllipsoid,setEllipsoid->ellipsoid
SkyAtmospheregetEllipsoid->ellipsoid
TilingScheme,GeographicTilingScheme,WebMercatorTilingShemegetEllipsoid->ellipsoidgetExtent->extentgetProjection->projection
ArcGisMapServerImageryProvider,BingMapsImageryProvider,GoogleEarthImageryProvider,GridImageryProvider,OpenStreetMapImageryProvider,SingleTileImageryProvider,TileCoordinatesImageryProvider,TileMapServiceImageryProvider,WebMapServiceImageryProvidergetProxy->proxygetTileWidth->tileWidthgetTileHeight->tileHeightgetMaximumLevel->maximumLevelgetMinimumLevel->minimumLevelgetTilingScheme->tilingSchemegetExtent->extentgetTileDiscardPolicy->tileDiscardPolicygetErrorEvent->errorEventisReady->readygetCredit->credit
ArcGisMapServerImageryProvider,BingMapsImageryProvider,GoogleEarthImageryProvider,OpenStreetMapImageryProvider,SingleTileImageryProvider,TileMapServiceImageryProvider,WebMapServiceImageryProvidergetUrl->url
ArcGisMapServerImageryProviderisUsingPrecachedTiles- >usingPrecachedTiles
BingMapsImageryProvidergetKey->keygetMapStyle->mapStyle
GoogleEarthImageryProvidergetPath->pathgetChannel->channelgetVersion->versiongetRequestType->requestType
WebMapServiceImageryProvidergetLayers->layers
CesiumTerrainProvider,EllipsoidTerrainProvider,ArcGisImageServerTerrainProvider,VRTheWorldTerrainProvidergetErrorEvent->errorEventgetCredit->creditgetTilingScheme->tilingSchemeisReady->ready
TimeIntervalCollectiongetChangedEvent->changedEventgetStart->startgetStop->stopgetLength->lengthisEmpty->empty
DataSourceCollection,ImageryLayerCollection,LabelCollection,PolylineCollection,SensorVolumeCollectiongetLength->length
BillboardCollectiongetLength->lengthgetTextureAtlas,setTextureAtlas->textureAtlasgetDestroyTextureAtlas,setDestroyTextureAtlas->destroyTextureAtlas
- Removed
Scene.getUniformState(). Usescene.context.getUniformState(). - Visualizers no longer create a
dynamicObjectproperty on the primitives they create. Instead, they set theidproperty that is standard for all primitives. - The
propertyChangedon DynamicScene objects has been renamed todefinitionChanged. 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). - The
visualizerTypesparameter to theDataSouceDisplayhas been changed to a callback function that creates an array of visualizer instances. DynamicDirectionsPropertyandDynamicVertexPositionsPropertywere both removed, they have been superseded byPropertyArrayandPropertyPositionArray, which make it easy for DataSource implementations to create time-dynamic arrays.VisualizerCollectionhas been removed. It is superseded byDataSourceDisplay.DynamicEllipsoidVisualizer,DynamicPolygonVisualizer, andDynamicPolylineVisualizerhave been removed. They are superseded byGeometryVisualizerand correspondingGeometryUpdaterimplementations;EllipsoidGeometryUpdater,PolygonGeometryUpdater,PolylineGeometryUpdater.- Modified
CameraFlightPathfunctions 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. PixelDatatypeproperties are now JavaScript numbers, notEnumerationinstances.combinenow takes two objects instead of an array, and defaults to copying shallow references. TheallowDuplicatesparameter has been removed. In the event of duplicate properties, the first object's properties will be used.- Removed
FeatureDetection.supportsCrossOriginImagery. This check was only useful for very old versions of WebKit.
- Replaced getter/setter functions with properties:
- Added
Modelfor drawing 3D models using glTF. See the tutorial and Sandcastle example. - DynamicScene now makes use of Geometry and Appearances, which provides a tremendous improvements to DataSource visualization (CZML, GeoJSON, etc..). Extruded geometries are now supported and in many use cases performance is an order of magnitude faster.
- Added new
SelectionIndicatorandInfoBoxwidgets toViewer, activated byviewerDynamicObjectMixin. CesiumTerrainProvidernow supports mesh-based terrain like the tiles created by STK Terrain Server.- Fixed rendering artifact on translucent objects when zooming in or out.
- Added
CesiumInspectorwidget for graphics debugging. In Cesium Viewer, it is enabled by using the query parameterinspector=true. Also see the Sandcastle example. - Improved compatibility with Internet Explorer 11.
DynamicEllipse,DynamicPolygon, andDynamicEllipsoidnow have properties matching their geometry counterpart, i.e.EllipseGeometry,EllipseOutlineGeometry, etc. These properties are also available in CZML.- Added a
definitionChangedevent to thePropertyinterface as well as mostDynamicSceneobjects. This makes it easy for a client to observe when new data is loaded into a property or object. - Added an
isConstantproperty to thePropertyinterface. Constant properties do not change in regards to simulation time, i.e.Property.getValuewill always return the same result for all times. ConstantPropertyis now mutable; it's value can be updated viaConstantProperty.setValue.- Improved the quality of imagery near the poles when the imagery source uses a
GeographicTilingScheme. OpenStreetMapImageryProvidernow supports imagery with a minimum level.BingMapsImageryProvidernow uses HTTPS by default for metadata and tiles when the document is loaded over HTTPS.- Added the ability for imagery providers to specify view-dependent attribution to be display in the
CreditDisplay. - View-dependent imagery source attribution is now added to the
CreditDisplayby theBingMapsImageryProvider. - Fixed viewing an extent. #1431
- Fixed camera tilt in ICRF. #544
- Fixed developer error when zooming in 2D. If the zoom would create an invalid frustum, nothing is done. #1432
- Fixed
WallGeometrybug that failed by removing positions that were less close together by less than 6 decimal places. #1483 - Fixed
EllipsoidGeometrytexture coordinates. #1454 - Added a loop property to
Polylines to join the first and last point. #960 - Use
performance.now()instead ofDate.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. RequestErrorEventnow includes the headers that were returned with the error response.- Added
AssociativeArray, which is a helper class for maintaining a hash of objects that also needs to be iterated often. - Added
TimeIntervalCollection.getChangedEventwhich returns an event that will be raised whenever intervals are updated. - Added a second parameter to
Material.fromTypeto override default uniforms. #1522 - Added
Intersections2Dclass containing operations on 2D triangles. - Added
czm_inverseViewProjectionandczm_inverseModelViewProjectionautomatic GLSL uniform.
b25 - 2014-02-03
- Breaking changes:
- The
Viewerconstructor argumentoptions.fullscreenElementnow matches theFullscreenButtondefault ofdocument.body, it was previously theViewercontainer itself. - Removed
Viewer.objectTrackedevent;Viewer.trackedObjectis now an ES5 Knockout observable that can be subscribed to directly. - Replaced
PerformanceDisplaywithScene.debugShowFramesPerSecond. Asphalt,Blob,Brick,Cement,Erosion,Facet,Grass,TieDye, andWoodmaterials were moved to the Materials Pack Plugin.- Renamed
GeometryPipeline.createAttributeIndicestoGeometryPipeline.createAttributeLocations. - Renamed
attributeIndicesproperty toattributeLocationswhen callingContext.createVertexArrayFromGeometry. PerformanceDisplayrequires a DOM element as a parameter.
- The
- Fixed globe rendering in the current Canary version of Google Chrome.
Viewernow monitors the clock settings of the first addedDataSourcefor changes, and also now has a constructor optionautomaticallyTrackFirstDataSourceClockwhich will turn off this behavior.- The
DynamicObjectCollectioncreated byCzmlDataSourcenow sends a singlecollectionChangedevent after CZML is loaded; previously it was sending an event every time an object was created or removed during the load process. - Added
ScreenSpaceCameraController.enableInputsto fix issue with inputs not being restored after overlapping camera flights. - Fixed picking in 2D with rotated map. #1337
TileMapServiceImageryProvidercan now handle casing differences in tilemapresource.xml.OpenStreetMapImageryProvidernow supports imagery with a minimum level.- Added
Quaternion.fastSlerpandQuaternion.fastSquad. - Upgraded Tween.js to version r12.
b24 - 2014-01-06
- Breaking changes:
-
Added
allowTextureFilterAnisotropic(default:true) andfailIfMajorPerformanceCaveat(default:true) properties to thecontextOptionsproperty passed toViewer,CesiumWidget, andSceneconstructors and moved the existing properties to a newwebglsub-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
Cartesian3objects 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); -
The CSS files for individual widgets, e.g.
BaseLayerPicker.css, no longer import other CSS files. Most applications should importwidgets.css(and optionallylighter.css). -
SvgPathhas been replaced by a Knockout binding:cesiumSvgPath. -
DynamicObject.availabilityis now aTimeIntervalCollectioninstead of aTimeInterval. -
Removed prototype version of
BoundingSphere.transform. -
Matrix4.multiplyByPointnow returns aCartesian3instead of aCartesian4.
-
- The minified, combined
Cesium.jsfile now omits certainDeveloperErrorchecks, 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
Geocoderflights when following an object. - The
Viewerwidget now clearsGeocoderinput when the user clicks the home button. - The
Geocoderinput type has been changed tosearch, which improves usability (particularly on mobile devices). There were also some other minor styling improvements. - Added
CentralBody.maximumScreenSpaceError. - Added
translateEventTypes,zoomEventTypes,rotateEventTypes,tiltEventTypes, andlookEventTypesproperties toScreenSpaceCameraControllerto change the default mouse inputs. - Added
Billboard.setPixelOffsetScaleByDistance,Label.setPixelOffsetScaleByDistance,DynamicBillboard.pixelOffsetScaleByDistance, andDynamicLabel.pixelOffsetScaleByDistanceto control minimum/maximum pixelOffset scaling based on camera distance. - Added
BoundingSphere.transformsWithoutScale. - Added
fromArrayfunction toMatrix2,Matrix3andMatrix4. - Added
Matrix4.multiplyTransformation,Matrix4.multiplyByPointAsVector.
b23 - 2013-12-02
- Breaking changes:
-
Changed the
CatmulRomSplineandHermiteSplineconstructors 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) ] }); -
loadWithXhrnow takes an options object, and allows specifying HTTP method and data to send with the request. -
Renamed
SceneTransitioner.onTransitionStarttoSceneTransitioner.transitionStart. -
Renamed
SceneTransitioner.onTransitionCompletetoSceneTransitioner.transitionComplete. -
Renamed
CesiumWidget.onRenderLoopErrortoCesiumWidget.renderLoopError. -
Renamed
SceneModePickerViewModel.onTransitionStarttoSceneModePickerViewModel.transitionStart. -
Renamed
Viewer.onRenderLoopErrortoViewer.renderLoopError. -
Renamed
Viewer.onDropErrortoViewer.dropError. -
Renamed
CesiumViewer.onDropErrortoCesiumViewer.dropError. -
Renamed
viewerDragDropMixin.onDropErrortoviewerDragDropMixin.dropError. -
Renamed
viewerDynamicObjectMixin.onObjectTrackedtoviewerDynamicObjectMixin.objectTracked. -
PixelFormat,PrimitiveType,IndexDatatype,TextureWrap,TextureMinificationFilter, andTextureMagnificationFilterproperties are now JavaScript numbers, notEnumerationinstances. -
Replaced
sizeInBytesproperties onIndexDatatypewithIndexDatatype.getSizeInBytes.
-
- Added
perPositionHeightoption toPolygonGeometryandPolygonOutlineGeometry. - Added
QuaternionSplineandLinearSpline. - Added
Quaternion.log,Quaternion.exp,Quaternion.innerQuadrangle, andQuaternion.squad. - Added
Matrix3.inverseandMatrix3.determinant. - Added
ObjectOrientedBoundingBox. - Added
Ellipsoid.transformPositionFromScaledSpace. - Added
Math.nextPowerOfTwo. - Renamed our main website from cesium.agi.com to cesiumjs.org.
b22 - 2013-11-01
-
Breaking changes:
- Reversed the rotation direction of
Matrix3.fromQuaternionto be consistent with graphics conventions. Mirrored change inQuaternion.fromRotationMatrix. - The following prototype functions were removed:
- From
Matrix2,Matrix3, andMatrix4:toArray,getColumn,setColumn,getRow,setRow,multiply,multiplyByVector,multiplyByScalar,negate, andtranspose. - From
Matrix4:getTranslation,getRotation,inverse,inverseTransformation,multiplyByTranslation,multiplyByUniformScale,multiplyByPoint. For example, code that previously looked likematrix.toArray();should now look likeMatrix3.toArray(matrix);.
- From
- Replaced
DynamicPolylinecolor,outlineColor, andoutlineWidthproperties with a singlematerialproperty. - Renamed
DynamicBillboard.nearFarScalartoDynamicBillboard.scaleByDistance. - All data sources must now implement
DataSource.getName, which returns a user-readable name for the data source. - CZML
documentobjects are no longer added to theDynamicObjectCollectioncreated byCzmlDataSource. Use theCzmlDataSourceinterface to access the data instead. TimeInterval.equals, andTimeInterval.equalsEpsilonnow compare interval data as well.- All SVG files were deleted from
Widgets/Imagesand replaced by a newSvgPathclass. - The toolbar widgets (Home, SceneMode, BaseLayerPicker) and the fullscreen button now depend on
CesiumWidget.cssfor global Cesium button styles. - The toolbar widgets expect their
containerto be the toolbar itself now, no need for separate containers for each widget on the bar. Propertyimplementations are now required to implement a prototypeequalsfunction.ConstantPropertyandTimeIntervalCollectionPropertyno longer take aclonefunction and instead require objects to implement prototypecloneandequalsfunctions.- The
SkyBoxconstructor now takes anoptionsargument with asourcesproperty, instead of directly takingsources. - Replaced
SkyBox.getSourceswithSkyBox.sources. - The
bearingproperty ofDynamicEllipseis now calledrotation. - CZML
ellipse.bearingproperty is nowellipse.rotation.
- Reversed the rotation direction of
-
Added a
Geocoderwidget 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 theViewerwidget. -
Added
GoogleEarthImageryProvider. -
Added
Moonfor drawing the moon, andIauOrientationAxesfor computing the Moon's orientation. -
Added
Material.translucentproperty. Set this property orAppearance.translucentfor correct rendering order. Translucent geometries are rendered after opaque geometries. -
Added
enableLighting,lightingFadeOutDistance, andlightingFadeInDistanceproperties toCentralBodyto configure lighting. -
Added
Billboard.setTranslucencyByDistance,Label.setTranslucencyByDistance,DynamicBillboard.translucencyByDistance, andDynamicLabel.translucencyByDistanceto control minimum/maximum translucency based on camera distance. -
Added
PolylineVolumeGeometryandPolylineVolumeGeometryOutline. -
Added
Shapes.compute2DCircle. -
Added
Appearancestab to Sandcastle with an example for each geometry appearance. -
Added
Scene.drillPickto return list of objects each containing 1 primitive at a screen space position. -
Added
PolylineOutlineMaterialPropertyfor use withDynamicPolyline.material. -
Added the ability to use
ArrayandJulianDateobjects as custom CZML properties. -
Added
DynamicObject.nameand corresponding CZML support. This is a non-unique, user-readable name for the object. -
Added
DynamicObject.parentand corresponding CZML support. This allows forDataSourceobjects to present data hierarchically. -
Added
DynamicPoint.scaleByDistanceto control minimum/maximum point size based on distance from the camera. -
The toolbar widgets (Home, SceneMode, BaseLayerPicker) and the fullscreen button can now be styled directly with user-supplied CSS.
-
Added
skyBoxto theCesiumWidgetandViewerconstructors for changing the default stars. -
Added
Matrix4.fromTranslationQuaternionRotationScaleandMatrix4.multiplyByScale. -
Added
Matrix3.getEigenDecomposition. -
Added utility function
getFilenameFromUri, which given a URI with or without query parameters, returns the last segment of the URL. -
Added prototype versions of
equalsandequalsEpsilonmethod back toCartesian2,Cartesian3,Cartesian4, andQuaternion. -
Added prototype equals function to
NearFarScalar, andTimeIntervalCollection. -
Added
FrameState.events. -
Added
Primitive.allowPickingto save memory when picking is not needed. -
Added
debugShowBoundingVolume, for debugging primitive rendering, toPrimitive,Polygon,ExtentPrimitive,EllipsoidPrimitive,BillboardCollection,LabelCollection, andPolylineCollection. -
Added
DebugModelMatrixPrimitivefor debugging primitive'smodelMatrix. -
Added
optionsargument to theEllipsoidPrimitiveconstructor. -
Upgraded Knockout from version 2.3.0 to 3.0.0.
-
Upgraded RequireJS to version 2.1.9, and Almond to 0.2.6.
-
Added a user-defined
idto 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 }
b21 - 2013-10-01
-
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.defaultKeyproperty to the value of your application's key before constructing theCesiumWidgetor any other types that use the Bing Maps API.BingMapsApi.defaultKey = 'my-key-generated-with-bingmapsportal.com'; -
Scene.picknow returns an object with aprimitiveproperty, 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 } -
Removed
getViewMatrix,getInverseViewMatrix,getInverseTransform,getPositionWC,getDirectionWC,getUpWCandgetRightWCfromCamera. Instead, use theviewMatrix,inverseViewMatrix,inverseTransform,positionWC,directionWC,upWC, andrightWCproperties. -
Removed
getProjectionMatrixandgetInfiniteProjectionMatrixfromPerspectiveFrustum,PerspectiveOffCenterFrustumandOrthographicFrustum. Instead, use theprojectionMatrixandinfiniteProjectionMatrixproperties. -
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, andCartesian4:getMaximumComponent,getMinimumComponent,magnitudeSquared,magnitude,normalize,dot,multiplyComponents,add,subtract,multiplyByScalar,divideByScalar,negate,abs,lerp,angleBetween,mostOrthogonalAxis,equals, andequalsEpsilon. - From
Cartesian3:cross
Code that previously looked like
quaternion.magnitude();should now look likeQuaternion.magnitude(quaternion);. - From
-
DynamicObjectCollectionandCompositeDynamicObjectCollectionhave been largely re-written, see the documentation for complete details. Highlights include:getObjecthas been renamedgetById.removeObjecthas been renamedremoveById.collectionChangedevent added for notification of objects being added or removed.
-
DynamicScenegraphics object (DynamicBillboard, etc...) have had their staticmergePropertiesandcleanfunctions removed. -
UniformState.updatenow takes a context as its first parameter. -
Cameraconstructor now takes a context instead of a canvas. -
SceneTransforms.clipToWindowCoordinatesnow takes a context instead of a canvas. -
Removed
canvasDimensionsfromFrameState. -
Removed
contextoption fromMaterialconstructor and parameter fromMaterial.fromType. -
Renamed
TextureWrap.CLAMPtoTextureWrap.CLAMP_TO_EDGE.
-
-
Added
Geometriestab to Sandcastle with an example for each geometry type. -
Added
CorridorOutlineGeometry. -
Added
PolylineGeometry,PolylineColorAppearance, andPolylineMaterialAppearance. -
Added
colorsoption toSimplePolylineGeometryfor per vertex or per segment colors. -
Added proper support for browser zoom.
-
Added
propertyChangedevent toDynamicScenegraphics objects for receiving change notifications. -
Added prototype
cloneandmergefunctions toDynamicScenegraphics objects. -
Added
width,height, andnearFarScalarproperties toDynamicBillboardfor controlling the image size. -
Added
headingandtiltproperties toCameraController. -
Added
Scene.sunBloomto enable/disable the bloom filter on the sun. The bloom filter should be disabled for better frame rates on mobile devices. -
Added
getDrawingBufferWidthandgetDrawingBufferHeighttoContext. -
Added new built-in GLSL functions
czm_getLambertDiffuseandczm_getSpecular. -
Added support for EXT_frag_depth.
-
Improved graphics performance.
- An Everest terrain view went from 135-140 to over 150 frames per second.
- Rendering over a thousand polylines in the same collection with different materials went from 20 to 40 frames per second.
-
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.projectPointOntoPlanefor tangent planes on an ellipsoid other than the unit sphere. -
CompositePrimitive.addnow 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(/* ... */));
b20 - 2013-09-03
This releases fixes 2D and other issues with Chrome 29.0.1547.57 (#1002 and #1047).
- Breaking changes:
-
The
CameraFlightPathfunctionscreateAnimation,createAnimationCartographic, andcreateAnimationExtentnow takesceneas their first parameter instead offrameState. -
Completely refactored the
DynamicSceneproperty system to vastly improve the API. See #1080 for complete details.- Removed
CzmlBoolean,CzmlCartesian2,CzmlCartesian3,CzmlColor,CzmlDefaults,CzmlDirection,CzmlHorizontalOrigin,CzmlImage,CzmlLabelStyle,CzmlNumber,CzmlPosition,CzmlString,CzmlUnitCartesian3,CzmlUnitQuaternion,CzmlUnitSpherical, andCzmlVerticalOriginsince they are no longer needed. - Removed
DynamicProperty,DynamicMaterialProperty,DynamicDirectionsProperty, andDynamicVertexPositionsProperty; 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- aCompositePropertyfor materials.ColorMaterialProperty- a property that maps to a color material. (replacesDynamicColorMaterial)GridMaterialProperty- a property that maps to a grid material. (replacesDynamicGridMaterial)ImageMaterialProperty- a property that maps to an image material. (replacesDynamicImageMaterial)PositionProperty- base interface for all position properties.CompositePositionProperty- aCompositePropertyfor positions.ConstantPositionProperty- aPositionPropertywhose value does not change in respect to theReferenceFramein which is it defined.SampledPositionProperty- aSampledPropertyfor positions.TimeIntervalCollectionPositionProperty- ATimeIntervalCollectionPropertyfor positions.
- Removed
-
Removed
processCzml, useCzmlDataSourceinstead. -
Source/Widgets/Viewer/lighter.csswas deleted, useSource/Widgets/lighter.cssinstead. -
Replaced
ExtentGeometryparameters for extruded extent to make them consistent with other geometries.options.extrudedOptions.height->options.extrudedHeightoptions.extrudedOptions.closeTop->options.closeBottomoptions.extrudedOptions.closeBottom->options.closeTop
-
Geometry constructors no longer compute vertices or indices. Use the type's
createGeometrymethod. 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); -
Removed
createTypedArrayandcreateArrayBufferViewfrom each of theComponentDatatypeenumerations. Instead, useComponentDatatype.createTypedArrayandComponentDatatype.createArrayBufferView. -
DataSourceDisplaynow requires aDataSourceCollectionto be passed into its constructor. -
DeveloperErrorandRuntimeErrorno longer contain anerrorproperty. CalltoString, or check thestackproperty directly instead. -
Replaced
createPickFragmentShaderSourcewithcreateShaderSource. -
Renamed
PolygonPipeline.earClip2DtoPolygonPipeline.triangulate.
-
- Added outline geometries. #1021.
- Added
CorridorGeometry. - Added
Billboard.scaleByDistanceandNearFarScalarto control billboard minimum/maximum scale based on camera distance. - Added
EllipsoidGeodesic. - Added
PolylinePipeline.scaleToSurface. - Added
PolylinePipeline.scaleToGeodeticHeight. - Added the ability to specify a
minimumTerrainLevelandmaximumTerrainLevelwhen constructing anImageryLayer. The layer will only be shown for terrain tiles within the specified range. - Added
Math.setRandomNumberSeedandMath.nextRandomNumberfor generating repeatable random numbers. - Added
Color.fromRandomto generate random and partially random colors. - Added an
onCancelcallback toCameraFlightPathfunctions that will be executed if the flight is canceled. - Added
Scene.debugShowFrustumsandScene.debugFrustumStatisticsfor rendering debugging. - Added
PackableandPackableForInterpolationinterfaces to aid interpolation and in-memory data storage. Also made most core Cesium types implement them. - Added
InterpolationAlgorithminterface to codify the base interface already being used byLagrangePolynomialApproximation,LinearApproximation, andHermitePolynomialApproximation. - 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
WallGeometryto follow the curvature of the earth. - Improved visual quality of closed translucent geometries.
- Optimized polyline bounding spheres.
Viewernow automatically sets its clock to that of the first addedDataSource, regardless of how it was added to theDataSourceCollection. Previously, this was only done for dropped files byviewerDragDropMixin.CesiumWidgetandViewernow display an HTML error panel if an error occurs while rendering, which can be disabled with a constructor option.CameraFlightPathnow 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
EllipsoidPrimitiverendering 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.
b19 - 2013-08-01
- Breaking changes:
- Replaced tessellators and meshes with geometry. In particular:
- Replaced
CubeMapEllipsoidTessellatorwithEllipsoidGeometry. - Replaced
BoxTessellatorwithBoxGeometry. - Replaced
ExtentTessletaorwithExtentGeometry. - Removed
PlaneTessellator. It was incomplete and not used. - Renamed
MeshFilterstoGeometryPipeline. - Renamed
MeshFilters.toWireframeInPlacetoGeometryPipeline.toWireframe. - Removed
MeshFilters.mapAttributeIndices. It was not used. - Renamed
Context.createVertexArrayFromMeshtoContext.createVertexArrayFromGeometry. Likewise, renamedmeshconstructor property togeometry.
- Replaced
- Renamed
ComponentDatatype.*.toTypedArraytoComponentDatatype.*.createTypedArray. - Removed
Polygon.configureExtent. UseExtentPrimitiveinstead. - Removed
Polygon.bufferUsage. It is no longer needed. - Removed
heightandtextureRotationAnglearguments fromPolygonsetPositionsandconfigureFromPolygonHierarchyfunctions. UsePolygonheightandtextureRotationAngleproperties. - Renamed
PolygonPipeline.cleanUptoPolygonPipeline.removeDuplicates. - Removed
PolygonPipeline.wrapLongitude. UseGeometryPipeline.wrapLongitudeinstead. - Added
surfaceHeightparameter toBoundingSphere.fromExtent3D. - Added
surfaceHeightparameter toExtent.subsample. - Renamed
pointInsideTriangle2DtopointInsideTriangle. - Renamed
getLogotogetCreditforImageryProviderandTerrainProvider.
- Replaced tessellators and meshes with geometry. In particular:
- Added Geometry and Appearances #911.
- Added property
intersectionWidthtoDynamicCone,DynamicPyramid,CustomSensorVolume, andRectangularPyramidSensorVolume. - Added
ExtentPrimitive. - Added
PolylinePipeline.removeDuplicates. - Added
barycentricCoordinatesto compute the barycentric coordinates of a point in a triangle. - Added
BoundingSphere.fromEllipsoid. - Added
BoundingSphere.projectTo2D. - Added
Extent.fromDegrees. - Added
czm_tangentToEyeSpaceMatrixbuilt-in GLSL function. - Added debugging aids for low-level rendering:
DrawCommand.debugShowBoundingVolumeandScene.debugCommandFilter. - Added extrusion to
ExtentGeometry. - Added
CreditandCreditDisplayfor displaying credits on the screen. - Improved performance and visual quality of
CustomSensorVolumeandRectangularPyramidSensorVolume. - Improved the performance of drawing polygons created with
configureFromPolygonHierarchy.
b18 - 2013-07-01
- Breaking changes:
- Removed
CesiumViewerWidgetand replaced it with a newViewerwidget 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) - Changed all widgets to use ECMAScript 5 properties. All public observable properties now must be accessed and assigned as if they were normal properties, instead of being called as functions. For example:
clockViewModel.shouldAnimate()->clockViewModel.shouldAnimateclockViewModel.shouldAnimate(true);->clockViewModel.shouldAnimate = true;
ImageryProviderViewModel.fromConstantshas been removed. Use theImageryProviderViewModelconstructor directly.- Renamed the
transitionerproperty onCesiumWidget,HomeButton, andScreenModePickertosceneTrasitionerto be consistent with property naming convention. ImageryProvider.loadImagenow requires that the calling imagery provider instance be passed as its first parameter.- Removed the Dojo-based
checkForChromeFramefunction, and replaced it with a new standalone version that returns a promise to signal when the asynchronous check has completed. - Removed
Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg. If you were previously using this image withSingleTileImageryProvider, consider instead usingTileMapServiceImageryProviderwith a URL ofAssets/Textures/NaturalEarthII. - The
Client CZMLSandCastle demo has been removed, largely because it is redundant with the Simple CZML demo. - The
Two Viewer WidgetsSandCastle demo has been removed. We will add back a multi-scene example when we have a good architecture for it in place. - Changed static
clonefunctions in all objects such that if the object being cloned is undefined, the function will return undefined instead of throwing an exception.
- Removed
- Fix resizing issues in
CesiumWidget(#608, #834). - Added initial support for GeoJSON and TopoJSON. (#890, #906)
- Added rotation, aligned axis, width, and height properties to
Billboards. - Improved the performance of "missing tile" checking, especially for Bing imagery.
- Improved the performance of terrain and imagery refinement, especially when using a mixture of slow and fast imagery sources.
TileMapServiceImageryProvidernow supports imagery with a minimum level. This improves compatibility with tile sets generated by MapTiler or gdal2tiles.py using their default settings.- Added
Context.getAntialias. - Improved test robustness on Mac.
- Upgraded RequireJS to version 2.1.6, and Almond to 0.2.5.
- Fixed artifacts that showed up on the edges of imagery tiles on a number of GPUs.
- Fixed an issue in
BaseLayerPickerwhere destroy wasn't properly cleaning everything up. - Added the ability to unsubscribe to
Timelineupdate event. - Added a
screenSpaceEventHandlerproperty toCesiumWidget. Also added asceneModeoption to the constructor to set the initial scene mode. - Added
useDefaultRenderLoopproperty toCesiumWidgetthat allows the default render loop to be disabled so that a custom render loop can be used. - Added
CesiumWidget.onRenderLoopErrorwhich is anEventthat is raised if an exception is generated inside of the default render loop. ImageryProviderViewModel.creationCommandcan now return an array of ImageryProvider instances, which allows adding multiple layers when a single item is selected in theBaseLayerPickerwidget.
b17 - 2013-06-03
- Breaking changes:
- Replaced
Uniform.getFrameNumberandUniform.getTimewithUniform.getFrameState, which returns the full frame state. - Renamed
Widgets/Fullscreenfolder toWidgets/FullscreenButtonalong with associated objects/files.FullscreenWidget->FullscreenButtonFullscreenViewModel->FullscreenButtonViewModel
- Removed
addAttribute,removeAttribute, andsetIndexBufferfromVertexArray. They were not used.
- Replaced
- Added support for approximating local vertical, local horizontal (LVLH) reference frames when using
DynamicObjectViewin 3D. The object automatically selects LVLH or EastNorthUp based on the object's velocity. - Added support for CZML defined vectors via new
CzmlDirection,DynamicVector, andDynamicVectorVisualizerobjects. - Added
SceneTransforms.wgs84ToWindowCoordinates. #746. - Added
fromElementstoCartesian2,Cartesian3, andCartesian4. - Added
DrawCommand.cullto avoid redundant visibility checks. - Added
czm_morphTimeautomatic GLSL uniform. - Added support for OES_vertex_array_object, which improves rendering performance.
- Added support for floating-point textures.
- Added
IntersectionTests.trianglePlaneIntersection. - Added
computeHorizonCullingPoint,computeHorizonCullingPointFromVertices, andcomputeHorizonCullingPointFromExtentmethods toEllipsoidalOccluderand used them to build a more accurate horizon occlusion test for terrain rendering. - Added sun visualization. See
SunandScene.sun. - Added a new
HomeButtonwidget for returning to the default view of the current scene mode. - Added
Command.beforeExecuteandCommand.afterExecuteevents to enable additional processing when a command is executed. - Added rotation parameter to
Polygon.configureExtent. - Added camera flight to extents. See new methods
CameraController.getExtentCameraCoordinatesandCameraFlightPath.createAnimationExtent. - Improved the load ordering of terrain and imagery tiles, so that relevant detail is now more likely to be loaded first.
- Improved appearance of the Polyline arrow material.
- Fixed polyline clipping artifact. #728.
- Fixed polygon crossing International Date Line for 2D and Columbus view. #99.
- Fixed issue for camera flights when
frameState.mode === SceneMode.MORPHING. - Fixed ISO8601 date parsing when UTC offset is specified in the extended format, such as
2008-11-10T14:00:00+02:30.
b16 - 2013-05-01
- 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 }); -
CzmlCartographichas 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. -
Removed
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. -
Replaced
computeSunPositionwithSimon1994PlanetaryPosition, which has functions to calculate the position of the sun and the moon more accurately. -
Removed
Context.createClearState. These properties are now part ofClearCommand. -
RenderStateobjects returned fromContext.createRenderStateare now immutable. -
Removed
positionMCfromczm_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, andFadematerials. - Added
czm_pixelSizeInMetersautomatic 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.toRgbaandColor.fromRgbato convert to/from numeric unsigned 32-bit RGBA values. - Added
GridImageryProviderfor custom rendering effects and debugging. - Added new
Gridmaterial. - Made
EllipsoidPrimitivedouble-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
EllipsoidPrimitivepicking and picking objects with materials that have transparent parts. - Fixed imagery smearing artifacts on mobile devices and other devices without high-precision fragment shaders.
b15 - 2013-04-01
- Breaking changes:
Billboard.computeScreenSpacePositionnow takesContextandFrameStatearguments instead of aUniformStateargument.- Removed
clampToPixelproperty fromBillboardCollectionandLabelCollection. This option is no longer needed due to overall LabelCollection visualization improvements. - Removed
Widgets/Dojo/CesiumWidgetand replaced it withWidgets/CesiumWidget, which has no Dojo dependancies. destroyObjectno longer deletes properties from the object being destroyed.darker.cssfiles have been deleted and thedarkertheme is now the default style for widgets. The original theme is now known aslighterand is in correspondinglighter.cssfiles.- CSS class names have been standardized to avoid potential collisions. All widgets now follow the same pattern,
cesium-<widget>-<className>. - Removed
view2D,view3D, andviewColumbusproperties fromCesiumViewerWidget. Use thesceneTransitionerproperty instead.
- Added
BoundingSphere.fromCornerPoints. - Added
fromArrayanddistancefunctions toCartesian2,Cartesian3, andCartesian4. - Added
DynamicPath.resolutionproperty for setting the maximum step size, in seconds, to take when sampling a position for path visualization. - Added
TileCoordinatesImageryProviderthat renders imagery with tile X, Y, Level coordinates on the surface of the globe. This is mostly useful for debugging. - Added
DynamicEllipseandDynamicObject.ellipseproperty to render CZML ellipses on the globe. - Added
sampleTerrainfunction to sample the terrain height of a list ofCartographicpositions. - Added
DynamicObjectCollection.removeObjectand handling of the new CZMLdeleteproperty. - Imagery layers with an
alphaof exactly 0.0 are no longer rendered. Previously these invisible layers were rendered normally, which was a waste of resources. Unlike theshowproperty, imagery tiles in a layer with analphaof 0.0 are still downloaded, so the layer will become visible more quickly when itsalphais increased. - Added
onTransitionStartandonTransitionCompleteevents toSceneModeTransitioner. - Added
SceneModePicker; a new widget for morphing between scene modes. - Added
BaseLayerPicker; a new widget for switching among pre-configured base layer imagery providers.
b14 - 2013-03-01
- Breaking changes:
- Major refactoring of both animation and widgets systems as we move to an MVVM-like architecture for user interfaces.
- New
Animationwidget for controlling playback. - AnimationController.js has been deleted.
ClockStep.SYSTEM_CLOCK_DEPENDENTwas renamed toClockStep.SYSTEM_CLOCK_MULTIPLIER.ClockStep.SYSTEM_CLOCKwas added to have the clock always match the system time.ClockRange.LOOPwas renamed toClockRange.LOOP_STOPand now only loops in the forward direction.Clock.reverseTickwas removed, simply negateClock.multiplierand pass it toClock.tick.Clock.shouldAnimatewas added to indicate ifClock.tickshould actually advance time.- The Timeline widget was moved into the Widgets/Timeline subdirectory.
Dojo/TimelineWidgetwas removed. You should use the non-toolkit specific Timeline widget directly.
- New
- Removed
CesiumViewerWidget.fullScreenElement, instead use theCesiumViewerWidget.fullscreen.viewModel.fullScreenElementobservable property. IntersectionTests.rayPlanenow takes the newPlanetype instead of separateplaneNormalandplaneDarguments.- Renamed
ImageryProviderErrortoTileProviderError.
- Major refactoring of both animation and widgets systems as we move to an MVVM-like architecture for user interfaces.
- Added support for global terrain visualization via
CesiumTerrainProvider,ArcGisImageServerTerrainProvider, andVRTheWorldTerrainProvider. See the Terrain Tutorial for more information. - Added
FullscreenWidgetwhich is a simple, single-button widget that toggles fullscreen mode of the specified element. - Added interactive extent drawing to the
PickingSandcastle example. - Added
HeightmapTessellatorto create a mesh from a heightmap. - Added
JulianDate.equals. - Added
Planefor representing the equation of a plane. - Added a line segment-plane intersection test to
IntersectionTests. - Improved the lighting used in 2D and Columbus View modes. In general, the surface lighting in these modes should look just like it does in 3D.
- Fixed an issue where a
PolylineCollectionwith a model matrix other than the identity would be incorrectly rendered in 2D and Columbus view. - Fixed an issue in the
ScreenSpaceCameraControllerwhere disabled mouse events can cause the camera to be moved after being re-enabled.
b13 - 2013-02-01
- Breaking changes:
- The combined
Cesium.jsfile and other required files are now created inBuild/CesiumandBuild/CesiumUnminifiedfolders. - The Web Worker files needed when using the combined
Cesium.jsfile are now in aWorkerssubdirectory. - Removed
erosionproperty fromPolygon,ComplexConicSensorVolume,RectangularPyramidSensorVolume, andComplexConicSensorVolume. Use the newErosionmaterial. See the Sandbox Animation example. - Removed
setRectangleandgetRectanglemethods fromViewportQuad. Use the newrectangleproperty. - Removed
timeparameter fromScene.initializeFrame. Instead, pass the time toScene.render.
- The combined
- Added new
RimLightingandErosionmaterials. See the Fabric wiki page. - Added
hueandsaturationproperties toImageryLayer. - Added
czm_hueandczm_saturationto adjust the hue and saturation of RGB colors. - Added
JulianDate.getDaysDifferencemethod. - Added
Transforms.computeIcrfToFixedMatrixandcomputeFixedToIcrfMatrix. - Added
EarthOrientationParameters,EarthOrientationParametersSample,Iau2006XysData, andIau2006XysDataSampleclasses toCore. - CZML now supports the ability to specify positions in the International Celestial Reference Frame (ICRF), and inertial reference frame.
- Fixed globe rendering on the Nexus 4 running Google Chrome Beta.
ViewportQuadnow supports the material system. See the Fabric wiki page.- Fixed rendering artifacts in
EllipsoidPrimitive. - Fixed an issue where streaming CZML would fail when changing material types.
- Updated Dojo from 1.7.2 to 1.8.4. Reminder: Cesium does not depend on Dojo but uses it for reference applications.
b12a - 2013-01-18
- Breaking changes:
-
Renamed the
serverproperty tourlwhen constructing aBingMapsImageryProvider. Likewise, renamedBingMapsImageryProvider.getServertoBingMapsImageryProvider.getUrl. Code that looked likevar bing = new BingMapsImageryProvider({ server : 'dev.virtualearth.net' });should now look like:
var bing = new BingMapsImageryProvider({ url : 'http://dev.virtualearth.net' }); -
Renamed
toCSSColortotoCssColorString. -
Moved
minimumZoomDistanceandmaximumZoomDistancefrom theCameraControllerto theScreenSpaceCameraController.
-
- Added
fromCssColorStringtoColorto create aColorinstance from any CSS value. - Added
fromHsltoColorto create aColorinstance from H, S, L values. - Added
Scene.backgroundColor. - Added
textureRotationAngleparameter toPolygon.setPositionsandPolygon.configureFromPolygonHierarchyto rotate textures on polygons. - Added
Matrix3.fromRotationX,Matrix3.fromRotationY,Matrix3.fromRotationZ, andMatrix2.fromRotation. - Added
fromUniformScaletoMatrix2,Matrix3, andMatrix4. - Added
fromScaletoMatrix2. - Added
multiplyByUniformScaletoMatrix4. - Added
flipYproperty when callingContext.createTexture2DandContext.createCubeMap. - Added
MeshFilters.encodePositionandEncodedCartesian3.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.
b12 - 2013-01-03
- Breaking changes:
- Renamed
EventHandlertoScreenSpaceEventHandler. - Renamed
MouseEventTypetoScreenSpaceEventType. - Renamed
MouseEventType.MOVEtoScreenSpaceEventType.MOUSE_MOVE. - Renamed
CameraEventHandlertoCameraEventAggregator. - Renamed all
*MouseActionto*InputAction(including get, set, remove, etc). - Removed
Camera2DController,CameraCentralBodyController,CameraColumbusViewController,CameraFlightController,CameraFreeLookController,CameraSpindleController, andCameraControllerCollection. Common ways to modify the camera are through theCameraControllerobject of theCameraand will work in all scene modes. The default camera handler is theScreenSpaceCameraControllerobject on theScene. - Changed default Natural Earth imagery to a 2K version of Natural Earth II with Shaded Relief, Water, and Drainages. The previously used version did not include lakes and rivers. This replaced
Source/Assets/Textures/NE2_50M_SR_W_2048.jpgwithSource/Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg.
- Renamed
- Added pinch-zoom, pinch-twist, and pinch-tilt for touch-enabled browsers (particularly mobile browsers).
- Improved rendering support on Nexus 4 and Nexus 7 using Firefox.
- Improved camera flights.
- Added Sandbox example using NASA's new Black Marble night imagery.
- Added constrained z-axis by default to the Cesium widgets.
- Upgraded Jasmine from version 1.1.0 to 1.3.0.
- Added
JulianDate.toIso8601, which creates an ISO8601 compliant representation of a JulianDate. - The
Timelinewidget now properly displays leap seconds.
b11 - 2012-12-03
- Breaking changes:
- Widget render loop now started by default. Startup code changed, see Sandcastle examples.
- Changed
Timeline.makeLabelto take aJulianDateinstead of a JavaScript date parameter. - Default Earth imagery has been moved to a new package
Assets. Images used bySandcastleexamples have been moved to the Sandcastle folder, and images used by the Dojo widgets are now self-contained in theWidgetspackage. positionToEyeECinczm_materialInputis no longer normalized by default.FullScreenand related functions have been renamed toFullscreento match the W3C standard name.Fullscreen.isFullscreenEnabledwas incorrectly implemented in certain browsers.isFullscreenEnablednow correctly determines whether the browser will allow an element to go fullscreen. A newisFullscreenfunction is available to determine if the browser is currently in fullscreen mode.Fullscreen.getFullScreenChangeEventNameandFullscreen.getFullScreenChangeEventNamenow return the proper event name, suitable for use with theaddEventListenerAPI, instead prefixing them with "on".- Removed
Scene.setSunPositionandScene.getSunPosition. The sun position used for lighting is automatically computed based on the scene's time. - Removed a number of rendering options from
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. - Removed
affectedByLightingproperty fromPolygon,EllipsoidPrimitive,RectangularPyramidSensorVolume,CustomSensorVolume, andComplexConicSensorVolume. - Removed
DistanceIntervalMaterial. This was not documented. Matrix2.getElementIndex,Matrix3.getElementIndex, andMatrix4.getElementIndexfunctions have had their parameters swapped and now take row first and column second. This is consistent with other class constants, such as Matrix2.COLUMN1ROW2.- Replaced
CentralBody.showSkyAtmospherewithScene.skyAtmosphereandSkyAtmosphere. This has no impact for those using the Cesium widget.
- Improved lighting in Columbus view and on polygons, ellipsoids, and sensors.
- Fixed atmosphere rendering artifacts and improved Columbus view transition.
- Fixed jitter artifacts with billboards and polylines.
- Added
TileMapServiceImageryProvider. See the Imagery LayersSandcastleexample. - Added
Watermaterial. See the MaterialsSandcastleexample. - Added
SkyBoxto draw stars. AddedCesiumWidget.showSkyBoxandCesiumViewerWidget.showSkyBox. - Added new
Matrix4functions:Matrix4.multiplyByTranslation,multiplyByPoint, andMatrix4.fromScale. AddedMatrix3.fromScale. - Added
EncodedCartesian3, which is used to eliminate jitter when drawing primitives. - Added new automatic GLSL uniforms:
czm_frameNumber,czm_temeToPseudoFixed,czm_entireFrustum,czm_inverseModel,czm_modelViewRelativeToEye,czm_modelViewProjectionRelativeToEye,czm_encodedCameraPositionMCHigh, andczm_encodedCameraPositionMCLow. - Added
czm_translateRelativeToEyeandczm_luminanceGLSL functions. - Added
shininesstoczm_materialInput. - Added
QuadraticRealPolynomial,CubicRealPolynomial, andQuarticRealPolynomialfor finding the roots of quadratic, cubic, and quartic polynomials. - Added
IntersectionTests.grazingAltitudeLocationfor finding a point on a ray nearest to an ellipsoid. - Added
mostOrthogonalAxisfunction toCartesian2,Cartesian3, andCartesian4. - Changed CesiumViewerWidget default behavior so that zooming to an object now requires a single left-click, rather than a double-click.
- Updated third-party Tween.js.
b10 - 2012-11-02
- Breaking changes:
- Renamed
Texture2DPooltoTexturePool. - Renamed
BingMapsTileProvidertoBingMapsImageryProvider. - Renamed
SingleTileProvidertoSingleTileImageryProvider. - Renamed
ArcGISTileProvidertoArcGisMapServerImageryProvider. - Renamed
EquidistantCylindrdicalProjectiontoGeographicProjection. - Renamed
MercatorProjectiontoWebMercatorProjection. CentralBody.dayTileProviderhas been removed. Instead, add one or more imagery providers to the collection returned byCentralBody.getImageryLayers().- The
description.generateTextureCoordsparameter passed toExtentTessellator.computeis now calleddescription.generateTextureCoordinates. - Renamed
bringForward,sendBackward,bringToFront, andsendToBackmethods onCompositePrimitivetoraise,lower,raiseToTop, andlowerToBottom, respectively. CacheandCachePolicyare no longer used and have been removed.- Fixed problem with Dojo widget startup, and removed "postSetup" callback in the process. See Sandcastle examples and update your startup code.
- Renamed
CentralBodynow allows imagery from multiple sources to be layered and alpha blended on the globe. See the newImagery LayersandMap ProjectionsSandcastle examples.- Added
WebMapServiceImageryProvider. - Improved middle mouse click behavior to always tilt in the same direction.
- Added
getElementIndextoMatrix2,Matrix3, andMatrix4.
b9 - 2012-10-01
- Breaking changes:
- Removed the
renderandrenderForPickfunctions of primitives. The primitiveupdatefunction updates a list of commands for the renderer. For more details, see the Data Driven Renderer. - Removed
Context.getViewportandContext.setViewport. The viewport defaults to the size of the canvas if a primitive does not override the viewport property in the render state. shallowEqualshas been removed.- Passing
undefinedto any of the set functions onBillboardnow throws an exception. - Passing
undefinedto any of the set functions onPolylinenow throws an exception. PolygonPipeline.scaleToGeodeticHeightnow takes ellipsoid as the last parameter, instead of the first. It also now defaults toEllipsoid.WGS84if no parameter is provided.
- Removed the
- The new Sandcastle live editor and demo gallery replace the Sandbox and Skeleton examples.
- Improved picking performance and accuracy.
- Added EllipsoidPrimitive for visualizing ellipsoids and spheres. Currently, this is only supported in 3D, not 2D or Columbus view.
- Added
DynamicEllipsoidandDynamicEllipsoidVisualizerwhich use the newEllipsoidPrimitiveto implement ellipsoids in CZML. Extentfunctions now take optional result parameters. Also addedgetCenter,intersectWith, andcontainsfunctions.- Add new utility class,
DynamicObjectViewfor tracking a DynamicObject with the camera across scene modes; also hooked up CesiumViewerWidget to use it. - Added
enableTranslate,enableZoom, andenableRotateproperties toCamera2DControllerto selectively toggle camera behavior. All values default totrue. - Added
Camera2DController.setPositionCartographicto simplify moving the camera programmatically when in 2D mode. - Improved near/far plane distances and eliminated z-fighting.
- Added
Matrix4.multiplyByTranslation,Matrix4.fromScale, andMatrix3.fromScale.
b8 - 2012-09-05
-
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.computeScreenSpacePositionnow requires the current scene state as a parameter. -
Passing
undefinedto any of the set functions onLabelnow throws an exception. -
Renamed
agi_prefix on GLSL identifiers toczm_. -
Replaced
ViewportQuadpropertiesvertexShaderandfragmentShaderwith optional constructor arguments. -
Changed the GLSL automatic uniform
czm_viewportfrom anivec4to avec4to reduce casting. -
Billboardnow defaults to an image index of-1indicating no texture, previously billboards defaulted to0indicating 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 }); -
Renamed
SceneStatetoFrameState. -
SunPositionwas changed from a static object to a functioncomputeSunPosition; which now returns aCartesian3with 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
Quaternionoperations now have static versions that work with any objects exposingx,y,zandwproperties. -
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
writeTextToCanvasfunction which handles sizing the resulting canvas to fit the desired text. -
Added support for CZML path visualization via the
DynamicPathandDynamicPathVisualizerobjects. See the CZML wiki for more details. -
Added support for WEBGL_depth_texture. See
Framebuffer.setDepthTexture. -
Added
CesiumMath.isPowerOfTwo. -
Added
affectedByLightingtoComplexConicSensorVolume,CustomSensorVolume, andRectangularPyramidSensorVolumeto turn lighting on/off for these objects. -
CZML
Polygon,Cone, andPyramidobjects are no longer affected by lighting. -
Added
czm_viewRotationandczm_viewInverseRotationautomatic GLSL uniforms. -
Added a
clampToPixelproperty toBillboardCollectionandLabelCollection. When true, it aligns all billboards and text to a pixel in screen space, providing a crisper image at the cost of jumpier motion. -
Ellipsoidfunctions now take optional result parameters.
b7 - 2012-08-01
-
Breaking changes:
-
Removed keyboard input handling from
EventHandler. -
TextureAtlastakes 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.pickEllipsoidreturns the picked position in world coordinates and the ellipsoid parameter is optional. Prefer the newScene.pickEllipsoidmethod. For example, changevar position = camera.pickEllipsoid(ellipsoid, windowPosition);to:
var position = scene.pickEllipsoid(windowPosition, ellipsoid); -
Camera.getPickRaynow returns the newRaytype instead of an object with position and direction properties. -
Camera.viewExtentnow takes anExtentargument instead of west, south, east and north arguments. PreferScene.viewExtentoverCamera.viewExtent.Scene.viewExtentwill work in anySceneMode. For example, changecamera.viewExtent(ellipsoid, west, south, east, north);to:
scene.viewExtent(extent, ellipsoid); -
CameraSpindleController.mouseConstrainedZAxishas been removed. Instead, useCameraSpindleController.constrainedAxis. Code that previously looked like:spindleController.mouseConstrainedZAxis = true;should now look like:
spindleController.constrainedAxis = Cartesian3.UNIT_Z; -
The
Camera2DControllerconstructor andCameraControllerCollection.add2Dnow require a projection instead of an ellipsoid. -
Chainhas been removed.whenis now included as a more complete CommonJS Promises/A implementation. -
Jobs.downloadImagewas replaced withloadImageto provide a promise that will asynchronously load an image. -
jsonpnow returns a promise for the requested data, removing the need for a callback parameter. -
JulianDate.getTimeStandard() has been removed, dates are now always stored internally as TAI.
-
LeapSeconds.setLeapSeconds now takes an array of LeapSecond instances instead of JSON.
-
TimeStandard.convertUtcToTai and TimeStandard.convertTaiToUtc have been removed as they are no longer needed.
-
Cartesian3.prototype.getXY()was replaced withCartesian2.fromCartesian3. Code that previously looked likecartesian3.getXY();should now look likeCartesian2.fromCartesian3(cartesian3);. -
Cartesian4.prototype.getXY()was replaced withCartesian2.fromCartesian4. Code that previously looked likecartesian4.getXY();should now look likeCartesian2.fromCartesian4(cartesian4);. -
Cartesian4.prototype.getXYZ()was replaced withCartesian3.fromCartesian4. Code that previously looked likecartesian4.getXYZ();should now look likeCartesian3.fromCartesian4(cartesian4);. -
Math.angleBetweenwas removed because it was a duplicate ofCartesian3.angleBetween. Simply replace calls of the former to the later. -
Cartographic3was renamed toCartographic. -
Cartographic2was removed; useCartographicinstead. -
Ellipsoid.toCartesianwas renamed toEllipsoid.cartographicToCartesian. -
Ellipsoid.toCartesianswas renamed toEllipsoid.cartographicArrayToCartesianArray. -
Ellipsoid.toCartographic2was renamed toEllipsoid.cartesianToCartographic. -
Ellipsoid.toCartographic2swas renamed toEllipsoid.cartesianArrayToCartographicArray. -
Ellipsoid.toCartographic3was renamed toEllipsoid.cartesianToCartographic. -
Ellipsoid.toCartographic3swas renamed toEllipsoid.cartesianArrayToCartographicArray. -
Ellipsoid.cartographicDegreesToCartesianwas removed. Code that previously looked likeellipsoid.cartographicDegreesToCartesian(new Cartographic(45, 50, 10))should now look likeellipsoid.cartographicToCartesian(Cartographic.fromDegrees(45, 50, 10)). -
Math.cartographic3ToRadians,Math.cartographic2ToRadians,Math.cartographic2ToDegrees, andMath.cartographic3ToDegreeswere removed. These functions are no longer needed because Cartographic instances are always represented in radians. -
All functions starting with
multiplyWithnow start withmultiplyByto be consistent with functions starting withdivideBy. -
The
multiplyWithMatrixfunction on eachMatrixtype was renamed tomultiply. -
All three Matrix classes have been largely re-written for consistency and performance. The
valuesproperty has been eliminated and Matrices are no longer immutable. Code that previously looked likematrix = matrix.setColumn0Row0(12);now looks likematrix[Matrix2.COLUMN0ROW0] = 12;. Code that previously looked likematrix.setColumn3(cartesian3);now looked likematrix.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
Cartesian2operations now have static versions that work with any objects exposingxandyproperties. -
All
Cartesian3operations now have static versions that work with any objects exposingx,y, andzproperties. -
All
Cartesian4operations now have static versions that work with any objects exposingx,y,zandwproperties. -
All
Cartographicoperations now have static versions that work with any objects exposinglongitude,latitude, andheightproperties. -
All
Matrixclasses are now indexable like arrays. -
All
Matrixoperations 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, andCartographicoperations now take an optional result parameter for object re-use to reduce memory pressure. -
Added
Cartographic.fromDegreesto make creating Cartographic instances from values in degrees easier. -
Added
addImagetoTextureAtlasso 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 currentSceneMode. -
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, andLinearApproximationinterpolation algorithms. -
Added
CoordinateConversions, a new static class where most coordinate conversion methods will be stored. -
Added
Sphericalcoordinate type -
Added a new DynamicScene layer for time-dynamic, data-driven visualization. This include CZML processing. For more details see https://github.com/AnalyticalGraphicsInc/cesium/wiki/Architecture and https://github.com/AnalyticalGraphicsInc/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
CameraCentralBodyControlleras the new default controller to handle mouse input.- The left mouse button rotates around the central body.
- The right mouse button and mouse wheel zoom in and out.
- The middle mouse button rotates around the point clicked on the central body.
-
Added
computeTemeToPseudoFixedMatrixfunction toTransforms. -
Added 'PolylineCollection' to manage numerous polylines. 'PolylineCollection' dramatically improves rendering speed when using polylines.
b6a - 2012-06-20
- Breaking changes:
- Changed
Tipsify.tipsifyandTipsify.calculateACMRto accept an object literal instead of three separate arguments. Supplying a maximum index and cache size is now optional. CentralBodyno longer requires a camera as the first parameter.
- Changed
- Added
CentralBody.northPoleColorandCentralBody.southPoleColorto fill in the poles if they are not covered by a texture. - Added
Polygon.configureExtentto create a polygon defined by west, south, east, and north values. - Added functions to
Camerato provide position and directions in world coordinates. - Added
showThroughEllipsoidtoCustomSensorVolumeandRectangularPyramidSensorVolumeto allow sensors to draw through Earth. - Added
affectedByLightingtoCentralBodyandPolygonto turn lighting on/off for these objects.
b5 - 2012-05-15
-
Breaking changes:
-
Renamed Geoscope to Cesium. To update your code, change all
Geoscope.*references toCesium.*, and reference Cesium.js instead of Geoscope.js. -
CompositePrimitive.addGroundwas removed; useCompositePrimitive.addinstead. For example, changeprimitives.addGround(polygon);to:
primitives.add(polygon); -
Moved
eastNorthUpToFixedFrameandnorthEastDownToFixedFramefunctions fromEllipsoidto a newTransformsobject. For example, changevar m = ellipsoid.eastNorthUpToFixedFrame(p);to:
var m = Cesium.Transforms.eastNorthUpToFixedFrame(p, ellipsoid); -
Label properties
fillStyleandstrokeStylewere renamed tofillColorandoutlineColor; they are also now color objects instead of strings. The labelColorproperty 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 }); -
Renamed
Tipsify.TipsifytoTipsify.tipsify. -
Renamed
Tipsify.CalculateACMRtoTipsify.calculateACMR. -
Renamed
LeapSecond.CompareLeapSecondDatetoLeapSecond.compareLeapSecondDate. -
Geoscope.JSONP.getis nowCesium.jsonp.Cesium.jsonpnow takes a url, a callback function, and an options object. The previous 2nd and 4th parameters are now specified using the options object. -
TWEENis no longer globally defined, and is instead available asCesium.Tween. -
Chain.js functions such as
runare now moved toCesium.Chain.run, etc. -
Geoscope.CollectionAlgorithms.binarySearchis nowCesium.binarySearch. -
Geoscope.ContainmentTests.pointInsideTriangle2Dis nowCesium.pointInsideTriangle2D. -
Static constructor methods prefixed with "createFrom", now start with "from":
Matrix2.createfromColumnMajorArraybecomes
Matrix2.fromColumnMajorArray -
The
JulianDateconstructor no longer takes aDateobject, 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.getDateis nowJulianDate.toDate()and returns a new instance each time. -
CentralBody.logoOffsetXandlogoOffsetYhave been replaced withCentralBody.logoOffset, aCartesian2. -
TileProviders now take a proxy object instead of a string, to allow more control over how proxy URLs are built. Construct a DefaultProxy, passing the previous proxy URL, to get the previous behavior.
-
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_XCartsian2/3/4.getUnitY()->Cartsian2/3/4.UNIT_YCartsian2/3/4.getUnitZ()->Cartsian3/4.UNIT_ZCartsian2/3/4.getUnitW()->Cartsian4.UNIT_WMatrix/2/3/4.getIdentity()->Matrix/2/3/4.IDENTITYQuaternion.getIdentity()->Quaternion.IDENTITYEllipsoid.getWgs84()->Ellipsoid.WGS84Ellipsoid.getUnitSphere()->Ellipsoid.UNIT_SPHERECartesian2/3/4/Cartographic.getZero()->Cartesian2/3/4/Cartographic.ZERO
-
-
Added
PerformanceDisplaywhich 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.computeEllipseBoundaryand updatedShapes.computeCircleBoundaryto compute boundaries using arc-distance. -
Added
fileExtensionandcreditproperties toOpenStreetMapTileProviderconstruction. -
Night lights no longer disappear when
CentralBody.showGroundAtmosphereistrue.
b4 - 2012-03-01
-
Breaking changes:
-
Replaced
Geoscope.SkyFromSpaceobject withCentralBody.showSkyAtmosphereproperty. -
For mouse click and double click events, replaced
event.xandevent.ywithevent.position. -
For mouse move events, replaced
movement.startXandstartYwithmovement.startPosition. Replacedmovement.endXandmovement.endYwithmovement.endPosition. -
Scene.Picknow takes aCartesian2with 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
SceneTransitionerto switch between 2D and 3D views. See the new Skeleton 2D example. -
Added
CentralBody.showGroundAtmosphereto show an atmosphere on the ground. -
Added
Camera.pickEllipsoidto get the point on the globe under the mouse cursor. -
Added
Polygon.heightto draw polygons at a constant altitude above the ellipsoid.
b3 - 2012-02-06
- Breaking changes:
- Replaced
Geoscope.ConstantsandGeoscope.TrigwithGeoscope.Math. Polygon- Replaced
setColorandgetColorwith amaterial.colorproperty. - Replaced
setEllipsoidandgetEllipsoidwith anellipsoidproperty. - Replaced
setGranularityandgetGranularitywith agranularityproperty.
- Replaced
Polyline- Replaced
setColor/getColorandsetOutlineColor/getOutlineColorwithcolorandoutlineproperties. - Replaced
setWidth/getWidthandsetOutlineWidth/getOutlineWidthwithwidthandoutlineWidthproperties.
- Replaced
- Removed
Geoscope.BillboardCollection.bufferUsage. It is now automatically determined. - Removed
Geoscope.Labelset/get functions forshadowOffset,shadowBlur,shadowColor. These are no longer supported. - Renamed
Scene.getTransitionstoScene.getAnimations. - Renamed
SensorCollectiontoSensorVolumeCollection. - Replaced
ComplexConicSensorVolume.materialwith separate materials for each surface:outerMaterial,innerMaterial, andcapMaterial. - Material renames
TranslucentSensorVolumeMaterialtoColorMaterial.DistanceIntervalSensorVolumeMaterialtoDistanceIntervalMaterial.TieDyeSensorVolumeMaterialtoTieDyeMaterial.CheckerboardSensorVolumeMaterialtoCheckerboardMaterial.PolkaDotSensorVolumeMaterialtoDotMaterial.FacetSensorVolumeMaterialtoFacetMaterial.BlobSensorVolumeMaterialtoBlobMaterial.
- Added new materials:
VerticalStripeMaterialHorizontalStripeMaterialDistanceIntervalMaterial
- Added polygon material support via the new
Polygon.materialproperty. - Added clock angle support to
ConicSensorVolumevia the newmaximumClockAngleandminimumClockAngleproperties. - Added a rectangular sensor,
RectangularPyramidSensorVolume. - Changed custom sensor to connect direction points using the sensor's radius; previously, points were connected with a line.
- Improved performance and memory usage of
BillboardCollectionandLabelCollection. - Added more mouse events.
- Added Sandbox examples for new features.
- Replaced
b2 - 2011-12-01
- Added complex conic and custom sensor volumes, and various materials to change their appearance. See the new Sensor folder in the Sandbox.
- Added modelMatrix property to primitives to render them in a local reference frame. See the polyline example in the Sandbox.
- Added eastNorthUpToFixedFrame() and northEastDownToFixedFrame() to Ellipsoid to create local reference frames.
- Added CameraFlightController to zoom smoothly from one point to another. See the new camera examples in the Sandbox.
- Added row and column assessors to Matrix2, Matrix3, and Matrix4.
- 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:
- Calls to Context.pick() should be replaced with Scene.pick().
- Primitive constructors no longer require a context argument.
- Primitive update() and render() functions now require a context argument. However, when using the new Scene object, these functions do not need to be called directly.
- TextureAtlas should no longer be created directly; instead, call Scene.getContext().createTextureAtlas().
- 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 }
-
b1 - 2011-09-19
-
Added
Shapes.computeCircleBoundaryto compute circles. See the Sandbox. -
Changed the
EventHandlerconstructor 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); -
Improved the Sandbox:
- Code in the editor is now evaluated as you type for quick prototyping.
- Highlighting a Geoscope type in the editor and clicking the doc button in the toolbar now brings up the reference help for that type.
-
BREAKING CHANGE: The
Contextconstructor-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);
b0 - 2011-08-31
- Added new Sandbox and Skeleton examples. The sandbox contains example code for common tasks. The skeleton is a bare-bones application for building upon. Most sandbox code examples can be copy and pasted directly into the skeleton.
- Added
Geoscope.Polygonfor drawing polygons on the globe. - Added
Context.pickto pick objects in one line of code. - Added
bringForward,bringToFront,sendBackward, andsendToBackfunctions toCompositePrimitiveto control the render-order for ground primitives. - Added
getShow/setShowfunctions toPolylineandCompositePrimitive. - Added new camera control and event types including
CameraFreeLookEventHandler,CameraSpindleEventHandler, andEventHandler. - Replaced
Ellipsoid.toCartesian3withEllipsoid.toCartesian. - update and
updateForPickfunctions no longer require aUniformStateargument.
Alpha Releases
a6 - 2011-08-05
- Added support for lines using
Geoscope.Polyline. See the Sandbox example. - Made
CompositePrimitive,LabelCollection, andBillboardCollectionhave consistent function names, including a newcontains()function. - Improved reference documentation layout.
a5 - 2011-07-22
- Flushed out
CompositePrimitive,TimeStandard, andLeapSecondtypes. - Improved support for browsers using ANGLE (Windows Only).
a4 - 2011-07-15
- Added
Geoscope.TimeStandardfor handling TAI and UTC time standards. - Added
Geoscope.Quaternion, which is a foundation for future camera control. - Added initial version of
Geoscope.PrimitiveCollectionto simplify rendering. - Prevented billboards/labels near the surface from getting cut off by the globe.
- See the Sandbox for example code.
- Added more reference documentation for labels.
a3 - 2011-07-08
- Added
Geoscope.LabelCollectionfor drawing text. - Added
Geoscope.JulianDateandGeoscope.TimeConstantsfor proper time handling. - See the Sandbox example for how to use the new labels and Julian date.
a2 - 2011-07-01
- Added
Geoscope.ViewportQuadandGeoscope.Rectangle(foundations for 2D map). - Improved the visual quality of cloud shadows.
a1 - 2011-06-24
- Added
SunPositiontype to compute the sun position for a julian date. - Simplified picking. See the mouse move event in the Sandbox example.
Cartographic2andCartographic3are now mutable types.- Added reference documentation for billboards.
a0 - 2011-06-17
- Initial Release.