Skip to content

Commit ecd4284

Browse files
committed
Merge branch 'master' into ibl
2 parents ba03cc6 + 732a37e commit ecd4284

13 files changed

+80
-50
lines changed

.idea/codeStyles/Project.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Change Log
1818

1919
##### Fixes :wrench:
2020
* Fixed issue causing polyline to look wavy depending on the position of the camera [#7209](https://github.com/AnalyticalGraphicsInc/cesium/pull/7209)
21+
* Fixed translucency issues for dynamic geometry entities. [#7364](https://github.com/AnalyticalGraphicsInc/cesium/issues/7364)
2122

2223
### 1.51 - 2018-11-01
2324

CONTRIBUTORS.md

+1
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to Cesiu
117117
* [Chris Cooper](https://github.com/chris-cooper)
118118
* [Andrew McDowell](https://github.com/madole)
119119
* [Tony Luk](https://github.com/impactblue573)
120+
* [Daniel Cooper](https://github.com/moodragon46)
120121
* [GeoFS](https://www.geo-fs.com)
121122
* [Xavier Tassin](https://github.com/xtassin/)
122123

Source/Core/Ion.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ define([
99
'use strict';
1010

1111
var defaultTokenCredit;
12-
var defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3OTM1ODdhMS1hOTliLTRkZDYtYmI4Ny0wYmM0MzI2ZDU4NTAiLCJpZCI6MjU5LCJzY29wZXMiOlsiYXNyIiwiZ2MiXSwiaWF0IjoxNTQxMDk4NzIxfQ.AqAyuEacuEItRBMDBPpwmhJXEjyZB0b69L3ixapXcF0';
12+
var defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3ODRkMGNmYS1iYmMwLTQ5MjgtYTYzOC1lYzMzNDk2YjIyMGUiLCJpZCI6MjU5LCJzY29wZXMiOlsiYXNyIiwiZ2MiXSwiaWF0IjoxNTQzODQ5NzQ1fQ.80vzOtxheq1XsMJOKrSRdh3ybJu1XttfE7P47UxGxpY';
1313

1414
/**
1515
* Default settings for accessing the Cesium ion API.

Source/Core/ScreenSpaceEventHandler.js

+39-30
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ define([
139139
}
140140

141141
var button = event.button;
142-
screenSpaceEventHandler._buttonDown = button;
142+
screenSpaceEventHandler._buttonDown[button] = true;
143143

144144
var screenSpaceEventType;
145145
if (button === MouseButton.LEFT) {
@@ -176,29 +176,7 @@ define([
176176
position : new Cartesian2()
177177
};
178178

179-
function handleMouseUp(screenSpaceEventHandler, event) {
180-
if (!canProcessMouseEvent(screenSpaceEventHandler)) {
181-
return;
182-
}
183-
184-
var button = event.button;
185-
screenSpaceEventHandler._buttonDown = undefined;
186-
187-
var screenSpaceEventType;
188-
var clickScreenSpaceEventType;
189-
if (button === MouseButton.LEFT) {
190-
screenSpaceEventType = ScreenSpaceEventType.LEFT_UP;
191-
clickScreenSpaceEventType = ScreenSpaceEventType.LEFT_CLICK;
192-
} else if (button === MouseButton.MIDDLE) {
193-
screenSpaceEventType = ScreenSpaceEventType.MIDDLE_UP;
194-
clickScreenSpaceEventType = ScreenSpaceEventType.MIDDLE_CLICK;
195-
} else if (button === MouseButton.RIGHT) {
196-
screenSpaceEventType = ScreenSpaceEventType.RIGHT_UP;
197-
clickScreenSpaceEventType = ScreenSpaceEventType.RIGHT_CLICK;
198-
} else {
199-
return;
200-
}
201-
179+
function cancelMouseEvent(screenSpaceEventHandler, screenSpaceEventType, clickScreenSpaceEventType, event) {
202180
var modifier = getModifier(event);
203181

204182
var action = screenSpaceEventHandler.getInputAction(screenSpaceEventType, modifier);
@@ -228,6 +206,31 @@ define([
228206
}
229207
}
230208

209+
function handleMouseUp(screenSpaceEventHandler, event) {
210+
if (!canProcessMouseEvent(screenSpaceEventHandler)) {
211+
return;
212+
}
213+
214+
var button = event.button;
215+
216+
if (button !== MouseButton.LEFT && button !== MouseButton.MIDDLE && button !== MouseButton.RIGHT){
217+
return;
218+
}
219+
220+
if(screenSpaceEventHandler._buttonDown[MouseButton.LEFT]){
221+
cancelMouseEvent(screenSpaceEventHandler, ScreenSpaceEventType.LEFT_UP, ScreenSpaceEventType.LEFT_CLICK, event);
222+
screenSpaceEventHandler._buttonDown[MouseButton.LEFT] = false;
223+
}
224+
if(screenSpaceEventHandler._buttonDown[MouseButton.MIDDLE]){
225+
cancelMouseEvent(screenSpaceEventHandler, ScreenSpaceEventType.MIDDLE_UP, ScreenSpaceEventType.MIDDLE_CLICK, event);
226+
screenSpaceEventHandler._buttonDown[MouseButton.MIDDLE] = false;
227+
}
228+
if(screenSpaceEventHandler._buttonDown[MouseButton.RIGHT]){
229+
cancelMouseEvent(screenSpaceEventHandler, ScreenSpaceEventType.RIGHT_UP, ScreenSpaceEventType.RIGHT_CLICK, event);
230+
screenSpaceEventHandler._buttonDown[MouseButton.RIGHT] = false;
231+
}
232+
}
233+
231234
var mouseMoveEvent = {
232235
startPosition : new Cartesian2(),
233236
endPosition : new Cartesian2()
@@ -254,7 +257,9 @@ define([
254257

255258
Cartesian2.clone(position, previousPosition);
256259

257-
if (defined(screenSpaceEventHandler._buttonDown)) {
260+
if (screenSpaceEventHandler._buttonDown[MouseButton.LEFT] ||
261+
screenSpaceEventHandler._buttonDown[MouseButton.MIDDLE] ||
262+
screenSpaceEventHandler._buttonDown[MouseButton.RIGHT]) {
258263
event.preventDefault();
259264
}
260265
}
@@ -403,9 +408,9 @@ define([
403408
var clickAction;
404409
var pinching = screenSpaceEventHandler._isPinching;
405410

406-
if (numberOfTouches !== 1 && screenSpaceEventHandler._buttonDown === MouseButton.LEFT) {
411+
if (numberOfTouches !== 1 && screenSpaceEventHandler._buttonDown[MouseButton.LEFT]) {
407412
// transitioning from single touch, trigger UP and might trigger CLICK
408-
screenSpaceEventHandler._buttonDown = undefined;
413+
screenSpaceEventHandler._buttonDown[MouseButton.LEFT] = false;
409414
action = screenSpaceEventHandler.getInputAction(ScreenSpaceEventType.LEFT_UP, modifier);
410415

411416
if (defined(action)) {
@@ -454,7 +459,7 @@ define([
454459
Cartesian2.clone(position, screenSpaceEventHandler._primaryStartPosition);
455460
Cartesian2.clone(position, screenSpaceEventHandler._primaryPreviousPosition);
456461

457-
screenSpaceEventHandler._buttonDown = MouseButton.LEFT;
462+
screenSpaceEventHandler._buttonDown[MouseButton.LEFT] = true;
458463

459464
action = screenSpaceEventHandler.getInputAction(ScreenSpaceEventType.LEFT_DOWN, modifier);
460465

@@ -539,7 +544,7 @@ define([
539544
var numberOfTouches = positions.length;
540545
var action;
541546

542-
if (numberOfTouches === 1 && screenSpaceEventHandler._buttonDown === MouseButton.LEFT) {
547+
if (numberOfTouches === 1 && screenSpaceEventHandler._buttonDown[MouseButton.LEFT]) {
543548
// moving single touch
544549
var position = positions.values[0];
545550
Cartesian2.clone(position, screenSpaceEventHandler._primaryPosition);
@@ -658,7 +663,11 @@ define([
658663
*/
659664
function ScreenSpaceEventHandler(element) {
660665
this._inputEvents = {};
661-
this._buttonDown = undefined;
666+
this._buttonDown = {
667+
LEFT: false,
668+
MIDDLE: false,
669+
RIGHT: false
670+
};
662671
this._isPinching = false;
663672
this._lastSeenTouchEvent = -ScreenSpaceEventHandler.mouseEmulationIgnoreMilliseconds;
664673

Source/DataSources/DynamicGeometryUpdater.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ define([
107107
if (isColorAppearance) {
108108
appearance = new PerInstanceColorAppearance({
109109
closed: closed,
110-
flat : !(onTerrain && geometryUpdater._supportsMaterialsforEntitiesOnTerrain)
110+
flat : onTerrain && !geometryUpdater._supportsMaterialsforEntitiesOnTerrain
111111
});
112112
} else {
113113
var material = MaterialProperty.getValue(time, fillMaterialProperty, this._material);

Source/Scene/ModelAnimationCollection.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ define([
9898
* </p>
9999
*
100100
* @param {Object} options Object with the following properties:
101-
* @param {String} [options.name] The glTF animation name that identifies the animation. Must be defined if <code>options.id</code> is <code>undefined</code>.
101+
* @param {String} [options.name] The glTF animation name that identifies the animation. Must be defined if <code>options.index</code> is <code>undefined</code>.
102102
* @param {Number} [options.index] The glTF animation index that identifies the animation. Must be defined if <code>options.name</code> is <code>undefined</code>.
103103
* @param {JulianDate} [options.startTime] The scene time to start playing the animation. When this is <code>undefined</code>, the animation starts at the next frame.
104104
* @param {Number} [options.delay=0.0] The delay, in seconds, from <code>startTime</code> to start playing.

Source/Scene/PostProcessStageTextureCache.js

+3
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ define([
111111
} else {
112112
for (j = 1; j < length; ++j) {
113113
name = getLastStageName(composite.get(j));
114+
if (!defined(dependencies[name])) {
115+
dependencies[name] = {};
116+
}
114117
dependencies[name][originalDependency] = true;
115118
}
116119
}

Source/Shaders/Builtin/Functions/gammaCorrect.glsl

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ vec3 czm_gammaCorrect(vec3 color) {
1717
vec4 czm_gammaCorrect(vec4 color) {
1818
#ifdef HDR
1919
color.rgb = pow(color.rgb, vec3(czm_gamma));
20-
color.a = pow(color.a, 1.0 / czm_gamma);
2120
#endif
2221
return color;
2322
}

Specs/Scene/CameraEventAggregatorSpec.js

+19-1
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,28 @@ defineSuite([
216216
expect(handler.anyButtonDown).toEqual(true);
217217

218218
simulateMouseUp(options);
219-
expect(handler.anyButtonDown).toEqual(true);
220219

221220
options.button = MouseButtons.LEFT;
222221
simulateMouseUp(options);
222+
223+
expect(handler.anyButtonDown).toEqual(false);
224+
});
225+
226+
it('cancels anyButtonDown on any button up', function() {
227+
expect(handler.anyButtonDown).toEqual(false);
228+
229+
var options = {
230+
button : MouseButtons.LEFT,
231+
clientX : 0,
232+
clientY : 0
233+
};
234+
simulateMouseDown(options);
235+
236+
options.button = MouseButtons.RIGHT;
237+
simulateMouseDown(options);
238+
239+
simulateMouseUp(options);
240+
223241
expect(handler.anyButtonDown).toEqual(false);
224242
});
225243

Specs/createGlobe.js

+5
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ define([
2727
_surface : {},
2828
tileLoadedEvent : new Event(),
2929
imageryLayersUpdatedEvent : new Event(),
30+
_terrainProvider : undefined,
3031
terrainProviderChanged : new Event(),
3132
destroy : function() {}
3233
};
@@ -42,7 +43,11 @@ define([
4243
globe.terrainProviderChanged = new Event();
4344
defineProperties(globe, {
4445
terrainProvider : {
46+
get : function() {
47+
return this._terrainProvider;
48+
},
4549
set : function(value) {
50+
this._terrainProvider = value;
4651
this.terrainProviderChanged.raiseEvent(value);
4752
}
4853
}

gulpfile.js

+5-12
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ var gulpTap = require('gulp-tap');
1515
var rimraf = require('rimraf');
1616
var glslStripComments = require('glsl-strip-comments');
1717
var mkdirp = require('mkdirp');
18-
var eventStream = require('event-stream');
18+
var mergeStream = require('merge-stream');
19+
var streamToPromise = require('stream-to-promise');
1920
var gulp = require('gulp');
2021
var gulpInsert = require('gulp-insert');
2122
var gulpZip = require('gulp-zip');
@@ -304,7 +305,7 @@ gulp.task('makeZipFile', gulp.series('release', function() {
304305

305306
var indexSrc = gulp.src('index.release.html').pipe(gulpRename('index.html'));
306307

307-
return eventStream.merge(builtSrc, staticSrc, indexSrc)
308+
return mergeStream(builtSrc, staticSrc, indexSrc)
308309
.pipe(gulpTap(function(file) {
309310
// Work around an issue with gulp-zip where archives generated on Windows do
310311
// not properly have their directory executable mode set.
@@ -1227,7 +1228,7 @@ function buildSandcastle() {
12271228
})
12281229
.pipe(gulp.dest('Build/Apps/Sandcastle'));
12291230

1230-
return streamToPromise(eventStream.merge(appStream, imageStream));
1231+
return streamToPromise(mergeStream(appStream, imageStream));
12311232
}
12321233

12331234
function buildCesiumViewer() {
@@ -1264,7 +1265,7 @@ function buildCesiumViewer() {
12641265
promise = promise.then(function() {
12651266
var copyrightHeader = fs.readFileSync(path.join('Source', 'copyrightHeader.js'));
12661267

1267-
var stream = eventStream.merge(
1268+
var stream = mergeStream(
12681269
gulp.src(cesiumViewerStartup)
12691270
.pipe(gulpInsert.prepend(copyrightHeader))
12701271
.pipe(gulpReplace('../../Source', '.'))
@@ -1334,11 +1335,3 @@ function requirejsOptimize(name, config) {
13341335
});
13351336
});
13361337
}
1337-
1338-
function streamToPromise(stream) {
1339-
return new Promise(function(resolve, reject) {
1340-
stream.on('finish', resolve);
1341-
stream.on('end', resolve);
1342-
stream.on('error', reject);
1343-
});
1344-
}

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cesium",
3-
"version": "1.51.0",
3+
"version": "1.52.0",
44
"description": "CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.",
55
"homepage": "http://cesiumjs.org",
66
"license": "Apache-2.0",
@@ -41,7 +41,6 @@
4141
"compression": "^1.6.2",
4242
"eslint": "^5.2.0",
4343
"eslint-plugin-html": "^4.0.2",
44-
"event-stream": "^4.0.1",
4544
"express": "^4.15.0",
4645
"globby": "^8.0.1",
4746
"glsl-strip-comments": "^1.0.0",
@@ -65,10 +64,12 @@
6564
"karma-requirejs": "^1.1.0",
6665
"karma-safari-launcher": "^1.0.0",
6766
"karma-spec-reporter": "^0.0.32",
67+
"merge-stream": "^1.0.1",
6868
"mime": "^2.0.3",
6969
"mkdirp": "^0.5.1",
7070
"request": "^2.79.0",
7171
"rimraf": "^2.6.1",
72+
"stream-to-promise": "^2.2.0",
7273
"yargs": "^12.0.1"
7374
},
7475
"scripts": {

0 commit comments

Comments
 (0)