itowns 2.42.1-next.8 → 2.43.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/changelog.md +90 -0
- 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/misc_collada.html +2 -2
- package/examples/source_stream_wfs_25d.html +11 -11
- package/examples/source_stream_wfs_3d.html +1 -1
- package/examples/view_25d_map.html +2 -2
- package/examples/view_3d_map.html +2 -2
- package/examples/view_3d_map_webxr.html +1 -1
- package/examples/view_3d_mns_map.html +2 -2
- package/examples/view_immersive.html +1 -1
- package/examples/view_multi_25d.html +2 -2
- 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 +28 -38
- 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 +9 -20
- 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 -45
- 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 -25
- package/lib/Core/Prefab/TileBuilder.js +13 -22
- package/lib/Core/Prefab/computeBufferTileGeometry.js +12 -16
- 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 +24 -38
- package/lib/Core/System/Capabilities.js +2 -13
- package/lib/Core/TileGeometry.js +13 -15
- package/lib/Core/TileMesh.js +6 -15
- package/lib/Core/View.js +43 -58
- 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 +9 -18
- package/lib/Layer/FeatureGeometryLayer.js +9 -16
- package/lib/Layer/GeoidLayer.js +6 -15
- package/lib/Layer/GeometryLayer.js +11 -17
- package/lib/Layer/InfoLayer.js +5 -14
- package/lib/Layer/LabelLayer.js +22 -32
- package/lib/Layer/Layer.js +16 -26
- package/lib/Layer/LayerUpdateState.js +1 -8
- package/lib/Layer/LayerUpdateStrategy.js +7 -18
- package/lib/Layer/OrientedImageLayer.js +15 -25
- package/lib/Layer/PointCloudLayer.js +9 -19
- package/lib/Layer/PotreeLayer.js +8 -18
- package/lib/Layer/RasterLayer.js +9 -17
- package/lib/Layer/ReferencingLayerProperties.js +1 -8
- package/lib/Layer/TiledGeometryLayer.js +37 -33
- package/lib/Main.js +87 -708
- 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 +20 -21
- package/lib/Parser/LASParser.js +6 -15
- 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 +14 -26
- 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 +40 -22
- 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 +33 -53
- package/lib/Renderer/OBB.js +12 -21
- package/lib/Renderer/OrientedImageCamera.js +2 -11
- package/lib/Renderer/OrientedImageMaterial.js +17 -35
- package/lib/Renderer/PointsMaterial.js +37 -60
- package/lib/Renderer/RasterTile.js +16 -29
- package/lib/Renderer/RenderMode.js +2 -9
- package/lib/Renderer/Shader/ShaderChunk.js +5 -23
- 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 +20 -53
- 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 +3 -12
- package/lib/Utils/OrientationUtils.js +8 -18
- package/lib/Utils/ThreeUtils.js +2 -9
- package/lib/Utils/gui/C3DTilesStyle.js +7 -15
- package/lib/Utils/gui/Main.js +7 -48
- package/lib/Utils/gui/Minimap.js +12 -20
- package/lib/Utils/gui/Navigation.js +6 -14
- package/lib/Utils/gui/Scale.js +11 -19
- package/lib/Utils/gui/Searchbar.js +5 -13
- package/lib/Utils/gui/Widget.js +1 -8
- package/lib/Utils/placeObjectOnGround.js +13 -23
- package/package.json +13 -8
|
@@ -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
|
-
const TileVS = "#include <itowns/
|
|
3
|
+
const TileVS = "#include <itowns/precision_qualifier>\n#include <common>\n#include <itowns/elevation_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#if NUM_CRS > 1\nattribute float uv_1;\n#endif\n\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 #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, (uv_1 > 0.) ? uv_1 : uv.y); // set uv_1 = uv if uv_1 is undefined\n #else\n vUv = vec3(uv, 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
|
-
const TileFS = "#include <itowns/
|
|
5
|
+
const TileFS = "#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.x/uv_1.x, uv.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,15 +78,14 @@ 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
|
-
class LayeredMaterial extends THREE.
|
|
88
|
+
class LayeredMaterial extends THREE.ShaderMaterial {
|
|
102
89
|
#_visible = true;
|
|
103
90
|
constructor() {
|
|
104
91
|
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -107,40 +94,40 @@ class LayeredMaterial extends THREE.RawShaderMaterial {
|
|
|
107
94
|
nbSamplers = nbSamplers || [samplersElevationCount, getMaxColorSamplerUnitsCount()];
|
|
108
95
|
this.defines.NUM_VS_TEXTURES = nbSamplers[0];
|
|
109
96
|
this.defines.NUM_FS_TEXTURES = nbSamplers[1];
|
|
97
|
+
// TODO: We do not use the fog from the scene, is this a desired
|
|
98
|
+
// behavior?
|
|
110
99
|
this.defines.USE_FOG = 1;
|
|
111
100
|
this.defines.NUM_CRS = crsCount;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (_Capabilities.default.isLogDepthBufferSupported()) {
|
|
116
|
-
this.defines.USE_LOGDEPTHBUF = 1;
|
|
117
|
-
this.defines.USE_LOGDEPTHBUF_EXT = 1;
|
|
118
|
-
}
|
|
101
|
+
CommonMaterial.setDefineMapping(this, 'ELEVATION', ELEVATION_MODES);
|
|
102
|
+
CommonMaterial.setDefineMapping(this, 'MODE', RenderMode.MODES);
|
|
103
|
+
CommonMaterial.setDefineProperty(this, 'mode', 'MODE', RenderMode.MODES.FINAL);
|
|
119
104
|
this.vertexShader = TileVS;
|
|
120
|
-
|
|
105
|
+
// three loop unrolling of ShaderMaterial only supports integer bounds,
|
|
106
|
+
// see https://github.com/mrdoob/three.js/issues/28020
|
|
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 = [];
|
|
@@ -183,12 +170,6 @@ class LayeredMaterial extends THREE.RawShaderMaterial {
|
|
|
183
170
|
}
|
|
184
171
|
});
|
|
185
172
|
}
|
|
186
|
-
onBeforeCompile(shader, renderer) {
|
|
187
|
-
if (renderer.capabilities.isWebGL2) {
|
|
188
|
-
this.defines.WEBGL2 = true;
|
|
189
|
-
shader.glslVersion = '300 es';
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
173
|
getUniformByType(type) {
|
|
193
174
|
return {
|
|
194
175
|
layers: this.uniforms[`${type}Layers`],
|
|
@@ -259,5 +240,4 @@ class LayeredMaterial extends THREE.RawShaderMaterial {
|
|
|
259
240
|
}
|
|
260
241
|
}
|
|
261
242
|
}
|
|
262
|
-
|
|
263
|
-
exports.default = _default;
|
|
243
|
+
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;
|