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.
- 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/examples/effects_stereo.html +2 -2
- package/examples/entwine_simple_loader.html +24 -8
- package/examples/misc_collada.html +2 -2
- package/examples/misc_instancing.html +1 -1
- package/examples/source_file_gpx_3d.html +2 -2
- package/examples/source_stream_wfs_25d.html +11 -11
- package/examples/source_stream_wfs_3d.html +1 -1
- package/examples/vector_tile_3d_mesh.html +2 -2
- package/examples/vector_tile_raster_2d.html +1 -1
- package/examples/vector_tile_raster_3d.html +1 -1
- package/examples/view_25d_map.html +2 -2
- package/examples/view_3d_map.html +3 -3
- package/examples/view_3d_map_webxr.html +1 -1
- package/examples/view_3d_mns_map.html +3 -3
- package/examples/view_immersive.html +1 -1
- package/examples/view_multi_25d.html +2 -2
- package/examples/widgets_minimap.html +1 -1
- package/examples/widgets_searchbar.html +2 -2
- 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 +77 -70
- package/lib/Converter/Feature2Texture.js +15 -25
- package/lib/Converter/convertToTile.js +16 -26
- 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 +11 -20
- package/lib/Core/Prefab/computeBufferTileGeometry.js +11 -15
- 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 +26 -40
- package/lib/Core/System/Capabilities.js +2 -9
- package/lib/Core/TileGeometry.js +11 -14
- package/lib/Core/TileMesh.js +6 -15
- package/lib/Core/View.js +43 -53
- package/lib/Layer/C3DTilesLayer.js +29 -41
- package/lib/Layer/ColorLayer.js +10 -16
- package/lib/Layer/ElevationLayer.js +7 -14
- package/lib/Layer/EntwinePointTileLayer.js +11 -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 +27 -24
- 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 +37 -33
- package/lib/Main.js +86 -707
- package/lib/MainBundle.js +4 -34
- package/lib/Parser/B3dmParser.js +80 -131
- package/lib/Parser/CameraCalibrationParser.js +5 -14
- package/lib/Parser/GDFParser.js +11 -22
- package/lib/Parser/GLTFParser.js +88 -0
- package/lib/Parser/GTXParser.js +9 -21
- package/lib/Parser/GeoJsonParser.js +14 -22
- 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 +31 -21
- package/lib/Parser/LASParser.js +10 -17
- package/lib/Parser/MapBoxUrlParser.js +2 -9
- package/lib/Parser/PntsParser.js +4 -14
- package/lib/Parser/PotreeBinParser.js +8 -16
- package/lib/Parser/PotreeCinParser.js +3 -12
- package/lib/Parser/ShapefileParser.js +11 -18
- package/lib/Parser/VectorTileParser.js +23 -31
- 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 +19 -28
- package/lib/Process/ObjectRemovalHelper.js +2 -9
- package/lib/Process/handlerNodeError.js +1 -7
- package/lib/Provider/3dTilesProvider.js +32 -29
- package/lib/Provider/DataSourceProvider.js +2 -9
- package/lib/Provider/Fetcher.js +37 -13
- package/lib/Provider/PointCloudProvider.js +7 -19
- 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 +12 -21
- package/lib/Renderer/OrientedImageCamera.js +2 -11
- package/lib/Renderer/OrientedImageMaterial.js +7 -17
- package/lib/Renderer/PointsMaterial.js +223 -84
- package/lib/Renderer/RasterTile.js +18 -30
- 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 +76 -0
- 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 -14
- package/lib/Source/PotreeSource.js +9 -16
- package/lib/Source/Source.js +26 -39
- package/lib/Source/TMSSource.js +11 -22
- package/lib/Source/VectorTilesSource.js +75 -34
- 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 +16 -0
- 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 +13 -8
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
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 _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
|
|
10
|
-
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); }
|
|
11
|
-
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 Extent from "../Core/Geographic/Extent.js";
|
|
12
3
|
let nextuuid = 1;
|
|
13
4
|
function addPickingAttribute(points) {
|
|
14
5
|
// generate unique id for picking
|
|
@@ -32,7 +23,7 @@ function addPickingAttribute(points) {
|
|
|
32
23
|
points.geometry.setAttribute('unique_id', new THREE.BufferAttribute(ids, 4, true));
|
|
33
24
|
return points;
|
|
34
25
|
}
|
|
35
|
-
|
|
26
|
+
export default {
|
|
36
27
|
executeCommand(command) {
|
|
37
28
|
const layer = command.layer;
|
|
38
29
|
const node = command.requester;
|
|
@@ -41,17 +32,14 @@ var _default = {
|
|
|
41
32
|
addPickingAttribute(points);
|
|
42
33
|
points.frustumCulled = false;
|
|
43
34
|
points.matrixAutoUpdate = false;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
points.scale.copy(layer.scale);
|
|
47
|
-
}
|
|
35
|
+
points.position.copy(geometry.userData.origin || node.bbox.min);
|
|
36
|
+
points.scale.copy(layer.scale);
|
|
48
37
|
points.updateMatrix();
|
|
49
38
|
points.tightbbox = geometry.boundingBox.applyMatrix4(points.matrix);
|
|
50
39
|
points.layer = layer;
|
|
51
|
-
points.extent =
|
|
40
|
+
points.extent = Extent.fromBox3(command.view.referenceCrs, node.bbox);
|
|
52
41
|
points.userData.node = node;
|
|
53
42
|
return points;
|
|
54
43
|
});
|
|
55
44
|
}
|
|
56
|
-
};
|
|
57
|
-
exports.default = _default;
|
|
45
|
+
};
|
|
@@ -1,24 +1,16 @@
|
|
|
1
|
-
|
|
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 _CancelledCommandException = _interopRequireDefault(require("../Core/Scheduler/CancelledCommandException"));
|
|
9
|
-
var _default = {
|
|
1
|
+
import CancelledCommandException from "../Core/Scheduler/CancelledCommandException.js";
|
|
2
|
+
export default {
|
|
10
3
|
executeCommand(command) {
|
|
11
4
|
const promises = [];
|
|
12
5
|
const layer = command.layer;
|
|
13
6
|
const requester = command.requester;
|
|
14
7
|
const extentsSource = command.extentsSource;
|
|
15
8
|
if (requester && !requester.material) {
|
|
16
|
-
return Promise.reject(new
|
|
9
|
+
return Promise.reject(new CancelledCommandException(command));
|
|
17
10
|
}
|
|
18
11
|
for (const extent of extentsSource) {
|
|
19
12
|
promises.push(layer.convert(requester, extent));
|
|
20
13
|
}
|
|
21
14
|
return Promise.all(promises);
|
|
22
15
|
}
|
|
23
|
-
};
|
|
24
|
-
exports.default = _default;
|
|
16
|
+
};
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
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 _Extent = _interopRequireDefault(require("../Core/Geographic/Extent"));
|
|
9
|
-
const extent = new _Extent.default('EPSG:4326', [0, 0, 0, 0]);
|
|
1
|
+
import Extent from "../Core/Geographic/Extent.js";
|
|
2
|
+
const extent = new Extent('EPSG:4326', [0, 0, 0, 0]);
|
|
10
3
|
let subDomainsCount = 0;
|
|
11
4
|
function subDomains(url) {
|
|
12
5
|
const subDomainsPtrn = /\$\{u:([\w-_.|]+)\}/.exec(url);
|
|
@@ -29,7 +22,7 @@ function subDomains(url) {
|
|
|
29
22
|
*
|
|
30
23
|
* @module URLBuilder
|
|
31
24
|
*/
|
|
32
|
-
|
|
25
|
+
export default {
|
|
33
26
|
subDomains,
|
|
34
27
|
/**
|
|
35
28
|
* Builds an URL knowing the coordinates and the source to query.
|
|
@@ -109,5 +102,4 @@ var _default = {
|
|
|
109
102
|
bboxInUnit = bboxInUnit.replace('w', `${w},`).replace('s', `${s},`).replace('e', `${e},`).replace('n', `${n},`).slice(0, -1);
|
|
110
103
|
return subDomains(source.url.replace('%bbox', bboxInUnit));
|
|
111
104
|
}
|
|
112
|
-
};
|
|
113
|
-
exports.default = _default;
|
|
105
|
+
};
|
package/lib/Renderer/Camera.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import Coordinates from "../Core/Geographic/Coordinates.js";
|
|
3
|
+
import DEMUtils from "../Utils/DEMUtils.js";
|
|
2
4
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.CAMERA_TYPE = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _Coordinates = _interopRequireDefault(require("../Core/Geographic/Coordinates"));
|
|
10
|
-
var _DEMUtils = _interopRequireDefault(require("../Utils/DEMUtils"));
|
|
11
|
-
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); }
|
|
12
|
-
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; }
|
|
13
5
|
/**
|
|
14
6
|
* @typedef {object} Camera~CAMERA_TYPE
|
|
15
7
|
* Stores the different types of camera usable in iTowns.
|
|
@@ -17,11 +9,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
17
9
|
* @property {number} PERSPECTIVE Perspective type of camera
|
|
18
10
|
* @property {number} ORTHOGRAPHIC Orthographic type of camera
|
|
19
11
|
*/
|
|
20
|
-
const CAMERA_TYPE = {
|
|
12
|
+
export const CAMERA_TYPE = {
|
|
21
13
|
PERSPECTIVE: 0,
|
|
22
14
|
ORTHOGRAPHIC: 1
|
|
23
15
|
};
|
|
24
|
-
exports.CAMERA_TYPE = CAMERA_TYPE;
|
|
25
16
|
const tmp = {
|
|
26
17
|
frustum: new THREE.Frustum(),
|
|
27
18
|
matrix: new THREE.Matrix4(),
|
|
@@ -182,7 +173,7 @@ class Camera {
|
|
|
182
173
|
* @return {Coordinates} Coordinates object holding camera's position.
|
|
183
174
|
*/
|
|
184
175
|
position(crs) {
|
|
185
|
-
return new
|
|
176
|
+
return new Coordinates(this.crs, this.camera3D.position).as(crs || this.crs);
|
|
186
177
|
}
|
|
187
178
|
|
|
188
179
|
/**
|
|
@@ -243,7 +234,7 @@ class Camera {
|
|
|
243
234
|
// (Should be improved in Coordinates class for all ref)
|
|
244
235
|
const camLocation = view.camera.position().as('EPSG:4326');
|
|
245
236
|
if (elevationLayer !== undefined) {
|
|
246
|
-
const elevationUnderCamera =
|
|
237
|
+
const elevationUnderCamera = DEMUtils.getElevationValueAt(elevationLayer, camLocation);
|
|
247
238
|
if (elevationUnderCamera !== undefined) {
|
|
248
239
|
const difElevation = camLocation.altitude - (elevationUnderCamera + minDistanceCollision);
|
|
249
240
|
// We move the camera to avoid collision if too close to terrain
|
|
@@ -287,5 +278,4 @@ function projectBox3PointsInCameraSpace(camera, box3, matrixWorld) {
|
|
|
287
278
|
}
|
|
288
279
|
return atLeastOneInFrontOfNearPlane ? points : undefined;
|
|
289
280
|
}
|
|
290
|
-
|
|
291
|
-
exports.default = _default;
|
|
281
|
+
export default Camera;
|
package/lib/Renderer/Color.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.deltaE = deltaE;
|
|
7
|
-
exports.lab2rgb = lab2rgb;
|
|
8
|
-
exports.rgb2lab = rgb2lab;
|
|
9
|
-
function lab2rgb(lab) {
|
|
1
|
+
export function lab2rgb(lab) {
|
|
10
2
|
let y = (lab[0] + 16) / 116;
|
|
11
3
|
let x = lab[1] / 500 + y;
|
|
12
4
|
let z = y - lab[2] / 200;
|
|
@@ -24,7 +16,7 @@ function lab2rgb(lab) {
|
|
|
24
16
|
b = b > 0.0031308 ? 1.055 * b ** (1 / 2.4) - 0.055 : 12.92 * b;
|
|
25
17
|
return [Math.max(0, Math.min(1, r)) * 255, Math.max(0, Math.min(1, g)) * 255, Math.max(0, Math.min(1, b)) * 255];
|
|
26
18
|
}
|
|
27
|
-
function rgb2lab(rgb) {
|
|
19
|
+
export function rgb2lab(rgb) {
|
|
28
20
|
let r = rgb.r || rgb[0] / 255;
|
|
29
21
|
let g = rgb.g || rgb[1] / 255;
|
|
30
22
|
let b = rgb.b || rgb[2] / 255;
|
|
@@ -45,7 +37,7 @@ function rgb2lab(rgb) {
|
|
|
45
37
|
|
|
46
38
|
// calculate the perceptual distance between colors in CIELAB
|
|
47
39
|
// https://github.com/THEjoezack/ColorMine/blob/master/ColorMine/ColorSpaces/Comparisons/Cie94Comparison.cs
|
|
48
|
-
function deltaE(rgbA, rgbB) {
|
|
40
|
+
export function deltaE(rgbA, rgbB) {
|
|
49
41
|
const labA = rgb2lab(rgbA);
|
|
50
42
|
const labB = rgb2lab(rgbB);
|
|
51
43
|
const deltaL = labA[0] - labB[0];
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = exports.COLOR_LAYERS_ORDER_CHANGED = void 0;
|
|
7
|
-
var _Layer = require("../Layer/Layer");
|
|
1
|
+
import { ImageryLayers } from "../Layer/Layer.js";
|
|
8
2
|
function updateLayersOrdering(geometryLayer, imageryLayers) {
|
|
9
|
-
const sequence =
|
|
3
|
+
const sequence = ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers);
|
|
10
4
|
const cO = function (object) {
|
|
11
5
|
var _object$material;
|
|
12
6
|
if ((_object$material = object.material) !== null && _object$material !== void 0 && _object$material.setSequence) {
|
|
@@ -17,15 +11,14 @@ function updateLayersOrdering(geometryLayer, imageryLayers) {
|
|
|
17
11
|
node.traverse(cO);
|
|
18
12
|
}
|
|
19
13
|
}
|
|
20
|
-
const COLOR_LAYERS_ORDER_CHANGED = 'layers-order-changed';
|
|
14
|
+
export const COLOR_LAYERS_ORDER_CHANGED = 'layers-order-changed';
|
|
21
15
|
|
|
22
16
|
/**
|
|
23
17
|
* Utilitary to organize {@link ColorLayer} in a {@link View}.
|
|
24
18
|
*
|
|
25
19
|
* @module ColorLayersOrdering
|
|
26
20
|
*/
|
|
27
|
-
|
|
28
|
-
var _default = {
|
|
21
|
+
export default {
|
|
29
22
|
/**
|
|
30
23
|
* Moves up in the layer list. This function has no effect if the layer is
|
|
31
24
|
* moved to its current index.
|
|
@@ -40,8 +33,8 @@ var _default = {
|
|
|
40
33
|
const imageryLayers = view.getLayers(l => l.isColorLayer);
|
|
41
34
|
const layer = view.getLayerById(layerId);
|
|
42
35
|
if (layer) {
|
|
43
|
-
const previousSequence =
|
|
44
|
-
|
|
36
|
+
const previousSequence = ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers);
|
|
37
|
+
ImageryLayers.moveLayerUp(layer, imageryLayers);
|
|
45
38
|
updateLayersOrdering(view.tileLayer, imageryLayers);
|
|
46
39
|
view.dispatchEvent({
|
|
47
40
|
type: COLOR_LAYERS_ORDER_CHANGED,
|
|
@@ -49,7 +42,7 @@ var _default = {
|
|
|
49
42
|
sequence: previousSequence
|
|
50
43
|
},
|
|
51
44
|
new: {
|
|
52
|
-
sequence:
|
|
45
|
+
sequence: ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers)
|
|
53
46
|
}
|
|
54
47
|
});
|
|
55
48
|
view.notifyChange(view.tileLayer);
|
|
@@ -71,8 +64,8 @@ var _default = {
|
|
|
71
64
|
const imageryLayers = view.getLayers(l => l.isColorLayer);
|
|
72
65
|
const layer = view.getLayerById(layerId);
|
|
73
66
|
if (layer) {
|
|
74
|
-
const previousSequence =
|
|
75
|
-
|
|
67
|
+
const previousSequence = ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers);
|
|
68
|
+
ImageryLayers.moveLayerDown(layer, imageryLayers);
|
|
76
69
|
updateLayersOrdering(view.tileLayer, imageryLayers);
|
|
77
70
|
view.dispatchEvent({
|
|
78
71
|
type: COLOR_LAYERS_ORDER_CHANGED,
|
|
@@ -80,7 +73,7 @@ var _default = {
|
|
|
80
73
|
sequence: previousSequence
|
|
81
74
|
},
|
|
82
75
|
new: {
|
|
83
|
-
sequence:
|
|
76
|
+
sequence: ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers)
|
|
84
77
|
}
|
|
85
78
|
});
|
|
86
79
|
view.notifyChange(view.tileLayer);
|
|
@@ -103,8 +96,8 @@ var _default = {
|
|
|
103
96
|
const imageryLayers = view.getLayers(l => l.isColorLayer);
|
|
104
97
|
const layer = view.getLayerById(layerId);
|
|
105
98
|
if (layer) {
|
|
106
|
-
const previousSequence =
|
|
107
|
-
|
|
99
|
+
const previousSequence = ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers);
|
|
100
|
+
ImageryLayers.moveLayerToIndex(layer, index, imageryLayers);
|
|
108
101
|
updateLayersOrdering(view.tileLayer, imageryLayers);
|
|
109
102
|
view.dispatchEvent({
|
|
110
103
|
type: COLOR_LAYERS_ORDER_CHANGED,
|
|
@@ -112,7 +105,7 @@ var _default = {
|
|
|
112
105
|
sequence: previousSequence
|
|
113
106
|
},
|
|
114
107
|
new: {
|
|
115
|
-
sequence:
|
|
108
|
+
sequence: ImageryLayers.getColorLayersIdOrderedBySequence(imageryLayers)
|
|
116
109
|
}
|
|
117
110
|
});
|
|
118
111
|
view.notifyChange(view.tileLayer);
|
|
@@ -120,5 +113,4 @@ var _default = {
|
|
|
120
113
|
throw new Error(`${layerId} isn't color layer`);
|
|
121
114
|
}
|
|
122
115
|
}
|
|
123
|
-
};
|
|
124
|
-
exports.default = _default;
|
|
116
|
+
};
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
8
|
-
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); }
|
|
9
|
-
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; }
|
|
10
|
-
var _default = {
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export default {
|
|
11
3
|
setDefineMapping(object, PROPERTY, mapping) {
|
|
12
4
|
Object.keys(mapping).forEach(key => {
|
|
13
5
|
object.defines[`${PROPERTY}_${key}`] = mapping[key];
|
|
@@ -36,5 +28,4 @@ var _default = {
|
|
|
36
28
|
}
|
|
37
29
|
});
|
|
38
30
|
}
|
|
39
|
-
};
|
|
40
|
-
exports.default = _default;
|
|
31
|
+
};
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.ScreenGrid = void 0;
|
|
8
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
-
var _GlobeLayer = _interopRequireDefault(require("../Core/Prefab/Globe/GlobeLayer"));
|
|
10
|
-
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); }
|
|
11
|
-
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 GlobeLayer from "../Core/Prefab/Globe/GlobeLayer.js";
|
|
12
3
|
function isIntersectedOrOverlaped(a, b) {
|
|
13
4
|
return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top);
|
|
14
5
|
}
|
|
15
6
|
const frustum = new THREE.Frustum();
|
|
16
7
|
|
|
17
8
|
// A grid to manage labels on the screen.
|
|
18
|
-
class ScreenGrid {
|
|
9
|
+
export class ScreenGrid {
|
|
19
10
|
constructor() {
|
|
20
11
|
let x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 12;
|
|
21
12
|
let y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
|
|
@@ -83,7 +74,6 @@ class ScreenGrid {
|
|
|
83
74
|
return true;
|
|
84
75
|
}
|
|
85
76
|
}
|
|
86
|
-
exports.ScreenGrid = ScreenGrid;
|
|
87
77
|
const worldPosition = new THREE.Vector3();
|
|
88
78
|
|
|
89
79
|
/**
|
|
@@ -180,7 +170,7 @@ class Label2DRenderer {
|
|
|
180
170
|
if (!frustum.containsPoint(worldPosition.applyMatrix4(camera.matrixWorldInverse)) ||
|
|
181
171
|
// Check if globe horizon culls the label
|
|
182
172
|
// Do some horizon culling (if possible) if the tiles level is small enough.
|
|
183
|
-
label.horizonCullingPoint &&
|
|
173
|
+
label.horizonCullingPoint && GlobeLayer.horizonCulling(label.horizonCullingPoint) ||
|
|
184
174
|
// Check if content isn't present in visible labels
|
|
185
175
|
this.grid.visible.some(l => {
|
|
186
176
|
// TODO for icon without text filter by position
|
|
@@ -200,5 +190,4 @@ class Label2DRenderer {
|
|
|
200
190
|
this.garbage.innerHTML = '';
|
|
201
191
|
}
|
|
202
192
|
}
|
|
203
|
-
|
|
204
|
-
exports.default = _default;
|
|
193
|
+
export default Label2DRenderer;
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.colorLayerEffects = exports.ELEVATION_MODES = void 0;
|
|
8
|
-
exports.getMaxColorSamplerUnitsCount = getMaxColorSamplerUnitsCount;
|
|
9
|
-
exports.unpack1K = unpack1K;
|
|
10
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
11
|
-
var _ShaderUtils = _interopRequireDefault(require("./Shader/ShaderUtils"));
|
|
12
|
-
var _Capabilities = _interopRequireDefault(require("../Core/System/Capabilities"));
|
|
13
|
-
var _RenderMode = _interopRequireDefault(require("./RenderMode"));
|
|
14
|
-
var _CommonMaterial = _interopRequireDefault(require("./CommonMaterial"));
|
|
15
|
-
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); }
|
|
16
|
-
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';
|
|
17
2
|
/* babel-plugin-inline-import './Shader/TileVS.glsl' */
|
|
18
3
|
const TileVS = "#include <itowns/WebGL2_pars_vertex>\n#include <itowns/precision_qualifier>\n#include <common>\n#include <itowns/project_pars_vertex>\n#include <itowns/elevation_pars_vertex>\n#include <logdepthbuf_pars_vertex>\nattribute vec2 uv_0;\n#if NUM_CRS > 1\nattribute float uv_1;\n#endif\nattribute vec3 normal;\n\nuniform mat4 modelMatrix;\nuniform bool lightingEnabled;\nvarying vec2 vHighPrecisionZW;\n\n#if MODE == MODE_FINAL\n#include <fog_pars_vertex>\nvarying vec3 vUv;\nvarying vec3 vNormal;\n#endif\nvoid main() {\n vec2 uv = vec2(uv_0.x, 1.0 - uv_0.y);\n\n #include <begin_vertex>\n #include <itowns/elevation_vertex>\n #include <itowns/geoid_vertex>\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n vHighPrecisionZW = gl_Position.zw;\n#if MODE == MODE_FINAL\n #include <fog_vertex>\n #if NUM_CRS > 1\n vUv = vec3(uv_0, (uv_1 > 0.) ? uv_1 : uv_0.y); // set uv_1 = uv_0 if uv_1 is undefined\n #else\n vUv = vec3(uv_0, 0.0);\n #endif\n vNormal = normalize ( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal );\n#endif\n}\n";
|
|
19
4
|
/* babel-plugin-inline-import './Shader/TileFS.glsl' */
|
|
20
5
|
const TileFS = "#include <itowns/WebGL2_pars_fragment>\n#include <itowns/precision_qualifier>\n#include <logdepthbuf_pars_fragment>\n#include <itowns/pitUV>\n#include <itowns/color_layers_pars_fragment>\n#if MODE == MODE_FINAL\n#include <itowns/fog_pars_fragment>\n#include <itowns/overlay_pars_fragment>\n#include <itowns/lighting_pars_fragment>\n#endif\n#include <itowns/mode_pars_fragment>\n\nuniform vec3 diffuse;\nuniform float opacity;\nvarying vec3 vUv; // uv_0.x/uv_1.x, uv_0.y, uv_1.y\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n #include <logdepthbuf_fragment>\n\n#if MODE == MODE_ID\n\n #include <itowns/mode_id_fragment>\n\n#elif MODE == MODE_DEPTH\n\n #include <itowns/mode_depth_fragment>\n\n#else\n\n gl_FragColor = vec4(diffuse, opacity);\n\n uvs[0] = vec3(vUv.xy, 0.);\n\n#if NUM_CRS > 1\n uvs[1] = vec3(vUv.x, fract(vUv.z), floor(vUv.z));\n#endif\n\n vec4 color;\n #pragma unroll_loop\n for ( int i = 0; i < NUM_FS_TEXTURES; i ++ ) {\n color = getLayerColor( i , colorTextures[ i ], colorOffsetScales[ i ], colorLayers[ i ]);\n gl_FragColor.rgb = mix(gl_FragColor.rgb, color.rgb, color.a);\n }\n\n #if defined(DEBUG)\n if (showOutline) {\n #pragma unroll_loop\n for ( int i = 0; i < NUM_CRS; i ++) {\n color = getOutlineColor( outlineColors[ i ], uvs[ i ].xy);\n gl_FragColor.rgb = mix(gl_FragColor.rgb, color.rgb, color.a);\n }\n }\n #endif\n\n #include <itowns/fog_fragment>\n #include <itowns/lighting_fragment>\n #include <itowns/overlay_fragment>\n\n#endif\n}\n";
|
|
6
|
+
import ShaderUtils from "./Shader/ShaderUtils.js";
|
|
7
|
+
import Capabilities from "../Core/System/Capabilities.js";
|
|
8
|
+
import RenderMode from "./RenderMode.js";
|
|
9
|
+
import CommonMaterial from "./CommonMaterial.js";
|
|
21
10
|
const identityOffsetScale = new THREE.Vector4(0.0, 0.0, 1.0, 1.0);
|
|
22
11
|
const defaultTex = new THREE.Texture();
|
|
23
12
|
|
|
24
13
|
// from three.js packDepthToRGBA
|
|
25
14
|
const UnpackDownscale = 255 / 256; // 0..1 -> fraction (excluding 1)
|
|
26
15
|
const bitSh = new THREE.Vector4(UnpackDownscale / (256.0 * 256.0 * 256.0), UnpackDownscale / (256.0 * 256.0), UnpackDownscale / 256.0, UnpackDownscale);
|
|
27
|
-
function unpack1K(color, factor) {
|
|
16
|
+
export function unpack1K(color, factor) {
|
|
28
17
|
return factor ? bitSh.dot(color) * factor : bitSh.dot(color);
|
|
29
18
|
}
|
|
30
19
|
|
|
@@ -32,17 +21,16 @@ function unpack1K(color, factor) {
|
|
|
32
21
|
// Because there's a statement limitation to unroll, in getColorAtIdUv method
|
|
33
22
|
const maxSamplersColorCount = 15;
|
|
34
23
|
const samplersElevationCount = 1;
|
|
35
|
-
function getMaxColorSamplerUnitsCount() {
|
|
36
|
-
const maxSamplerUnitsCount =
|
|
24
|
+
export function getMaxColorSamplerUnitsCount() {
|
|
25
|
+
const maxSamplerUnitsCount = Capabilities.getMaxTextureUnitsCount();
|
|
37
26
|
return Math.min(maxSamplerUnitsCount - samplersElevationCount, maxSamplersColorCount);
|
|
38
27
|
}
|
|
39
|
-
const colorLayerEffects = {
|
|
28
|
+
export const colorLayerEffects = {
|
|
40
29
|
noEffect: 0,
|
|
41
30
|
removeLightColor: 1,
|
|
42
31
|
removeWhiteColor: 2,
|
|
43
32
|
customEffect: 3
|
|
44
33
|
};
|
|
45
|
-
exports.colorLayerEffects = colorLayerEffects;
|
|
46
34
|
const defaultStructLayer = {
|
|
47
35
|
bias: 0,
|
|
48
36
|
noDataValue: -99999,
|
|
@@ -90,12 +78,11 @@ function updateLayersUniforms(uniforms, olayers, max) {
|
|
|
90
78
|
layers[i] = defaultStructLayer;
|
|
91
79
|
}
|
|
92
80
|
}
|
|
93
|
-
const ELEVATION_MODES = {
|
|
81
|
+
export const ELEVATION_MODES = {
|
|
94
82
|
RGBA: 0,
|
|
95
83
|
COLOR: 1,
|
|
96
84
|
DATA: 2
|
|
97
85
|
};
|
|
98
|
-
exports.ELEVATION_MODES = ELEVATION_MODES;
|
|
99
86
|
let nbSamplers;
|
|
100
87
|
const fragmentShader = [];
|
|
101
88
|
class LayeredMaterial extends THREE.RawShaderMaterial {
|
|
@@ -109,38 +96,38 @@ class LayeredMaterial extends THREE.RawShaderMaterial {
|
|
|
109
96
|
this.defines.NUM_FS_TEXTURES = nbSamplers[1];
|
|
110
97
|
this.defines.USE_FOG = 1;
|
|
111
98
|
this.defines.NUM_CRS = crsCount;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (
|
|
99
|
+
CommonMaterial.setDefineMapping(this, 'ELEVATION', ELEVATION_MODES);
|
|
100
|
+
CommonMaterial.setDefineMapping(this, 'MODE', RenderMode.MODES);
|
|
101
|
+
CommonMaterial.setDefineProperty(this, 'mode', 'MODE', RenderMode.MODES.FINAL);
|
|
102
|
+
if (Capabilities.isLogDepthBufferSupported()) {
|
|
116
103
|
this.defines.USE_LOGDEPTHBUF = 1;
|
|
117
104
|
this.defines.USE_LOGDEPTHBUF_EXT = 1;
|
|
118
105
|
}
|
|
119
106
|
this.vertexShader = TileVS;
|
|
120
|
-
fragmentShader[crsCount] = fragmentShader[crsCount] ||
|
|
107
|
+
fragmentShader[crsCount] = fragmentShader[crsCount] || ShaderUtils.unrollLoops(TileFS, this.defines);
|
|
121
108
|
this.fragmentShader = fragmentShader[crsCount];
|
|
122
109
|
|
|
123
110
|
// Color uniforms
|
|
124
|
-
|
|
125
|
-
|
|
111
|
+
CommonMaterial.setUniformProperty(this, 'diffuse', new THREE.Color(0.04, 0.23, 0.35));
|
|
112
|
+
CommonMaterial.setUniformProperty(this, 'opacity', this.opacity);
|
|
126
113
|
|
|
127
114
|
// Lighting uniforms
|
|
128
|
-
|
|
129
|
-
|
|
115
|
+
CommonMaterial.setUniformProperty(this, 'lightingEnabled', false);
|
|
116
|
+
CommonMaterial.setUniformProperty(this, 'lightPosition', new THREE.Vector3(-0.5, 0.0, 1.0));
|
|
130
117
|
|
|
131
118
|
// Misc properties
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
119
|
+
CommonMaterial.setUniformProperty(this, 'fogDistance', 1000000000.0);
|
|
120
|
+
CommonMaterial.setUniformProperty(this, 'fogColor', new THREE.Color(0.76, 0.85, 1.0));
|
|
121
|
+
CommonMaterial.setUniformProperty(this, 'overlayAlpha', 0);
|
|
122
|
+
CommonMaterial.setUniformProperty(this, 'overlayColor', new THREE.Color(1.0, 0.3, 0.0));
|
|
123
|
+
CommonMaterial.setUniformProperty(this, 'objectId', 0);
|
|
124
|
+
CommonMaterial.setUniformProperty(this, 'geoidHeight', 0.0);
|
|
138
125
|
|
|
139
126
|
// > 0 produces gaps,
|
|
140
127
|
// < 0 causes oversampling of textures
|
|
141
128
|
// = 0 causes sampling artefacts due to bad estimation of texture-uv gradients
|
|
142
129
|
// best is a small negative number
|
|
143
|
-
|
|
130
|
+
CommonMaterial.setUniformProperty(this, 'minBorderDistance', -0.01);
|
|
144
131
|
|
|
145
132
|
// LayeredMaterialLayers
|
|
146
133
|
this.layers = [];
|
|
@@ -259,5 +246,4 @@ class LayeredMaterial extends THREE.RawShaderMaterial {
|
|
|
259
246
|
}
|
|
260
247
|
}
|
|
261
248
|
}
|
|
262
|
-
|
|
263
|
-
exports.default = _default;
|
|
249
|
+
export default LayeredMaterial;
|
package/lib/Renderer/OBB.js
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import TileGeometry from "../Core/TileGeometry.js";
|
|
3
|
+
import BuilderEllipsoidTile from "../Core/Prefab/Globe/BuilderEllipsoidTile.js";
|
|
4
|
+
import Coordinates from "../Core/Geographic/Coordinates.js";
|
|
5
|
+
import CRS from "../Core/Geographic/Crs.js";
|
|
2
6
|
|
|
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 _TileGeometry = _interopRequireDefault(require("../Core/TileGeometry"));
|
|
10
|
-
var _BuilderEllipsoidTile = _interopRequireDefault(require("../Core/Prefab/Globe/BuilderEllipsoidTile"));
|
|
11
|
-
var _Coordinates = _interopRequireDefault(require("../Core/Geographic/Coordinates"));
|
|
12
|
-
var _Crs = _interopRequireDefault(require("../Core/Geographic/Crs"));
|
|
13
|
-
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); }
|
|
14
|
-
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; }
|
|
15
7
|
// get oriented bounding box of tile
|
|
16
|
-
const builder = new
|
|
8
|
+
const builder = new BuilderEllipsoidTile({
|
|
17
9
|
crs: 'EPSG:4978',
|
|
18
10
|
uvCount: 1
|
|
19
11
|
});
|
|
20
12
|
const size = new THREE.Vector3();
|
|
21
13
|
const dimension = new THREE.Vector2();
|
|
22
14
|
const center = new THREE.Vector3();
|
|
23
|
-
const coord = new
|
|
15
|
+
const coord = new Coordinates('EPSG:4326', 0, 0, 0);
|
|
24
16
|
let obb;
|
|
25
17
|
|
|
26
18
|
// it could be considered to remove THREE.Object3D extend.
|
|
@@ -126,11 +118,11 @@ class OBB extends THREE.Object3D {
|
|
|
126
118
|
position
|
|
127
119
|
} = builder.computeSharableExtent(extent);
|
|
128
120
|
// Compute the minimum count of segment to build tile
|
|
129
|
-
const
|
|
130
|
-
const geometry = new
|
|
121
|
+
const segments = Math.max(Math.floor(sharableExtent.planarDimensions(dimension).x / 90 + 1), 2);
|
|
122
|
+
const geometry = new TileGeometry({
|
|
131
123
|
extent: sharableExtent,
|
|
132
124
|
level: 0,
|
|
133
|
-
|
|
125
|
+
segments,
|
|
134
126
|
disableSkirt: true,
|
|
135
127
|
builder
|
|
136
128
|
});
|
|
@@ -144,7 +136,7 @@ class OBB extends THREE.Object3D {
|
|
|
144
136
|
this.position.copy(position);
|
|
145
137
|
this.quaternion.copy(quaternion);
|
|
146
138
|
this.updateMatrixWorld(true);
|
|
147
|
-
} else if (!
|
|
139
|
+
} else if (!CRS.isTms(extent.crs) && CRS.isMetricUnit(extent.crs)) {
|
|
148
140
|
extent.center(coord).toVector3(this.position);
|
|
149
141
|
extent.planarDimensions(dimension);
|
|
150
142
|
size.set(dimension.x, dimension.y, Math.abs(maxHeight - minHeight));
|
|
@@ -157,5 +149,4 @@ class OBB extends THREE.Object3D {
|
|
|
157
149
|
}
|
|
158
150
|
}
|
|
159
151
|
obb = new OBB();
|
|
160
|
-
|
|
161
|
-
exports.default = _default;
|
|
152
|
+
export default OBB;
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var THREE = _interopRequireWildcard(require("three"));
|
|
8
|
-
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); }
|
|
9
|
-
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';
|
|
10
2
|
class Distortion {
|
|
11
3
|
constructor(size) {
|
|
12
4
|
this.size = size;
|
|
@@ -124,5 +116,4 @@ class OrientedImageCamera extends THREE.PerspectiveCamera {
|
|
|
124
116
|
return this;
|
|
125
117
|
}
|
|
126
118
|
}
|
|
127
|
-
|
|
128
|
-
exports.default = _default;
|
|
119
|
+
export default OrientedImageCamera;
|