itowns 2.36.2 → 2.38.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +30 -17
- package/README.md +12 -1
- package/changelog.md +138 -0
- package/dist/debug.js +1 -1
- package/dist/debug.js.LICENSE.txt +2 -2
- package/dist/debug.js.map +1 -1
- package/dist/itowns.js +1 -1
- package/dist/itowns.js.LICENSE.txt +2 -2
- package/dist/itowns.js.map +1 -1
- package/dist/itowns_widgets.js +2 -0
- package/dist/itowns_widgets.js.map +1 -0
- package/examples/config.json +28 -6
- package/examples/css/example.css +21 -1
- package/examples/css/widgets.css +360 -0
- package/examples/geoid_geoidLayer.html +102 -0
- package/examples/images/code-logo.svg +43 -0
- package/examples/index.html +5 -5
- package/examples/itowns-potree.html +252 -0
- package/examples/js/GUI/GuiTools.js +17 -0
- package/examples/mars.html +0 -1
- package/examples/misc_orthographic_camera.html +7 -19
- package/examples/source_file_from_fetched_data.html +90 -0
- package/examples/source_file_from_format.html +85 -0
- package/examples/source_file_from_methods.html +87 -0
- package/examples/source_file_from_parsed_data.html +104 -0
- package/examples/source_file_geojson_raster.html +21 -45
- package/examples/source_file_gpx_raster.html +28 -36
- package/examples/source_file_kml_raster.html +1 -4
- package/examples/source_file_shapefile.html +39 -34
- package/examples/source_stream_wfs_25d.html +21 -13
- package/examples/source_stream_wfs_3d.html +21 -12
- package/examples/source_stream_wfs_raster.html +20 -20
- package/examples/vector_tile_3d_mesh.html +155 -0
- package/examples/vector_tile_raster_3d.html +0 -5
- package/examples/view_25d_map.html +6 -19
- package/examples/view_2d_map.html +6 -19
- package/examples/view_3d_map.html +106 -81
- package/examples/view_immersive.html +13 -14
- package/examples/widgets_minimap.html +124 -0
- package/examples/widgets_navigation.html +124 -0
- package/examples/widgets_scale.html +96 -0
- package/examples/widgets_searchbar.html +124 -0
- package/lib/Controls/GlobeControls.js +13 -0
- package/lib/Controls/PlanarControls.js +11 -43
- package/lib/Converter/Feature2Mesh.js +203 -45
- package/lib/Converter/convertToTile.js +13 -4
- package/lib/Core/3DTiles/C3DTBoundingVolume.js +4 -1
- package/lib/Core/Deprecated/Undeprecator.js +1 -1
- package/lib/Core/Feature.js +60 -34
- package/lib/Core/Geographic/Extent.js +1 -1
- package/lib/Core/Geographic/GeoidGrid.js +143 -0
- package/lib/Core/MainLoop.js +137 -63
- package/lib/Core/Math/Ellipsoid.js +1 -1
- package/lib/Core/Prefab/Globe/SkyShader.js +3 -1
- package/lib/Core/Prefab/Planar/PlanarLayer.js +3 -1
- package/lib/Core/Style.js +1 -1
- package/lib/Core/TileGeometry.js +3 -1
- package/lib/Core/TileMesh.js +32 -22
- package/lib/Core/View.js +81 -15
- package/lib/Layer/ElevationLayer.js +6 -2
- package/lib/Layer/FeatureGeometryLayer.js +36 -7
- package/lib/Layer/GeoidLayer.js +142 -0
- package/lib/Layer/GeometryLayer.js +6 -54
- package/lib/Layer/InfoLayer.js +1 -1
- package/lib/Layer/Layer.js +1 -1
- package/lib/Layer/LayerUpdateStrategy.js +1 -1
- package/lib/Layer/OrientedImageLayer.js +1 -0
- package/lib/Layer/PotreeLayer.js +3 -1
- package/lib/Layer/RasterLayer.js +3 -1
- package/lib/Layer/ReferencingLayerProperties.js +50 -0
- package/lib/Layer/TiledGeometryLayer.js +3 -1
- package/lib/Main.js +214 -174
- package/lib/MainBundle.js +1 -1
- package/lib/Parser/B3dmParser.js +5 -3
- package/lib/Parser/GDFParser.js +118 -0
- package/lib/Parser/GTXParser.js +92 -0
- package/lib/Parser/GeoJsonParser.js +29 -7
- package/lib/Parser/ISGParser.js +121 -0
- package/lib/Parser/LASParser.js +3 -1
- package/lib/Parser/VectorTileParser.js +4 -3
- package/lib/Parser/XbilParser.js +1 -1
- package/lib/Parser/deprecated/LegacyGLTFLoader.js +1 -1
- package/lib/Process/3dTilesProcessing.js +2 -2
- package/lib/Process/FeatureProcessing.js +38 -86
- package/lib/Process/LayeredMaterialNodeProcessing.js +16 -7
- package/lib/Process/ObjectRemovalHelper.js +4 -0
- package/lib/Provider/3dTilesProvider.js +2 -7
- package/lib/Provider/Fetcher.js +4 -1
- package/lib/Provider/TileProvider.js +18 -2
- package/lib/Provider/URLBuilder.js +1 -1
- package/lib/Renderer/Camera.js +33 -12
- package/lib/Renderer/ColorLayersOrdering.js +3 -1
- package/lib/Renderer/LayeredMaterial.js +34 -9
- package/lib/Renderer/OBB.js +22 -25
- package/lib/Renderer/OrientedImageMaterial.js +8 -5
- package/lib/Renderer/PointsMaterial.js +6 -6
- package/lib/Renderer/RasterTile.js +1 -1
- package/lib/Renderer/RenderMode.js +3 -1
- package/lib/Renderer/Shader/ShaderChunk.js +5 -1
- package/lib/Renderer/Shader/ShaderUtils.js +4 -2
- package/lib/Renderer/c3DEngine.js +9 -6
- package/lib/Source/C3DTilesSource.js +3 -1
- package/lib/Source/EntwinePointTileSource.js +3 -1
- package/lib/Source/FileSource.js +8 -1
- package/lib/Source/PotreeSource.js +3 -1
- package/lib/Source/Source.js +15 -10
- package/lib/Source/VectorTilesSource.js +5 -0
- package/lib/Source/WFSSource.js +9 -3
- package/lib/Source/WMTSSource.js +3 -1
- package/lib/ThreeExtended/{WebGL.js → capabilities/WebGL.js} +8 -7
- package/lib/ThreeExtended/loaders/GLTFLoader.js +88 -39
- package/lib/Utils/CameraUtils.js +11 -1
- package/lib/Utils/DEMUtils.js +4 -2
- package/lib/Utils/FeaturesUtils.js +8 -4
- package/lib/Utils/gui/Main.js +39 -0
- package/lib/Utils/gui/Minimap.js +197 -0
- package/lib/Utils/gui/Navigation.js +322 -0
- package/lib/Utils/gui/Scale.js +154 -0
- package/lib/Utils/gui/Searchbar.js +299 -0
- package/lib/Utils/gui/Widget.js +119 -0
- package/package.json +32 -27
- package/examples/js/Scale.js +0 -40
package/lib/Core/MainLoop.js
CHANGED
|
@@ -1,12 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports["default"] = exports.
|
|
8
|
+
exports["default"] = exports.RENDERING_SCHEDULED = exports.RENDERING_PAUSED = exports.MAIN_LOOP_EVENTS = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldSet"));
|
|
23
|
+
|
|
24
|
+
var _classPrivateFieldGet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet"));
|
|
7
25
|
|
|
8
26
|
var _three = require("three");
|
|
9
27
|
|
|
28
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
29
|
+
|
|
30
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
+
|
|
32
|
+
function _classPrivateMethodInitSpec(obj, privateSet) { _checkPrivateRedeclaration(obj, privateSet); privateSet.add(obj); }
|
|
33
|
+
|
|
34
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
35
|
+
|
|
36
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
37
|
+
|
|
38
|
+
function _classPrivateMethodGet(receiver, privateSet, fn) { if (!privateSet.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return fn; }
|
|
39
|
+
|
|
10
40
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
11
41
|
|
|
12
42
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -43,42 +73,17 @@ var MAIN_LOOP_EVENTS = {
|
|
|
43
73
|
};
|
|
44
74
|
exports.MAIN_LOOP_EVENTS = MAIN_LOOP_EVENTS;
|
|
45
75
|
|
|
46
|
-
function MainLoop(scheduler, engine) {
|
|
47
|
-
this.renderingState = RENDERING_PAUSED;
|
|
48
|
-
this.needsRedraw = false;
|
|
49
|
-
this.scheduler = scheduler;
|
|
50
|
-
this.gfxEngine = engine; // TODO: remove me
|
|
51
|
-
|
|
52
|
-
this._updateLoopRestarted = true;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
MainLoop.prototype = Object.create(_three.EventDispatcher.prototype);
|
|
56
|
-
MainLoop.prototype.constructor = MainLoop;
|
|
57
|
-
|
|
58
|
-
MainLoop.prototype.scheduleViewUpdate = function (view, forceRedraw) {
|
|
59
|
-
var _this = this;
|
|
60
|
-
|
|
61
|
-
this.needsRedraw |= forceRedraw;
|
|
62
|
-
|
|
63
|
-
if (this.renderingState !== RENDERING_SCHEDULED) {
|
|
64
|
-
this.renderingState = RENDERING_SCHEDULED;
|
|
65
|
-
requestAnimationFrame(function (timestamp) {
|
|
66
|
-
_this._step(view, timestamp);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
76
|
function updateElements(context, geometryLayer, elements) {
|
|
72
77
|
if (!elements) {
|
|
73
78
|
return;
|
|
74
79
|
}
|
|
75
80
|
|
|
76
81
|
var _iterator = _createForOfIteratorHelper(elements),
|
|
77
|
-
|
|
82
|
+
_step;
|
|
78
83
|
|
|
79
84
|
try {
|
|
80
|
-
for (_iterator.s(); !(
|
|
81
|
-
var element =
|
|
85
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
86
|
+
var element = _step.value;
|
|
82
87
|
// update element
|
|
83
88
|
// TODO find a way to notify attachedLayers when geometryLayer deletes some elements
|
|
84
89
|
// and then update Debug.js:addGeometryLayerDebugFeatures
|
|
@@ -89,11 +94,11 @@ function updateElements(context, geometryLayer, elements) {
|
|
|
89
94
|
if (sub.element) {
|
|
90
95
|
// update attached layers
|
|
91
96
|
var _iterator2 = _createForOfIteratorHelper(geometryLayer.attachedLayers),
|
|
92
|
-
|
|
97
|
+
_step2;
|
|
93
98
|
|
|
94
99
|
try {
|
|
95
|
-
for (_iterator2.s(); !(
|
|
96
|
-
var attachedLayer =
|
|
100
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
101
|
+
var attachedLayer = _step2.value;
|
|
97
102
|
|
|
98
103
|
if (attachedLayer.ready) {
|
|
99
104
|
attachedLayer.update(context, attachedLayer, sub.element, sub.parent);
|
|
@@ -113,11 +118,11 @@ function updateElements(context, geometryLayer, elements) {
|
|
|
113
118
|
|
|
114
119
|
|
|
115
120
|
var _iterator3 = _createForOfIteratorHelper(geometryLayer.attachedLayers),
|
|
116
|
-
|
|
121
|
+
_step3;
|
|
117
122
|
|
|
118
123
|
try {
|
|
119
|
-
for (_iterator3.s(); !(
|
|
120
|
-
var _attachedLayer =
|
|
124
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
125
|
+
var _attachedLayer = _step3.value;
|
|
121
126
|
|
|
122
127
|
if (_attachedLayer.ready) {
|
|
123
128
|
_attachedLayer.update(context, _attachedLayer, sub.elements[i], sub.parent);
|
|
@@ -157,7 +162,76 @@ function filterChangeSources(updateSources, geometryLayer) {
|
|
|
157
162
|
return fullUpdate ? new Set([geometryLayer]) : filtered;
|
|
158
163
|
}
|
|
159
164
|
|
|
160
|
-
|
|
165
|
+
var _needsRedraw = /*#__PURE__*/new WeakMap();
|
|
166
|
+
|
|
167
|
+
var _updateLoopRestarted = /*#__PURE__*/new WeakMap();
|
|
168
|
+
|
|
169
|
+
var _lastTimestamp = /*#__PURE__*/new WeakMap();
|
|
170
|
+
|
|
171
|
+
var _update = /*#__PURE__*/new WeakSet();
|
|
172
|
+
|
|
173
|
+
var _step4 = /*#__PURE__*/new WeakSet();
|
|
174
|
+
|
|
175
|
+
var _renderView = /*#__PURE__*/new WeakSet();
|
|
176
|
+
|
|
177
|
+
var MainLoop = /*#__PURE__*/function (_EventDispatcher) {
|
|
178
|
+
(0, _inherits2["default"])(MainLoop, _EventDispatcher);
|
|
179
|
+
|
|
180
|
+
var _super = _createSuper(MainLoop);
|
|
181
|
+
|
|
182
|
+
function MainLoop(scheduler, engine) {
|
|
183
|
+
var _this;
|
|
184
|
+
|
|
185
|
+
(0, _classCallCheck2["default"])(this, MainLoop);
|
|
186
|
+
_this = _super.call(this);
|
|
187
|
+
|
|
188
|
+
_classPrivateMethodInitSpec((0, _assertThisInitialized2["default"])(_this), _renderView);
|
|
189
|
+
|
|
190
|
+
_classPrivateMethodInitSpec((0, _assertThisInitialized2["default"])(_this), _step4);
|
|
191
|
+
|
|
192
|
+
_classPrivateMethodInitSpec((0, _assertThisInitialized2["default"])(_this), _update);
|
|
193
|
+
|
|
194
|
+
_classPrivateFieldInitSpec((0, _assertThisInitialized2["default"])(_this), _needsRedraw, {
|
|
195
|
+
writable: true,
|
|
196
|
+
value: false
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
_classPrivateFieldInitSpec((0, _assertThisInitialized2["default"])(_this), _updateLoopRestarted, {
|
|
200
|
+
writable: true,
|
|
201
|
+
value: true
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
_classPrivateFieldInitSpec((0, _assertThisInitialized2["default"])(_this), _lastTimestamp, {
|
|
205
|
+
writable: true,
|
|
206
|
+
value: 0
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
_this.renderingState = RENDERING_PAUSED;
|
|
210
|
+
_this.scheduler = scheduler;
|
|
211
|
+
_this.gfxEngine = engine; // TODO: remove me
|
|
212
|
+
|
|
213
|
+
return _this;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
(0, _createClass2["default"])(MainLoop, [{
|
|
217
|
+
key: "scheduleViewUpdate",
|
|
218
|
+
value: function scheduleViewUpdate(view, forceRedraw) {
|
|
219
|
+
var _this2 = this;
|
|
220
|
+
|
|
221
|
+
(0, _classPrivateFieldSet2["default"])(this, _needsRedraw, (0, _classPrivateFieldGet2["default"])(this, _needsRedraw) | forceRedraw);
|
|
222
|
+
|
|
223
|
+
if (this.renderingState !== RENDERING_SCHEDULED) {
|
|
224
|
+
this.renderingState = RENDERING_SCHEDULED;
|
|
225
|
+
requestAnimationFrame(function (timestamp) {
|
|
226
|
+
_classPrivateMethodGet(_this2, _step4, _step5).call(_this2, view, timestamp);
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}]);
|
|
231
|
+
return MainLoop;
|
|
232
|
+
}(_three.EventDispatcher);
|
|
233
|
+
|
|
234
|
+
function _update2(view, updateSources, dt) {
|
|
161
235
|
var context = {
|
|
162
236
|
camera: view.camera,
|
|
163
237
|
engine: this.gfxEngine,
|
|
@@ -176,26 +250,26 @@ MainLoop.prototype._update = function (view, updateSources, dt) {
|
|
|
176
250
|
var _iterator4 = _createForOfIteratorHelper(view.getLayers(function (x, y) {
|
|
177
251
|
return !y;
|
|
178
252
|
})),
|
|
179
|
-
|
|
253
|
+
_step6;
|
|
180
254
|
|
|
181
255
|
try {
|
|
182
|
-
for (_iterator4.s(); !(
|
|
183
|
-
var geometryLayer =
|
|
256
|
+
for (_iterator4.s(); !(_step6 = _iterator4.n()).done;) {
|
|
257
|
+
var geometryLayer = _step6.value;
|
|
184
258
|
context.geometryLayer = geometryLayer;
|
|
185
259
|
|
|
186
260
|
if (geometryLayer.ready && geometryLayer.visible && !geometryLayer.frozen) {
|
|
187
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.BEFORE_LAYER_UPDATE, dt, this
|
|
261
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.BEFORE_LAYER_UPDATE, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted), geometryLayer); // Filter updateSources that are relevant for the geometryLayer
|
|
188
262
|
|
|
189
263
|
var srcs = filterChangeSources(updateSources, geometryLayer);
|
|
190
264
|
|
|
191
265
|
if (srcs.size > 0) {
|
|
192
266
|
// pre update attached layer
|
|
193
267
|
var _iterator5 = _createForOfIteratorHelper(geometryLayer.attachedLayers),
|
|
194
|
-
|
|
268
|
+
_step7;
|
|
195
269
|
|
|
196
270
|
try {
|
|
197
|
-
for (_iterator5.s(); !(
|
|
198
|
-
var attachedLayer =
|
|
271
|
+
for (_iterator5.s(); !(_step7 = _iterator5.n()).done;) {
|
|
272
|
+
var attachedLayer = _step7.value;
|
|
199
273
|
|
|
200
274
|
if (attachedLayer.ready && attachedLayer.preUpdate) {
|
|
201
275
|
attachedLayer.preUpdate(context, srcs);
|
|
@@ -217,7 +291,7 @@ MainLoop.prototype._update = function (view, updateSources, dt) {
|
|
|
217
291
|
|
|
218
292
|
|
|
219
293
|
geometryLayer.cache.flush();
|
|
220
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.AFTER_LAYER_UPDATE, dt, this
|
|
294
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.AFTER_LAYER_UPDATE, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted), geometryLayer);
|
|
221
295
|
}
|
|
222
296
|
}
|
|
223
297
|
} catch (err) {
|
|
@@ -225,19 +299,19 @@ MainLoop.prototype._update = function (view, updateSources, dt) {
|
|
|
225
299
|
} finally {
|
|
226
300
|
_iterator4.f();
|
|
227
301
|
}
|
|
228
|
-
}
|
|
302
|
+
}
|
|
229
303
|
|
|
230
|
-
|
|
231
|
-
var dt = timestamp - this
|
|
304
|
+
function _step5(view, timestamp) {
|
|
305
|
+
var dt = timestamp - (0, _classPrivateFieldGet2["default"])(this, _lastTimestamp);
|
|
232
306
|
|
|
233
307
|
view._executeFrameRequestersRemovals();
|
|
234
308
|
|
|
235
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.UPDATE_START, dt, this
|
|
236
|
-
var willRedraw = this
|
|
237
|
-
this
|
|
309
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.UPDATE_START, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted));
|
|
310
|
+
var willRedraw = (0, _classPrivateFieldGet2["default"])(this, _needsRedraw);
|
|
311
|
+
(0, _classPrivateFieldSet2["default"])(this, _lastTimestamp, timestamp); // Reset internal state before calling _update (so future calls to View.notifyChange()
|
|
238
312
|
// can properly change it)
|
|
239
313
|
|
|
240
|
-
this
|
|
314
|
+
(0, _classPrivateFieldSet2["default"])(this, _needsRedraw, false);
|
|
241
315
|
this.renderingState = RENDERING_PAUSED;
|
|
242
316
|
var updateSources = new Set(view._changeSources);
|
|
243
317
|
|
|
@@ -245,9 +319,9 @@ MainLoop.prototype._step = function (view, timestamp) {
|
|
|
245
319
|
|
|
246
320
|
|
|
247
321
|
var dim = this.gfxEngine.getWindowSize();
|
|
248
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.BEFORE_CAMERA_UPDATE, dt, this
|
|
322
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.BEFORE_CAMERA_UPDATE, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted));
|
|
249
323
|
view.camera.update(dim.x, dim.y);
|
|
250
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.AFTER_CAMERA_UPDATE, dt, this
|
|
324
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.AFTER_CAMERA_UPDATE, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted)); // Disable camera's matrix auto update to make sure the camera's
|
|
251
325
|
// world matrix is never updated mid-update.
|
|
252
326
|
// Otherwise inconsistencies can appear because object visibility
|
|
253
327
|
// testing and object drawing could be performed using different
|
|
@@ -258,31 +332,31 @@ MainLoop.prototype._step = function (view, timestamp) {
|
|
|
258
332
|
var oldAutoUpdate = view.camera.camera3D.matrixAutoUpdate;
|
|
259
333
|
view.camera.camera3D.matrixAutoUpdate = false; // update data-structure
|
|
260
334
|
|
|
261
|
-
this.
|
|
335
|
+
_classPrivateMethodGet(this, _update, _update2).call(this, view, updateSources, dt);
|
|
262
336
|
|
|
263
337
|
if (this.scheduler.commandsWaitingExecutionCount() == 0) {
|
|
264
338
|
this.dispatchEvent({
|
|
265
339
|
type: 'command-queue-empty'
|
|
266
340
|
});
|
|
267
341
|
} // Redraw *only* if needed.
|
|
268
|
-
// (redraws only happen when this
|
|
342
|
+
// (redraws only happen when this.#needsRedraw is true, which in turn only happens when
|
|
269
343
|
// view.notifyChange() is called with redraw=true)
|
|
270
344
|
// As such there's no continuous update-loop, instead we use a ad-hoc update/render
|
|
271
345
|
// mechanism.
|
|
272
346
|
|
|
273
347
|
|
|
274
348
|
if (willRedraw) {
|
|
275
|
-
this.
|
|
349
|
+
_classPrivateMethodGet(this, _renderView, _renderView2).call(this, view, dt);
|
|
276
350
|
} // next time, we'll consider that we've just started the loop if we are still PAUSED now
|
|
277
351
|
|
|
278
352
|
|
|
279
|
-
this
|
|
353
|
+
(0, _classPrivateFieldSet2["default"])(this, _updateLoopRestarted, this.renderingState === RENDERING_PAUSED);
|
|
280
354
|
view.camera.camera3D.matrixAutoUpdate = oldAutoUpdate;
|
|
281
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.UPDATE_END, dt, this
|
|
282
|
-
}
|
|
355
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.UPDATE_END, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted));
|
|
356
|
+
}
|
|
283
357
|
|
|
284
|
-
|
|
285
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.BEFORE_RENDER, dt, this
|
|
358
|
+
function _renderView2(view, dt) {
|
|
359
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.BEFORE_RENDER, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted));
|
|
286
360
|
|
|
287
361
|
if (view.render) {
|
|
288
362
|
view.render();
|
|
@@ -291,8 +365,8 @@ MainLoop.prototype._renderView = function (view, dt) {
|
|
|
291
365
|
this.gfxEngine.renderView(view);
|
|
292
366
|
}
|
|
293
367
|
|
|
294
|
-
view.execFrameRequesters(MAIN_LOOP_EVENTS.AFTER_RENDER, dt, this
|
|
295
|
-
}
|
|
368
|
+
view.execFrameRequesters(MAIN_LOOP_EVENTS.AFTER_RENDER, dt, (0, _classPrivateFieldGet2["default"])(this, _updateLoopRestarted));
|
|
369
|
+
}
|
|
296
370
|
|
|
297
371
|
var _default = MainLoop;
|
|
298
372
|
exports["default"] = _default;
|
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports["default"] =
|
|
10
|
+
exports.ellipsoidSizes = exports["default"] = void 0;
|
|
11
11
|
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
13
|
|
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
|
|
14
16
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
@@ -87,7 +89,7 @@ var Sky = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
87
89
|
return _super.call(this, skyGeo, skyMat);
|
|
88
90
|
}
|
|
89
91
|
|
|
90
|
-
return Sky;
|
|
92
|
+
return (0, _createClass2["default"])(Sky);
|
|
91
93
|
}(THREE.Mesh);
|
|
92
94
|
|
|
93
95
|
var _default = Sky;
|
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
|
|
14
16
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
@@ -96,7 +98,7 @@ var PlanarLayer = /*#__PURE__*/function (_TiledGeometryLayer) {
|
|
|
96
98
|
return _this;
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
return PlanarLayer;
|
|
101
|
+
return (0, _createClass2["default"])(PlanarLayer);
|
|
100
102
|
}(_TiledGeometryLayer2["default"]);
|
|
101
103
|
|
|
102
104
|
var _default = PlanarLayer;
|
package/lib/Core/Style.js
CHANGED
|
@@ -7,8 +7,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.readExpression = readExpression;
|
|
11
10
|
exports["default"] = exports.cacheStyle = void 0;
|
|
11
|
+
exports.readExpression = readExpression;
|
|
12
12
|
|
|
13
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
14
14
|
|
package/lib/Core/TileGeometry.js
CHANGED
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
|
|
14
16
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
@@ -75,7 +77,7 @@ var TileGeometry = /*#__PURE__*/function (_THREE$BufferGeometry) {
|
|
|
75
77
|
return _this;
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
return TileGeometry;
|
|
80
|
+
return (0, _createClass2["default"])(TileGeometry);
|
|
79
81
|
}(THREE.BufferGeometry);
|
|
80
82
|
|
|
81
83
|
var _default = TileGeometry;
|
package/lib/Core/TileMesh.js
CHANGED
|
@@ -13,16 +13,22 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
13
13
|
|
|
14
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
15
|
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
16
18
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
19
|
|
|
18
20
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
21
|
|
|
20
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
23
|
|
|
24
|
+
var _classPrivateFieldGet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet"));
|
|
25
|
+
|
|
22
26
|
var THREE = _interopRequireWildcard(require("three"));
|
|
23
27
|
|
|
24
28
|
var _Crs = _interopRequireDefault(require("./Geographic/Crs"));
|
|
25
29
|
|
|
30
|
+
var _GeoidLayer = require("../Layer/GeoidLayer");
|
|
31
|
+
|
|
26
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
33
|
|
|
28
34
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -37,6 +43,12 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
37
43
|
|
|
38
44
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
45
|
|
|
46
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
47
|
+
|
|
48
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
49
|
+
|
|
50
|
+
var _tms = /*#__PURE__*/new WeakMap();
|
|
51
|
+
|
|
40
52
|
/**
|
|
41
53
|
* A TileMesh is a THREE.Mesh with a geometricError and an OBB
|
|
42
54
|
* The objectId property of the material is the with the id of the TileMesh
|
|
@@ -59,6 +71,11 @@ var TileMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
59
71
|
(0, _classCallCheck2["default"])(this, TileMesh);
|
|
60
72
|
_this = _super.call(this, geometry, material);
|
|
61
73
|
|
|
74
|
+
_classPrivateFieldInitSpec((0, _assertThisInitialized2["default"])(_this), _tms, {
|
|
75
|
+
writable: true,
|
|
76
|
+
value: new Map()
|
|
77
|
+
});
|
|
78
|
+
|
|
62
79
|
if (!extent) {
|
|
63
80
|
throw new Error('extent is mandatory to build a TileMesh');
|
|
64
81
|
}
|
|
@@ -73,16 +90,13 @@ var TileMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
73
90
|
|
|
74
91
|
_this.obb.box3D.getBoundingSphere(_this.boundingSphere);
|
|
75
92
|
|
|
76
|
-
_this._tms = new Map();
|
|
77
|
-
|
|
78
93
|
var _iterator = _createForOfIteratorHelper(layer.tileMatrixSets),
|
|
79
94
|
_step;
|
|
80
95
|
|
|
81
96
|
try {
|
|
82
97
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
83
98
|
var tms = _step.value;
|
|
84
|
-
|
|
85
|
-
_this._tms.set(tms, _this.extent.tiledCovering(tms));
|
|
99
|
+
(0, _classPrivateFieldGet2["default"])((0, _assertThisInitialized2["default"])(_this), _tms).set(tms, _this.extent.tiledCovering(tms));
|
|
86
100
|
}
|
|
87
101
|
} catch (err) {
|
|
88
102
|
_iterator.e(err);
|
|
@@ -96,41 +110,37 @@ var TileMesh = /*#__PURE__*/function (_THREE$Mesh) {
|
|
|
96
110
|
_this.layerUpdateState = {};
|
|
97
111
|
_this.isTileMesh = true;
|
|
98
112
|
_this.domElements = {};
|
|
113
|
+
_this.geoidHeight = 0;
|
|
114
|
+
_this.link = [];
|
|
99
115
|
return _this;
|
|
100
116
|
}
|
|
101
117
|
/**
|
|
102
118
|
* If specified, update the min and max elevation of the OBB
|
|
103
119
|
* and updates accordingly the bounding sphere and the geometric error
|
|
104
120
|
*
|
|
105
|
-
* @param {
|
|
106
|
-
* @param {
|
|
107
|
-
* @param {
|
|
121
|
+
* @param {Object} elevation
|
|
122
|
+
* @param {number} [elevation.min]
|
|
123
|
+
* @param {number} [elevation.max]
|
|
124
|
+
* @param {number} [elevation.scale]
|
|
108
125
|
*/
|
|
109
126
|
|
|
110
127
|
|
|
111
128
|
(0, _createClass2["default"])(TileMesh, [{
|
|
112
129
|
key: "setBBoxZ",
|
|
113
|
-
value: function setBBoxZ(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
} // update bbox if min or max have changed by at least one decimal
|
|
117
|
-
// or if scale changed
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (min.toFixed(1) !== this.obb.z.min.toFixed(1) || max.toFixed(1) !== this.obb.z.max.toFixed(1) || scale != this.obb.z.scale) {
|
|
121
|
-
this.obb.updateZ(min, max, scale);
|
|
130
|
+
value: function setBBoxZ(elevation) {
|
|
131
|
+
elevation.geoidHeight = (0, _GeoidLayer.geoidLayerIsVisible)(this.layer) ? this.geoidHeight : 0;
|
|
132
|
+
this.obb.updateZ(elevation);
|
|
122
133
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
this.obb.box3D.getBoundingSphere(this.boundingSphere);
|
|
134
|
+
if (this.horizonCullingPointElevationScaled) {
|
|
135
|
+
this.horizonCullingPointElevationScaled.setLength(this.obb.z.delta + this.horizonCullingPoint.length());
|
|
128
136
|
}
|
|
137
|
+
|
|
138
|
+
this.obb.box3D.getBoundingSphere(this.boundingSphere);
|
|
129
139
|
}
|
|
130
140
|
}, {
|
|
131
141
|
key: "getExtentsByProjection",
|
|
132
142
|
value: function getExtentsByProjection(crs) {
|
|
133
|
-
return this
|
|
143
|
+
return (0, _classPrivateFieldGet2["default"])(this, _tms).get(_Crs["default"].formatToTms(crs));
|
|
134
144
|
}
|
|
135
145
|
/**
|
|
136
146
|
* Search for a common ancestor between this tile and another one. It goes
|