@vcmap/ui 5.0.0-rc.30 → 5.0.0-rc.31

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 (323) hide show
  1. package/build/buildHelpers.js +4 -3
  2. package/config/base.config.json +5 -4
  3. package/config/dev.config.json +4 -0
  4. package/config/graphFeatureInfo.config.json +1 -1
  5. package/config/projects.config.json +2 -2
  6. package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +1 -1
  7. package/dist/assets/cesium/Workers/chunk-227AJNOA.js +59 -0
  8. package/dist/assets/cesium/Workers/chunk-2R5O53JW.js +157 -0
  9. package/dist/assets/cesium/Workers/chunk-34YUDLRP.js +781 -0
  10. package/dist/assets/cesium/Workers/chunk-3W63OHNJ.js +100 -0
  11. package/dist/assets/cesium/Workers/chunk-4MFFIWUA.js +163 -0
  12. package/dist/assets/cesium/Workers/chunk-66QLLS45.js +218 -0
  13. package/dist/assets/cesium/Workers/chunk-6BTKZDRG.js +77 -0
  14. package/dist/assets/cesium/Workers/chunk-A4JVFBQ3.js +101 -0
  15. package/dist/assets/cesium/Workers/chunk-ABADGKYE.js +58 -0
  16. package/dist/assets/cesium/Workers/chunk-AFFLIKOH.js +353 -0
  17. package/dist/assets/cesium/Workers/chunk-AHKEZ2OE.js +629 -0
  18. package/dist/assets/cesium/Workers/chunk-C3SXRKRW.js +476 -0
  19. package/dist/assets/cesium/Workers/chunk-CCFQRR6D.js +55 -0
  20. package/dist/assets/cesium/Workers/chunk-CHHNOC2C.js +1860 -0
  21. package/dist/assets/cesium/Workers/chunk-CTELOFLA.js +196 -0
  22. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +3273 -0
  23. package/dist/assets/cesium/Workers/chunk-EW2GWJYB.js +44 -0
  24. package/dist/assets/cesium/Workers/chunk-GLZBE3ML.js +421 -0
  25. package/dist/assets/cesium/Workers/chunk-HARLBUOL.js +236 -0
  26. package/dist/assets/cesium/Workers/chunk-HQF437NJ.js +117 -0
  27. package/dist/assets/cesium/Workers/chunk-IPA4EACJ.js +368 -0
  28. package/dist/assets/cesium/Workers/chunk-J3JY6I2C.js +1009 -0
  29. package/dist/assets/cesium/Workers/chunk-JB2LWGH4.js +390 -0
  30. package/dist/assets/cesium/Workers/chunk-JS3AW5BK.js +634 -0
  31. package/dist/assets/cesium/Workers/chunk-K36FEYS7.js +452 -0
  32. package/dist/assets/cesium/Workers/chunk-KD4Y7CZL.js +400 -0
  33. package/dist/assets/cesium/Workers/chunk-KTJSNCK4.js +842 -0
  34. package/dist/assets/cesium/Workers/chunk-LLUNNUJV.js +258 -0
  35. package/dist/assets/cesium/Workers/{package.js → chunk-MPAZH4BF.js} +13 -2
  36. package/dist/assets/cesium/Workers/chunk-MYZB7C4T.js +1258 -0
  37. package/dist/assets/cesium/Workers/chunk-N3JIFFX2.js +501 -0
  38. package/dist/assets/cesium/Workers/chunk-O5AMBQ36.js +430 -0
  39. package/dist/assets/cesium/Workers/chunk-OAVNIRB4.js +124 -0
  40. package/dist/assets/cesium/Workers/chunk-OYFCF4PL.js +171 -0
  41. package/dist/assets/cesium/Workers/chunk-OZJDGN5F.js +1477 -0
  42. package/dist/assets/cesium/Workers/chunk-PCJWUS4M.js +2041 -0
  43. package/dist/assets/cesium/Workers/chunk-PFQBCKBM.js +8644 -0
  44. package/dist/assets/cesium/Workers/chunk-QIKODV5G.js +305 -0
  45. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +73 -0
  46. package/dist/assets/cesium/Workers/chunk-QMEMZIJI.js +138 -0
  47. package/dist/assets/cesium/Workers/chunk-QT3MPEMI.js +102 -0
  48. package/dist/assets/cesium/Workers/chunk-RP2A7BR5.js +289 -0
  49. package/dist/assets/cesium/Workers/chunk-RW6LU2CJ.js +138 -0
  50. package/dist/assets/cesium/Workers/chunk-TFC6TZ3S.js +757 -0
  51. package/dist/assets/cesium/Workers/chunk-V3NGATMV.js +693 -0
  52. package/dist/assets/cesium/Workers/chunk-VLGOATD6.js +1075 -0
  53. package/dist/assets/cesium/Workers/chunk-WXTV4ATB.js +39 -0
  54. package/dist/assets/cesium/Workers/chunk-X4SU25DT.js +302 -0
  55. package/dist/assets/cesium/Workers/chunk-XTY7B2N6.js +2716 -0
  56. package/dist/assets/cesium/Workers/chunk-XY7MGBKC.js +513 -0
  57. package/dist/assets/cesium/Workers/chunk-Z24VKNDO.js +834 -0
  58. package/dist/assets/cesium/Workers/chunk-ZA25DG4Y.js +684 -0
  59. package/dist/assets/cesium/Workers/chunk-ZFOBYDGF.js +73 -0
  60. package/dist/assets/cesium/Workers/combineGeometry.js +65 -15
  61. package/dist/assets/cesium/Workers/createBoxGeometry.js +55 -10
  62. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +231 -310
  63. package/dist/assets/cesium/Workers/createCircleGeometry.js +185 -202
  64. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +141 -155
  65. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +477 -557
  66. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
  67. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1162 -1307
  68. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +533 -569
  69. package/dist/assets/cesium/Workers/createCylinderGeometry.js +57 -10
  70. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +224 -258
  71. package/dist/assets/cesium/Workers/createEllipseGeometry.js +68 -12
  72. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +61 -12
  73. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +56 -10
  74. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +58 -13
  75. package/dist/assets/cesium/Workers/createFrustumGeometry.js +55 -10
  76. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +226 -243
  77. package/dist/assets/cesium/Workers/createGeometry.js +143 -48
  78. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1484 -2011
  79. package/dist/assets/cesium/Workers/createPlaneGeometry.js +216 -243
  80. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +121 -113
  81. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1041 -1327
  82. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +516 -657
  83. package/dist/assets/cesium/Workers/createPolylineGeometry.js +471 -547
  84. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +352 -384
  85. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
  86. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1128 -1331
  87. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +445 -500
  88. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +381 -440
  89. package/dist/assets/cesium/Workers/createSphereGeometry.js +112 -118
  90. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +112 -121
  91. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +32 -127
  92. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +462 -505
  93. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +377 -436
  94. package/dist/assets/cesium/Workers/createVectorTilePoints.js +110 -77
  95. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +369 -391
  96. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +252 -244
  97. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
  98. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2244 -2677
  99. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -926
  100. package/dist/assets/cesium/Workers/createWallGeometry.js +459 -593
  101. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +324 -419
  102. package/dist/assets/cesium/Workers/decodeDraco.js +327 -347
  103. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
  104. package/dist/assets/cesium/Workers/decodeI3S.js +765 -970
  105. package/dist/assets/cesium/Workers/transcodeKTX2.js +3353 -1464
  106. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +3 -4
  107. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +748 -953
  108. package/dist/assets/{cesium.eaf7cc.js → cesium.77d0f7.js} +8915 -13165
  109. package/dist/assets/cesium.js +1 -1
  110. package/dist/assets/{core.b16511.js → core.720589.js} +3421 -3365
  111. package/dist/assets/core.js +1 -1
  112. package/dist/assets/index-dd539204.js +1 -0
  113. package/dist/assets/{ol.4bbf0f.js → ol.e48649.js} +4 -4
  114. package/dist/assets/ol.js +1 -1
  115. package/dist/assets/{ui.ab815e.css → ui.50452a.css} +1 -1
  116. package/dist/assets/{ui.ab815e.js → ui.50452a.js} +4270 -4355
  117. package/dist/assets/ui.js +1 -1
  118. package/dist/assets/vue.js +2 -2
  119. package/dist/assets/{vuetify.ea3fa8.js → vuetify.f0a769.js} +1 -1
  120. package/dist/assets/vuetify.js +2 -2
  121. package/dist/index.html +27 -23
  122. package/index.html +23 -22
  123. package/package.json +5 -5
  124. package/plugins/@vcmap-show-case/plugin-editors/PluginEditors.vue +119 -0
  125. package/plugins/@vcmap-show-case/plugin-editors/index.js +41 -0
  126. package/plugins/@vcmap-show-case/plugin-editors/package.json +5 -0
  127. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ProjectSelectorComponent.vue +1 -1
  128. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/config.json +2 -2
  129. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/package.json +1 -1
  130. package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/package.json +1 -1
  131. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +1 -1
  132. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/ThemeChangerComponent.vue +1 -1
  133. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/config.json +2 -2
  134. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/package.json +1 -1
  135. package/plugins/@vcmap-show-case/vector-properties-example/vectorPropertiesExample.vue +20 -1
  136. package/plugins/package.json +6 -2
  137. package/src/application/VcsAttributions.vue +27 -20
  138. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +22 -14
  139. package/src/components/form-inputs-controls/VcsSlider.vue +1 -0
  140. package/src/components/icons/2DAreaIcon.vue +2 -17
  141. package/src/components/icons/2DDistanceIcon.vue +0 -3
  142. package/src/components/icons/3DAreaIcon.vue +2 -17
  143. package/src/components/icons/3DDistanceIcon.vue +0 -3
  144. package/src/components/icons/3DHeightIcon.vue +0 -3
  145. package/src/components/icons/AngleIcon.vue +0 -1
  146. package/src/components/icons/AssociationsIcon.vue +1 -3
  147. package/src/components/icons/AxisIcon.vue +0 -4
  148. package/src/components/icons/BoundingBoxIcon.vue +1 -4
  149. package/src/components/icons/CheckboxIcon.vue +0 -2
  150. package/src/components/icons/CheckboxIndeterminateIcon.vue +1 -5
  151. package/src/components/icons/CircleIcon.vue +1 -6
  152. package/src/components/icons/ClippingHorizontalIcon.vue +0 -1
  153. package/src/components/icons/ClippingIcon.vue +0 -1
  154. package/src/components/icons/ClippingVerticalIcon.vue +0 -1
  155. package/src/components/icons/ColorPickerIcon.vue +0 -1
  156. package/src/components/icons/ColorSwatchIcon.vue +0 -2
  157. package/src/components/icons/CommentIcon.vue +0 -1
  158. package/src/components/icons/CompassIcon.vue +0 -2
  159. package/src/components/icons/ComponentsIcon.vue +0 -1
  160. package/src/components/icons/ConeIcon.vue +1 -4
  161. package/src/components/icons/DimensionsHouseIcon.vue +0 -2
  162. package/src/components/icons/EditIcon.vue +0 -1
  163. package/src/components/icons/EditVerticesIcon.vue +0 -4
  164. package/src/components/icons/ElevationProfileIcon.vue +1 -13
  165. package/src/components/icons/ExportAreaIcon.vue +0 -1
  166. package/src/components/icons/ExportFlightIcon.vue +0 -1
  167. package/src/components/icons/ExportIcon.vue +12 -8
  168. package/src/components/icons/ExternalLinkIcon.vue +0 -2
  169. package/src/components/icons/FastForwardIcon.vue +0 -1
  170. package/src/components/icons/FilterIcon.vue +0 -1
  171. package/src/components/icons/GlobeNatureIcon.vue +0 -3
  172. package/src/components/icons/GroundIcon.vue +0 -1
  173. package/src/components/icons/HealthCareIndustriesIcon.vue +1 -11
  174. package/src/components/icons/HideIcon.vue +0 -1
  175. package/src/components/icons/HomePointIcon.vue +0 -1
  176. package/src/components/icons/HospitalsIcon.vue +1 -20
  177. package/src/components/icons/HouseIcon.vue +3 -13
  178. package/src/components/icons/ImportIcon.vue +6 -14
  179. package/src/components/icons/InfoIcon.vue +0 -2
  180. package/src/components/icons/KebabIcon.vue +1 -9
  181. package/src/components/icons/LabelIcon.vue +0 -2
  182. package/src/components/icons/LayersIcon.vue +1 -9
  183. package/src/components/icons/LegendIcon.vue +0 -1
  184. package/src/components/icons/LineIcon.vue +0 -2
  185. package/src/components/icons/LinkIcon.vue +0 -1
  186. package/src/components/icons/LogoutIcon.vue +0 -1
  187. package/src/components/icons/MapIcon.vue +0 -2
  188. package/src/components/icons/MenuIcon.vue +1 -5
  189. package/src/components/icons/MinusIcon.vue +0 -2
  190. package/src/components/icons/ObjectSelectIcon.vue +0 -2
  191. package/src/components/icons/ObliqueViewIcon.vue +0 -1
  192. package/src/components/icons/PdfIcon.vue +0 -1
  193. package/src/components/icons/PedestrianIcon.vue +0 -1
  194. package/src/components/icons/PenIcon.vue +0 -1
  195. package/src/components/icons/PlayCircleIcon.vue +1 -8
  196. package/src/components/icons/PlusIcon.vue +0 -2
  197. package/src/components/icons/PoiIcon.vue +0 -1
  198. package/src/components/icons/PointIcon.vue +2 -6
  199. package/src/components/icons/PointSelectIcon.vue +0 -1
  200. package/src/components/icons/PresentationModeIcon.vue +0 -1
  201. package/src/components/icons/ProgressIcon.vue +1 -1
  202. package/src/components/icons/QueryIcon.vue +0 -1
  203. package/src/components/icons/RectangleIcon.vue +1 -6
  204. package/src/components/icons/ReturnIcon.vue +0 -1
  205. package/src/components/icons/RewindIcon.vue +0 -1
  206. package/src/components/icons/RotateLeftIcon.vue +0 -1
  207. package/src/components/icons/RotateRightIcon.vue +0 -1
  208. package/src/components/icons/ScreenshotIcon.vue +1 -6
  209. package/src/components/icons/SearchIcon.vue +0 -1
  210. package/src/components/icons/ShadowIcon.vue +0 -2
  211. package/src/components/icons/ShapesIcon.vue +1 -4
  212. package/src/components/icons/ShareIcon.vue +0 -1
  213. package/src/components/icons/SimpleCircleFilledIcon.vue +0 -1
  214. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +0 -1
  215. package/src/components/icons/SimpleCircleOutlinedIcon.vue +1 -7
  216. package/src/components/icons/SkipPreviousIcon.vue +1 -6
  217. package/src/components/icons/SplitViewIcon.vue +0 -1
  218. package/src/components/icons/TextStyleIcon.vue +0 -3
  219. package/src/components/icons/ThreeDimensionsIcon.vue +0 -1
  220. package/src/components/icons/ToolsIcon.vue +0 -1
  221. package/src/components/icons/TouchIcon.vue +0 -1
  222. package/src/components/icons/TriangleIcon.vue +0 -3
  223. package/src/components/icons/TwoDimensionsIcon.vue +0 -2
  224. package/src/components/icons/UploadIcon.vue +0 -1
  225. package/src/components/icons/UserProfileIcon.vue +0 -1
  226. package/src/components/icons/UserShareIcon.vue +0 -1
  227. package/src/components/icons/ViewpointFlightIcon.vue +0 -1
  228. package/src/components/icons/ViewpointIcon.vue +0 -1
  229. package/src/components/icons/Viewshed360Icon.vue +0 -1
  230. package/src/components/icons/ViewshedConeIcon.vue +0 -1
  231. package/src/components/icons/ViewshedIcon.vue +0 -1
  232. package/src/components/icons/WalkingIcon.vue +0 -1
  233. package/src/components/icons/WallIcon.vue +1 -4
  234. package/src/components/icons/WandIcon.vue +22 -70
  235. package/src/components/lists/VcsList.vue +18 -12
  236. package/src/components/plugins/AbstractConfigEditor.vue +2 -2
  237. package/src/components/tables/VcsDataTable.vue +1 -1
  238. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +57 -14
  239. package/src/contentTree/contentTreeCollection.js +30 -9
  240. package/src/i18n/de.js +8 -5
  241. package/src/i18n/en.js +8 -5
  242. package/src/i18n/i18nCollection.js +19 -65
  243. package/src/manager/buttonManager.js +4 -0
  244. package/src/manager/contextMenu/contextMenuManager.js +2 -0
  245. package/src/pluginHelper.js +2 -2
  246. package/src/vcsUiApp.js +9 -4
  247. package/src/vuePlugins/i18n.js +0 -8
  248. package/dist/assets/cesium/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
  249. package/dist/assets/cesium/Workers/ArcType-2d9abbbc.js +0 -37
  250. package/dist/assets/cesium/Workers/AttributeCompression-f9f6c717.js +0 -716
  251. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-4140c51f.js +0 -258
  252. package/dist/assets/cesium/Workers/BoundingRectangle-c714b156.js +0 -369
  253. package/dist/assets/cesium/Workers/BoxGeometry-6f3da43d.js +0 -884
  254. package/dist/assets/cesium/Workers/Check-6ede7e26.js +0 -290
  255. package/dist/assets/cesium/Workers/Color-8a565ff2.js +0 -2262
  256. package/dist/assets/cesium/Workers/ComponentDatatype-cf1fa08e.js +0 -341
  257. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4b4d4096.js +0 -132
  258. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-7b94502b.js +0 -498
  259. package/dist/assets/cesium/Workers/CylinderGeometry-ca070b87.js +0 -467
  260. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
  261. package/dist/assets/cesium/Workers/EllipseGeometry-122e51fa.js +0 -1304
  262. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-4d326efc.js +0 -366
  263. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-16cc2bd7.js +0 -443
  264. package/dist/assets/cesium/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
  265. package/dist/assets/cesium/Workers/EllipsoidGeometry-cb148ca2.js +0 -637
  266. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-0fa10c79.js +0 -454
  267. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
  268. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-6dd1b7af.js +0 -373
  269. package/dist/assets/cesium/Workers/EncodedCartesian3-57415c8a.js +0 -171
  270. package/dist/assets/cesium/Workers/FrustumGeometry-ee73037c.js +0 -2540
  271. package/dist/assets/cesium/Workers/GeometryAttribute-ff5b4fb1.js +0 -619
  272. package/dist/assets/cesium/Workers/GeometryAttributes-ad136444.js +0 -91
  273. package/dist/assets/cesium/Workers/GeometryInstance-34d9e21e.js +0 -121
  274. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
  275. package/dist/assets/cesium/Workers/GeometryPipeline-1f8fbf05.js +0 -3690
  276. package/dist/assets/cesium/Workers/IndexDatatype-2643aa47.js +0 -200
  277. package/dist/assets/cesium/Workers/IntersectionTests-70d39ba9.js +0 -1836
  278. package/dist/assets/cesium/Workers/Math-0a2ac845.js +0 -1340
  279. package/dist/assets/cesium/Workers/Matrix2-e1298525.js +0 -7086
  280. package/dist/assets/cesium/Workers/Matrix3-41c58dde.js +0 -4283
  281. package/dist/assets/cesium/Workers/OrientedBoundingBox-159cf1d6.js +0 -1259
  282. package/dist/assets/cesium/Workers/Plane-4c3d403b.js +0 -309
  283. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-076a5d25.js +0 -1074
  284. package/dist/assets/cesium/Workers/PolygonPipeline-b9f2810a.js +0 -1344
  285. package/dist/assets/cesium/Workers/PolylinePipeline-639192e0.js +0 -573
  286. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-b73549fb.js +0 -781
  287. package/dist/assets/cesium/Workers/PrimitivePipeline-10ede1b6.js +0 -966
  288. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-c35a7356.js +0 -280
  289. package/dist/assets/cesium/Workers/RuntimeError-ef395448.js +0 -68
  290. package/dist/assets/cesium/Workers/TerrainEncoding-668d242f.js +0 -1227
  291. package/dist/assets/cesium/Workers/Transforms-a2a85221.js +0 -14712
  292. package/dist/assets/cesium/Workers/VertexFormat-030f11ff.js +0 -312
  293. package/dist/assets/cesium/Workers/WallGeometryLibrary-1938bf0d.js +0 -211
  294. package/dist/assets/cesium/Workers/WebGLConstants-0b1ce7ba.js +0 -620
  295. package/dist/assets/cesium/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
  296. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
  297. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -1363
  298. package/dist/assets/cesium/Workers/combine-d9581036.js +0 -82
  299. package/dist/assets/cesium/Workers/defaultValue-fe22d8c0.js +0 -51
  300. package/dist/assets/index-c115e3a1.js +0 -1
  301. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +0 -76
  302. package/plugins/@vcmap/create-link/index.js +0 -95
  303. package/plugins/@vcmap/create-link/package.json +0 -6
  304. package/plugins/@vcmap/search-nominatim/LICENSE.md +0 -13
  305. package/plugins/@vcmap/search-nominatim/README.md +0 -3
  306. package/plugins/@vcmap/search-nominatim/SearchNominatimEditor.vue +0 -90
  307. package/plugins/@vcmap/search-nominatim/config.json +0 -3
  308. package/plugins/@vcmap/search-nominatim/index.js +0 -66
  309. package/plugins/@vcmap/search-nominatim/nominatim.js +0 -175
  310. package/plugins/@vcmap/search-nominatim/package.json +0 -9
  311. /package/dist/assets/{vue.67e80f.js → vue.5d696e.js} +0 -0
  312. /package/dist/assets/{vuetify.ea3fa8.css → vuetify.f0a769.css} +0 -0
  313. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ModulesListComponent.vue +0 -0
  314. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/README.md +0 -0
  315. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/de.json +0 -0
  316. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/en.json +0 -0
  317. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/index.js +0 -0
  318. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/README.md +0 -0
  319. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/SimpleGraphComponent.vue +0 -0
  320. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/index.js +0 -0
  321. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/simpleGraphView.js +0 -0
  322. /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/README.md +0 -0
  323. /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/index.js +0 -0
@@ -1,1259 +0,0 @@
1
- define(['exports', './Transforms-a2a85221', './Matrix2-e1298525', './Matrix3-41c58dde', './Check-6ede7e26', './defaultValue-fe22d8c0', './EllipsoidTangentPlane-6dd1b7af', './Math-0a2ac845', './Plane-4c3d403b'], (function (exports, Transforms, Matrix2, Matrix3, Check, defaultValue, EllipsoidTangentPlane, Math$1, Plane) { 'use strict';
2
-
3
- /**
4
- * Creates an instance of an OrientedBoundingBox.
5
- * An OrientedBoundingBox of some object is a closed and convex rectangular cuboid. It can provide a tighter bounding volume than {@link BoundingSphere} or {@link AxisAlignedBoundingBox} in many cases.
6
- * @alias OrientedBoundingBox
7
- * @constructor
8
- *
9
- * @param {Cartesian3} [center=Cartesian3.ZERO] The center of the box.
10
- * @param {Matrix3} [halfAxes=Matrix3.ZERO] The three orthogonal half-axes of the bounding box.
11
- * Equivalently, the transformation matrix, to rotate and scale a 2x2x2
12
- * cube centered at the origin.
13
- *
14
- *
15
- * @example
16
- * // Create an OrientedBoundingBox using a transformation matrix, a position where the box will be translated, and a scale.
17
- * const center = new Cesium.Cartesian3(1.0, 0.0, 0.0);
18
- * const halfAxes = Cesium.Matrix3.fromScale(new Cesium.Cartesian3(1.0, 3.0, 2.0), new Cesium.Matrix3());
19
- *
20
- * const obb = new Cesium.OrientedBoundingBox(center, halfAxes);
21
- *
22
- * @see BoundingSphere
23
- * @see BoundingRectangle
24
- */
25
- function OrientedBoundingBox(center, halfAxes) {
26
- /**
27
- * The center of the box.
28
- * @type {Cartesian3}
29
- * @default {@link Cartesian3.ZERO}
30
- */
31
- this.center = Matrix3.Cartesian3.clone(defaultValue.defaultValue(center, Matrix3.Cartesian3.ZERO));
32
- /**
33
- * The three orthogonal half-axes of the bounding box. Equivalently, the
34
- * transformation matrix, to rotate and scale a 2x2x2 cube centered at the
35
- * origin.
36
- * @type {Matrix3}
37
- * @default {@link Matrix3.ZERO}
38
- */
39
- this.halfAxes = Matrix3.Matrix3.clone(defaultValue.defaultValue(halfAxes, Matrix3.Matrix3.ZERO));
40
- }
41
-
42
- /**
43
- * The number of elements used to pack the object into an array.
44
- * @type {number}
45
- */
46
- OrientedBoundingBox.packedLength =
47
- Matrix3.Cartesian3.packedLength + Matrix3.Matrix3.packedLength;
48
-
49
- /**
50
- * Stores the provided instance into the provided array.
51
- *
52
- * @param {OrientedBoundingBox} value The value to pack.
53
- * @param {number[]} array The array to pack into.
54
- * @param {number} [startingIndex=0] The index into the array at which to start packing the elements.
55
- *
56
- * @returns {number[]} The array that was packed into
57
- */
58
- OrientedBoundingBox.pack = function (value, array, startingIndex) {
59
- //>>includeStart('debug', pragmas.debug);
60
- Check.Check.typeOf.object("value", value);
61
- Check.Check.defined("array", array);
62
- //>>includeEnd('debug');
63
-
64
- startingIndex = defaultValue.defaultValue(startingIndex, 0);
65
-
66
- Matrix3.Cartesian3.pack(value.center, array, startingIndex);
67
- Matrix3.Matrix3.pack(value.halfAxes, array, startingIndex + Matrix3.Cartesian3.packedLength);
68
-
69
- return array;
70
- };
71
-
72
- /**
73
- * Retrieves an instance from a packed array.
74
- *
75
- * @param {number[]} array The packed array.
76
- * @param {number} [startingIndex=0] The starting index of the element to be unpacked.
77
- * @param {OrientedBoundingBox} [result] The object into which to store the result.
78
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if one was not provided.
79
- */
80
- OrientedBoundingBox.unpack = function (array, startingIndex, result) {
81
- //>>includeStart('debug', pragmas.debug);
82
- Check.Check.defined("array", array);
83
- //>>includeEnd('debug');
84
-
85
- startingIndex = defaultValue.defaultValue(startingIndex, 0);
86
-
87
- if (!defaultValue.defined(result)) {
88
- result = new OrientedBoundingBox();
89
- }
90
-
91
- Matrix3.Cartesian3.unpack(array, startingIndex, result.center);
92
- Matrix3.Matrix3.unpack(
93
- array,
94
- startingIndex + Matrix3.Cartesian3.packedLength,
95
- result.halfAxes
96
- );
97
- return result;
98
- };
99
-
100
- const scratchCartesian1 = new Matrix3.Cartesian3();
101
- const scratchCartesian2 = new Matrix3.Cartesian3();
102
- const scratchCartesian3 = new Matrix3.Cartesian3();
103
- const scratchCartesian4 = new Matrix3.Cartesian3();
104
- const scratchCartesian5 = new Matrix3.Cartesian3();
105
- const scratchCartesian6 = new Matrix3.Cartesian3();
106
- const scratchCovarianceResult = new Matrix3.Matrix3();
107
- const scratchEigenResult = {
108
- unitary: new Matrix3.Matrix3(),
109
- diagonal: new Matrix3.Matrix3(),
110
- };
111
-
112
- /**
113
- * Computes an instance of an OrientedBoundingBox of the given positions.
114
- * This is an implementation of Stefan Gottschalk's Collision Queries using Oriented Bounding Boxes solution (PHD thesis).
115
- * Reference: http://gamma.cs.unc.edu/users/gottschalk/main.pdf
116
- *
117
- * @param {Cartesian3[]} [positions] List of {@link Cartesian3} points that the bounding box will enclose.
118
- * @param {OrientedBoundingBox} [result] The object onto which to store the result.
119
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if one was not provided.
120
- *
121
- * @example
122
- * // Compute an object oriented bounding box enclosing two points.
123
- * const box = Cesium.OrientedBoundingBox.fromPoints([new Cesium.Cartesian3(2, 0, 0), new Cesium.Cartesian3(-2, 0, 0)]);
124
- */
125
- OrientedBoundingBox.fromPoints = function (positions, result) {
126
- if (!defaultValue.defined(result)) {
127
- result = new OrientedBoundingBox();
128
- }
129
-
130
- if (!defaultValue.defined(positions) || positions.length === 0) {
131
- result.halfAxes = Matrix3.Matrix3.ZERO;
132
- result.center = Matrix3.Cartesian3.ZERO;
133
- return result;
134
- }
135
-
136
- let i;
137
- const length = positions.length;
138
-
139
- const meanPoint = Matrix3.Cartesian3.clone(positions[0], scratchCartesian1);
140
- for (i = 1; i < length; i++) {
141
- Matrix3.Cartesian3.add(meanPoint, positions[i], meanPoint);
142
- }
143
- const invLength = 1.0 / length;
144
- Matrix3.Cartesian3.multiplyByScalar(meanPoint, invLength, meanPoint);
145
-
146
- let exx = 0.0;
147
- let exy = 0.0;
148
- let exz = 0.0;
149
- let eyy = 0.0;
150
- let eyz = 0.0;
151
- let ezz = 0.0;
152
- let p;
153
-
154
- for (i = 0; i < length; i++) {
155
- p = Matrix3.Cartesian3.subtract(positions[i], meanPoint, scratchCartesian2);
156
- exx += p.x * p.x;
157
- exy += p.x * p.y;
158
- exz += p.x * p.z;
159
- eyy += p.y * p.y;
160
- eyz += p.y * p.z;
161
- ezz += p.z * p.z;
162
- }
163
-
164
- exx *= invLength;
165
- exy *= invLength;
166
- exz *= invLength;
167
- eyy *= invLength;
168
- eyz *= invLength;
169
- ezz *= invLength;
170
-
171
- const covarianceMatrix = scratchCovarianceResult;
172
- covarianceMatrix[0] = exx;
173
- covarianceMatrix[1] = exy;
174
- covarianceMatrix[2] = exz;
175
- covarianceMatrix[3] = exy;
176
- covarianceMatrix[4] = eyy;
177
- covarianceMatrix[5] = eyz;
178
- covarianceMatrix[6] = exz;
179
- covarianceMatrix[7] = eyz;
180
- covarianceMatrix[8] = ezz;
181
-
182
- const eigenDecomposition = Matrix3.Matrix3.computeEigenDecomposition(
183
- covarianceMatrix,
184
- scratchEigenResult
185
- );
186
- const rotation = Matrix3.Matrix3.clone(eigenDecomposition.unitary, result.halfAxes);
187
-
188
- let v1 = Matrix3.Matrix3.getColumn(rotation, 0, scratchCartesian4);
189
- let v2 = Matrix3.Matrix3.getColumn(rotation, 1, scratchCartesian5);
190
- let v3 = Matrix3.Matrix3.getColumn(rotation, 2, scratchCartesian6);
191
-
192
- let u1 = -Number.MAX_VALUE;
193
- let u2 = -Number.MAX_VALUE;
194
- let u3 = -Number.MAX_VALUE;
195
- let l1 = Number.MAX_VALUE;
196
- let l2 = Number.MAX_VALUE;
197
- let l3 = Number.MAX_VALUE;
198
-
199
- for (i = 0; i < length; i++) {
200
- p = positions[i];
201
- u1 = Math.max(Matrix3.Cartesian3.dot(v1, p), u1);
202
- u2 = Math.max(Matrix3.Cartesian3.dot(v2, p), u2);
203
- u3 = Math.max(Matrix3.Cartesian3.dot(v3, p), u3);
204
-
205
- l1 = Math.min(Matrix3.Cartesian3.dot(v1, p), l1);
206
- l2 = Math.min(Matrix3.Cartesian3.dot(v2, p), l2);
207
- l3 = Math.min(Matrix3.Cartesian3.dot(v3, p), l3);
208
- }
209
-
210
- v1 = Matrix3.Cartesian3.multiplyByScalar(v1, 0.5 * (l1 + u1), v1);
211
- v2 = Matrix3.Cartesian3.multiplyByScalar(v2, 0.5 * (l2 + u2), v2);
212
- v3 = Matrix3.Cartesian3.multiplyByScalar(v3, 0.5 * (l3 + u3), v3);
213
-
214
- const center = Matrix3.Cartesian3.add(v1, v2, result.center);
215
- Matrix3.Cartesian3.add(center, v3, center);
216
-
217
- const scale = scratchCartesian3;
218
- scale.x = u1 - l1;
219
- scale.y = u2 - l2;
220
- scale.z = u3 - l3;
221
- Matrix3.Cartesian3.multiplyByScalar(scale, 0.5, scale);
222
- Matrix3.Matrix3.multiplyByScale(result.halfAxes, scale, result.halfAxes);
223
-
224
- return result;
225
- };
226
-
227
- const scratchOffset = new Matrix3.Cartesian3();
228
- const scratchScale = new Matrix3.Cartesian3();
229
- function fromPlaneExtents(
230
- planeOrigin,
231
- planeXAxis,
232
- planeYAxis,
233
- planeZAxis,
234
- minimumX,
235
- maximumX,
236
- minimumY,
237
- maximumY,
238
- minimumZ,
239
- maximumZ,
240
- result
241
- ) {
242
- //>>includeStart('debug', pragmas.debug);
243
- if (
244
- !defaultValue.defined(minimumX) ||
245
- !defaultValue.defined(maximumX) ||
246
- !defaultValue.defined(minimumY) ||
247
- !defaultValue.defined(maximumY) ||
248
- !defaultValue.defined(minimumZ) ||
249
- !defaultValue.defined(maximumZ)
250
- ) {
251
- throw new Check.DeveloperError(
252
- "all extents (minimum/maximum X/Y/Z) are required."
253
- );
254
- }
255
- //>>includeEnd('debug');
256
-
257
- if (!defaultValue.defined(result)) {
258
- result = new OrientedBoundingBox();
259
- }
260
-
261
- const halfAxes = result.halfAxes;
262
- Matrix3.Matrix3.setColumn(halfAxes, 0, planeXAxis, halfAxes);
263
- Matrix3.Matrix3.setColumn(halfAxes, 1, planeYAxis, halfAxes);
264
- Matrix3.Matrix3.setColumn(halfAxes, 2, planeZAxis, halfAxes);
265
-
266
- let centerOffset = scratchOffset;
267
- centerOffset.x = (minimumX + maximumX) / 2.0;
268
- centerOffset.y = (minimumY + maximumY) / 2.0;
269
- centerOffset.z = (minimumZ + maximumZ) / 2.0;
270
-
271
- const scale = scratchScale;
272
- scale.x = (maximumX - minimumX) / 2.0;
273
- scale.y = (maximumY - minimumY) / 2.0;
274
- scale.z = (maximumZ - minimumZ) / 2.0;
275
-
276
- const center = result.center;
277
- centerOffset = Matrix3.Matrix3.multiplyByVector(halfAxes, centerOffset, centerOffset);
278
- Matrix3.Cartesian3.add(planeOrigin, centerOffset, center);
279
- Matrix3.Matrix3.multiplyByScale(halfAxes, scale, halfAxes);
280
-
281
- return result;
282
- }
283
-
284
- const scratchRectangleCenterCartographic = new Matrix3.Cartographic();
285
- const scratchRectangleCenter = new Matrix3.Cartesian3();
286
- const scratchPerimeterCartographicNC = new Matrix3.Cartographic();
287
- const scratchPerimeterCartographicNW = new Matrix3.Cartographic();
288
- const scratchPerimeterCartographicCW = new Matrix3.Cartographic();
289
- const scratchPerimeterCartographicSW = new Matrix3.Cartographic();
290
- const scratchPerimeterCartographicSC = new Matrix3.Cartographic();
291
- const scratchPerimeterCartesianNC = new Matrix3.Cartesian3();
292
- const scratchPerimeterCartesianNW = new Matrix3.Cartesian3();
293
- const scratchPerimeterCartesianCW = new Matrix3.Cartesian3();
294
- const scratchPerimeterCartesianSW = new Matrix3.Cartesian3();
295
- const scratchPerimeterCartesianSC = new Matrix3.Cartesian3();
296
- const scratchPerimeterProjectedNC = new Matrix2.Cartesian2();
297
- const scratchPerimeterProjectedNW = new Matrix2.Cartesian2();
298
- const scratchPerimeterProjectedCW = new Matrix2.Cartesian2();
299
- const scratchPerimeterProjectedSW = new Matrix2.Cartesian2();
300
- const scratchPerimeterProjectedSC = new Matrix2.Cartesian2();
301
-
302
- const scratchPlaneOrigin = new Matrix3.Cartesian3();
303
- const scratchPlaneNormal = new Matrix3.Cartesian3();
304
- const scratchPlaneXAxis = new Matrix3.Cartesian3();
305
- const scratchHorizonCartesian = new Matrix3.Cartesian3();
306
- const scratchHorizonProjected = new Matrix2.Cartesian2();
307
- const scratchMaxY = new Matrix3.Cartesian3();
308
- const scratchMinY = new Matrix3.Cartesian3();
309
- const scratchZ = new Matrix3.Cartesian3();
310
- const scratchPlane = new Plane.Plane(Matrix3.Cartesian3.UNIT_X, 0.0);
311
-
312
- /**
313
- * Computes an OrientedBoundingBox that bounds a {@link Rectangle} on the surface of an {@link Ellipsoid}.
314
- * There are no guarantees about the orientation of the bounding box.
315
- *
316
- * @param {Rectangle} rectangle The cartographic rectangle on the surface of the ellipsoid.
317
- * @param {number} [minimumHeight=0.0] The minimum height (elevation) within the tile.
318
- * @param {number} [maximumHeight=0.0] The maximum height (elevation) within the tile.
319
- * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the rectangle is defined.
320
- * @param {OrientedBoundingBox} [result] The object onto which to store the result.
321
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if none was provided.
322
- *
323
- * @exception {DeveloperError} rectangle.width must be between 0 and 2 * pi.
324
- * @exception {DeveloperError} rectangle.height must be between 0 and pi.
325
- * @exception {DeveloperError} ellipsoid must be an ellipsoid of revolution (<code>radii.x == radii.y</code>)
326
- */
327
- OrientedBoundingBox.fromRectangle = function (
328
- rectangle,
329
- minimumHeight,
330
- maximumHeight,
331
- ellipsoid,
332
- result
333
- ) {
334
- //>>includeStart('debug', pragmas.debug);
335
- if (!defaultValue.defined(rectangle)) {
336
- throw new Check.DeveloperError("rectangle is required");
337
- }
338
- if (rectangle.width < 0.0 || rectangle.width > Math$1.CesiumMath.TWO_PI) {
339
- throw new Check.DeveloperError("Rectangle width must be between 0 and 2 * pi");
340
- }
341
- if (rectangle.height < 0.0 || rectangle.height > Math$1.CesiumMath.PI) {
342
- throw new Check.DeveloperError("Rectangle height must be between 0 and pi");
343
- }
344
- if (
345
- defaultValue.defined(ellipsoid) &&
346
- !Math$1.CesiumMath.equalsEpsilon(
347
- ellipsoid.radii.x,
348
- ellipsoid.radii.y,
349
- Math$1.CesiumMath.EPSILON15
350
- )
351
- ) {
352
- throw new Check.DeveloperError(
353
- "Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)"
354
- );
355
- }
356
- //>>includeEnd('debug');
357
-
358
- minimumHeight = defaultValue.defaultValue(minimumHeight, 0.0);
359
- maximumHeight = defaultValue.defaultValue(maximumHeight, 0.0);
360
- ellipsoid = defaultValue.defaultValue(ellipsoid, Matrix3.Ellipsoid.WGS84);
361
-
362
- let minX, maxX, minY, maxY, minZ, maxZ, plane;
363
-
364
- if (rectangle.width <= Math$1.CesiumMath.PI) {
365
- // The bounding box will be aligned with the tangent plane at the center of the rectangle.
366
- const tangentPointCartographic = Matrix2.Rectangle.center(
367
- rectangle,
368
- scratchRectangleCenterCartographic
369
- );
370
- const tangentPoint = ellipsoid.cartographicToCartesian(
371
- tangentPointCartographic,
372
- scratchRectangleCenter
373
- );
374
- const tangentPlane = new EllipsoidTangentPlane.EllipsoidTangentPlane(tangentPoint, ellipsoid);
375
- plane = tangentPlane.plane;
376
-
377
- // If the rectangle spans the equator, CW is instead aligned with the equator (because it sticks out the farthest at the equator).
378
- const lonCenter = tangentPointCartographic.longitude;
379
- const latCenter =
380
- rectangle.south < 0.0 && rectangle.north > 0.0
381
- ? 0.0
382
- : tangentPointCartographic.latitude;
383
-
384
- // Compute XY extents using the rectangle at maximum height
385
- const perimeterCartographicNC = Matrix3.Cartographic.fromRadians(
386
- lonCenter,
387
- rectangle.north,
388
- maximumHeight,
389
- scratchPerimeterCartographicNC
390
- );
391
- const perimeterCartographicNW = Matrix3.Cartographic.fromRadians(
392
- rectangle.west,
393
- rectangle.north,
394
- maximumHeight,
395
- scratchPerimeterCartographicNW
396
- );
397
- const perimeterCartographicCW = Matrix3.Cartographic.fromRadians(
398
- rectangle.west,
399
- latCenter,
400
- maximumHeight,
401
- scratchPerimeterCartographicCW
402
- );
403
- const perimeterCartographicSW = Matrix3.Cartographic.fromRadians(
404
- rectangle.west,
405
- rectangle.south,
406
- maximumHeight,
407
- scratchPerimeterCartographicSW
408
- );
409
- const perimeterCartographicSC = Matrix3.Cartographic.fromRadians(
410
- lonCenter,
411
- rectangle.south,
412
- maximumHeight,
413
- scratchPerimeterCartographicSC
414
- );
415
-
416
- const perimeterCartesianNC = ellipsoid.cartographicToCartesian(
417
- perimeterCartographicNC,
418
- scratchPerimeterCartesianNC
419
- );
420
- let perimeterCartesianNW = ellipsoid.cartographicToCartesian(
421
- perimeterCartographicNW,
422
- scratchPerimeterCartesianNW
423
- );
424
- const perimeterCartesianCW = ellipsoid.cartographicToCartesian(
425
- perimeterCartographicCW,
426
- scratchPerimeterCartesianCW
427
- );
428
- let perimeterCartesianSW = ellipsoid.cartographicToCartesian(
429
- perimeterCartographicSW,
430
- scratchPerimeterCartesianSW
431
- );
432
- const perimeterCartesianSC = ellipsoid.cartographicToCartesian(
433
- perimeterCartographicSC,
434
- scratchPerimeterCartesianSC
435
- );
436
-
437
- const perimeterProjectedNC = tangentPlane.projectPointToNearestOnPlane(
438
- perimeterCartesianNC,
439
- scratchPerimeterProjectedNC
440
- );
441
- const perimeterProjectedNW = tangentPlane.projectPointToNearestOnPlane(
442
- perimeterCartesianNW,
443
- scratchPerimeterProjectedNW
444
- );
445
- const perimeterProjectedCW = tangentPlane.projectPointToNearestOnPlane(
446
- perimeterCartesianCW,
447
- scratchPerimeterProjectedCW
448
- );
449
- const perimeterProjectedSW = tangentPlane.projectPointToNearestOnPlane(
450
- perimeterCartesianSW,
451
- scratchPerimeterProjectedSW
452
- );
453
- const perimeterProjectedSC = tangentPlane.projectPointToNearestOnPlane(
454
- perimeterCartesianSC,
455
- scratchPerimeterProjectedSC
456
- );
457
-
458
- minX = Math.min(
459
- perimeterProjectedNW.x,
460
- perimeterProjectedCW.x,
461
- perimeterProjectedSW.x
462
- );
463
- maxX = -minX; // symmetrical
464
-
465
- maxY = Math.max(perimeterProjectedNW.y, perimeterProjectedNC.y);
466
- minY = Math.min(perimeterProjectedSW.y, perimeterProjectedSC.y);
467
-
468
- // Compute minimum Z using the rectangle at minimum height, since it will be deeper than the maximum height
469
- perimeterCartographicNW.height = perimeterCartographicSW.height = minimumHeight;
470
- perimeterCartesianNW = ellipsoid.cartographicToCartesian(
471
- perimeterCartographicNW,
472
- scratchPerimeterCartesianNW
473
- );
474
- perimeterCartesianSW = ellipsoid.cartographicToCartesian(
475
- perimeterCartographicSW,
476
- scratchPerimeterCartesianSW
477
- );
478
-
479
- minZ = Math.min(
480
- Plane.Plane.getPointDistance(plane, perimeterCartesianNW),
481
- Plane.Plane.getPointDistance(plane, perimeterCartesianSW)
482
- );
483
- maxZ = maximumHeight; // Since the tangent plane touches the surface at height = 0, this is okay
484
-
485
- return fromPlaneExtents(
486
- tangentPlane.origin,
487
- tangentPlane.xAxis,
488
- tangentPlane.yAxis,
489
- tangentPlane.zAxis,
490
- minX,
491
- maxX,
492
- minY,
493
- maxY,
494
- minZ,
495
- maxZ,
496
- result
497
- );
498
- }
499
-
500
- // Handle the case where rectangle width is greater than PI (wraps around more than half the ellipsoid).
501
- const fullyAboveEquator = rectangle.south > 0.0;
502
- const fullyBelowEquator = rectangle.north < 0.0;
503
- const latitudeNearestToEquator = fullyAboveEquator
504
- ? rectangle.south
505
- : fullyBelowEquator
506
- ? rectangle.north
507
- : 0.0;
508
- const centerLongitude = Matrix2.Rectangle.center(
509
- rectangle,
510
- scratchRectangleCenterCartographic
511
- ).longitude;
512
-
513
- // Plane is located at the rectangle's center longitude and the rectangle's latitude that is closest to the equator. It rotates around the Z axis.
514
- // This results in a better fit than the obb approach for smaller rectangles, which orients with the rectangle's center normal.
515
- const planeOrigin = Matrix3.Cartesian3.fromRadians(
516
- centerLongitude,
517
- latitudeNearestToEquator,
518
- maximumHeight,
519
- ellipsoid,
520
- scratchPlaneOrigin
521
- );
522
- planeOrigin.z = 0.0; // center the plane on the equator to simpify plane normal calculation
523
- const isPole =
524
- Math.abs(planeOrigin.x) < Math$1.CesiumMath.EPSILON10 &&
525
- Math.abs(planeOrigin.y) < Math$1.CesiumMath.EPSILON10;
526
- const planeNormal = !isPole
527
- ? Matrix3.Cartesian3.normalize(planeOrigin, scratchPlaneNormal)
528
- : Matrix3.Cartesian3.UNIT_X;
529
- const planeYAxis = Matrix3.Cartesian3.UNIT_Z;
530
- const planeXAxis = Matrix3.Cartesian3.cross(
531
- planeNormal,
532
- planeYAxis,
533
- scratchPlaneXAxis
534
- );
535
- plane = Plane.Plane.fromPointNormal(planeOrigin, planeNormal, scratchPlane);
536
-
537
- // Get the horizon point relative to the center. This will be the farthest extent in the plane's X dimension.
538
- const horizonCartesian = Matrix3.Cartesian3.fromRadians(
539
- centerLongitude + Math$1.CesiumMath.PI_OVER_TWO,
540
- latitudeNearestToEquator,
541
- maximumHeight,
542
- ellipsoid,
543
- scratchHorizonCartesian
544
- );
545
- maxX = Matrix3.Cartesian3.dot(
546
- Plane.Plane.projectPointOntoPlane(
547
- plane,
548
- horizonCartesian,
549
- scratchHorizonProjected
550
- ),
551
- planeXAxis
552
- );
553
- minX = -maxX; // symmetrical
554
-
555
- // Get the min and max Y, using the height that will give the largest extent
556
- maxY = Matrix3.Cartesian3.fromRadians(
557
- 0.0,
558
- rectangle.north,
559
- fullyBelowEquator ? minimumHeight : maximumHeight,
560
- ellipsoid,
561
- scratchMaxY
562
- ).z;
563
- minY = Matrix3.Cartesian3.fromRadians(
564
- 0.0,
565
- rectangle.south,
566
- fullyAboveEquator ? minimumHeight : maximumHeight,
567
- ellipsoid,
568
- scratchMinY
569
- ).z;
570
-
571
- const farZ = Matrix3.Cartesian3.fromRadians(
572
- rectangle.east,
573
- latitudeNearestToEquator,
574
- maximumHeight,
575
- ellipsoid,
576
- scratchZ
577
- );
578
- minZ = Plane.Plane.getPointDistance(plane, farZ);
579
- maxZ = 0.0; // plane origin starts at maxZ already
580
-
581
- // min and max are local to the plane axes
582
- return fromPlaneExtents(
583
- planeOrigin,
584
- planeXAxis,
585
- planeYAxis,
586
- planeNormal,
587
- minX,
588
- maxX,
589
- minY,
590
- maxY,
591
- minZ,
592
- maxZ,
593
- result
594
- );
595
- };
596
-
597
- /**
598
- * Computes an OrientedBoundingBox that bounds an affine transformation.
599
- *
600
- * @param {Matrix4} transformation The affine transformation.
601
- * @param {OrientedBoundingBox} [result] The object onto which to store the result.
602
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if none was provided.
603
- */
604
- OrientedBoundingBox.fromTransformation = function (transformation, result) {
605
- //>>includeStart('debug', pragmas.debug);
606
- Check.Check.typeOf.object("transformation", transformation);
607
- //>>includeEnd('debug');
608
-
609
- if (!defaultValue.defined(result)) {
610
- result = new OrientedBoundingBox();
611
- }
612
-
613
- result.center = Matrix2.Matrix4.getTranslation(transformation, result.center);
614
- result.halfAxes = Matrix2.Matrix4.getMatrix3(transformation, result.halfAxes);
615
- result.halfAxes = Matrix3.Matrix3.multiplyByScalar(
616
- result.halfAxes,
617
- 0.5,
618
- result.halfAxes
619
- );
620
- return result;
621
- };
622
-
623
- /**
624
- * Duplicates a OrientedBoundingBox instance.
625
- *
626
- * @param {OrientedBoundingBox} box The bounding box to duplicate.
627
- * @param {OrientedBoundingBox} [result] The object onto which to store the result.
628
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if none was provided. (Returns undefined if box is undefined)
629
- */
630
- OrientedBoundingBox.clone = function (box, result) {
631
- if (!defaultValue.defined(box)) {
632
- return undefined;
633
- }
634
-
635
- if (!defaultValue.defined(result)) {
636
- return new OrientedBoundingBox(box.center, box.halfAxes);
637
- }
638
-
639
- Matrix3.Cartesian3.clone(box.center, result.center);
640
- Matrix3.Matrix3.clone(box.halfAxes, result.halfAxes);
641
-
642
- return result;
643
- };
644
-
645
- /**
646
- * Determines which side of a plane the oriented bounding box is located.
647
- *
648
- * @param {OrientedBoundingBox} box The oriented bounding box to test.
649
- * @param {Plane} plane The plane to test against.
650
- * @returns {Intersect} {@link Intersect.INSIDE} if the entire box is on the side of the plane
651
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire box is
652
- * on the opposite side, and {@link Intersect.INTERSECTING} if the box
653
- * intersects the plane.
654
- */
655
- OrientedBoundingBox.intersectPlane = function (box, plane) {
656
- //>>includeStart('debug', pragmas.debug);
657
- if (!defaultValue.defined(box)) {
658
- throw new Check.DeveloperError("box is required.");
659
- }
660
-
661
- if (!defaultValue.defined(plane)) {
662
- throw new Check.DeveloperError("plane is required.");
663
- }
664
- //>>includeEnd('debug');
665
-
666
- const center = box.center;
667
- const normal = plane.normal;
668
- const halfAxes = box.halfAxes;
669
- const normalX = normal.x,
670
- normalY = normal.y,
671
- normalZ = normal.z;
672
- // plane is used as if it is its normal; the first three components are assumed to be normalized
673
- const radEffective =
674
- Math.abs(
675
- normalX * halfAxes[Matrix3.Matrix3.COLUMN0ROW0] +
676
- normalY * halfAxes[Matrix3.Matrix3.COLUMN0ROW1] +
677
- normalZ * halfAxes[Matrix3.Matrix3.COLUMN0ROW2]
678
- ) +
679
- Math.abs(
680
- normalX * halfAxes[Matrix3.Matrix3.COLUMN1ROW0] +
681
- normalY * halfAxes[Matrix3.Matrix3.COLUMN1ROW1] +
682
- normalZ * halfAxes[Matrix3.Matrix3.COLUMN1ROW2]
683
- ) +
684
- Math.abs(
685
- normalX * halfAxes[Matrix3.Matrix3.COLUMN2ROW0] +
686
- normalY * halfAxes[Matrix3.Matrix3.COLUMN2ROW1] +
687
- normalZ * halfAxes[Matrix3.Matrix3.COLUMN2ROW2]
688
- );
689
- const distanceToPlane = Matrix3.Cartesian3.dot(normal, center) + plane.distance;
690
-
691
- if (distanceToPlane <= -radEffective) {
692
- // The entire box is on the negative side of the plane normal
693
- return Transforms.Intersect.OUTSIDE;
694
- } else if (distanceToPlane >= radEffective) {
695
- // The entire box is on the positive side of the plane normal
696
- return Transforms.Intersect.INSIDE;
697
- }
698
- return Transforms.Intersect.INTERSECTING;
699
- };
700
-
701
- const scratchCartesianU = new Matrix3.Cartesian3();
702
- const scratchCartesianV = new Matrix3.Cartesian3();
703
- const scratchCartesianW = new Matrix3.Cartesian3();
704
- const scratchValidAxis2 = new Matrix3.Cartesian3();
705
- const scratchValidAxis3 = new Matrix3.Cartesian3();
706
- const scratchPPrime = new Matrix3.Cartesian3();
707
-
708
- /**
709
- * Computes the estimated distance squared from the closest point on a bounding box to a point.
710
- *
711
- * @param {OrientedBoundingBox} box The box.
712
- * @param {Cartesian3} cartesian The point
713
- * @returns {number} The distance squared from the oriented bounding box to the point. Returns 0 if the point is inside the box.
714
- *
715
- * @example
716
- * // Sort bounding boxes from back to front
717
- * boxes.sort(function(a, b) {
718
- * return Cesium.OrientedBoundingBox.distanceSquaredTo(b, camera.positionWC) - Cesium.OrientedBoundingBox.distanceSquaredTo(a, camera.positionWC);
719
- * });
720
- */
721
- OrientedBoundingBox.distanceSquaredTo = function (box, cartesian) {
722
- // See Geometric Tools for Computer Graphics 10.4.2
723
-
724
- //>>includeStart('debug', pragmas.debug);
725
- if (!defaultValue.defined(box)) {
726
- throw new Check.DeveloperError("box is required.");
727
- }
728
- if (!defaultValue.defined(cartesian)) {
729
- throw new Check.DeveloperError("cartesian is required.");
730
- }
731
- //>>includeEnd('debug');
732
-
733
- const offset = Matrix3.Cartesian3.subtract(cartesian, box.center, scratchOffset);
734
-
735
- const halfAxes = box.halfAxes;
736
- let u = Matrix3.Matrix3.getColumn(halfAxes, 0, scratchCartesianU);
737
- let v = Matrix3.Matrix3.getColumn(halfAxes, 1, scratchCartesianV);
738
- let w = Matrix3.Matrix3.getColumn(halfAxes, 2, scratchCartesianW);
739
-
740
- const uHalf = Matrix3.Cartesian3.magnitude(u);
741
- const vHalf = Matrix3.Cartesian3.magnitude(v);
742
- const wHalf = Matrix3.Cartesian3.magnitude(w);
743
-
744
- let uValid = true;
745
- let vValid = true;
746
- let wValid = true;
747
-
748
- if (uHalf > 0) {
749
- Matrix3.Cartesian3.divideByScalar(u, uHalf, u);
750
- } else {
751
- uValid = false;
752
- }
753
-
754
- if (vHalf > 0) {
755
- Matrix3.Cartesian3.divideByScalar(v, vHalf, v);
756
- } else {
757
- vValid = false;
758
- }
759
-
760
- if (wHalf > 0) {
761
- Matrix3.Cartesian3.divideByScalar(w, wHalf, w);
762
- } else {
763
- wValid = false;
764
- }
765
-
766
- const numberOfDegenerateAxes = !uValid + !vValid + !wValid;
767
- let validAxis1;
768
- let validAxis2;
769
- let validAxis3;
770
-
771
- if (numberOfDegenerateAxes === 1) {
772
- let degenerateAxis = u;
773
- validAxis1 = v;
774
- validAxis2 = w;
775
- if (!vValid) {
776
- degenerateAxis = v;
777
- validAxis1 = u;
778
- } else if (!wValid) {
779
- degenerateAxis = w;
780
- validAxis2 = u;
781
- }
782
-
783
- validAxis3 = Matrix3.Cartesian3.cross(validAxis1, validAxis2, scratchValidAxis3);
784
-
785
- if (degenerateAxis === u) {
786
- u = validAxis3;
787
- } else if (degenerateAxis === v) {
788
- v = validAxis3;
789
- } else if (degenerateAxis === w) {
790
- w = validAxis3;
791
- }
792
- } else if (numberOfDegenerateAxes === 2) {
793
- validAxis1 = u;
794
- if (vValid) {
795
- validAxis1 = v;
796
- } else if (wValid) {
797
- validAxis1 = w;
798
- }
799
-
800
- let crossVector = Matrix3.Cartesian3.UNIT_Y;
801
- if (crossVector.equalsEpsilon(validAxis1, Math$1.CesiumMath.EPSILON3)) {
802
- crossVector = Matrix3.Cartesian3.UNIT_X;
803
- }
804
-
805
- validAxis2 = Matrix3.Cartesian3.cross(validAxis1, crossVector, scratchValidAxis2);
806
- Matrix3.Cartesian3.normalize(validAxis2, validAxis2);
807
- validAxis3 = Matrix3.Cartesian3.cross(validAxis1, validAxis2, scratchValidAxis3);
808
- Matrix3.Cartesian3.normalize(validAxis3, validAxis3);
809
-
810
- if (validAxis1 === u) {
811
- v = validAxis2;
812
- w = validAxis3;
813
- } else if (validAxis1 === v) {
814
- w = validAxis2;
815
- u = validAxis3;
816
- } else if (validAxis1 === w) {
817
- u = validAxis2;
818
- v = validAxis3;
819
- }
820
- } else if (numberOfDegenerateAxes === 3) {
821
- u = Matrix3.Cartesian3.UNIT_X;
822
- v = Matrix3.Cartesian3.UNIT_Y;
823
- w = Matrix3.Cartesian3.UNIT_Z;
824
- }
825
-
826
- const pPrime = scratchPPrime;
827
- pPrime.x = Matrix3.Cartesian3.dot(offset, u);
828
- pPrime.y = Matrix3.Cartesian3.dot(offset, v);
829
- pPrime.z = Matrix3.Cartesian3.dot(offset, w);
830
-
831
- let distanceSquared = 0.0;
832
- let d;
833
-
834
- if (pPrime.x < -uHalf) {
835
- d = pPrime.x + uHalf;
836
- distanceSquared += d * d;
837
- } else if (pPrime.x > uHalf) {
838
- d = pPrime.x - uHalf;
839
- distanceSquared += d * d;
840
- }
841
-
842
- if (pPrime.y < -vHalf) {
843
- d = pPrime.y + vHalf;
844
- distanceSquared += d * d;
845
- } else if (pPrime.y > vHalf) {
846
- d = pPrime.y - vHalf;
847
- distanceSquared += d * d;
848
- }
849
-
850
- if (pPrime.z < -wHalf) {
851
- d = pPrime.z + wHalf;
852
- distanceSquared += d * d;
853
- } else if (pPrime.z > wHalf) {
854
- d = pPrime.z - wHalf;
855
- distanceSquared += d * d;
856
- }
857
-
858
- return distanceSquared;
859
- };
860
-
861
- const scratchCorner = new Matrix3.Cartesian3();
862
- const scratchToCenter = new Matrix3.Cartesian3();
863
-
864
- /**
865
- * The distances calculated by the vector from the center of the bounding box to position projected onto direction.
866
- * <br>
867
- * If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the
868
- * closest and farthest planes from position that intersect the bounding box.
869
- *
870
- * @param {OrientedBoundingBox} box The bounding box to calculate the distance to.
871
- * @param {Cartesian3} position The position to calculate the distance from.
872
- * @param {Cartesian3} direction The direction from position.
873
- * @param {Interval} [result] A Interval to store the nearest and farthest distances.
874
- * @returns {Interval} The nearest and farthest distances on the bounding box from position in direction.
875
- */
876
- OrientedBoundingBox.computePlaneDistances = function (
877
- box,
878
- position,
879
- direction,
880
- result
881
- ) {
882
- //>>includeStart('debug', pragmas.debug);
883
- if (!defaultValue.defined(box)) {
884
- throw new Check.DeveloperError("box is required.");
885
- }
886
-
887
- if (!defaultValue.defined(position)) {
888
- throw new Check.DeveloperError("position is required.");
889
- }
890
-
891
- if (!defaultValue.defined(direction)) {
892
- throw new Check.DeveloperError("direction is required.");
893
- }
894
- //>>includeEnd('debug');
895
-
896
- if (!defaultValue.defined(result)) {
897
- result = new Transforms.Interval();
898
- }
899
-
900
- let minDist = Number.POSITIVE_INFINITY;
901
- let maxDist = Number.NEGATIVE_INFINITY;
902
-
903
- const center = box.center;
904
- const halfAxes = box.halfAxes;
905
-
906
- const u = Matrix3.Matrix3.getColumn(halfAxes, 0, scratchCartesianU);
907
- const v = Matrix3.Matrix3.getColumn(halfAxes, 1, scratchCartesianV);
908
- const w = Matrix3.Matrix3.getColumn(halfAxes, 2, scratchCartesianW);
909
-
910
- // project first corner
911
- const corner = Matrix3.Cartesian3.add(u, v, scratchCorner);
912
- Matrix3.Cartesian3.add(corner, w, corner);
913
- Matrix3.Cartesian3.add(corner, center, corner);
914
-
915
- const toCenter = Matrix3.Cartesian3.subtract(corner, position, scratchToCenter);
916
- let mag = Matrix3.Cartesian3.dot(direction, toCenter);
917
-
918
- minDist = Math.min(mag, minDist);
919
- maxDist = Math.max(mag, maxDist);
920
-
921
- // project second corner
922
- Matrix3.Cartesian3.add(center, u, corner);
923
- Matrix3.Cartesian3.add(corner, v, corner);
924
- Matrix3.Cartesian3.subtract(corner, w, corner);
925
-
926
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
927
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
928
-
929
- minDist = Math.min(mag, minDist);
930
- maxDist = Math.max(mag, maxDist);
931
-
932
- // project third corner
933
- Matrix3.Cartesian3.add(center, u, corner);
934
- Matrix3.Cartesian3.subtract(corner, v, corner);
935
- Matrix3.Cartesian3.add(corner, w, corner);
936
-
937
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
938
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
939
-
940
- minDist = Math.min(mag, minDist);
941
- maxDist = Math.max(mag, maxDist);
942
-
943
- // project fourth corner
944
- Matrix3.Cartesian3.add(center, u, corner);
945
- Matrix3.Cartesian3.subtract(corner, v, corner);
946
- Matrix3.Cartesian3.subtract(corner, w, corner);
947
-
948
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
949
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
950
-
951
- minDist = Math.min(mag, minDist);
952
- maxDist = Math.max(mag, maxDist);
953
-
954
- // project fifth corner
955
- Matrix3.Cartesian3.subtract(center, u, corner);
956
- Matrix3.Cartesian3.add(corner, v, corner);
957
- Matrix3.Cartesian3.add(corner, w, corner);
958
-
959
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
960
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
961
-
962
- minDist = Math.min(mag, minDist);
963
- maxDist = Math.max(mag, maxDist);
964
-
965
- // project sixth corner
966
- Matrix3.Cartesian3.subtract(center, u, corner);
967
- Matrix3.Cartesian3.add(corner, v, corner);
968
- Matrix3.Cartesian3.subtract(corner, w, corner);
969
-
970
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
971
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
972
-
973
- minDist = Math.min(mag, minDist);
974
- maxDist = Math.max(mag, maxDist);
975
-
976
- // project seventh corner
977
- Matrix3.Cartesian3.subtract(center, u, corner);
978
- Matrix3.Cartesian3.subtract(corner, v, corner);
979
- Matrix3.Cartesian3.add(corner, w, corner);
980
-
981
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
982
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
983
-
984
- minDist = Math.min(mag, minDist);
985
- maxDist = Math.max(mag, maxDist);
986
-
987
- // project eighth corner
988
- Matrix3.Cartesian3.subtract(center, u, corner);
989
- Matrix3.Cartesian3.subtract(corner, v, corner);
990
- Matrix3.Cartesian3.subtract(corner, w, corner);
991
-
992
- Matrix3.Cartesian3.subtract(corner, position, toCenter);
993
- mag = Matrix3.Cartesian3.dot(direction, toCenter);
994
-
995
- minDist = Math.min(mag, minDist);
996
- maxDist = Math.max(mag, maxDist);
997
-
998
- result.start = minDist;
999
- result.stop = maxDist;
1000
- return result;
1001
- };
1002
-
1003
- const scratchXAxis = new Matrix3.Cartesian3();
1004
- const scratchYAxis = new Matrix3.Cartesian3();
1005
- const scratchZAxis = new Matrix3.Cartesian3();
1006
-
1007
- /**
1008
- * Computes the eight corners of an oriented bounding box. The corners are ordered by (-X, -Y, -Z), (-X, -Y, +Z), (-X, +Y, -Z), (-X, +Y, +Z), (+X, -Y, -Z), (+X, -Y, +Z), (+X, +Y, -Z), (+X, +Y, +Z).
1009
- *
1010
- * @param {OrientedBoundingBox} box The oriented bounding box.
1011
- * @param {Cartesian3[]} [result] An array of eight {@link Cartesian3} instances onto which to store the corners.
1012
- * @returns {Cartesian3[]} The modified result parameter or a new array if none was provided.
1013
- */
1014
- OrientedBoundingBox.computeCorners = function (box, result) {
1015
- //>>includeStart('debug', pragmas.debug);
1016
- Check.Check.typeOf.object("box", box);
1017
- //>>includeEnd('debug');
1018
-
1019
- if (!defaultValue.defined(result)) {
1020
- result = [
1021
- new Matrix3.Cartesian3(),
1022
- new Matrix3.Cartesian3(),
1023
- new Matrix3.Cartesian3(),
1024
- new Matrix3.Cartesian3(),
1025
- new Matrix3.Cartesian3(),
1026
- new Matrix3.Cartesian3(),
1027
- new Matrix3.Cartesian3(),
1028
- new Matrix3.Cartesian3(),
1029
- ];
1030
- }
1031
-
1032
- const center = box.center;
1033
- const halfAxes = box.halfAxes;
1034
- const xAxis = Matrix3.Matrix3.getColumn(halfAxes, 0, scratchXAxis);
1035
- const yAxis = Matrix3.Matrix3.getColumn(halfAxes, 1, scratchYAxis);
1036
- const zAxis = Matrix3.Matrix3.getColumn(halfAxes, 2, scratchZAxis);
1037
-
1038
- Matrix3.Cartesian3.clone(center, result[0]);
1039
- Matrix3.Cartesian3.subtract(result[0], xAxis, result[0]);
1040
- Matrix3.Cartesian3.subtract(result[0], yAxis, result[0]);
1041
- Matrix3.Cartesian3.subtract(result[0], zAxis, result[0]);
1042
-
1043
- Matrix3.Cartesian3.clone(center, result[1]);
1044
- Matrix3.Cartesian3.subtract(result[1], xAxis, result[1]);
1045
- Matrix3.Cartesian3.subtract(result[1], yAxis, result[1]);
1046
- Matrix3.Cartesian3.add(result[1], zAxis, result[1]);
1047
-
1048
- Matrix3.Cartesian3.clone(center, result[2]);
1049
- Matrix3.Cartesian3.subtract(result[2], xAxis, result[2]);
1050
- Matrix3.Cartesian3.add(result[2], yAxis, result[2]);
1051
- Matrix3.Cartesian3.subtract(result[2], zAxis, result[2]);
1052
-
1053
- Matrix3.Cartesian3.clone(center, result[3]);
1054
- Matrix3.Cartesian3.subtract(result[3], xAxis, result[3]);
1055
- Matrix3.Cartesian3.add(result[3], yAxis, result[3]);
1056
- Matrix3.Cartesian3.add(result[3], zAxis, result[3]);
1057
-
1058
- Matrix3.Cartesian3.clone(center, result[4]);
1059
- Matrix3.Cartesian3.add(result[4], xAxis, result[4]);
1060
- Matrix3.Cartesian3.subtract(result[4], yAxis, result[4]);
1061
- Matrix3.Cartesian3.subtract(result[4], zAxis, result[4]);
1062
-
1063
- Matrix3.Cartesian3.clone(center, result[5]);
1064
- Matrix3.Cartesian3.add(result[5], xAxis, result[5]);
1065
- Matrix3.Cartesian3.subtract(result[5], yAxis, result[5]);
1066
- Matrix3.Cartesian3.add(result[5], zAxis, result[5]);
1067
-
1068
- Matrix3.Cartesian3.clone(center, result[6]);
1069
- Matrix3.Cartesian3.add(result[6], xAxis, result[6]);
1070
- Matrix3.Cartesian3.add(result[6], yAxis, result[6]);
1071
- Matrix3.Cartesian3.subtract(result[6], zAxis, result[6]);
1072
-
1073
- Matrix3.Cartesian3.clone(center, result[7]);
1074
- Matrix3.Cartesian3.add(result[7], xAxis, result[7]);
1075
- Matrix3.Cartesian3.add(result[7], yAxis, result[7]);
1076
- Matrix3.Cartesian3.add(result[7], zAxis, result[7]);
1077
-
1078
- return result;
1079
- };
1080
-
1081
- const scratchRotationScale = new Matrix3.Matrix3();
1082
-
1083
- /**
1084
- * Computes a transformation matrix from an oriented bounding box.
1085
- *
1086
- * @param {OrientedBoundingBox} box The oriented bounding box.
1087
- * @param {Matrix4} result The object onto which to store the result.
1088
- * @returns {Matrix4} The modified result parameter or a new {@link Matrix4} instance if none was provided.
1089
- */
1090
- OrientedBoundingBox.computeTransformation = function (box, result) {
1091
- //>>includeStart('debug', pragmas.debug);
1092
- Check.Check.typeOf.object("box", box);
1093
- //>>includeEnd('debug');
1094
-
1095
- if (!defaultValue.defined(result)) {
1096
- result = new Matrix2.Matrix4();
1097
- }
1098
-
1099
- const translation = box.center;
1100
- const rotationScale = Matrix3.Matrix3.multiplyByUniformScale(
1101
- box.halfAxes,
1102
- 2.0,
1103
- scratchRotationScale
1104
- );
1105
- return Matrix2.Matrix4.fromRotationTranslation(rotationScale, translation, result);
1106
- };
1107
-
1108
- const scratchBoundingSphere = new Transforms.BoundingSphere();
1109
-
1110
- /**
1111
- * Determines whether or not a bounding box is hidden from view by the occluder.
1112
- *
1113
- * @param {OrientedBoundingBox} box The bounding box surrounding the occludee object.
1114
- * @param {Occluder} occluder The occluder.
1115
- * @returns {boolean} <code>true</code> if the box is not visible; otherwise <code>false</code>.
1116
- */
1117
- OrientedBoundingBox.isOccluded = function (box, occluder) {
1118
- //>>includeStart('debug', pragmas.debug);
1119
- if (!defaultValue.defined(box)) {
1120
- throw new Check.DeveloperError("box is required.");
1121
- }
1122
- if (!defaultValue.defined(occluder)) {
1123
- throw new Check.DeveloperError("occluder is required.");
1124
- }
1125
- //>>includeEnd('debug');
1126
-
1127
- const sphere = Transforms.BoundingSphere.fromOrientedBoundingBox(
1128
- box,
1129
- scratchBoundingSphere
1130
- );
1131
-
1132
- return !occluder.isBoundingSphereVisible(sphere);
1133
- };
1134
-
1135
- /**
1136
- * Determines which side of a plane the oriented bounding box is located.
1137
- *
1138
- * @param {Plane} plane The plane to test against.
1139
- * @returns {Intersect} {@link Intersect.INSIDE} if the entire box is on the side of the plane
1140
- * the normal is pointing, {@link Intersect.OUTSIDE} if the entire box is
1141
- * on the opposite side, and {@link Intersect.INTERSECTING} if the box
1142
- * intersects the plane.
1143
- */
1144
- OrientedBoundingBox.prototype.intersectPlane = function (plane) {
1145
- return OrientedBoundingBox.intersectPlane(this, plane);
1146
- };
1147
-
1148
- /**
1149
- * Computes the estimated distance squared from the closest point on a bounding box to a point.
1150
- *
1151
- * @param {Cartesian3} cartesian The point
1152
- * @returns {number} The estimated distance squared from the bounding sphere to the point.
1153
- *
1154
- * @example
1155
- * // Sort bounding boxes from back to front
1156
- * boxes.sort(function(a, b) {
1157
- * return b.distanceSquaredTo(camera.positionWC) - a.distanceSquaredTo(camera.positionWC);
1158
- * });
1159
- */
1160
- OrientedBoundingBox.prototype.distanceSquaredTo = function (cartesian) {
1161
- return OrientedBoundingBox.distanceSquaredTo(this, cartesian);
1162
- };
1163
-
1164
- /**
1165
- * The distances calculated by the vector from the center of the bounding box to position projected onto direction.
1166
- * <br>
1167
- * If you imagine the infinite number of planes with normal direction, this computes the smallest distance to the
1168
- * closest and farthest planes from position that intersect the bounding box.
1169
- *
1170
- * @param {Cartesian3} position The position to calculate the distance from.
1171
- * @param {Cartesian3} direction The direction from position.
1172
- * @param {Interval} [result] A Interval to store the nearest and farthest distances.
1173
- * @returns {Interval} The nearest and farthest distances on the bounding box from position in direction.
1174
- */
1175
- OrientedBoundingBox.prototype.computePlaneDistances = function (
1176
- position,
1177
- direction,
1178
- result
1179
- ) {
1180
- return OrientedBoundingBox.computePlaneDistances(
1181
- this,
1182
- position,
1183
- direction,
1184
- result
1185
- );
1186
- };
1187
-
1188
- /**
1189
- * Computes the eight corners of an oriented bounding box. The corners are ordered by (-X, -Y, -Z), (-X, -Y, +Z), (-X, +Y, -Z), (-X, +Y, +Z), (+X, -Y, -Z), (+X, -Y, +Z), (+X, +Y, -Z), (+X, +Y, +Z).
1190
- *
1191
- * @param {Cartesian3[]} [result] An array of eight {@link Cartesian3} instances onto which to store the corners.
1192
- * @returns {Cartesian3[]} The modified result parameter or a new array if none was provided.
1193
- */
1194
- OrientedBoundingBox.prototype.computeCorners = function (result) {
1195
- return OrientedBoundingBox.computeCorners(this, result);
1196
- };
1197
-
1198
- /**
1199
- * Computes a transformation matrix from an oriented bounding box.
1200
- *
1201
- * @param {Matrix4} result The object onto which to store the result.
1202
- * @returns {Matrix4} The modified result parameter or a new {@link Matrix4} instance if none was provided.
1203
- */
1204
- OrientedBoundingBox.prototype.computeTransformation = function (result) {
1205
- return OrientedBoundingBox.computeTransformation(this, result);
1206
- };
1207
-
1208
- /**
1209
- * Determines whether or not a bounding box is hidden from view by the occluder.
1210
- *
1211
- * @param {Occluder} occluder The occluder.
1212
- * @returns {boolean} <code>true</code> if the sphere is not visible; otherwise <code>false</code>.
1213
- */
1214
- OrientedBoundingBox.prototype.isOccluded = function (occluder) {
1215
- return OrientedBoundingBox.isOccluded(this, occluder);
1216
- };
1217
-
1218
- /**
1219
- * Compares the provided OrientedBoundingBox componentwise and returns
1220
- * <code>true</code> if they are equal, <code>false</code> otherwise.
1221
- *
1222
- * @param {OrientedBoundingBox} left The first OrientedBoundingBox.
1223
- * @param {OrientedBoundingBox} right The second OrientedBoundingBox.
1224
- * @returns {boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
1225
- */
1226
- OrientedBoundingBox.equals = function (left, right) {
1227
- return (
1228
- left === right ||
1229
- (defaultValue.defined(left) &&
1230
- defaultValue.defined(right) &&
1231
- Matrix3.Cartesian3.equals(left.center, right.center) &&
1232
- Matrix3.Matrix3.equals(left.halfAxes, right.halfAxes))
1233
- );
1234
- };
1235
-
1236
- /**
1237
- * Duplicates this OrientedBoundingBox instance.
1238
- *
1239
- * @param {OrientedBoundingBox} [result] The object onto which to store the result.
1240
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if one was not provided.
1241
- */
1242
- OrientedBoundingBox.prototype.clone = function (result) {
1243
- return OrientedBoundingBox.clone(this, result);
1244
- };
1245
-
1246
- /**
1247
- * Compares this OrientedBoundingBox against the provided OrientedBoundingBox componentwise and returns
1248
- * <code>true</code> if they are equal, <code>false</code> otherwise.
1249
- *
1250
- * @param {OrientedBoundingBox} [right] The right hand side OrientedBoundingBox.
1251
- * @returns {boolean} <code>true</code> if they are equal, <code>false</code> otherwise.
1252
- */
1253
- OrientedBoundingBox.prototype.equals = function (right) {
1254
- return OrientedBoundingBox.equals(this, right);
1255
- };
1256
-
1257
- exports.OrientedBoundingBox = OrientedBoundingBox;
1258
-
1259
- }));