@vcmap/ui 5.0.0-rc.29 → 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.
- package/build/buildHelpers.js +4 -3
- package/config/base.config.json +5 -4
- package/config/dev.config.json +8 -0
- package/config/graphFeatureInfo.config.json +1 -1
- package/config/projects.config.json +2 -2
- package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +1 -1
- package/dist/assets/cesium/Workers/chunk-227AJNOA.js +59 -0
- package/dist/assets/cesium/Workers/chunk-2R5O53JW.js +157 -0
- package/dist/assets/cesium/Workers/chunk-34YUDLRP.js +781 -0
- package/dist/assets/cesium/Workers/chunk-3W63OHNJ.js +100 -0
- package/dist/assets/cesium/Workers/chunk-4MFFIWUA.js +163 -0
- package/dist/assets/cesium/Workers/chunk-66QLLS45.js +218 -0
- package/dist/assets/cesium/Workers/chunk-6BTKZDRG.js +77 -0
- package/dist/assets/cesium/Workers/chunk-A4JVFBQ3.js +101 -0
- package/dist/assets/cesium/Workers/chunk-ABADGKYE.js +58 -0
- package/dist/assets/cesium/Workers/chunk-AFFLIKOH.js +353 -0
- package/dist/assets/cesium/Workers/chunk-AHKEZ2OE.js +629 -0
- package/dist/assets/cesium/Workers/chunk-C3SXRKRW.js +476 -0
- package/dist/assets/cesium/Workers/chunk-CCFQRR6D.js +55 -0
- package/dist/assets/cesium/Workers/chunk-CHHNOC2C.js +1860 -0
- package/dist/assets/cesium/Workers/chunk-CTELOFLA.js +196 -0
- package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +3273 -0
- package/dist/assets/cesium/Workers/chunk-EW2GWJYB.js +44 -0
- package/dist/assets/cesium/Workers/chunk-GLZBE3ML.js +421 -0
- package/dist/assets/cesium/Workers/chunk-HARLBUOL.js +236 -0
- package/dist/assets/cesium/Workers/chunk-HQF437NJ.js +117 -0
- package/dist/assets/cesium/Workers/chunk-IPA4EACJ.js +368 -0
- package/dist/assets/cesium/Workers/chunk-J3JY6I2C.js +1009 -0
- package/dist/assets/cesium/Workers/chunk-JB2LWGH4.js +390 -0
- package/dist/assets/cesium/Workers/chunk-JS3AW5BK.js +634 -0
- package/dist/assets/cesium/Workers/chunk-K36FEYS7.js +452 -0
- package/dist/assets/cesium/Workers/chunk-KD4Y7CZL.js +400 -0
- package/dist/assets/cesium/Workers/chunk-KTJSNCK4.js +842 -0
- package/dist/assets/cesium/Workers/chunk-LLUNNUJV.js +258 -0
- package/dist/assets/cesium/Workers/{package.js → chunk-MPAZH4BF.js} +13 -2
- package/dist/assets/cesium/Workers/chunk-MYZB7C4T.js +1258 -0
- package/dist/assets/cesium/Workers/chunk-N3JIFFX2.js +501 -0
- package/dist/assets/cesium/Workers/chunk-O5AMBQ36.js +430 -0
- package/dist/assets/cesium/Workers/chunk-OAVNIRB4.js +124 -0
- package/dist/assets/cesium/Workers/chunk-OYFCF4PL.js +171 -0
- package/dist/assets/cesium/Workers/chunk-OZJDGN5F.js +1477 -0
- package/dist/assets/cesium/Workers/chunk-PCJWUS4M.js +2041 -0
- package/dist/assets/cesium/Workers/chunk-PFQBCKBM.js +8644 -0
- package/dist/assets/cesium/Workers/chunk-QIKODV5G.js +305 -0
- package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +73 -0
- package/dist/assets/cesium/Workers/chunk-QMEMZIJI.js +138 -0
- package/dist/assets/cesium/Workers/chunk-QT3MPEMI.js +102 -0
- package/dist/assets/cesium/Workers/chunk-RP2A7BR5.js +289 -0
- package/dist/assets/cesium/Workers/chunk-RW6LU2CJ.js +138 -0
- package/dist/assets/cesium/Workers/chunk-TFC6TZ3S.js +757 -0
- package/dist/assets/cesium/Workers/chunk-V3NGATMV.js +693 -0
- package/dist/assets/cesium/Workers/chunk-VLGOATD6.js +1075 -0
- package/dist/assets/cesium/Workers/chunk-WXTV4ATB.js +39 -0
- package/dist/assets/cesium/Workers/chunk-X4SU25DT.js +302 -0
- package/dist/assets/cesium/Workers/chunk-XTY7B2N6.js +2716 -0
- package/dist/assets/cesium/Workers/chunk-XY7MGBKC.js +513 -0
- package/dist/assets/cesium/Workers/chunk-Z24VKNDO.js +834 -0
- package/dist/assets/cesium/Workers/chunk-ZA25DG4Y.js +684 -0
- package/dist/assets/cesium/Workers/chunk-ZFOBYDGF.js +73 -0
- package/dist/assets/cesium/Workers/combineGeometry.js +65 -15
- package/dist/assets/cesium/Workers/createBoxGeometry.js +55 -10
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +231 -310
- package/dist/assets/cesium/Workers/createCircleGeometry.js +185 -202
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +141 -155
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +477 -557
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1162 -1307
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +533 -569
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +57 -10
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +224 -258
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +68 -12
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +61 -12
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +56 -10
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +58 -13
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +55 -10
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +226 -243
- package/dist/assets/cesium/Workers/createGeometry.js +143 -48
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1484 -2011
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +216 -243
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +121 -113
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1041 -1327
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +516 -657
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +471 -547
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +352 -384
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1128 -1331
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +445 -500
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +381 -440
- package/dist/assets/cesium/Workers/createSphereGeometry.js +112 -118
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +112 -121
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +32 -127
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +462 -505
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +377 -436
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +110 -77
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +369 -391
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +252 -244
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2244 -2677
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -926
- package/dist/assets/cesium/Workers/createWallGeometry.js +459 -593
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +324 -419
- package/dist/assets/cesium/Workers/decodeDraco.js +327 -347
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
- package/dist/assets/cesium/Workers/decodeI3S.js +765 -970
- package/dist/assets/cesium/Workers/transcodeKTX2.js +3353 -1464
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +3 -4
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +748 -953
- package/dist/assets/{cesium.16590b.js → cesium.77d0f7.js} +8915 -13165
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.74da2a.js → core.720589.js} +3421 -3365
- package/dist/assets/core.js +1 -1
- package/dist/assets/index-dd539204.js +1 -0
- package/dist/assets/{ol.50a512.js → ol.e48649.js} +4 -4
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui.d3054c.css → ui.50452a.css} +2 -2
- package/dist/assets/{ui.d3054c.js → ui.50452a.js} +5312 -4776
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.946bd8.js → vuetify.f0a769.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +27 -23
- package/index.html +23 -22
- package/index.js +6 -0
- package/package.json +5 -5
- package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +37 -1
- package/plugins/@vcmap-show-case/form-inputs-example/index.js +3 -0
- package/plugins/@vcmap-show-case/form-inputs-example/validation.js +11 -0
- package/plugins/@vcmap-show-case/plugin-editors/PluginEditors.vue +119 -0
- package/plugins/@vcmap-show-case/plugin-editors/index.js +41 -0
- package/plugins/@vcmap-show-case/plugin-editors/package.json +5 -0
- package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ProjectSelectorComponent.vue +1 -1
- package/plugins/{@vcmap → @vcmap-show-case}/project-selector/config.json +2 -2
- package/plugins/{@vcmap → @vcmap-show-case}/project-selector/package.json +1 -1
- package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/package.json +1 -1
- package/plugins/@vcmap-show-case/style-input-example/styleExample.vue +0 -1
- package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +1 -1
- package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/ThemeChangerComponent.vue +1 -1
- package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/config.json +2 -2
- package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/package.json +1 -1
- package/plugins/@vcmap-show-case/vector-properties-example/index.js +40 -0
- package/plugins/@vcmap-show-case/vector-properties-example/package.json +5 -0
- package/plugins/@vcmap-show-case/vector-properties-example/vectorPropertiesExample.vue +128 -0
- package/plugins/package.json +6 -2
- package/src/application/VcsAttributions.vue +27 -20
- package/src/components/form-inputs-controls/VcsChipArrayInput.vue +290 -0
- package/src/components/form-inputs-controls/VcsSlider.vue +1 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +9 -3
- package/src/components/icons/2DAreaIcon.vue +2 -17
- package/src/components/icons/2DDistanceIcon.vue +0 -3
- package/src/components/icons/3DAreaIcon.vue +2 -17
- package/src/components/icons/3DDistanceIcon.vue +0 -3
- package/src/components/icons/3DHeightIcon.vue +0 -3
- package/src/components/icons/AngleIcon.vue +0 -1
- package/src/components/icons/AssociationsIcon.vue +1 -3
- package/src/components/icons/AxisIcon.vue +0 -4
- package/src/components/icons/BoundingBoxIcon.vue +1 -4
- package/src/components/icons/CheckboxIcon.vue +0 -2
- package/src/components/icons/CheckboxIndeterminateIcon.vue +1 -5
- package/src/components/icons/CircleIcon.vue +1 -6
- package/src/components/icons/ClippingHorizontalIcon.vue +0 -1
- package/src/components/icons/ClippingIcon.vue +0 -1
- package/src/components/icons/ClippingVerticalIcon.vue +0 -1
- package/src/components/icons/ColorPickerIcon.vue +0 -1
- package/src/components/icons/ColorSwatchIcon.vue +0 -2
- package/src/components/icons/CommentIcon.vue +0 -1
- package/src/components/icons/CompassIcon.vue +0 -2
- package/src/components/icons/ComponentsIcon.vue +0 -1
- package/src/components/icons/ConeIcon.vue +1 -4
- package/src/components/icons/DimensionsHouseIcon.vue +0 -2
- package/src/components/icons/EditIcon.vue +0 -1
- package/src/components/icons/EditVerticesIcon.vue +0 -4
- package/src/components/icons/ElevationProfileIcon.vue +1 -13
- package/src/components/icons/ExportAreaIcon.vue +0 -1
- package/src/components/icons/ExportFlightIcon.vue +0 -1
- package/src/components/icons/ExportIcon.vue +12 -8
- package/src/components/icons/ExternalLinkIcon.vue +0 -2
- package/src/components/icons/FastForwardIcon.vue +0 -1
- package/src/components/icons/FilterIcon.vue +0 -1
- package/src/components/icons/GlobeNatureIcon.vue +0 -3
- package/src/components/icons/GroundIcon.vue +0 -1
- package/src/components/icons/HealthCareIndustriesIcon.vue +1 -11
- package/src/components/icons/HideIcon.vue +0 -1
- package/src/components/icons/HomePointIcon.vue +0 -1
- package/src/components/icons/HospitalsIcon.vue +1 -20
- package/src/components/icons/HouseIcon.vue +3 -13
- package/src/components/icons/ImportIcon.vue +6 -14
- package/src/components/icons/InfoIcon.vue +0 -2
- package/src/components/icons/KebabIcon.vue +1 -9
- package/src/components/icons/LabelIcon.vue +0 -2
- package/src/components/icons/LayersIcon.vue +1 -9
- package/src/components/icons/LegendIcon.vue +0 -1
- package/src/components/icons/LineIcon.vue +0 -2
- package/src/components/icons/LinkIcon.vue +0 -1
- package/src/components/icons/LogoutIcon.vue +0 -1
- package/src/components/icons/MapIcon.vue +0 -2
- package/src/components/icons/MenuIcon.vue +1 -5
- package/src/components/icons/MinusIcon.vue +0 -2
- package/src/components/icons/ObjectSelectIcon.vue +0 -2
- package/src/components/icons/ObliqueViewIcon.vue +0 -1
- package/src/components/icons/PdfIcon.vue +0 -1
- package/src/components/icons/PedestrianIcon.vue +0 -1
- package/src/components/icons/PenIcon.vue +0 -1
- package/src/components/icons/PlayCircleIcon.vue +1 -8
- package/src/components/icons/PlusIcon.vue +0 -2
- package/src/components/icons/PoiIcon.vue +0 -1
- package/src/components/icons/PointIcon.vue +2 -6
- package/src/components/icons/PointSelectIcon.vue +0 -1
- package/src/components/icons/PresentationModeIcon.vue +0 -1
- package/src/components/icons/ProgressIcon.vue +1 -1
- package/src/components/icons/QueryIcon.vue +0 -1
- package/src/components/icons/RectangleIcon.vue +1 -6
- package/src/components/icons/ReturnIcon.vue +0 -1
- package/src/components/icons/RewindIcon.vue +0 -1
- package/src/components/icons/RotateLeftIcon.vue +0 -1
- package/src/components/icons/RotateRightIcon.vue +0 -1
- package/src/components/icons/ScreenshotIcon.vue +1 -6
- package/src/components/icons/SearchIcon.vue +0 -1
- package/src/components/icons/ShadowIcon.vue +0 -2
- package/src/components/icons/ShapesIcon.vue +1 -4
- package/src/components/icons/ShareIcon.vue +0 -1
- package/src/components/icons/SimpleCircleFilledIcon.vue +0 -1
- package/src/components/icons/SimpleCircleHalfFilledIcon.vue +0 -1
- package/src/components/icons/SimpleCircleOutlinedIcon.vue +1 -7
- package/src/components/icons/SkipPreviousIcon.vue +1 -6
- package/src/components/icons/SplitViewIcon.vue +0 -1
- package/src/components/icons/TextStyleIcon.vue +0 -3
- package/src/components/icons/ThreeDimensionsIcon.vue +0 -1
- package/src/components/icons/ToolsIcon.vue +0 -1
- package/src/components/icons/TouchIcon.vue +0 -1
- package/src/components/icons/TriangleIcon.vue +0 -3
- package/src/components/icons/TwoDimensionsIcon.vue +0 -2
- package/src/components/icons/UploadIcon.vue +0 -1
- package/src/components/icons/UserProfileIcon.vue +0 -1
- package/src/components/icons/UserShareIcon.vue +0 -1
- package/src/components/icons/ViewpointFlightIcon.vue +0 -1
- package/src/components/icons/ViewpointIcon.vue +0 -1
- package/src/components/icons/Viewshed360Icon.vue +0 -1
- package/src/components/icons/ViewshedConeIcon.vue +0 -1
- package/src/components/icons/ViewshedIcon.vue +0 -1
- package/src/components/icons/WalkingIcon.vue +0 -1
- package/src/components/icons/WallIcon.vue +1 -4
- package/src/components/icons/WandIcon.vue +22 -70
- package/src/components/lists/VcsList.vue +18 -12
- package/src/components/plugins/AbstractConfigEditor.vue +84 -0
- package/src/components/style/VcsImageSelector.vue +6 -5
- package/src/components/style/VcsTextSelector.vue +1 -1
- package/src/components/tables/VcsDataTable.vue +1 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +780 -0
- package/src/components/vector-properties/composables.js +93 -0
- package/src/contentTree/contentTreeCollection.js +30 -9
- package/src/i18n/de.js +41 -7
- package/src/i18n/en.js +39 -5
- package/src/i18n/i18nCollection.js +19 -65
- package/src/manager/buttonManager.js +4 -0
- package/src/manager/collectionManager/collectionComponent.js +1 -1
- package/src/manager/contextMenu/contextMenuManager.js +2 -0
- package/src/pluginHelper.js +57 -17
- package/src/vcsUiApp.js +25 -30
- package/src/vuePlugins/i18n.js +0 -8
- package/dist/assets/cesium/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
- package/dist/assets/cesium/Workers/ArcType-2d9abbbc.js +0 -37
- package/dist/assets/cesium/Workers/AttributeCompression-f9f6c717.js +0 -716
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-4140c51f.js +0 -258
- package/dist/assets/cesium/Workers/BoundingRectangle-c714b156.js +0 -369
- package/dist/assets/cesium/Workers/BoxGeometry-6f3da43d.js +0 -884
- package/dist/assets/cesium/Workers/Check-6ede7e26.js +0 -290
- package/dist/assets/cesium/Workers/Color-8a565ff2.js +0 -2262
- package/dist/assets/cesium/Workers/ComponentDatatype-cf1fa08e.js +0 -341
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4b4d4096.js +0 -132
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-7b94502b.js +0 -498
- package/dist/assets/cesium/Workers/CylinderGeometry-ca070b87.js +0 -467
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
- package/dist/assets/cesium/Workers/EllipseGeometry-122e51fa.js +0 -1304
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-4d326efc.js +0 -366
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-16cc2bd7.js +0 -443
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
- package/dist/assets/cesium/Workers/EllipsoidGeometry-cb148ca2.js +0 -637
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-0fa10c79.js +0 -454
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-6dd1b7af.js +0 -373
- package/dist/assets/cesium/Workers/EncodedCartesian3-57415c8a.js +0 -171
- package/dist/assets/cesium/Workers/FrustumGeometry-ee73037c.js +0 -2540
- package/dist/assets/cesium/Workers/GeometryAttribute-ff5b4fb1.js +0 -619
- package/dist/assets/cesium/Workers/GeometryAttributes-ad136444.js +0 -91
- package/dist/assets/cesium/Workers/GeometryInstance-34d9e21e.js +0 -121
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
- package/dist/assets/cesium/Workers/GeometryPipeline-1f8fbf05.js +0 -3690
- package/dist/assets/cesium/Workers/IndexDatatype-2643aa47.js +0 -200
- package/dist/assets/cesium/Workers/IntersectionTests-70d39ba9.js +0 -1836
- package/dist/assets/cesium/Workers/Math-0a2ac845.js +0 -1340
- package/dist/assets/cesium/Workers/Matrix2-e1298525.js +0 -7086
- package/dist/assets/cesium/Workers/Matrix3-41c58dde.js +0 -4283
- package/dist/assets/cesium/Workers/OrientedBoundingBox-159cf1d6.js +0 -1259
- package/dist/assets/cesium/Workers/Plane-4c3d403b.js +0 -309
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-076a5d25.js +0 -1074
- package/dist/assets/cesium/Workers/PolygonPipeline-b9f2810a.js +0 -1344
- package/dist/assets/cesium/Workers/PolylinePipeline-639192e0.js +0 -573
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-b73549fb.js +0 -781
- package/dist/assets/cesium/Workers/PrimitivePipeline-10ede1b6.js +0 -966
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-c35a7356.js +0 -280
- package/dist/assets/cesium/Workers/RuntimeError-ef395448.js +0 -68
- package/dist/assets/cesium/Workers/TerrainEncoding-668d242f.js +0 -1227
- package/dist/assets/cesium/Workers/Transforms-a2a85221.js +0 -14712
- package/dist/assets/cesium/Workers/VertexFormat-030f11ff.js +0 -312
- package/dist/assets/cesium/Workers/WallGeometryLibrary-1938bf0d.js +0 -211
- package/dist/assets/cesium/Workers/WebGLConstants-0b1ce7ba.js +0 -620
- package/dist/assets/cesium/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -1363
- package/dist/assets/cesium/Workers/combine-d9581036.js +0 -82
- package/dist/assets/cesium/Workers/defaultValue-fe22d8c0.js +0 -51
- package/dist/assets/index-cb070eff.js +0 -1
- package/plugins/@vcmap/create-link/fallbackCreateLink.vue +0 -76
- package/plugins/@vcmap/create-link/index.js +0 -95
- package/plugins/@vcmap/create-link/package.json +0 -6
- package/plugins/@vcmap/search-nominatim/LICENSE.md +0 -13
- package/plugins/@vcmap/search-nominatim/README.md +0 -3
- package/plugins/@vcmap/search-nominatim/config.json +0 -3
- package/plugins/@vcmap/search-nominatim/index.js +0 -29
- package/plugins/@vcmap/search-nominatim/nominatim.js +0 -175
- package/plugins/@vcmap/search-nominatim/package.json +0 -9
- /package/dist/assets/{vue.30740e.js → vue.5d696e.js} +0 -0
- /package/dist/assets/{vuetify.946bd8.css → vuetify.f0a769.css} +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ModulesListComponent.vue +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/README.md +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/de.json +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/en.json +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/index.js +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/README.md +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/SimpleGraphComponent.vue +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/index.js +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/simpleGraphView.js +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/README.md +0 -0
- /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/index.js +0 -0
@@ -0,0 +1,1477 @@
|
|
1
|
+
/**
|
2
|
+
* @license
|
3
|
+
* Cesium - https://github.com/CesiumGS/cesium
|
4
|
+
* Version 1.109.3
|
5
|
+
*
|
6
|
+
* Copyright 2011-2022 Cesium Contributors
|
7
|
+
*
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
9
|
+
* you may not use this file except in compliance with the License.
|
10
|
+
* You may obtain a copy of the License at
|
11
|
+
*
|
12
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
13
|
+
*
|
14
|
+
* Unless required by applicable law or agreed to in writing, software
|
15
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
16
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
17
|
+
* See the License for the specific language governing permissions and
|
18
|
+
* limitations under the License.
|
19
|
+
*
|
20
|
+
* Columbus View (Pat. Pend.)
|
21
|
+
*
|
22
|
+
* Portions licensed separately.
|
23
|
+
* See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
|
24
|
+
*/
|
25
|
+
|
26
|
+
import {
|
27
|
+
VertexFormat_default
|
28
|
+
} from "./chunk-QMEMZIJI.js";
|
29
|
+
import {
|
30
|
+
Plane_default
|
31
|
+
} from "./chunk-OYFCF4PL.js";
|
32
|
+
import {
|
33
|
+
GeometryAttributes_default
|
34
|
+
} from "./chunk-EW2GWJYB.js";
|
35
|
+
import {
|
36
|
+
GeometryAttribute_default,
|
37
|
+
Geometry_default,
|
38
|
+
PrimitiveType_default
|
39
|
+
} from "./chunk-X4SU25DT.js";
|
40
|
+
import {
|
41
|
+
BoundingSphere_default,
|
42
|
+
Intersect_default,
|
43
|
+
Quaternion_default
|
44
|
+
} from "./chunk-PFQBCKBM.js";
|
45
|
+
import {
|
46
|
+
Cartesian4_default,
|
47
|
+
Matrix4_default
|
48
|
+
} from "./chunk-DUHWWBQQ.js";
|
49
|
+
import {
|
50
|
+
ComponentDatatype_default
|
51
|
+
} from "./chunk-LLUNNUJV.js";
|
52
|
+
import {
|
53
|
+
Cartesian3_default,
|
54
|
+
Matrix3_default
|
55
|
+
} from "./chunk-PCJWUS4M.js";
|
56
|
+
import {
|
57
|
+
Math_default
|
58
|
+
} from "./chunk-N3JIFFX2.js";
|
59
|
+
import {
|
60
|
+
defaultValue_default
|
61
|
+
} from "./chunk-WXTV4ATB.js";
|
62
|
+
import {
|
63
|
+
Check_default,
|
64
|
+
DeveloperError_default
|
65
|
+
} from "./chunk-4MFFIWUA.js";
|
66
|
+
import {
|
67
|
+
defined_default
|
68
|
+
} from "./chunk-6BTKZDRG.js";
|
69
|
+
|
70
|
+
// packages/engine/Source/Core/CullingVolume.js
|
71
|
+
function CullingVolume(planes) {
|
72
|
+
this.planes = defaultValue_default(planes, []);
|
73
|
+
}
|
74
|
+
var faces = [new Cartesian3_default(), new Cartesian3_default(), new Cartesian3_default()];
|
75
|
+
Cartesian3_default.clone(Cartesian3_default.UNIT_X, faces[0]);
|
76
|
+
Cartesian3_default.clone(Cartesian3_default.UNIT_Y, faces[1]);
|
77
|
+
Cartesian3_default.clone(Cartesian3_default.UNIT_Z, faces[2]);
|
78
|
+
var scratchPlaneCenter = new Cartesian3_default();
|
79
|
+
var scratchPlaneNormal = new Cartesian3_default();
|
80
|
+
var scratchPlane = new Plane_default(new Cartesian3_default(1, 0, 0), 0);
|
81
|
+
CullingVolume.fromBoundingSphere = function(boundingSphere, result) {
|
82
|
+
if (!defined_default(boundingSphere)) {
|
83
|
+
throw new DeveloperError_default("boundingSphere is required.");
|
84
|
+
}
|
85
|
+
if (!defined_default(result)) {
|
86
|
+
result = new CullingVolume();
|
87
|
+
}
|
88
|
+
const length = faces.length;
|
89
|
+
const planes = result.planes;
|
90
|
+
planes.length = 2 * length;
|
91
|
+
const center = boundingSphere.center;
|
92
|
+
const radius = boundingSphere.radius;
|
93
|
+
let planeIndex = 0;
|
94
|
+
for (let i = 0; i < length; ++i) {
|
95
|
+
const faceNormal = faces[i];
|
96
|
+
let plane0 = planes[planeIndex];
|
97
|
+
let plane1 = planes[planeIndex + 1];
|
98
|
+
if (!defined_default(plane0)) {
|
99
|
+
plane0 = planes[planeIndex] = new Cartesian4_default();
|
100
|
+
}
|
101
|
+
if (!defined_default(plane1)) {
|
102
|
+
plane1 = planes[planeIndex + 1] = new Cartesian4_default();
|
103
|
+
}
|
104
|
+
Cartesian3_default.multiplyByScalar(faceNormal, -radius, scratchPlaneCenter);
|
105
|
+
Cartesian3_default.add(center, scratchPlaneCenter, scratchPlaneCenter);
|
106
|
+
plane0.x = faceNormal.x;
|
107
|
+
plane0.y = faceNormal.y;
|
108
|
+
plane0.z = faceNormal.z;
|
109
|
+
plane0.w = -Cartesian3_default.dot(faceNormal, scratchPlaneCenter);
|
110
|
+
Cartesian3_default.multiplyByScalar(faceNormal, radius, scratchPlaneCenter);
|
111
|
+
Cartesian3_default.add(center, scratchPlaneCenter, scratchPlaneCenter);
|
112
|
+
plane1.x = -faceNormal.x;
|
113
|
+
plane1.y = -faceNormal.y;
|
114
|
+
plane1.z = -faceNormal.z;
|
115
|
+
plane1.w = -Cartesian3_default.dot(
|
116
|
+
Cartesian3_default.negate(faceNormal, scratchPlaneNormal),
|
117
|
+
scratchPlaneCenter
|
118
|
+
);
|
119
|
+
planeIndex += 2;
|
120
|
+
}
|
121
|
+
return result;
|
122
|
+
};
|
123
|
+
CullingVolume.prototype.computeVisibility = function(boundingVolume) {
|
124
|
+
if (!defined_default(boundingVolume)) {
|
125
|
+
throw new DeveloperError_default("boundingVolume is required.");
|
126
|
+
}
|
127
|
+
const planes = this.planes;
|
128
|
+
let intersecting = false;
|
129
|
+
for (let k = 0, len = planes.length; k < len; ++k) {
|
130
|
+
const result = boundingVolume.intersectPlane(
|
131
|
+
Plane_default.fromCartesian4(planes[k], scratchPlane)
|
132
|
+
);
|
133
|
+
if (result === Intersect_default.OUTSIDE) {
|
134
|
+
return Intersect_default.OUTSIDE;
|
135
|
+
} else if (result === Intersect_default.INTERSECTING) {
|
136
|
+
intersecting = true;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
return intersecting ? Intersect_default.INTERSECTING : Intersect_default.INSIDE;
|
140
|
+
};
|
141
|
+
CullingVolume.prototype.computeVisibilityWithPlaneMask = function(boundingVolume, parentPlaneMask) {
|
142
|
+
if (!defined_default(boundingVolume)) {
|
143
|
+
throw new DeveloperError_default("boundingVolume is required.");
|
144
|
+
}
|
145
|
+
if (!defined_default(parentPlaneMask)) {
|
146
|
+
throw new DeveloperError_default("parentPlaneMask is required.");
|
147
|
+
}
|
148
|
+
if (parentPlaneMask === CullingVolume.MASK_OUTSIDE || parentPlaneMask === CullingVolume.MASK_INSIDE) {
|
149
|
+
return parentPlaneMask;
|
150
|
+
}
|
151
|
+
let mask = CullingVolume.MASK_INSIDE;
|
152
|
+
const planes = this.planes;
|
153
|
+
for (let k = 0, len = planes.length; k < len; ++k) {
|
154
|
+
const flag = k < 31 ? 1 << k : 0;
|
155
|
+
if (k < 31 && (parentPlaneMask & flag) === 0) {
|
156
|
+
continue;
|
157
|
+
}
|
158
|
+
const result = boundingVolume.intersectPlane(
|
159
|
+
Plane_default.fromCartesian4(planes[k], scratchPlane)
|
160
|
+
);
|
161
|
+
if (result === Intersect_default.OUTSIDE) {
|
162
|
+
return CullingVolume.MASK_OUTSIDE;
|
163
|
+
} else if (result === Intersect_default.INTERSECTING) {
|
164
|
+
mask |= flag;
|
165
|
+
}
|
166
|
+
}
|
167
|
+
return mask;
|
168
|
+
};
|
169
|
+
CullingVolume.MASK_OUTSIDE = 4294967295;
|
170
|
+
CullingVolume.MASK_INSIDE = 0;
|
171
|
+
CullingVolume.MASK_INDETERMINATE = 2147483647;
|
172
|
+
var CullingVolume_default = CullingVolume;
|
173
|
+
|
174
|
+
// packages/engine/Source/Core/OrthographicOffCenterFrustum.js
|
175
|
+
function OrthographicOffCenterFrustum(options) {
|
176
|
+
options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
|
177
|
+
this.left = options.left;
|
178
|
+
this._left = void 0;
|
179
|
+
this.right = options.right;
|
180
|
+
this._right = void 0;
|
181
|
+
this.top = options.top;
|
182
|
+
this._top = void 0;
|
183
|
+
this.bottom = options.bottom;
|
184
|
+
this._bottom = void 0;
|
185
|
+
this.near = defaultValue_default(options.near, 1);
|
186
|
+
this._near = this.near;
|
187
|
+
this.far = defaultValue_default(options.far, 5e8);
|
188
|
+
this._far = this.far;
|
189
|
+
this._cullingVolume = new CullingVolume_default();
|
190
|
+
this._orthographicMatrix = new Matrix4_default();
|
191
|
+
}
|
192
|
+
function update(frustum) {
|
193
|
+
if (!defined_default(frustum.right) || !defined_default(frustum.left) || !defined_default(frustum.top) || !defined_default(frustum.bottom) || !defined_default(frustum.near) || !defined_default(frustum.far)) {
|
194
|
+
throw new DeveloperError_default(
|
195
|
+
"right, left, top, bottom, near, or far parameters are not set."
|
196
|
+
);
|
197
|
+
}
|
198
|
+
if (frustum.top !== frustum._top || frustum.bottom !== frustum._bottom || frustum.left !== frustum._left || frustum.right !== frustum._right || frustum.near !== frustum._near || frustum.far !== frustum._far) {
|
199
|
+
if (frustum.left > frustum.right) {
|
200
|
+
throw new DeveloperError_default("right must be greater than left.");
|
201
|
+
}
|
202
|
+
if (frustum.bottom > frustum.top) {
|
203
|
+
throw new DeveloperError_default("top must be greater than bottom.");
|
204
|
+
}
|
205
|
+
if (frustum.near <= 0 || frustum.near > frustum.far) {
|
206
|
+
throw new DeveloperError_default(
|
207
|
+
"near must be greater than zero and less than far."
|
208
|
+
);
|
209
|
+
}
|
210
|
+
frustum._left = frustum.left;
|
211
|
+
frustum._right = frustum.right;
|
212
|
+
frustum._top = frustum.top;
|
213
|
+
frustum._bottom = frustum.bottom;
|
214
|
+
frustum._near = frustum.near;
|
215
|
+
frustum._far = frustum.far;
|
216
|
+
frustum._orthographicMatrix = Matrix4_default.computeOrthographicOffCenter(
|
217
|
+
frustum.left,
|
218
|
+
frustum.right,
|
219
|
+
frustum.bottom,
|
220
|
+
frustum.top,
|
221
|
+
frustum.near,
|
222
|
+
frustum.far,
|
223
|
+
frustum._orthographicMatrix
|
224
|
+
);
|
225
|
+
}
|
226
|
+
}
|
227
|
+
Object.defineProperties(OrthographicOffCenterFrustum.prototype, {
|
228
|
+
/**
|
229
|
+
* Gets the orthographic projection matrix computed from the view frustum.
|
230
|
+
* @memberof OrthographicOffCenterFrustum.prototype
|
231
|
+
* @type {Matrix4}
|
232
|
+
* @readonly
|
233
|
+
*/
|
234
|
+
projectionMatrix: {
|
235
|
+
get: function() {
|
236
|
+
update(this);
|
237
|
+
return this._orthographicMatrix;
|
238
|
+
}
|
239
|
+
}
|
240
|
+
});
|
241
|
+
var getPlanesRight = new Cartesian3_default();
|
242
|
+
var getPlanesNearCenter = new Cartesian3_default();
|
243
|
+
var getPlanesPoint = new Cartesian3_default();
|
244
|
+
var negateScratch = new Cartesian3_default();
|
245
|
+
OrthographicOffCenterFrustum.prototype.computeCullingVolume = function(position, direction, up) {
|
246
|
+
if (!defined_default(position)) {
|
247
|
+
throw new DeveloperError_default("position is required.");
|
248
|
+
}
|
249
|
+
if (!defined_default(direction)) {
|
250
|
+
throw new DeveloperError_default("direction is required.");
|
251
|
+
}
|
252
|
+
if (!defined_default(up)) {
|
253
|
+
throw new DeveloperError_default("up is required.");
|
254
|
+
}
|
255
|
+
const planes = this._cullingVolume.planes;
|
256
|
+
const t = this.top;
|
257
|
+
const b = this.bottom;
|
258
|
+
const r = this.right;
|
259
|
+
const l = this.left;
|
260
|
+
const n = this.near;
|
261
|
+
const f = this.far;
|
262
|
+
const right = Cartesian3_default.cross(direction, up, getPlanesRight);
|
263
|
+
Cartesian3_default.normalize(right, right);
|
264
|
+
const nearCenter = getPlanesNearCenter;
|
265
|
+
Cartesian3_default.multiplyByScalar(direction, n, nearCenter);
|
266
|
+
Cartesian3_default.add(position, nearCenter, nearCenter);
|
267
|
+
const point = getPlanesPoint;
|
268
|
+
Cartesian3_default.multiplyByScalar(right, l, point);
|
269
|
+
Cartesian3_default.add(nearCenter, point, point);
|
270
|
+
let plane = planes[0];
|
271
|
+
if (!defined_default(plane)) {
|
272
|
+
plane = planes[0] = new Cartesian4_default();
|
273
|
+
}
|
274
|
+
plane.x = right.x;
|
275
|
+
plane.y = right.y;
|
276
|
+
plane.z = right.z;
|
277
|
+
plane.w = -Cartesian3_default.dot(right, point);
|
278
|
+
Cartesian3_default.multiplyByScalar(right, r, point);
|
279
|
+
Cartesian3_default.add(nearCenter, point, point);
|
280
|
+
plane = planes[1];
|
281
|
+
if (!defined_default(plane)) {
|
282
|
+
plane = planes[1] = new Cartesian4_default();
|
283
|
+
}
|
284
|
+
plane.x = -right.x;
|
285
|
+
plane.y = -right.y;
|
286
|
+
plane.z = -right.z;
|
287
|
+
plane.w = -Cartesian3_default.dot(Cartesian3_default.negate(right, negateScratch), point);
|
288
|
+
Cartesian3_default.multiplyByScalar(up, b, point);
|
289
|
+
Cartesian3_default.add(nearCenter, point, point);
|
290
|
+
plane = planes[2];
|
291
|
+
if (!defined_default(plane)) {
|
292
|
+
plane = planes[2] = new Cartesian4_default();
|
293
|
+
}
|
294
|
+
plane.x = up.x;
|
295
|
+
plane.y = up.y;
|
296
|
+
plane.z = up.z;
|
297
|
+
plane.w = -Cartesian3_default.dot(up, point);
|
298
|
+
Cartesian3_default.multiplyByScalar(up, t, point);
|
299
|
+
Cartesian3_default.add(nearCenter, point, point);
|
300
|
+
plane = planes[3];
|
301
|
+
if (!defined_default(plane)) {
|
302
|
+
plane = planes[3] = new Cartesian4_default();
|
303
|
+
}
|
304
|
+
plane.x = -up.x;
|
305
|
+
plane.y = -up.y;
|
306
|
+
plane.z = -up.z;
|
307
|
+
plane.w = -Cartesian3_default.dot(Cartesian3_default.negate(up, negateScratch), point);
|
308
|
+
plane = planes[4];
|
309
|
+
if (!defined_default(plane)) {
|
310
|
+
plane = planes[4] = new Cartesian4_default();
|
311
|
+
}
|
312
|
+
plane.x = direction.x;
|
313
|
+
plane.y = direction.y;
|
314
|
+
plane.z = direction.z;
|
315
|
+
plane.w = -Cartesian3_default.dot(direction, nearCenter);
|
316
|
+
Cartesian3_default.multiplyByScalar(direction, f, point);
|
317
|
+
Cartesian3_default.add(position, point, point);
|
318
|
+
plane = planes[5];
|
319
|
+
if (!defined_default(plane)) {
|
320
|
+
plane = planes[5] = new Cartesian4_default();
|
321
|
+
}
|
322
|
+
plane.x = -direction.x;
|
323
|
+
plane.y = -direction.y;
|
324
|
+
plane.z = -direction.z;
|
325
|
+
plane.w = -Cartesian3_default.dot(Cartesian3_default.negate(direction, negateScratch), point);
|
326
|
+
return this._cullingVolume;
|
327
|
+
};
|
328
|
+
OrthographicOffCenterFrustum.prototype.getPixelDimensions = function(drawingBufferWidth, drawingBufferHeight, distance, pixelRatio, result) {
|
329
|
+
update(this);
|
330
|
+
if (!defined_default(drawingBufferWidth) || !defined_default(drawingBufferHeight)) {
|
331
|
+
throw new DeveloperError_default(
|
332
|
+
"Both drawingBufferWidth and drawingBufferHeight are required."
|
333
|
+
);
|
334
|
+
}
|
335
|
+
if (drawingBufferWidth <= 0) {
|
336
|
+
throw new DeveloperError_default("drawingBufferWidth must be greater than zero.");
|
337
|
+
}
|
338
|
+
if (drawingBufferHeight <= 0) {
|
339
|
+
throw new DeveloperError_default("drawingBufferHeight must be greater than zero.");
|
340
|
+
}
|
341
|
+
if (!defined_default(distance)) {
|
342
|
+
throw new DeveloperError_default("distance is required.");
|
343
|
+
}
|
344
|
+
if (!defined_default(pixelRatio)) {
|
345
|
+
throw new DeveloperError_default("pixelRatio is required.");
|
346
|
+
}
|
347
|
+
if (pixelRatio <= 0) {
|
348
|
+
throw new DeveloperError_default("pixelRatio must be greater than zero.");
|
349
|
+
}
|
350
|
+
if (!defined_default(result)) {
|
351
|
+
throw new DeveloperError_default("A result object is required.");
|
352
|
+
}
|
353
|
+
const frustumWidth = this.right - this.left;
|
354
|
+
const frustumHeight = this.top - this.bottom;
|
355
|
+
const pixelWidth = pixelRatio * frustumWidth / drawingBufferWidth;
|
356
|
+
const pixelHeight = pixelRatio * frustumHeight / drawingBufferHeight;
|
357
|
+
result.x = pixelWidth;
|
358
|
+
result.y = pixelHeight;
|
359
|
+
return result;
|
360
|
+
};
|
361
|
+
OrthographicOffCenterFrustum.prototype.clone = function(result) {
|
362
|
+
if (!defined_default(result)) {
|
363
|
+
result = new OrthographicOffCenterFrustum();
|
364
|
+
}
|
365
|
+
result.left = this.left;
|
366
|
+
result.right = this.right;
|
367
|
+
result.top = this.top;
|
368
|
+
result.bottom = this.bottom;
|
369
|
+
result.near = this.near;
|
370
|
+
result.far = this.far;
|
371
|
+
result._left = void 0;
|
372
|
+
result._right = void 0;
|
373
|
+
result._top = void 0;
|
374
|
+
result._bottom = void 0;
|
375
|
+
result._near = void 0;
|
376
|
+
result._far = void 0;
|
377
|
+
return result;
|
378
|
+
};
|
379
|
+
OrthographicOffCenterFrustum.prototype.equals = function(other) {
|
380
|
+
return defined_default(other) && other instanceof OrthographicOffCenterFrustum && this.right === other.right && this.left === other.left && this.top === other.top && this.bottom === other.bottom && this.near === other.near && this.far === other.far;
|
381
|
+
};
|
382
|
+
OrthographicOffCenterFrustum.prototype.equalsEpsilon = function(other, relativeEpsilon, absoluteEpsilon) {
|
383
|
+
return other === this || defined_default(other) && other instanceof OrthographicOffCenterFrustum && Math_default.equalsEpsilon(
|
384
|
+
this.right,
|
385
|
+
other.right,
|
386
|
+
relativeEpsilon,
|
387
|
+
absoluteEpsilon
|
388
|
+
) && Math_default.equalsEpsilon(
|
389
|
+
this.left,
|
390
|
+
other.left,
|
391
|
+
relativeEpsilon,
|
392
|
+
absoluteEpsilon
|
393
|
+
) && Math_default.equalsEpsilon(
|
394
|
+
this.top,
|
395
|
+
other.top,
|
396
|
+
relativeEpsilon,
|
397
|
+
absoluteEpsilon
|
398
|
+
) && Math_default.equalsEpsilon(
|
399
|
+
this.bottom,
|
400
|
+
other.bottom,
|
401
|
+
relativeEpsilon,
|
402
|
+
absoluteEpsilon
|
403
|
+
) && Math_default.equalsEpsilon(
|
404
|
+
this.near,
|
405
|
+
other.near,
|
406
|
+
relativeEpsilon,
|
407
|
+
absoluteEpsilon
|
408
|
+
) && Math_default.equalsEpsilon(
|
409
|
+
this.far,
|
410
|
+
other.far,
|
411
|
+
relativeEpsilon,
|
412
|
+
absoluteEpsilon
|
413
|
+
);
|
414
|
+
};
|
415
|
+
var OrthographicOffCenterFrustum_default = OrthographicOffCenterFrustum;
|
416
|
+
|
417
|
+
// packages/engine/Source/Core/OrthographicFrustum.js
|
418
|
+
function OrthographicFrustum(options) {
|
419
|
+
options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
|
420
|
+
this._offCenterFrustum = new OrthographicOffCenterFrustum_default();
|
421
|
+
this.width = options.width;
|
422
|
+
this._width = void 0;
|
423
|
+
this.aspectRatio = options.aspectRatio;
|
424
|
+
this._aspectRatio = void 0;
|
425
|
+
this.near = defaultValue_default(options.near, 1);
|
426
|
+
this._near = this.near;
|
427
|
+
this.far = defaultValue_default(options.far, 5e8);
|
428
|
+
this._far = this.far;
|
429
|
+
}
|
430
|
+
OrthographicFrustum.packedLength = 4;
|
431
|
+
OrthographicFrustum.pack = function(value, array, startingIndex) {
|
432
|
+
Check_default.typeOf.object("value", value);
|
433
|
+
Check_default.defined("array", array);
|
434
|
+
startingIndex = defaultValue_default(startingIndex, 0);
|
435
|
+
array[startingIndex++] = value.width;
|
436
|
+
array[startingIndex++] = value.aspectRatio;
|
437
|
+
array[startingIndex++] = value.near;
|
438
|
+
array[startingIndex] = value.far;
|
439
|
+
return array;
|
440
|
+
};
|
441
|
+
OrthographicFrustum.unpack = function(array, startingIndex, result) {
|
442
|
+
Check_default.defined("array", array);
|
443
|
+
startingIndex = defaultValue_default(startingIndex, 0);
|
444
|
+
if (!defined_default(result)) {
|
445
|
+
result = new OrthographicFrustum();
|
446
|
+
}
|
447
|
+
result.width = array[startingIndex++];
|
448
|
+
result.aspectRatio = array[startingIndex++];
|
449
|
+
result.near = array[startingIndex++];
|
450
|
+
result.far = array[startingIndex];
|
451
|
+
return result;
|
452
|
+
};
|
453
|
+
function update2(frustum) {
|
454
|
+
if (!defined_default(frustum.width) || !defined_default(frustum.aspectRatio) || !defined_default(frustum.near) || !defined_default(frustum.far)) {
|
455
|
+
throw new DeveloperError_default(
|
456
|
+
"width, aspectRatio, near, or far parameters are not set."
|
457
|
+
);
|
458
|
+
}
|
459
|
+
const f = frustum._offCenterFrustum;
|
460
|
+
if (frustum.width !== frustum._width || frustum.aspectRatio !== frustum._aspectRatio || frustum.near !== frustum._near || frustum.far !== frustum._far) {
|
461
|
+
if (frustum.aspectRatio < 0) {
|
462
|
+
throw new DeveloperError_default("aspectRatio must be positive.");
|
463
|
+
}
|
464
|
+
if (frustum.near < 0 || frustum.near > frustum.far) {
|
465
|
+
throw new DeveloperError_default(
|
466
|
+
"near must be greater than zero and less than far."
|
467
|
+
);
|
468
|
+
}
|
469
|
+
frustum._aspectRatio = frustum.aspectRatio;
|
470
|
+
frustum._width = frustum.width;
|
471
|
+
frustum._near = frustum.near;
|
472
|
+
frustum._far = frustum.far;
|
473
|
+
const ratio = 1 / frustum.aspectRatio;
|
474
|
+
f.right = frustum.width * 0.5;
|
475
|
+
f.left = -f.right;
|
476
|
+
f.top = ratio * f.right;
|
477
|
+
f.bottom = -f.top;
|
478
|
+
f.near = frustum.near;
|
479
|
+
f.far = frustum.far;
|
480
|
+
}
|
481
|
+
}
|
482
|
+
Object.defineProperties(OrthographicFrustum.prototype, {
|
483
|
+
/**
|
484
|
+
* Gets the orthographic projection matrix computed from the view frustum.
|
485
|
+
* @memberof OrthographicFrustum.prototype
|
486
|
+
* @type {Matrix4}
|
487
|
+
* @readonly
|
488
|
+
*/
|
489
|
+
projectionMatrix: {
|
490
|
+
get: function() {
|
491
|
+
update2(this);
|
492
|
+
return this._offCenterFrustum.projectionMatrix;
|
493
|
+
}
|
494
|
+
},
|
495
|
+
/**
|
496
|
+
* Gets the orthographic projection matrix computed from the view frustum.
|
497
|
+
* @memberof OrthographicFrustum.prototype
|
498
|
+
* @type {OrthographicOffCenterFrustum}
|
499
|
+
* @readonly
|
500
|
+
* @private
|
501
|
+
*/
|
502
|
+
offCenterFrustum: {
|
503
|
+
get: function() {
|
504
|
+
update2(this);
|
505
|
+
return this._offCenterFrustum;
|
506
|
+
}
|
507
|
+
}
|
508
|
+
});
|
509
|
+
OrthographicFrustum.prototype.computeCullingVolume = function(position, direction, up) {
|
510
|
+
update2(this);
|
511
|
+
return this._offCenterFrustum.computeCullingVolume(position, direction, up);
|
512
|
+
};
|
513
|
+
OrthographicFrustum.prototype.getPixelDimensions = function(drawingBufferWidth, drawingBufferHeight, distance, pixelRatio, result) {
|
514
|
+
update2(this);
|
515
|
+
return this._offCenterFrustum.getPixelDimensions(
|
516
|
+
drawingBufferWidth,
|
517
|
+
drawingBufferHeight,
|
518
|
+
distance,
|
519
|
+
pixelRatio,
|
520
|
+
result
|
521
|
+
);
|
522
|
+
};
|
523
|
+
OrthographicFrustum.prototype.clone = function(result) {
|
524
|
+
if (!defined_default(result)) {
|
525
|
+
result = new OrthographicFrustum();
|
526
|
+
}
|
527
|
+
result.aspectRatio = this.aspectRatio;
|
528
|
+
result.width = this.width;
|
529
|
+
result.near = this.near;
|
530
|
+
result.far = this.far;
|
531
|
+
result._aspectRatio = void 0;
|
532
|
+
result._width = void 0;
|
533
|
+
result._near = void 0;
|
534
|
+
result._far = void 0;
|
535
|
+
this._offCenterFrustum.clone(result._offCenterFrustum);
|
536
|
+
return result;
|
537
|
+
};
|
538
|
+
OrthographicFrustum.prototype.equals = function(other) {
|
539
|
+
if (!defined_default(other) || !(other instanceof OrthographicFrustum)) {
|
540
|
+
return false;
|
541
|
+
}
|
542
|
+
update2(this);
|
543
|
+
update2(other);
|
544
|
+
return this.width === other.width && this.aspectRatio === other.aspectRatio && this._offCenterFrustum.equals(other._offCenterFrustum);
|
545
|
+
};
|
546
|
+
OrthographicFrustum.prototype.equalsEpsilon = function(other, relativeEpsilon, absoluteEpsilon) {
|
547
|
+
if (!defined_default(other) || !(other instanceof OrthographicFrustum)) {
|
548
|
+
return false;
|
549
|
+
}
|
550
|
+
update2(this);
|
551
|
+
update2(other);
|
552
|
+
return Math_default.equalsEpsilon(
|
553
|
+
this.width,
|
554
|
+
other.width,
|
555
|
+
relativeEpsilon,
|
556
|
+
absoluteEpsilon
|
557
|
+
) && Math_default.equalsEpsilon(
|
558
|
+
this.aspectRatio,
|
559
|
+
other.aspectRatio,
|
560
|
+
relativeEpsilon,
|
561
|
+
absoluteEpsilon
|
562
|
+
) && this._offCenterFrustum.equalsEpsilon(
|
563
|
+
other._offCenterFrustum,
|
564
|
+
relativeEpsilon,
|
565
|
+
absoluteEpsilon
|
566
|
+
);
|
567
|
+
};
|
568
|
+
var OrthographicFrustum_default = OrthographicFrustum;
|
569
|
+
|
570
|
+
// packages/engine/Source/Core/PerspectiveOffCenterFrustum.js
|
571
|
+
function PerspectiveOffCenterFrustum(options) {
|
572
|
+
options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
|
573
|
+
this.left = options.left;
|
574
|
+
this._left = void 0;
|
575
|
+
this.right = options.right;
|
576
|
+
this._right = void 0;
|
577
|
+
this.top = options.top;
|
578
|
+
this._top = void 0;
|
579
|
+
this.bottom = options.bottom;
|
580
|
+
this._bottom = void 0;
|
581
|
+
this.near = defaultValue_default(options.near, 1);
|
582
|
+
this._near = this.near;
|
583
|
+
this.far = defaultValue_default(options.far, 5e8);
|
584
|
+
this._far = this.far;
|
585
|
+
this._cullingVolume = new CullingVolume_default();
|
586
|
+
this._perspectiveMatrix = new Matrix4_default();
|
587
|
+
this._infinitePerspective = new Matrix4_default();
|
588
|
+
}
|
589
|
+
function update3(frustum) {
|
590
|
+
if (!defined_default(frustum.right) || !defined_default(frustum.left) || !defined_default(frustum.top) || !defined_default(frustum.bottom) || !defined_default(frustum.near) || !defined_default(frustum.far)) {
|
591
|
+
throw new DeveloperError_default(
|
592
|
+
"right, left, top, bottom, near, or far parameters are not set."
|
593
|
+
);
|
594
|
+
}
|
595
|
+
const t = frustum.top;
|
596
|
+
const b = frustum.bottom;
|
597
|
+
const r = frustum.right;
|
598
|
+
const l = frustum.left;
|
599
|
+
const n = frustum.near;
|
600
|
+
const f = frustum.far;
|
601
|
+
if (t !== frustum._top || b !== frustum._bottom || l !== frustum._left || r !== frustum._right || n !== frustum._near || f !== frustum._far) {
|
602
|
+
if (frustum.near <= 0 || frustum.near > frustum.far) {
|
603
|
+
throw new DeveloperError_default(
|
604
|
+
"near must be greater than zero and less than far."
|
605
|
+
);
|
606
|
+
}
|
607
|
+
frustum._left = l;
|
608
|
+
frustum._right = r;
|
609
|
+
frustum._top = t;
|
610
|
+
frustum._bottom = b;
|
611
|
+
frustum._near = n;
|
612
|
+
frustum._far = f;
|
613
|
+
frustum._perspectiveMatrix = Matrix4_default.computePerspectiveOffCenter(
|
614
|
+
l,
|
615
|
+
r,
|
616
|
+
b,
|
617
|
+
t,
|
618
|
+
n,
|
619
|
+
f,
|
620
|
+
frustum._perspectiveMatrix
|
621
|
+
);
|
622
|
+
frustum._infinitePerspective = Matrix4_default.computeInfinitePerspectiveOffCenter(
|
623
|
+
l,
|
624
|
+
r,
|
625
|
+
b,
|
626
|
+
t,
|
627
|
+
n,
|
628
|
+
frustum._infinitePerspective
|
629
|
+
);
|
630
|
+
}
|
631
|
+
}
|
632
|
+
Object.defineProperties(PerspectiveOffCenterFrustum.prototype, {
|
633
|
+
/**
|
634
|
+
* Gets the perspective projection matrix computed from the view frustum.
|
635
|
+
* @memberof PerspectiveOffCenterFrustum.prototype
|
636
|
+
* @type {Matrix4}
|
637
|
+
* @readonly
|
638
|
+
*
|
639
|
+
* @see PerspectiveOffCenterFrustum#infiniteProjectionMatrix
|
640
|
+
*/
|
641
|
+
projectionMatrix: {
|
642
|
+
get: function() {
|
643
|
+
update3(this);
|
644
|
+
return this._perspectiveMatrix;
|
645
|
+
}
|
646
|
+
},
|
647
|
+
/**
|
648
|
+
* Gets the perspective projection matrix computed from the view frustum with an infinite far plane.
|
649
|
+
* @memberof PerspectiveOffCenterFrustum.prototype
|
650
|
+
* @type {Matrix4}
|
651
|
+
* @readonly
|
652
|
+
*
|
653
|
+
* @see PerspectiveOffCenterFrustum#projectionMatrix
|
654
|
+
*/
|
655
|
+
infiniteProjectionMatrix: {
|
656
|
+
get: function() {
|
657
|
+
update3(this);
|
658
|
+
return this._infinitePerspective;
|
659
|
+
}
|
660
|
+
}
|
661
|
+
});
|
662
|
+
var getPlanesRight2 = new Cartesian3_default();
|
663
|
+
var getPlanesNearCenter2 = new Cartesian3_default();
|
664
|
+
var getPlanesFarCenter = new Cartesian3_default();
|
665
|
+
var getPlanesNormal = new Cartesian3_default();
|
666
|
+
PerspectiveOffCenterFrustum.prototype.computeCullingVolume = function(position, direction, up) {
|
667
|
+
if (!defined_default(position)) {
|
668
|
+
throw new DeveloperError_default("position is required.");
|
669
|
+
}
|
670
|
+
if (!defined_default(direction)) {
|
671
|
+
throw new DeveloperError_default("direction is required.");
|
672
|
+
}
|
673
|
+
if (!defined_default(up)) {
|
674
|
+
throw new DeveloperError_default("up is required.");
|
675
|
+
}
|
676
|
+
const planes = this._cullingVolume.planes;
|
677
|
+
const t = this.top;
|
678
|
+
const b = this.bottom;
|
679
|
+
const r = this.right;
|
680
|
+
const l = this.left;
|
681
|
+
const n = this.near;
|
682
|
+
const f = this.far;
|
683
|
+
const right = Cartesian3_default.cross(direction, up, getPlanesRight2);
|
684
|
+
const nearCenter = getPlanesNearCenter2;
|
685
|
+
Cartesian3_default.multiplyByScalar(direction, n, nearCenter);
|
686
|
+
Cartesian3_default.add(position, nearCenter, nearCenter);
|
687
|
+
const farCenter = getPlanesFarCenter;
|
688
|
+
Cartesian3_default.multiplyByScalar(direction, f, farCenter);
|
689
|
+
Cartesian3_default.add(position, farCenter, farCenter);
|
690
|
+
const normal = getPlanesNormal;
|
691
|
+
Cartesian3_default.multiplyByScalar(right, l, normal);
|
692
|
+
Cartesian3_default.add(nearCenter, normal, normal);
|
693
|
+
Cartesian3_default.subtract(normal, position, normal);
|
694
|
+
Cartesian3_default.normalize(normal, normal);
|
695
|
+
Cartesian3_default.cross(normal, up, normal);
|
696
|
+
Cartesian3_default.normalize(normal, normal);
|
697
|
+
let plane = planes[0];
|
698
|
+
if (!defined_default(plane)) {
|
699
|
+
plane = planes[0] = new Cartesian4_default();
|
700
|
+
}
|
701
|
+
plane.x = normal.x;
|
702
|
+
plane.y = normal.y;
|
703
|
+
plane.z = normal.z;
|
704
|
+
plane.w = -Cartesian3_default.dot(normal, position);
|
705
|
+
Cartesian3_default.multiplyByScalar(right, r, normal);
|
706
|
+
Cartesian3_default.add(nearCenter, normal, normal);
|
707
|
+
Cartesian3_default.subtract(normal, position, normal);
|
708
|
+
Cartesian3_default.cross(up, normal, normal);
|
709
|
+
Cartesian3_default.normalize(normal, normal);
|
710
|
+
plane = planes[1];
|
711
|
+
if (!defined_default(plane)) {
|
712
|
+
plane = planes[1] = new Cartesian4_default();
|
713
|
+
}
|
714
|
+
plane.x = normal.x;
|
715
|
+
plane.y = normal.y;
|
716
|
+
plane.z = normal.z;
|
717
|
+
plane.w = -Cartesian3_default.dot(normal, position);
|
718
|
+
Cartesian3_default.multiplyByScalar(up, b, normal);
|
719
|
+
Cartesian3_default.add(nearCenter, normal, normal);
|
720
|
+
Cartesian3_default.subtract(normal, position, normal);
|
721
|
+
Cartesian3_default.cross(right, normal, normal);
|
722
|
+
Cartesian3_default.normalize(normal, normal);
|
723
|
+
plane = planes[2];
|
724
|
+
if (!defined_default(plane)) {
|
725
|
+
plane = planes[2] = new Cartesian4_default();
|
726
|
+
}
|
727
|
+
plane.x = normal.x;
|
728
|
+
plane.y = normal.y;
|
729
|
+
plane.z = normal.z;
|
730
|
+
plane.w = -Cartesian3_default.dot(normal, position);
|
731
|
+
Cartesian3_default.multiplyByScalar(up, t, normal);
|
732
|
+
Cartesian3_default.add(nearCenter, normal, normal);
|
733
|
+
Cartesian3_default.subtract(normal, position, normal);
|
734
|
+
Cartesian3_default.cross(normal, right, normal);
|
735
|
+
Cartesian3_default.normalize(normal, normal);
|
736
|
+
plane = planes[3];
|
737
|
+
if (!defined_default(plane)) {
|
738
|
+
plane = planes[3] = new Cartesian4_default();
|
739
|
+
}
|
740
|
+
plane.x = normal.x;
|
741
|
+
plane.y = normal.y;
|
742
|
+
plane.z = normal.z;
|
743
|
+
plane.w = -Cartesian3_default.dot(normal, position);
|
744
|
+
plane = planes[4];
|
745
|
+
if (!defined_default(plane)) {
|
746
|
+
plane = planes[4] = new Cartesian4_default();
|
747
|
+
}
|
748
|
+
plane.x = direction.x;
|
749
|
+
plane.y = direction.y;
|
750
|
+
plane.z = direction.z;
|
751
|
+
plane.w = -Cartesian3_default.dot(direction, nearCenter);
|
752
|
+
Cartesian3_default.negate(direction, normal);
|
753
|
+
plane = planes[5];
|
754
|
+
if (!defined_default(plane)) {
|
755
|
+
plane = planes[5] = new Cartesian4_default();
|
756
|
+
}
|
757
|
+
plane.x = normal.x;
|
758
|
+
plane.y = normal.y;
|
759
|
+
plane.z = normal.z;
|
760
|
+
plane.w = -Cartesian3_default.dot(normal, farCenter);
|
761
|
+
return this._cullingVolume;
|
762
|
+
};
|
763
|
+
PerspectiveOffCenterFrustum.prototype.getPixelDimensions = function(drawingBufferWidth, drawingBufferHeight, distance, pixelRatio, result) {
|
764
|
+
update3(this);
|
765
|
+
if (!defined_default(drawingBufferWidth) || !defined_default(drawingBufferHeight)) {
|
766
|
+
throw new DeveloperError_default(
|
767
|
+
"Both drawingBufferWidth and drawingBufferHeight are required."
|
768
|
+
);
|
769
|
+
}
|
770
|
+
if (drawingBufferWidth <= 0) {
|
771
|
+
throw new DeveloperError_default("drawingBufferWidth must be greater than zero.");
|
772
|
+
}
|
773
|
+
if (drawingBufferHeight <= 0) {
|
774
|
+
throw new DeveloperError_default("drawingBufferHeight must be greater than zero.");
|
775
|
+
}
|
776
|
+
if (!defined_default(distance)) {
|
777
|
+
throw new DeveloperError_default("distance is required.");
|
778
|
+
}
|
779
|
+
if (!defined_default(pixelRatio)) {
|
780
|
+
throw new DeveloperError_default("pixelRatio is required");
|
781
|
+
}
|
782
|
+
if (pixelRatio <= 0) {
|
783
|
+
throw new DeveloperError_default("pixelRatio must be greater than zero.");
|
784
|
+
}
|
785
|
+
if (!defined_default(result)) {
|
786
|
+
throw new DeveloperError_default("A result object is required.");
|
787
|
+
}
|
788
|
+
const inverseNear = 1 / this.near;
|
789
|
+
let tanTheta = this.top * inverseNear;
|
790
|
+
const pixelHeight = 2 * pixelRatio * distance * tanTheta / drawingBufferHeight;
|
791
|
+
tanTheta = this.right * inverseNear;
|
792
|
+
const pixelWidth = 2 * pixelRatio * distance * tanTheta / drawingBufferWidth;
|
793
|
+
result.x = pixelWidth;
|
794
|
+
result.y = pixelHeight;
|
795
|
+
return result;
|
796
|
+
};
|
797
|
+
PerspectiveOffCenterFrustum.prototype.clone = function(result) {
|
798
|
+
if (!defined_default(result)) {
|
799
|
+
result = new PerspectiveOffCenterFrustum();
|
800
|
+
}
|
801
|
+
result.right = this.right;
|
802
|
+
result.left = this.left;
|
803
|
+
result.top = this.top;
|
804
|
+
result.bottom = this.bottom;
|
805
|
+
result.near = this.near;
|
806
|
+
result.far = this.far;
|
807
|
+
result._left = void 0;
|
808
|
+
result._right = void 0;
|
809
|
+
result._top = void 0;
|
810
|
+
result._bottom = void 0;
|
811
|
+
result._near = void 0;
|
812
|
+
result._far = void 0;
|
813
|
+
return result;
|
814
|
+
};
|
815
|
+
PerspectiveOffCenterFrustum.prototype.equals = function(other) {
|
816
|
+
return defined_default(other) && other instanceof PerspectiveOffCenterFrustum && this.right === other.right && this.left === other.left && this.top === other.top && this.bottom === other.bottom && this.near === other.near && this.far === other.far;
|
817
|
+
};
|
818
|
+
PerspectiveOffCenterFrustum.prototype.equalsEpsilon = function(other, relativeEpsilon, absoluteEpsilon) {
|
819
|
+
return other === this || defined_default(other) && other instanceof PerspectiveOffCenterFrustum && Math_default.equalsEpsilon(
|
820
|
+
this.right,
|
821
|
+
other.right,
|
822
|
+
relativeEpsilon,
|
823
|
+
absoluteEpsilon
|
824
|
+
) && Math_default.equalsEpsilon(
|
825
|
+
this.left,
|
826
|
+
other.left,
|
827
|
+
relativeEpsilon,
|
828
|
+
absoluteEpsilon
|
829
|
+
) && Math_default.equalsEpsilon(
|
830
|
+
this.top,
|
831
|
+
other.top,
|
832
|
+
relativeEpsilon,
|
833
|
+
absoluteEpsilon
|
834
|
+
) && Math_default.equalsEpsilon(
|
835
|
+
this.bottom,
|
836
|
+
other.bottom,
|
837
|
+
relativeEpsilon,
|
838
|
+
absoluteEpsilon
|
839
|
+
) && Math_default.equalsEpsilon(
|
840
|
+
this.near,
|
841
|
+
other.near,
|
842
|
+
relativeEpsilon,
|
843
|
+
absoluteEpsilon
|
844
|
+
) && Math_default.equalsEpsilon(
|
845
|
+
this.far,
|
846
|
+
other.far,
|
847
|
+
relativeEpsilon,
|
848
|
+
absoluteEpsilon
|
849
|
+
);
|
850
|
+
};
|
851
|
+
var PerspectiveOffCenterFrustum_default = PerspectiveOffCenterFrustum;
|
852
|
+
|
853
|
+
// packages/engine/Source/Core/PerspectiveFrustum.js
|
854
|
+
function PerspectiveFrustum(options) {
|
855
|
+
options = defaultValue_default(options, defaultValue_default.EMPTY_OBJECT);
|
856
|
+
this._offCenterFrustum = new PerspectiveOffCenterFrustum_default();
|
857
|
+
this.fov = options.fov;
|
858
|
+
this._fov = void 0;
|
859
|
+
this._fovy = void 0;
|
860
|
+
this._sseDenominator = void 0;
|
861
|
+
this.aspectRatio = options.aspectRatio;
|
862
|
+
this._aspectRatio = void 0;
|
863
|
+
this.near = defaultValue_default(options.near, 1);
|
864
|
+
this._near = this.near;
|
865
|
+
this.far = defaultValue_default(options.far, 5e8);
|
866
|
+
this._far = this.far;
|
867
|
+
this.xOffset = defaultValue_default(options.xOffset, 0);
|
868
|
+
this._xOffset = this.xOffset;
|
869
|
+
this.yOffset = defaultValue_default(options.yOffset, 0);
|
870
|
+
this._yOffset = this.yOffset;
|
871
|
+
}
|
872
|
+
PerspectiveFrustum.packedLength = 6;
|
873
|
+
PerspectiveFrustum.pack = function(value, array, startingIndex) {
|
874
|
+
Check_default.typeOf.object("value", value);
|
875
|
+
Check_default.defined("array", array);
|
876
|
+
startingIndex = defaultValue_default(startingIndex, 0);
|
877
|
+
array[startingIndex++] = value.fov;
|
878
|
+
array[startingIndex++] = value.aspectRatio;
|
879
|
+
array[startingIndex++] = value.near;
|
880
|
+
array[startingIndex++] = value.far;
|
881
|
+
array[startingIndex++] = value.xOffset;
|
882
|
+
array[startingIndex] = value.yOffset;
|
883
|
+
return array;
|
884
|
+
};
|
885
|
+
PerspectiveFrustum.unpack = function(array, startingIndex, result) {
|
886
|
+
Check_default.defined("array", array);
|
887
|
+
startingIndex = defaultValue_default(startingIndex, 0);
|
888
|
+
if (!defined_default(result)) {
|
889
|
+
result = new PerspectiveFrustum();
|
890
|
+
}
|
891
|
+
result.fov = array[startingIndex++];
|
892
|
+
result.aspectRatio = array[startingIndex++];
|
893
|
+
result.near = array[startingIndex++];
|
894
|
+
result.far = array[startingIndex++];
|
895
|
+
result.xOffset = array[startingIndex++];
|
896
|
+
result.yOffset = array[startingIndex];
|
897
|
+
return result;
|
898
|
+
};
|
899
|
+
function update4(frustum) {
|
900
|
+
if (!defined_default(frustum.fov) || !defined_default(frustum.aspectRatio) || !defined_default(frustum.near) || !defined_default(frustum.far)) {
|
901
|
+
throw new DeveloperError_default(
|
902
|
+
"fov, aspectRatio, near, or far parameters are not set."
|
903
|
+
);
|
904
|
+
}
|
905
|
+
const f = frustum._offCenterFrustum;
|
906
|
+
if (frustum.fov !== frustum._fov || frustum.aspectRatio !== frustum._aspectRatio || frustum.near !== frustum._near || frustum.far !== frustum._far || frustum.xOffset !== frustum._xOffset || frustum.yOffset !== frustum._yOffset) {
|
907
|
+
if (frustum.fov < 0 || frustum.fov >= Math.PI) {
|
908
|
+
throw new DeveloperError_default("fov must be in the range [0, PI).");
|
909
|
+
}
|
910
|
+
if (frustum.aspectRatio < 0) {
|
911
|
+
throw new DeveloperError_default("aspectRatio must be positive.");
|
912
|
+
}
|
913
|
+
if (frustum.near < 0 || frustum.near > frustum.far) {
|
914
|
+
throw new DeveloperError_default(
|
915
|
+
"near must be greater than zero and less than far."
|
916
|
+
);
|
917
|
+
}
|
918
|
+
frustum._aspectRatio = frustum.aspectRatio;
|
919
|
+
frustum._fov = frustum.fov;
|
920
|
+
frustum._fovy = frustum.aspectRatio <= 1 ? frustum.fov : Math.atan(Math.tan(frustum.fov * 0.5) / frustum.aspectRatio) * 2;
|
921
|
+
frustum._near = frustum.near;
|
922
|
+
frustum._far = frustum.far;
|
923
|
+
frustum._sseDenominator = 2 * Math.tan(0.5 * frustum._fovy);
|
924
|
+
frustum._xOffset = frustum.xOffset;
|
925
|
+
frustum._yOffset = frustum.yOffset;
|
926
|
+
f.top = frustum.near * Math.tan(0.5 * frustum._fovy);
|
927
|
+
f.bottom = -f.top;
|
928
|
+
f.right = frustum.aspectRatio * f.top;
|
929
|
+
f.left = -f.right;
|
930
|
+
f.near = frustum.near;
|
931
|
+
f.far = frustum.far;
|
932
|
+
f.right += frustum.xOffset;
|
933
|
+
f.left += frustum.xOffset;
|
934
|
+
f.top += frustum.yOffset;
|
935
|
+
f.bottom += frustum.yOffset;
|
936
|
+
}
|
937
|
+
}
|
938
|
+
Object.defineProperties(PerspectiveFrustum.prototype, {
|
939
|
+
/**
|
940
|
+
* Gets the perspective projection matrix computed from the view frustum.
|
941
|
+
* @memberof PerspectiveFrustum.prototype
|
942
|
+
* @type {Matrix4}
|
943
|
+
* @readonly
|
944
|
+
*
|
945
|
+
* @see PerspectiveFrustum#infiniteProjectionMatrix
|
946
|
+
*/
|
947
|
+
projectionMatrix: {
|
948
|
+
get: function() {
|
949
|
+
update4(this);
|
950
|
+
return this._offCenterFrustum.projectionMatrix;
|
951
|
+
}
|
952
|
+
},
|
953
|
+
/**
|
954
|
+
* The perspective projection matrix computed from the view frustum with an infinite far plane.
|
955
|
+
* @memberof PerspectiveFrustum.prototype
|
956
|
+
* @type {Matrix4}
|
957
|
+
* @readonly
|
958
|
+
*
|
959
|
+
* @see PerspectiveFrustum#projectionMatrix
|
960
|
+
*/
|
961
|
+
infiniteProjectionMatrix: {
|
962
|
+
get: function() {
|
963
|
+
update4(this);
|
964
|
+
return this._offCenterFrustum.infiniteProjectionMatrix;
|
965
|
+
}
|
966
|
+
},
|
967
|
+
/**
|
968
|
+
* Gets the angle of the vertical field of view, in radians.
|
969
|
+
* @memberof PerspectiveFrustum.prototype
|
970
|
+
* @type {number}
|
971
|
+
* @readonly
|
972
|
+
* @default undefined
|
973
|
+
*/
|
974
|
+
fovy: {
|
975
|
+
get: function() {
|
976
|
+
update4(this);
|
977
|
+
return this._fovy;
|
978
|
+
}
|
979
|
+
},
|
980
|
+
/**
|
981
|
+
* @readonly
|
982
|
+
* @private
|
983
|
+
*/
|
984
|
+
sseDenominator: {
|
985
|
+
get: function() {
|
986
|
+
update4(this);
|
987
|
+
return this._sseDenominator;
|
988
|
+
}
|
989
|
+
},
|
990
|
+
/**
|
991
|
+
* Gets the orthographic projection matrix computed from the view frustum.
|
992
|
+
* @memberof PerspectiveFrustum.prototype
|
993
|
+
* @type {PerspectiveOffCenterFrustum}
|
994
|
+
* @readonly
|
995
|
+
* @private
|
996
|
+
*/
|
997
|
+
offCenterFrustum: {
|
998
|
+
get: function() {
|
999
|
+
update4(this);
|
1000
|
+
return this._offCenterFrustum;
|
1001
|
+
}
|
1002
|
+
}
|
1003
|
+
});
|
1004
|
+
PerspectiveFrustum.prototype.computeCullingVolume = function(position, direction, up) {
|
1005
|
+
update4(this);
|
1006
|
+
return this._offCenterFrustum.computeCullingVolume(position, direction, up);
|
1007
|
+
};
|
1008
|
+
PerspectiveFrustum.prototype.getPixelDimensions = function(drawingBufferWidth, drawingBufferHeight, distance, pixelRatio, result) {
|
1009
|
+
update4(this);
|
1010
|
+
return this._offCenterFrustum.getPixelDimensions(
|
1011
|
+
drawingBufferWidth,
|
1012
|
+
drawingBufferHeight,
|
1013
|
+
distance,
|
1014
|
+
pixelRatio,
|
1015
|
+
result
|
1016
|
+
);
|
1017
|
+
};
|
1018
|
+
PerspectiveFrustum.prototype.clone = function(result) {
|
1019
|
+
if (!defined_default(result)) {
|
1020
|
+
result = new PerspectiveFrustum();
|
1021
|
+
}
|
1022
|
+
result.aspectRatio = this.aspectRatio;
|
1023
|
+
result.fov = this.fov;
|
1024
|
+
result.near = this.near;
|
1025
|
+
result.far = this.far;
|
1026
|
+
result._aspectRatio = void 0;
|
1027
|
+
result._fov = void 0;
|
1028
|
+
result._near = void 0;
|
1029
|
+
result._far = void 0;
|
1030
|
+
this._offCenterFrustum.clone(result._offCenterFrustum);
|
1031
|
+
return result;
|
1032
|
+
};
|
1033
|
+
PerspectiveFrustum.prototype.equals = function(other) {
|
1034
|
+
if (!defined_default(other) || !(other instanceof PerspectiveFrustum)) {
|
1035
|
+
return false;
|
1036
|
+
}
|
1037
|
+
update4(this);
|
1038
|
+
update4(other);
|
1039
|
+
return this.fov === other.fov && this.aspectRatio === other.aspectRatio && this._offCenterFrustum.equals(other._offCenterFrustum);
|
1040
|
+
};
|
1041
|
+
PerspectiveFrustum.prototype.equalsEpsilon = function(other, relativeEpsilon, absoluteEpsilon) {
|
1042
|
+
if (!defined_default(other) || !(other instanceof PerspectiveFrustum)) {
|
1043
|
+
return false;
|
1044
|
+
}
|
1045
|
+
update4(this);
|
1046
|
+
update4(other);
|
1047
|
+
return Math_default.equalsEpsilon(
|
1048
|
+
this.fov,
|
1049
|
+
other.fov,
|
1050
|
+
relativeEpsilon,
|
1051
|
+
absoluteEpsilon
|
1052
|
+
) && Math_default.equalsEpsilon(
|
1053
|
+
this.aspectRatio,
|
1054
|
+
other.aspectRatio,
|
1055
|
+
relativeEpsilon,
|
1056
|
+
absoluteEpsilon
|
1057
|
+
) && this._offCenterFrustum.equalsEpsilon(
|
1058
|
+
other._offCenterFrustum,
|
1059
|
+
relativeEpsilon,
|
1060
|
+
absoluteEpsilon
|
1061
|
+
);
|
1062
|
+
};
|
1063
|
+
var PerspectiveFrustum_default = PerspectiveFrustum;
|
1064
|
+
|
1065
|
+
// packages/engine/Source/Core/FrustumGeometry.js
|
1066
|
+
var PERSPECTIVE = 0;
|
1067
|
+
var ORTHOGRAPHIC = 1;
|
1068
|
+
function FrustumGeometry(options) {
|
1069
|
+
Check_default.typeOf.object("options", options);
|
1070
|
+
Check_default.typeOf.object("options.frustum", options.frustum);
|
1071
|
+
Check_default.typeOf.object("options.origin", options.origin);
|
1072
|
+
Check_default.typeOf.object("options.orientation", options.orientation);
|
1073
|
+
const frustum = options.frustum;
|
1074
|
+
const orientation = options.orientation;
|
1075
|
+
const origin = options.origin;
|
1076
|
+
const vertexFormat = defaultValue_default(options.vertexFormat, VertexFormat_default.DEFAULT);
|
1077
|
+
const drawNearPlane = defaultValue_default(options._drawNearPlane, true);
|
1078
|
+
let frustumType;
|
1079
|
+
let frustumPackedLength;
|
1080
|
+
if (frustum instanceof PerspectiveFrustum_default) {
|
1081
|
+
frustumType = PERSPECTIVE;
|
1082
|
+
frustumPackedLength = PerspectiveFrustum_default.packedLength;
|
1083
|
+
} else if (frustum instanceof OrthographicFrustum_default) {
|
1084
|
+
frustumType = ORTHOGRAPHIC;
|
1085
|
+
frustumPackedLength = OrthographicFrustum_default.packedLength;
|
1086
|
+
}
|
1087
|
+
this._frustumType = frustumType;
|
1088
|
+
this._frustum = frustum.clone();
|
1089
|
+
this._origin = Cartesian3_default.clone(origin);
|
1090
|
+
this._orientation = Quaternion_default.clone(orientation);
|
1091
|
+
this._drawNearPlane = drawNearPlane;
|
1092
|
+
this._vertexFormat = vertexFormat;
|
1093
|
+
this._workerName = "createFrustumGeometry";
|
1094
|
+
this.packedLength = 2 + frustumPackedLength + Cartesian3_default.packedLength + Quaternion_default.packedLength + VertexFormat_default.packedLength;
|
1095
|
+
}
|
1096
|
+
FrustumGeometry.pack = function(value, array, startingIndex) {
|
1097
|
+
Check_default.typeOf.object("value", value);
|
1098
|
+
Check_default.defined("array", array);
|
1099
|
+
startingIndex = defaultValue_default(startingIndex, 0);
|
1100
|
+
const frustumType = value._frustumType;
|
1101
|
+
const frustum = value._frustum;
|
1102
|
+
array[startingIndex++] = frustumType;
|
1103
|
+
if (frustumType === PERSPECTIVE) {
|
1104
|
+
PerspectiveFrustum_default.pack(frustum, array, startingIndex);
|
1105
|
+
startingIndex += PerspectiveFrustum_default.packedLength;
|
1106
|
+
} else {
|
1107
|
+
OrthographicFrustum_default.pack(frustum, array, startingIndex);
|
1108
|
+
startingIndex += OrthographicFrustum_default.packedLength;
|
1109
|
+
}
|
1110
|
+
Cartesian3_default.pack(value._origin, array, startingIndex);
|
1111
|
+
startingIndex += Cartesian3_default.packedLength;
|
1112
|
+
Quaternion_default.pack(value._orientation, array, startingIndex);
|
1113
|
+
startingIndex += Quaternion_default.packedLength;
|
1114
|
+
VertexFormat_default.pack(value._vertexFormat, array, startingIndex);
|
1115
|
+
startingIndex += VertexFormat_default.packedLength;
|
1116
|
+
array[startingIndex] = value._drawNearPlane ? 1 : 0;
|
1117
|
+
return array;
|
1118
|
+
};
|
1119
|
+
var scratchPackPerspective = new PerspectiveFrustum_default();
|
1120
|
+
var scratchPackOrthographic = new OrthographicFrustum_default();
|
1121
|
+
var scratchPackQuaternion = new Quaternion_default();
|
1122
|
+
var scratchPackorigin = new Cartesian3_default();
|
1123
|
+
var scratchVertexFormat = new VertexFormat_default();
|
1124
|
+
FrustumGeometry.unpack = function(array, startingIndex, result) {
|
1125
|
+
Check_default.defined("array", array);
|
1126
|
+
startingIndex = defaultValue_default(startingIndex, 0);
|
1127
|
+
const frustumType = array[startingIndex++];
|
1128
|
+
let frustum;
|
1129
|
+
if (frustumType === PERSPECTIVE) {
|
1130
|
+
frustum = PerspectiveFrustum_default.unpack(
|
1131
|
+
array,
|
1132
|
+
startingIndex,
|
1133
|
+
scratchPackPerspective
|
1134
|
+
);
|
1135
|
+
startingIndex += PerspectiveFrustum_default.packedLength;
|
1136
|
+
} else {
|
1137
|
+
frustum = OrthographicFrustum_default.unpack(
|
1138
|
+
array,
|
1139
|
+
startingIndex,
|
1140
|
+
scratchPackOrthographic
|
1141
|
+
);
|
1142
|
+
startingIndex += OrthographicFrustum_default.packedLength;
|
1143
|
+
}
|
1144
|
+
const origin = Cartesian3_default.unpack(array, startingIndex, scratchPackorigin);
|
1145
|
+
startingIndex += Cartesian3_default.packedLength;
|
1146
|
+
const orientation = Quaternion_default.unpack(
|
1147
|
+
array,
|
1148
|
+
startingIndex,
|
1149
|
+
scratchPackQuaternion
|
1150
|
+
);
|
1151
|
+
startingIndex += Quaternion_default.packedLength;
|
1152
|
+
const vertexFormat = VertexFormat_default.unpack(
|
1153
|
+
array,
|
1154
|
+
startingIndex,
|
1155
|
+
scratchVertexFormat
|
1156
|
+
);
|
1157
|
+
startingIndex += VertexFormat_default.packedLength;
|
1158
|
+
const drawNearPlane = array[startingIndex] === 1;
|
1159
|
+
if (!defined_default(result)) {
|
1160
|
+
return new FrustumGeometry({
|
1161
|
+
frustum,
|
1162
|
+
origin,
|
1163
|
+
orientation,
|
1164
|
+
vertexFormat,
|
1165
|
+
_drawNearPlane: drawNearPlane
|
1166
|
+
});
|
1167
|
+
}
|
1168
|
+
const frustumResult = frustumType === result._frustumType ? result._frustum : void 0;
|
1169
|
+
result._frustum = frustum.clone(frustumResult);
|
1170
|
+
result._frustumType = frustumType;
|
1171
|
+
result._origin = Cartesian3_default.clone(origin, result._origin);
|
1172
|
+
result._orientation = Quaternion_default.clone(orientation, result._orientation);
|
1173
|
+
result._vertexFormat = VertexFormat_default.clone(vertexFormat, result._vertexFormat);
|
1174
|
+
result._drawNearPlane = drawNearPlane;
|
1175
|
+
return result;
|
1176
|
+
};
|
1177
|
+
function getAttributes(offset, normals, tangents, bitangents, st, normal, tangent, bitangent) {
|
1178
|
+
const stOffset = offset / 3 * 2;
|
1179
|
+
for (let i = 0; i < 4; ++i) {
|
1180
|
+
if (defined_default(normals)) {
|
1181
|
+
normals[offset] = normal.x;
|
1182
|
+
normals[offset + 1] = normal.y;
|
1183
|
+
normals[offset + 2] = normal.z;
|
1184
|
+
}
|
1185
|
+
if (defined_default(tangents)) {
|
1186
|
+
tangents[offset] = tangent.x;
|
1187
|
+
tangents[offset + 1] = tangent.y;
|
1188
|
+
tangents[offset + 2] = tangent.z;
|
1189
|
+
}
|
1190
|
+
if (defined_default(bitangents)) {
|
1191
|
+
bitangents[offset] = bitangent.x;
|
1192
|
+
bitangents[offset + 1] = bitangent.y;
|
1193
|
+
bitangents[offset + 2] = bitangent.z;
|
1194
|
+
}
|
1195
|
+
offset += 3;
|
1196
|
+
}
|
1197
|
+
st[stOffset] = 0;
|
1198
|
+
st[stOffset + 1] = 0;
|
1199
|
+
st[stOffset + 2] = 1;
|
1200
|
+
st[stOffset + 3] = 0;
|
1201
|
+
st[stOffset + 4] = 1;
|
1202
|
+
st[stOffset + 5] = 1;
|
1203
|
+
st[stOffset + 6] = 0;
|
1204
|
+
st[stOffset + 7] = 1;
|
1205
|
+
}
|
1206
|
+
var scratchRotationMatrix = new Matrix3_default();
|
1207
|
+
var scratchViewMatrix = new Matrix4_default();
|
1208
|
+
var scratchInverseMatrix = new Matrix4_default();
|
1209
|
+
var scratchXDirection = new Cartesian3_default();
|
1210
|
+
var scratchYDirection = new Cartesian3_default();
|
1211
|
+
var scratchZDirection = new Cartesian3_default();
|
1212
|
+
var scratchNegativeX = new Cartesian3_default();
|
1213
|
+
var scratchNegativeY = new Cartesian3_default();
|
1214
|
+
var scratchNegativeZ = new Cartesian3_default();
|
1215
|
+
var frustumSplits = new Array(3);
|
1216
|
+
var frustumCornersNDC = new Array(4);
|
1217
|
+
frustumCornersNDC[0] = new Cartesian4_default(-1, -1, 1, 1);
|
1218
|
+
frustumCornersNDC[1] = new Cartesian4_default(1, -1, 1, 1);
|
1219
|
+
frustumCornersNDC[2] = new Cartesian4_default(1, 1, 1, 1);
|
1220
|
+
frustumCornersNDC[3] = new Cartesian4_default(-1, 1, 1, 1);
|
1221
|
+
var scratchFrustumCorners = new Array(4);
|
1222
|
+
for (let i = 0; i < 4; ++i) {
|
1223
|
+
scratchFrustumCorners[i] = new Cartesian4_default();
|
1224
|
+
}
|
1225
|
+
FrustumGeometry._computeNearFarPlanes = function(origin, orientation, frustumType, frustum, positions, xDirection, yDirection, zDirection) {
|
1226
|
+
const rotationMatrix = Matrix3_default.fromQuaternion(
|
1227
|
+
orientation,
|
1228
|
+
scratchRotationMatrix
|
1229
|
+
);
|
1230
|
+
let x = defaultValue_default(xDirection, scratchXDirection);
|
1231
|
+
let y = defaultValue_default(yDirection, scratchYDirection);
|
1232
|
+
let z = defaultValue_default(zDirection, scratchZDirection);
|
1233
|
+
x = Matrix3_default.getColumn(rotationMatrix, 0, x);
|
1234
|
+
y = Matrix3_default.getColumn(rotationMatrix, 1, y);
|
1235
|
+
z = Matrix3_default.getColumn(rotationMatrix, 2, z);
|
1236
|
+
Cartesian3_default.normalize(x, x);
|
1237
|
+
Cartesian3_default.normalize(y, y);
|
1238
|
+
Cartesian3_default.normalize(z, z);
|
1239
|
+
Cartesian3_default.negate(x, x);
|
1240
|
+
const view = Matrix4_default.computeView(origin, z, y, x, scratchViewMatrix);
|
1241
|
+
let inverseView;
|
1242
|
+
let inverseViewProjection;
|
1243
|
+
const projection = frustum.projectionMatrix;
|
1244
|
+
if (frustumType === PERSPECTIVE) {
|
1245
|
+
const viewProjection = Matrix4_default.multiply(
|
1246
|
+
projection,
|
1247
|
+
view,
|
1248
|
+
scratchInverseMatrix
|
1249
|
+
);
|
1250
|
+
inverseViewProjection = Matrix4_default.inverse(
|
1251
|
+
viewProjection,
|
1252
|
+
scratchInverseMatrix
|
1253
|
+
);
|
1254
|
+
} else {
|
1255
|
+
inverseView = Matrix4_default.inverseTransformation(view, scratchInverseMatrix);
|
1256
|
+
}
|
1257
|
+
if (defined_default(inverseViewProjection)) {
|
1258
|
+
frustumSplits[0] = frustum.near;
|
1259
|
+
frustumSplits[1] = frustum.far;
|
1260
|
+
} else {
|
1261
|
+
frustumSplits[0] = 0;
|
1262
|
+
frustumSplits[1] = frustum.near;
|
1263
|
+
frustumSplits[2] = frustum.far;
|
1264
|
+
}
|
1265
|
+
for (let i = 0; i < 2; ++i) {
|
1266
|
+
for (let j = 0; j < 4; ++j) {
|
1267
|
+
let corner = Cartesian4_default.clone(
|
1268
|
+
frustumCornersNDC[j],
|
1269
|
+
scratchFrustumCorners[j]
|
1270
|
+
);
|
1271
|
+
if (!defined_default(inverseViewProjection)) {
|
1272
|
+
const offCenterFrustum = frustum.offCenterFrustum;
|
1273
|
+
if (defined_default(offCenterFrustum)) {
|
1274
|
+
frustum = offCenterFrustum;
|
1275
|
+
}
|
1276
|
+
const near = frustumSplits[i];
|
1277
|
+
const far = frustumSplits[i + 1];
|
1278
|
+
corner.x = (corner.x * (frustum.right - frustum.left) + frustum.left + frustum.right) * 0.5;
|
1279
|
+
corner.y = (corner.y * (frustum.top - frustum.bottom) + frustum.bottom + frustum.top) * 0.5;
|
1280
|
+
corner.z = (corner.z * (near - far) - near - far) * 0.5;
|
1281
|
+
corner.w = 1;
|
1282
|
+
Matrix4_default.multiplyByVector(inverseView, corner, corner);
|
1283
|
+
} else {
|
1284
|
+
corner = Matrix4_default.multiplyByVector(
|
1285
|
+
inverseViewProjection,
|
1286
|
+
corner,
|
1287
|
+
corner
|
1288
|
+
);
|
1289
|
+
const w = 1 / corner.w;
|
1290
|
+
Cartesian3_default.multiplyByScalar(corner, w, corner);
|
1291
|
+
Cartesian3_default.subtract(corner, origin, corner);
|
1292
|
+
Cartesian3_default.normalize(corner, corner);
|
1293
|
+
const fac = Cartesian3_default.dot(z, corner);
|
1294
|
+
Cartesian3_default.multiplyByScalar(corner, frustumSplits[i] / fac, corner);
|
1295
|
+
Cartesian3_default.add(corner, origin, corner);
|
1296
|
+
}
|
1297
|
+
positions[12 * i + j * 3] = corner.x;
|
1298
|
+
positions[12 * i + j * 3 + 1] = corner.y;
|
1299
|
+
positions[12 * i + j * 3 + 2] = corner.z;
|
1300
|
+
}
|
1301
|
+
}
|
1302
|
+
};
|
1303
|
+
FrustumGeometry.createGeometry = function(frustumGeometry) {
|
1304
|
+
const frustumType = frustumGeometry._frustumType;
|
1305
|
+
const frustum = frustumGeometry._frustum;
|
1306
|
+
const origin = frustumGeometry._origin;
|
1307
|
+
const orientation = frustumGeometry._orientation;
|
1308
|
+
const drawNearPlane = frustumGeometry._drawNearPlane;
|
1309
|
+
const vertexFormat = frustumGeometry._vertexFormat;
|
1310
|
+
const numberOfPlanes = drawNearPlane ? 6 : 5;
|
1311
|
+
let positions = new Float64Array(3 * 4 * 6);
|
1312
|
+
FrustumGeometry._computeNearFarPlanes(
|
1313
|
+
origin,
|
1314
|
+
orientation,
|
1315
|
+
frustumType,
|
1316
|
+
frustum,
|
1317
|
+
positions
|
1318
|
+
);
|
1319
|
+
let offset = 3 * 4 * 2;
|
1320
|
+
positions[offset] = positions[3 * 4];
|
1321
|
+
positions[offset + 1] = positions[3 * 4 + 1];
|
1322
|
+
positions[offset + 2] = positions[3 * 4 + 2];
|
1323
|
+
positions[offset + 3] = positions[0];
|
1324
|
+
positions[offset + 4] = positions[1];
|
1325
|
+
positions[offset + 5] = positions[2];
|
1326
|
+
positions[offset + 6] = positions[3 * 3];
|
1327
|
+
positions[offset + 7] = positions[3 * 3 + 1];
|
1328
|
+
positions[offset + 8] = positions[3 * 3 + 2];
|
1329
|
+
positions[offset + 9] = positions[3 * 7];
|
1330
|
+
positions[offset + 10] = positions[3 * 7 + 1];
|
1331
|
+
positions[offset + 11] = positions[3 * 7 + 2];
|
1332
|
+
offset += 3 * 4;
|
1333
|
+
positions[offset] = positions[3 * 5];
|
1334
|
+
positions[offset + 1] = positions[3 * 5 + 1];
|
1335
|
+
positions[offset + 2] = positions[3 * 5 + 2];
|
1336
|
+
positions[offset + 3] = positions[3];
|
1337
|
+
positions[offset + 4] = positions[3 + 1];
|
1338
|
+
positions[offset + 5] = positions[3 + 2];
|
1339
|
+
positions[offset + 6] = positions[0];
|
1340
|
+
positions[offset + 7] = positions[1];
|
1341
|
+
positions[offset + 8] = positions[2];
|
1342
|
+
positions[offset + 9] = positions[3 * 4];
|
1343
|
+
positions[offset + 10] = positions[3 * 4 + 1];
|
1344
|
+
positions[offset + 11] = positions[3 * 4 + 2];
|
1345
|
+
offset += 3 * 4;
|
1346
|
+
positions[offset] = positions[3];
|
1347
|
+
positions[offset + 1] = positions[3 + 1];
|
1348
|
+
positions[offset + 2] = positions[3 + 2];
|
1349
|
+
positions[offset + 3] = positions[3 * 5];
|
1350
|
+
positions[offset + 4] = positions[3 * 5 + 1];
|
1351
|
+
positions[offset + 5] = positions[3 * 5 + 2];
|
1352
|
+
positions[offset + 6] = positions[3 * 6];
|
1353
|
+
positions[offset + 7] = positions[3 * 6 + 1];
|
1354
|
+
positions[offset + 8] = positions[3 * 6 + 2];
|
1355
|
+
positions[offset + 9] = positions[3 * 2];
|
1356
|
+
positions[offset + 10] = positions[3 * 2 + 1];
|
1357
|
+
positions[offset + 11] = positions[3 * 2 + 2];
|
1358
|
+
offset += 3 * 4;
|
1359
|
+
positions[offset] = positions[3 * 2];
|
1360
|
+
positions[offset + 1] = positions[3 * 2 + 1];
|
1361
|
+
positions[offset + 2] = positions[3 * 2 + 2];
|
1362
|
+
positions[offset + 3] = positions[3 * 6];
|
1363
|
+
positions[offset + 4] = positions[3 * 6 + 1];
|
1364
|
+
positions[offset + 5] = positions[3 * 6 + 2];
|
1365
|
+
positions[offset + 6] = positions[3 * 7];
|
1366
|
+
positions[offset + 7] = positions[3 * 7 + 1];
|
1367
|
+
positions[offset + 8] = positions[3 * 7 + 2];
|
1368
|
+
positions[offset + 9] = positions[3 * 3];
|
1369
|
+
positions[offset + 10] = positions[3 * 3 + 1];
|
1370
|
+
positions[offset + 11] = positions[3 * 3 + 2];
|
1371
|
+
if (!drawNearPlane) {
|
1372
|
+
positions = positions.subarray(3 * 4);
|
1373
|
+
}
|
1374
|
+
const attributes = new GeometryAttributes_default({
|
1375
|
+
position: new GeometryAttribute_default({
|
1376
|
+
componentDatatype: ComponentDatatype_default.DOUBLE,
|
1377
|
+
componentsPerAttribute: 3,
|
1378
|
+
values: positions
|
1379
|
+
})
|
1380
|
+
});
|
1381
|
+
if (defined_default(vertexFormat.normal) || defined_default(vertexFormat.tangent) || defined_default(vertexFormat.bitangent) || defined_default(vertexFormat.st)) {
|
1382
|
+
const normals = defined_default(vertexFormat.normal) ? new Float32Array(3 * 4 * numberOfPlanes) : void 0;
|
1383
|
+
const tangents = defined_default(vertexFormat.tangent) ? new Float32Array(3 * 4 * numberOfPlanes) : void 0;
|
1384
|
+
const bitangents = defined_default(vertexFormat.bitangent) ? new Float32Array(3 * 4 * numberOfPlanes) : void 0;
|
1385
|
+
const st = defined_default(vertexFormat.st) ? new Float32Array(2 * 4 * numberOfPlanes) : void 0;
|
1386
|
+
const x = scratchXDirection;
|
1387
|
+
const y = scratchYDirection;
|
1388
|
+
const z = scratchZDirection;
|
1389
|
+
const negativeX = Cartesian3_default.negate(x, scratchNegativeX);
|
1390
|
+
const negativeY = Cartesian3_default.negate(y, scratchNegativeY);
|
1391
|
+
const negativeZ = Cartesian3_default.negate(z, scratchNegativeZ);
|
1392
|
+
offset = 0;
|
1393
|
+
if (drawNearPlane) {
|
1394
|
+
getAttributes(offset, normals, tangents, bitangents, st, negativeZ, x, y);
|
1395
|
+
offset += 3 * 4;
|
1396
|
+
}
|
1397
|
+
getAttributes(offset, normals, tangents, bitangents, st, z, negativeX, y);
|
1398
|
+
offset += 3 * 4;
|
1399
|
+
getAttributes(
|
1400
|
+
offset,
|
1401
|
+
normals,
|
1402
|
+
tangents,
|
1403
|
+
bitangents,
|
1404
|
+
st,
|
1405
|
+
negativeX,
|
1406
|
+
negativeZ,
|
1407
|
+
y
|
1408
|
+
);
|
1409
|
+
offset += 3 * 4;
|
1410
|
+
getAttributes(
|
1411
|
+
offset,
|
1412
|
+
normals,
|
1413
|
+
tangents,
|
1414
|
+
bitangents,
|
1415
|
+
st,
|
1416
|
+
negativeY,
|
1417
|
+
negativeZ,
|
1418
|
+
negativeX
|
1419
|
+
);
|
1420
|
+
offset += 3 * 4;
|
1421
|
+
getAttributes(offset, normals, tangents, bitangents, st, x, z, y);
|
1422
|
+
offset += 3 * 4;
|
1423
|
+
getAttributes(offset, normals, tangents, bitangents, st, y, z, negativeX);
|
1424
|
+
if (defined_default(normals)) {
|
1425
|
+
attributes.normal = new GeometryAttribute_default({
|
1426
|
+
componentDatatype: ComponentDatatype_default.FLOAT,
|
1427
|
+
componentsPerAttribute: 3,
|
1428
|
+
values: normals
|
1429
|
+
});
|
1430
|
+
}
|
1431
|
+
if (defined_default(tangents)) {
|
1432
|
+
attributes.tangent = new GeometryAttribute_default({
|
1433
|
+
componentDatatype: ComponentDatatype_default.FLOAT,
|
1434
|
+
componentsPerAttribute: 3,
|
1435
|
+
values: tangents
|
1436
|
+
});
|
1437
|
+
}
|
1438
|
+
if (defined_default(bitangents)) {
|
1439
|
+
attributes.bitangent = new GeometryAttribute_default({
|
1440
|
+
componentDatatype: ComponentDatatype_default.FLOAT,
|
1441
|
+
componentsPerAttribute: 3,
|
1442
|
+
values: bitangents
|
1443
|
+
});
|
1444
|
+
}
|
1445
|
+
if (defined_default(st)) {
|
1446
|
+
attributes.st = new GeometryAttribute_default({
|
1447
|
+
componentDatatype: ComponentDatatype_default.FLOAT,
|
1448
|
+
componentsPerAttribute: 2,
|
1449
|
+
values: st
|
1450
|
+
});
|
1451
|
+
}
|
1452
|
+
}
|
1453
|
+
const indices = new Uint16Array(6 * numberOfPlanes);
|
1454
|
+
for (let i = 0; i < numberOfPlanes; ++i) {
|
1455
|
+
const indexOffset = i * 6;
|
1456
|
+
const index = i * 4;
|
1457
|
+
indices[indexOffset] = index;
|
1458
|
+
indices[indexOffset + 1] = index + 1;
|
1459
|
+
indices[indexOffset + 2] = index + 2;
|
1460
|
+
indices[indexOffset + 3] = index;
|
1461
|
+
indices[indexOffset + 4] = index + 2;
|
1462
|
+
indices[indexOffset + 5] = index + 3;
|
1463
|
+
}
|
1464
|
+
return new Geometry_default({
|
1465
|
+
attributes,
|
1466
|
+
indices,
|
1467
|
+
primitiveType: PrimitiveType_default.TRIANGLES,
|
1468
|
+
boundingSphere: BoundingSphere_default.fromVertices(positions)
|
1469
|
+
});
|
1470
|
+
};
|
1471
|
+
var FrustumGeometry_default = FrustumGeometry;
|
1472
|
+
|
1473
|
+
export {
|
1474
|
+
OrthographicFrustum_default,
|
1475
|
+
PerspectiveFrustum_default,
|
1476
|
+
FrustumGeometry_default
|
1477
|
+
};
|