itowns 2.42.1-next.2 → 2.42.1-next.20

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.
Files changed (180) hide show
  1. package/dist/debug.js +1 -1
  2. package/dist/debug.js.map +1 -1
  3. package/dist/itowns.js +1 -1
  4. package/dist/itowns.js.map +1 -1
  5. package/dist/itowns_widgets.js +1 -1
  6. package/dist/itowns_widgets.js.map +1 -1
  7. package/examples/{.eslintrc.js → .eslintrc.cjs} +1 -1
  8. package/examples/effects_stereo.html +2 -2
  9. package/examples/entwine_simple_loader.html +24 -8
  10. package/examples/misc_collada.html +2 -2
  11. package/examples/misc_instancing.html +1 -1
  12. package/examples/source_file_gpx_3d.html +2 -2
  13. package/examples/source_stream_wfs_25d.html +11 -11
  14. package/examples/source_stream_wfs_3d.html +1 -1
  15. package/examples/vector_tile_3d_mesh.html +2 -2
  16. package/examples/vector_tile_raster_2d.html +1 -1
  17. package/examples/vector_tile_raster_3d.html +1 -1
  18. package/examples/view_25d_map.html +2 -2
  19. package/examples/view_3d_map.html +3 -3
  20. package/examples/view_3d_map_webxr.html +1 -1
  21. package/examples/view_3d_mns_map.html +3 -3
  22. package/examples/view_immersive.html +1 -1
  23. package/examples/view_multi_25d.html +2 -2
  24. package/examples/widgets_minimap.html +1 -1
  25. package/examples/widgets_searchbar.html +2 -2
  26. package/lib/Controls/FirstPersonControls.js +5 -12
  27. package/lib/Controls/FlyControls.js +4 -13
  28. package/lib/Controls/GlobeControls.js +33 -43
  29. package/lib/Controls/PlanarControls.js +9 -20
  30. package/lib/Controls/StateControl.js +2 -11
  31. package/lib/Controls/StreetControls.js +14 -24
  32. package/lib/Converter/Feature2Mesh.js +77 -70
  33. package/lib/Converter/Feature2Texture.js +15 -25
  34. package/lib/Converter/convertToTile.js +16 -26
  35. package/lib/Converter/textureConverter.js +9 -19
  36. package/lib/Core/3DTiles/C3DTBatchTable.js +5 -13
  37. package/lib/Core/3DTiles/C3DTBatchTableHierarchyExtension.js +1 -8
  38. package/lib/Core/3DTiles/C3DTBoundingVolume.js +17 -27
  39. package/lib/Core/3DTiles/C3DTExtensions.js +1 -8
  40. package/lib/Core/3DTiles/C3DTFeature.js +3 -10
  41. package/lib/Core/3DTiles/C3DTilesEnums.js +3 -11
  42. package/lib/Core/3DTiles/C3DTileset.js +7 -16
  43. package/lib/Core/3DTiles/utils/BinaryPropertyAccessor.js +5 -11
  44. package/lib/Core/AnimationPlayer.js +2 -11
  45. package/lib/Core/Deprecated/Undeprecator.js +8 -19
  46. package/lib/Core/EntwinePointTileNode.js +6 -16
  47. package/lib/Core/Feature.js +16 -30
  48. package/lib/Core/Geographic/CoordStars.js +3 -12
  49. package/lib/Core/Geographic/Coordinates.js +12 -22
  50. package/lib/Core/Geographic/Crs.js +7 -15
  51. package/lib/Core/Geographic/Extent.js +36 -47
  52. package/lib/Core/Geographic/GeoidGrid.js +6 -16
  53. package/lib/Core/Label.js +7 -17
  54. package/lib/Core/MainLoop.js +7 -16
  55. package/lib/Core/Math/Ellipsoid.js +6 -17
  56. package/lib/Core/Picking.js +10 -20
  57. package/lib/Core/PointCloudNode.js +2 -11
  58. package/lib/Core/PotreeNode.js +4 -13
  59. package/lib/Core/Prefab/Globe/Atmosphere.js +17 -26
  60. package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +6 -16
  61. package/lib/Core/Prefab/Globe/GlobeLayer.js +19 -28
  62. package/lib/Core/Prefab/Globe/SkyShader.js +2 -11
  63. package/lib/Core/Prefab/GlobeView.js +27 -37
  64. package/lib/Core/Prefab/Planar/PlanarLayer.js +11 -20
  65. package/lib/Core/Prefab/Planar/PlanarTileBuilder.js +6 -16
  66. package/lib/Core/Prefab/PlanarView.js +10 -20
  67. package/lib/Core/Prefab/TileBuilder.js +11 -20
  68. package/lib/Core/Prefab/computeBufferTileGeometry.js +11 -15
  69. package/lib/Core/Scheduler/Cache.js +2 -10
  70. package/lib/Core/Scheduler/CancelledCommandException.js +1 -8
  71. package/lib/Core/Scheduler/Scheduler.js +15 -23
  72. package/lib/Core/Style.js +26 -40
  73. package/lib/Core/System/Capabilities.js +2 -9
  74. package/lib/Core/TileGeometry.js +11 -14
  75. package/lib/Core/TileMesh.js +6 -15
  76. package/lib/Core/View.js +43 -53
  77. package/lib/Layer/C3DTilesLayer.js +29 -41
  78. package/lib/Layer/ColorLayer.js +10 -16
  79. package/lib/Layer/ElevationLayer.js +7 -14
  80. package/lib/Layer/EntwinePointTileLayer.js +11 -18
  81. package/lib/Layer/FeatureGeometryLayer.js +9 -16
  82. package/lib/Layer/GeoidLayer.js +6 -15
  83. package/lib/Layer/GeometryLayer.js +11 -17
  84. package/lib/Layer/InfoLayer.js +5 -14
  85. package/lib/Layer/LabelLayer.js +22 -32
  86. package/lib/Layer/Layer.js +16 -26
  87. package/lib/Layer/LayerUpdateState.js +1 -8
  88. package/lib/Layer/LayerUpdateStrategy.js +7 -18
  89. package/lib/Layer/OrientedImageLayer.js +15 -25
  90. package/lib/Layer/PointCloudLayer.js +27 -24
  91. package/lib/Layer/PotreeLayer.js +8 -18
  92. package/lib/Layer/RasterLayer.js +9 -17
  93. package/lib/Layer/ReferencingLayerProperties.js +1 -8
  94. package/lib/Layer/TiledGeometryLayer.js +37 -33
  95. package/lib/Main.js +86 -707
  96. package/lib/MainBundle.js +4 -34
  97. package/lib/Parser/B3dmParser.js +80 -131
  98. package/lib/Parser/CameraCalibrationParser.js +5 -14
  99. package/lib/Parser/GDFParser.js +11 -22
  100. package/lib/Parser/GLTFParser.js +88 -0
  101. package/lib/Parser/GTXParser.js +9 -21
  102. package/lib/Parser/GeoJsonParser.js +14 -22
  103. package/lib/Parser/GpxParser.js +7 -14
  104. package/lib/Parser/ISGParser.js +19 -28
  105. package/lib/Parser/KMLParser.js +7 -14
  106. package/lib/Parser/LASLoader.js +31 -21
  107. package/lib/Parser/LASParser.js +10 -17
  108. package/lib/Parser/MapBoxUrlParser.js +2 -9
  109. package/lib/Parser/PntsParser.js +4 -14
  110. package/lib/Parser/PotreeBinParser.js +8 -16
  111. package/lib/Parser/PotreeCinParser.js +3 -12
  112. package/lib/Parser/ShapefileParser.js +11 -18
  113. package/lib/Parser/VectorTileParser.js +23 -31
  114. package/lib/Parser/XbilParser.js +5 -13
  115. package/lib/Parser/deprecated/LegacyGLTFLoader.js +2 -12
  116. package/lib/Process/3dTilesProcessing.js +14 -27
  117. package/lib/Process/FeatureProcessing.js +14 -22
  118. package/lib/Process/LayeredMaterialNodeProcessing.js +19 -28
  119. package/lib/Process/ObjectRemovalHelper.js +2 -9
  120. package/lib/Process/handlerNodeError.js +1 -7
  121. package/lib/Provider/3dTilesProvider.js +32 -29
  122. package/lib/Provider/DataSourceProvider.js +2 -9
  123. package/lib/Provider/Fetcher.js +37 -13
  124. package/lib/Provider/PointCloudProvider.js +7 -19
  125. package/lib/Provider/TileProvider.js +4 -12
  126. package/lib/Provider/URLBuilder.js +4 -12
  127. package/lib/Renderer/Camera.js +7 -17
  128. package/lib/Renderer/Color.js +3 -11
  129. package/lib/Renderer/ColorLayersOrdering.js +14 -22
  130. package/lib/Renderer/CommonMaterial.js +3 -12
  131. package/lib/Renderer/Label2DRenderer.js +5 -16
  132. package/lib/Renderer/LayeredMaterial.js +27 -41
  133. package/lib/Renderer/OBB.js +12 -21
  134. package/lib/Renderer/OrientedImageCamera.js +2 -11
  135. package/lib/Renderer/OrientedImageMaterial.js +7 -17
  136. package/lib/Renderer/PointsMaterial.js +223 -84
  137. package/lib/Renderer/RasterTile.js +18 -30
  138. package/lib/Renderer/RenderMode.js +2 -9
  139. package/lib/Renderer/Shader/ShaderChunk.js +2 -11
  140. package/lib/Renderer/Shader/ShaderUtils.js +2 -9
  141. package/lib/Renderer/SphereHelper.js +2 -11
  142. package/lib/Renderer/WebXR.js +2 -11
  143. package/lib/Renderer/c3DEngine.js +18 -28
  144. package/lib/Source/C3DTilesGoogleSource.js +76 -0
  145. package/lib/Source/C3DTilesIonSource.js +6 -13
  146. package/lib/Source/C3DTilesSource.js +5 -12
  147. package/lib/Source/EntwinePointTileSource.js +12 -19
  148. package/lib/Source/FileSource.js +7 -14
  149. package/lib/Source/OrientedImageSource.js +6 -14
  150. package/lib/Source/PotreeSource.js +9 -16
  151. package/lib/Source/Source.js +26 -39
  152. package/lib/Source/TMSSource.js +11 -22
  153. package/lib/Source/VectorTilesSource.js +75 -34
  154. package/lib/Source/WFSSource.js +7 -14
  155. package/lib/Source/WMSSource.js +5 -12
  156. package/lib/Source/WMTSSource.js +3 -10
  157. package/lib/ThreeExtended/capabilities/WebGL.js +1 -8
  158. package/lib/ThreeExtended/libs/ktx-parse.module.js +2 -256
  159. package/lib/ThreeExtended/libs/zstddec.module.js +2 -8
  160. package/lib/ThreeExtended/loaders/DDSLoader.js +10 -16
  161. package/lib/ThreeExtended/loaders/DRACOLoader.js +14 -19
  162. package/lib/ThreeExtended/loaders/GLTFLoader.js +124 -129
  163. package/lib/ThreeExtended/loaders/KTX2Loader.js +73 -78
  164. package/lib/ThreeExtended/utils/BufferGeometryUtils.js +40 -59
  165. package/lib/ThreeExtended/utils/WorkerPool.js +2 -9
  166. package/lib/Utils/CameraUtils.js +32 -44
  167. package/lib/Utils/DEMUtils.js +8 -19
  168. package/lib/Utils/FeaturesUtils.js +8 -16
  169. package/lib/Utils/Gradients.js +16 -0
  170. package/lib/Utils/OrientationUtils.js +8 -18
  171. package/lib/Utils/ThreeUtils.js +2 -9
  172. package/lib/Utils/gui/C3DTilesStyle.js +7 -15
  173. package/lib/Utils/gui/Main.js +7 -48
  174. package/lib/Utils/gui/Minimap.js +12 -20
  175. package/lib/Utils/gui/Navigation.js +6 -14
  176. package/lib/Utils/gui/Scale.js +11 -19
  177. package/lib/Utils/gui/Searchbar.js +5 -13
  178. package/lib/Utils/gui/Widget.js +1 -8
  179. package/lib/Utils/placeObjectOnGround.js +13 -23
  180. package/package.json +13 -8
@@ -1,21 +1,14 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _Layer = _interopRequireDefault(require("./Layer"));
9
- var _LayeredMaterialNodeProcessing = require("../Process/LayeredMaterialNodeProcessing");
10
- var _textureConverter = _interopRequireDefault(require("../Converter/textureConverter"));
11
- var _Cache = require("../Core/Scheduler/Cache");
12
- class RasterLayer extends _Layer.default {
1
+ import Layer from "./Layer.js";
2
+ import { removeLayeredMaterialNodeLayer } from "../Process/LayeredMaterialNodeProcessing.js";
3
+ import textureConverter from "../Converter/textureConverter.js";
4
+ import { CACHE_POLICIES } from "../Core/Scheduler/Cache.js";
5
+ class RasterLayer extends Layer {
13
6
  constructor(id, config) {
14
- config.cacheLifeTime = config.cacheLifeTime ?? _Cache.CACHE_POLICIES.TEXTURE;
7
+ config.cacheLifeTime = config.cacheLifeTime ?? CACHE_POLICIES.TEXTURE;
15
8
  super(id, config);
16
9
  }
17
10
  convert(data, extentDestination) {
18
- return _textureConverter.default.convert(data, extentDestination, this);
11
+ return textureConverter.convert(data, extentDestination, this);
19
12
  }
20
13
 
21
14
  /**
@@ -27,9 +20,8 @@ class RasterLayer extends _Layer.default {
27
20
  this.cache.clear();
28
21
  }
29
22
  for (const root of this.parent.level0Nodes) {
30
- root.traverse((0, _LayeredMaterialNodeProcessing.removeLayeredMaterialNodeLayer)(this.id));
23
+ root.traverse(removeLayeredMaterialNodeLayer(this.id));
31
24
  }
32
25
  }
33
26
  }
34
- var _default = RasterLayer;
35
- exports.default = _default;
27
+ export default RasterLayer;
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
1
  // next step is move these properties to Style class
8
2
  // and hide transparent mechanism
9
3
 
@@ -60,5 +54,4 @@ function ReferLayerProperties(material, layer) {
60
54
  }
61
55
  return material;
62
56
  }
63
- var _default = ReferLayerProperties;
64
- exports.default = _default;
57
+ export default ReferLayerProperties;
@@ -1,21 +1,12 @@
1
- "use strict";
2
-
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 = _interopRequireWildcard(require("three"));
9
- var _GeometryLayer = _interopRequireDefault(require("./GeometryLayer"));
10
- var _InfoLayer = require("./InfoLayer");
11
- var _Picking = _interopRequireDefault(require("../Core/Picking"));
12
- var _convertToTile = _interopRequireDefault(require("../Converter/convertToTile"));
13
- var _ObjectRemovalHelper = _interopRequireDefault(require("../Process/ObjectRemovalHelper"));
14
- var _LayeredMaterialNodeProcessing = require("../Process/LayeredMaterialNodeProcessing");
15
- var _Layer = require("./Layer");
16
- var _Cache = require("../Core/Scheduler/Cache");
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 { InfoTiledGeometryLayer } from "./InfoLayer.js";
4
+ import Picking from "../Core/Picking.js";
5
+ import convertToTile from "../Converter/convertToTile.js";
6
+ import ObjectRemovalHelper from "../Process/ObjectRemovalHelper.js";
7
+ import { SIZE_DIAGONAL_TEXTURE } from "../Process/LayeredMaterialNodeProcessing.js";
8
+ import { ImageryLayers } from "./Layer.js";
9
+ import { CACHE_POLICIES } from "../Core/Scheduler/Cache.js";
19
10
  const subdivisionVector = new THREE.Vector3();
20
11
  const boundingSphereCenter = new THREE.Vector3();
21
12
 
@@ -24,9 +15,10 @@ const boundingSphereCenter = new THREE.Vector3();
24
15
  * @property {boolean} isTiledGeometryLayer - Used to checkout whether this
25
16
  * layer is a TiledGeometryLayer. Default is true. You should not change this,
26
17
  * as it is used internally for optimisation.
27
- *
18
+ * @property {boolean} hideSkirt (default false) - Used to hide the skirt (tile borders).
19
+ * Useful when the layer opacity < 1
28
20
  */
29
- class TiledGeometryLayer extends _GeometryLayer.default {
21
+ class TiledGeometryLayer extends GeometryLayer {
30
22
  /**
31
23
  * A layer extending the {@link GeometryLayer}, but with a tiling notion.
32
24
  *
@@ -69,17 +61,18 @@ class TiledGeometryLayer extends _GeometryLayer.default {
69
61
  */
70
62
  constructor(id, object3d, schemeTile, builder, config) {
71
63
  // cacheLifeTime = CACHE_POLICIES.INFINITE because the cache is handled by the builder
72
- config.cacheLifeTime = _Cache.CACHE_POLICIES.INFINITE;
64
+ config.cacheLifeTime = CACHE_POLICIES.INFINITE;
73
65
  config.source = false;
74
66
  super(id, object3d, config);
75
67
  this.isTiledGeometryLayer = true;
76
68
  // TODO : this should be add in a preprocess method specific to GeoidLayer.
77
69
  this.object3d.geoidHeight = 0;
78
70
  this.protocol = 'tile';
71
+ this._hideSkirt = false;
79
72
  this.sseSubdivisionThreshold = this.sseSubdivisionThreshold || 1.0;
80
73
  this.schemeTile = schemeTile;
81
74
  this.builder = builder;
82
- this.info = new _InfoLayer.InfoTiledGeometryLayer(this);
75
+ this.info = new InfoTiledGeometryLayer(this);
83
76
  if (!this.schemeTile) {
84
77
  throw new Error(`Cannot init tiled layer without schemeTile for layer ${this.id}`);
85
78
  }
@@ -96,9 +89,21 @@ class TiledGeometryLayer extends _GeometryLayer.default {
96
89
  this.object3d.add(...level0s);
97
90
  this.object3d.updateMatrixWorld();
98
91
  }));
99
- this.maxScreenSizeNode = this.sseSubdivisionThreshold * (_LayeredMaterialNodeProcessing.SIZE_DIAGONAL_TEXTURE * 2);
92
+ this.maxScreenSizeNode = this.sseSubdivisionThreshold * (SIZE_DIAGONAL_TEXTURE * 2);
93
+ }
94
+ get hideSkirt() {
95
+ return this._hideSkirt;
96
+ }
97
+ set hideSkirt(value) {
98
+ this._hideSkirt = value;
99
+ for (const node of this.level0Nodes) {
100
+ node.traverse(obj => {
101
+ if (obj.isTileMesh) {
102
+ obj.geometry.hideSkirt = value;
103
+ }
104
+ });
105
+ }
100
106
  }
101
-
102
107
  /**
103
108
  * Picking method for this layer. It uses the {@link Picking#pickTilesAt}
104
109
  * method.
@@ -115,7 +120,7 @@ class TiledGeometryLayer extends _GeometryLayer.default {
115
120
  pickObjectsAt(view, coordinates) {
116
121
  let radius = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.options.defaultPickingRadius;
117
122
  let target = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
118
- return _Picking.default.pickTilesAt(view, coordinates, radius, this, target);
123
+ return Picking.pickTilesAt(view, coordinates, radius, this, target);
119
124
  }
120
125
 
121
126
  /**
@@ -163,7 +168,7 @@ class TiledGeometryLayer extends _GeometryLayer.default {
163
168
  // Prepare ColorLayer sequence order
164
169
  // In this moment, there is only one color layers sequence, because they are attached to tileLayer.
165
170
  // In future, the sequence must be returned by parent geometry layer.
166
- this.colorLayersOrder = _Layer.ImageryLayers.getColorLayersIdOrderedBySequence(context.colorLayers);
171
+ this.colorLayersOrder = ImageryLayers.getColorLayersIdOrderedBySequence(context.colorLayers);
167
172
  let commonAncestor;
168
173
  for (const source of sources.values()) {
169
174
  if (source.isCamera) {
@@ -211,7 +216,7 @@ class TiledGeometryLayer extends _GeometryLayer.default {
211
216
  */
212
217
  update(context, layer, node) {
213
218
  if (!node.parent) {
214
- return _ObjectRemovalHelper.default.removeChildrenAndCleanup(this, node);
219
+ return ObjectRemovalHelper.removeChildrenAndCleanup(this, node);
215
220
  }
216
221
  // early exit if parent' subdivision is in progress
217
222
  if (node.parent.pendingSubdivision) {
@@ -236,17 +241,17 @@ class TiledGeometryLayer extends _GeometryLayer.default {
236
241
  }
237
242
  if (node.material.visible) {
238
243
  if (!requestChildrenUpdate) {
239
- return _ObjectRemovalHelper.default.removeChildren(this, node);
244
+ return ObjectRemovalHelper.removeChildren(this, node);
240
245
  }
241
246
  }
242
247
  return requestChildrenUpdate ? node.children.filter(n => n.layer == this) : undefined;
243
248
  }
244
249
  node.material.visible = false;
245
250
  this.info.update(node);
246
- return _ObjectRemovalHelper.default.removeChildren(this, node);
251
+ return ObjectRemovalHelper.removeChildren(this, node);
247
252
  }
248
253
  convert(requester, extent) {
249
- return _convertToTile.default.convert(requester, extent, this);
254
+ return convertToTile.convert(requester, extent, this);
250
255
  }
251
256
  countColorLayersTextures() {
252
257
  return arguments.length;
@@ -403,9 +408,8 @@ class TiledGeometryLayer extends _GeometryLayer.default {
403
408
 
404
409
  // The screen space error is calculated to have a correct texture display.
405
410
  // For the projection of a texture's texel to be less than or equal to one pixel
406
- const sse = node.screenSize / (_LayeredMaterialNodeProcessing.SIZE_DIAGONAL_TEXTURE * 2);
411
+ const sse = node.screenSize / (SIZE_DIAGONAL_TEXTURE * 2);
407
412
  return this.sseSubdivisionThreshold < sse;
408
413
  }
409
414
  }
410
- var _default = TiledGeometryLayer;
411
- exports.default = _default;
415
+ export default TiledGeometryLayer;