itowns 2.42.1-next.15 → 2.42.1-next.17
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/dist/debug.js +1 -1
- package/dist/debug.js.map +1 -1
- package/dist/itowns.js +1 -1
- package/dist/itowns.js.map +1 -1
- package/dist/itowns_widgets.js +1 -1
- package/dist/itowns_widgets.js.map +1 -1
- package/examples/{.eslintrc.js → .eslintrc.cjs} +1 -1
- package/lib/Controls/FirstPersonControls.js +5 -12
- package/lib/Controls/FlyControls.js +4 -13
- package/lib/Controls/GlobeControls.js +33 -43
- package/lib/Controls/PlanarControls.js +9 -20
- package/lib/Controls/StateControl.js +2 -11
- package/lib/Controls/StreetControls.js +14 -24
- package/lib/Converter/Feature2Mesh.js +28 -38
- package/lib/Converter/Feature2Texture.js +15 -25
- package/lib/Converter/convertToTile.js +13 -24
- package/lib/Converter/textureConverter.js +9 -19
- package/lib/Core/3DTiles/C3DTBatchTable.js +5 -13
- package/lib/Core/3DTiles/C3DTBatchTableHierarchyExtension.js +1 -8
- package/lib/Core/3DTiles/C3DTBoundingVolume.js +17 -27
- package/lib/Core/3DTiles/C3DTExtensions.js +1 -8
- package/lib/Core/3DTiles/C3DTFeature.js +3 -10
- package/lib/Core/3DTiles/C3DTilesEnums.js +3 -11
- package/lib/Core/3DTiles/C3DTileset.js +7 -16
- package/lib/Core/3DTiles/utils/BinaryPropertyAccessor.js +5 -11
- package/lib/Core/AnimationPlayer.js +2 -11
- package/lib/Core/Deprecated/Undeprecator.js +8 -19
- package/lib/Core/EntwinePointTileNode.js +6 -16
- package/lib/Core/Feature.js +16 -30
- package/lib/Core/Geographic/CoordStars.js +3 -12
- package/lib/Core/Geographic/Coordinates.js +12 -22
- package/lib/Core/Geographic/Crs.js +7 -15
- package/lib/Core/Geographic/Extent.js +36 -47
- package/lib/Core/Geographic/GeoidGrid.js +6 -16
- package/lib/Core/Label.js +7 -17
- package/lib/Core/MainLoop.js +7 -16
- package/lib/Core/Math/Ellipsoid.js +6 -17
- package/lib/Core/Picking.js +10 -20
- package/lib/Core/PointCloudNode.js +2 -11
- package/lib/Core/PotreeNode.js +4 -13
- package/lib/Core/Prefab/Globe/Atmosphere.js +17 -26
- package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +6 -16
- package/lib/Core/Prefab/Globe/GlobeLayer.js +19 -28
- package/lib/Core/Prefab/Globe/SkyShader.js +2 -11
- package/lib/Core/Prefab/GlobeView.js +27 -37
- package/lib/Core/Prefab/Planar/PlanarLayer.js +11 -20
- package/lib/Core/Prefab/Planar/PlanarTileBuilder.js +6 -16
- package/lib/Core/Prefab/PlanarView.js +10 -20
- package/lib/Core/Prefab/TileBuilder.js +10 -19
- package/lib/Core/Prefab/computeBufferTileGeometry.js +3 -12
- package/lib/Core/Scheduler/Cache.js +2 -10
- package/lib/Core/Scheduler/CancelledCommandException.js +1 -8
- package/lib/Core/Scheduler/Scheduler.js +15 -23
- package/lib/Core/Style.js +21 -34
- package/lib/Core/System/Capabilities.js +2 -9
- package/lib/Core/TileGeometry.js +5 -14
- package/lib/Core/TileMesh.js +6 -15
- package/lib/Core/View.js +43 -53
- package/lib/Layer/C3DTilesLayer.js +25 -37
- package/lib/Layer/ColorLayer.js +10 -16
- package/lib/Layer/ElevationLayer.js +7 -14
- package/lib/Layer/EntwinePointTileLayer.js +8 -18
- package/lib/Layer/FeatureGeometryLayer.js +9 -16
- package/lib/Layer/GeoidLayer.js +6 -15
- package/lib/Layer/GeometryLayer.js +11 -17
- package/lib/Layer/InfoLayer.js +5 -14
- package/lib/Layer/LabelLayer.js +22 -32
- package/lib/Layer/Layer.js +16 -26
- package/lib/Layer/LayerUpdateState.js +1 -8
- package/lib/Layer/LayerUpdateStrategy.js +7 -18
- package/lib/Layer/OrientedImageLayer.js +15 -25
- package/lib/Layer/PointCloudLayer.js +9 -19
- package/lib/Layer/PotreeLayer.js +8 -18
- package/lib/Layer/RasterLayer.js +9 -17
- package/lib/Layer/ReferencingLayerProperties.js +1 -8
- package/lib/Layer/TiledGeometryLayer.js +21 -31
- package/lib/Main.js +86 -720
- package/lib/MainBundle.js +4 -34
- package/lib/Parser/B3dmParser.js +20 -28
- package/lib/Parser/CameraCalibrationParser.js +5 -14
- package/lib/Parser/GDFParser.js +11 -22
- package/lib/Parser/GLTFParser.js +13 -28
- package/lib/Parser/GTXParser.js +9 -21
- package/lib/Parser/GeoJsonParser.js +13 -21
- package/lib/Parser/GpxParser.js +7 -14
- package/lib/Parser/ISGParser.js +19 -28
- package/lib/Parser/KMLParser.js +7 -14
- package/lib/Parser/LASLoader.js +11 -16
- package/lib/Parser/LASParser.js +5 -15
- package/lib/Parser/MapBoxUrlParser.js +2 -9
- package/lib/Parser/PntsParser.js +4 -14
- package/lib/Parser/PotreeBinParser.js +3 -11
- package/lib/Parser/PotreeCinParser.js +3 -12
- package/lib/Parser/ShapefileParser.js +11 -18
- package/lib/Parser/VectorTileParser.js +18 -26
- package/lib/Parser/XbilParser.js +5 -13
- package/lib/Parser/deprecated/LegacyGLTFLoader.js +2 -12
- package/lib/Process/3dTilesProcessing.js +14 -27
- package/lib/Process/FeatureProcessing.js +14 -22
- package/lib/Process/LayeredMaterialNodeProcessing.js +14 -26
- package/lib/Process/ObjectRemovalHelper.js +2 -9
- package/lib/Process/handlerNodeError.js +1 -7
- package/lib/Provider/3dTilesProvider.js +16 -27
- package/lib/Provider/DataSourceProvider.js +2 -9
- package/lib/Provider/Fetcher.js +6 -13
- package/lib/Provider/PointCloudProvider.js +5 -15
- package/lib/Provider/TileProvider.js +4 -12
- package/lib/Provider/URLBuilder.js +4 -12
- package/lib/Renderer/Camera.js +7 -17
- package/lib/Renderer/Color.js +3 -11
- package/lib/Renderer/ColorLayersOrdering.js +14 -22
- package/lib/Renderer/CommonMaterial.js +3 -12
- package/lib/Renderer/Label2DRenderer.js +5 -16
- package/lib/Renderer/LayeredMaterial.js +27 -41
- package/lib/Renderer/OBB.js +10 -19
- package/lib/Renderer/OrientedImageCamera.js +2 -11
- package/lib/Renderer/OrientedImageMaterial.js +7 -17
- package/lib/Renderer/PointsMaterial.js +34 -48
- package/lib/Renderer/RasterTile.js +15 -28
- package/lib/Renderer/RenderMode.js +2 -9
- package/lib/Renderer/Shader/ShaderChunk.js +2 -11
- package/lib/Renderer/Shader/ShaderUtils.js +2 -9
- package/lib/Renderer/SphereHelper.js +2 -11
- package/lib/Renderer/WebXR.js +2 -11
- package/lib/Renderer/c3DEngine.js +18 -28
- package/lib/Source/C3DTilesGoogleSource.js +5 -13
- package/lib/Source/C3DTilesIonSource.js +6 -13
- package/lib/Source/C3DTilesSource.js +5 -12
- package/lib/Source/EntwinePointTileSource.js +12 -19
- package/lib/Source/FileSource.js +7 -14
- package/lib/Source/OrientedImageSource.js +6 -13
- package/lib/Source/PotreeSource.js +9 -16
- package/lib/Source/Source.js +17 -26
- package/lib/Source/TMSSource.js +11 -21
- package/lib/Source/VectorTilesSource.js +18 -26
- package/lib/Source/WFSSource.js +7 -14
- package/lib/Source/WMSSource.js +5 -12
- package/lib/Source/WMTSSource.js +3 -10
- package/lib/ThreeExtended/capabilities/WebGL.js +1 -8
- package/lib/ThreeExtended/libs/ktx-parse.module.js +2 -256
- package/lib/ThreeExtended/libs/zstddec.module.js +2 -8
- package/lib/ThreeExtended/loaders/DDSLoader.js +10 -16
- package/lib/ThreeExtended/loaders/DRACOLoader.js +14 -19
- package/lib/ThreeExtended/loaders/GLTFLoader.js +124 -129
- package/lib/ThreeExtended/loaders/KTX2Loader.js +73 -78
- package/lib/ThreeExtended/utils/BufferGeometryUtils.js +40 -59
- package/lib/ThreeExtended/utils/WorkerPool.js +2 -9
- package/lib/Utils/CameraUtils.js +32 -44
- package/lib/Utils/DEMUtils.js +8 -19
- package/lib/Utils/FeaturesUtils.js +8 -16
- package/lib/Utils/Gradients.js +3 -12
- package/lib/Utils/OrientationUtils.js +8 -18
- package/lib/Utils/ThreeUtils.js +2 -9
- package/lib/Utils/gui/C3DTilesStyle.js +7 -15
- package/lib/Utils/gui/Main.js +7 -48
- package/lib/Utils/gui/Minimap.js +12 -20
- package/lib/Utils/gui/Navigation.js +6 -14
- package/lib/Utils/gui/Scale.js +11 -19
- package/lib/Utils/gui/Searchbar.js +5 -13
- package/lib/Utils/gui/Widget.js +1 -8
- package/lib/Utils/placeObjectOnGround.js +13 -23
- package/package.json +10 -7
package/lib/Core/View.js
CHANGED
|
@@ -1,29 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var _FeaturesUtils = _interopRequireDefault(require("../Utils/FeaturesUtils"));
|
|
19
|
-
var _LayeredMaterial = require("../Renderer/LayeredMaterial");
|
|
20
|
-
var _Scheduler = _interopRequireDefault(require("./Scheduler/Scheduler"));
|
|
21
|
-
var _Picking = _interopRequireDefault(require("./Picking"));
|
|
22
|
-
var _LabelLayer = _interopRequireDefault(require("../Layer/LabelLayer"));
|
|
23
|
-
var _ObjectRemovalHelper = _interopRequireDefault(require("../Process/ObjectRemovalHelper"));
|
|
24
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
-
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; }
|
|
26
|
-
const VIEW_EVENTS = {
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import Camera from "../Renderer/Camera.js";
|
|
3
|
+
import initializeWebXR from "../Renderer/WebXR.js";
|
|
4
|
+
import MainLoop, { MAIN_LOOP_EVENTS, RENDERING_PAUSED } from "./MainLoop.js";
|
|
5
|
+
import Capabilities from "./System/Capabilities.js";
|
|
6
|
+
import { COLOR_LAYERS_ORDER_CHANGED } from "../Renderer/ColorLayersOrdering.js";
|
|
7
|
+
import c3DEngine from "../Renderer/c3DEngine.js";
|
|
8
|
+
import RenderMode from "../Renderer/RenderMode.js";
|
|
9
|
+
import CRS from "./Geographic/Crs.js";
|
|
10
|
+
import Coordinates from "./Geographic/Coordinates.js";
|
|
11
|
+
import FeaturesUtils from "../Utils/FeaturesUtils.js";
|
|
12
|
+
import { getMaxColorSamplerUnitsCount } from "../Renderer/LayeredMaterial.js";
|
|
13
|
+
import Scheduler from "./Scheduler/Scheduler.js";
|
|
14
|
+
import Picking from "./Picking.js";
|
|
15
|
+
import LabelLayer from "../Layer/LabelLayer.js";
|
|
16
|
+
import ObjectRemovalHelper from "../Process/ObjectRemovalHelper.js";
|
|
17
|
+
export const VIEW_EVENTS = {
|
|
27
18
|
/**
|
|
28
19
|
* Fires when all the layers of the view are considered initialized.
|
|
29
20
|
* Initialized in this context means: all layers are ready to be
|
|
@@ -38,7 +29,7 @@ const VIEW_EVENTS = {
|
|
|
38
29
|
LAYER_REMOVED: 'layer-removed',
|
|
39
30
|
LAYER_ADDED: 'layer-added',
|
|
40
31
|
INITIALIZED: 'initialized',
|
|
41
|
-
COLOR_LAYERS_ORDER_CHANGED
|
|
32
|
+
COLOR_LAYERS_ORDER_CHANGED,
|
|
42
33
|
CAMERA_MOVED: 'camera-moved'
|
|
43
34
|
};
|
|
44
35
|
|
|
@@ -48,7 +39,7 @@ const VIEW_EVENTS = {
|
|
|
48
39
|
* @event View#dblclick-right
|
|
49
40
|
* @property {string} type dblclick-right
|
|
50
41
|
*/
|
|
51
|
-
|
|
42
|
+
|
|
52
43
|
function _preprocessLayer(view, layer, parentLayer) {
|
|
53
44
|
const source = layer.source;
|
|
54
45
|
if (parentLayer && !layer.extent) {
|
|
@@ -61,7 +52,7 @@ function _preprocessLayer(view, layer, parentLayer) {
|
|
|
61
52
|
// Find crs projection layer, this is projection destination
|
|
62
53
|
layer.crs = view.referenceCrs;
|
|
63
54
|
} else if (!layer.crs) {
|
|
64
|
-
if (parentLayer && parentLayer.tileMatrixSets && parentLayer.tileMatrixSets.includes(
|
|
55
|
+
if (parentLayer && parentLayer.tileMatrixSets && parentLayer.tileMatrixSets.includes(CRS.formatToTms(source.crs))) {
|
|
65
56
|
layer.crs = source.crs;
|
|
66
57
|
} else {
|
|
67
58
|
layer.crs = parentLayer && parentLayer.extent.crs;
|
|
@@ -78,7 +69,7 @@ function _preprocessLayer(view, layer, parentLayer) {
|
|
|
78
69
|
layer.buildExtent = true;
|
|
79
70
|
// label layer needs 3d data structure.
|
|
80
71
|
layer.structure = '3d';
|
|
81
|
-
const labelLayer = new
|
|
72
|
+
const labelLayer = new LabelLayer(`${layer.id}-label`, {
|
|
82
73
|
source,
|
|
83
74
|
style: layer.style,
|
|
84
75
|
zoom: layer.zoom,
|
|
@@ -111,7 +102,7 @@ const screen = new THREE.Vector2();
|
|
|
111
102
|
const ray = new THREE.Ray();
|
|
112
103
|
const direction = new THREE.Vector3();
|
|
113
104
|
const positionVector = new THREE.Vector3();
|
|
114
|
-
const coordinates = new
|
|
105
|
+
const coordinates = new Coordinates('EPSG:4326');
|
|
115
106
|
const viewers = [];
|
|
116
107
|
// Size of the camera frustrum, in meters
|
|
117
108
|
let screenMeters;
|
|
@@ -174,16 +165,16 @@ class View extends THREE.EventDispatcher {
|
|
|
174
165
|
// - an actual renderer (in this case we don't use viewerDiv)
|
|
175
166
|
// - options for the renderer to be created
|
|
176
167
|
if (options.renderer && options.renderer.domElement) {
|
|
177
|
-
engine = new
|
|
168
|
+
engine = new c3DEngine(options.renderer);
|
|
178
169
|
} else {
|
|
179
|
-
engine = new
|
|
170
|
+
engine = new c3DEngine(viewerDiv, options.renderer);
|
|
180
171
|
}
|
|
181
|
-
this.mainLoop = options.mainLoop || new
|
|
172
|
+
this.mainLoop = options.mainLoop || new MainLoop(new Scheduler(), engine);
|
|
182
173
|
this.scene = options.scene3D || new THREE.Scene();
|
|
183
174
|
if (!options.scene3D) {
|
|
184
175
|
this.scene.matrixWorldAutoUpdate = false;
|
|
185
176
|
}
|
|
186
|
-
this.camera = new
|
|
177
|
+
this.camera = new Camera(this.referenceCrs, this.mainLoop.gfxEngine.getWindowSize().x, this.mainLoop.gfxEngine.getWindowSize().y, options.camera);
|
|
187
178
|
this._frameRequesters = {};
|
|
188
179
|
this._resizeListener = () => this.resize();
|
|
189
180
|
window.addEventListener('resize', this._resizeListener, false);
|
|
@@ -192,11 +183,11 @@ class View extends THREE.EventDispatcher {
|
|
|
192
183
|
this._allLayersAreReadyCallback = () => {
|
|
193
184
|
// all layers must be ready
|
|
194
185
|
const allReady = this.getLayers().every(layer => layer.ready);
|
|
195
|
-
if (allReady && this.mainLoop.scheduler.commandsWaitingExecutionCount() == 0 && this.mainLoop.renderingState ==
|
|
186
|
+
if (allReady && this.mainLoop.scheduler.commandsWaitingExecutionCount() == 0 && this.mainLoop.renderingState == RENDERING_PAUSED) {
|
|
196
187
|
this.dispatchEvent({
|
|
197
188
|
type: VIEW_EVENTS.LAYERS_INITIALIZED
|
|
198
189
|
});
|
|
199
|
-
this.removeFrameRequester(
|
|
190
|
+
this.removeFrameRequester(MAIN_LOOP_EVENTS.UPDATE_END, this._allLayersAreReadyCallback);
|
|
200
191
|
}
|
|
201
192
|
};
|
|
202
193
|
this.camera.resize(this.domElement.clientWidth, this.domElement.clientHeight);
|
|
@@ -233,7 +224,7 @@ class View extends THREE.EventDispatcher {
|
|
|
233
224
|
// push all viewer to keep source.cache
|
|
234
225
|
viewers.push(this);
|
|
235
226
|
if (options.webXR) {
|
|
236
|
-
(
|
|
227
|
+
initializeWebXR(this, options.webXR);
|
|
237
228
|
}
|
|
238
229
|
}
|
|
239
230
|
|
|
@@ -300,7 +291,7 @@ class View extends THREE.EventDispatcher {
|
|
|
300
291
|
}
|
|
301
292
|
viewers.splice(id, 1);
|
|
302
293
|
// Remove remaining objects in the scene (e.g. helpers, debug, etc.)
|
|
303
|
-
this.scene.traverse(
|
|
294
|
+
this.scene.traverse(ObjectRemovalHelper.cleanup);
|
|
304
295
|
}
|
|
305
296
|
|
|
306
297
|
/**
|
|
@@ -329,7 +320,7 @@ class View extends THREE.EventDispatcher {
|
|
|
329
320
|
const layerColors = this.getLayers(l => l.isColorLayer);
|
|
330
321
|
layer.sequence = layerColors.length;
|
|
331
322
|
const sumColorLayers = parentLayer.countColorLayersTextures(...layerColors, layer);
|
|
332
|
-
if (sumColorLayers <=
|
|
323
|
+
if (sumColorLayers <= getMaxColorSamplerUnitsCount()) {
|
|
333
324
|
parentLayer.attach(layer);
|
|
334
325
|
} else {
|
|
335
326
|
return layer._reject(new Error(`Cant add color layer ${layer.id}: the maximum layer is reached`));
|
|
@@ -356,8 +347,8 @@ class View extends THREE.EventDispatcher {
|
|
|
356
347
|
Promise.all(layer._promises).then(() => {
|
|
357
348
|
layer._resolve();
|
|
358
349
|
this.notifyChange(parentLayer || layer, false);
|
|
359
|
-
if (!this._frameRequesters[
|
|
360
|
-
this.addFrameRequester(
|
|
350
|
+
if (!this._frameRequesters[MAIN_LOOP_EVENTS.UPDATE_END] || !this._frameRequesters[MAIN_LOOP_EVENTS.UPDATE_END].includes(this._allLayersAreReadyCallback)) {
|
|
351
|
+
this.addFrameRequester(MAIN_LOOP_EVENTS.UPDATE_END, this._allLayersAreReadyCallback);
|
|
361
352
|
}
|
|
362
353
|
this.dispatchEvent({
|
|
363
354
|
type: VIEW_EVENTS.LAYER_ADDED,
|
|
@@ -746,7 +737,7 @@ class View extends THREE.EventDispatcher {
|
|
|
746
737
|
}
|
|
747
738
|
source.pickObjectsAt(this, mouse, radius, results);
|
|
748
739
|
} else {
|
|
749
|
-
|
|
740
|
+
Picking.pickObjectsAt(this, mouse, radius, source, results);
|
|
750
741
|
}
|
|
751
742
|
}
|
|
752
743
|
return results;
|
|
@@ -919,7 +910,7 @@ class View extends THREE.EventDispatcher {
|
|
|
919
910
|
}
|
|
920
911
|
|
|
921
912
|
// Get the tile corresponding to where the cursor is
|
|
922
|
-
const tiles =
|
|
913
|
+
const tiles = Picking.pickTilesAt(this, mouse, radius, this.tileLayer);
|
|
923
914
|
for (const tile of tiles) {
|
|
924
915
|
if (!tile.object.material) {
|
|
925
916
|
continue;
|
|
@@ -929,8 +920,8 @@ class View extends THREE.EventDispatcher {
|
|
|
929
920
|
if (!texture.features) {
|
|
930
921
|
continue;
|
|
931
922
|
}
|
|
932
|
-
precision =
|
|
933
|
-
const featuresUnderCoor =
|
|
923
|
+
precision = CRS.isMetricUnit(texture.features.crs) ? precisions.M : precisions.D;
|
|
924
|
+
const featuresUnderCoor = FeaturesUtils.filterFeaturesUnderCoordinate(coordinates, texture.features, precision);
|
|
934
925
|
featuresUnderCoor.forEach(feature => {
|
|
935
926
|
if (!result[materialLayer.id].find(f => f.geometry === feature.geometry)) {
|
|
936
927
|
result[materialLayer.id].push(feature);
|
|
@@ -955,7 +946,7 @@ class View extends THREE.EventDispatcher {
|
|
|
955
946
|
if (!currentVisibility) {
|
|
956
947
|
this.tileLayer.visible = true;
|
|
957
948
|
}
|
|
958
|
-
const restore = this.tileLayer.level0Nodes.map(n =>
|
|
949
|
+
const restore = this.tileLayer.level0Nodes.map(n => RenderMode.push(n, RenderMode.MODES.DEPTH));
|
|
959
950
|
buffer = g.renderViewToBuffer({
|
|
960
951
|
camera: this.camera,
|
|
961
952
|
scene: this.tileLayer.object3d
|
|
@@ -995,7 +986,7 @@ class View extends THREE.EventDispatcher {
|
|
|
995
986
|
return;
|
|
996
987
|
}
|
|
997
988
|
const l = this.mainLoop;
|
|
998
|
-
const viewPaused = l.scheduler.commandsWaitingExecutionCount() == 0 && l.renderingState ==
|
|
989
|
+
const viewPaused = l.scheduler.commandsWaitingExecutionCount() == 0 && l.renderingState == RENDERING_PAUSED;
|
|
999
990
|
const g = l.gfxEngine;
|
|
1000
991
|
const dim = g.getWindowSize();
|
|
1001
992
|
mouse = mouse || dim.clone().multiplyScalar(0.5);
|
|
@@ -1016,7 +1007,7 @@ class View extends THREE.EventDispatcher {
|
|
|
1016
1007
|
}
|
|
1017
1008
|
screen.x = mouse.x / dim.x * 2 - 1;
|
|
1018
1009
|
screen.y = -(mouse.y / dim.y) * 2 + 1;
|
|
1019
|
-
if (
|
|
1010
|
+
if (Capabilities.isLogDepthBufferSupported() && this.camera3D.type == 'PerspectiveCamera') {
|
|
1020
1011
|
// TODO: solve this part with gl_FragCoord_Z and unproject
|
|
1021
1012
|
// Origin
|
|
1022
1013
|
ray.origin.copy(this.camera3D.position);
|
|
@@ -1059,7 +1050,7 @@ class View extends THREE.EventDispatcher {
|
|
|
1059
1050
|
* coordinate reference system of the target or in the view referenceCrs if no target is specified.
|
|
1060
1051
|
*/
|
|
1061
1052
|
pickTerrainCoordinates(mouse) {
|
|
1062
|
-
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new
|
|
1053
|
+
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Coordinates(this.referenceCrs);
|
|
1063
1054
|
if (mouse instanceof Event) {
|
|
1064
1055
|
this.eventToViewCoords(mouse);
|
|
1065
1056
|
} else if (mouse && mouse.x !== undefined && mouse.y !== undefined) {
|
|
@@ -1089,7 +1080,7 @@ class View extends THREE.EventDispatcher {
|
|
|
1089
1080
|
* @deprecated Use View#pickTerrainCoordinates instead.
|
|
1090
1081
|
*/
|
|
1091
1082
|
pickCoordinates(mouse) {
|
|
1092
|
-
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new
|
|
1083
|
+
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Coordinates(this.referenceCrs);
|
|
1093
1084
|
console.warn('Deprecated, use View#pickTerrainCoordinates instead.');
|
|
1094
1085
|
return this.pickTerrainCoordinates(mouse, target);
|
|
1095
1086
|
}
|
|
@@ -1121,5 +1112,4 @@ class View extends THREE.EventDispatcher {
|
|
|
1121
1112
|
}
|
|
1122
1113
|
}
|
|
1123
1114
|
}
|
|
1124
|
-
|
|
1125
|
-
exports.default = _default;
|
|
1115
|
+
export default View;
|
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
7
|
-
exports.default = exports.C3DTILES_LAYER_EVENTS = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _GeometryLayer = _interopRequireDefault(require("./GeometryLayer"));
|
|
10
|
-
var _dTilesProcessing = require("../Process/3dTilesProcessing");
|
|
11
|
-
var _C3DTileset = _interopRequireDefault(require("../Core/3DTiles/C3DTileset"));
|
|
12
|
-
var _C3DTExtensions = _interopRequireDefault(require("../Core/3DTiles/C3DTExtensions"));
|
|
13
|
-
var _PointsMaterial = require("../Renderer/PointsMaterial");
|
|
14
|
-
var _Style = _interopRequireDefault(require("../Core/Style"));
|
|
15
|
-
var _C3DTFeature = _interopRequireDefault(require("../Core/3DTiles/C3DTFeature"));
|
|
16
|
-
var _ThreeUtils = require("../Utils/ThreeUtils");
|
|
17
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
|
-
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; }
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import GeometryLayer from "./GeometryLayer.js";
|
|
3
|
+
import { init3dTilesLayer, pre3dTilesUpdate, process3dTilesNode } from "../Process/3dTilesProcessing.js";
|
|
4
|
+
import C3DTileset from "../Core/3DTiles/C3DTileset.js";
|
|
5
|
+
import C3DTExtensions from "../Core/3DTiles/C3DTExtensions.js";
|
|
6
|
+
import { PNTS_MODE, PNTS_SHAPE, PNTS_SIZE_MODE } from "../Renderer/PointsMaterial.js";
|
|
19
7
|
// eslint-disable-next-line no-unused-vars
|
|
20
|
-
|
|
21
|
-
|
|
8
|
+
import Style from "../Core/Style.js";
|
|
9
|
+
import C3DTFeature from "../Core/3DTiles/C3DTFeature.js";
|
|
10
|
+
import { optimizeGeometryGroups } from "../Utils/ThreeUtils.js";
|
|
11
|
+
export const C3DTILES_LAYER_EVENTS = {
|
|
22
12
|
/**
|
|
23
13
|
* Fires when a tile content has been loaded
|
|
24
14
|
* @event C3DTilesLayer#on-tile-content-loaded
|
|
@@ -34,8 +24,7 @@ const C3DTILES_LAYER_EVENTS = {
|
|
|
34
24
|
*/
|
|
35
25
|
ON_TILE_REQUESTED: 'on-tile-requested'
|
|
36
26
|
};
|
|
37
|
-
|
|
38
|
-
const update = (0, _dTilesProcessing.process3dTilesNode)();
|
|
27
|
+
const update = process3dTilesNode();
|
|
39
28
|
|
|
40
29
|
/**
|
|
41
30
|
* Find tileId of object
|
|
@@ -62,7 +51,7 @@ function findTileID(object) {
|
|
|
62
51
|
function object3DHasFeature(object3d) {
|
|
63
52
|
return object3d.geometry && object3d.geometry.attributes._BATCHID;
|
|
64
53
|
}
|
|
65
|
-
class C3DTilesLayer extends
|
|
54
|
+
class C3DTilesLayer extends GeometryLayer {
|
|
66
55
|
#fillColorMaterialsBuffer;
|
|
67
56
|
/**
|
|
68
57
|
* Constructs a new instance of 3d tiles layer.
|
|
@@ -120,15 +109,15 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
120
109
|
this.cleanupDelay = config.cleanupDelay || 1000;
|
|
121
110
|
this.protocol = '3d-tiles';
|
|
122
111
|
this.name = config.name;
|
|
123
|
-
this.registeredExtensions = config.registeredExtensions || new
|
|
124
|
-
this.pntsMode =
|
|
125
|
-
this.pntsShape =
|
|
112
|
+
this.registeredExtensions = config.registeredExtensions || new C3DTExtensions();
|
|
113
|
+
this.pntsMode = PNTS_MODE.COLOR;
|
|
114
|
+
this.pntsShape = PNTS_SHAPE.CIRCLE;
|
|
126
115
|
this.classification = config.classification;
|
|
127
|
-
this.pntsSizeMode =
|
|
116
|
+
this.pntsSizeMode = PNTS_SIZE_MODE.VALUE;
|
|
128
117
|
this.pntsMinAttenuatedSize = config.pntsMinAttenuatedSize || 3;
|
|
129
118
|
this.pntsMaxAttenuatedSize = config.pntsMaxAttenuatedSize || 10;
|
|
130
119
|
if (config.pntsMode) {
|
|
131
|
-
const exists = Object.values(
|
|
120
|
+
const exists = Object.values(PNTS_MODE).includes(config.pntsMode);
|
|
132
121
|
if (!exists) {
|
|
133
122
|
console.warn("The points cloud mode doesn't exist. Use 'COLOR' or 'CLASSIFICATION' instead.");
|
|
134
123
|
} else {
|
|
@@ -136,7 +125,7 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
136
125
|
}
|
|
137
126
|
}
|
|
138
127
|
if (config.pntsShape) {
|
|
139
|
-
const exists = Object.values(
|
|
128
|
+
const exists = Object.values(PNTS_SHAPE).includes(config.pntsShape);
|
|
140
129
|
if (!exists) {
|
|
141
130
|
console.warn("The points cloud point shape doesn't exist. Use 'CIRCLE' or 'SQUARE' instead.");
|
|
142
131
|
} else {
|
|
@@ -144,7 +133,7 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
144
133
|
}
|
|
145
134
|
}
|
|
146
135
|
if (config.pntsSizeMode) {
|
|
147
|
-
const exists = Object.values(
|
|
136
|
+
const exists = Object.values(PNTS_SIZE_MODE).includes(config.pntsSizeMode);
|
|
148
137
|
if (!exists) {
|
|
149
138
|
console.warn("The points cloud size mode doesn't exist. Use 'VALUE' or 'ATTENUATED' instead.");
|
|
150
139
|
} else {
|
|
@@ -176,7 +165,7 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
176
165
|
this._cleanableTiles = [];
|
|
177
166
|
const resolve = this.addInitializationStep();
|
|
178
167
|
this.source.whenReady.then(tileset => {
|
|
179
|
-
this.tileset = new
|
|
168
|
+
this.tileset = new C3DTileset(tileset, this.source.baseUrl, this.registeredExtensions);
|
|
180
169
|
// Verify that extensions of the tileset have been registered in the layer
|
|
181
170
|
if (this.tileset.extensionsUsed) {
|
|
182
171
|
for (const extensionUsed of this.tileset.extensionsUsed) {
|
|
@@ -192,11 +181,11 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
192
181
|
}
|
|
193
182
|
}
|
|
194
183
|
// TODO: Move all init3dTilesLayer code to constructor
|
|
195
|
-
|
|
184
|
+
init3dTilesLayer(view, view.mainLoop.scheduler, this, tileset.root).then(resolve);
|
|
196
185
|
});
|
|
197
186
|
}
|
|
198
187
|
preUpdate() {
|
|
199
|
-
return
|
|
188
|
+
return pre3dTilesUpdate.bind(this)();
|
|
200
189
|
}
|
|
201
190
|
update(context, layer, node) {
|
|
202
191
|
return update(context, layer, node);
|
|
@@ -296,7 +285,7 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
296
285
|
});
|
|
297
286
|
} else {
|
|
298
287
|
// first occurence
|
|
299
|
-
const c3DTileFeature = new
|
|
288
|
+
const c3DTileFeature = new C3DTFeature(tileContent.tileId, currentBatchId, [{
|
|
300
289
|
start,
|
|
301
290
|
count
|
|
302
291
|
}],
|
|
@@ -427,7 +416,7 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
427
416
|
object3d.geometry.addGroup(group.start, group.count, materialIndex);
|
|
428
417
|
});
|
|
429
418
|
}
|
|
430
|
-
|
|
419
|
+
optimizeGeometryGroups(object3d);
|
|
431
420
|
|
|
432
421
|
// record material(s) used in object3d
|
|
433
422
|
if (object3d.material instanceof Array) {
|
|
@@ -462,5 +451,4 @@ class C3DTilesLayer extends _GeometryLayer.default {
|
|
|
462
451
|
return this._style;
|
|
463
452
|
}
|
|
464
453
|
}
|
|
465
|
-
|
|
466
|
-
exports.default = _default;
|
|
454
|
+
export default C3DTilesLayer;
|
package/lib/Layer/ColorLayer.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import RasterLayer from "./RasterLayer.js";
|
|
2
|
+
import { updateLayeredMaterialNodeImagery } from "../Process/LayeredMaterialNodeProcessing.js";
|
|
3
|
+
import { RasterColorTile } from "../Renderer/RasterTile.js";
|
|
4
|
+
import { deprecatedColorLayerOptions } from "../Core/Deprecated/Undeprecator.js";
|
|
2
5
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _RasterLayer = _interopRequireDefault(require("./RasterLayer"));
|
|
9
|
-
var _LayeredMaterialNodeProcessing = require("../Process/LayeredMaterialNodeProcessing");
|
|
10
|
-
var _RasterTile = require("../Renderer/RasterTile");
|
|
11
|
-
var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
12
6
|
/**
|
|
13
7
|
* Fires when the visiblity of the layer has changed.
|
|
14
8
|
* @event ColorLayer#visible-property-changed
|
|
@@ -22,6 +16,7 @@ var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
|
22
16
|
* the layer changed in the view it is attached to.
|
|
23
17
|
* @event ColorLayer#sequence-property-changed
|
|
24
18
|
*/
|
|
19
|
+
|
|
25
20
|
/**
|
|
26
21
|
* @property {boolean} isColorLayer - Used to checkout whether this layer is a
|
|
27
22
|
* ColorLayer. Default is true. You should not change this, as it is used
|
|
@@ -50,7 +45,7 @@ var _Undeprecator = require("../Core/Deprecated/Undeprecator");
|
|
|
50
45
|
* * `2`: unused.
|
|
51
46
|
* * `3`: could be used by your own glsl code.
|
|
52
47
|
*/
|
|
53
|
-
class ColorLayer extends
|
|
48
|
+
class ColorLayer extends RasterLayer {
|
|
54
49
|
/**
|
|
55
50
|
* A simple layer, usually managing a texture to display on a view. For example,
|
|
56
51
|
* it can be an aerial view of the ground or a simple transparent layer with the
|
|
@@ -97,7 +92,7 @@ class ColorLayer extends _RasterLayer.default {
|
|
|
97
92
|
*/
|
|
98
93
|
constructor(id) {
|
|
99
94
|
let config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
100
|
-
|
|
95
|
+
deprecatedColorLayerOptions(config);
|
|
101
96
|
super(id, config);
|
|
102
97
|
this.isColorLayer = true;
|
|
103
98
|
this.defineLayerProperty('visible', true);
|
|
@@ -121,15 +116,14 @@ class ColorLayer extends _RasterLayer.default {
|
|
|
121
116
|
* @return {RasterColorTile} The raster color node added.
|
|
122
117
|
*/
|
|
123
118
|
setupRasterNode(node) {
|
|
124
|
-
const rasterColorNode = new
|
|
119
|
+
const rasterColorNode = new RasterColorTile(node.material, this);
|
|
125
120
|
node.material.addLayer(rasterColorNode);
|
|
126
121
|
// set up ColorLayer ordering.
|
|
127
122
|
node.material.setSequence(this.parent.colorLayersOrder);
|
|
128
123
|
return rasterColorNode;
|
|
129
124
|
}
|
|
130
125
|
update(context, layer, node, parent) {
|
|
131
|
-
return
|
|
126
|
+
return updateLayeredMaterialNodeImagery(context, this, node, parent);
|
|
132
127
|
}
|
|
133
128
|
}
|
|
134
|
-
|
|
135
|
-
exports.default = _default;
|
|
129
|
+
export default ColorLayer;
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import RasterLayer from "./RasterLayer.js";
|
|
2
|
+
import { updateLayeredMaterialNodeElevation } from "../Process/LayeredMaterialNodeProcessing.js";
|
|
3
|
+
import { RasterElevationTile } from "../Renderer/RasterTile.js";
|
|
2
4
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _RasterLayer = _interopRequireDefault(require("./RasterLayer"));
|
|
9
|
-
var _LayeredMaterialNodeProcessing = require("../Process/LayeredMaterialNodeProcessing");
|
|
10
|
-
var _RasterTile = require("../Renderer/RasterTile");
|
|
11
5
|
/**
|
|
12
6
|
* @property {boolean} isElevationLayer - Used to checkout whether this layer is
|
|
13
7
|
* an ElevationLayer. Default is true. You should not change this, as it is used
|
|
@@ -29,7 +23,7 @@ var _RasterTile = require("../Renderer/RasterTile");
|
|
|
29
23
|
* @property {number} colorTextureElevationMinZ - elevation minimum in `useColorTextureElevation` mode.
|
|
30
24
|
* @property {number} colorTextureElevationMaxZ - elevation maximum in `useColorTextureElevation` mode.
|
|
31
25
|
*/
|
|
32
|
-
class ElevationLayer extends
|
|
26
|
+
class ElevationLayer extends RasterLayer {
|
|
33
27
|
/**
|
|
34
28
|
* A simple layer, managing an elevation texture to add some reliefs on the
|
|
35
29
|
* plane or globe view for example.
|
|
@@ -86,7 +80,7 @@ class ElevationLayer extends _RasterLayer.default {
|
|
|
86
80
|
* @return {RasterElevationTile} The raster elevation node added.
|
|
87
81
|
*/
|
|
88
82
|
setupRasterNode(node) {
|
|
89
|
-
const rasterElevationNode = new
|
|
83
|
+
const rasterElevationNode = new RasterElevationTile(node.material, this);
|
|
90
84
|
node.material.addLayer(rasterElevationNode);
|
|
91
85
|
node.material.setSequenceElevation(this.id);
|
|
92
86
|
// bounding box initialisation
|
|
@@ -109,8 +103,7 @@ class ElevationLayer extends _RasterLayer.default {
|
|
|
109
103
|
return rasterElevationNode;
|
|
110
104
|
}
|
|
111
105
|
update(context, layer, node, parent) {
|
|
112
|
-
return
|
|
106
|
+
return updateLayeredMaterialNodeElevation(context, this, node, parent);
|
|
113
107
|
}
|
|
114
108
|
}
|
|
115
|
-
|
|
116
|
-
exports.default = _default;
|
|
109
|
+
export default ElevationLayer;
|
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _EntwinePointTileNode = _interopRequireDefault(require("../Core/EntwinePointTileNode"));
|
|
10
|
-
var _PointCloudLayer = _interopRequireDefault(require("./PointCloudLayer"));
|
|
11
|
-
var _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
|
|
12
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
-
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; }
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import EntwinePointTileNode from "../Core/EntwinePointTileNode.js";
|
|
3
|
+
import PointCloudLayer from "./PointCloudLayer.js";
|
|
4
|
+
import Extent from "../Core/Geographic/Extent.js";
|
|
14
5
|
const bboxMesh = new THREE.Mesh();
|
|
15
6
|
const box3 = new THREE.Box3();
|
|
16
7
|
bboxMesh.geometry.boundingBox = box3;
|
|
@@ -20,7 +11,7 @@ bboxMesh.geometry.boundingBox = box3;
|
|
|
20
11
|
* layer is a EntwinePointTileLayer. Default is `true`. You should not change
|
|
21
12
|
* this, as it is used internally for optimisation.
|
|
22
13
|
*/
|
|
23
|
-
class EntwinePointTileLayer extends
|
|
14
|
+
class EntwinePointTileLayer extends PointCloudLayer {
|
|
24
15
|
/**
|
|
25
16
|
* Constructs a new instance of Entwine Point Tile layer.
|
|
26
17
|
*
|
|
@@ -58,12 +49,12 @@ class EntwinePointTileLayer extends _PointCloudLayer.default {
|
|
|
58
49
|
this.scale = new THREE.Vector3(1, 1, 1);
|
|
59
50
|
const resolve = this.addInitializationStep();
|
|
60
51
|
this.whenReady = this.source.whenReady.then(() => {
|
|
61
|
-
this.root = new
|
|
52
|
+
this.root = new EntwinePointTileNode(0, 0, 0, 0, this, -1);
|
|
62
53
|
this.root.bbox.min.fromArray(this.source.boundsConforming, 0);
|
|
63
54
|
this.root.bbox.max.fromArray(this.source.boundsConforming, 3);
|
|
64
55
|
this.minElevationRange = this.source.boundsConforming[2];
|
|
65
56
|
this.maxElevationRange = this.source.boundsConforming[5];
|
|
66
|
-
this.extent =
|
|
57
|
+
this.extent = Extent.fromBox3(config.crs || 'EPSG:4326', this.root.bbox);
|
|
67
58
|
return this.root.loadOctree().then(resolve);
|
|
68
59
|
});
|
|
69
60
|
}
|
|
@@ -71,5 +62,4 @@ class EntwinePointTileLayer extends _PointCloudLayer.default {
|
|
|
71
62
|
return this.source.spacing;
|
|
72
63
|
}
|
|
73
64
|
}
|
|
74
|
-
|
|
75
|
-
exports.default = _default;
|
|
65
|
+
export default EntwinePointTileLayer;
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { Group } from 'three';
|
|
2
|
+
import GeometryLayer from "./GeometryLayer.js";
|
|
3
|
+
import FeatureProcessing from "../Process/FeatureProcessing.js";
|
|
4
|
+
import Feature2Mesh from "../Converter/Feature2Mesh.js";
|
|
2
5
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _three = require("three");
|
|
9
|
-
var _GeometryLayer = _interopRequireDefault(require("./GeometryLayer"));
|
|
10
|
-
var _FeatureProcessing = _interopRequireDefault(require("../Process/FeatureProcessing"));
|
|
11
|
-
var _Feature2Mesh = _interopRequireDefault(require("../Converter/Feature2Mesh"));
|
|
12
6
|
/**
|
|
13
7
|
* `FeatureGeometryLayer` displays geographic vector data (geojson, kml...) in object 3D.
|
|
14
8
|
* `FeatureGeometryLayer` is a pre-configured `GeometryLayer` to load and convert vector data.
|
|
@@ -19,7 +13,7 @@ var _Feature2Mesh = _interopRequireDefault(require("../Converter/Feature2Mesh"))
|
|
|
19
13
|
* a FeatureGeometryLayer. Default is true. You should not change this, as it is used
|
|
20
14
|
* internally for optimisation.
|
|
21
15
|
*/
|
|
22
|
-
class FeatureGeometryLayer extends
|
|
16
|
+
class FeatureGeometryLayer extends GeometryLayer {
|
|
23
17
|
/**
|
|
24
18
|
* @constructor
|
|
25
19
|
* @extends GeometryLayer
|
|
@@ -52,11 +46,11 @@ class FeatureGeometryLayer extends _GeometryLayer.default {
|
|
|
52
46
|
*/
|
|
53
47
|
constructor(id) {
|
|
54
48
|
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
55
|
-
options.update =
|
|
56
|
-
options.convert =
|
|
49
|
+
options.update = FeatureProcessing.update;
|
|
50
|
+
options.convert = Feature2Mesh.convert({
|
|
57
51
|
batchId: options.batchId
|
|
58
52
|
});
|
|
59
|
-
super(id, options.object3d || new
|
|
53
|
+
super(id, options.object3d || new Group(), options);
|
|
60
54
|
this.isFeatureGeometryLayer = true;
|
|
61
55
|
this.accurate = options.accurate ?? true;
|
|
62
56
|
this.buildExtent = !this.accurate;
|
|
@@ -67,5 +61,4 @@ class FeatureGeometryLayer extends _GeometryLayer.default {
|
|
|
67
61
|
}
|
|
68
62
|
}
|
|
69
63
|
}
|
|
70
|
-
|
|
71
|
-
exports.default = _default;
|
|
64
|
+
export default FeatureGeometryLayer;
|
package/lib/Layer/GeoidLayer.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
exports.geoidLayerIsVisible = geoidLayerIsVisible;
|
|
9
|
-
var _Layer = _interopRequireDefault(require("./Layer"));
|
|
10
|
-
var _LayerUpdateState = _interopRequireDefault(require("./LayerUpdateState"));
|
|
11
|
-
function geoidLayerIsVisible(tilelayer) {
|
|
1
|
+
import Layer from "./Layer.js";
|
|
2
|
+
import LayerUpdateState from "./LayerUpdateState.js";
|
|
3
|
+
export function geoidLayerIsVisible(tilelayer) {
|
|
12
4
|
var _tilelayer$attachedLa;
|
|
13
5
|
return tilelayer === null || tilelayer === void 0 ? void 0 : (_tilelayer$attachedLa = tilelayer.attachedLayers.filter(l => l.isGeoidLayer)[0]) === null || _tilelayer$attachedLa === void 0 ? void 0 : _tilelayer$attachedLa.visible;
|
|
14
6
|
}
|
|
@@ -28,7 +20,7 @@ function geoidLayerIsVisible(tilelayer) {
|
|
|
28
20
|
* }),
|
|
29
21
|
* });
|
|
30
22
|
*/
|
|
31
|
-
class GeoidLayer extends
|
|
23
|
+
class GeoidLayer extends Layer {
|
|
32
24
|
/**
|
|
33
25
|
* Creates a new instance of `GeoidLayer`.
|
|
34
26
|
*
|
|
@@ -68,7 +60,7 @@ class GeoidLayer extends _Layer.default {
|
|
|
68
60
|
return;
|
|
69
61
|
}
|
|
70
62
|
if (node.layerUpdateState[layer.id] === undefined) {
|
|
71
|
-
node.layerUpdateState[layer.id] = new
|
|
63
|
+
node.layerUpdateState[layer.id] = new LayerUpdateState();
|
|
72
64
|
const updateNodeZ = () => this.updateNodeZ(node);
|
|
73
65
|
layer.addEventListener('visible-property-changed', updateNodeZ);
|
|
74
66
|
node.addEventListener('dispose', () => {
|
|
@@ -86,5 +78,4 @@ class GeoidLayer extends _Layer.default {
|
|
|
86
78
|
});
|
|
87
79
|
}
|
|
88
80
|
}
|
|
89
|
-
|
|
90
|
-
exports.default = _default;
|
|
81
|
+
export default GeoidLayer;
|