itowns 2.42.1-next.2 → 2.42.1-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/debug.js +1 -1
  2. package/dist/debug.js.map +1 -1
  3. package/dist/itowns.js +1 -1
  4. package/dist/itowns.js.map +1 -1
  5. package/dist/itowns_widgets.js +1 -1
  6. package/dist/itowns_widgets.js.map +1 -1
  7. package/examples/{.eslintrc.js → .eslintrc.cjs} +1 -1
  8. package/examples/effects_stereo.html +2 -2
  9. package/examples/entwine_simple_loader.html +24 -8
  10. package/examples/misc_collada.html +2 -2
  11. package/examples/misc_instancing.html +1 -1
  12. package/examples/source_file_gpx_3d.html +2 -2
  13. package/examples/source_stream_wfs_25d.html +11 -11
  14. package/examples/source_stream_wfs_3d.html +1 -1
  15. package/examples/vector_tile_3d_mesh.html +2 -2
  16. package/examples/vector_tile_raster_2d.html +1 -1
  17. package/examples/vector_tile_raster_3d.html +1 -1
  18. package/examples/view_25d_map.html +2 -2
  19. package/examples/view_3d_map.html +3 -3
  20. package/examples/view_3d_map_webxr.html +1 -1
  21. package/examples/view_3d_mns_map.html +3 -3
  22. package/examples/view_immersive.html +1 -1
  23. package/examples/view_multi_25d.html +2 -2
  24. package/examples/widgets_minimap.html +1 -1
  25. package/examples/widgets_searchbar.html +2 -2
  26. package/lib/Controls/FirstPersonControls.js +5 -12
  27. package/lib/Controls/FlyControls.js +4 -13
  28. package/lib/Controls/GlobeControls.js +33 -43
  29. package/lib/Controls/PlanarControls.js +9 -20
  30. package/lib/Controls/StateControl.js +2 -11
  31. package/lib/Controls/StreetControls.js +14 -24
  32. package/lib/Converter/Feature2Mesh.js +77 -70
  33. package/lib/Converter/Feature2Texture.js +15 -25
  34. package/lib/Converter/convertToTile.js +16 -26
  35. package/lib/Converter/textureConverter.js +9 -19
  36. package/lib/Core/3DTiles/C3DTBatchTable.js +5 -13
  37. package/lib/Core/3DTiles/C3DTBatchTableHierarchyExtension.js +1 -8
  38. package/lib/Core/3DTiles/C3DTBoundingVolume.js +17 -27
  39. package/lib/Core/3DTiles/C3DTExtensions.js +1 -8
  40. package/lib/Core/3DTiles/C3DTFeature.js +3 -10
  41. package/lib/Core/3DTiles/C3DTilesEnums.js +3 -11
  42. package/lib/Core/3DTiles/C3DTileset.js +7 -16
  43. package/lib/Core/3DTiles/utils/BinaryPropertyAccessor.js +5 -11
  44. package/lib/Core/AnimationPlayer.js +2 -11
  45. package/lib/Core/Deprecated/Undeprecator.js +9 -20
  46. package/lib/Core/EntwinePointTileNode.js +6 -16
  47. package/lib/Core/Feature.js +16 -30
  48. package/lib/Core/Geographic/CoordStars.js +3 -12
  49. package/lib/Core/Geographic/Coordinates.js +12 -22
  50. package/lib/Core/Geographic/Crs.js +7 -15
  51. package/lib/Core/Geographic/Extent.js +36 -47
  52. package/lib/Core/Geographic/GeoidGrid.js +6 -16
  53. package/lib/Core/Label.js +7 -17
  54. package/lib/Core/MainLoop.js +7 -16
  55. package/lib/Core/Math/Ellipsoid.js +6 -17
  56. package/lib/Core/Picking.js +10 -20
  57. package/lib/Core/PointCloudNode.js +2 -11
  58. package/lib/Core/PotreeNode.js +4 -13
  59. package/lib/Core/Prefab/Globe/Atmosphere.js +17 -26
  60. package/lib/Core/Prefab/Globe/BuilderEllipsoidTile.js +6 -16
  61. package/lib/Core/Prefab/Globe/GlobeLayer.js +19 -28
  62. package/lib/Core/Prefab/Globe/SkyShader.js +2 -11
  63. package/lib/Core/Prefab/GlobeView.js +27 -45
  64. package/lib/Core/Prefab/Planar/PlanarLayer.js +11 -20
  65. package/lib/Core/Prefab/Planar/PlanarTileBuilder.js +6 -16
  66. package/lib/Core/Prefab/PlanarView.js +10 -25
  67. package/lib/Core/Prefab/TileBuilder.js +13 -22
  68. package/lib/Core/Prefab/computeBufferTileGeometry.js +12 -16
  69. package/lib/Core/Scheduler/Cache.js +2 -10
  70. package/lib/Core/Scheduler/CancelledCommandException.js +1 -8
  71. package/lib/Core/Scheduler/Scheduler.js +15 -23
  72. package/lib/Core/Style.js +26 -40
  73. package/lib/Core/System/Capabilities.js +2 -13
  74. package/lib/Core/TileGeometry.js +13 -15
  75. package/lib/Core/TileMesh.js +6 -15
  76. package/lib/Core/View.js +43 -58
  77. package/lib/Layer/C3DTilesLayer.js +29 -41
  78. package/lib/Layer/ColorLayer.js +10 -16
  79. package/lib/Layer/ElevationLayer.js +7 -14
  80. package/lib/Layer/EntwinePointTileLayer.js +11 -18
  81. package/lib/Layer/FeatureGeometryLayer.js +9 -16
  82. package/lib/Layer/GeoidLayer.js +6 -15
  83. package/lib/Layer/GeometryLayer.js +11 -17
  84. package/lib/Layer/InfoLayer.js +5 -14
  85. package/lib/Layer/LabelLayer.js +22 -32
  86. package/lib/Layer/Layer.js +16 -26
  87. package/lib/Layer/LayerUpdateState.js +1 -8
  88. package/lib/Layer/LayerUpdateStrategy.js +7 -18
  89. package/lib/Layer/OrientedImageLayer.js +15 -25
  90. package/lib/Layer/PointCloudLayer.js +27 -24
  91. package/lib/Layer/PotreeLayer.js +8 -18
  92. package/lib/Layer/RasterLayer.js +9 -17
  93. package/lib/Layer/ReferencingLayerProperties.js +1 -8
  94. package/lib/Layer/TiledGeometryLayer.js +37 -33
  95. package/lib/Main.js +86 -707
  96. package/lib/MainBundle.js +4 -34
  97. package/lib/Parser/B3dmParser.js +80 -131
  98. package/lib/Parser/CameraCalibrationParser.js +5 -14
  99. package/lib/Parser/GDFParser.js +11 -22
  100. package/lib/Parser/GLTFParser.js +88 -0
  101. package/lib/Parser/GTXParser.js +9 -21
  102. package/lib/Parser/GeoJsonParser.js +14 -22
  103. package/lib/Parser/GpxParser.js +7 -14
  104. package/lib/Parser/ISGParser.js +19 -28
  105. package/lib/Parser/KMLParser.js +7 -14
  106. package/lib/Parser/LASLoader.js +31 -21
  107. package/lib/Parser/LASParser.js +10 -17
  108. package/lib/Parser/MapBoxUrlParser.js +2 -9
  109. package/lib/Parser/PntsParser.js +4 -14
  110. package/lib/Parser/PotreeBinParser.js +8 -16
  111. package/lib/Parser/PotreeCinParser.js +3 -12
  112. package/lib/Parser/ShapefileParser.js +11 -18
  113. package/lib/Parser/VectorTileParser.js +23 -31
  114. package/lib/Parser/XbilParser.js +5 -13
  115. package/lib/Parser/deprecated/LegacyGLTFLoader.js +2 -12
  116. package/lib/Process/3dTilesProcessing.js +14 -27
  117. package/lib/Process/FeatureProcessing.js +14 -22
  118. package/lib/Process/LayeredMaterialNodeProcessing.js +19 -28
  119. package/lib/Process/ObjectRemovalHelper.js +2 -9
  120. package/lib/Process/handlerNodeError.js +1 -7
  121. package/lib/Provider/3dTilesProvider.js +32 -29
  122. package/lib/Provider/DataSourceProvider.js +2 -9
  123. package/lib/Provider/Fetcher.js +40 -22
  124. package/lib/Provider/PointCloudProvider.js +7 -19
  125. package/lib/Provider/TileProvider.js +4 -12
  126. package/lib/Provider/URLBuilder.js +4 -12
  127. package/lib/Renderer/Camera.js +7 -17
  128. package/lib/Renderer/Color.js +3 -11
  129. package/lib/Renderer/ColorLayersOrdering.js +14 -22
  130. package/lib/Renderer/CommonMaterial.js +3 -12
  131. package/lib/Renderer/Label2DRenderer.js +5 -16
  132. package/lib/Renderer/LayeredMaterial.js +33 -53
  133. package/lib/Renderer/OBB.js +12 -21
  134. package/lib/Renderer/OrientedImageCamera.js +2 -11
  135. package/lib/Renderer/OrientedImageMaterial.js +17 -35
  136. package/lib/Renderer/PointsMaterial.js +224 -94
  137. package/lib/Renderer/RasterTile.js +18 -30
  138. package/lib/Renderer/RenderMode.js +2 -9
  139. package/lib/Renderer/Shader/ShaderChunk.js +5 -23
  140. package/lib/Renderer/Shader/ShaderUtils.js +2 -9
  141. package/lib/Renderer/SphereHelper.js +2 -11
  142. package/lib/Renderer/WebXR.js +2 -11
  143. package/lib/Renderer/c3DEngine.js +20 -53
  144. package/lib/Source/C3DTilesGoogleSource.js +76 -0
  145. package/lib/Source/C3DTilesIonSource.js +6 -13
  146. package/lib/Source/C3DTilesSource.js +5 -12
  147. package/lib/Source/EntwinePointTileSource.js +12 -19
  148. package/lib/Source/FileSource.js +7 -14
  149. package/lib/Source/OrientedImageSource.js +6 -14
  150. package/lib/Source/PotreeSource.js +9 -16
  151. package/lib/Source/Source.js +26 -39
  152. package/lib/Source/TMSSource.js +11 -22
  153. package/lib/Source/VectorTilesSource.js +75 -34
  154. package/lib/Source/WFSSource.js +7 -14
  155. package/lib/Source/WMSSource.js +5 -12
  156. package/lib/Source/WMTSSource.js +3 -10
  157. package/lib/ThreeExtended/capabilities/WebGL.js +1 -8
  158. package/lib/ThreeExtended/libs/ktx-parse.module.js +2 -256
  159. package/lib/ThreeExtended/libs/zstddec.module.js +2 -8
  160. package/lib/ThreeExtended/loaders/DDSLoader.js +10 -16
  161. package/lib/ThreeExtended/loaders/DRACOLoader.js +14 -19
  162. package/lib/ThreeExtended/loaders/GLTFLoader.js +124 -129
  163. package/lib/ThreeExtended/loaders/KTX2Loader.js +73 -78
  164. package/lib/ThreeExtended/utils/BufferGeometryUtils.js +40 -59
  165. package/lib/ThreeExtended/utils/WorkerPool.js +2 -9
  166. package/lib/Utils/CameraUtils.js +32 -44
  167. package/lib/Utils/DEMUtils.js +8 -19
  168. package/lib/Utils/FeaturesUtils.js +8 -16
  169. package/lib/Utils/Gradients.js +16 -0
  170. package/lib/Utils/OrientationUtils.js +8 -18
  171. package/lib/Utils/ThreeUtils.js +2 -9
  172. package/lib/Utils/gui/C3DTilesStyle.js +7 -15
  173. package/lib/Utils/gui/Main.js +7 -48
  174. package/lib/Utils/gui/Minimap.js +12 -20
  175. package/lib/Utils/gui/Navigation.js +6 -14
  176. package/lib/Utils/gui/Scale.js +11 -19
  177. package/lib/Utils/gui/Searchbar.js +5 -13
  178. package/lib/Utils/gui/Widget.js +1 -8
  179. package/lib/Utils/placeObjectOnGround.js +13 -23
  180. package/package.json +13 -8
@@ -1,17 +1,9 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.checkNodeElevationTextureValidity = checkNodeElevationTextureValidity;
7
- exports.computeMinMaxElevation = computeMinMaxElevation;
8
- exports.insertSignificantValuesFromParent = insertSignificantValuesFromParent;
9
- var _DEMUtils = require("../Utils/DEMUtils");
1
+ import { readTextureValueWithBilinearFiltering } from "../Utils/DEMUtils.js";
10
2
  function minMax4Corners(texture, pitch, options) {
11
3
  const u = pitch.x;
12
4
  const v = pitch.y;
13
5
  const w = pitch.z;
14
- const z = [(0, _DEMUtils.readTextureValueWithBilinearFiltering)(options, texture, u, v), (0, _DEMUtils.readTextureValueWithBilinearFiltering)(options, texture, u + w, v), (0, _DEMUtils.readTextureValueWithBilinearFiltering)(options, texture, u + w, v + w), (0, _DEMUtils.readTextureValueWithBilinearFiltering)(options, texture, u, v + w)].filter(val => val != undefined);
6
+ const z = [readTextureValueWithBilinearFiltering(options, texture, u, v), readTextureValueWithBilinearFiltering(options, texture, u + w, v), readTextureValueWithBilinearFiltering(options, texture, u + w, v + w), readTextureValueWithBilinearFiltering(options, texture, u, v + w)].filter(val => val != undefined);
15
7
  if (z.length) {
16
8
  return {
17
9
  min: Math.min(...z),
@@ -36,7 +28,7 @@ function minMax4Corners(texture, pitch, options) {
36
28
  * @param {number} [options.zmax] The maximum elevation value after which it will be clamped
37
29
  * @return {Object} The minimum and maximum elevation.
38
30
  */
39
- function computeMinMaxElevation(texture, pitch, options) {
31
+ export function computeMinMaxElevation(texture, pitch, options) {
40
32
  const {
41
33
  width,
42
34
  height,
@@ -99,13 +91,13 @@ function computeMinMaxElevation(texture, pitch, options) {
99
91
  }
100
92
 
101
93
  // We check if the elevation texture has some significant values through corners
102
- function checkNodeElevationTextureValidity(data, noDataValue) {
94
+ export function checkNodeElevationTextureValidity(data, noDataValue) {
103
95
  const l = data.length;
104
96
  return data[0] > noDataValue && data[l - 1] > noDataValue && data[Math.sqrt(l) - 1] > noDataValue && data[l - Math.sqrt(l)] > noDataValue;
105
97
  }
106
98
 
107
99
  // This function replaces noDataValue by significant values from parent texture (or 0)
108
- function insertSignificantValuesFromParent(data) {
100
+ export function insertSignificantValuesFromParent(data) {
109
101
  let dataParent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => 0;
110
102
  let noDataValue = arguments.length > 2 ? arguments[2] : undefined;
111
103
  for (let i = 0, l = data.length; i < l; ++i) {
@@ -1,15 +1,6 @@
1
- "use strict";
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
1
  /* eslint-disable */
11
2
  // Copy LegacyGLTFLoader file from THREE v110 because it was removed in THREE v111
12
-
3
+ import * as THREE from 'three';
13
4
  const threeExamples = {};
14
5
  /**
15
6
  * @author Rich Tibbett / https://github.com/richtr
@@ -1373,5 +1364,4 @@ threeExamples.LegacyGLTFLoader = function () {
1373
1364
  };
1374
1365
  return LegacyGLTFLoader;
1375
1366
  }();
1376
- var _default = threeExamples.LegacyGLTFLoader;
1377
- exports.default = _default;
1367
+ export default threeExamples.LegacyGLTFLoader;
@@ -1,21 +1,8 @@
1
- "use strict";
1
+ import * as THREE from 'three';
2
+ import ObjectRemovalHelper from "./ObjectRemovalHelper.js";
3
+ import { C3DTilesBoundingVolumeTypes } from "../Core/3DTiles/C3DTilesEnums.js";
4
+ import { C3DTILES_LAYER_EVENTS } from "../Layer/C3DTilesLayer.js";
2
5
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.$3dTilesCulling = $3dTilesCulling;
8
- exports.$3dTilesSubdivisionControl = $3dTilesSubdivisionControl;
9
- exports.computeNodeSSE = computeNodeSSE;
10
- exports.init3dTilesLayer = init3dTilesLayer;
11
- exports.pre3dTilesUpdate = pre3dTilesUpdate;
12
- exports.process3dTilesNode = process3dTilesNode;
13
- var THREE = _interopRequireWildcard(require("three"));
14
- var _ObjectRemovalHelper = _interopRequireDefault(require("./ObjectRemovalHelper"));
15
- var _C3DTilesEnums = require("../Core/3DTiles/C3DTilesEnums");
16
- var _C3DTilesLayer = require("../Layer/C3DTilesLayer");
17
- 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); }
18
- 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; }
19
6
  /** @module 3dTilesProcessing
20
7
  */
21
8
 
@@ -31,7 +18,7 @@ function requestNewTile(view, scheduler, geometryLayer, metadata, parent, redraw
31
18
  redraw
32
19
  };
33
20
  geometryLayer.dispatchEvent({
34
- type: _C3DTilesLayer.C3DTILES_LAYER_EVENTS.ON_TILE_REQUESTED,
21
+ type: C3DTILES_LAYER_EVENTS.ON_TILE_REQUESTED,
35
22
  metadata
36
23
  });
37
24
  return scheduler.execute(command);
@@ -117,7 +104,7 @@ function _subdivideNodeSubstractive(context, layer, node) {
117
104
  * @param {THREE.Matrix4} tileMatrixWorld The node matrix world
118
105
  * @return {boolean} return true if the node is visible
119
106
  */
120
- function $3dTilesCulling(layer, camera, node, tileMatrixWorld) {
107
+ export function $3dTilesCulling(layer, camera, node, tileMatrixWorld) {
121
108
  // For viewer Request Volume
122
109
  // https://github.com/AnalyticalGraphicsInc/3d-tiles-samples/tree/master/tilesets/TilesetWithRequestVolume
123
110
  if (node.viewerRequestVolume && node.viewerRequestVolume.viewerRequestVolumeCulling(camera, tileMatrixWorld)) {
@@ -148,7 +135,7 @@ function cleanup3dTileset(layer, n) {
148
135
  // skip non-tiles elements
149
136
  if (!n.children[i].content) {
150
137
  if (canCleanCompletely) {
151
- _ObjectRemovalHelper.default.removeChildrenAndCleanupRecursively(n.children[i].layer, n.children[i]);
138
+ ObjectRemovalHelper.removeChildrenAndCleanupRecursively(n.children[i].layer, n.children[i]);
152
139
  }
153
140
  } else {
154
141
  cleanup3dTileset(layer, n.children[i], depth + 1);
@@ -173,7 +160,7 @@ function cleanup3dTileset(layer, n) {
173
160
  }
174
161
 
175
162
  // this is a layer
176
- function pre3dTilesUpdate() {
163
+ export function pre3dTilesUpdate() {
177
164
  if (!this.visible) {
178
165
  return [];
179
166
  }
@@ -202,13 +189,13 @@ function pre3dTilesUpdate() {
202
189
  }
203
190
  const boundingVolumeBox = new THREE.Box3();
204
191
  const boundingVolumeSphere = new THREE.Sphere();
205
- function computeNodeSSE(camera, node) {
192
+ export function computeNodeSSE(camera, node) {
206
193
  node.distance = 0;
207
- if (node.boundingVolume.initialVolumeType === _C3DTilesEnums.C3DTilesBoundingVolumeTypes.box) {
194
+ if (node.boundingVolume.initialVolumeType === C3DTilesBoundingVolumeTypes.box) {
208
195
  boundingVolumeBox.copy(node.boundingVolume.volume);
209
196
  boundingVolumeBox.applyMatrix4(node.matrixWorld);
210
197
  node.distance = boundingVolumeBox.distanceToPoint(camera.camera3D.position);
211
- } else if (node.boundingVolume.initialVolumeType === _C3DTilesEnums.C3DTilesBoundingVolumeTypes.sphere || node.boundingVolume.initialVolumeType === _C3DTilesEnums.C3DTilesBoundingVolumeTypes.region) {
198
+ } else if (node.boundingVolume.initialVolumeType === C3DTilesBoundingVolumeTypes.sphere || node.boundingVolume.initialVolumeType === C3DTilesBoundingVolumeTypes.region) {
212
199
  boundingVolumeSphere.copy(node.boundingVolume.volume);
213
200
  boundingVolumeSphere.applyMatrix4(node.matrixWorld);
214
201
  // TODO: see https://github.com/iTowns/itowns/issues/800
@@ -222,7 +209,7 @@ function computeNodeSSE(camera, node) {
222
209
  }
223
210
  return camera._preSSE * (node.geometricError / node.distance);
224
211
  }
225
- function init3dTilesLayer(view, scheduler, layer, rootTile) {
212
+ export function init3dTilesLayer(view, scheduler, layer, rootTile) {
226
213
  return requestNewTile(view, scheduler, layer, rootTile, undefined, true).then(tile => {
227
214
  layer.object3d.add(tile);
228
215
  tile.updateMatrixWorld();
@@ -256,7 +243,7 @@ function markForDeletion(layer, elt) {
256
243
  * @param {Function} [subdivisionTest=$3dTilesSubdivisionControl] The subdivision test method.
257
244
  * @return {Function} { description_of_the_return_value }
258
245
  */
259
- function process3dTilesNode() {
246
+ export function process3dTilesNode() {
260
247
  let cullingTest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : $3dTilesCulling;
261
248
  let subdivisionTest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : $3dTilesSubdivisionControl;
262
249
  return function (context, layer, node) {
@@ -304,7 +291,7 @@ function process3dTilesNode() {
304
291
  * @param {THREE.Object3D} node The 3d tile node
305
292
  * @return {boolean}
306
293
  */
307
- function $3dTilesSubdivisionControl(context, layer, node) {
294
+ export function $3dTilesSubdivisionControl(context, layer, node) {
308
295
  if (layer.tileset.tiles[node.tileId].children === undefined) {
309
296
  return false;
310
297
  }
@@ -1,34 +1,27 @@
1
- "use strict";
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 _LayerUpdateState = _interopRequireDefault(require("../Layer/LayerUpdateState"));
9
- var _ObjectRemovalHelper = _interopRequireDefault(require("./ObjectRemovalHelper"));
10
- var _handlerNodeError = _interopRequireDefault(require("./handlerNodeError"));
11
- var _Coordinates = _interopRequireDefault(require("../Core/Geographic/Coordinates"));
12
- var _GeoidLayer = require("../Layer/GeoidLayer");
13
- const coord = new _Coordinates.default('EPSG:4326', 0, 0, 0);
14
- var _default = {
1
+ import LayerUpdateState from "../Layer/LayerUpdateState.js";
2
+ import ObjectRemovalHelper from "./ObjectRemovalHelper.js";
3
+ import handlingError from "./handlerNodeError.js";
4
+ import Coordinates from "../Core/Geographic/Coordinates.js";
5
+ import { geoidLayerIsVisible } from "../Layer/GeoidLayer.js";
6
+ const coord = new Coordinates('EPSG:4326', 0, 0, 0);
7
+ export default {
15
8
  update(context, layer, node) {
16
9
  if (!node.parent && node.children.length) {
17
10
  // if node has been removed dispose three.js resource
18
- _ObjectRemovalHelper.default.removeChildrenAndCleanupRecursively(layer, node);
11
+ ObjectRemovalHelper.removeChildrenAndCleanupRecursively(layer, node);
19
12
  return;
20
13
  }
21
14
  if (!node.visible) {
22
15
  return;
23
16
  }
24
17
  if (node.layerUpdateState[layer.id] === undefined) {
25
- node.layerUpdateState[layer.id] = new _LayerUpdateState.default();
18
+ node.layerUpdateState[layer.id] = new LayerUpdateState();
26
19
  } else if (!node.layerUpdateState[layer.id].canTryUpdate()) {
27
20
  var _node$link$layer$id;
28
21
  // toggle visibility features
29
22
  (_node$link$layer$id = node.link[layer.id]) === null || _node$link$layer$id === void 0 ? void 0 : _node$link$layer$id.forEach(f => {
30
23
  f.layer.object3d.add(f);
31
- f.meshes.position.z = (0, _GeoidLayer.geoidLayerIsVisible)(layer.parent) ? node.geoidHeight : 0;
24
+ f.meshes.position.z = geoidLayerIsVisible(layer.parent) ? node.geoidHeight : 0;
32
25
  f.meshes.updateMatrixWorld();
33
26
  });
34
27
  return;
@@ -61,14 +54,14 @@ var _default = {
61
54
  if (featureMesh) {
62
55
  node.link[layer.id] = node.link[layer.id] || [];
63
56
  featureMesh.as(context.view.referenceCrs);
64
- featureMesh.meshes.position.z = (0, _GeoidLayer.geoidLayerIsVisible)(layer.parent) ? node.geoidHeight : 0;
57
+ featureMesh.meshes.position.z = geoidLayerIsVisible(layer.parent) ? node.geoidHeight : 0;
65
58
  featureMesh.updateMatrixWorld();
66
59
  if (layer.onMeshCreated) {
67
60
  layer.onMeshCreated(featureMesh, context);
68
61
  }
69
62
  if (!node.parent) {
70
63
  // TODO: Clean cache needs a refactory, because it isn't really efficient and used
71
- _ObjectRemovalHelper.default.removeChildrenAndCleanupRecursively(layer, featureMesh);
64
+ ObjectRemovalHelper.removeChildrenAndCleanupRecursively(layer, featureMesh);
72
65
  } else {
73
66
  layer.object3d.add(featureMesh);
74
67
  node.link[layer.id].push(featureMesh);
@@ -79,7 +72,6 @@ var _default = {
79
72
  node.layerUpdateState[layer.id].failure(1, true);
80
73
  }
81
74
  });
82
- }, err => (0, _handlerNodeError.default)(err, node, layer, node.level, context.view));
75
+ }, err => handlingError(err, node, layer, node.level, context.view));
83
76
  }
84
- };
85
- exports.default = _default;
77
+ };
@@ -1,20 +1,8 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.SIZE_TEXTURE_TILE = exports.SIZE_DIAGONAL_TEXTURE = void 0;
8
- exports.removeLayeredMaterialNodeLayer = removeLayeredMaterialNodeLayer;
9
- exports.updateLayeredMaterialNodeElevation = updateLayeredMaterialNodeElevation;
10
- exports.updateLayeredMaterialNodeImagery = updateLayeredMaterialNodeImagery;
11
- var _LayerUpdateStrategy = require("../Layer/LayerUpdateStrategy");
12
- var _LayerUpdateState = _interopRequireDefault(require("../Layer/LayerUpdateState"));
13
- var _handlerNodeError = _interopRequireDefault(require("./handlerNodeError"));
14
- const SIZE_TEXTURE_TILE = 256;
15
- exports.SIZE_TEXTURE_TILE = SIZE_TEXTURE_TILE;
16
- const SIZE_DIAGONAL_TEXTURE = (2 * (SIZE_TEXTURE_TILE * SIZE_TEXTURE_TILE)) ** 0.5;
17
- exports.SIZE_DIAGONAL_TEXTURE = SIZE_DIAGONAL_TEXTURE;
1
+ import { chooseNextLevelToFetch } from "../Layer/LayerUpdateStrategy.js";
2
+ import LayerUpdateState from "../Layer/LayerUpdateState.js";
3
+ import handlingError from "./handlerNodeError.js";
4
+ export const SIZE_TEXTURE_TILE = 256;
5
+ export const SIZE_DIAGONAL_TEXTURE = (2 * (SIZE_TEXTURE_TILE * SIZE_TEXTURE_TILE)) ** 0.5;
18
6
  function materialCommandQueuePriorityFunction(material) {
19
7
  // We know that 'node' is visible because commands can only be
20
8
  // issued for visible nodes.
@@ -50,7 +38,7 @@ function buildCommand(view, layer, extentsSource, extentsDestination, requester)
50
38
  earlyDropFunction: refinementCommandCancellationFn
51
39
  };
52
40
  }
53
- function updateLayeredMaterialNodeImagery(context, layer, node, parent) {
41
+ export function updateLayeredMaterialNodeImagery(context, layer, node, parent) {
54
42
  const material = node.material;
55
43
  if (!parent || !material) {
56
44
  return;
@@ -64,7 +52,7 @@ function updateLayeredMaterialNodeImagery(context, layer, node, parent) {
64
52
 
65
53
  // Initialisation
66
54
  if (node.layerUpdateState[layer.id] === undefined) {
67
- node.layerUpdateState[layer.id] = new _LayerUpdateState.default();
55
+ node.layerUpdateState[layer.id] = new LayerUpdateState();
68
56
  if (!layer.source.extentInsideLimit(node.extent, zoom)) {
69
57
  // we also need to check that tile's parent doesn't have a texture for this layer,
70
58
  // because even if this tile is outside of the layer, it could inherit it's
@@ -118,7 +106,7 @@ function updateLayeredMaterialNodeImagery(context, layer, node, parent) {
118
106
  }
119
107
  const failureParams = node.layerUpdateState[layer.id].failureParams;
120
108
  const destinationLevel = extentsDestination[0].zoom || node.level;
121
- const targetLevel = (0, _LayerUpdateStrategy.chooseNextLevelToFetch)(layer.updateStrategy.type, node, destinationLevel, nodeLayer.level, layer, failureParams);
109
+ const targetLevel = chooseNextLevelToFetch(layer.updateStrategy.type, node, destinationLevel, nodeLayer.level, layer, failureParams);
122
110
  if (!layer.source.isVectorSource && targetLevel <= nodeLayer.level || targetLevel > destinationLevel) {
123
111
  if (failureParams.lowestLevelError != Infinity) {
124
112
  // this is the highest level found in case of error.
@@ -144,9 +132,9 @@ function updateLayeredMaterialNodeImagery(context, layer, node, parent) {
144
132
  const pitchs = extentsDestination.map((ext, i) => ext.offsetToParent(result[i].extent, nodeLayer.offsetScales[i]));
145
133
  nodeLayer.setTextures(result, pitchs);
146
134
  node.layerUpdateState[layer.id].success();
147
- }, err => (0, _handlerNodeError.default)(err, node, layer, targetLevel, context.view));
135
+ }, err => handlingError(err, node, layer, targetLevel, context.view));
148
136
  }
149
- function updateLayeredMaterialNodeElevation(context, layer, node, parent) {
137
+ export function updateLayeredMaterialNodeElevation(context, layer, node, parent) {
150
138
  const material = node.material;
151
139
  if (!parent || !material) {
152
140
  return;
@@ -171,7 +159,7 @@ function updateLayeredMaterialNodeElevation(context, layer, node, parent) {
171
159
  }
172
160
  if (node.layerUpdateState[layer.id] === undefined) {
173
161
  var _parent$material2;
174
- node.layerUpdateState[layer.id] = new _LayerUpdateState.default();
162
+ node.layerUpdateState[layer.id] = new LayerUpdateState();
175
163
  const parentLayer = (_parent$material2 = parent.material) === null || _parent$material2 === void 0 ? void 0 : _parent$material2.getLayer(layer.id);
176
164
  nodeLayer.initFromParent(parentLayer, extentsDestination);
177
165
  if (nodeLayer.level >= layer.source.zoom.min) {
@@ -185,7 +173,7 @@ function updateLayeredMaterialNodeElevation(context, layer, node, parent) {
185
173
  return;
186
174
  }
187
175
  const failureParams = node.layerUpdateState[layer.id].failureParams;
188
- const targetLevel = (0, _LayerUpdateStrategy.chooseNextLevelToFetch)(layer.updateStrategy.type, node, extentsDestination[0].zoom, nodeLayer.level, layer, failureParams);
176
+ const targetLevel = chooseNextLevelToFetch(layer.updateStrategy.type, node, extentsDestination[0].zoom, nodeLayer.level, layer, failureParams);
189
177
  if (targetLevel <= nodeLayer.level || targetLevel > extentsDestination[0].zoom) {
190
178
  node.layerUpdateState[layer.id].noMoreUpdatePossible();
191
179
  return;
@@ -215,19 +203,22 @@ function updateLayeredMaterialNodeElevation(context, layer, node, parent) {
215
203
  const pitchs = extentsDestination.map((ext, i) => ext.offsetToParent(result[i].extent, nodeLayer.offsetScales[i]));
216
204
  nodeLayer.setTextures(result, pitchs);
217
205
  node.layerUpdateState[layer.id].success();
218
- }, err => (0, _handlerNodeError.default)(err, node, layer, targetLevel, context.view));
206
+ }, err => handlingError(err, node, layer, targetLevel, context.view));
219
207
  }
220
- function removeLayeredMaterialNodeLayer(layerId) {
208
+ export function removeLayeredMaterialNodeLayer(layerId) {
209
+ /**
210
+ * @param {TileMesh} node - The node to udpate.
211
+ */
221
212
  return function (node) {
222
213
  var _node$material;
223
214
  if ((_node$material = node.material) !== null && _node$material !== void 0 && _node$material.removeLayer) {
224
- node.material.removeLayer(layerId);
225
- if (node.material.elevationLayerIds[0] == layerId) {
215
+ if (node.material.elevationLayerIds.indexOf(layerId) > -1) {
226
216
  node.setBBoxZ({
227
217
  min: 0,
228
218
  max: 0
229
219
  });
230
220
  }
221
+ node.material.removeLayer(layerId);
231
222
  }
232
223
  if (node.layerUpdateState && node.layerUpdateState[layerId]) {
233
224
  delete node.layerUpdateState[layerId];
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
1
  function disposeSingleMaterialAndTextures(material) {
8
2
  material.dispose();
9
3
  // dispose textures
@@ -14,7 +8,7 @@ function disposeSingleMaterialAndTextures(material) {
14
8
  }
15
9
  }
16
10
  }
17
- var _default = {
11
+ export default {
18
12
  /**
19
13
  * Cleanup obj to release three.js allocated resources
20
14
  * @param {Object3D} obj object to release
@@ -101,5 +95,4 @@ var _default = {
101
95
  }
102
96
  return toRemove;
103
97
  }
104
- };
105
- exports.default = _default;
98
+ };
@@ -1,12 +1,6 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = handlingError;
7
1
  // max retry loading before changing the status to definitiveError
8
2
  const MAX_RETRY = 4;
9
- function handlingError(err, node, layer, targetLevel, view) {
3
+ export default function handlingError(err, node, layer, targetLevel, view) {
10
4
  // Cancel error handling if the layer was removed between command scheduling and its execution
11
5
  if (!node.layerUpdateState[layer.id]) {
12
6
  return;
@@ -1,19 +1,10 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.configureTile = configureTile;
8
- exports.default = void 0;
9
- var THREE = _interopRequireWildcard(require("three"));
10
- var _B3dmParser = _interopRequireDefault(require("../Parser/B3dmParser"));
11
- var _PntsParser = _interopRequireDefault(require("../Parser/PntsParser"));
12
- var _Fetcher = _interopRequireDefault(require("./Fetcher"));
13
- var _ReferencingLayerProperties = _interopRequireDefault(require("../Layer/ReferencingLayerProperties"));
14
- var _PointsMaterial = _interopRequireDefault(require("../Renderer/PointsMaterial"));
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';
2
+ import B3dmParser from "../Parser/B3dmParser.js";
3
+ import PntsParser from "../Parser/PntsParser.js";
4
+ import GLTFParser from "../Parser/GLTFParser.js";
5
+ import Fetcher from "./Fetcher.js";
6
+ import ReferLayerProperties from "../Layer/ReferencingLayerProperties.js";
7
+ import PointsMaterial from "../Renderer/PointsMaterial.js";
17
8
  const utf8Decoder = new TextDecoder();
18
9
  function b3dmToMesh(data, layer, url) {
19
10
  const urlBase = THREE.LoaderUtils.extractUrlBase(url);
@@ -22,11 +13,10 @@ function b3dmToMesh(data, layer, url) {
22
13
  urlBase,
23
14
  overrideMaterials: layer.overrideMaterials,
24
15
  doNotPatchMaterial: layer.doNotPatchMaterial,
25
- opacity: layer.opacity,
26
16
  registeredExtensions: layer.registeredExtensions,
27
17
  layer
28
18
  };
29
- return _B3dmParser.default.parse(data, options).then(result => {
19
+ return B3dmParser.parse(data, options).then(result => {
30
20
  const batchTable = result.batchTable;
31
21
  // object3d is actually a THREE.Scene
32
22
  const object3d = result.gltf.scene;
@@ -36,9 +26,15 @@ function b3dmToMesh(data, layer, url) {
36
26
  };
37
27
  });
38
28
  }
29
+ function gltfToMesh(data, layer, url) {
30
+ const urlBase = THREE.LoaderUtils.extractUrlBase(url);
31
+ return GLTFParser.parse(data, urlBase).then(result => ({
32
+ object3d: result.scene
33
+ }));
34
+ }
39
35
  function pntsParse(data, layer) {
40
- return _PntsParser.default.parse(data, layer.registeredExtensions).then(result => {
41
- const material = layer.material ? layer.material.clone() : new _PointsMaterial.default({
36
+ return PntsParser.parse(data, layer.registeredExtensions).then(result => {
37
+ const material = layer.material ? layer.material.clone() : new PointsMaterial({
42
38
  size: 0.05,
43
39
  mode: layer.pntsMode,
44
40
  shape: layer.pntsShape,
@@ -50,7 +46,7 @@ function pntsParse(data, layer) {
50
46
 
51
47
  // refer material properties in the layer so when layers opacity and visibility is updated, the material is
52
48
  // automatically updated
53
- (0, _ReferencingLayerProperties.default)(material, layer);
49
+ ReferLayerProperties(material, layer);
54
50
 
55
51
  // creation points with geometry and material
56
52
  const points = new THREE.Points(result.point.geometry, material);
@@ -63,7 +59,7 @@ function pntsParse(data, layer) {
63
59
  };
64
60
  });
65
61
  }
66
- function configureTile(tile, layer, metadata, parent) {
62
+ export function configureTile(tile, layer, metadata, parent) {
67
63
  tile.frustumCulled = false;
68
64
  tile.layer = layer;
69
65
 
@@ -96,23 +92,31 @@ function executeCommand(command) {
96
92
  };
97
93
  if (path) {
98
94
  // Check if we have relative or absolute url (with tileset's lopocs for example)
99
- const url = path.startsWith('http') ? path : metadata.baseURL + path;
95
+ let url = path.startsWith('http') ? path : metadata.baseURL + path;
96
+ if (layer.source.isC3DTilesGoogleSource) {
97
+ url = layer.source.getTileUrl(url);
98
+ }
100
99
  const supportedFormats = {
101
100
  b3dm: b3dmToMesh,
102
- pnts: pntsParse
101
+ pnts: pntsParse,
102
+ gltf: gltfToMesh
103
103
  };
104
- return _Fetcher.default.arrayBuffer(url, layer.source.networkOptions).then(result => {
104
+ return Fetcher.arrayBuffer(url, layer.source.networkOptions).then(result => {
105
105
  if (result !== undefined) {
106
106
  let func;
107
107
  const magic = utf8Decoder.decode(new Uint8Array(result, 0, 4));
108
108
  if (magic[0] === '{') {
109
109
  result = JSON.parse(utf8Decoder.decode(new Uint8Array(result)));
110
- const newPrefix = url.slice(0, url.lastIndexOf('/') + 1);
110
+ // Another specifics of 3D tiles from Google: tilesets in tilesets are required from the root base
111
+ // url and not from their parent base url
112
+ const newPrefix = layer.source.isC3DTilesGoogleSource ? layer.source.baseUrl : url.slice(0, url.lastIndexOf('/') + 1);
111
113
  layer.tileset.extendTileset(result, metadata.tileId, newPrefix, layer.registeredExtensions);
112
114
  } else if (magic == 'b3dm') {
113
115
  func = supportedFormats.b3dm;
114
116
  } else if (magic == 'pnts') {
115
117
  func = supportedFormats.pnts;
118
+ } else if (magic == 'glTF') {
119
+ func = supportedFormats.gltf;
116
120
  } else {
117
121
  return Promise.reject(`Unsupported magic code ${magic}`);
118
122
  }
@@ -137,7 +141,6 @@ function executeCommand(command) {
137
141
  return Promise.resolve(tile);
138
142
  }
139
143
  }
140
- var _default = {
144
+ export default {
141
145
  executeCommand
142
- };
143
- exports.default = _default;
146
+ };
@@ -1,15 +1,8 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _default = {
1
+ export default {
8
2
  executeCommand(command) {
9
3
  const layer = command.layer;
10
4
  const src = command.extentsSource;
11
5
  const dst = command.extentsDestination || src;
12
6
  return Promise.all(src.map((from, i) => layer.getData(from, dst[i])));
13
7
  }
14
- };
15
- exports.default = _default;
8
+ };
@@ -1,11 +1,5 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _three = require("three");
8
- const textureLoader = new _three.TextureLoader();
1
+ import { TextureLoader, DataTexture, RedFormat, FloatType } from 'three';
2
+ const textureLoader = new TextureLoader();
9
3
  const SIZE_TEXTURE_TILE = 256;
10
4
  function checkResponse(response) {
11
5
  if (!response.ok) {
@@ -22,16 +16,10 @@ const arrayBuffer = function (url) {
22
16
  });
23
17
  };
24
18
  function getTextureFloat(buffer) {
25
- let isWebGL2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
26
- if (isWebGL2) {
27
- const texture = new _three.DataTexture(buffer, SIZE_TEXTURE_TILE, SIZE_TEXTURE_TILE, _three.RedFormat, _three.FloatType);
28
- texture.internalFormat = 'R32F';
29
- texture.needsUpdate = true;
30
- return texture;
31
- } else {
32
- const texture = new _three.DataTexture(buffer, SIZE_TEXTURE_TILE, SIZE_TEXTURE_TILE, _three.AlphaFormat, _three.FloatType);
33
- return texture;
34
- }
19
+ const texture = new DataTexture(buffer, SIZE_TEXTURE_TILE, SIZE_TEXTURE_TILE, RedFormat, FloatType);
20
+ texture.internalFormat = 'R32F';
21
+ texture.needsUpdate = true;
22
+ return texture;
35
23
  }
36
24
 
37
25
  /**
@@ -40,7 +28,7 @@ function getTextureFloat(buffer) {
40
28
  *
41
29
  * @module Fetcher
42
30
  */
43
- var _default = {
31
+ export default {
44
32
  /**
45
33
  * Wrapper over fetch to get some text.
46
34
  *
@@ -142,7 +130,7 @@ var _default = {
142
130
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
143
131
  return arrayBuffer(url, options).then(buffer => {
144
132
  const floatArray = new Float32Array(buffer);
145
- const texture = getTextureFloat(floatArray, options.isWebGL2);
133
+ const texture = getTextureFloat(floatArray);
146
134
  return texture;
147
135
  });
148
136
  },
@@ -205,6 +193,36 @@ var _default = {
205
193
  }
206
194
  return Promise.resolve(all);
207
195
  });
196
+ },
197
+ get() {
198
+ let format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
199
+ const [type, subtype] = format.split('/');
200
+ switch (type) {
201
+ case 'application':
202
+ switch (subtype) {
203
+ case 'geo+json':
204
+ case 'json':
205
+ return this.json;
206
+ case 'kml':
207
+ case 'gpx':
208
+ return this.xml;
209
+ case 'x-protobuf;type=mapbox-vector':
210
+ case 'gtx':
211
+ return this.arrayBuffer;
212
+ case 'isg':
213
+ case 'gdf':
214
+ default:
215
+ return this.text;
216
+ }
217
+ case 'image':
218
+ switch (subtype) {
219
+ case 'x-bil;bits=32':
220
+ return this.textureFloat;
221
+ default:
222
+ return this.texture;
223
+ }
224
+ default:
225
+ return this.texture;
226
+ }
208
227
  }
209
- };
210
- exports.default = _default;
228
+ };