itowns 2.44.3-next.8 → 2.45.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/README.md +3 -129
- package/examples/3dtiles_loader.html +123 -48
- package/examples/config.json +3 -10
- package/examples/copc_simple_loader.html +15 -5
- package/examples/effects_stereo.html +2 -2
- package/examples/entwine_3d_loader.html +3 -1
- package/examples/entwine_simple_loader.html +1 -1
- package/examples/images/itowns_logo.svg +123 -0
- package/examples/js/plugins/COGParser.js +1 -1
- package/examples/jsm/OGC3DTilesHelper.js +6 -1
- package/examples/layers/JSONLayers/GeoidMNT.json +3 -1
- package/examples/misc_collada.html +2 -2
- package/examples/source_file_geojson_3d.html +0 -1
- package/examples/source_file_kml_raster_usgs.html +0 -1
- package/examples/source_stream_wfs_raster.html +0 -7
- package/examples/vector_tile_mapbox_raster.html +91 -0
- package/examples/view_3d_map_webxr.html +3 -1
- package/examples/view_multi_25d.html +2 -2
- package/package.json +21 -75
- package/CODING.md +0 -120
- package/CONTRIBUTING.md +0 -150
- package/CONTRIBUTORS.md +0 -55
- package/LICENSE.md +0 -44
- package/changelog.md +0 -1361
- package/dist/455.js +0 -2
- package/dist/455.js.map +0 -1
- package/dist/debug.js +0 -3
- package/dist/debug.js.LICENSE.txt +0 -13
- package/dist/debug.js.map +0 -1
- package/dist/itowns.js +0 -3
- package/dist/itowns.js.LICENSE.txt +0 -7
- package/dist/itowns.js.map +0 -1
- package/dist/itowns_lasparser.js +0 -2
- package/dist/itowns_lasparser.js.map +0 -1
- package/dist/itowns_lasworker.js +0 -2
- package/dist/itowns_lasworker.js.map +0 -1
- package/dist/itowns_potree2worker.js +0 -2
- package/dist/itowns_potree2worker.js.map +0 -1
- package/dist/itowns_widgets.js +0 -2
- package/dist/itowns_widgets.js.map +0 -1
- package/examples/.eslintrc.cjs +0 -35
- package/examples/3dtiles_25d.html +0 -120
- package/examples/3dtiles_basic.html +0 -94
- package/examples/3dtiles_batch_table.html +0 -86
- package/examples/3dtiles_ion.html +0 -126
- package/examples/3dtiles_pointcloud.html +0 -95
- package/examples/jsm/.eslintrc.cjs +0 -38
- package/lib/Controls/FirstPersonControls.js +0 -308
- package/lib/Controls/FlyControls.js +0 -175
- package/lib/Controls/GlobeControls.js +0 -1162
- package/lib/Controls/PlanarControls.js +0 -1025
- package/lib/Controls/StateControl.js +0 -429
- package/lib/Controls/StreetControls.js +0 -392
- package/lib/Converter/Feature2Mesh.js +0 -615
- package/lib/Converter/Feature2Texture.js +0 -170
- package/lib/Converter/convertToTile.js +0 -75
- package/lib/Converter/textureConverter.js +0 -44
- package/lib/Core/3DTiles/C3DTBatchTable.js +0 -131
- package/lib/Core/3DTiles/C3DTBatchTableHierarchyExtension.js +0 -96
- package/lib/Core/3DTiles/C3DTBoundingVolume.js +0 -157
- package/lib/Core/3DTiles/C3DTExtensions.js +0 -97
- package/lib/Core/3DTiles/C3DTFeature.js +0 -110
- package/lib/Core/3DTiles/C3DTilesEnums.js +0 -20
- package/lib/Core/3DTiles/C3DTileset.js +0 -99
- package/lib/Core/3DTiles/utils/BinaryPropertyAccessor.js +0 -100
- package/lib/Core/AnimationPlayer.js +0 -142
- package/lib/Core/CopcNode.js +0 -174
- package/lib/Core/Deprecated/Undeprecator.js +0 -75
- package/lib/Core/EntwinePointTileNode.js +0 -126
- package/lib/Core/Feature.js +0 -490
- package/lib/Core/Geographic/CoordStars.js +0 -80
- package/lib/Core/Geographic/Coordinates.js +0 -320
- package/lib/Core/Geographic/Crs.js +0 -175
- package/lib/Core/Geographic/Extent.js +0 -534
- package/lib/Core/Geographic/GeoidGrid.js +0 -109
- package/lib/Core/Label.js +0 -222
- package/lib/Core/MainLoop.js +0 -211
- package/lib/Core/Math/Ellipsoid.js +0 -144
- package/lib/Core/Picking.js +0 -255
- package/lib/Core/PointCloudNode.js +0 -42
- package/lib/Core/Potree2Node.js +0 -206
- package/lib/Core/Potree2PointAttributes.js +0 -139
- package/lib/Core/PotreeNode.js +0 -101
- package/lib/Core/Prefab/Globe/Atmosphere.js +0 -299
- package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +0 -110
- package/lib/Core/Prefab/Globe/GlobeLayer.js +0 -145
- package/lib/Core/Prefab/Globe/SkyShader.js +0 -78
- package/lib/Core/Prefab/GlobeView.js +0 -161
- package/lib/Core/Prefab/Planar/PlanarLayer.js +0 -53
- package/lib/Core/Prefab/Planar/PlanarTileBuilder.js +0 -72
- package/lib/Core/Prefab/PlanarView.js +0 -62
- package/lib/Core/Prefab/TileBuilder.js +0 -80
- package/lib/Core/Prefab/computeBufferTileGeometry.js +0 -183
- package/lib/Core/Scheduler/Cache.js +0 -256
- package/lib/Core/Scheduler/CancelledCommandException.js +0 -15
- package/lib/Core/Scheduler/Scheduler.js +0 -294
- package/lib/Core/Style.js +0 -1121
- package/lib/Core/System/Capabilities.js +0 -63
- package/lib/Core/Tile/Tile.js +0 -219
- package/lib/Core/Tile/TileGrid.js +0 -46
- package/lib/Core/TileGeometry.js +0 -40
- package/lib/Core/TileMesh.js +0 -109
- package/lib/Core/View.js +0 -1109
- package/lib/Layer/C3DTilesLayer.js +0 -455
- package/lib/Layer/ColorLayer.js +0 -128
- package/lib/Layer/CopcLayer.js +0 -58
- package/lib/Layer/ElevationLayer.js +0 -107
- package/lib/Layer/EntwinePointTileLayer.js +0 -64
- package/lib/Layer/FeatureGeometryLayer.js +0 -63
- package/lib/Layer/GeoidLayer.js +0 -80
- package/lib/Layer/GeometryLayer.js +0 -202
- package/lib/Layer/InfoLayer.js +0 -64
- package/lib/Layer/LabelLayer.js +0 -456
- package/lib/Layer/Layer.js +0 -304
- package/lib/Layer/LayerUpdateState.js +0 -89
- package/lib/Layer/LayerUpdateStrategy.js +0 -80
- package/lib/Layer/OGC3DTilesLayer.js +0 -387
- package/lib/Layer/OrientedImageLayer.js +0 -222
- package/lib/Layer/PointCloudLayer.js +0 -359
- package/lib/Layer/Potree2Layer.js +0 -164
- package/lib/Layer/PotreeLayer.js +0 -65
- package/lib/Layer/RasterLayer.js +0 -27
- package/lib/Layer/ReferencingLayerProperties.js +0 -62
- package/lib/Layer/TiledGeometryLayer.js +0 -403
- package/lib/Loader/LASLoader.js +0 -193
- package/lib/Loader/Potree2BrotliLoader.js +0 -261
- package/lib/Loader/Potree2Loader.js +0 -207
- package/lib/Main.js +0 -115
- package/lib/MainBundle.js +0 -4
- package/lib/Parser/B3dmParser.js +0 -174
- package/lib/Parser/CameraCalibrationParser.js +0 -94
- package/lib/Parser/GDFParser.js +0 -72
- package/lib/Parser/GTXParser.js +0 -75
- package/lib/Parser/GeoJsonParser.js +0 -212
- package/lib/Parser/GpxParser.js +0 -25
- package/lib/Parser/ISGParser.js +0 -71
- package/lib/Parser/KMLParser.js +0 -25
- package/lib/Parser/LASParser.js +0 -137
- package/lib/Parser/MapBoxUrlParser.js +0 -83
- package/lib/Parser/PntsParser.js +0 -131
- package/lib/Parser/Potree2BinParser.js +0 -92
- package/lib/Parser/PotreeBinParser.js +0 -106
- package/lib/Parser/PotreeCinParser.js +0 -29
- package/lib/Parser/ShapefileParser.js +0 -78
- package/lib/Parser/VectorTileParser.js +0 -202
- package/lib/Parser/XbilParser.js +0 -119
- package/lib/Parser/deprecated/LegacyGLTFLoader.js +0 -1386
- package/lib/Parser/iGLTFLoader.js +0 -168
- package/lib/Process/3dTilesProcessing.js +0 -304
- package/lib/Process/FeatureProcessing.js +0 -76
- package/lib/Process/LayeredMaterialNodeProcessing.js +0 -221
- package/lib/Process/ObjectRemovalHelper.js +0 -97
- package/lib/Process/handlerNodeError.js +0 -23
- package/lib/Provider/3dTilesProvider.js +0 -149
- package/lib/Provider/DataSourceProvider.js +0 -8
- package/lib/Provider/Fetcher.js +0 -229
- package/lib/Provider/PointCloudProvider.js +0 -45
- package/lib/Provider/TileProvider.js +0 -16
- package/lib/Provider/URLBuilder.js +0 -116
- package/lib/Renderer/Camera.js +0 -281
- package/lib/Renderer/Color.js +0 -56
- package/lib/Renderer/ColorLayersOrdering.js +0 -115
- package/lib/Renderer/CommonMaterial.js +0 -31
- package/lib/Renderer/Label2DRenderer.js +0 -190
- package/lib/Renderer/LayeredMaterial.js +0 -243
- package/lib/Renderer/OBB.js +0 -153
- package/lib/Renderer/OrientedImageCamera.js +0 -118
- package/lib/Renderer/OrientedImageMaterial.js +0 -167
- package/lib/Renderer/PointsMaterial.js +0 -485
- package/lib/Renderer/RasterTile.js +0 -209
- package/lib/Renderer/RenderMode.js +0 -31
- package/lib/Renderer/Shader/ShaderChunk.js +0 -160
- package/lib/Renderer/Shader/ShaderUtils.js +0 -47
- package/lib/Renderer/SphereHelper.js +0 -23
- package/lib/Renderer/WebXR.js +0 -51
- package/lib/Renderer/c3DEngine.js +0 -214
- package/lib/Source/C3DTilesGoogleSource.js +0 -74
- package/lib/Source/C3DTilesIonSource.js +0 -54
- package/lib/Source/C3DTilesSource.js +0 -30
- package/lib/Source/CopcSource.js +0 -115
- package/lib/Source/EntwinePointTileSource.js +0 -62
- package/lib/Source/FileSource.js +0 -189
- package/lib/Source/OGC3DTilesGoogleSource.js +0 -29
- package/lib/Source/OGC3DTilesIonSource.js +0 -34
- package/lib/Source/OGC3DTilesSource.js +0 -21
- package/lib/Source/OrientedImageSource.js +0 -59
- package/lib/Source/Potree2Source.js +0 -167
- package/lib/Source/PotreeSource.js +0 -82
- package/lib/Source/Source.js +0 -223
- package/lib/Source/TMSSource.js +0 -145
- package/lib/Source/VectorTilesSource.js +0 -178
- package/lib/Source/WFSSource.js +0 -168
- package/lib/Source/WMSSource.js +0 -133
- package/lib/Source/WMTSSource.js +0 -86
- package/lib/ThreeExtended/capabilities/WebGL.js +0 -69
- package/lib/ThreeExtended/libs/ktx-parse.module.js +0 -470
- package/lib/ThreeExtended/libs/zstddec.module.js +0 -29
- package/lib/ThreeExtended/loaders/DDSLoader.js +0 -200
- package/lib/ThreeExtended/loaders/DRACOLoader.js +0 -399
- package/lib/ThreeExtended/loaders/GLTFLoader.js +0 -2876
- package/lib/ThreeExtended/loaders/KTX2Loader.js +0 -625
- package/lib/ThreeExtended/utils/BufferGeometryUtils.js +0 -846
- package/lib/ThreeExtended/utils/WorkerPool.js +0 -70
- package/lib/Utils/CameraUtils.js +0 -555
- package/lib/Utils/DEMUtils.js +0 -350
- package/lib/Utils/FeaturesUtils.js +0 -156
- package/lib/Utils/Gradients.js +0 -16
- package/lib/Utils/OrientationUtils.js +0 -457
- package/lib/Utils/ThreeUtils.js +0 -115
- package/lib/Utils/gui/C3DTilesStyle.js +0 -215
- package/lib/Utils/gui/Main.js +0 -7
- package/lib/Utils/gui/Minimap.js +0 -154
- package/lib/Utils/gui/Navigation.js +0 -245
- package/lib/Utils/gui/Scale.js +0 -107
- package/lib/Utils/gui/Searchbar.js +0 -234
- package/lib/Utils/gui/Widget.js +0 -80
- package/lib/Utils/placeObjectOnGround.js +0 -137
- package/lib/Worker/LASLoaderWorker.js +0 -19
- package/lib/Worker/Potree2Worker.js +0 -21
|
@@ -33,6 +33,11 @@ export function fillHTMLWithPickingInfo(event, pickingArg) {
|
|
|
33
33
|
// eslint-disable-next-line
|
|
34
34
|
htmlDiv.appendChild(createHTMLListFromObject(closestC3DTileFeature));
|
|
35
35
|
}
|
|
36
|
+
|
|
37
|
+
layer.getMetadataFromIntersections(intersects).then((metadata) => {
|
|
38
|
+
// eslint-disable-next-line
|
|
39
|
+
metadata?.forEach(m => htmlDiv.appendChild(createHTMLListFromObject(m)));
|
|
40
|
+
});
|
|
36
41
|
}
|
|
37
42
|
|
|
38
43
|
function zoomToSphere(view, tile, sphere) {
|
|
@@ -47,7 +52,7 @@ function zoomToSphere(view, tile, sphere) {
|
|
|
47
52
|
const distance = radius * Math.tan(fov * 2);
|
|
48
53
|
|
|
49
54
|
return {
|
|
50
|
-
coord: new Coordinates('EPSG:4978'
|
|
55
|
+
coord: new Coordinates('EPSG:4978').setFromVector3(center),
|
|
51
56
|
range: distance + radius,
|
|
52
57
|
};
|
|
53
58
|
}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
"updateStrategy": {
|
|
5
5
|
"type": 0
|
|
6
6
|
},
|
|
7
|
-
"
|
|
7
|
+
"clampValues": {
|
|
8
|
+
"min": -12000
|
|
9
|
+
},
|
|
8
10
|
"source": {
|
|
9
11
|
"url": "https://raw.githubusercontent.com/iTowns/iTowns2-sample-data/master/geoid/geoid/bil/%TILEMATRIX/geoid_%COL_%ROW.bil",
|
|
10
12
|
"format": "image/x-bil;bits=32",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
<script type="importmap">
|
|
26
26
|
{
|
|
27
27
|
"imports": {
|
|
28
|
-
"three": "https://cdn.jsdelivr.net/npm/three@0.
|
|
29
|
-
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.
|
|
28
|
+
"three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js",
|
|
29
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
</script>
|
|
@@ -53,12 +53,6 @@
|
|
|
53
53
|
itowns.Fetcher.json('./layers/JSONLayers/IGN_MNT_HIGHRES.json').then(addElevationLayerFromConfig);
|
|
54
54
|
itowns.Fetcher.json('./layers/JSONLayers/WORLD_DTM.json').then(addElevationLayerFromConfig);
|
|
55
55
|
|
|
56
|
-
function isValidData(data) {
|
|
57
|
-
if(data.features[0].geometries.length < 1000) {
|
|
58
|
-
return data;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
56
|
var wfsBuildingSource = new itowns.WFSSource({
|
|
63
57
|
url: 'https://data.geopf.fr/wfs/ows?',
|
|
64
58
|
version: '2.0.0',
|
|
@@ -102,7 +96,6 @@
|
|
|
102
96
|
width: 2.0,
|
|
103
97
|
},
|
|
104
98
|
},
|
|
105
|
-
isValidData: isValidData,
|
|
106
99
|
source: wfsBuildingSource,
|
|
107
100
|
zoom: { max: 20, min: 13 },
|
|
108
101
|
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<title>Itowns - vector-tiles 2d </title>
|
|
4
|
+
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
|
|
8
|
+
<link
|
|
9
|
+
rel="stylesheet"
|
|
10
|
+
type="text/css"
|
|
11
|
+
href="css/example.css"
|
|
12
|
+
/>
|
|
13
|
+
<link
|
|
14
|
+
rel="stylesheet"
|
|
15
|
+
type="text/css"
|
|
16
|
+
href="css/LoadingScreen.css"
|
|
17
|
+
/>
|
|
18
|
+
|
|
19
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.7.6/dat.gui.min.js"></script>
|
|
20
|
+
</head>
|
|
21
|
+
<body>
|
|
22
|
+
<div id="viewerDiv"></div>
|
|
23
|
+
|
|
24
|
+
<!-- Import iTowns source code -->
|
|
25
|
+
<script src="../dist/itowns.js"></script>
|
|
26
|
+
<script src="../dist/debug.js"></script>
|
|
27
|
+
<!-- Import iTowns LoadingScreen and GuiTools plugins -->
|
|
28
|
+
<script src="js/GUI/GuiTools.js"></script>
|
|
29
|
+
<script src="js/GUI/LoadingScreen.js"></script>
|
|
30
|
+
|
|
31
|
+
<script>
|
|
32
|
+
const typeView = 'Planar';
|
|
33
|
+
// const typeView = 'Globe';
|
|
34
|
+
|
|
35
|
+
// `viewerDiv` will contain iTowns' rendering area (`<canvas>`)
|
|
36
|
+
var viewerDiv = document.getElementById('viewerDiv');
|
|
37
|
+
let view;
|
|
38
|
+
|
|
39
|
+
if (typeView === 'Globe') {
|
|
40
|
+
const coord = new itowns.Coordinates('EPSG:4326', 2.351323, 48.856712); // Paris
|
|
41
|
+
// const coord = new itowns.Coordinates("EPSG:4326", 60.599525, 56.834341); // Yekaterinburg
|
|
42
|
+
const placement = {
|
|
43
|
+
coord,
|
|
44
|
+
range: 950000,
|
|
45
|
+
};
|
|
46
|
+
view = new itowns.GlobeView(viewerDiv, placement);
|
|
47
|
+
} else if (typeView === 'Planar') {
|
|
48
|
+
// Define geographic extent: CRS, min/max X, min/max Y
|
|
49
|
+
var extent = new itowns.Extent(
|
|
50
|
+
'EPSG:3857',
|
|
51
|
+
-20037508.342789244, 20037508.342789244,
|
|
52
|
+
-20037508.342789255, 20037508.342789244);
|
|
53
|
+
|
|
54
|
+
// Instanciate PlanarView
|
|
55
|
+
view = new itowns.PlanarView(viewerDiv, extent, {
|
|
56
|
+
maxSubdivisionLevel: 20,
|
|
57
|
+
controls: {
|
|
58
|
+
// We do not want the user to zoom out too much
|
|
59
|
+
maxAltitude: 40000000,
|
|
60
|
+
// We want to keep the rotation disabled, to only have a view from the top
|
|
61
|
+
enableRotation: false,
|
|
62
|
+
// Don't zoom too much on smart zoom
|
|
63
|
+
smartTravelHeightMax: 100000,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const debugMenu = new GuiTools("menuDiv", view);
|
|
69
|
+
setupLoadingScreen(viewerDiv, view);
|
|
70
|
+
|
|
71
|
+
const source = new itowns.VectorTilesSource({
|
|
72
|
+
style: "mapbox://styles/mapbox/streets-v8",
|
|
73
|
+
accessToken:
|
|
74
|
+
"pk.eyJ1IjoiZnRvcm9tYW5vZmYiLCJhIjoiY2xrc2Zpa2o3MDQxNTNxcG5sczJyaTlncyJ9.5KFKdMLIiy-b_fAjSVhjCQ",
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
const layer = new itowns.ColorLayer("vector-map", {
|
|
78
|
+
source,
|
|
79
|
+
noTextureParentOutsideLimit: true,
|
|
80
|
+
addLabelLayer: true,
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
view.addLayer(layer).then(() => {
|
|
84
|
+
debugMenu.addLayerGUI.bind(debugMenu);
|
|
85
|
+
itowns.ColorLayersOrdering.moveLayerToIndex(view, "vector-map", 15);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
debug.createTileDebugUI(debugMenu.gui, view);
|
|
89
|
+
</script>
|
|
90
|
+
</body>
|
|
91
|
+
</html>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<script type="importmap">
|
|
15
15
|
{
|
|
16
16
|
"imports": {
|
|
17
|
-
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.
|
|
17
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
</script>
|
|
@@ -43,6 +43,8 @@
|
|
|
43
43
|
const view = new itowns.GlobeView(viewerDiv, placement, {
|
|
44
44
|
webXR: { scale: 0.005 },
|
|
45
45
|
});
|
|
46
|
+
// Temporary workaround to https://github.com/iTowns/itowns/issues/2473
|
|
47
|
+
view.scene.matrixWorldAutoUpdate = true;
|
|
46
48
|
|
|
47
49
|
// Instantiate three's VR Button
|
|
48
50
|
const vrButton = VRButton.createButton(view.renderer);
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
<script type="importmap">
|
|
18
18
|
{
|
|
19
19
|
"imports": {
|
|
20
|
-
"three": "https://cdn.jsdelivr.net/npm/three@0.
|
|
21
|
-
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.
|
|
20
|
+
"three": "https://cdn.jsdelivr.net/npm/three@0.170.0/build/three.module.js",
|
|
21
|
+
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.170.0/examples/jsm/"
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
</script>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "itowns",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.45.0",
|
|
4
4
|
"description": "A JS/WebGL framework for 3D geospatial data visualization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/Main.js",
|
|
@@ -9,32 +9,24 @@
|
|
|
9
9
|
"./widgets": "./lib/Utils/gui/Main.js"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
|
-
"lint": "eslint \"src/**/*.{js,ts,tsx}\" \"test/**/*.js\"
|
|
13
|
-
"
|
|
14
|
-
"doclint": "npm run doc -- -t templates/silent",
|
|
15
|
-
"test": "npm run lint -- --max-warnings=0 && npm run build && npm run test-with-coverage && npm run test-functional",
|
|
16
|
-
"test-dev": "npm run lint -- --max-warnings=0 && npm run build-dev && npm run test-with-coverage && npm run test-functional",
|
|
12
|
+
"lint": "eslint \"src/**/*.{js,ts,tsx}\" \"test/**/*.js\"",
|
|
13
|
+
"transpile": "cross-env BABEL_DISABLE_CACHE=1 babel src --out-dir lib --extensions .js,.ts",
|
|
17
14
|
"test-unit": "npm run base-test-unit test/unit",
|
|
18
|
-
"test-
|
|
15
|
+
"base-test-unit": "cross-env BABEL_DISABLE_CACHE=1 mocha --timeout 5000 --file test/unit/bootstrap.js --import=../../config/babel-register/register.mjs",
|
|
19
16
|
"test-with-coverage": "c8 -n src -r html cross-env npm run test-unit",
|
|
20
17
|
"test-with-coverage_lcov": "c8 -n src --reporter=lcov cross-env npm run test-unit",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"prepublishOnly": "npm run build && npm run transpile",
|
|
29
|
-
"prepare": "cross-env NO_UPDATE_NOTIFIER=true node ./config/prepare.mjs && node ./config/replace.config.mjs",
|
|
30
|
-
"watch": "cross-env BABEL_DISABLE_CACHE=1 babel --watch src --out-dir lib",
|
|
31
|
-
"changelog": "conventional-changelog -n ./config/conventionalChangelog/config.cjs -i changelog.md -s",
|
|
32
|
-
"bump": "if [ -z $npm_config_level ]; then grunt bump:minor; else grunt bump:$npm_config_level; fi && npm run changelog && npm install && git add -A && git commit --amend --no-edit",
|
|
33
|
-
"publish-next": "npm version prerelease --preid next && npm publish --access public --tag=next --provenance",
|
|
34
|
-
"publish-latest": "npm publish --access public --tag=latest --provenance"
|
|
18
|
+
"watch": "npm run transpile -- --watch",
|
|
19
|
+
"prepublishOnly": "npx copyfiles -u 1 \"../../examples/**/*\" ./examples/ && npx copyfiles -u 1 \"../../docs/**/*\" ./docs/ && npx copyfiles -u 1 \"../../dist/**/*\" ./dist/ ",
|
|
20
|
+
"postpublish": "node clean.cjs",
|
|
21
|
+
"publish-latest": "npm publish --access public --tag=latest --provenance",
|
|
22
|
+
"prerelease-next": "npm version prerelease --preid next",
|
|
23
|
+
"publish-next": "npm publish --access public --tag=next --provenance",
|
|
24
|
+
"update-package": "npm remove @itowns/geographic && npm install @itowns/geographic@$npm_package_version --save"
|
|
35
25
|
},
|
|
36
26
|
"c8": {
|
|
37
27
|
"exclude": [
|
|
28
|
+
"**/test/**",
|
|
29
|
+
"**/lib/**",
|
|
38
30
|
"**/*ThreeExtended",
|
|
39
31
|
"**/*src/Utils/placeObjectOnGround.js",
|
|
40
32
|
"**/*src/Parser/deprecated/LegacyGLTFLoader.js"
|
|
@@ -55,75 +47,29 @@
|
|
|
55
47
|
"bugs": {
|
|
56
48
|
"url": "https://github.com/iTowns/itowns/issues"
|
|
57
49
|
},
|
|
58
|
-
"homepage": "https://itowns.github.io/",
|
|
59
50
|
"dependencies": {
|
|
60
|
-
"@
|
|
51
|
+
"@itowns/geographic": "^2.45.0",
|
|
61
52
|
"@mapbox/vector-tile": "^2.0.3",
|
|
53
|
+
"@maplibre/maplibre-gl-style-spec": "^22.0.0",
|
|
62
54
|
"@tmcw/togeojson": "^5.8.1",
|
|
63
55
|
"@tweenjs/tween.js": "^25.0.0",
|
|
64
|
-
"3d-tiles-renderer": "^0.
|
|
56
|
+
"3d-tiles-renderer": "^0.4.4",
|
|
65
57
|
"brotli-compress": "^1.3.3",
|
|
66
58
|
"copc": "^0.0.6",
|
|
67
59
|
"earcut": "^3.0.0",
|
|
68
60
|
"js-priority-queue": "^0.1.5",
|
|
61
|
+
"lru-cache": "^11.0.1",
|
|
69
62
|
"pbf": "^4.0.1",
|
|
70
63
|
"shpjs": "^6.1.0",
|
|
71
64
|
"threads": "^1.7.0"
|
|
72
65
|
},
|
|
73
66
|
"peerDependencies": {
|
|
74
67
|
"proj4": "^2.12.1",
|
|
75
|
-
"three": "^0.
|
|
68
|
+
"three": "^0.170.0"
|
|
76
69
|
},
|
|
77
70
|
"devDependencies": {
|
|
78
|
-
"@babel/cli": "^7.25.6",
|
|
79
|
-
"@babel/core": "^7.25.2",
|
|
80
|
-
"@babel/plugin-transform-runtime": "^7.25.4",
|
|
81
|
-
"@babel/preset-env": "^7.25.4",
|
|
82
|
-
"@babel/preset-typescript": "^7.24.7",
|
|
83
|
-
"@babel/register": "^7.24.6",
|
|
84
|
-
"@stylistic/eslint-plugin": "^2.8.0",
|
|
85
|
-
"@types/proj4": "^2.5.5",
|
|
86
|
-
"@types/three": "^0.168.0",
|
|
87
|
-
"@typescript-eslint/eslint-plugin": "^8.5.0",
|
|
88
|
-
"@typescript-eslint/parser": "^8.5.0",
|
|
89
|
-
"@xmldom/xmldom": "^0.9.2",
|
|
90
|
-
"babel-inline-import-loader": "^1.0.1",
|
|
91
|
-
"babel-loader": "^9.2.1",
|
|
92
|
-
"babel-plugin-inline-import": "^3.0.0",
|
|
93
|
-
"babel-plugin-minify-dead-code-elimination": "^0.5.2",
|
|
94
|
-
"babel-plugin-minify-replace": "^0.5.0",
|
|
95
|
-
"babel-plugin-module-extension-resolver": "^1.0.0",
|
|
96
|
-
"babel-plugin-module-resolver": "^5.0.2",
|
|
97
|
-
"c8": "^10.1.2",
|
|
98
71
|
"chalk": "^5.3.0",
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"copyfiles": "^2.4.1",
|
|
103
|
-
"core-js": "^3.38.1",
|
|
104
|
-
"cross-env": "^7.0.3",
|
|
105
|
-
"eslint": "^8.55.0",
|
|
106
|
-
"eslint-config-airbnb-base": "^15.0.0",
|
|
107
|
-
"eslint-import-resolver-babel-module": "^5.3.2",
|
|
108
|
-
"eslint-plugin-import": "^2.30.0",
|
|
109
|
-
"eslint-plugin-tsdoc": "^0.3.0",
|
|
110
|
-
"eslint-webpack-plugin": "^4.2.0",
|
|
111
|
-
"github-url-from-git": "^1.5.0",
|
|
112
|
-
"grunt": "^1.6.1",
|
|
113
|
-
"grunt-bump": "^0.8.0",
|
|
114
|
-
"https-proxy-agent": "^7.0.5",
|
|
115
|
-
"jsdoc": "^4.0.3",
|
|
116
|
-
"mocha": "^10.7.3",
|
|
117
|
-
"proj4": "^2.12.1",
|
|
118
|
-
"puppeteer": "^23.3.1",
|
|
119
|
-
"q": "^1.5.1",
|
|
120
|
-
"replace-in-file": "^8.1.0",
|
|
121
|
-
"sinon": "^19.0.2",
|
|
122
|
-
"three": "^0.168.0",
|
|
123
|
-
"typescript": "^5.6.2",
|
|
124
|
-
"webgl-mock": "^0.1.7",
|
|
125
|
-
"webpack": "^5.94.0",
|
|
126
|
-
"webpack-cli": "^5.1.4",
|
|
127
|
-
"webpack-dev-server": "^5.1.0"
|
|
128
|
-
}
|
|
72
|
+
"copyfiles": "^2.4.1"
|
|
73
|
+
},
|
|
74
|
+
"homepage": "https://itowns.github.io/"
|
|
129
75
|
}
|
package/CODING.md
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
# Development guide
|
|
2
|
-
|
|
3
|
-
iTowns needs `nodejs` (10+) and `npm` (at least 6.x) installed on the system.
|
|
4
|
-
See the [node website](https://nodejs.org) to install node and npm.
|
|
5
|
-
|
|
6
|
-
## Coding rules
|
|
7
|
-
|
|
8
|
-
* Search and use existing methods to avoid duplicate code
|
|
9
|
-
* Avoid instance `class/object` in method (optimization with the garbage collector)
|
|
10
|
-
* Give explicite name to constants
|
|
11
|
-
* Avoid duplicate code and encapsulate to simplify
|
|
12
|
-
* For performance reasons, update objects only when needed
|
|
13
|
-
* Don't add dead code
|
|
14
|
-
* Remove obsolete comments
|
|
15
|
-
|
|
16
|
-
## Building
|
|
17
|
-
|
|
18
|
-
* Download dependencies: `npm install`
|
|
19
|
-
* Run the dev server:
|
|
20
|
-
* `npm start` (you can change the port: `npm start -- --port 3000`. If you
|
|
21
|
-
get an error message that is not related to the port being in use, please
|
|
22
|
-
update to last lts or stable version)
|
|
23
|
-
* Open `http://localhost:8080/`
|
|
24
|
-
* Make changes in the code, the browser will automatically reload on save
|
|
25
|
-
* Build iTowns to produce a single independent script:
|
|
26
|
-
* `npm run build`
|
|
27
|
-
* The script and its source-maps are generated into the `dist/` folder
|
|
28
|
-
* You can run the built script to verify it works OK:
|
|
29
|
-
* `python -m SimpleHTTPServer 8080` (change the port at your convenience)
|
|
30
|
-
* Open `http://localhost:8080/`
|
|
31
|
-
* Transpile itowns to ES5 to require it in your code:
|
|
32
|
-
* `npm run transpile`
|
|
33
|
-
* The transpiled source is in `lib/`
|
|
34
|
-
* You can then require `src/Main.js` in your code
|
|
35
|
-
* Test and lint changes: see test, lint and test-examples npm script
|
|
36
|
-
|
|
37
|
-
## Debugging
|
|
38
|
-
* `babel-inline-import-loader` prevents the source map debug in browser. If you
|
|
39
|
-
want launch server and debug with the original source map, run : `npm run
|
|
40
|
-
debug`.
|
|
41
|
-
* To debug iTowns package on your side project. You can link iTowns package with
|
|
42
|
-
`npm link ../path/iTowns/` in project folder and auto-transpile to `lib/` when
|
|
43
|
-
iTowns sources are modified with command `npm run watch` in iTowns folder.
|
|
44
|
-
|
|
45
|
-
## Testing
|
|
46
|
-
For unit and functional test, defines `HTTPS_PROXY` if you launch test behind a proxy.
|
|
47
|
-
|
|
48
|
-
In order to run the tests, [puppeteer](https://github.com/GoogleChrome/puppeteer)
|
|
49
|
-
needs to be installed. If installing puppeteer behind a proxy, use `HTTP_PROXY`,
|
|
50
|
-
`HTTPS_PROXY`, `NO_PROXY` to defines HTTP proxy settings that are used to download
|
|
51
|
-
and run Chromium.
|
|
52
|
-
|
|
53
|
-
If puppeteer fails to download Chrome, you can try with the [documented environment
|
|
54
|
-
variables](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#environment-variables).
|
|
55
|
-
Or you can download it manually, and then:
|
|
56
|
-
* install puppeteer without downloading Chrome:
|
|
57
|
-
`PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm install puppeteer`
|
|
58
|
-
* then use the env var `CHROME` to tell itowns/mocha/puppeteer what Chrome app
|
|
59
|
-
it should use: `CHROME=/opt/google/chrome-beta/chrome npm run test-examples`
|
|
60
|
-
|
|
61
|
-
Then tests can be run with five differents methods:
|
|
62
|
-
* `npm run test`: build and run all tests in iTowns (the one used by github action)
|
|
63
|
-
* `npm run test-dev`: build in development mode and run all tests in iTowns (to get more messages)
|
|
64
|
-
* `npm run test-unit`: run unit tests only
|
|
65
|
-
* `npm run test-functional`: run functional testing with examples only, use
|
|
66
|
-
`mocha -t 30000 --require test/functional/hooks_functional.js
|
|
67
|
-
test/functional/<test_case>.js` to run a single example
|
|
68
|
-
* `npm run test-with-coverage`: build and run all tests in iTowns and generate a
|
|
69
|
-
report on the coverage of the tests
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
When running tests on examples, some environment variables can be set:
|
|
73
|
-
* `SCREENSHOT_FOLDER`: take a screenshot at the end of each test and save it in
|
|
74
|
-
this folder. Example: `SCREENSHOT_FOLDER=/tmp/`
|
|
75
|
-
* `CHROME`: path to Chrome executable. If unspecified itowns will use the one
|
|
76
|
-
downloaded during puppeteer install.
|
|
77
|
-
* `DEBUG`: run Chrome in a window with the debug tools open.
|
|
78
|
-
* `REMOTE_DEBUGGING`: run Chrome in headless mode and set up remote debugging.
|
|
79
|
-
Example: `REMOTE_DEBUGGING=9222` will setup remote debugging on port 9222.
|
|
80
|
-
Then start another Chrome instance, browse to `chrome://inspect/#devices` and
|
|
81
|
-
add `localhost:9222` in Discover network targets.
|
|
82
|
-
|
|
83
|
-
Note: Chrome in headless mode doesn't support the WebGL `EXT_frag_depth`
|
|
84
|
-
extension. So rendering may differ and some bugs can only be present in headless
|
|
85
|
-
mode.
|
|
86
|
-
|
|
87
|
-
### Syntax in tests
|
|
88
|
-
|
|
89
|
-
[mochajs](https://mochajs.org/) is used for both type of tests. To avoid
|
|
90
|
-
problems with same name variables, keep them in the smallest scope. For example,
|
|
91
|
-
a variable should almost always be in the `it()` section of a test. However, it
|
|
92
|
-
can be useful to keep a single shared variable for a bunch of tests (in the same
|
|
93
|
-
file). For this, declare it in the `describe()` section, and set it (if
|
|
94
|
-
possible) in a `before()` section.
|
|
95
|
-
|
|
96
|
-
### Useful commands for continuous testing
|
|
97
|
-
|
|
98
|
-
If you wish to have unit tests to continuously run, you can append to your
|
|
99
|
-
running command `-- --watch`. You will be getting in this case `npm run
|
|
100
|
-
test-unit -- --watch`.
|
|
101
|
-
|
|
102
|
-
If you want to work on a single test and debug it, without having all the extra
|
|
103
|
-
output, you can use this command `npm run base-test-unit test/unit/3dtiles.js`
|
|
104
|
-
and of course replace 3dtiles.js with the correct filename. You can also append
|
|
105
|
-
the `-- --watch` flag as well. If you want disable reporting and keep error message
|
|
106
|
-
in console add `--reporter min`.
|
|
107
|
-
|
|
108
|
-
## Release
|
|
109
|
-
|
|
110
|
-
* `npm run changelog` generates changelog file.
|
|
111
|
-
* `npm run bump --level=minor` bump version, generates changelog file and commit (default level is minor).
|
|
112
|
-
|
|
113
|
-
## Contribute back
|
|
114
|
-
|
|
115
|
-
See [the contributor's guide](CONTRIBUTING.md) for more information on how to
|
|
116
|
-
contribute.
|
|
117
|
-
|
|
118
|
-
Note : You should not commit changes to `package-lock.json` if you're not using
|
|
119
|
-
npm >= 6 (particularly if you didn't make any change to the `package.json`
|
|
120
|
-
either).
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# How to contribute
|
|
2
|
-
|
|
3
|
-
Thanks for taking interest in iTowns !
|
|
4
|
-
|
|
5
|
-
In addition to contributing to the iTowns code, we appreciate many types of
|
|
6
|
-
contributions as well:
|
|
7
|
-
|
|
8
|
-
* Being active on the iTowns mailing lists (see above) by answering questions
|
|
9
|
-
and providing input on iTowns' direction.
|
|
10
|
-
* Showcasing your application built with iTowns : submit an issue with a link to
|
|
11
|
-
your demo on the [iTowns website
|
|
12
|
-
repository](https://github.com/iTowns/itowns.github.io/issues). Tag it with
|
|
13
|
-
the `demo` label.
|
|
14
|
-
* Writing tutorials, creating examples, and improving the reference
|
|
15
|
-
documentation. See the issues labeled
|
|
16
|
-
[doc](https://github.com/iTowns/itowns/labels/doc).
|
|
17
|
-
* Submitting issues as [described below](#submitting-an-issue).
|
|
18
|
-
* Triaging issues. Browse the [issues](https://github.com/iTowns/itowns/issues)
|
|
19
|
-
and comment on issues that are no longer reproducible or on issues for which
|
|
20
|
-
you have additional information.
|
|
21
|
-
|
|
22
|
-
If you don't know what to do but still want to contribute, check:
|
|
23
|
-
|
|
24
|
-
* Issues labeled [beginner](https://github.com/iTowns/itowns/labels/beginner)
|
|
25
|
-
* Issues labeled [help_wanted](https://github.com/iTowns/itowns/label/help_wanted)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
## Submitting an Issue
|
|
29
|
-
|
|
30
|
-
If you think you've found a bug in iTowns, first search the [iTowns
|
|
31
|
-
issues](https://github.com/iTowns/itowns/issues). If an issue already exists,
|
|
32
|
-
you can add a comment with any additional information. Use reactions (not
|
|
33
|
-
comments) to express your interest. This helps prioritize issues.
|
|
34
|
-
|
|
35
|
-
If a related issue does not exist, submit a new one. Please include as much of
|
|
36
|
-
the following information as is relevant:
|
|
37
|
-
* Sample data to reproduce the issue.
|
|
38
|
-
* Screenshot, video or animated .gif if appropriate (try
|
|
39
|
-
[LICEcap](http://www.cockos.com/licecap/)). Screenshots are particularly
|
|
40
|
-
useful for exceptions and rendering artifacts. If it is a rendering artifact,
|
|
41
|
-
also include the output of [webglreport.com](http://webglreport.com/) for the
|
|
42
|
-
computer you have the problem on.
|
|
43
|
-
* Link to the thread if this was discussed on the iTowns mailing list or
|
|
44
|
-
elsewhere.
|
|
45
|
-
* Your operating system and version, browser and version, and video card. Are
|
|
46
|
-
they all up-to-date? Is the issue specific to one of them ?
|
|
47
|
-
* The exact version of iTowns. Did this work in a previous version ?
|
|
48
|
-
* Ideas for how to fix or workaround the issue. Also mention if you are willing
|
|
49
|
-
to help fix it. If so, the iTowns team can often provide guidance and the
|
|
50
|
-
issue may get fixed more quickly with your help.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
## Ask a question, suggest an improvement
|
|
54
|
-
|
|
55
|
-
If you have a question or a suggestion not related to a bug iTowns, you can search the
|
|
56
|
-
[iTowns discussions](https://github.com/iTowns/itowns/discussions). If a discussion about
|
|
57
|
-
your question or suggestion already exists, you can add a comment or upvote the original
|
|
58
|
-
comment in the discussion. Otherwise, you can create a new discussion, detailing your
|
|
59
|
-
question or suggestion.
|
|
60
|
-
|
|
61
|
-
We recommend the use of [iTowns discussions](https://github.com/iTowns/itowns/discussions)
|
|
62
|
-
for suggestions and questions.
|
|
63
|
-
However, there is another way of suggesting improvements or asking questions, which is
|
|
64
|
-
through iTowns mailing lists. There is a user mailing list and a developer mailing list.
|
|
65
|
-
|
|
66
|
-
You can subscribe to the mailing lists here:
|
|
67
|
-
|
|
68
|
-
* Developer: https://lists.osgeo.org/mailman/listinfo/itowns-dev
|
|
69
|
-
* User: https://lists.osgeo.org/mailman/listinfo/itowns-user
|
|
70
|
-
|
|
71
|
-
The mailing list archives are here:
|
|
72
|
-
|
|
73
|
-
* Developer: https://lists.osgeo.org/pipermail/itowns-dev/
|
|
74
|
-
* User: https://lists.osgeo.org/pipermail/itowns-user/
|
|
75
|
-
|
|
76
|
-
If you cannot find any information on your problem in the archive, you can start
|
|
77
|
-
a new thread by sending an email to the list, and someone will probably answer
|
|
78
|
-
with a solution.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
## Fixing a bug, developing a feature or coding something
|
|
83
|
-
|
|
84
|
-
You are more than welcome to develop to iTowns, may it be a fix, a new feature,
|
|
85
|
-
documentation, or even a typo in a comment. For more information on the setup to
|
|
86
|
-
for developing, follow the [Coding guide](CODING.md).
|
|
87
|
-
|
|
88
|
-
## Opening a Pull Request
|
|
89
|
-
|
|
90
|
-
We welcome pull requests with great interest. We try to promptly review them,
|
|
91
|
-
provide feedback, and merge. Following the tips in this guide will help your
|
|
92
|
-
pull request be merged quickly.
|
|
93
|
-
|
|
94
|
-
If you plan to make a major change, please open an issue first. Pull requests
|
|
95
|
-
for small features and bug fixes can generally just be opened without much
|
|
96
|
-
discussion.
|
|
97
|
-
|
|
98
|
-
### Pull Request Guidelines
|
|
99
|
-
|
|
100
|
-
Code quality matters. Here are some advices to read before submitting a Pull
|
|
101
|
-
Request.
|
|
102
|
-
|
|
103
|
-
* Verify your code passes the linter and tests (`npm run test`). See the
|
|
104
|
-
[Testing guide](CODING.md#Testing).
|
|
105
|
-
* Write meaningful commit messages, by following the [Angular
|
|
106
|
-
convention](https://github.com/bcoe/conventional-changelog-standard/blob/master/convention.md).
|
|
107
|
-
Here is a comprehensive list of all commit types we support :
|
|
108
|
-
* `feat`, `features` or `feature` for some feature addition ;
|
|
109
|
-
* `fix` for a bug fix ;
|
|
110
|
-
* `perf` for some performance improvements;
|
|
111
|
-
* `revert` for an undo operation ;
|
|
112
|
-
* `doc` or `docs` for some changes on the documentation ;
|
|
113
|
-
* `refactor`, `refacto` or `refactoring` for some code refactoring ;
|
|
114
|
-
* `test` or `tests` for changes test related ;
|
|
115
|
-
* `chore`, `rename` or `workflow` for some work on package versions or
|
|
116
|
-
dependency updates, some file renaming or some changes on workflow files ;
|
|
117
|
-
* `example` or `examples` for changes on examples or addition of a new one.
|
|
118
|
-
* Keep the git history clean, rebase your work on the `master` branch of this
|
|
119
|
-
repository.
|
|
120
|
-
* If this is your first contribution to iTowns, add your name to
|
|
121
|
-
[CONTRIBUTORS.md](https://github.com/iTowns/itowns/blob/master/CONTRIBUTORS.md).
|
|
122
|
-
* If your pull request fixes an existing issue, include a link to the issue in
|
|
123
|
-
the description. Likewise, if your pull request fixes an issue reported on the
|
|
124
|
-
iTowns mailing list, include a link to the thread in the list archive.
|
|
125
|
-
* If your pull request needs additional work, add the `in progress` label,
|
|
126
|
-
include a [task list](https://github.com/blog/1375%0A-task-lists-in-gfm-issues-pulls-comments),
|
|
127
|
-
or better, split it in several PR.
|
|
128
|
-
* If you added new identifiers to the iTowns API:
|
|
129
|
-
* Include reference documentation with code examples.
|
|
130
|
-
* If your change adds significant features, provide a demo.
|
|
131
|
-
* If you added third-party libraries, including new version of existing
|
|
132
|
-
libraries, update [LICENSE.md](LICENSE.md). If you plan to add a third-party
|
|
133
|
-
library, start a new issue first.
|
|
134
|
-
* Split the PR if it contains features from different scopes
|
|
135
|
-
* Squash all commits having the same scope
|
|
136
|
-
|
|
137
|
-
## IP
|
|
138
|
-
|
|
139
|
-
iTowns is Licenced under a dual licence CeCILL-B v1.0 and MIT (See
|
|
140
|
-
[LICENSE.md](LICENSE.md)). If you want to include your code in the iTowns
|
|
141
|
-
project, you have to licence the code under these same licences. You stay author
|
|
142
|
-
of your work.
|
|
143
|
-
|
|
144
|
-
You should also do an IP review for your contribution, to ensure that you have
|
|
145
|
-
all rights to the code and that no patent apply to it.
|
|
146
|
-
|
|
147
|
-
## Resources
|
|
148
|
-
|
|
149
|
-
This CONTRIBUTING documentation has been inspired by the Cesium Contributing doc:
|
|
150
|
-
* https://github.com/AnalyticalGraphicsInc/cesium/blob/master/CONTRIBUTING.md
|