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.
- package/CONTRIBUTING.md +30 -17
- package/CONTRIBUTORS.md +1 -0
- package/changelog.md +146 -0
- package/dist/debug.js +1 -1
- package/dist/debug.js.LICENSE.txt +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 +2 -0
- package/dist/itowns_widgets.js.map +1 -0
- package/examples/3dtiles_basic.html +2 -2
- package/examples/config.json +25 -6
- package/examples/css/widgets.css +248 -0
- package/examples/geoid_geoidLayer.html +102 -0
- package/examples/images/compass.svg +60 -0
- package/examples/images/widget-logo.svg +66 -0
- package/examples/itowns-potree.html +252 -0
- package/examples/js/GUI/GuiTools.js +17 -0
- package/examples/js/Scale.js +1 -0
- package/examples/js/plugins/CSVnVRTParser.js +0 -1
- package/examples/layers/JSONLayers/Administrative.json +1 -1
- package/examples/layers/JSONLayers/Cada.json +1 -1
- package/examples/layers/JSONLayers/EtatMajor.json +1 -1
- package/examples/layers/JSONLayers/IGN_MNT.json +1 -1
- package/examples/layers/JSONLayers/IGN_MNT_HIGHRES.json +1 -1
- package/examples/layers/JSONLayers/WORLD_DTM.json +1 -1
- package/examples/misc_custom_label.html +0 -2
- package/examples/plugins_vrt.html +0 -1
- package/examples/source_file_from_fetched_data.html +90 -0
- package/examples/source_file_from_format.html +85 -0
- package/examples/source_file_from_methods.html +87 -0
- package/examples/source_file_from_parsed_data.html +104 -0
- package/examples/source_file_geojson_raster.html +21 -48
- package/examples/source_file_gpx_raster.html +28 -36
- package/examples/source_file_kml_raster.html +1 -4
- package/examples/source_file_shapefile.html +39 -35
- package/examples/source_stream_wfs_25d.html +29 -29
- package/examples/source_stream_wfs_3d.html +21 -12
- package/examples/source_stream_wfs_raster.html +20 -20
- package/examples/view_25d_map.html +28 -0
- package/examples/view_immersive.html +13 -14
- package/examples/view_multi_25d.html +1 -1
- package/examples/widgets_minimap.html +122 -0
- package/examples/widgets_navigation.html +119 -0
- package/lib/Controls/FirstPersonControls.js +10 -1
- package/lib/Controls/GlobeControls.js +26 -11
- package/lib/Controls/PlanarControls.js +1 -1
- package/lib/Converter/Feature2Mesh.js +1 -0
- package/lib/Converter/Feature2Texture.js +2 -2
- package/lib/Converter/convertToTile.js +6 -2
- package/lib/Core/3DTiles/C3DTBoundingVolume.js +4 -1
- package/lib/Core/Deprecated/Undeprecator.js +1 -1
- package/lib/Core/Feature.js +42 -42
- package/lib/Core/Geographic/Coordinates.js +56 -0
- package/lib/Core/Geographic/Crs.js +15 -0
- package/lib/Core/Geographic/Extent.js +100 -12
- package/lib/Core/Geographic/GeoidGrid.js +143 -0
- package/lib/Core/MainLoop.js +1 -1
- package/lib/Core/Math/Ellipsoid.js +27 -9
- package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +1 -1
- package/lib/Core/Prefab/Globe/SkyShader.js +3 -1
- package/lib/Core/Prefab/Planar/PlanarLayer.js +3 -1
- package/lib/Core/Prefab/PlanarView.js +1 -1
- package/lib/Core/Style.js +2 -1
- package/lib/Core/TileGeometry.js +3 -1
- package/lib/Core/TileMesh.js +11 -16
- package/lib/Core/View.js +43 -5
- package/lib/Layer/ElevationLayer.js +15 -18
- package/lib/Layer/FeatureGeometryLayer.js +3 -1
- package/lib/Layer/GeoidLayer.js +131 -0
- package/lib/Layer/InfoLayer.js +1 -1
- package/lib/Layer/LabelLayer.js +7 -1
- package/lib/Layer/Layer.js +1 -1
- package/lib/Layer/LayerUpdateStrategy.js +1 -1
- package/lib/Layer/PotreeLayer.js +3 -1
- package/lib/Layer/TiledGeometryLayer.js +3 -1
- package/lib/Main.js +214 -174
- package/lib/MainBundle.js +1 -1
- package/lib/Parser/B3dmParser.js +2 -1
- package/lib/Parser/GDFParser.js +118 -0
- package/lib/Parser/GTXParser.js +92 -0
- package/lib/Parser/ISGParser.js +121 -0
- package/lib/Parser/LASParser.js +3 -1
- package/lib/Parser/ShapefileParser.js +0 -1
- package/lib/Parser/VectorTileParser.js +1 -1
- package/lib/Parser/XbilParser.js +1 -1
- package/lib/Process/3dTilesProcessing.js +10 -10
- package/lib/Process/FeatureProcessing.js +3 -1
- package/lib/Process/LayeredMaterialNodeProcessing.js +7 -4
- package/lib/Process/ObjectRemovalHelper.js +5 -2
- package/lib/Provider/URLBuilder.js +1 -1
- package/lib/Renderer/Label2DRenderer.js +14 -11
- package/lib/Renderer/LayeredMaterial.js +4 -3
- package/lib/Renderer/OBB.js +20 -27
- package/lib/Renderer/PointsMaterial.js +5 -6
- package/lib/Renderer/RasterTile.js +23 -5
- package/lib/Renderer/Shader/ShaderChunk.js +3 -3
- package/lib/Renderer/Shader/ShaderUtils.js +4 -2
- package/lib/Source/C3DTilesSource.js +3 -1
- package/lib/Source/EntwinePointTileSource.js +3 -1
- package/lib/Source/FileSource.js +2 -7
- package/lib/Source/PotreeSource.js +3 -1
- package/lib/Source/Source.js +15 -10
- package/lib/Source/VectorTilesSource.js +19 -0
- package/lib/Source/WMTSSource.js +3 -1
- package/lib/ThreeExtended/loaders/GLTFLoader.js +239 -98
- package/lib/Utils/CameraUtils.js +12 -2
- package/lib/Utils/DEMUtils.js +3 -3
- package/lib/Utils/FeaturesUtils.js +8 -4
- package/package.json +25 -25
package/lib/Renderer/OBB.js
CHANGED
|
@@ -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
|
|
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
|
|
122
|
+
* Update z min, z max and z scale of oriented bounding box
|
|
125
123
|
*
|
|
126
|
-
* @param {
|
|
127
|
-
* @param {number}
|
|
128
|
-
* @param {number}
|
|
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(
|
|
134
|
-
var
|
|
135
|
-
this.z =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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.
|
|
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(
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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 ==
|
|
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(-
|
|
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
|
|
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
|
|
8
|
-
var
|
|
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;
|
package/lib/Source/FileSource.js
CHANGED
|
@@ -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: {
|
|
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;
|
package/lib/Source/Source.js
CHANGED
|
@@ -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
|
|
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
|
|
package/lib/Source/WMTSSource.js
CHANGED
|
@@ -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;
|