@giro3d/piero 25.10.0-beta.10
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/LICENSE +9 -0
- package/README.md +134 -0
- package/dist/Components.cjs.js +2605 -0
- package/dist/Components.es.js +43490 -0
- package/dist/assets/ParserWorker-Bd30oD5I.js +5 -0
- package/dist/assets/style.css +9 -0
- package/dist/basedecoder.cjs.js +1 -0
- package/dist/basedecoder.es.js +88 -0
- package/dist/decoder.cjs.js +1 -0
- package/dist/decoder.es.js +9 -0
- package/dist/deflate.cjs.js +1 -0
- package/dist/deflate.es.js +10 -0
- package/dist/index.cjs.js +93 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.es.js +65240 -0
- package/dist/jpeg.cjs.js +1 -0
- package/dist/jpeg.es.js +514 -0
- package/dist/lerc.cjs.js +1 -0
- package/dist/lerc.es.js +1027 -0
- package/dist/lzw.cjs.js +1 -0
- package/dist/lzw.es.js +84 -0
- package/dist/modules.cjs.js +2973 -0
- package/dist/modules.d.ts +2 -0
- package/dist/modules.es.js +87571 -0
- package/dist/packbits.cjs.js +1 -0
- package/dist/packbits.es.js +24 -0
- package/dist/pako.esm.cjs.js +1 -0
- package/dist/pako.esm.es.js +1053 -0
- package/dist/piero_logo.png +0 -0
- package/dist/piero_logo_compact.png +0 -0
- package/dist/raw.cjs.js +1 -0
- package/dist/raw.es.js +9 -0
- package/dist/sponsors/bpi_france.png +0 -0
- package/dist/sponsors/france_2030.png +0 -0
- package/dist/sponsors/france_relance.png +0 -0
- package/dist/sponsors/oslandia.png +0 -0
- package/dist/sponsors/ue_next_generation.png +0 -0
- package/dist/src/App.vue.d.ts +6 -0
- package/dist/src/api/BookmarkApi.d.ts +6 -0
- package/dist/src/api/DatasetApi.d.ts +61 -0
- package/dist/src/api/ViewApi.d.ts +4 -0
- package/dist/src/api/index.d.ts +4 -0
- package/dist/src/components/AlertToast.vue.d.ts +4 -0
- package/dist/src/components/AttributeGroup.vue.d.ts +7 -0
- package/dist/src/components/AttributeItem.vue.d.ts +6 -0
- package/dist/src/components/AttributePanel.vue.d.ts +14 -0
- package/dist/src/components/ColorFragment.vue.d.ts +6 -0
- package/dist/src/components/Configuration.d.ts +14 -0
- package/dist/src/components/CoordinateFragment.vue.d.ts +10 -0
- package/dist/src/components/DropdownView.vue.d.ts +13 -0
- package/dist/src/components/LinkFragment.vue.d.ts +10 -0
- package/dist/src/components/LoadingScreen.vue.d.ts +2 -0
- package/dist/src/components/MainView.vue.d.ts +5 -0
- package/dist/src/components/MinimapView.vue.d.ts +4 -0
- package/dist/src/components/ModalOverlay.vue.d.ts +17 -0
- package/dist/src/components/NavigationButtons.vue.d.ts +2 -0
- package/dist/src/components/OpacitySlider.vue.d.ts +10 -0
- package/dist/src/components/PanelContainer.vue.d.ts +10 -0
- package/dist/src/components/ProgressBar.vue.d.ts +14 -0
- package/dist/src/components/SearchOverlay.vue.d.ts +8 -0
- package/dist/src/components/SpinnerControl.vue.d.ts +2 -0
- package/dist/src/components/StatusBar.vue.d.ts +10 -0
- package/dist/src/components/SwitchToggle.vue.d.ts +17 -0
- package/dist/src/components/VisibilityControl.vue.d.ts +9 -0
- package/dist/src/components/atoms/ButtonArea.vue.d.ts +9 -0
- package/dist/src/components/atoms/ButtonWithIcon.vue.d.ts +11 -0
- package/dist/src/components/atoms/CompactList.vue.d.ts +9 -0
- package/dist/src/components/atoms/Icon.vue.d.ts +6 -0
- package/dist/src/components/atoms/IconList.vue.d.ts +9 -0
- package/dist/src/components/atoms/IconListButton.vue.d.ts +10 -0
- package/dist/src/components/atoms/ImportButton.vue.d.ts +13 -0
- package/dist/src/components/atoms/ListLabel.vue.d.ts +5 -0
- package/dist/src/components/atoms/ListLabelButton.vue.d.ts +11 -0
- package/dist/src/components/atoms/SectionCollapsible.vue.d.ts +20 -0
- package/dist/src/components/charts/BarChart.vue.d.ts +4 -0
- package/dist/src/components/charts/DoughnutChart.vue.d.ts +4 -0
- package/dist/src/components/panels/AboutPanel.vue.d.ts +2 -0
- package/dist/src/components/panels/AnalysisPanel.vue.d.ts +2 -0
- package/dist/src/components/panels/AnnotationItem.vue.d.ts +21 -0
- package/dist/src/components/panels/AnnotationPanel.vue.d.ts +2 -0
- package/dist/src/components/panels/BasemapItem.vue.d.ts +17 -0
- package/dist/src/components/panels/BookmarkItem.vue.d.ts +16 -0
- package/dist/src/components/panels/BookmarkPanel.vue.d.ts +2 -0
- package/dist/src/components/panels/DatagroupItem.vue.d.ts +18 -0
- package/dist/src/components/panels/DatasetItem.vue.d.ts +18 -0
- package/dist/src/components/panels/DatasetOrGroupItem.vue.d.ts +18 -0
- package/dist/src/components/panels/DatasetPanel.vue.d.ts +2 -0
- package/dist/src/components/panels/EmptyIndicator.vue.d.ts +6 -0
- package/dist/src/components/panels/LoadingIndicator.vue.d.ts +6 -0
- package/dist/src/components/panels/MeasurementItem.vue.d.ts +17 -0
- package/dist/src/components/panels/MeasurementPanel.vue.d.ts +2 -0
- package/dist/src/components/panels/OverlayItem.vue.d.ts +19 -0
- package/dist/src/components/panels/ShareBookmarkModal.vue.d.ts +5 -0
- package/dist/src/components/panels/analysis/ClippingBox.vue.d.ts +2 -0
- package/dist/src/components/panels/analysis/CrossSection.vue.d.ts +2 -0
- package/dist/src/components/panels/analysis/FloodingPlane.vue.d.ts +2 -0
- package/dist/src/components/panels/analysis/Statistics.vue.d.ts +2 -0
- package/dist/src/components/panels/analysis/ToolWrapper.vue.d.ts +20 -0
- package/dist/src/components/toolbar/ToolBar.vue.d.ts +9 -0
- package/dist/src/components/toolbar/ToolbarButton.vue.d.ts +12 -0
- package/dist/src/config-loader.d.ts +7 -0
- package/dist/src/constants.d.ts +7 -0
- package/dist/src/context.d.ts +35 -0
- package/dist/src/createPieroApp.d.ts +31 -0
- package/dist/src/events.d.ts +30 -0
- package/dist/src/giro3d/CameraControlsInspector.d.ts +17 -0
- package/dist/src/giro3d/EntityBuilder.d.ts +21 -0
- package/dist/src/giro3d/Graticule.d.ts +20 -0
- package/dist/src/giro3d/Grid.d.ts +11 -0
- package/dist/src/giro3d/LayerBuilder.d.ts +46 -0
- package/dist/src/giro3d/Measure3D.d.ts +19 -0
- package/dist/src/giro3d/Plane.d.ts +11 -0
- package/dist/src/giro3d/Skybox.d.ts +6 -0
- package/dist/src/giro3d/entities/FeatureCollectionEntity.d.ts +41 -0
- package/dist/src/giro3d/entities/PointCloudEntity.d.ts +45 -0
- package/dist/src/giro3d/entities/TiledPointCloudEntity.d.ts +13 -0
- package/dist/src/giro3d/entities/Tiles3dEntity.d.ts +11 -0
- package/dist/src/giro3d/entities/VectorLabelsEntity.d.ts +48 -0
- package/dist/src/giro3d/entities/VectorMeshEntity.d.ts +97 -0
- package/dist/src/giro3d/entities/VectorShapeEntity.d.ts +8 -0
- package/dist/src/giro3d/entities/flatPointCloud.d.ts +2 -0
- package/dist/src/giro3d/entities/tiledIfc.d.ts +2 -0
- package/dist/src/giro3d/entities/vector.d.ts +2 -0
- package/dist/src/giro3d/sources/GeopackageSource.d.ts +20 -0
- package/dist/src/giro3d/sources/ShapefileSource.d.ts +20 -0
- package/dist/src/giro3d/sources/mixins.d.ts +60 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/loaders/csv.d.ts +3 -0
- package/dist/src/loaders/las.d.ts +3 -0
- package/dist/src/loaders/loader.d.ts +29 -0
- package/dist/src/loaders/loader.test.d.ts +1 -0
- package/dist/src/loaders/userData.d.ts +8 -0
- package/dist/src/loaders/vector.d.ts +4 -0
- package/dist/src/module.d.ts +11 -0
- package/dist/src/modules/CityJSONLoader.d.ts +10 -0
- package/dist/src/modules/IFCLoader.d.ts +9 -0
- package/dist/src/modules/PLYLoader.d.ts +9 -0
- package/dist/src/modules/PotreeLoader.d.ts +9 -0
- package/dist/src/modules/Tour.d.ts +17 -0
- package/dist/src/modules/cityjson/CityJSONEntity.d.ts +79 -0
- package/dist/src/modules/cityjson/CityJSONEntityInspector.d.ts +8 -0
- package/dist/src/modules/ifc/IfcEntity.d.ts +87 -0
- package/dist/src/modules/ifc/IfcEntityInspector.d.ts +7 -0
- package/dist/src/modules/ifc/IfcPropertyView.vue.d.ts +6 -0
- package/dist/src/modules/ifc/IfcSubtree.vue.d.ts +7 -0
- package/dist/src/modules/index.d.ts +6 -0
- package/dist/src/modules/ply/PlyEntity.d.ts +33 -0
- package/dist/src/providers/Alticoding.d.ts +32 -0
- package/dist/src/providers/BanProvider.d.ts +11 -0
- package/dist/src/providers/Geocoding.d.ts +7 -0
- package/dist/src/providers/IgnProvider.d.ts +11 -0
- package/dist/src/services/AnalysisManager.d.ts +10 -0
- package/dist/src/services/AnnotationManager.d.ts +48 -0
- package/dist/src/services/CameraController.d.ts +99 -0
- package/dist/src/services/DatasetManager.d.ts +27 -0
- package/dist/src/services/Giro3DManager.d.ts +42 -0
- package/dist/src/services/Highlighter.d.ts +11 -0
- package/dist/src/services/LayerManager.d.ts +37 -0
- package/dist/src/services/MeasureTool.d.ts +13 -0
- package/dist/src/services/MeasurementManager.d.ts +31 -0
- package/dist/src/services/MinimapController.d.ts +19 -0
- package/dist/src/services/Picker.d.ts +53 -0
- package/dist/src/services/analysis/ClippingBoxManager.d.ts +41 -0
- package/dist/src/services/analysis/CrossSectionManager.d.ts +9 -0
- package/dist/src/services/analysis/FloodingPlaneManager.d.ts +11 -0
- package/dist/src/stores/analysis.d.ts +1571 -0
- package/dist/src/stores/annotations.d.ts +60 -0
- package/dist/src/stores/bookmarks.d.ts +21 -0
- package/dist/src/stores/camera.d.ts +287 -0
- package/dist/src/stores/datasets.d.ts +49 -0
- package/dist/src/stores/giro3d.d.ts +45 -0
- package/dist/src/stores/layers.d.ts +40 -0
- package/dist/src/stores/measurement.d.ts +45 -0
- package/dist/src/stores/modules.d.ts +11 -0
- package/dist/src/stores/notifications.d.ts +8 -0
- package/dist/src/stores/statistics.d.ts +8 -0
- package/dist/src/types/Annotation.d.ts +35 -0
- package/dist/src/types/AnnotationMode.d.ts +7 -0
- package/dist/src/types/BaseLayer.d.ts +30 -0
- package/dist/src/types/Bookmark.d.ts +19 -0
- package/dist/src/types/CameraPosition.d.ts +7 -0
- package/dist/src/types/Configuration.d.ts +94 -0
- package/dist/src/types/Dataset.d.ts +78 -0
- package/dist/src/types/Feature.d.ts +13 -0
- package/dist/src/types/FloodingPlane.d.ts +14 -0
- package/dist/src/types/IFCTypes.d.ts +5 -0
- package/dist/src/types/LayerObject.d.ts +20 -0
- package/dist/src/types/Measure.d.ts +20 -0
- package/dist/src/types/MeasurementMode.d.ts +7 -0
- package/dist/src/types/Named.d.ts +5 -0
- package/dist/src/types/NavigationMode.d.ts +2 -0
- package/dist/src/types/Notification.d.ts +8 -0
- package/dist/src/types/OLGeometry.d.ts +1 -0
- package/dist/src/types/Overlay.d.ts +24 -0
- package/dist/src/types/VectorStyle.d.ts +31 -0
- package/dist/src/types/Viewbox.d.ts +7 -0
- package/dist/src/types/configuration/analysis.d.ts +26 -0
- package/dist/src/types/configuration/bookmark.d.ts +16 -0
- package/dist/src/types/configuration/camera.d.ts +19 -0
- package/dist/src/types/configuration/color.d.ts +18 -0
- package/dist/src/types/configuration/datasets/cityjson.d.ts +9 -0
- package/dist/src/types/configuration/datasets/core.d.ts +49 -0
- package/dist/src/types/configuration/datasets/featureCollection.d.ts +6 -0
- package/dist/src/types/configuration/datasets/ifc.d.ts +10 -0
- package/dist/src/types/configuration/datasets/index.d.ts +27 -0
- package/dist/src/types/configuration/datasets/layer.d.ts +43 -0
- package/dist/src/types/configuration/datasets/ply.d.ts +10 -0
- package/dist/src/types/configuration/datasets/pointCloud.d.ts +12 -0
- package/dist/src/types/configuration/datasets/potreePointCloud.d.ts +10 -0
- package/dist/src/types/configuration/datasets/tiledIfc.d.ts +9 -0
- package/dist/src/types/configuration/datasets/tiledPointCloud.d.ts +9 -0
- package/dist/src/types/configuration/datasets/vector.d.ts +34 -0
- package/dist/src/types/configuration/features.d.ts +2 -0
- package/dist/src/types/configuration/geographic.d.ts +51 -0
- package/dist/src/types/configuration/layers/core.d.ts +50 -0
- package/dist/src/types/configuration/layers/index.d.ts +49 -0
- package/dist/src/types/configuration/sources/bingMaps.d.ts +5 -0
- package/dist/src/types/configuration/sources/core/baseConfig.d.ts +70 -0
- package/dist/src/types/configuration/sources/core/tiled.d.ts +19 -0
- package/dist/src/types/configuration/sources/core/vector.d.ts +13 -0
- package/dist/src/types/configuration/sources/core/vectorTile.d.ts +8 -0
- package/dist/src/types/configuration/sources/customVector.d.ts +7 -0
- package/dist/src/types/configuration/sources/customVectorTile.d.ts +8 -0
- package/dist/src/types/configuration/sources/geojson.d.ts +5 -0
- package/dist/src/types/configuration/sources/geotiff.d.ts +8 -0
- package/dist/src/types/configuration/sources/gpx.d.ts +5 -0
- package/dist/src/types/configuration/sources/kml.d.ts +5 -0
- package/dist/src/types/configuration/sources/mvt.d.ts +10 -0
- package/dist/src/types/configuration/sources/osm.d.ts +5 -0
- package/dist/src/types/configuration/sources/stadiaMaps.d.ts +5 -0
- package/dist/src/types/configuration/sources/wms.d.ts +15 -0
- package/dist/src/types/configuration/sources/wmts.d.ts +15 -0
- package/dist/src/types/configuration/sources/xyz.d.ts +9 -0
- package/dist/src/types/utilities.d.ts +5 -0
- package/dist/src/utils/Components.d.ts +8 -0
- package/dist/src/utils/Configuration.d.ts +15 -0
- package/dist/src/utils/Download.d.ts +11 -0
- package/dist/src/utils/Fetcher.d.ts +77 -0
- package/dist/src/utils/Measure.d.ts +7 -0
- package/dist/src/utils/OLFeatures.d.ts +57 -0
- package/dist/src/utils/Projections.d.ts +10 -0
- package/dist/src/utils/Types.d.ts +11 -0
- package/dist/webimage.cjs.js +1 -0
- package/dist/webimage.es.js +19 -0
- package/package.json +100 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
(function(){"use strict";function Lt(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Ot={exports:{}};(function(i){var t=function(e){var s=Object.prototype,r=s.hasOwnProperty,n=Object.defineProperty||function(p,y,_){p[y]=_.value},h,o=typeof Symbol=="function"?Symbol:{},c=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function l(p,y,_){return Object.defineProperty(p,y,{value:_,enumerable:!0,configurable:!0,writable:!0}),p[y]}try{l({},"")}catch{l=function(y,_,z){return y[_]=z}}function f(p,y,_,z){var d=y&&y.prototype instanceof v?y:v,C=Object.create(d.prototype),k=new ct(z||[]);return n(C,"_invoke",{value:ne(p,_,k)}),C}e.wrap=f;function x(p,y,_){try{return{type:"normal",arg:p.call(y,_)}}catch(z){return{type:"throw",arg:z}}}var m="suspendedStart",M="suspendedYield",w="executing",I="completed",S={};function v(){}function g(){}function b(){}var L={};l(L,c,function(){return this});var G=Object.getPrototypeOf,U=G&&G(G(lt([])));U&&U!==s&&r.call(U,c)&&(L=U);var N=b.prototype=v.prototype=Object.create(L);g.prototype=b,n(N,"constructor",{value:b,configurable:!0}),n(b,"constructor",{value:g,configurable:!0}),g.displayName=l(b,u,"GeneratorFunction");function Tt(p){["next","throw","return"].forEach(function(y){l(p,y,function(_){return this._invoke(y,_)})})}e.isGeneratorFunction=function(p){var y=typeof p=="function"&&p.constructor;return y?y===g||(y.displayName||y.name)==="GeneratorFunction":!1},e.mark=function(p){return Object.setPrototypeOf?Object.setPrototypeOf(p,b):(p.__proto__=b,l(p,u,"GeneratorFunction")),p.prototype=Object.create(N),p},e.awrap=function(p){return{__await:p}};function J(p,y){function _(C,k,T,O){var E=x(p[C],p,k);if(E.type==="throw")O(E.arg);else{var ft=E.arg,X=ft.value;return X&&typeof X=="object"&&r.call(X,"__await")?y.resolve(X.__await).then(function(P){_("next",P,T,O)},function(P){_("throw",P,T,O)}):y.resolve(X).then(function(P){ft.value=P,T(ft)},function(P){return _("throw",P,T,O)})}}var z;function d(C,k){function T(){return new y(function(O,E){_(C,k,O,E)})}return z=z?z.then(T,T):T()}n(this,"_invoke",{value:d})}Tt(J.prototype),l(J.prototype,a,function(){return this}),e.AsyncIterator=J,e.async=function(p,y,_,z,d){d===void 0&&(d=Promise);var C=new J(f(p,y,_,z),d);return e.isGeneratorFunction(y)?C:C.next().then(function(k){return k.done?k.value:C.next()})};function ne(p,y,_){var z=m;return function(C,k){if(z===w)throw new Error("Generator is already running");if(z===I){if(C==="throw")throw k;return oe()}for(_.method=C,_.arg=k;;){var T=_.delegate;if(T){var O=Et(T,_);if(O){if(O===S)continue;return O}}if(_.method==="next")_.sent=_._sent=_.arg;else if(_.method==="throw"){if(z===m)throw z=I,_.arg;_.dispatchException(_.arg)}else _.method==="return"&&_.abrupt("return",_.arg);z=w;var E=x(p,y,_);if(E.type==="normal"){if(z=_.done?I:M,E.arg===S)continue;return{value:E.arg,done:_.done}}else E.type==="throw"&&(z=I,_.method="throw",_.arg=E.arg)}}}function Et(p,y){var _=y.method,z=p.iterator[_];if(z===h)return y.delegate=null,_==="throw"&&p.iterator.return&&(y.method="return",y.arg=h,Et(p,y),y.method==="throw")||_!=="return"&&(y.method="throw",y.arg=new TypeError("The iterator does not provide a '"+_+"' method")),S;var d=x(z,p.iterator,y.arg);if(d.type==="throw")return y.method="throw",y.arg=d.arg,y.delegate=null,S;var C=d.arg;if(!C)return y.method="throw",y.arg=new TypeError("iterator result is not an object"),y.delegate=null,S;if(C.done)y[p.resultName]=C.value,y.next=p.nextLoc,y.method!=="return"&&(y.method="next",y.arg=h);else return C;return y.delegate=null,S}Tt(N),l(N,u,"Generator"),l(N,c,function(){return this}),l(N,"toString",function(){return"[object Generator]"});function he(p){var y={tryLoc:p[0]};1 in p&&(y.catchLoc=p[1]),2 in p&&(y.finallyLoc=p[2],y.afterLoc=p[3]),this.tryEntries.push(y)}function ut(p){var y=p.completion||{};y.type="normal",delete y.arg,p.completion=y}function ct(p){this.tryEntries=[{tryLoc:"root"}],p.forEach(he,this),this.reset(!0)}e.keys=function(p){var y=Object(p),_=[];for(var z in y)_.push(z);return _.reverse(),function d(){for(;_.length;){var C=_.pop();if(C in y)return d.value=C,d.done=!1,d}return d.done=!0,d}};function lt(p){if(p!=null){var y=p[c];if(y)return y.call(p);if(typeof p.next=="function")return p;if(!isNaN(p.length)){var _=-1,z=function d(){for(;++_<p.length;)if(r.call(p,_))return d.value=p[_],d.done=!1,d;return d.value=h,d.done=!0,d};return z.next=z}}throw new TypeError(typeof p+" is not iterable")}e.values=lt;function oe(){return{value:h,done:!0}}return ct.prototype={constructor:ct,reset:function(p){if(this.prev=0,this.next=0,this.sent=this._sent=h,this.done=!1,this.delegate=null,this.method="next",this.arg=h,this.tryEntries.forEach(ut),!p)for(var y in this)y.charAt(0)==="t"&&r.call(this,y)&&!isNaN(+y.slice(1))&&(this[y]=h)},stop:function(){this.done=!0;var p=this.tryEntries[0],y=p.completion;if(y.type==="throw")throw y.arg;return this.rval},dispatchException:function(p){if(this.done)throw p;var y=this;function _(O,E){return C.type="throw",C.arg=p,y.next=O,E&&(y.method="next",y.arg=h),!!E}for(var z=this.tryEntries.length-1;z>=0;--z){var d=this.tryEntries[z],C=d.completion;if(d.tryLoc==="root")return _("end");if(d.tryLoc<=this.prev){var k=r.call(d,"catchLoc"),T=r.call(d,"finallyLoc");if(k&&T){if(this.prev<d.catchLoc)return _(d.catchLoc,!0);if(this.prev<d.finallyLoc)return _(d.finallyLoc)}else if(k){if(this.prev<d.catchLoc)return _(d.catchLoc,!0)}else if(T){if(this.prev<d.finallyLoc)return _(d.finallyLoc)}else throw new Error("try statement without catch or finally")}}},abrupt:function(p,y){for(var _=this.tryEntries.length-1;_>=0;--_){var z=this.tryEntries[_];if(z.tryLoc<=this.prev&&r.call(z,"finallyLoc")&&this.prev<z.finallyLoc){var d=z;break}}d&&(p==="break"||p==="continue")&&d.tryLoc<=y&&y<=d.finallyLoc&&(d=null);var C=d?d.completion:{};return C.type=p,C.arg=y,d?(this.method="next",this.next=d.finallyLoc,S):this.complete(C)},complete:function(p,y){if(p.type==="throw")throw p.arg;return p.type==="break"||p.type==="continue"?this.next=p.arg:p.type==="return"?(this.rval=this.arg=p.arg,this.method="return",this.next="end"):p.type==="normal"&&y&&(this.next=y),S},finish:function(p){for(var y=this.tryEntries.length-1;y>=0;--y){var _=this.tryEntries[y];if(_.finallyLoc===p)return this.complete(_.completion,_.afterLoc),ut(_),S}},catch:function(p){for(var y=this.tryEntries.length-1;y>=0;--y){var _=this.tryEntries[y];if(_.tryLoc===p){var z=_.completion;if(z.type==="throw"){var d=z.arg;ut(_)}return d}}throw new Error("illegal catch attempt")},delegateYield:function(p,y,_){return this.delegate={iterator:lt(p),resultName:y,nextLoc:_},this.method==="next"&&(this.arg=h),S}},e}(i.exports);try{regeneratorRuntime=t}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}})(Ot);const xt=0,yt=1,pt=2;class D{constructor(t){this.geometryType=t,this.vertexIds=[],this.objectIds=[],this.objectTypes=[],this.semanticSurfaces=[],this.geometryIds=[],this.boundaryIds=[],this.lodIds=[],this.materials={},this.textures={}}appendMaterial(t,e){t in this.materials||(this.materials[t]=[]);const s=this.materials[t];for(let r=s.length;r<this.count()-1;r++)s.push(-1);this.materials[t].push(e)}appendTexture(t,e){t in this.textures||(this.textures[t]={index:[],uvs:[]});const s=this.textures[t];for(let r=s.index.length;r<this.count()-1;r++)s.index.push(-1),s.uvs.push([0,0]);s.index.push(e.index),s.uvs.push(e.uvs)}addVertex(t,e,s,r,n,h,o,c,a){if(this.vertexIds.push(t),this.objectIds.push(e),this.objectTypes.push(s),this.semanticSurfaces.push(r),this.geometryIds.push(n),this.boundaryIds.push(h),this.lodIds.push(o),c){const u=this;Object.entries(c).forEach(l=>{const[f,x]=l;u.appendMaterial(f,x)})}if(a){const u=this;Object.entries(a).forEach(l=>{const[f,x]=l;u.appendTexture(f,x)})}}completeMaterials(){for(const t in this.materials){const e=this.materials[t];for(let s=e.length;s<this.count();s++)e.push(-1)}}completeTextures(){for(const t in this.textures){const e=this.textures[t];for(let s=e.index.length;s<this.count();s++)e.index.push(-1),e.uvs.push([0,0])}}count(){return this.vertexIds.length}getVertices(t){let e=[];for(const s of this.vertexIds){const r=t[s];e.push(...r)}return e}toObject(){return this.completeMaterials(),this.completeTextures(),{geometryType:this.geometryType,objectIds:this.objectIds,objectType:this.objectTypes,semanticSurfaces:this.semanticSurfaces,geometryIds:this.geometryIds,boundaryIds:this.boundaryIds,lodIds:this.lodIds,materials:this.materials,textures:this.textures}}setObjectId(t){for(let e=0;e<this.objectIds.length;e++)this.objectIds[e]=t}setObjectType(t){for(let e=0;e<this.objectTypes.length;e++)this.objectTypes[e]=t}setGeometryIdx(t){for(let e=0;e<this.geometryIds.length;e++)this.geometryIds[e]=t}merge(t){t.geometryType!=this.geometryType&&console.warn("Merging different types of geometry data!"),this.vertexIds.concat(this.otherGeomData.vertexId),this.objectIds.concat(this.otherGeomData.objectId),this.objectTypes.concat(this.otherGeomData.objectType),this.semanticSurfaces.concat(this.otherGeomData.surfaceType),this.geometryIds.concat(this.otherGeomData.geometryIdx),this.boundaryIds.concat(this.otherGeomData.boundaryIdx),this.lodIds.concat(this.otherGeomData.lodIdx)}}const Zt={GroundSurface:10066329,WallSurface:16777215,RoofSurface:16711680,TrafficArea:7237230,AuxiliaryTrafficArea:2916864,Window:23039,Door:6553600};class K{constructor(t,e,s){this.json=t,this.objectIds=e,this.objectColors=s,this.surfaceColors=Zt,this.lods=[]}clean(){}parseGeometry(t,e,s){}getObjectIdx(t){return this.objectIds.indexOf(t)}getObjectTypeIdx(t){let e=Object.keys(this.objectColors).indexOf(t);return e<0&&(e=Object.keys(this.objectColors).length,this.objectColors[t]=Math.floor(Math.random()*16777215)),e}getSurfaceTypeIdx(t,e,s){let r=-1;if(e.length>0){const n=s[e[t]];n&&(r=Object.keys(this.surfaceColors).indexOf(n.type),r<0&&(r=Object.keys(this.surfaceColors).length,this.surfaceColors[n.type]=Math.floor(Math.random()*16777215)))}return r}getSurfaceMaterials(t,e){const s=Object.entries(e).map(r=>{const[n,h]=r;return h.values?[n,h.values[t]]:h.value!==void 0?[n,h.value]:[n,-1]});return Object.fromEntries(s)}getTextureData(t,e,s,r){if(this.json.appearance&&this.json.appearance["vertices-texture"]){const n=this.json.appearance["vertices-texture"],h=Object.entries(r).map(o=>{const[c,a]=o;if(a.values){const u=s.filter(m=>m<=e),l=u.length,f=l?e-u[u.length-1]:e,x=a.values[t];if(x[0][0]!==null){const m=n[x[l][f+1]];return[c,{index:x[0][0],uvs:m}]}return[c,{index:-1,uvs:[0,0]}]}else return[c,{index:-1,uvs:[0,0]}]});return Object.fromEntries(h)}}getLodIndex(t){if(t===void 0)return-1;const e=this.lods.indexOf(t);if(e<0){const s=this.lods.length;return this.lods.push(t),s}return e}}class At extends K{constructor(t,e,s){super(t,e,s),this.geomData=new D(yt)}clean(){this.geomData=new D(yt)}handles(t){return t.type=="MultiLineString"}parseGeometry(t,e,s){const r=t.semantics?t.semantics.surfaces:[];if(t.type=="MultiLineString"){const n=this.json.CityObjects[e],h=this.getObjectIdx(e),o=this.getObjectTypeIdx(n.type),c=this.getLodIndex(n.geometry[s].lod),a=t.boundaries;for(let u=0;u<a.length;u++)if(a[u].length>1){const l=t.semantics?t.semantics.values:[],f=this.getSurfaceTypeIdx(u,l,r),x=a[u];for(let m=0;m<a[u].length-1;m++)this.geomData.addVertex(x[m],h,o,f,s,u,c),this.geomData.addVertex(x[m+1],h,o,f,s,u,c)}}}}class Gt extends K{constructor(t,e,s){super(t,e,s),this.geomData=new D(xt)}clean(){this.geomData=new D(xt)}handles(t){return t.type=="MultiPoint"}parseGeometry(t,e,s){const r=t.semantics?t.semantics.surfaces:[];if(t.type=="MultiPoint"){const n=this.json.CityObjects[e],h=this.getObjectIdx(e),o=this.getObjectTypeIdx(n.type),c=this.getLodIndex(n.geometry[s].lod),a=t.boundaries;for(let u=0;u<a.length;u++){const l=t.semantics?t.semantics.values:[],f=this.getSurfaceTypeIdx(u,l,r);this.geomData.addVertex(a[u],h,o,f,s,u,c)}}}}/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2010-2024 Three.js Authors
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/const mt="170",Pt="",H="srgb",_t="srgb-linear",gt="linear",tt="srgb";function dt(i,t,e){return Math.max(t,Math.min(e,i))}class R{constructor(t,e,s,r,n,h,o,c,a){R.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&&this.set(t,e,s,r,n,h,o,c,a)}set(t,e,s,r,n,h,o,c,a){const u=this.elements;return u[0]=t,u[1]=r,u[2]=o,u[3]=e,u[4]=n,u[5]=c,u[6]=s,u[7]=h,u[8]=a,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,s=t.elements;return e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=s[3],e[4]=s[4],e[5]=s[5],e[6]=s[6],e[7]=s[7],e[8]=s[8],this}extractBasis(t,e,s){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),s.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const s=t.elements,r=e.elements,n=this.elements,h=s[0],o=s[3],c=s[6],a=s[1],u=s[4],l=s[7],f=s[2],x=s[5],m=s[8],M=r[0],w=r[3],I=r[6],S=r[1],v=r[4],g=r[7],b=r[2],L=r[5],G=r[8];return n[0]=h*M+o*S+c*b,n[3]=h*w+o*v+c*L,n[6]=h*I+o*g+c*G,n[1]=a*M+u*S+l*b,n[4]=a*w+u*v+l*L,n[7]=a*I+u*g+l*G,n[2]=f*M+x*S+m*b,n[5]=f*w+x*v+m*L,n[8]=f*I+x*g+m*G,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],s=t[1],r=t[2],n=t[3],h=t[4],o=t[5],c=t[6],a=t[7],u=t[8];return e*h*u-e*o*a-s*n*u+s*o*c+r*n*a-r*h*c}invert(){const t=this.elements,e=t[0],s=t[1],r=t[2],n=t[3],h=t[4],o=t[5],c=t[6],a=t[7],u=t[8],l=u*h-o*a,f=o*c-u*n,x=a*n-h*c,m=e*l+s*f+r*x;if(m===0)return this.set(0,0,0,0,0,0,0,0,0);const M=1/m;return t[0]=l*M,t[1]=(r*a-u*s)*M,t[2]=(o*s-r*h)*M,t[3]=f*M,t[4]=(u*e-r*c)*M,t[5]=(r*n-o*e)*M,t[6]=x*M,t[7]=(s*c-a*e)*M,t[8]=(h*e-s*n)*M,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,s,r,n,h,o){const c=Math.cos(n),a=Math.sin(n);return this.set(s*c,s*a,-s*(c*h+a*o)+h+t,-r*a,r*c,-r*(-a*h+c*o)+o+e,0,0,1),this}scale(t,e){return this.premultiply(et.makeScale(t,e)),this}rotate(t){return this.premultiply(et.makeRotation(-t)),this}translate(t,e){return this.premultiply(et.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){const e=Math.cos(t),s=Math.sin(t);return this.set(e,-s,0,s,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){const e=this.elements,s=t.elements;for(let r=0;r<9;r++)if(e[r]!==s[r])return!1;return!0}fromArray(t,e=0){for(let s=0;s<9;s++)this.elements[s]=t[s+e];return this}toArray(t=[],e=0){const s=this.elements;return t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3],t[e+4]=s[4],t[e+5]=s[5],t[e+6]=s[6],t[e+7]=s[7],t[e+8]=s[8],t}clone(){return new this.constructor().fromArray(this.elements)}}const et=new R,Dt={enabled:!0,workingColorSpace:_t,spaces:{},convert:function(i,t,e){return this.enabled===!1||t===e||!t||!e||(this.spaces[t].transfer===tt&&(i.r=st(i.r),i.g=st(i.g),i.b=st(i.b)),this.spaces[t].primaries!==this.spaces[e].primaries&&(i.applyMatrix3(this.spaces[t].toXYZ),i.applyMatrix3(this.spaces[e].fromXYZ)),this.spaces[e].transfer===tt&&(i.r=rt(i.r),i.g=rt(i.g),i.b=rt(i.b))),i},fromWorkingColorSpace:function(i,t){return this.convert(i,this.workingColorSpace,t)},toWorkingColorSpace:function(i,t){return this.convert(i,t,this.workingColorSpace)},getPrimaries:function(i){return this.spaces[i].primaries},getTransfer:function(i){return i===Pt?gt:this.spaces[i].transfer},getLuminanceCoefficients:function(i,t=this.workingColorSpace){return i.fromArray(this.spaces[t].luminanceCoefficients)},define:function(i){Object.assign(this.spaces,i)},_getMatrix:function(i,t,e){return i.copy(this.spaces[t].toXYZ).multiply(this.spaces[e].fromXYZ)},_getDrawingBufferColorSpace:function(i){return this.spaces[i].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(i=this.workingColorSpace){return this.spaces[i].workingColorSpaceConfig.unpackColorSpace}};function st(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function rt(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}const vt=[.64,.33,.3,.6,.15,.06],zt=[.2126,.7152,.0722],wt=[.3127,.329],Mt=new R().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),bt=new R().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);Dt.define({[_t]:{primaries:vt,whitePoint:wt,transfer:gt,toXYZ:Mt,fromXYZ:bt,luminanceCoefficients:zt,workingColorSpaceConfig:{unpackColorSpace:H},outputColorSpaceConfig:{drawingBufferColorSpace:H}},[H]:{primaries:vt,whitePoint:wt,transfer:tt,toXYZ:Mt,fromXYZ:bt,luminanceCoefficients:zt,outputColorSpaceConfig:{drawingBufferColorSpace:H}}});class Ft{constructor(t=0,e=0,s=0,r=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=s,this._w=r}static slerpFlat(t,e,s,r,n,h,o){let c=s[r+0],a=s[r+1],u=s[r+2],l=s[r+3];const f=n[h+0],x=n[h+1],m=n[h+2],M=n[h+3];if(o===0){t[e+0]=c,t[e+1]=a,t[e+2]=u,t[e+3]=l;return}if(o===1){t[e+0]=f,t[e+1]=x,t[e+2]=m,t[e+3]=M;return}if(l!==M||c!==f||a!==x||u!==m){let w=1-o;const I=c*f+a*x+u*m+l*M,S=I>=0?1:-1,v=1-I*I;if(v>Number.EPSILON){const b=Math.sqrt(v),L=Math.atan2(b,I*S);w=Math.sin(w*L)/b,o=Math.sin(o*L)/b}const g=o*S;if(c=c*w+f*g,a=a*w+x*g,u=u*w+m*g,l=l*w+M*g,w===1-o){const b=1/Math.sqrt(c*c+a*a+u*u+l*l);c*=b,a*=b,u*=b,l*=b}}t[e]=c,t[e+1]=a,t[e+2]=u,t[e+3]=l}static multiplyQuaternionsFlat(t,e,s,r,n,h){const o=s[r],c=s[r+1],a=s[r+2],u=s[r+3],l=n[h],f=n[h+1],x=n[h+2],m=n[h+3];return t[e]=o*m+u*l+c*x-a*f,t[e+1]=c*m+u*f+a*l-o*x,t[e+2]=a*m+u*x+o*f-c*l,t[e+3]=u*m-o*l-c*f-a*x,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,s,r){return this._x=t,this._y=e,this._z=s,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){const s=t._x,r=t._y,n=t._z,h=t._order,o=Math.cos,c=Math.sin,a=o(s/2),u=o(r/2),l=o(n/2),f=c(s/2),x=c(r/2),m=c(n/2);switch(h){case"XYZ":this._x=f*u*l+a*x*m,this._y=a*x*l-f*u*m,this._z=a*u*m+f*x*l,this._w=a*u*l-f*x*m;break;case"YXZ":this._x=f*u*l+a*x*m,this._y=a*x*l-f*u*m,this._z=a*u*m-f*x*l,this._w=a*u*l+f*x*m;break;case"ZXY":this._x=f*u*l-a*x*m,this._y=a*x*l+f*u*m,this._z=a*u*m+f*x*l,this._w=a*u*l-f*x*m;break;case"ZYX":this._x=f*u*l-a*x*m,this._y=a*x*l+f*u*m,this._z=a*u*m-f*x*l,this._w=a*u*l+f*x*m;break;case"YZX":this._x=f*u*l+a*x*m,this._y=a*x*l+f*u*m,this._z=a*u*m-f*x*l,this._w=a*u*l-f*x*m;break;case"XZY":this._x=f*u*l-a*x*m,this._y=a*x*l-f*u*m,this._z=a*u*m+f*x*l,this._w=a*u*l+f*x*m;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+h)}return e===!0&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const s=e/2,r=Math.sin(s);return this._x=t.x*r,this._y=t.y*r,this._z=t.z*r,this._w=Math.cos(s),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,s=e[0],r=e[4],n=e[8],h=e[1],o=e[5],c=e[9],a=e[2],u=e[6],l=e[10],f=s+o+l;if(f>0){const x=.5/Math.sqrt(f+1);this._w=.25/x,this._x=(u-c)*x,this._y=(n-a)*x,this._z=(h-r)*x}else if(s>o&&s>l){const x=2*Math.sqrt(1+s-o-l);this._w=(u-c)/x,this._x=.25*x,this._y=(r+h)/x,this._z=(n+a)/x}else if(o>l){const x=2*Math.sqrt(1+o-s-l);this._w=(n-a)/x,this._x=(r+h)/x,this._y=.25*x,this._z=(c+u)/x}else{const x=2*Math.sqrt(1+l-s-o);this._w=(h-r)/x,this._x=(n+a)/x,this._y=(c+u)/x,this._z=.25*x}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let s=t.dot(e)+1;return s<Number.EPSILON?(s=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=s):(this._x=0,this._y=-t.z,this._z=t.y,this._w=s)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=s),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(dt(this.dot(t),-1,1)))}rotateTowards(t,e){const s=this.angleTo(t);if(s===0)return this;const r=Math.min(1,e/s);return this.slerp(t,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const s=t._x,r=t._y,n=t._z,h=t._w,o=e._x,c=e._y,a=e._z,u=e._w;return this._x=s*u+h*o+r*a-n*c,this._y=r*u+h*c+n*o-s*a,this._z=n*u+h*a+s*c-r*o,this._w=h*u-s*o-r*c-n*a,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);const s=this._x,r=this._y,n=this._z,h=this._w;let o=h*t._w+s*t._x+r*t._y+n*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=h,this._x=s,this._y=r,this._z=n,this;const c=1-o*o;if(c<=Number.EPSILON){const x=1-e;return this._w=x*h+e*this._w,this._x=x*s+e*this._x,this._y=x*r+e*this._y,this._z=x*n+e*this._z,this.normalize(),this}const a=Math.sqrt(c),u=Math.atan2(a,o),l=Math.sin((1-e)*u)/a,f=Math.sin(e*u)/a;return this._w=h*l+this._w*f,this._x=s*l+this._x*f,this._y=r*l+this._y*f,this._z=n*l+this._z*f,this._onChangeCallback(),this}slerpQuaternions(t,e,s){return this.copy(t).slerp(e,s)}random(){const t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),s=Math.random(),r=Math.sqrt(1-s),n=Math.sqrt(s);return this.set(r*Math.sin(t),r*Math.cos(t),n*Math.sin(e),n*Math.cos(e))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Z{constructor(t=0,e=0,s=0){Z.prototype.isVector3=!0,this.x=t,this.y=e,this.z=s}set(t,e,s){return s===void 0&&(s=this.z),this.x=t,this.y=e,this.z=s,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(Ct.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(Ct.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,s=this.y,r=this.z,n=t.elements;return this.x=n[0]*e+n[3]*s+n[6]*r,this.y=n[1]*e+n[4]*s+n[7]*r,this.z=n[2]*e+n[5]*s+n[8]*r,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,s=this.y,r=this.z,n=t.elements,h=1/(n[3]*e+n[7]*s+n[11]*r+n[15]);return this.x=(n[0]*e+n[4]*s+n[8]*r+n[12])*h,this.y=(n[1]*e+n[5]*s+n[9]*r+n[13])*h,this.z=(n[2]*e+n[6]*s+n[10]*r+n[14])*h,this}applyQuaternion(t){const e=this.x,s=this.y,r=this.z,n=t.x,h=t.y,o=t.z,c=t.w,a=2*(h*r-o*s),u=2*(o*e-n*r),l=2*(n*s-h*e);return this.x=e+c*a+h*l-o*u,this.y=s+c*u+o*a-n*l,this.z=r+c*l+n*u-h*a,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,s=this.y,r=this.z,n=t.elements;return this.x=n[0]*e+n[4]*s+n[8]*r,this.y=n[1]*e+n[5]*s+n[9]*r,this.z=n[2]*e+n[6]*s+n[10]*r,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const s=this.length();return this.divideScalar(s||1).multiplyScalar(Math.max(t,Math.min(e,s)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,s){return this.x=t.x+(e.x-t.x)*s,this.y=t.y+(e.y-t.y)*s,this.z=t.z+(e.z-t.z)*s,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const s=t.x,r=t.y,n=t.z,h=e.x,o=e.y,c=e.z;return this.x=r*c-n*o,this.y=n*h-s*c,this.z=s*o-r*h,this}projectOnVector(t){const e=t.lengthSq();if(e===0)return this.set(0,0,0);const s=t.dot(this)/e;return this.copy(t).multiplyScalar(s)}projectOnPlane(t){return it.copy(this).projectOnVector(t),this.sub(it)}reflect(t){return this.sub(it.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;const s=this.dot(t)/e;return Math.acos(dt(s,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,s=this.y-t.y,r=this.z-t.z;return e*e+s*s+r*r}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,s){const r=Math.sin(e)*t;return this.x=r*Math.sin(s),this.y=Math.cos(e)*t,this.z=r*Math.cos(s),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,s){return this.x=t*Math.sin(e),this.y=s,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),s=this.setFromMatrixColumn(t,1).length(),r=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=s,this.z=r,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=Math.random()*Math.PI*2,e=Math.random()*2-1,s=Math.sqrt(1-e*e);return this.x=s*Math.cos(t),this.y=e,this.z=s*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const it=new Z,Ct=new Ft;typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:mt}})),typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=mt);var nt={exports:{}};nt.exports=Q,nt.exports.default=Q;function Q(i,t,e){e=e||2;var s=t&&t.length,r=s?t[0]*e:i.length,n=St(i,0,r,e,!0),h=[];if(!n||n.next===n.prev)return h;var o,c,a,u,l,f,x;if(s&&(n=Bt(i,t,n,e)),i.length>80*e){o=a=i[0],c=u=i[1];for(var m=e;m<r;m+=e)l=i[m],f=i[m+1],l<o&&(o=l),f<c&&(c=f),l>a&&(a=l),f>u&&(u=f);x=Math.max(a-o,u-c),x=x!==0?32767/x:0}return V(n,h,e,o,c,x,0),h}function St(i,t,e,s,r){var n,h;if(r===at(i,t,e,s)>0)for(n=t;n<e;n+=s)h=kt(n,i[n],i[n+1],h);else for(n=e-s;n>=t;n-=s)h=kt(n,i[n],i[n+1],h);return h&&q(h,h.next)&&(B(h),h=h.next),h}function A(i,t){if(!i)return i;t||(t=i);var e=i,s;do if(s=!1,!e.steiner&&(q(e,e.next)||j(e.prev,e,e.next)===0)){if(B(e),e=t=e.prev,e===e.next)break;s=!0}else e=e.next;while(s||e!==t);return t}function V(i,t,e,s,r,n,h){if(i){!h&&n&&Wt(i,s,r,n);for(var o=i,c,a;i.prev!==i.next;){if(c=i.prev,a=i.next,n?Rt(i,s,r,n):Nt(i)){t.push(c.i/e|0),t.push(i.i/e|0),t.push(a.i/e|0),B(i),i=a.next,o=a.next;continue}if(i=a,i===o){h?h===1?(i=Vt(A(i),t,e),V(i,t,e,s,r,n,2)):h===2&&Yt(i,t,e,s,r,n):V(A(i),t,e,s,r,n,1);break}}}}function Nt(i){var t=i.prev,e=i,s=i.next;if(j(t,e,s)>=0)return!1;for(var r=t.x,n=e.x,h=s.x,o=t.y,c=e.y,a=s.y,u=r<n?r<h?r:h:n<h?n:h,l=o<c?o<a?o:a:c<a?c:a,f=r>n?r>h?r:h:n>h?n:h,x=o>c?o>a?o:a:c>a?c:a,m=s.next;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=l&&m.y<=x&&F(r,o,n,c,h,a,m.x,m.y)&&j(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Rt(i,t,e,s){var r=i.prev,n=i,h=i.next;if(j(r,n,h)>=0)return!1;for(var o=r.x,c=n.x,a=h.x,u=r.y,l=n.y,f=h.y,x=o<c?o<a?o:a:c<a?c:a,m=u<l?u<f?u:f:l<f?l:f,M=o>c?o>a?o:a:c>a?c:a,w=u>l?u>f?u:f:l>f?l:f,I=ht(x,m,t,e,s),S=ht(M,w,t,e,s),v=i.prevZ,g=i.nextZ;v&&v.z>=I&&g&&g.z<=S;){if(v.x>=x&&v.x<=M&&v.y>=m&&v.y<=w&&v!==r&&v!==h&&F(o,u,c,l,a,f,v.x,v.y)&&j(v.prev,v,v.next)>=0||(v=v.prevZ,g.x>=x&&g.x<=M&&g.y>=m&&g.y<=w&&g!==r&&g!==h&&F(o,u,c,l,a,f,g.x,g.y)&&j(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;v&&v.z>=I;){if(v.x>=x&&v.x<=M&&v.y>=m&&v.y<=w&&v!==r&&v!==h&&F(o,u,c,l,a,f,v.x,v.y)&&j(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;g&&g.z<=S;){if(g.x>=x&&g.x<=M&&g.y>=m&&g.y<=w&&g!==r&&g!==h&&F(o,u,c,l,a,f,g.x,g.y)&&j(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function Vt(i,t,e){var s=i;do{var r=s.prev,n=s.next.next;!q(r,n)&&jt(r,s,s.next,n)&&Y(r,n)&&Y(n,r)&&(t.push(r.i/e|0),t.push(s.i/e|0),t.push(n.i/e|0),B(s),B(s.next),s=i=n),s=s.next}while(s!==i);return A(s)}function Yt(i,t,e,s,r,n){var h=i;do{for(var o=h.next.next;o!==h.prev;){if(h.i!==o.i&&Jt(h,o)){var c=It(h,o);h=A(h,h.next),c=A(c,c.next),V(h,t,e,s,r,n,0),V(c,t,e,s,r,n,0);return}o=o.next}h=h.next}while(h!==i)}function Bt(i,t,e,s){var r=[],n,h,o,c,a;for(n=0,h=t.length;n<h;n++)o=t[n]*s,c=n<h-1?t[n+1]*s:i.length,a=St(i,o,c,s,!1),a===a.next&&(a.steiner=!0),r.push(Ut(a));for(r.sort(Xt),n=0;n<r.length;n++)e=Ht(r[n],e);return e}function Xt(i,t){return i.x-t.x}function Ht(i,t){var e=Qt(i,t);if(!e)return t;var s=It(e,i);return A(s,s.next),A(e,e.next)}function Qt(i,t){var e=t,s=i.x,r=i.y,n=-1/0,h;do{if(r<=e.y&&r>=e.next.y&&e.next.y!==e.y){var o=e.x+(r-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(o<=s&&o>n&&(n=o,h=e.x<e.next.x?e:e.next,o===s))return h}e=e.next}while(e!==t);if(!h)return null;var c=h,a=h.x,u=h.y,l=1/0,f;e=h;do s>=e.x&&e.x>=a&&s!==e.x&&F(r<u?s:n,r,a,u,r<u?n:s,r,e.x,e.y)&&(f=Math.abs(r-e.y)/(s-e.x),Y(e,i)&&(f<l||f===l&&(e.x>h.x||e.x===h.x&&qt(h,e)))&&(h=e,l=f)),e=e.next;while(e!==c);return h}function qt(i,t){return j(i.prev,i,t.prev)<0&&j(t.next,i,i.next)<0}function Wt(i,t,e,s){var r=i;do r.z===0&&(r.z=ht(r.x,r.y,t,e,s)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,$t(r)}function $t(i){var t,e,s,r,n,h,o,c,a=1;do{for(e=i,i=null,n=null,h=0;e;){for(h++,s=e,o=0,t=0;t<a&&(o++,s=s.nextZ,!!s);t++);for(c=a;o>0||c>0&&s;)o!==0&&(c===0||!s||e.z<=s.z)?(r=e,e=e.nextZ,o--):(r=s,s=s.nextZ,c--),n?n.nextZ=r:i=r,r.prevZ=n,n=r;e=s}n.nextZ=null,a*=2}while(h>1);return i}function ht(i,t,e,s,r){return i=(i-e)*r|0,t=(t-s)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function Ut(i){var t=i,e=i;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==i);return e}function F(i,t,e,s,r,n,h,o){return(r-h)*(t-o)>=(i-h)*(n-o)&&(i-h)*(s-o)>=(e-h)*(t-o)&&(e-h)*(n-o)>=(r-h)*(s-o)}function Jt(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!Kt(i,t)&&(Y(i,t)&&Y(t,i)&&te(i,t)&&(j(i.prev,i,t.prev)||j(i,t.prev,t))||q(i,t)&&j(i.prev,i,i.next)>0&&j(t.prev,t,t.next)>0)}function j(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function q(i,t){return i.x===t.x&&i.y===t.y}function jt(i,t,e,s){var r=$(j(i,t,e)),n=$(j(i,t,s)),h=$(j(e,s,i)),o=$(j(e,s,t));return!!(r!==n&&h!==o||r===0&&W(i,e,t)||n===0&&W(i,s,t)||h===0&&W(e,i,s)||o===0&&W(e,t,s))}function W(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function $(i){return i>0?1:i<0?-1:0}function Kt(i,t){var e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&jt(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Y(i,t){return j(i.prev,i,i.next)<0?j(i,t,i.next)>=0&&j(i,i.prev,t)>=0:j(i,t,i.prev)<0||j(i,i.next,t)<0}function te(i,t){var e=i,s=!1,r=(i.x+t.x)/2,n=(i.y+t.y)/2;do e.y>n!=e.next.y>n&&e.next.y!==e.y&&r<(e.next.x-e.x)*(n-e.y)/(e.next.y-e.y)+e.x&&(s=!s),e=e.next;while(e!==i);return s}function It(i,t){var e=new ot(i.i,i.x,i.y),s=new ot(t.i,t.x,t.y),r=i.next,n=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,s.next=e,e.prev=s,n.next=s,s.prev=n,s}function kt(i,t,e,s){var r=new ot(i,t,e);return s?(r.next=s.next,r.prev=s,s.next.prev=r,s.next=r):(r.prev=r,r.next=r),r}function B(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function ot(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}Q.deviation=function(i,t,e,s){var r=t&&t.length,n=r?t[0]*e:i.length,h=Math.abs(at(i,0,n,e));if(r)for(var o=0,c=t.length;o<c;o++){var a=t[o]*e,u=o<c-1?t[o+1]*e:i.length;h-=Math.abs(at(i,a,u,e))}var l=0;for(o=0;o<s.length;o+=3){var f=s[o]*e,x=s[o+1]*e,m=s[o+2]*e;l+=Math.abs((i[f]-i[m])*(i[x+1]-i[f+1])-(i[f]-i[x])*(i[m+1]-i[f+1]))}return h===0&&l===0?0:Math.abs((l-h)/h)};function at(i,t,e,s){for(var r=0,n=t,h=e-s;n<e;n+=s)r+=(i[h]-i[n])*(i[n+1]+i[h+1]),h=n;return r}Q.flatten=function(i){for(var t=i[0][0].length,e={vertices:[],holes:[],dimensions:t},s=0,r=0;r<i.length;r++){for(var n=0;n<i[r].length;n++)for(var h=0;h<t;h++)e.vertices.push(i[r][n][h]);r>0&&(s+=i[r-1].length,e.holes.push(s))}return e};var ee=nt.exports,se=Lt(ee);class re extends K{constructor(t,e,s,r){super(t,e,s),r?this.vertices=r:this.vertices=this.json.vertices,this.geomData=new D(pt)}clean(){this.geomData=new D(pt)}flattenGeometry(t){const e=t.type;if(e=="MultiSurface"||e=="CompositeSurface")return t;if(e=="Solid"){const s=Object.assign({},t);if(s.boundaries=t.boundaries.flat(1),t.semantics&&(s.semantics.values=t.semantics.values.flat(1)),t.material)for(const r in t.material)s.material[r].values=t.material[r].values.flat(1);if(t.texture)for(const r in t.texture)s.texture[r].values=t.texture[r].values.flat(1);return s}if(e=="MultiSolid"||e=="CompositeSolid"){const s=Object.assign({},t);if(s.boundaries=t.boundaries.flat(2),t.semantics&&(s.semantics.values=t.semantics.values.flat(2)),t.material)for(const r in t.material)s.material[r].values=t.material[r].values.flat(2);if(t.texture)for(const r in t.texture)s.texture[r].values=t.texture[r].values.flat(2);return s}}parseGeometry(t,e,s){const r=this.json.CityObjects[e],n=r?this.getObjectIdx(e):-1,h=r?this.getObjectTypeIdx(r.type):-1,o=this.getLodIndex(t.lod),c=this.flattenGeometry(t);c&&this.parseShell(c,n,h,s,o)}parseShell(t,e,s,r,n){const h=t.boundaries,o=t.semantics?t.semantics.values:[],c=t.semantics?t.semantics.surfaces:[],a=t.material?t.material:{},u=t.texture?t.texture:{};for(let l=0;l<h.length;l++){let f=[],x=[];const m=this.getSurfaceTypeIdx(l,o,c),M=this.getSurfaceMaterials(l,a);for(let w=0;w<h[l].length;w++)f.length>0&&x.push(f.length),f.push(...h[l][w]);if(f.length==3)for(let w=0;w<3;w++)this.geomData.addVertex(f[w],e,s,m,r,l,n,M,this.getTextureData(l,w,x,u));else if(f.length>3){let w=[];for(let g=0;g<f.length;g++)w.push({x:this.vertices[f[g]][0],y:this.vertices[f[g]][1],z:this.vertices[f[g]][2]});const I=this.getNewellsNormal(w);let S=[];for(let g=0;g<w.length;g++){const b=this.to_2d(w[g],I);S.push(b.x),S.push(b.y)}const v=se(S,x,2);for(let g=0;g<v.length;g+=3)for(let b=0;b<3;b++){const L=f[v[g+b]];this.geomData.addVertex(L,e,s,m,r,l,n,M,this.getTextureData(l,v[g+b],x,u))}}}}getNewellsNormal(t){let e=[0,0,0];for(let r=0;r<t.length;r++){let n=r+1;n==t.length&&(n=0),e[0]=e[0]+(t[r].y-t[n].y)*(t[r].z+t[n].z),e[1]=e[1]+(t[r].z-t[n].z)*(t[r].x+t[n].x),e[2]=e[2]+(t[r].x-t[n].x)*(t[r].y+t[n].y)}return new Z(e[0],e[1],e[2]).normalize()}to_2d(t,e){t=new Z(t.x,t.y,t.z);let s=new Z(1.1,1.1,1.1);s.distanceTo(e)<.01&&s.add(new Z(1,2,3));let r=s.dot(e),n=e.clone();n.multiplyScalar(r),s.sub(n),s.normalize();let h=e.clone();h.cross(s);let o=t.dot(s),c=t.dot(h);return{x:o,y:c}}}class ie{constructor(){this.matrix=null,this.chunkSize=2e3,this.lods=[],this.objectColors={},this.surfaceColors={},this.onchunkload=null,this.onComplete=null}parse(t){let e=0;const s=[new re(t,Object.keys(t.CityObjects),this.objectColors),new At(t,Object.keys(t.CityObjects),this.objectColors),new Gt(t,Object.keys(t.CityObjects),this.objectColors)];for(const r in t.CityObjects){const n=t.CityObjects[r];if(n.geometry&&n.geometry.length>0)for(let h=0;h<n.geometry.length;h++)for(const o of s)o.lods=this.lods,o.parseGeometry(n.geometry[h],r,h),this.lods=o.lods;if(e++>this.chunkSize){for(const h of s)this.returnObjects(h,t),h.clean();e=0}}for(const r of s)this.returnObjects(r,t),r.clean();this.objectColors=s[0].objectColors,this.surfaceColors=s[0].surfaceColors,this.onComplete&&this.onComplete()}returnObjects(t,e){t.geomData.count()>0&&this.onchunkload(t.geomData.getVertices(e.vertices),t.geomData.toObject(),t.lods,t.objectColors,t.surfaceColors)}}onmessage=function(i){const t=new ie,e=i.data[1];e&&(e.chunkSize&&(t.chunkSize=e.chunkSize),e.objectColors&&(t.objectColors=e.objectColors),e.lods&&(t.lods=e.lods)),t.onchunkload=(s,r,n,h,o)=>{const a=new Float32Array(s).buffer;postMessage({type:"chunkLoaded",v_buffer:a,geometryData:r,lods:n,objectColors:h,surfaceColors:o},[a])},t.onComplete=()=>{this.postMessage({type:"done"})},t.parse(i.data[0])}})();
|