diff --git a/Apps/SampleData/circular_particle.png b/Apps/SampleData/circular_particle.png
new file mode 100644
index 000000000000..ca1cc10d6b2d
Binary files /dev/null and b/Apps/SampleData/circular_particle.png differ
diff --git a/Apps/SampleData/snowflake_particle.png b/Apps/SampleData/snowflake_particle.png
new file mode 100644
index 000000000000..8fadd9056818
Binary files /dev/null and b/Apps/SampleData/snowflake_particle.png differ
diff --git a/Apps/Sandcastle/gallery/Particle System Fireworks.html b/Apps/Sandcastle/gallery/Particle System Fireworks.html
index 2e61fecda5c9..440b23381d67 100644
--- a/Apps/Sandcastle/gallery/Particle System Fireworks.html
+++ b/Apps/Sandcastle/gallery/Particle System Fireworks.html
@@ -59,7 +59,7 @@
var minimumExplosionSize = 30.0;
var maximumExplosionSize = 100.0;
-var particlePixelSize = 7.0;
+var particlePixelSize = new Cesium.Cartesian2(7.0, 7.0);
var burstSize = 400.0;
var lifetime = 10.0;
var numberOfFireworks = 20.0;
@@ -90,15 +90,14 @@
image : getImage(),
startColor : color,
endColor : color.withAlpha(0.0),
- life : life,
+ particleLife : life,
speed : 100.0,
- width : particlePixelSize,
- height : particlePixelSize,
- rate : 0,
+ imageSize : particlePixelSize,
+ emissionRate : 0,
emitter : new Cesium.SphereEmitter(0.1),
bursts : bursts,
- lifeTime : lifetime,
- forces : [force],
+ lifetime : lifetime,
+ updateCallback : force,
modelMatrix : modelMatrix,
emitterModelMatrix : emitterModelMatrix
}));
@@ -161,7 +160,6 @@
Cesium.Cartesian3.normalize(toFireworks, toFireworks);
var angle = Cesium.Math.PI_OVER_TWO - Math.acos(Cesium.Cartesian3.dot(toFireworks, Cesium.Cartesian3.UNIT_Z));
camera.lookUp(angle);
-
//Sandcastle_End
Sandcastle.finishedLoading();
}
diff --git a/Apps/Sandcastle/gallery/Particle System Tails.html b/Apps/Sandcastle/gallery/Particle System Tails.html
new file mode 100644
index 000000000000..bcd66de1a3c8
--- /dev/null
+++ b/Apps/Sandcastle/gallery/Particle System Tails.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+
+
+
+ Cesium Demo
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
diff --git a/Apps/Sandcastle/gallery/Particle System Tails.jpg b/Apps/Sandcastle/gallery/Particle System Tails.jpg
new file mode 100644
index 000000000000..633d3820d2af
Binary files /dev/null and b/Apps/Sandcastle/gallery/Particle System Tails.jpg differ
diff --git a/Apps/Sandcastle/gallery/Particle System Weather.html b/Apps/Sandcastle/gallery/Particle System Weather.html
new file mode 100644
index 000000000000..b1886e906b54
--- /dev/null
+++ b/Apps/Sandcastle/gallery/Particle System Weather.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ Cesium Demo
+
+
+
+
+
+
+
+
Loading...
+
+
+
+
+
+
diff --git a/Apps/Sandcastle/gallery/Particle System Weather.jpg b/Apps/Sandcastle/gallery/Particle System Weather.jpg
new file mode 100644
index 000000000000..24a0bf061120
Binary files /dev/null and b/Apps/Sandcastle/gallery/Particle System Weather.jpg differ
diff --git a/Apps/Sandcastle/gallery/Particle System.html b/Apps/Sandcastle/gallery/Particle System.html
index fa7a210acf79..58d25362742f 100644
--- a/Apps/Sandcastle/gallery/Particle System.html
+++ b/Apps/Sandcastle/gallery/Particle System.html
@@ -45,8 +45,8 @@
Rate
-
-
+
+
@@ -61,16 +61,16 @@
Min Life
-
-
+
+
Max Life
-
-
+
+
@@ -161,10 +161,10 @@
viewer.timeline.zoomTo(start, stop);
var viewModel = {
- rate : 5.0,
+ emissionRate : 5.0,
gravity : 0.0,
- minimumLife : 1.0,
- maximumLife : 1.0,
+ minimumParticleLife : 1.0,
+ maximumParticleLife : 1.0,
minimumSpeed : 1.0,
maximumSpeed : 4.0,
startScale : 1.0,
@@ -263,20 +263,16 @@
startScale : viewModel.startScale,
endScale : viewModel.endScale,
- minimumLife : viewModel.minimumLife,
- maximumLife : viewModel.maximumLife,
+ minimumParticleLife : viewModel.minimumParticleLife,
+ maximumParticleLife : viewModel.maximumParticleLife,
minimumSpeed : viewModel.minimumSpeed,
maximumSpeed : viewModel.maximumSpeed,
- minimumWidth : viewModel.particleSize,
- minimumHeight : viewModel.particleSize,
-
- maximumWidth : viewModel.particleSize,
- maximumHeight : viewModel.particleSize,
+ imageSize : new Cesium.Cartesian2(viewModel.particleSize, viewModel.particleSize),
// Particles per second.
- rate : viewModel.rate,
+ emissionRate : viewModel.emissionRate,
bursts : [
// these burst will occasionally sync to create a multicolored effect
@@ -285,13 +281,13 @@
new Cesium.ParticleBurst({time : 15.0, minimum : 200, maximum : 300})
],
- lifeTime : 16.0,
+ lifetime : 16.0,
emitter : new Cesium.CircleEmitter(2.0),
emitterModelMatrix : computeEmitterModelMatrix(),
- forces : [applyGravity]
+ updateCallback : applyGravity
}));
var gravityScratch = new Cesium.Cartesian3();
@@ -320,31 +316,31 @@
}
});
-Cesium.knockout.getObservable(viewModel, 'rate').subscribe(
+Cesium.knockout.getObservable(viewModel, 'emissionRate').subscribe(
function(newValue) {
- particleSystem.rate = parseFloat(newValue);
+ particleSystem.emissionRate = parseFloat(newValue);
}
);
Cesium.knockout.getObservable(viewModel, 'particleSize').subscribe(
function(newValue) {
var particleSize = parseFloat(newValue);
- particleSystem.minimumWidth = particleSize;
- particleSystem.maximumWidth = particleSize;
- particleSystem.minimumHeight = particleSize;
- particleSystem.maximumHeight = particleSize;
+ particleSystem.minimumImageSize.x = particleSize;
+ particleSystem.minimumImageSize.y = particleSize;
+ particleSystem.maximumImageSize.x = particleSize;
+ particleSystem.maximumImageSize.y = particleSize;
}
);
-Cesium.knockout.getObservable(viewModel, 'minimumLife').subscribe(
+Cesium.knockout.getObservable(viewModel, 'minimumParticleLife').subscribe(
function(newValue) {
- particleSystem.minimumLife = parseFloat(newValue);
+ particleSystem.minimumParticleLife = parseFloat(newValue);
}
);
-Cesium.knockout.getObservable(viewModel, 'maximumLife').subscribe(
+Cesium.knockout.getObservable(viewModel, 'maximumParticleLife').subscribe(
function(newValue) {
- particleSystem.maximumLife = parseFloat(newValue);
+ particleSystem.maximumParticleLife = parseFloat(newValue);
}
);
@@ -422,8 +418,7 @@
}];
Sandcastle.addToolbarMenu(options);
-
- //Sandcastle_End
+ //Sandcastle_End
Sandcastle.finishedLoading();
}
diff --git a/CHANGES.md b/CHANGES.md
index 28dbe0819f07..5c2b561044e2 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,6 +3,11 @@ Change Log
### 1.45 - 2018-05-01
+##### Deprecated :hourglass_flowing_sand:
+* `Particle.size`, `ParticleSystem.rate`, `ParticleSystem.lifeTime`, `ParticleSystem.life`, `ParticleSystem.minimumLife`, and `ParticleSystem.maximumLife` have been renamed to `Particle.imageSize`, `ParticleSystem.emissionRate`, `ParticleSystem.lifetime`, `ParticleSystem.particleLife`, `ParticleSystem.minimumParticleLife`, and `ParticleSystem.maximumParticleLife`. Use of the `size`, `rate`, `lifeTime`, `life`, `minimumLife`, and `maximumLife` parameters is deprecated and will be removed in Cesium 1.46.
+* `ParticleSystem.forces` array has been switched out for singular function `ParticleSystems.updateCallback`. Use of the `forces` parameter is deprecated and will be removed in Cesium 1.46.
+* Any width and height variables in `ParticleSystem` will no longer be individual components. `ParticleSystem.minimumWidth` and `ParticleSystem.minimumHeight` will now be `ParticleSystem.minimumImageSize`, `ParticleSystem.maximumWidth` and `ParticleSystem.maximumHeight` will now be `ParticleSystem.maximumImageSize`, and `ParticleSystem.width` and `ParticleSystem.height` will now be `ParticleSystem.imageSize`. Use of the `minimumWidth`, `minimumHeight`, `maximumWidth`, `maximumHeight`, `width`, and `height` parameters is deprecated and will be removed in Cesium 1.46.
+
##### Additions :tada:
* Added `IonGeocoderService` and made it the default geocoding service for the `Geocoder` widget.
* Added option `logarithmicDepthBuffer` to `Scene`. With this option there is typically a single frustum using logarithmic depth rendered. This increases performance by issuing less draw calls to the GPU and helps to avoid artifacts on the connection of two frustums. [#5851](https://github.com/AnalyticalGraphicsInc/cesium/pull/5851)
@@ -14,9 +19,10 @@ Change Log
* Added `supportsWebAssembly` function to `FeatureDetection` to check if a browser supports loading Web Assembly modules. [#6420](https://github.com/AnalyticalGraphicsInc/cesium/pull/6420)
* Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426)
* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling
+* Added more ParticleSystem Sandcastle examples for rocket and comet tails and weather. [#6375](https://github.com/AnalyticalGraphicsInc/cesium/pull/6375)
* Added color and scale attributes to the `ParticleSystem` class constructor. When defined the variables override startColor and endColor and startScale and endScale. [#6429](https://github.com/AnalyticalGraphicsInc/cesium/pull/6429)
-* Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426)
-* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling
+-* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling
+-* Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426)
##### Fixes :wrench:
* Fixed bugs in `TimeIntervalCollection.removeInterval`. [#6418](https://github.com/AnalyticalGraphicsInc/cesium/pull/6418).
@@ -32,11 +38,6 @@ Change Log
* Fixed crash bug in PolylineCollection when a polyline was updated and removed at the same time. [#6455](https://github.com/AnalyticalGraphicsInc/cesium/pull/6455)
* Fixed Imagery Layers Texture Filters Sandcastle example. [#6472](https://github.com/AnalyticalGraphicsInc/cesium/pull/6472).
-##### Deprecated :hourglass_flowing_sand:
-* `Particle.size`, `ParticleSystem.rate`, `ParticleSystem.lifeTime`, `ParticleSystem.life`, `ParticleSystem.minimumLife`, and `ParticleSystem.maximumLife` have been renamed to `Particle.imageSize`, `ParticleSystem.emissionRate`, `ParticleSystem.lifetime`, `ParticleSystem.particleLife`, `ParticleSystem.minimumParticleLife`, and `ParticleSystem.maximumParticleLife`. Use of the `size`, `rate`, `lifeTime`, `life`, `minimumLife`, and `maximumLife` parameters is deprecated and will be removed in Cesium 1.46.
-* `ParticleSystem.forces` array has been switched out for singular function `ParticleSystems.updateCallback`. Use of the `forces` parameter is deprecated and will be removed in Cesium 1.46.
-* Any width and height variables in `ParticleSystem` will no longer be individual components. `ParticleSystem.minimumWidth` and `ParticleSystem.minimumHeight` will now be `ParticleSystem.minimumImageSize`, `ParticleSystem.maximumWidth` and `ParticleSystem.maximumHeight` will now be `ParticleSystem.maximumImageSize`, and `ParticleSystem.width` and `ParticleSystem.height` will now be `ParticleSystem.imageSize`. Use of the `minimumWidth`, `minimumHeight`, `maximumWidth`, `maximumHeight`, `width`, and `height` parameters is deprecated and will be removed in Cesium 1.46.
-
### 1.44 - 2018-04-02
##### Highlights :sparkler: