Skip to content

Commit e9e1248

Browse files
author
hanbollar
committed
updates based on ggetz comments
2 parents 6de6bb3 + 35c6f8e commit e9e1248

File tree

4 files changed

+37
-41
lines changed

4 files changed

+37
-41
lines changed

Apps/Sandcastle/gallery/Particle System Tails.html

+11-14
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
var planePosition = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 800.0);
3535
var particlesOffset = new Cesium.Cartesian3(-8.950115473940969, 34.852766731753945, -30.235411095432937);
3636
var cameraLocation = Cesium.Cartesian3.add(planePosition, particlesOffset, new Cesium.Cartesian3());
37-
var recenterCamera = function() {
38-
viewer.camera.lookAt(cameraLocation, new Cesium.Cartesian3(170, -170, 170));
37+
var resetCamera = function() {
38+
viewer.camera.lookAt(cameraLocation, new Cesium.Cartesian3(-450, -300, 200));
3939
};
40-
recenterCamera();
40+
resetCamera();
4141

4242
// Draw particle image to a canvas
4343
var particleCanvas;
@@ -69,9 +69,9 @@
6969
});
7070

7171
// creating particles model matrix
72-
var transl = Cesium.Matrix4.fromTranslation(particlesOffset, new Cesium.Matrix4());
73-
var translPosition = Cesium.Matrix4.fromTranslation(planePosition, new Cesium.Matrix4());
74-
var particlesModelMatrix = Cesium.Matrix4.multiplyTransformation(translPosition, transl, new Cesium.Matrix4());
72+
var translationOffset = Cesium.Matrix4.fromTranslation(particlesOffset, new Cesium.Matrix4());
73+
var translationOfPlane = Cesium.Matrix4.fromTranslation(planePosition, new Cesium.Matrix4());
74+
var particlesModelMatrix = Cesium.Matrix4.multiplyTransformation(translationOfPlane, translationOffset, new Cesium.Matrix4());
7575

7676
// creating the particle systems
7777
var rocketOptions = {
@@ -130,23 +130,21 @@
130130
var scratchCartesian3 = new Cesium.Cartesian3();
131131
var scratchCartographic = new Cesium.Cartographic();
132132
var forceFunction = function(options, iteration) {
133-
var iterationOffset = iteration;
134-
var func = function(particle) {
133+
return function(particle) {
135134
scratchCartesian3 = Cesium.Cartesian3.normalize(particle.position, new Cesium.Cartesian3());
136135
scratchCartesian3 = Cesium.Cartesian3.multiplyByScalar(scratchCartesian3, -1.0, scratchCartesian3);
137136

138137
particle.position = Cesium.Cartesian3.add(particle.position, scratchCartesian3, particle.position);
139138

140139
scratchCartographic = Cesium.Cartographic.fromCartesian(particle.position, Cesium.Ellipsoid.WGS84, scratchCartographic);
141140

142-
var angle = Cesium.Math.PI * 2.0 * iterationOffset / options.numberOfSystems;
143-
iterationOffset += options.iterationOffset;
141+
var angle = Cesium.Math.PI * 2.0 * iteration / options.numberOfSystems;
142+
iteration += options.iterationOffset;
144143
scratchCartographic.longitude += Math.cos(angle) * options.cartographicStep;
145144
scratchCartographic.latitude += Math.sin(angle) * options.cartographicStep;
146145

147146
particle.position = Cesium.Cartographic.toCartesian(scratchCartographic);
148147
};
149-
return func;
150148
};
151149

152150
var matrix4Scratch = new Cesium.Matrix4();
@@ -173,7 +171,6 @@
173171
imageSize : imageSize,
174172
emissionRate : 30.0,
175173
emitter : new Cesium.CircleEmitter(0.1),
176-
bursts : [ ],
177174
lifetime : 0.1,
178175
updateCallback : force,
179176
modelMatrix : particlesModelMatrix,
@@ -201,15 +198,15 @@
201198
onselect : function() {
202199
showAll(rocketSystems, false);
203200
showAll(cometSystems, true);
204-
recenterCamera();
201+
resetCamera();
205202

206203
}
207204
}, {
208205
text : 'Rocket Thruster',
209206
onselect : function() {
210207
showAll(cometSystems, false);
211208
showAll(rocketSystems, true);
212-
recenterCamera();
209+
resetCamera();
213210
}
214211
}];
215212
Sandcastle.addToolbarMenu(options);

Apps/Sandcastle/gallery/Particle System Weather.html

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
});
3636
var scene = viewer.scene;
3737
scene.globe.depthTestAgainstTerrain = true;
38-
var recenterFunction = function() {
38+
var resetCameraFunction = function() {
3939
scene.camera.setView({
4040
destination : new Cesium.Cartesian3(277096.634865404, 5647834.481964232, 2985563.7039122293),
4141
orientation : {
@@ -44,7 +44,7 @@
4444
}
4545
});
4646
};
47-
recenterFunction();
47+
resetCameraFunction();
4848

4949
// snow
5050
var snowParticleSize = scene.drawingBufferWidth / 100.0;
@@ -60,7 +60,7 @@
6060
particle.velocity = Cesium.Cartesian3.add(particle.velocity, snowGravityScratch, particle.velocity);
6161

6262
var distance = Cesium.Cartesian3.distance(scene.camera.position, particle.position);
63-
if (distance > (snowRadius)) {
63+
if (distance > snowRadius) {
6464
particle.endColor.alpha = 0.0;
6565
} else {
6666
particle.endColor.alpha = snowSystem.endColor.alpha / (distance / snowRadius + 0.1);
@@ -100,7 +100,7 @@
100100
particle.position = Cesium.Cartesian3.add(particle.position, rainGravityScratch, particle.position);
101101

102102
var distance = Cesium.Cartesian3.distance(scene.camera.position, particle.position);
103-
if (distance > (rainRadius)) {
103+
if (distance > rainRadius) {
104104
particle.endColor.alpha = 0.0;
105105
} else {
106106
particle.endColor.alpha = rainSystem.endColor.alpha / (distance / rainRadius + 0.1);
@@ -124,7 +124,7 @@
124124
scene.primitives.add(rainSystem);
125125

126126
// button
127-
Sandcastle.addToolbarButton("Recenter", recenterFunction);
127+
Sandcastle.addToolbarButton("Reset Camera", resetCameraFunction);
128128

129129
// drop down
130130
var options = [{

Apps/Sandcastle/gallery/Particle System.html

+20-22
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
<tr>
4646
<td>Rate</td>
4747
<td>
48-
<input type="range" min="0.0" max="100.0" step="1" data-bind="value: rate, valueUpdate: 'input'">
49-
<input type="text" size="5" data-bind="value: rate">
48+
<input type="range" min="0.0" max="100.0" step="1" data-bind="value: emissionRate, valueUpdate: 'input'">
49+
<input type="text" size="5" data-bind="value: emissionRate">
5050
</td>
5151
</tr>
5252

@@ -61,16 +61,16 @@
6161
<tr>
6262
<td>Min Life</td>
6363
<td>
64-
<input type="range" min="0.1" max="30.0" step="1" data-bind="value: minimumLife, valueUpdate: 'input'">
65-
<input type="text" size="5" data-bind="value: minimumLife">
64+
<input type="range" min="0.1" max="30.0" step="1" data-bind="value: minimumParticleLife, valueUpdate: 'input'">
65+
<input type="text" size="5" data-bind="value: minimumParticleLife">
6666
</td>
6767
</tr>
6868

6969
<tr>
7070
<td>Max Life</td>
7171
<td>
72-
<input type="range" min="0.1" max="30.0" step="1" data-bind="value: maximumLife, valueUpdate: 'input'">
73-
<input type="text" size="5" data-bind="value: maximumLife">
72+
<input type="range" min="0.1" max="30.0" step="1" data-bind="value: maximumParticleLife, valueUpdate: 'input'">
73+
<input type="text" size="5" data-bind="value: maximumParticleLife">
7474
</td>
7575
</tr>
7676

@@ -161,10 +161,10 @@
161161
viewer.timeline.zoomTo(start, stop);
162162

163163
var viewModel = {
164-
rate : 5.0,
164+
emissionRate : 5.0,
165165
gravity : 0.0,
166-
minimumLife : 1.0,
167-
maximumLife : 1.0,
166+
minimumParticleLife : 1.0,
167+
maximumParticleLife : 1.0,
168168
minimumSpeed : 1.0,
169169
maximumSpeed : 4.0,
170170
startScale : 1.0,
@@ -263,16 +263,16 @@
263263
startScale : viewModel.startScale,
264264
endScale : viewModel.endScale,
265265

266-
minimumParticleLife : viewModel.minimumLife,
267-
maximumParticleLife : viewModel.maximumLife,
266+
minimumParticleLife : viewModel.minimumParticleLife,
267+
maximumParticleLife : viewModel.maximumParticleLife,
268268

269269
minimumSpeed : viewModel.minimumSpeed,
270270
maximumSpeed : viewModel.maximumSpeed,
271271

272272
imageSize : new Cesium.Cartesian2(viewModel.particleSize, viewModel.particleSize),
273273

274274
// Particles per second.
275-
emissionRate : viewModel.rate,
275+
emissionRate : viewModel.emissionRate,
276276

277277
bursts : [
278278
// these burst will occasionally sync to create a multicolored effect
@@ -316,31 +316,29 @@
316316
}
317317
});
318318

319-
Cesium.knockout.getObservable(viewModel, 'rate').subscribe(
319+
Cesium.knockout.getObservable(viewModel, 'emissionRate').subscribe(
320320
function(newValue) {
321-
particleSystem.rate = parseFloat(newValue);
321+
particleSystem.emissionRate = parseFloat(newValue);
322322
}
323323
);
324324

325325
Cesium.knockout.getObservable(viewModel, 'particleSize').subscribe(
326326
function(newValue) {
327327
var particleSize = parseFloat(newValue);
328-
particleSystem.minimumWidth = particleSize;
329-
particleSystem.maximumWidth = particleSize;
330-
particleSystem.minimumHeight = particleSize;
331-
particleSystem.maximumHeight = particleSize;
328+
particleSystem.imageSize.x = particleSize;
329+
particleSystem.imageSize.y = particleSize;
332330
}
333331
);
334332

335-
Cesium.knockout.getObservable(viewModel, 'minimumLife').subscribe(
333+
Cesium.knockout.getObservable(viewModel, 'minimumParticleLife').subscribe(
336334
function(newValue) {
337-
particleSystem.minimumLife = parseFloat(newValue);
335+
particleSystem.minimumParticleLife = parseFloat(newValue);
338336
}
339337
);
340338

341-
Cesium.knockout.getObservable(viewModel, 'maximumLife').subscribe(
339+
Cesium.knockout.getObservable(viewModel, 'maximumParticleLife').subscribe(
342340
function(newValue) {
343-
particleSystem.maximumLife = parseFloat(newValue);
341+
particleSystem.maximumParticleLife = parseFloat(newValue);
344342
}
345343
);
346344

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Change Log
1818
* Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426)
1919
* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling
2020
* Added more ParticleSystem Sandcastle examples for rocket and comet tails and weather. [#6375](https://github.com/AnalyticalGraphicsInc/cesium/pull/6375)
21+
* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling
2122
* 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)
2223

2324
##### Fixes :wrench:

0 commit comments

Comments
 (0)