Skip to content

Commit 8178bf6

Browse files
committed
Merge remote-tracking branch 'origin' into cesium.com
2 parents 330e525 + 0ca6a3e commit 8178bf6

32 files changed

+362
-107
lines changed

Apps/Sandcastle/CesiumSandcastle.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ body {
5353
width: 40%;
5454
}
5555

56-
#bottomPanel {
56+
#bottomSection {
5757
height: 225px;
5858
}
5959

Apps/Sandcastle/CesiumSandcastle.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,10 @@ require({
621621

622622
// Apply user HTML to bucket.
623623
const htmlElement = bucketDoc.createElement("div");
624-
htmlElement.innerHTML = htmlEditor.getValue();
624+
// Stylesheet imports are weirdly broken in Firefox 140. This is a hacky workaround
625+
// https://github.com/CesiumGS/cesium/issues/12700
626+
const htmlCode = htmlEditor.getValue().replace(/@import/, "@import ");
627+
htmlElement.innerHTML = htmlCode;
625628
bucketDoc.body.appendChild(htmlElement);
626629

627630
const onScriptTagError = function () {
@@ -1179,7 +1182,9 @@ require({
11791182
baseHref = `${baseHref.substring(0, pos)}/gallery/`;
11801183

11811184
const code = jsEditor.getValue();
1182-
const html = htmlEditor.getValue();
1185+
// Stylesheet imports are weirdly broken in Firefox 140. This is a hacky workaround
1186+
// https://github.com/CesiumGS/cesium/issues/12700
1187+
const html = htmlEditor.getValue().replace(/@import/, "@import ");
11831188
const data = makeCompressedBase64String([code, html, baseHref]);
11841189

11851190
let url = getBaseUrl();

Apps/Sandcastle/gallery/3D Tiles Terrain Classification.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
});
3939

4040
const geocoder = viewer.geocoder.viewModel;
41-
geocoder.searchText = "Vienna";
41+
geocoder.searchText = "Vienna, Austria";
4242
geocoder.flightDuration = 0.0;
4343
geocoder.search();
4444

Apps/Sandcastle/gallery/Voxel Picking.html

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@
7575
function ProceduralMultiTileVoxelProvider(shape) {
7676
this.shape = shape;
7777
this.dimensions = new Cesium.Cartesian3(4, 4, 4);
78+
this.minBounds = Cesium.VoxelShapeType.getMinBounds(shape).clone();
79+
this.maxBounds = Cesium.VoxelShapeType.getMaxBounds(shape).clone();
7880
this.names = ["color"];
7981
this.types = [Cesium.MetadataType.VEC4];
8082
this.componentTypes = [Cesium.MetadataComponentType.FLOAT32];
@@ -134,11 +136,9 @@
134136
return dataColor;
135137
}
136138

137-
const provider = new ProceduralMultiTileVoxelProvider(Cesium.VoxelShapeType.BOX);
138-
139139
const customShader = new Cesium.CustomShader({
140140
fragmentShaderText: `void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
141-
{
141+
{
142142
vec3 voxelNormal = fsInput.attributes.normalEC;
143143
float diffuse = max(0.0, dot(voxelNormal, czm_lightDirectionEC));
144144
float lighting = 0.5 + 0.5 * diffuse;
@@ -147,13 +147,13 @@
147147
int sampleIndex = fsInput.voxel.sampleIndex;
148148
vec3 cellColor = fsInput.metadata.color.rgb * lighting;
149149
if (tileIndex == u_selectedTile && sampleIndex == u_selectedSample) {
150-
material.diffuse = mix(cellColor, vec3(1.0), 0.5);
151-
material.alpha = fsInput.metadata.color.a;
150+
material.diffuse = mix(cellColor, vec3(1.0), 0.5);
151+
material.alpha = fsInput.metadata.color.a;
152152
} else {
153-
material.diffuse = cellColor;
154-
material.alpha = fsInput.metadata.color.a;
153+
material.diffuse = cellColor;
154+
material.alpha = fsInput.metadata.color.a;
155155
}
156-
}`,
156+
}`,
157157
uniforms: {
158158
u_selectedTile: {
159159
type: Cesium.UniformType.INT,
@@ -166,18 +166,54 @@
166166
},
167167
});
168168

169-
const voxelPrimitive = scene.primitives.add(
170-
new Cesium.VoxelPrimitive({
169+
function createPrimitive(provider) {
170+
viewer.scene.primitives.removeAll();
171+
172+
const voxelPrimitive = new Cesium.VoxelPrimitive({
171173
provider: provider,
172174
customShader: customShader,
173-
}),
174-
);
175+
});
176+
voxelPrimitive.nearestSampling = true;
175177

176-
voxelPrimitive.nearestSampling = true;
178+
viewer.scene.primitives.add(voxelPrimitive);
179+
camera.flyToBoundingSphere(voxelPrimitive.boundingSphere, {
180+
duration: 0.0,
181+
});
177182

178-
camera.flyToBoundingSphere(voxelPrimitive.boundingSphere, {
179-
duration: 0.0,
180-
});
183+
return voxelPrimitive;
184+
}
185+
186+
Sandcastle.addToolbarMenu([
187+
{
188+
text: "Box - Procedural Tileset",
189+
onselect: function () {
190+
const provider = new ProceduralMultiTileVoxelProvider(
191+
Cesium.VoxelShapeType.BOX,
192+
);
193+
const primitive = createPrimitive(provider);
194+
},
195+
},
196+
{
197+
text: "Ellipsoid - Procedural Tileset",
198+
onselect: function () {
199+
const provider = new ProceduralMultiTileVoxelProvider(
200+
Cesium.VoxelShapeType.ELLIPSOID,
201+
);
202+
provider.minBounds.z = 0.0;
203+
provider.maxBounds.z = 1000000.0;
204+
const primitive = createPrimitive(provider);
205+
},
206+
},
207+
{
208+
text: "Cylinder - Procedural Tileset",
209+
onselect: function () {
210+
const provider = new ProceduralMultiTileVoxelProvider(
211+
Cesium.VoxelShapeType.CYLINDER,
212+
);
213+
const primitive = createPrimitive(provider);
214+
},
215+
},
216+
]);
181217

182218
const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
183219
const pickedCoordinate = document.getElementById("pickedCoordinate");

Apps/Sandcastle/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,12 +320,13 @@
320320
</div>
321321
</div>
322322
<div
323-
id="bottomPanel"
323+
id="bottomSection"
324324
class="bottomPanel"
325325
data-dojo-type="dijit.layout.BorderContainer"
326326
data-dojo-props="region: 'bottom', splitter: true"
327327
>
328328
<div
329+
id="bottomPanel"
329330
class="bottomPanel"
330331
data-dojo-type="dijit.layout.TabContainer"
331332
data-dojo-props="region: 'center', splitter: false"

CHANGES.md

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
# Change Log
22

3-
## 1.130.1 - 2025-06-24
3+
## 1.131 - 2025-07-01
4+
5+
### @cesium/engine
6+
7+
### Fixes :wrench:
8+
9+
- Updates use of deprecated options on createImageBitmap. [#12664](https://github.com/CesiumGS/cesium/pull/12664)
10+
- Fixed raymarching step size for cylindrical voxels. [#12681](https://github.com/CesiumGS/cesium/pull/12681)
11+
- Fixes handling of tileset `modelMatrix` changes for translations and rotations in `GaussianSplatPrimitive`. [#12706](https://github.com/CesiumGS/cesium/pull/12706)
12+
13+
#### Additions :tada:
14+
15+
- Added `HeightReference` to `Cesium3DTileset.ConstructorOptions` to allow clamping point features in 3D Tile vector data to terrain or 3D Tiles [#11710](https://github.com/CesiumGS/cesium/pull/11710)
16+
- Added the ability to pass `OffscreenCanvas` & `ImageBitmap` directly to `Material` uniforms. [#12558](https://github.com/CesiumGS/cesium/pull/12558)
17+
18+
## 1.130.1 - 2025-06-16
419

520
### @cesium/engine
621

@@ -4056,10 +4071,8 @@ _This is an npm-only release to fix a publishing issue_.
40564071
## 1.0 - 2014-08-01
40574072

40584073
- Breaking changes ([why so many?](https://community.cesium.com/t/moving-towards-cesium-1-0/1209))
4059-
40604074
- All `Matrix2`, `Matrix3`, `Matrix4` and `Quaternion` functions that take a `result` parameter now require the parameter, except functions starting with `from`.
40614075
- Removed `Billboard.imageIndex` and `BillboardCollection.textureAtlas`. Instead, use `Billboard.image`.
4062-
40634076
- Code that looked like:
40644077

40654078
var billboards = new Cesium.BillboardCollection();
@@ -4196,7 +4209,6 @@ _This is an npm-only release to fix a publishing issue_.
41964209
## b30 - 2014-07-01
41974210

41984211
- Breaking changes ([why so many?](https://community.cesium.com/t/moving-towards-cesium-1-0/1209))
4199-
42004212
- CZML property references now use a `#` symbol to separate identifier from property path. `objectId.position` should now be `objectId#position`.
42014213
- All `Cartesian2`, `Cartesian3`, `Cartesian4`, `TimeInterval`, and `JulianDate` functions that take a `result` parameter now require the parameter (except for functions starting with `from`).
42024214
- Modified `Transforms.pointToWindowCoordinates` and `SceneTransforms.wgs84ToWindowCoordinates` to return window coordinates with origin at the top left corner.
@@ -4245,7 +4257,6 @@ _This is an npm-only release to fix a publishing issue_.
42454257
- `date.greaterThan(right)` -> `JulianDate.greaterThan(left, right)`
42464258
- `date.greaterThanOrEquals(right)` -> `JulianDate.greaterThanOrEquals(left, right)`
42474259
- Refactored `TimeInterval` to be in line with other Core types.
4248-
42494260
- The constructor no longer requires parameters and now takes a single options parameter. Code that looked like:
42504261

42514262
new TimeInterval(startTime, stopTime, true, true, data);
@@ -4259,7 +4270,6 @@ _This is an npm-only release to fix a publishing issue_.
42594270
isStopIncluded : true,
42604271
data : data
42614272
});
4262-
42634273
- `TimeInterval.fromIso8601` now takes a single options parameter. Code that looked like:
42644274

42654275
TimeInterval.fromIso8601(intervalString, true, true, data);
@@ -4272,7 +4282,6 @@ _This is an npm-only release to fix a publishing issue_.
42724282
isStopIncluded : true,
42734283
data : data
42744284
});
4275-
42764285
- `interval.intersect(otherInterval)` -> `TimeInterval.intersect(interval, otherInterval)`
42774286
- `interval.contains(date)` -> `TimeInterval.contains(interval, date)`
42784287

@@ -4329,7 +4338,6 @@ _This is an npm-only release to fix a publishing issue_.
43294338
## b29 - 2014-06-02
43304339

43314340
- Breaking changes ([why so many?](https://community.cesium.com/t/moving-towards-cesium-1-0/1209))
4332-
43334341
- Replaced `Scene.createTextureAtlas` with `new TextureAtlas`.
43344342
- Removed `CameraFlightPath.createAnimationCartographic`. Code that looked like:
43354343

@@ -4447,7 +4455,6 @@ _This is an npm-only release to fix a publishing issue_.
44474455
## b27 - 2014-04-01
44484456

44494457
- Breaking changes:
4450-
44514458
- All `CameraController` functions have been moved up to the `Camera`. Removed `CameraController`. For example, code that looked like:
44524459

44534460
scene.camera.controller.viewExtent(extent);
@@ -4757,7 +4764,6 @@ _This is an npm-only release to fix a publishing issue_.
47574764
## b24 - 2014-01-06
47584765

47594766
- Breaking changes:
4760-
47614767
- Added `allowTextureFilterAnisotropic` (default: `true`) and `failIfMajorPerformanceCaveat` (default: `true`) properties to the `contextOptions` property passed to `Viewer`, `CesiumWidget`, and `Scene` constructors and moved the existing properties to a new `webgl` sub-property. For example, code that looked like:
47624768

47634769
var viewer = new Viewer('cesiumContainer', {
@@ -4805,7 +4811,6 @@ _This is an npm-only release to fix a publishing issue_.
48054811
## b23 - 2013-12-02
48064812

48074813
- Breaking changes:
4808-
48094814
- Changed the `CatmullRomSpline` and `HermiteSpline` constructors from taking an array of structures to a structure of arrays. For example, code that looked like:
48104815

48114816
var controlPoints = [
@@ -4919,7 +4924,6 @@ _This is an npm-only release to fix a publishing issue_.
49194924
## b21 - 2013-10-01
49204925

49214926
- Breaking changes:
4922-
49234927
- 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/](https://www.bingmapsportal.com/). Set the `BingMapsApi.defaultKey` property to the value of your application's key before constructing the `CesiumWidget` or any other types that use the Bing Maps API.
49244928

49254929
BingMapsApi.defaultKey = 'my-key-generated-with-bingmapsportal.com';
@@ -4941,7 +4945,6 @@ _This is an npm-only release to fix a publishing issue_.
49414945
- Removed `getViewMatrix`, `getInverseViewMatrix`, `getInverseTransform`, `getPositionWC`, `getDirectionWC`, `getUpWC` and `getRightWC` from `Camera`. Instead, use the `viewMatrix`, `inverseViewMatrix`, `inverseTransform`, `positionWC`, `directionWC`, `upWC`, and `rightWC` properties.
49424946
- Removed `getProjectionMatrix` and `getInfiniteProjectionMatrix` from `PerspectiveFrustum`, `PerspectiveOffCenterFrustum` and `OrthographicFrustum`. Instead, use the `projectionMatrix` and `infiniteProjectionMatrix` properties.
49434947
- The following prototype functions were removed:
4944-
49454948
- From `Quaternion`: `conjugate`, `magnitudeSquared`, `magnitude`, `normalize`, `inverse`, `add`, `subtract`, `negate`, `dot`, `multiply`, `multiplyByScalar`, `divideByScalar`, `getAxis`, `getAngle`, `lerp`, `slerp`, `equals`, `equalsEpsilon`
49464949
- From `Cartesian2`, `Cartesian3`, and `Cartesian4`: `getMaximumComponent`, `getMinimumComponent`, `magnitudeSquared`, `magnitude`, `normalize`, `dot`, `multiplyComponents`, `add`, `subtract`, `multiplyByScalar`, `divideByScalar`, `negate`, `abs`, `lerp`, `angleBetween`, `mostOrthogonalAxis`, `equals`, and `equalsEpsilon`.
49474950
- From `Cartesian3`: `cross`
@@ -4996,7 +4999,6 @@ _This is an npm-only release to fix a publishing issue_.
49964999
_This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https://github.com/CesiumGS/cesium/issues/1002) and [#1047](https://github.com/CesiumGS/cesium/issues/1047))._
49975000

49985001
- Breaking changes:
4999-
50005002
- The `CameraFlightPath` functions `createAnimation`, `createAnimationCartographic`, and `createAnimationExtent` now take `scene` as their first parameter instead of `frameState`.
50015003
- Completely refactored the `DynamicScene` property system to vastly improve the API. See [#1080](https://github.com/CesiumGS/cesium/pull/1080) for complete details.
50025004
- Removed `CzmlBoolean`, `CzmlCartesian2`, `CzmlCartesian3`, `CzmlColor`, `CzmlDefaults`, `CzmlDirection`, `CzmlHorizontalOrigin`, `CzmlImage`, `CzmlLabelStyle`, `CzmlNumber`, `CzmlPosition`, `CzmlString`, `CzmlUnitCartesian3`, `CzmlUnitQuaternion`, `CzmlUnitSpherical`, and `CzmlVerticalOrigin` since they are no longer needed.
@@ -5174,7 +5176,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
51745176
## b16 - 2013-05-01
51755177

51765178
- Breaking changes:
5177-
51785179
- Removed the color, outline color, and outline width properties of polylines. Instead, use materials for polyline color and outline properties. Code that looked like:
51795180

51805181
var polyline = polylineCollection.add({
@@ -5292,7 +5293,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
52925293
## b12a - 2013-01-18
52935294

52945295
- Breaking changes:
5295-
52965296
- Renamed the `server` property to `url` when constructing a `BingMapsImageryProvider`. Likewise, renamed `BingMapsImageryProvider.getServer` to `BingMapsImageryProvider.getUrl`. Code that looked like
52975297

52985298
var bing = new BingMapsImageryProvider({
@@ -5420,7 +5420,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
54205420
## b8 - 2012-09-05
54215421

54225422
- Breaking changes:
5423-
54245423
- Materials are now created through a centralized Material class using a JSON schema called [Fabric](https://github.com/CesiumGS/cesium/wiki/Fabric). For example, change:
54255424

54265425
polygon.material = new BlobMaterial({repeat : 10.0});
@@ -5486,7 +5485,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
54865485
## b7 - 2012-08-01
54875486

54885487
- Breaking changes:
5489-
54905488
- Removed keyboard input handling from `EventHandler`.
54915489
- `TextureAtlas` takes an object literal in its constructor instead of separate parameters. Code that previously looked like:
54925490

@@ -5597,7 +5595,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
55975595
## b5 - 2012-05-15
55985596

55995597
- Breaking changes:
5600-
56015598
- Renamed Geoscope to Cesium. To update your code, change all `Geoscope.*` references to `Cesium.*`, and reference Cesium.js instead of Geoscope.js.
56025599
- `CompositePrimitive.addGround` was removed; use `CompositePrimitive.add` instead. For example, change
56035600

@@ -5658,7 +5655,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
56585655
- 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.
56595656
- `Ellipsoid.getScaledWgs84()` has been removed since it is not needed.
56605657
- `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.
5661-
56625658
- `Cartsian2/3/4.getUnitX()` -> `Cartsian2/3/4.UNIT_X`
56635659
- `Cartsian2/3/4.getUnitY()` -> `Cartsian2/3/4.UNIT_Y`
56645660
- `Cartsian2/3/4.getUnitZ()` -> `Cartsian3/4.UNIT_Z`
@@ -5678,7 +5674,6 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
56785674
## b4 - 2012-03-01
56795675

56805676
- Breaking changes:
5681-
56825677
- Replaced `Geoscope.SkyFromSpace` object with `CentralBody.showSkyAtmosphere` property.
56835678
- For mouse click and double click events, replaced `event.x` and `event.y` with `event.position`.
56845679
- For mouse move events, replaced `movement.startX` and `startY` with `movement.startPosition`. Replaced `movement.endX` and `movement.endY` with `movement.endPosition`.
@@ -5739,13 +5734,11 @@ _This releases fixes 2D and other issues with Chrome 29.0.1547.57 ([#1002](https
57395734
- Added CameraFlightController to zoom smoothly from one point to another. See the new camera examples in the Sandbox.
57405735
- Added row and column assessors to Matrix2, Matrix3, and Matrix4.
57415736
- 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:
5742-
57435737
- Calls to Context.pick() should be replaced with Scene.pick().
57445738
- Primitive constructors no longer require a context argument.
57455739
- 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.
57465740
- TextureAtlas should no longer be created directly; instead, call Scene.getContext().createTextureAtlas().
57475741
- Other breaking changes:
5748-
57495742
- Camera get/set functions, e.g., getPosition/setPosition were replaced with properties, e.g., position.
57505743
- Replaced CompositePrimitive, Polygon, and Polyline getShow/setShow functions with a show property.
57515744
- Replaced Polyline, Polygon, BillboardCollection, and LabelCollection getBufferUsage/setBufferUsage functions with a bufferUsage property.

CONTRIBUTORS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to Cesiu
207207
- [IKangXu](https://github.com/IKangXu)
208208
- [EMapGIS](https://github.com/EMapGIS)
209209
- [CandyACE](https://github.com/CandyACE)
210+
- [EARTHBRAIN, Ltd.](https://www.earthbrain.com/en/)
211+
- [Gregory Diehl](https://github.com/gdiehleb)
210212

211213
## [Individual CLA](Documentation/Contributors/CLAs/individual-contributor-license-agreement-v1.0.pdf)
212214

@@ -421,3 +423,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to Cesiu
421423
- [Andrew Dassonville](https://github.com/andrewda)
422424
- [Cody Butler](https://github.com/CodyBu)
423425
- [Hiwen](https://github.com/Hiwen)
426+
- [Matt Schwartz](https://github.com/mzschwartz5)

0 commit comments

Comments
 (0)