itowns 2.35.0 → 2.37.0

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 (110) hide show
  1. package/CONTRIBUTING.md +30 -17
  2. package/CONTRIBUTORS.md +1 -0
  3. package/changelog.md +146 -0
  4. package/dist/debug.js +1 -1
  5. package/dist/debug.js.LICENSE.txt +1 -1
  6. package/dist/debug.js.map +1 -1
  7. package/dist/itowns.js +1 -1
  8. package/dist/itowns.js.map +1 -1
  9. package/dist/itowns_widgets.js +2 -0
  10. package/dist/itowns_widgets.js.map +1 -0
  11. package/examples/3dtiles_basic.html +2 -2
  12. package/examples/config.json +25 -6
  13. package/examples/css/widgets.css +248 -0
  14. package/examples/geoid_geoidLayer.html +102 -0
  15. package/examples/images/compass.svg +60 -0
  16. package/examples/images/widget-logo.svg +66 -0
  17. package/examples/itowns-potree.html +252 -0
  18. package/examples/js/GUI/GuiTools.js +17 -0
  19. package/examples/js/Scale.js +1 -0
  20. package/examples/js/plugins/CSVnVRTParser.js +0 -1
  21. package/examples/layers/JSONLayers/Administrative.json +1 -1
  22. package/examples/layers/JSONLayers/Cada.json +1 -1
  23. package/examples/layers/JSONLayers/EtatMajor.json +1 -1
  24. package/examples/layers/JSONLayers/IGN_MNT.json +1 -1
  25. package/examples/layers/JSONLayers/IGN_MNT_HIGHRES.json +1 -1
  26. package/examples/layers/JSONLayers/WORLD_DTM.json +1 -1
  27. package/examples/misc_custom_label.html +0 -2
  28. package/examples/plugins_vrt.html +0 -1
  29. package/examples/source_file_from_fetched_data.html +90 -0
  30. package/examples/source_file_from_format.html +85 -0
  31. package/examples/source_file_from_methods.html +87 -0
  32. package/examples/source_file_from_parsed_data.html +104 -0
  33. package/examples/source_file_geojson_raster.html +21 -48
  34. package/examples/source_file_gpx_raster.html +28 -36
  35. package/examples/source_file_kml_raster.html +1 -4
  36. package/examples/source_file_shapefile.html +39 -35
  37. package/examples/source_stream_wfs_25d.html +29 -29
  38. package/examples/source_stream_wfs_3d.html +21 -12
  39. package/examples/source_stream_wfs_raster.html +20 -20
  40. package/examples/view_25d_map.html +28 -0
  41. package/examples/view_immersive.html +13 -14
  42. package/examples/view_multi_25d.html +1 -1
  43. package/examples/widgets_minimap.html +122 -0
  44. package/examples/widgets_navigation.html +119 -0
  45. package/lib/Controls/FirstPersonControls.js +10 -1
  46. package/lib/Controls/GlobeControls.js +26 -11
  47. package/lib/Controls/PlanarControls.js +1 -1
  48. package/lib/Converter/Feature2Mesh.js +1 -0
  49. package/lib/Converter/Feature2Texture.js +2 -2
  50. package/lib/Converter/convertToTile.js +6 -2
  51. package/lib/Core/3DTiles/C3DTBoundingVolume.js +4 -1
  52. package/lib/Core/Deprecated/Undeprecator.js +1 -1
  53. package/lib/Core/Feature.js +42 -42
  54. package/lib/Core/Geographic/Coordinates.js +56 -0
  55. package/lib/Core/Geographic/Crs.js +15 -0
  56. package/lib/Core/Geographic/Extent.js +100 -12
  57. package/lib/Core/Geographic/GeoidGrid.js +143 -0
  58. package/lib/Core/MainLoop.js +1 -1
  59. package/lib/Core/Math/Ellipsoid.js +27 -9
  60. package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +1 -1
  61. package/lib/Core/Prefab/Globe/SkyShader.js +3 -1
  62. package/lib/Core/Prefab/Planar/PlanarLayer.js +3 -1
  63. package/lib/Core/Prefab/PlanarView.js +1 -1
  64. package/lib/Core/Style.js +2 -1
  65. package/lib/Core/TileGeometry.js +3 -1
  66. package/lib/Core/TileMesh.js +11 -16
  67. package/lib/Core/View.js +43 -5
  68. package/lib/Layer/ElevationLayer.js +15 -18
  69. package/lib/Layer/FeatureGeometryLayer.js +3 -1
  70. package/lib/Layer/GeoidLayer.js +131 -0
  71. package/lib/Layer/InfoLayer.js +1 -1
  72. package/lib/Layer/LabelLayer.js +7 -1
  73. package/lib/Layer/Layer.js +1 -1
  74. package/lib/Layer/LayerUpdateStrategy.js +1 -1
  75. package/lib/Layer/PotreeLayer.js +3 -1
  76. package/lib/Layer/TiledGeometryLayer.js +3 -1
  77. package/lib/Main.js +214 -174
  78. package/lib/MainBundle.js +1 -1
  79. package/lib/Parser/B3dmParser.js +2 -1
  80. package/lib/Parser/GDFParser.js +118 -0
  81. package/lib/Parser/GTXParser.js +92 -0
  82. package/lib/Parser/ISGParser.js +121 -0
  83. package/lib/Parser/LASParser.js +3 -1
  84. package/lib/Parser/ShapefileParser.js +0 -1
  85. package/lib/Parser/VectorTileParser.js +1 -1
  86. package/lib/Parser/XbilParser.js +1 -1
  87. package/lib/Process/3dTilesProcessing.js +10 -10
  88. package/lib/Process/FeatureProcessing.js +3 -1
  89. package/lib/Process/LayeredMaterialNodeProcessing.js +7 -4
  90. package/lib/Process/ObjectRemovalHelper.js +5 -2
  91. package/lib/Provider/URLBuilder.js +1 -1
  92. package/lib/Renderer/Label2DRenderer.js +14 -11
  93. package/lib/Renderer/LayeredMaterial.js +4 -3
  94. package/lib/Renderer/OBB.js +20 -27
  95. package/lib/Renderer/PointsMaterial.js +5 -6
  96. package/lib/Renderer/RasterTile.js +23 -5
  97. package/lib/Renderer/Shader/ShaderChunk.js +3 -3
  98. package/lib/Renderer/Shader/ShaderUtils.js +4 -2
  99. package/lib/Source/C3DTilesSource.js +3 -1
  100. package/lib/Source/EntwinePointTileSource.js +3 -1
  101. package/lib/Source/FileSource.js +2 -7
  102. package/lib/Source/PotreeSource.js +3 -1
  103. package/lib/Source/Source.js +15 -10
  104. package/lib/Source/VectorTilesSource.js +19 -0
  105. package/lib/Source/WMTSSource.js +3 -1
  106. package/lib/ThreeExtended/loaders/GLTFLoader.js +239 -98
  107. package/lib/Utils/CameraUtils.js +12 -2
  108. package/lib/Utils/DEMUtils.js +3 -3
  109. package/lib/Utils/FeaturesUtils.js +8 -4
  110. package/package.json +25 -25
@@ -13,8 +13,6 @@ 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
-
18
16
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
19
17
 
20
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
@@ -78,7 +76,7 @@ var OBB = /*#__PURE__*/function (_THREE$Object3D) {
78
76
  max: 0,
79
77
  scale: 1.0
80
78
  };
81
- return (0, _possibleConstructorReturn2["default"])(_this, (0, _assertThisInitialized2["default"])(_this));
79
+ return _this;
82
80
  }
83
81
  /**
84
82
  * Creates a new instance of the object with same properties than original.
@@ -121,32 +119,24 @@ var OBB = /*#__PURE__*/function (_THREE$Object3D) {
121
119
  this.updateMatrixWorld(true);
122
120
  }
123
121
  /**
124
- * Update z min and z max of oriented bounding box
122
+ * Update z min, z max and z scale of oriented bounding box
125
123
  *
126
- * @param {number} min The minimum of oriented bounding box
127
- * @param {number} max The maximum of oriented bounding box
128
- * @param {number} scale
124
+ * @param {Object} [elevation={}]
125
+ * @param {number} [elevation.min] The minimum of oriented bounding box
126
+ * @param {number} [elevation.max] The maximum of oriented bounding box
127
+ * @param {number} [elevation.scale] The scale of oriented bounding box Z axis
129
128
  */
130
129
 
131
130
  }, {
132
131
  key: "updateZ",
133
- value: function updateZ(min, max) {
134
- var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.z.scale;
135
- this.z = {
136
- min: min,
137
- max: max,
138
- scale: scale,
139
- delta: Math.abs(max - min) * scale
140
- };
141
- this.box3D.min.z = this.natBox.min.z + min * scale;
142
- this.box3D.max.z = this.natBox.max.z + max * scale;
143
- }
144
- }, {
145
- key: "updateScaleZ",
146
- value: function updateScaleZ(scale) {
147
- if (scale > 0) {
148
- this.updateZ(this.z.min, this.z.max, scale);
149
- }
132
+ value: function updateZ() {
133
+ var elevation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
134
+ this.z.min = elevation.min !== undefined && elevation.min !== null ? elevation.min : this.z.min;
135
+ this.z.max = elevation.max !== undefined && elevation.max !== null ? elevation.max : this.z.max;
136
+ this.z.scale = elevation.scale > 0 ? elevation.scale : this.z.scale;
137
+ this.z.delta = Math.abs(this.z.max - this.z.min) * this.z.scale;
138
+ this.box3D.min.z = this.natBox.min.z + this.z.min * this.z.scale;
139
+ this.box3D.max.z = this.natBox.max.z + this.z.max * this.z.scale;
150
140
  }
151
141
  /**
152
142
  * Determines if the sphere is above the XY space of the box
@@ -189,7 +179,7 @@ var OBB = /*#__PURE__*/function (_THREE$Object3D) {
189
179
  position = _builder$computeShara.position; // Compute the minimum count of segment to build tile
190
180
 
191
181
 
192
- var segment = Math.max(Math.floor(sharableExtent.dimensions(dimension).x / 90 + 1), 2);
182
+ var segment = Math.max(Math.floor(sharableExtent.planarDimensions(dimension).x / 90 + 1), 2);
193
183
  var geometry = new _TileGeometry["default"]({
194
184
  extent: sharableExtent,
195
185
  level: 0,
@@ -200,13 +190,16 @@ var OBB = /*#__PURE__*/function (_THREE$Object3D) {
200
190
  obb.box3D.copy(geometry.boundingBox);
201
191
  obb.natBox.copy(geometry.boundingBox);
202
192
  this.copy(obb);
203
- this.updateZ(minHeight, maxHeight);
193
+ this.updateZ({
194
+ min: minHeight,
195
+ max: maxHeight
196
+ });
204
197
  this.position.copy(position);
205
198
  this.quaternion.copy(quaternion);
206
199
  this.updateMatrixWorld(true);
207
200
  } else if (!_Crs["default"].isTms(extent.crs) && _Crs["default"].isMetricUnit(extent.crs)) {
208
201
  extent.center(coord).toVector3(this.position);
209
- extent.dimensions(dimension);
202
+ extent.planarDimensions(dimension);
210
203
  size.set(dimension.x, dimension.y, Math.abs(maxHeight - minHeight));
211
204
  this.box3D.setFromCenterAndSize(center, size);
212
205
  this.updateMatrixWorld(true);
@@ -7,9 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports["default"] = exports.ClassificationScheme = exports.MODE = void 0;
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ exports["default"] = exports.MODE = exports.ClassificationScheme = void 0;
13
11
 
14
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
13
 
@@ -21,6 +19,8 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
21
19
 
22
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
21
 
22
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
+
24
24
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
25
25
 
26
26
  var THREE = _interopRequireWildcard(require("three"));
@@ -69,10 +69,9 @@ var white = new THREE.Color(1.0, 1.0, 1.0);
69
69
 
70
70
  var
71
71
  /* istanbul ignore next */
72
- Classification = function Classification() {
72
+ Classification = /*#__PURE__*/(0, _createClass2["default"])(function Classification() {
73
73
  (0, _classCallCheck2["default"])(this, Classification);
74
- };
75
-
74
+ });
76
75
  var ClassificationScheme = {
77
76
  DEFAULT: {
78
77
  0: {
@@ -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.RasterElevationTile = exports.RasterColorTile = exports["default"] = exports.EMPTY_TEXTURE_ZOOM = void 0;
10
+ exports["default"] = exports.RasterElevationTile = exports.RasterColorTile = exports.EMPTY_TEXTURE_ZOOM = void 0;
11
11
 
12
12
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
13
 
@@ -217,6 +217,11 @@ var RasterColorTile = /*#__PURE__*/function (_RasterTile) {
217
217
  get: function get() {
218
218
  return this.layer.effect_parameter;
219
219
  }
220
+ }, {
221
+ key: "transparent",
222
+ get: function get() {
223
+ return this.layer.transparent;
224
+ }
220
225
  }]);
221
226
  return RasterColorTile;
222
227
  }(RasterTile);
@@ -235,19 +240,18 @@ var RasterElevationTile = /*#__PURE__*/function (_RasterTile2) {
235
240
  _this2 = _super3.call(this, material, layer);
236
241
  var defaultEle = {
237
242
  bias: 0,
238
- scale: 1,
239
243
  mode: _LayeredMaterial.ELEVATION_MODES.DATA,
240
244
  zmin: 0,
241
245
  zmax: Infinity
242
246
  };
243
- var scaleFactor = 1.0; // Define elevation properties
247
+ _this2.scaleFactor = 1.0; // Define elevation properties
244
248
 
245
249
  if (layer.useRgbaTextureElevation) {
246
250
  defaultEle.mode = _LayeredMaterial.ELEVATION_MODES.RGBA;
247
251
  defaultEle.zmax = 5000;
248
252
  throw new Error('Restore this feature');
249
253
  } else if (layer.useColorTextureElevation) {
250
- scaleFactor = layer.colorTextureElevationMaxZ - layer.colorTextureElevationMinZ;
254
+ _this2.scaleFactor = layer.colorTextureElevationMaxZ - layer.colorTextureElevationMinZ;
251
255
  defaultEle.mode = _LayeredMaterial.ELEVATION_MODES.COLOR;
252
256
  defaultEle.bias = layer.colorTextureElevationMinZ;
253
257
  _this2.min = _this2.layer.colorTextureElevationMinZ;
@@ -258,14 +262,28 @@ var RasterElevationTile = /*#__PURE__*/function (_RasterTile2) {
258
262
  }
259
263
 
260
264
  _this2.bias = layer.bias || defaultEle.bias;
261
- _this2.scale = (layer.scale || defaultEle.scale) * scaleFactor;
262
265
  _this2.mode = layer.mode || defaultEle.mode;
263
266
  _this2.zmin = layer.zmin || defaultEle.zmin;
264
267
  _this2.zmax = layer.zmax || defaultEle.zmax;
268
+ layer.addEventListener('scale-property-changed', _this2._handlerCBEvent);
265
269
  return _this2;
266
270
  }
267
271
 
268
272
  (0, _createClass2["default"])(RasterElevationTile, [{
273
+ key: "scale",
274
+ get: function get() {
275
+ return this.layer.scale * this.scaleFactor;
276
+ }
277
+ }, {
278
+ key: "dispose",
279
+ value: function dispose(removeEvent) {
280
+ (0, _get2["default"])((0, _getPrototypeOf2["default"])(RasterElevationTile.prototype), "dispose", this).call(this, removeEvent);
281
+
282
+ if (removeEvent) {
283
+ this.layer.removeEventListener('scale-property-changed', this._handlerCBEvent);
284
+ }
285
+ }
286
+ }, {
269
287
  key: "initFromParent",
270
288
  value: function initFromParent(parent, extents) {
271
289
  (0, _get2["default"])((0, _getPrototypeOf2["default"])(RasterElevationTile.prototype), "initFromParent", this).call(this, parent, extents);
@@ -20,7 +20,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
20
20
  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; }
21
21
 
22
22
  /* babel-plugin-inline-import './Chunk/color_layers_pars_fragment.glsl' */
23
- var color_layers_pars_fragment = "struct Layer {\n int textureOffset;\n int crs;\n int effect_type;\n float effect_parameter;\n float opacity;\n};\n\n#include <itowns/custom_header_colorLayer>\n\nuniform sampler2D colorTextures[NUM_FS_TEXTURES];\nuniform vec4 colorOffsetScales[NUM_FS_TEXTURES];\nuniform Layer colorLayers[NUM_FS_TEXTURES];\nuniform int colorTextureCount;\n\nvec3 uvs[NUM_CRS];\n\nfloat getBorderDistance(vec2 uv) {\n vec2 p2 = min(uv, 1. -uv);\n return min(p2.x, p2.y);\n}\n\nfloat tolerance = 0.99;\n\nvec4 applyWhiteToInvisibleEffect(vec4 color, float intensity) {\n float a = dot(color.rgb, vec3(0.333333333));\n if (a >= tolerance) {\n color.a *= 1.0 - pow(abs(a), intensity);\n }\n return color;\n}\n\nvec4 applyLightColorToInvisibleEffect(vec4 color, float intensity) {\n float a = max(0.05,1. - length(color.xyz - 1.));\n color.a *= 1.0 - pow(abs(a), intensity);\n color.rgb *= color.rgb * color.rgb;\n return color;\n}\n\n#if defined(DEBUG)\nuniform bool showOutline;\nuniform vec3 outlineColors[NUM_CRS];\nuniform float outlineWidth;\n\nvec4 getOutlineColor(vec3 outlineColor, vec2 uv) {\n float alpha = 1. - clamp(getBorderDistance(uv) / outlineWidth, 0., 1.);\n return vec4(outlineColor, alpha);\n}\n#endif\n\nuniform float minBorderDistance;\nvec4 getLayerColor(int textureOffset, sampler2D tex, vec4 offsetScale, Layer layer) {\n if ( textureOffset >= colorTextureCount ) return vec4(0);\n\n vec3 uv;\n // #pragma unroll_loop\n for ( int i = 0; i < NUM_CRS; i ++ ) {\n if ( i == layer.crs ) uv = uvs[ i ];\n }\n\n float borderDistance = getBorderDistance(uv.xy);\n if (textureOffset != layer.textureOffset + int(uv.z) || borderDistance < minBorderDistance ) return vec4(0);\n vec4 color = texture2D(tex, pitUV(uv.xy, offsetScale));\n if (layer.effect_type == 1) {\n color.rgb /= color.a;\n color = applyLightColorToInvisibleEffect(color, layer.effect_parameter);\n } else if (layer.effect_type == 2) {\n color.rgb /= color.a;\n color = applyWhiteToInvisibleEffect(color, layer.effect_parameter);\n } else if (layer.effect_type == 3) {\n #include <itowns/custom_body_colorLayer>\n }\n color.a *= layer.opacity;\n return color;\n}\n";
23
+ var color_layers_pars_fragment = "struct Layer {\n int textureOffset;\n int crs;\n int effect_type;\n float effect_parameter;\n float opacity;\n bool transparent;\n};\n\n#include <itowns/custom_header_colorLayer>\n\nuniform sampler2D colorTextures[NUM_FS_TEXTURES];\nuniform vec4 colorOffsetScales[NUM_FS_TEXTURES];\nuniform Layer colorLayers[NUM_FS_TEXTURES];\nuniform int colorTextureCount;\n\nvec3 uvs[NUM_CRS];\n\nfloat getBorderDistance(vec2 uv) {\n vec2 p2 = min(uv, 1. -uv);\n return min(p2.x, p2.y);\n}\n\nfloat tolerance = 0.99;\n\nvec4 applyWhiteToInvisibleEffect(vec4 color, float intensity) {\n float a = dot(color.rgb, vec3(0.333333333));\n if (a >= tolerance) {\n color.a *= 1.0 - pow(abs(a), intensity);\n }\n return color;\n}\n\nvec4 applyLightColorToInvisibleEffect(vec4 color, float intensity) {\n float a = max(0.05,1. - length(color.xyz - 1.));\n color.a *= 1.0 - pow(abs(a), intensity);\n color.rgb *= color.rgb * color.rgb;\n return color;\n}\n\n#if defined(DEBUG)\nuniform bool showOutline;\nuniform vec3 outlineColors[NUM_CRS];\nuniform float outlineWidth;\n\nvec4 getOutlineColor(vec3 outlineColor, vec2 uv) {\n float alpha = 1. - clamp(getBorderDistance(uv) / outlineWidth, 0., 1.);\n return vec4(outlineColor, alpha);\n}\n#endif\n\nuniform float minBorderDistance;\nvec4 getLayerColor(int textureOffset, sampler2D tex, vec4 offsetScale, Layer layer) {\n if ( textureOffset >= colorTextureCount ) return vec4(0);\n\n vec3 uv;\n // #pragma unroll_loop\n for ( int i = 0; i < NUM_CRS; i ++ ) {\n if ( i == layer.crs ) uv = uvs[ i ];\n }\n\n float borderDistance = getBorderDistance(uv.xy);\n if (textureOffset != layer.textureOffset + int(uv.z) || borderDistance < minBorderDistance ) return vec4(0);\n vec4 color = texture2D(tex, pitUV(uv.xy, offsetScale));\n if (layer.effect_type == 3) {\n #include <itowns/custom_body_colorLayer>\n } else {\n if (layer.transparent && color.a != 0.0) {\n color.rgb /= color.a;\n }\n\n if (layer.effect_type == 1) {\n color = applyLightColorToInvisibleEffect(color, layer.effect_parameter);\n } else if (layer.effect_type == 2) {\n color = applyWhiteToInvisibleEffect(color, layer.effect_parameter);\n }\n }\n color.a *= layer.opacity;\n return color;\n}\n";
24
24
 
25
25
  /* babel-plugin-inline-import './Chunk/elevation_pars_vertex.glsl' */
26
26
  var elevation_pars_vertex = "#if NUM_VS_TEXTURES > 0\n struct Layer {\n float scale;\n float bias;\n int mode;\n float zmin;\n float zmax;\n };\n\n uniform Layer elevationLayers[NUM_VS_TEXTURES];\n uniform sampler2D elevationTextures[NUM_VS_TEXTURES];\n uniform vec4 elevationOffsetScales[NUM_VS_TEXTURES];\n uniform int elevationTextureCount;\n\n highp float decode32(highp vec4 rgba) {\n highp float Sign = 1.0 - step(128.0,rgba[0])*2.0;\n highp float Exponent = 2.0 * mod(rgba[0],128.0) + step(128.0,rgba[1]) - 127.0;\n highp float Mantissa = mod(rgba[1],128.0)*65536.0 + rgba[2]*256.0 +rgba[3] + float(0x800000);\n highp float Result = Sign * exp2(Exponent) * (Mantissa * exp2(-23.0 ));\n return Result;\n }\n\n float getElevationMode(vec2 uv, sampler2D tex, int mode) {\n if (mode == ELEVATION_RGBA)\n return decode32(texture2D( tex, uv ).abgr * 255.0);\n if (mode == ELEVATION_DATA || mode == ELEVATION_COLOR)\n #if defined(WEBGL2)\n return texture2D( tex, uv ).r;\n #else\n return texture2D( tex, uv ).w;\n #endif\n return 0.;\n }\n\n float getElevation(vec2 uv, sampler2D tex, vec4 offsetScale, Layer layer) {\n uv = uv * offsetScale.zw + offsetScale.xy;\n float d = getElevationMode(uv, tex, layer.mode);\n if (d < layer.zmin || d > layer.zmax) d = 0.;\n return d * layer.scale + layer.bias;\n }\n#endif\n";
@@ -29,10 +29,10 @@ var elevation_pars_vertex = "#if NUM_VS_TEXTURES > 0\n struct Layer {\n
29
29
  var elevation_vertex = "#if NUM_VS_TEXTURES > 0\n if(elevationTextureCount > 0) {\n float elevation = getElevation(uv, elevationTextures[0], elevationOffsetScales[0], elevationLayers[0]);\n transformed += elevation * normal;\n }\n#endif\n";
30
30
 
31
31
  /* babel-plugin-inline-import './Chunk/fog_fragment.glsl' */
32
- var fog_fragment = "#if defined(USE_FOG)\n float fogFactor = 1. - min( exp(-fogDepth / fogDistance), 1.);\n gl_FragColor.rgb = mix(gl_FragColor.rgb, fogColor, fogFactor);\n#endif\n";
32
+ var fog_fragment = "#if defined(USE_FOG)\n float fogFactor = 1. - min( exp(-vFogDepth / fogDistance), 1.);\n gl_FragColor.rgb = mix(gl_FragColor.rgb, fogColor, fogFactor);\n#endif\n";
33
33
 
34
34
  /* babel-plugin-inline-import './Chunk/fog_pars_fragment.glsl' */
35
- var fog_pars_fragment = "#if defined(USE_FOG)\nuniform vec3 fogColor;\nuniform float fogDistance;\nvarying float fogDepth;\n#endif\n";
35
+ var fog_pars_fragment = "#if defined(USE_FOG)\nuniform vec3 fogColor;\nuniform float fogDistance;\nvarying float vFogDepth;\n#endif\n";
36
36
 
37
37
  /* babel-plugin-inline-import './Chunk/lighting_fragment.glsl' */
38
38
  var lighting_fragment = "if (lightingEnabled) {\n float light = min(2. * dot(vNormal, lightPosition), 1.);\n gl_FragColor.rgb *= light;\n}\n";
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- var rePosition = new RegExp('gl_Position.*(?![^]*gl_Position)');
8
- var reMain = new RegExp('[^\\w]*main[^\\w]*(void)?[^\\w]*{');
7
+ var pattern_gl_Position = 'gl_Position.*(?![^]*gl_Position)';
8
+ var pattern_Main = '[^\\w]*main[^\\w]*(void)?[^\\w]*{';
9
+ var rePosition = new RegExp(pattern_gl_Position);
10
+ var reMain = new RegExp(pattern_Main);
9
11
  var _default = {
10
12
  patchMaterialForLogDepthSupport: function patchMaterialForLogDepthSupport(material) {
11
13
  // Check if the shader does not already use the log depth buffer
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
@@ -38,7 +40,7 @@ var C3DTilesSource = /*#__PURE__*/function (_Source) {
38
40
  return _this;
39
41
  }
40
42
 
41
- return C3DTilesSource;
43
+ return (0, _createClass2["default"])(C3DTilesSource);
42
44
  }(_Source2["default"]);
43
45
 
44
46
  var _default = C3DTilesSource;
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -98,7 +100,7 @@ var EntwinePointTileSource = /*#__PURE__*/function (_Source) {
98
100
  return _this;
99
101
  }
100
102
 
101
- return EntwinePointTileSource;
103
+ return (0, _createClass2["default"])(EntwinePointTileSource);
102
104
  }(_Source2["default"]);
103
105
 
104
106
  var _default = EntwinePointTileSource;
@@ -106,13 +106,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
106
106
  * itowns.Fetcher.json('https://raw.githubusercontent.com/gregoiredavid/france-geojson/master/departements/09-ariege/departement-09-ariege.geojson')
107
107
  * .then(function _(geojson) {
108
108
  * return itowns.GeoJsonParser.parse(geojson, {
109
- * in: { in: 'EPSG:4326' },
110
- * out: {
111
- * crs: view.tileLayer.extent.crs,
112
- * buildExtent: true,
113
- * mergeFeatures: true,
114
- * structure: '2d',
115
- * },
109
+ * in: { crs: 'EPSG:4326' },
110
+ * out: { crs: view.tileLayer.extent.crs },
116
111
  * });
117
112
  * }).then(function _(features) {
118
113
  * ariege.source = new itowns.FileSource({
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
@@ -116,7 +118,7 @@ var PotreeSource = /*#__PURE__*/function (_Source) {
116
118
  return _this;
117
119
  }
118
120
 
119
- return PotreeSource;
121
+ return (0, _createClass2["default"])(PotreeSource);
120
122
  }(_Source2["default"]);
121
123
 
122
124
  var _default = PotreeSource;
@@ -5,9 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.supportedParsers = exports.supportedFetchers = void 0;
9
-
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ exports.supportedParsers = exports.supportedFetchers = exports["default"] = void 0;
11
9
 
12
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
11
 
@@ -15,6 +13,8 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
15
13
 
16
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
15
 
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
19
 
20
20
  var _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
@@ -23,8 +23,14 @@ var _GeoJsonParser = _interopRequireDefault(require("../Parser/GeoJsonParser"));
23
23
 
24
24
  var _KMLParser = _interopRequireDefault(require("../Parser/KMLParser"));
25
25
 
26
+ var _GDFParser = _interopRequireDefault(require("../Parser/GDFParser"));
27
+
26
28
  var _GpxParser = _interopRequireDefault(require("../Parser/GpxParser"));
27
29
 
30
+ var _GTXParser = _interopRequireDefault(require("../Parser/GTXParser"));
31
+
32
+ var _ISGParser = _interopRequireDefault(require("../Parser/ISGParser"));
33
+
28
34
  var _VectorTileParser = _interopRequireDefault(require("../Parser/VectorTileParser"));
29
35
 
30
36
  var _Fetcher = _interopRequireDefault(require("../Provider/Fetcher"));
@@ -35,9 +41,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
35
41
 
36
42
  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; } }
37
43
 
38
- var supportedFetchers = new Map([['image/x-bil;bits=32', _Fetcher["default"].textureFloat], ['geojson', _Fetcher["default"].json], ['application/json', _Fetcher["default"].json], ['application/kml', _Fetcher["default"].xml], ['application/gpx', _Fetcher["default"].xml], ['application/x-protobuf;type=mapbox-vector', _Fetcher["default"].arrayBuffer]]);
44
+ var supportedFetchers = new Map([['image/x-bil;bits=32', _Fetcher["default"].textureFloat], ['geojson', _Fetcher["default"].json], ['application/json', _Fetcher["default"].json], ['application/kml', _Fetcher["default"].xml], ['application/gpx', _Fetcher["default"].xml], ['application/x-protobuf;type=mapbox-vector', _Fetcher["default"].arrayBuffer], ['application/gtx', _Fetcher["default"].arrayBuffer], ['application/isg', _Fetcher["default"].text], ['application/gdf', _Fetcher["default"].text]]);
39
45
  exports.supportedFetchers = supportedFetchers;
40
- var supportedParsers = new Map([['geojson', _GeoJsonParser["default"].parse], ['application/json', _GeoJsonParser["default"].parse], ['application/kml', _KMLParser["default"].parse], ['application/gpx', _GpxParser["default"].parse], ['application/x-protobuf;type=mapbox-vector', _VectorTileParser["default"].parse]]);
46
+ var supportedParsers = new Map([['geojson', _GeoJsonParser["default"].parse], ['application/json', _GeoJsonParser["default"].parse], ['application/kml', _KMLParser["default"].parse], ['application/gpx', _GpxParser["default"].parse], ['application/x-protobuf;type=mapbox-vector', _VectorTileParser["default"].parse], ['application/gtx', _GTXParser["default"].parse], ['application/isg', _ISGParser["default"].parse], ['application/gdf', _GDFParser["default"].parse]]);
41
47
  exports.supportedParsers = supportedParsers;
42
48
  var noCache = {
43
49
  getByArray: function getByArray() {},
@@ -57,7 +63,7 @@ var noCache = {
57
63
  *
58
64
  */
59
65
 
60
- var InformationsData = function InformationsData(options) {
66
+ var InformationsData = /*#__PURE__*/(0, _createClass2["default"])(function InformationsData(options) {
61
67
  (0, _classCallCheck2["default"])(this, InformationsData);
62
68
 
63
69
  /* istanbul ignore next */
@@ -67,7 +73,7 @@ var InformationsData = function InformationsData(options) {
67
73
  }
68
74
 
69
75
  this.crs = options.crs;
70
- };
76
+ });
71
77
  /**
72
78
  * This class describes parsing options.
73
79
  * @property {InformationsData|Source} in - data informations contained in the file.
@@ -75,12 +81,11 @@ var InformationsData = function InformationsData(options) {
75
81
  */
76
82
  // eslint-disable-next-line
77
83
 
78
-
79
84
  var
80
85
  /* istanbul ignore next */
81
- ParsingOptions = function ParsingOptions() {
86
+ ParsingOptions = /*#__PURE__*/(0, _createClass2["default"])(function ParsingOptions() {
82
87
  (0, _classCallCheck2["default"])(this, ParsingOptions);
83
- };
88
+ });
84
89
 
85
90
  function fetchSourceData(source, extent) {
86
91
  var url = source.urlFromExtent(extent);
@@ -9,6 +9,10 @@ exports["default"] = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
+
12
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
17
 
14
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -172,6 +176,21 @@ var VectorTilesSource = /*#__PURE__*/function (_TMSSource) {
172
176
  return _this;
173
177
  }
174
178
 
179
+ (0, _createClass2["default"])(VectorTilesSource, [{
180
+ key: "onLayerAdded",
181
+ value: function onLayerAdded(options) {
182
+ var _this2 = this;
183
+
184
+ (0, _get2["default"])((0, _getPrototypeOf2["default"])(VectorTilesSource.prototype), "onLayerAdded", this).call(this, options);
185
+
186
+ if (options.out.style) {
187
+ var keys = Object.keys(this.styles);
188
+ keys.forEach(function (k) {
189
+ _this2.styles[k].parent = options.out.style;
190
+ });
191
+ }
192
+ }
193
+ }]);
175
194
  return VectorTilesSource;
176
195
  }(_TMSSource2["default"]);
177
196
 
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
@@ -102,7 +104,7 @@ var WMTSSource = /*#__PURE__*/function (_TMSSource) {
102
104
  return _this;
103
105
  }
104
106
 
105
- return WMTSSource;
107
+ return (0, _createClass2["default"])(WMTSSource);
106
108
  }(_TMSSource2["default"]);
107
109
 
108
110
  var _default = WMTSSource;