@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.
Files changed (245) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +134 -0
  3. package/dist/Components.cjs.js +2605 -0
  4. package/dist/Components.es.js +43490 -0
  5. package/dist/assets/ParserWorker-Bd30oD5I.js +5 -0
  6. package/dist/assets/style.css +9 -0
  7. package/dist/basedecoder.cjs.js +1 -0
  8. package/dist/basedecoder.es.js +88 -0
  9. package/dist/decoder.cjs.js +1 -0
  10. package/dist/decoder.es.js +9 -0
  11. package/dist/deflate.cjs.js +1 -0
  12. package/dist/deflate.es.js +10 -0
  13. package/dist/index.cjs.js +93 -0
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.es.js +65240 -0
  16. package/dist/jpeg.cjs.js +1 -0
  17. package/dist/jpeg.es.js +514 -0
  18. package/dist/lerc.cjs.js +1 -0
  19. package/dist/lerc.es.js +1027 -0
  20. package/dist/lzw.cjs.js +1 -0
  21. package/dist/lzw.es.js +84 -0
  22. package/dist/modules.cjs.js +2973 -0
  23. package/dist/modules.d.ts +2 -0
  24. package/dist/modules.es.js +87571 -0
  25. package/dist/packbits.cjs.js +1 -0
  26. package/dist/packbits.es.js +24 -0
  27. package/dist/pako.esm.cjs.js +1 -0
  28. package/dist/pako.esm.es.js +1053 -0
  29. package/dist/piero_logo.png +0 -0
  30. package/dist/piero_logo_compact.png +0 -0
  31. package/dist/raw.cjs.js +1 -0
  32. package/dist/raw.es.js +9 -0
  33. package/dist/sponsors/bpi_france.png +0 -0
  34. package/dist/sponsors/france_2030.png +0 -0
  35. package/dist/sponsors/france_relance.png +0 -0
  36. package/dist/sponsors/oslandia.png +0 -0
  37. package/dist/sponsors/ue_next_generation.png +0 -0
  38. package/dist/src/App.vue.d.ts +6 -0
  39. package/dist/src/api/BookmarkApi.d.ts +6 -0
  40. package/dist/src/api/DatasetApi.d.ts +61 -0
  41. package/dist/src/api/ViewApi.d.ts +4 -0
  42. package/dist/src/api/index.d.ts +4 -0
  43. package/dist/src/components/AlertToast.vue.d.ts +4 -0
  44. package/dist/src/components/AttributeGroup.vue.d.ts +7 -0
  45. package/dist/src/components/AttributeItem.vue.d.ts +6 -0
  46. package/dist/src/components/AttributePanel.vue.d.ts +14 -0
  47. package/dist/src/components/ColorFragment.vue.d.ts +6 -0
  48. package/dist/src/components/Configuration.d.ts +14 -0
  49. package/dist/src/components/CoordinateFragment.vue.d.ts +10 -0
  50. package/dist/src/components/DropdownView.vue.d.ts +13 -0
  51. package/dist/src/components/LinkFragment.vue.d.ts +10 -0
  52. package/dist/src/components/LoadingScreen.vue.d.ts +2 -0
  53. package/dist/src/components/MainView.vue.d.ts +5 -0
  54. package/dist/src/components/MinimapView.vue.d.ts +4 -0
  55. package/dist/src/components/ModalOverlay.vue.d.ts +17 -0
  56. package/dist/src/components/NavigationButtons.vue.d.ts +2 -0
  57. package/dist/src/components/OpacitySlider.vue.d.ts +10 -0
  58. package/dist/src/components/PanelContainer.vue.d.ts +10 -0
  59. package/dist/src/components/ProgressBar.vue.d.ts +14 -0
  60. package/dist/src/components/SearchOverlay.vue.d.ts +8 -0
  61. package/dist/src/components/SpinnerControl.vue.d.ts +2 -0
  62. package/dist/src/components/StatusBar.vue.d.ts +10 -0
  63. package/dist/src/components/SwitchToggle.vue.d.ts +17 -0
  64. package/dist/src/components/VisibilityControl.vue.d.ts +9 -0
  65. package/dist/src/components/atoms/ButtonArea.vue.d.ts +9 -0
  66. package/dist/src/components/atoms/ButtonWithIcon.vue.d.ts +11 -0
  67. package/dist/src/components/atoms/CompactList.vue.d.ts +9 -0
  68. package/dist/src/components/atoms/Icon.vue.d.ts +6 -0
  69. package/dist/src/components/atoms/IconList.vue.d.ts +9 -0
  70. package/dist/src/components/atoms/IconListButton.vue.d.ts +10 -0
  71. package/dist/src/components/atoms/ImportButton.vue.d.ts +13 -0
  72. package/dist/src/components/atoms/ListLabel.vue.d.ts +5 -0
  73. package/dist/src/components/atoms/ListLabelButton.vue.d.ts +11 -0
  74. package/dist/src/components/atoms/SectionCollapsible.vue.d.ts +20 -0
  75. package/dist/src/components/charts/BarChart.vue.d.ts +4 -0
  76. package/dist/src/components/charts/DoughnutChart.vue.d.ts +4 -0
  77. package/dist/src/components/panels/AboutPanel.vue.d.ts +2 -0
  78. package/dist/src/components/panels/AnalysisPanel.vue.d.ts +2 -0
  79. package/dist/src/components/panels/AnnotationItem.vue.d.ts +21 -0
  80. package/dist/src/components/panels/AnnotationPanel.vue.d.ts +2 -0
  81. package/dist/src/components/panels/BasemapItem.vue.d.ts +17 -0
  82. package/dist/src/components/panels/BookmarkItem.vue.d.ts +16 -0
  83. package/dist/src/components/panels/BookmarkPanel.vue.d.ts +2 -0
  84. package/dist/src/components/panels/DatagroupItem.vue.d.ts +18 -0
  85. package/dist/src/components/panels/DatasetItem.vue.d.ts +18 -0
  86. package/dist/src/components/panels/DatasetOrGroupItem.vue.d.ts +18 -0
  87. package/dist/src/components/panels/DatasetPanel.vue.d.ts +2 -0
  88. package/dist/src/components/panels/EmptyIndicator.vue.d.ts +6 -0
  89. package/dist/src/components/panels/LoadingIndicator.vue.d.ts +6 -0
  90. package/dist/src/components/panels/MeasurementItem.vue.d.ts +17 -0
  91. package/dist/src/components/panels/MeasurementPanel.vue.d.ts +2 -0
  92. package/dist/src/components/panels/OverlayItem.vue.d.ts +19 -0
  93. package/dist/src/components/panels/ShareBookmarkModal.vue.d.ts +5 -0
  94. package/dist/src/components/panels/analysis/ClippingBox.vue.d.ts +2 -0
  95. package/dist/src/components/panels/analysis/CrossSection.vue.d.ts +2 -0
  96. package/dist/src/components/panels/analysis/FloodingPlane.vue.d.ts +2 -0
  97. package/dist/src/components/panels/analysis/Statistics.vue.d.ts +2 -0
  98. package/dist/src/components/panels/analysis/ToolWrapper.vue.d.ts +20 -0
  99. package/dist/src/components/toolbar/ToolBar.vue.d.ts +9 -0
  100. package/dist/src/components/toolbar/ToolbarButton.vue.d.ts +12 -0
  101. package/dist/src/config-loader.d.ts +7 -0
  102. package/dist/src/constants.d.ts +7 -0
  103. package/dist/src/context.d.ts +35 -0
  104. package/dist/src/createPieroApp.d.ts +31 -0
  105. package/dist/src/events.d.ts +30 -0
  106. package/dist/src/giro3d/CameraControlsInspector.d.ts +17 -0
  107. package/dist/src/giro3d/EntityBuilder.d.ts +21 -0
  108. package/dist/src/giro3d/Graticule.d.ts +20 -0
  109. package/dist/src/giro3d/Grid.d.ts +11 -0
  110. package/dist/src/giro3d/LayerBuilder.d.ts +46 -0
  111. package/dist/src/giro3d/Measure3D.d.ts +19 -0
  112. package/dist/src/giro3d/Plane.d.ts +11 -0
  113. package/dist/src/giro3d/Skybox.d.ts +6 -0
  114. package/dist/src/giro3d/entities/FeatureCollectionEntity.d.ts +41 -0
  115. package/dist/src/giro3d/entities/PointCloudEntity.d.ts +45 -0
  116. package/dist/src/giro3d/entities/TiledPointCloudEntity.d.ts +13 -0
  117. package/dist/src/giro3d/entities/Tiles3dEntity.d.ts +11 -0
  118. package/dist/src/giro3d/entities/VectorLabelsEntity.d.ts +48 -0
  119. package/dist/src/giro3d/entities/VectorMeshEntity.d.ts +97 -0
  120. package/dist/src/giro3d/entities/VectorShapeEntity.d.ts +8 -0
  121. package/dist/src/giro3d/entities/flatPointCloud.d.ts +2 -0
  122. package/dist/src/giro3d/entities/tiledIfc.d.ts +2 -0
  123. package/dist/src/giro3d/entities/vector.d.ts +2 -0
  124. package/dist/src/giro3d/sources/GeopackageSource.d.ts +20 -0
  125. package/dist/src/giro3d/sources/ShapefileSource.d.ts +20 -0
  126. package/dist/src/giro3d/sources/mixins.d.ts +60 -0
  127. package/dist/src/index.d.ts +17 -0
  128. package/dist/src/loaders/csv.d.ts +3 -0
  129. package/dist/src/loaders/las.d.ts +3 -0
  130. package/dist/src/loaders/loader.d.ts +29 -0
  131. package/dist/src/loaders/loader.test.d.ts +1 -0
  132. package/dist/src/loaders/userData.d.ts +8 -0
  133. package/dist/src/loaders/vector.d.ts +4 -0
  134. package/dist/src/module.d.ts +11 -0
  135. package/dist/src/modules/CityJSONLoader.d.ts +10 -0
  136. package/dist/src/modules/IFCLoader.d.ts +9 -0
  137. package/dist/src/modules/PLYLoader.d.ts +9 -0
  138. package/dist/src/modules/PotreeLoader.d.ts +9 -0
  139. package/dist/src/modules/Tour.d.ts +17 -0
  140. package/dist/src/modules/cityjson/CityJSONEntity.d.ts +79 -0
  141. package/dist/src/modules/cityjson/CityJSONEntityInspector.d.ts +8 -0
  142. package/dist/src/modules/ifc/IfcEntity.d.ts +87 -0
  143. package/dist/src/modules/ifc/IfcEntityInspector.d.ts +7 -0
  144. package/dist/src/modules/ifc/IfcPropertyView.vue.d.ts +6 -0
  145. package/dist/src/modules/ifc/IfcSubtree.vue.d.ts +7 -0
  146. package/dist/src/modules/index.d.ts +6 -0
  147. package/dist/src/modules/ply/PlyEntity.d.ts +33 -0
  148. package/dist/src/providers/Alticoding.d.ts +32 -0
  149. package/dist/src/providers/BanProvider.d.ts +11 -0
  150. package/dist/src/providers/Geocoding.d.ts +7 -0
  151. package/dist/src/providers/IgnProvider.d.ts +11 -0
  152. package/dist/src/services/AnalysisManager.d.ts +10 -0
  153. package/dist/src/services/AnnotationManager.d.ts +48 -0
  154. package/dist/src/services/CameraController.d.ts +99 -0
  155. package/dist/src/services/DatasetManager.d.ts +27 -0
  156. package/dist/src/services/Giro3DManager.d.ts +42 -0
  157. package/dist/src/services/Highlighter.d.ts +11 -0
  158. package/dist/src/services/LayerManager.d.ts +37 -0
  159. package/dist/src/services/MeasureTool.d.ts +13 -0
  160. package/dist/src/services/MeasurementManager.d.ts +31 -0
  161. package/dist/src/services/MinimapController.d.ts +19 -0
  162. package/dist/src/services/Picker.d.ts +53 -0
  163. package/dist/src/services/analysis/ClippingBoxManager.d.ts +41 -0
  164. package/dist/src/services/analysis/CrossSectionManager.d.ts +9 -0
  165. package/dist/src/services/analysis/FloodingPlaneManager.d.ts +11 -0
  166. package/dist/src/stores/analysis.d.ts +1571 -0
  167. package/dist/src/stores/annotations.d.ts +60 -0
  168. package/dist/src/stores/bookmarks.d.ts +21 -0
  169. package/dist/src/stores/camera.d.ts +287 -0
  170. package/dist/src/stores/datasets.d.ts +49 -0
  171. package/dist/src/stores/giro3d.d.ts +45 -0
  172. package/dist/src/stores/layers.d.ts +40 -0
  173. package/dist/src/stores/measurement.d.ts +45 -0
  174. package/dist/src/stores/modules.d.ts +11 -0
  175. package/dist/src/stores/notifications.d.ts +8 -0
  176. package/dist/src/stores/statistics.d.ts +8 -0
  177. package/dist/src/types/Annotation.d.ts +35 -0
  178. package/dist/src/types/AnnotationMode.d.ts +7 -0
  179. package/dist/src/types/BaseLayer.d.ts +30 -0
  180. package/dist/src/types/Bookmark.d.ts +19 -0
  181. package/dist/src/types/CameraPosition.d.ts +7 -0
  182. package/dist/src/types/Configuration.d.ts +94 -0
  183. package/dist/src/types/Dataset.d.ts +78 -0
  184. package/dist/src/types/Feature.d.ts +13 -0
  185. package/dist/src/types/FloodingPlane.d.ts +14 -0
  186. package/dist/src/types/IFCTypes.d.ts +5 -0
  187. package/dist/src/types/LayerObject.d.ts +20 -0
  188. package/dist/src/types/Measure.d.ts +20 -0
  189. package/dist/src/types/MeasurementMode.d.ts +7 -0
  190. package/dist/src/types/Named.d.ts +5 -0
  191. package/dist/src/types/NavigationMode.d.ts +2 -0
  192. package/dist/src/types/Notification.d.ts +8 -0
  193. package/dist/src/types/OLGeometry.d.ts +1 -0
  194. package/dist/src/types/Overlay.d.ts +24 -0
  195. package/dist/src/types/VectorStyle.d.ts +31 -0
  196. package/dist/src/types/Viewbox.d.ts +7 -0
  197. package/dist/src/types/configuration/analysis.d.ts +26 -0
  198. package/dist/src/types/configuration/bookmark.d.ts +16 -0
  199. package/dist/src/types/configuration/camera.d.ts +19 -0
  200. package/dist/src/types/configuration/color.d.ts +18 -0
  201. package/dist/src/types/configuration/datasets/cityjson.d.ts +9 -0
  202. package/dist/src/types/configuration/datasets/core.d.ts +49 -0
  203. package/dist/src/types/configuration/datasets/featureCollection.d.ts +6 -0
  204. package/dist/src/types/configuration/datasets/ifc.d.ts +10 -0
  205. package/dist/src/types/configuration/datasets/index.d.ts +27 -0
  206. package/dist/src/types/configuration/datasets/layer.d.ts +43 -0
  207. package/dist/src/types/configuration/datasets/ply.d.ts +10 -0
  208. package/dist/src/types/configuration/datasets/pointCloud.d.ts +12 -0
  209. package/dist/src/types/configuration/datasets/potreePointCloud.d.ts +10 -0
  210. package/dist/src/types/configuration/datasets/tiledIfc.d.ts +9 -0
  211. package/dist/src/types/configuration/datasets/tiledPointCloud.d.ts +9 -0
  212. package/dist/src/types/configuration/datasets/vector.d.ts +34 -0
  213. package/dist/src/types/configuration/features.d.ts +2 -0
  214. package/dist/src/types/configuration/geographic.d.ts +51 -0
  215. package/dist/src/types/configuration/layers/core.d.ts +50 -0
  216. package/dist/src/types/configuration/layers/index.d.ts +49 -0
  217. package/dist/src/types/configuration/sources/bingMaps.d.ts +5 -0
  218. package/dist/src/types/configuration/sources/core/baseConfig.d.ts +70 -0
  219. package/dist/src/types/configuration/sources/core/tiled.d.ts +19 -0
  220. package/dist/src/types/configuration/sources/core/vector.d.ts +13 -0
  221. package/dist/src/types/configuration/sources/core/vectorTile.d.ts +8 -0
  222. package/dist/src/types/configuration/sources/customVector.d.ts +7 -0
  223. package/dist/src/types/configuration/sources/customVectorTile.d.ts +8 -0
  224. package/dist/src/types/configuration/sources/geojson.d.ts +5 -0
  225. package/dist/src/types/configuration/sources/geotiff.d.ts +8 -0
  226. package/dist/src/types/configuration/sources/gpx.d.ts +5 -0
  227. package/dist/src/types/configuration/sources/kml.d.ts +5 -0
  228. package/dist/src/types/configuration/sources/mvt.d.ts +10 -0
  229. package/dist/src/types/configuration/sources/osm.d.ts +5 -0
  230. package/dist/src/types/configuration/sources/stadiaMaps.d.ts +5 -0
  231. package/dist/src/types/configuration/sources/wms.d.ts +15 -0
  232. package/dist/src/types/configuration/sources/wmts.d.ts +15 -0
  233. package/dist/src/types/configuration/sources/xyz.d.ts +9 -0
  234. package/dist/src/types/utilities.d.ts +5 -0
  235. package/dist/src/utils/Components.d.ts +8 -0
  236. package/dist/src/utils/Configuration.d.ts +15 -0
  237. package/dist/src/utils/Download.d.ts +11 -0
  238. package/dist/src/utils/Fetcher.d.ts +77 -0
  239. package/dist/src/utils/Measure.d.ts +7 -0
  240. package/dist/src/utils/OLFeatures.d.ts +57 -0
  241. package/dist/src/utils/Projections.d.ts +10 -0
  242. package/dist/src/utils/Types.d.ts +11 -0
  243. package/dist/webimage.cjs.js +1 -0
  244. package/dist/webimage.es.js +19 -0
  245. package/package.json +100 -0
@@ -0,0 +1,97 @@
1
+ import { ExtractOptional } from '../../types/utilities';
2
+ import { FetchContext } from '../../utils/Fetcher';
3
+ import { SimpleFeature } from '../../utils/OLFeatures';
4
+ import { default as Instance } from '@giro3d/giro3d/core/Instance';
5
+ import { default as Entity3D } from '@giro3d/giro3d/entities/Entity3D';
6
+ import { PolygonOptions } from '@giro3d/giro3d/renderer/geometries/GeometryConverter';
7
+ import { default as FeatureFormat } from 'ol/format/Feature';
8
+ import { Group } from '../../../../../node_modules/three';
9
+ import { DataProjectionMixin, ElevationMixin, FeatureProjectionMixin, UrlOrDataMixin } from '../sources/mixins';
10
+ /** Source for {@link VectorMeshEntity} */
11
+ export interface VectorMeshSourceOptions extends UrlOrDataMixin, DataProjectionMixin, Required<FeatureProjectionMixin>, ElevationMixin {
12
+ }
13
+ export declare const defaultParameters: Required<ExtractOptional<VectorMeshSourceOptions>>;
14
+ /**
15
+ * Converts a GeoJSON object into a list of GeoJSON features
16
+ * @param json - GeoJSON object
17
+ * @returns Array of GeoJSON features
18
+ */
19
+ export declare function toGeoJSONFeatures(json: GeoJSON.GeoJSON): GeoJSON.Feature[];
20
+ /**
21
+ * Converts GeoJSON features into OpenLayers features.
22
+ * Will handle reprojection if needed.
23
+ * Will fetch elevation if `parameters.fetchElevation` is `true`.
24
+ *
25
+ * @param features - Array of GeoJSON features
26
+ * @param parameters - Loader parameters
27
+ * @returns Array of simple features, where unsupported features are discarded
28
+ */
29
+ export declare function geojsonToOlFeatures(instance: Instance, features: GeoJSON.Feature[], parameters: VectorMeshSourceOptions): Promise<SimpleFeature[]>;
30
+ /**
31
+ * Converts loaded data into OpenLayers {@link SimpleFeature}s.
32
+ * Will handle reprojection if needed.
33
+ * Will fetch elevation if `parameters.fetchElevation` is `true`.
34
+ *
35
+ * @param data - Loaded data
36
+ * @param format - OpenLayers format used for decoding `data`
37
+ * @param parameters - Loader parameters
38
+ * @returns Array of simple features, where unsupported features are discarded
39
+ */
40
+ export declare function toOlFeatures(instance: Instance, data: string, format: FeatureFormat, parameters: VectorMeshSourceOptions): Promise<SimpleFeature[]>;
41
+ /**
42
+ * Converts {@link SimpleFeature}s into a Three.js `Group`.
43
+ * Assumes features are already in the correct CRS.
44
+ * If Z-coordinates are missing in the features (`null` or equal to `noDataValue`),
45
+ * they are filled at `options?.elevation` or at `defaultElevation`.
46
+ *
47
+ * @param features - Features to convert
48
+ * @param options - GeometryConverter options
49
+ * @param defaultElevation - Default elevation if not provided via options
50
+ * @param noDataValue - Value considered as no data for filling Z.
51
+ * @returns Group containing all meshes for all features
52
+ */
53
+ export declare function olFeaturestoGroup(features: SimpleFeature[], options?: PolygonOptions, defaultElevation?: number, noDataValue?: number): Promise<Group>;
54
+ /** Interface to implement for a new source for {@link VectorMeshEntity} */
55
+ export interface VectorMeshSource {
56
+ /** Elevation of the features */
57
+ elevation?: number;
58
+ /** No data value for elevation */
59
+ noDataValue?: number;
60
+ /** Loads the features. Will be called only once */
61
+ load(instance: Instance): Promise<SimpleFeature[]>;
62
+ /** Context of the data */
63
+ context(): FetchContext;
64
+ }
65
+ /** OpenLayers-based source */
66
+ export declare class OlMeshSource implements VectorMeshSource {
67
+ elevation?: number;
68
+ noDataValue?: number;
69
+ /** OL Feature format */
70
+ readonly format: FeatureFormat;
71
+ readonly options: VectorMeshSourceOptions;
72
+ constructor(format: FeatureFormat, options: VectorMeshSourceOptions);
73
+ load(instance: Instance): Promise<SimpleFeature[]>;
74
+ context(): FetchContext;
75
+ }
76
+ /** GPX source */
77
+ export declare class GpxMeshSource extends OlMeshSource {
78
+ constructor(options: VectorMeshSourceOptions);
79
+ }
80
+ /** KML source */
81
+ export declare class KmlMeshSource extends OlMeshSource {
82
+ constructor(options: VectorMeshSourceOptions);
83
+ }
84
+ /** GeoJSON source */
85
+ export declare class GeoJsonMeshSource implements VectorMeshSource {
86
+ elevation?: number;
87
+ readonly options: VectorMeshSourceOptions;
88
+ constructor(options: VectorMeshSourceOptions);
89
+ load(instance: Instance): Promise<SimpleFeature[]>;
90
+ context(): FetchContext;
91
+ }
92
+ /** Entity for displaying vector data as meshes */
93
+ export default class VectorMeshEntity extends Entity3D {
94
+ readonly sources: VectorMeshSource[];
95
+ constructor(sources: VectorMeshSource | VectorMeshSource[]);
96
+ protected preprocess(): Promise<void>;
97
+ }
@@ -0,0 +1,8 @@
1
+ import { default as Shape } from '@giro3d/giro3d/entities/Shape';
2
+ import { VectorMeshSource } from './VectorMeshEntity';
3
+ /** Entity for displaying vector data as meshes */
4
+ export default class VectorShapeEntity extends Shape {
5
+ readonly source: VectorMeshSource;
6
+ constructor(source: VectorMeshSource);
7
+ protected preprocess(): Promise<void>;
8
+ }
@@ -0,0 +1,2 @@
1
+ import { EntityBuilder } from '../EntityBuilder';
2
+ export declare const build: EntityBuilder;
@@ -0,0 +1,2 @@
1
+ import { EntityBuilder } from '../EntityBuilder';
2
+ export declare const build: EntityBuilder;
@@ -0,0 +1,2 @@
1
+ import { EntityBuilder } from '../EntityBuilder';
2
+ export declare const build: EntityBuilder;
@@ -0,0 +1,20 @@
1
+ import { FetchContext } from '../../utils/Fetcher';
2
+ import { SimpleFeature } from '../../utils/OLFeatures';
3
+ import { default as Instance } from '@giro3d/giro3d/core/Instance';
4
+ import { VectorMeshSource } from '../entities/VectorMeshEntity';
5
+ import { DataProjectionMixin, ElevationMixin, FeatureProjectionMixin, UrlOrDataMixin } from './mixins';
6
+ /**
7
+ * Options for loading Geopackage files into a {@link VectorMeshEntity}
8
+ */
9
+ export interface GeopackageSourceParameters extends UrlOrDataMixin, DataProjectionMixin, Required<FeatureProjectionMixin>, ElevationMixin {
10
+ }
11
+ /**
12
+ * Source for loading a Geopackage file into a {@link VectorMeshEntity}
13
+ */
14
+ export default class GeopackageSource implements VectorMeshSource {
15
+ elevation?: number;
16
+ readonly options: GeopackageSourceParameters;
17
+ constructor(options: GeopackageSourceParameters);
18
+ load(instance: Instance): Promise<SimpleFeature[]>;
19
+ context(): FetchContext;
20
+ }
@@ -0,0 +1,20 @@
1
+ import { FetchContext } from '../../utils/Fetcher';
2
+ import { SimpleFeature } from '../../utils/OLFeatures';
3
+ import { default as Instance } from '@giro3d/giro3d/core/Instance';
4
+ import { VectorMeshSource } from '../entities/VectorMeshEntity';
5
+ import { DataProjectionMixin, ElevationMixin, FeatureProjectionMixin, UrlOrDataMixin } from './mixins';
6
+ /**
7
+ * Options for loading Shapefile files into a {@link VectorMeshEntity}
8
+ */
9
+ export interface ShapefileSourceParameters extends UrlOrDataMixin, DataProjectionMixin, Required<FeatureProjectionMixin>, ElevationMixin {
10
+ }
11
+ /**
12
+ * Source for loading a Shapefile file into a {@link VectorMeshEntity}
13
+ */
14
+ export default class ShapefileSource implements VectorMeshSource {
15
+ elevation?: number;
16
+ readonly options: ShapefileSourceParameters;
17
+ constructor(options: ShapefileSourceParameters);
18
+ load(instance: Instance): Promise<SimpleFeature[]>;
19
+ context(): FetchContext;
20
+ }
@@ -0,0 +1,60 @@
1
+ import { UrlOrData } from '../../utils/Fetcher';
2
+ import { default as Coordinates } from '@giro3d/giro3d/core/geographic/Coordinates';
3
+ /** Mixin configuration for sources that require a URL */
4
+ export interface UrlMixin {
5
+ /** URL of the source */
6
+ url: string;
7
+ }
8
+ /** Mixin configuration for sources that require a URL or Blob */
9
+ export interface UrlOrDataMixin {
10
+ /** URL of the source */
11
+ url: UrlOrData;
12
+ }
13
+ /** Mixin configuration for sources that may have a data projection */
14
+ export interface DataProjectionMixin {
15
+ /** CRS of the source */
16
+ dataProjection?: string;
17
+ }
18
+ /** Mixin configuration for sources that may have a feature projection */
19
+ export interface FeatureProjectionMixin {
20
+ /** CRS of the target, should be the instance's CRS */
21
+ featureProjection?: string;
22
+ }
23
+ /** Mixin configuration for sources that may set their geolocation */
24
+ export interface CoordinatesMixin {
25
+ /** Location, should be in the instance's CRS */
26
+ at?: Coordinates;
27
+ }
28
+ /** Mixin configuration for sources that may require elevation configuration */
29
+ export interface ElevationMixin {
30
+ /**
31
+ * Elevation of data
32
+ *
33
+ * @defaultValue 0
34
+ */
35
+ elevation?: number;
36
+ /**
37
+ * Fetch elevation from provider
38
+ *
39
+ * @defaultValue false
40
+ */
41
+ fetchElevation?: boolean;
42
+ /**
43
+ * Fetch elevation from map instead of API
44
+ *
45
+ * @defaultValue false
46
+ */
47
+ fetchElevationFast?: boolean;
48
+ /**
49
+ * When fetching elevation, add this offset
50
+ *
51
+ * @defaultValue 0.1
52
+ */
53
+ fetchElevationOffset?: number;
54
+ /**
55
+ * When fetching or setting elevation, consider this value as no data
56
+ *
57
+ * @defaultValue 0
58
+ */
59
+ noDataValue?: number;
60
+ }
@@ -0,0 +1,17 @@
1
+ import { PieroContext } from './context';
2
+ import { default as createPieroApp } from './createPieroApp';
3
+ import { BookmarkEvents, PieroEmptyEvent, PieroEvents, PieroGlobalEvents } from './events';
4
+ import { EntityBuilder } from './giro3d/EntityBuilder';
5
+ import { LoadDatasetFromFile } from './loaders/loader';
6
+ import { fillObject3DUserData, UserData } from './loaders/userData';
7
+ import { Module } from './module';
8
+ import { AttributeExtractorFn } from './services/Picker';
9
+ import { default as Bookmark } from './types/Bookmark';
10
+ import { Configuration } from './types/Configuration';
11
+ import { Attribute, AttributesGroups } from './types/Feature';
12
+ import { default as Fetcher } from './utils/Fetcher';
13
+ import { default as Projections } from './utils/Projections';
14
+ import { default as BookmarkApi } from './api/BookmarkApi';
15
+ import { default as DatasetApi } from './api/DatasetApi';
16
+ import { default as ViewApi } from './api/ViewApi';
17
+ export { Attribute, AttributeExtractorFn, AttributesGroups, Bookmark, BookmarkApi, BookmarkEvents, Configuration, DatasetApi, EntityBuilder, Fetcher, LoadDatasetFromFile, Module, PieroContext, PieroEmptyEvent, PieroEvents, PieroGlobalEvents, Projections, UserData, ViewApi, createPieroApp, fillObject3DUserData, };
@@ -0,0 +1,3 @@
1
+ import { PointCloudDatasetConfig } from '../types/configuration/datasets/pointCloud';
2
+ import { LoadDatasetFromFile } from './loader';
3
+ export declare const load: LoadDatasetFromFile<PointCloudDatasetConfig>;
@@ -0,0 +1,3 @@
1
+ import { PointCloudDatasetConfig } from '../types/configuration/datasets/pointCloud';
2
+ import { LoadDatasetFromFile } from './loader';
3
+ export declare const load: LoadDatasetFromFile<PointCloudDatasetConfig>;
@@ -0,0 +1,29 @@
1
+ import { Configuration } from '../types/Configuration';
2
+ import { Dataset } from '../types/Dataset';
3
+ import { DatasetConfigImportable } from '../types/configuration/datasets';
4
+ export type LoaderContext = {
5
+ file: File;
6
+ extension: string;
7
+ filename: string;
8
+ configuration: Configuration;
9
+ };
10
+ export type LoadDatasetFromFile<O extends DatasetConfigImportable = DatasetConfigImportable> = (context: LoaderContext) => O;
11
+ /**
12
+ * Registers a custom loader for a specific file extension.
13
+ * If a loader for the same extension exists, it is replaced by the new one.
14
+ * @param fileExtension - The file extension, without the dot.
15
+ * @param loader - The loader to use.
16
+ */
17
+ export declare function registerLoader(fileExtension: string, loader: LoadDatasetFromFile): void;
18
+ /**
19
+ * Loads a file and creates its Dataset.
20
+ *
21
+ * @param file - File to load
22
+ * @returns Created objects
23
+ * @throws `Error` if file cannot be imported (unsupported, etc.)
24
+ */
25
+ declare function importFile(file: File, config: Readonly<Configuration>): Promise<Dataset>;
26
+ declare const _default: {
27
+ importFile: typeof importFile;
28
+ };
29
+ export default _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { default as Entity3D } from '@giro3d/giro3d/entities/Entity3D';
2
+ import { Object3D } from '../../../../node_modules/three';
3
+ /** User data to be set on the loaded entities */
4
+ export interface UserData {
5
+ /** File that the entity was loaded from */
6
+ filename?: string | null;
7
+ }
8
+ export declare function fillObject3DUserData(root: Object3D | Entity3D, userData: UserData): void;
@@ -0,0 +1,4 @@
1
+ import { ColorLayerDatasetConfig } from '../types/configuration/datasets/layer';
2
+ import { VectorLabelsDatasetConfig, VectorMeshDatasetConfig, VectorShapeDatasetConfig } from '../types/configuration/datasets/vector';
3
+ import { LoadDatasetFromFile } from './loader';
4
+ export declare const load: LoadDatasetFromFile<VectorMeshDatasetConfig | VectorShapeDatasetConfig | VectorLabelsDatasetConfig | ColorLayerDatasetConfig>;
@@ -0,0 +1,11 @@
1
+ import { PieroContext } from './context';
2
+ export interface Module {
3
+ /**
4
+ * The readable name of the module.
5
+ */
6
+ name: string;
7
+ /**
8
+ * Initialize this module on the Piero context.
9
+ */
10
+ initialize(context: PieroContext): Promise<void> | void;
11
+ }
@@ -0,0 +1,10 @@
1
+ import { PieroContext } from '../context';
2
+ import { EntityBuilder } from '../giro3d/EntityBuilder';
3
+ import { LoadDatasetFromFile } from '../loaders/loader';
4
+ import { Module } from '../module';
5
+ export declare const loader: LoadDatasetFromFile;
6
+ export declare const entityBuilder: EntityBuilder;
7
+ export default class CityJSONLoader implements Module {
8
+ readonly name = "CityJSON";
9
+ initialize(context: PieroContext): Promise<void> | void;
10
+ }
@@ -0,0 +1,9 @@
1
+ import { PieroContext } from '../context';
2
+ import { Module } from '../module';
3
+ /**
4
+ * Loads IFC (Industry Foundation Classes) files.
5
+ */
6
+ export default class IFCLoader implements Module {
7
+ readonly name = "IFC";
8
+ initialize(context: PieroContext): Promise<void>;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { PieroContext } from '../context';
2
+ import { Module } from '../module';
3
+ /**
4
+ * Loads .ply files.
5
+ */
6
+ export default class PLYLoader implements Module {
7
+ readonly name = "PLY";
8
+ initialize(context: PieroContext): Promise<void> | void;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { PieroContext } from '../context';
2
+ import { Module } from '../module';
3
+ /**
4
+ * Loads [Potree](https://potree.github.io/) datasets.
5
+ */
6
+ export default class PotreeLoader implements Module {
7
+ readonly name = "Potree";
8
+ initialize(context: PieroContext): Promise<void> | void;
9
+ }
@@ -0,0 +1,17 @@
1
+ import { PieroContext } from '../context';
2
+ import { Module } from '../module';
3
+ /**
4
+ * Provides a guided tour of the application.
5
+ */
6
+ export default class TourModule implements Module {
7
+ readonly name = "Tour";
8
+ private _camera;
9
+ private _cameraCallback;
10
+ private _tours;
11
+ private _context;
12
+ initialize(context: PieroContext): Promise<void> | void;
13
+ private getTours;
14
+ private start;
15
+ private restart;
16
+ private buildTours;
17
+ }
@@ -0,0 +1,79 @@
1
+ import { DataProjectionMixin, FeatureProjectionMixin, UrlOrDataMixin } from '../../giro3d/sources/mixins';
2
+ import { default as PickOptions } from '@giro3d/giro3d/core/picking/PickOptions';
3
+ import { default as PickResult } from '@giro3d/giro3d/core/picking/PickResult';
4
+ import { default as PickableFeatures } from '@giro3d/giro3d/core/picking/PickableFeatures';
5
+ import { default as Entity3D } from '@giro3d/giro3d/entities/Entity3D';
6
+ import { CityObjectsMesh } from 'cityjson-threejs-loader';
7
+ import { Vector2 } from '../../../../../node_modules/three';
8
+ /**
9
+ * Object returned by CityJSON's `resolveIntersectionInfo`, used when picking
10
+ */
11
+ export interface CityJSONIntersectionInfo {
12
+ vertexId: number;
13
+ objectIndex: number;
14
+ objectId: string;
15
+ geometryIndex: number;
16
+ boundaryIndex: number;
17
+ objectTypeIndex: number;
18
+ surfaceTypeIndex: number;
19
+ lodIndex: number;
20
+ }
21
+ /**
22
+ * Feature returned when picking on CityJSON objects
23
+ */
24
+ export interface CityJSONFeature {
25
+ /** Intersection info from CityJSON library */
26
+ cityjsonInfo: CityJSONIntersectionInfo;
27
+ /** CityJSON object picked */
28
+ citymodel: any;
29
+ }
30
+ /**
31
+ * Pick result on {@link CityJSONEntity | CityJSON entities}
32
+ */
33
+ export interface CityJSONPickResult extends PickResult<CityJSONFeature> {
34
+ isCityJSONPickResult: true;
35
+ entity: CityJSONEntity;
36
+ object: CityObjectsMesh;
37
+ features?: CityJSONFeature[];
38
+ }
39
+ export declare const isCityJSONPickResult: (obj: unknown) => obj is CityJSONPickResult;
40
+ /**
41
+ * Source interface for {@link CityJSONEntity}
42
+ */
43
+ export interface CityJSONSource extends UrlOrDataMixin, DataProjectionMixin, Required<FeatureProjectionMixin> {
44
+ }
45
+ /**
46
+ * Entity for displaying a CityJSON file
47
+ */
48
+ export default class CityJSONEntity extends Entity3D implements PickableFeatures<CityJSONFeature, CityJSONPickResult> {
49
+ readonly isCityJSONEntity = true;
50
+ readonly isPickableFeatures = true;
51
+ readonly type = "CityJSONEntity";
52
+ readonly source: CityJSONSource;
53
+ private _availableLods;
54
+ private _displayedLodIdx;
55
+ private _showSemantics;
56
+ constructor(source: CityJSONSource);
57
+ /** Array of the available Levels Of Details in this CityJSON model */
58
+ get availableLods(): string[] | null;
59
+ /**
60
+ * Gets the displayed index of Level Of Details, from {@link availableLods}.
61
+ * If `-1` or out of bounds, displays all levels.
62
+ */
63
+ get displayedLodIdx(): number;
64
+ /**
65
+ * Sets the displayed index of Level Of Details, from {@link availableLods}.
66
+ * If `-1` or out of bounds, displays all levels.
67
+ * @param lodIdx - Index from {@link availableLods}
68
+ */
69
+ set displayedLodIdx(lodIdx: number);
70
+ /** Gets whether the theme uses semantics or not */
71
+ get showSemantics(): boolean;
72
+ /** Sets whether the theme uses semantics or not */
73
+ set showSemantics(v: boolean);
74
+ private traverseCityMaterials;
75
+ preprocess(): Promise<void>;
76
+ pick(canvasCoords: Vector2, options?: PickOptions): CityJSONPickResult[];
77
+ pickFeaturesFrom(pickedResult: CityJSONPickResult): CityJSONFeature[];
78
+ static isCityJSONEntity: (obj: object) => obj is CityJSONEntity;
79
+ }
@@ -0,0 +1,8 @@
1
+ import { default as Instance } from '@giro3d/giro3d/core/Instance';
2
+ import { default as EntityInspector } from '@giro3d/giro3d/gui/EntityInspector';
3
+ import { default as GUI } from 'lil-gui';
4
+ import { default as CityJSONEntity } from './CityJSONEntity';
5
+ export default class CityJSONEntityInspector extends EntityInspector<CityJSONEntity> {
6
+ availableLods: string;
7
+ constructor(parentGui: GUI, instance: Instance, entity: CityJSONEntity);
8
+ }
@@ -0,0 +1,87 @@
1
+ import { default as PickOptions } from '@giro3d/giro3d/core/picking/PickOptions';
2
+ import { default as PickResult } from '@giro3d/giro3d/core/picking/PickResult';
3
+ import { default as PickableFeatures } from '@giro3d/giro3d/core/picking/PickableFeatures';
4
+ import { default as Entity3D } from '@giro3d/giro3d/entities/Entity3D';
5
+ import { FragmentMesh } from 'bim-fragment/fragment-mesh';
6
+ import { FragmentIdMap } from 'openbim-components';
7
+ import { Vector2 } from '../../../../../node_modules/three';
8
+ import { CoordinatesMixin, UrlOrDataMixin } from '../../giro3d/sources/mixins';
9
+ type FragmentTypeName = 'selection' | 'bbox';
10
+ export declare enum ClassificationSystem {
11
+ STOREY = "storeys",
12
+ ENTITY = "entities"
13
+ }
14
+ export type ClassificationItem = {
15
+ name: string;
16
+ treeItemName: string;
17
+ children: ClassificationItem[];
18
+ fragments: FragmentIdMap;
19
+ };
20
+ export interface IFCProperty {
21
+ parentName: string;
22
+ name: string;
23
+ value: number | null;
24
+ }
25
+ export interface IFCFeature {
26
+ itemProperties: {
27
+ [attribute: string]: any;
28
+ };
29
+ ifcProperties: IFCProperty[];
30
+ }
31
+ export interface IFCPickResult extends PickResult<IFCFeature> {
32
+ isIFCPickResult: true;
33
+ entity: IfcEntity;
34
+ object: FragmentMesh;
35
+ features?: IFCFeature[];
36
+ }
37
+ export declare const isIFCPickResult: (obj: unknown) => obj is IFCPickResult;
38
+ /** Source interface for {@link IfcEntity} */
39
+ export interface IfcSource extends UrlOrDataMixin, CoordinatesMixin {
40
+ /** Name of the IFC */
41
+ name: string;
42
+ }
43
+ /**
44
+ * Entity for displaying an IFC file
45
+ */
46
+ export default class IfcEntity extends Entity3D implements PickableFeatures<IFCFeature, IFCPickResult> {
47
+ readonly isIfcEntity: true;
48
+ readonly isPickableFeatures: true;
49
+ readonly type: "IfcEntity";
50
+ private readonly _source;
51
+ private _components;
52
+ private _model;
53
+ private _fragmentManager;
54
+ private _fragmentClassifier;
55
+ private _ifcSelection;
56
+ private _indexMap;
57
+ private _classificationCache;
58
+ private _fragmentBoundingBox;
59
+ constructor(source: IfcSource);
60
+ protected preprocess(): Promise<void>;
61
+ private initializeEntityIndexes;
62
+ private setEntityIndex;
63
+ getProperty(expressID: number): {
64
+ name: string;
65
+ value: number | null;
66
+ } | null;
67
+ getProperties(expressID: string): IFCProperty[];
68
+ private regenerateClassification;
69
+ protected initClassification(): Promise<void>;
70
+ getClassification(): ClassificationItem[];
71
+ private addHighlightToFragment;
72
+ clearHighlight(name?: FragmentTypeName): void;
73
+ private regenerate;
74
+ private addComposites;
75
+ private updateFragmentFill;
76
+ highlight(name: FragmentTypeName, mesh: FragmentMesh, itemId: string): void;
77
+ highlightById(ids: FragmentIdMap, name?: FragmentTypeName): void;
78
+ getBoundingBoxById(ids: FragmentIdMap): import('../../../../../node_modules/three').Box3 | undefined;
79
+ pick(canvasCoords: Vector2, options?: PickOptions): IFCPickResult[];
80
+ pickFeaturesFrom(pickedResult: IFCPickResult): {
81
+ itemProperties: any;
82
+ ifcProperties: IFCProperty[];
83
+ }[];
84
+ static isIFCEntity: (obj: unknown) => obj is IfcEntity;
85
+ static isIFCPickResult: (obj: unknown) => obj is IFCPickResult;
86
+ }
87
+ export {};
@@ -0,0 +1,7 @@
1
+ import { default as Instance } from '@giro3d/giro3d/core/Instance';
2
+ import { default as EntityInspector } from '@giro3d/giro3d/gui/EntityInspector';
3
+ import { default as GUI } from 'lil-gui';
4
+ import { default as IfcEntity } from './IfcEntity';
5
+ export default class IfcEntityInspector extends EntityInspector<IfcEntity> {
6
+ constructor(parentGui: GUI, instance: Instance, entity: IfcEntity);
7
+ }
@@ -0,0 +1,6 @@
1
+ import { Dataset } from '../../types/Dataset';
2
+ type __VLS_Props = {
3
+ dataset: Dataset;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { default as IfcEntity, ClassificationItem } from './IfcEntity';
2
+ type __VLS_Props = {
3
+ ifcEntity: IfcEntity;
4
+ classificationElement: ClassificationItem;
5
+ };
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { default as CityJSONLoader } from './CityJSONLoader';
2
+ import { default as IFCLoader } from './IFCLoader';
3
+ import { default as PLYLoader } from './PLYLoader';
4
+ import { default as PotreeLoader } from './PotreeLoader';
5
+ import { default as Tour } from './Tour';
6
+ export { CityJSONLoader, IFCLoader, PLYLoader, PotreeLoader, Tour };
@@ -0,0 +1,33 @@
1
+ import { CoordinatesMixin, FeatureProjectionMixin, UrlOrDataMixin } from '../../giro3d/sources/mixins';
2
+ import { default as PickResult } from '@giro3d/giro3d/core/picking/PickResult';
3
+ import { default as PickableFeatures } from '@giro3d/giro3d/core/picking/PickableFeatures';
4
+ import { default as Entity3D } from '@giro3d/giro3d/entities/Entity3D';
5
+ import { Color, Mesh } from '../../../../../node_modules/three';
6
+ /** Parameters for creating {@link PlyEntity} */
7
+ export interface PlySource extends UrlOrDataMixin, Required<CoordinatesMixin>, Required<FeatureProjectionMixin> {
8
+ }
9
+ /**
10
+ * Feature returned when picking on Ply objects
11
+ */
12
+ export interface PlyFeature {
13
+ color: Color;
14
+ }
15
+ /**
16
+ * PLY 3D object implementing our picking
17
+ */
18
+ export declare class PlyMesh extends Mesh implements PickableFeatures<PlyFeature> {
19
+ readonly isPickableFeatures = true;
20
+ readonly isPlyMesh = true;
21
+ pickFeaturesFrom(pickedResult: PickResult): PlyFeature[];
22
+ static isPlyMesh: (obj: unknown) => obj is PlyMesh;
23
+ static isPlyPickResult: (obj: unknown) => obj is PickResult<PlyFeature>;
24
+ }
25
+ /**
26
+ * Entity for displaying a PLY file
27
+ */
28
+ export default class PlyEntity extends Entity3D {
29
+ readonly isPlyEntity = true;
30
+ readonly source: PlySource;
31
+ constructor(source: PlySource);
32
+ protected preprocess(): Promise<void>;
33
+ }
@@ -0,0 +1,32 @@
1
+ import { default as Instance } from '@giro3d/giro3d/core/Instance';
2
+ import { default as Coordinates } from '@giro3d/giro3d/core/geographic/Coordinates';
3
+ /**
4
+ * Alticoder method
5
+ */
6
+ export type Alticoder = (coordinates: Coordinates[]) => Promise<void>;
7
+ /**
8
+ * Alticoder using {@link IgnProvider}.
9
+ */
10
+ export declare const IgnAlticoder: (coordinates: Coordinates[]) => Promise<void>;
11
+ /**
12
+ * Alticoder generator using (only) the map
13
+ *
14
+ * @param instance - Giro3D instance
15
+ * @returns Alticoder
16
+ */
17
+ export declare const mapAlticoderGenerator: (instance: Instance) => Alticoder;
18
+ /**
19
+ * Alticoder generator using multiple ones
20
+ * @param alticoders - List of alticoders to use
21
+ * @param noDataValue - No data value
22
+ * @returns
23
+ */
24
+ export declare const alticoders: (alticoders: Alticoder[], noDataValue?: number) => Alticoder;
25
+ /**
26
+ * Alticoder generator using the map if fast
27
+ *
28
+ * @param instance - Giro3D instance
29
+ * @param fast - Fast alticoding
30
+ * @returns Alticoder
31
+ */
32
+ export declare const alticoderGenerator: (instance: Instance, fast: boolean, noDataValue?: number) => Alticoder;