@vcmap/ui 5.0.0-rc.18 → 5.0.0-rc.20
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/README.md +6 -6
- package/build/build.js +2 -2
- package/build/buildCesium.js +3 -3
- package/build/buildHelpers.js +2 -1
- package/config/base.config.json +0 -4
- package/config/dev.config.json +35 -14
- package/config/www.config.json +4 -0
- package/dist/assets/cesium/Workers/ArcType-ce2e50ab.js +37 -0
- package/dist/assets/cesium/Workers/AttributeCompression-b646d393.js +716 -0
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-ff186ccc.js +258 -0
- package/dist/assets/cesium/Workers/BoundingRectangle-be5924f4.js +369 -0
- package/dist/assets/cesium/Workers/BoxGeometry-12eeccaf.js +884 -0
- package/dist/assets/cesium/Workers/Check-666ab1a0.js +290 -0
- package/dist/assets/cesium/Workers/Color-a84038cb.js +2262 -0
- package/dist/assets/cesium/Workers/ComponentDatatype-f7b11d02.js +341 -0
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-3272c1b3.js +132 -0
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-0170e093.js +498 -0
- package/dist/assets/cesium/Workers/CylinderGeometry-7c5da648.js +467 -0
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-372c07d8.js +63 -0
- package/dist/assets/cesium/Workers/EllipseGeometry-797d580e.js +1304 -0
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-2939e1dc.js +366 -0
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-8b50870f.js +443 -0
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-98c62a56.js +520 -0
- package/dist/assets/cesium/Workers/EllipsoidGeometry-21c0e3a5.js +637 -0
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-eff247c8.js +454 -0
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-19756602.js +741 -0
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-214683dc.js +373 -0
- package/dist/assets/cesium/Workers/EncodedCartesian3-81f70735.js +171 -0
- package/dist/assets/cesium/Workers/FrustumGeometry-ac42a6d9.js +2512 -0
- package/dist/assets/cesium/Workers/GeometryAttribute-7d6f1732.js +619 -0
- package/dist/assets/cesium/Workers/GeometryAttributes-f06a2792.js +91 -0
- package/dist/assets/cesium/Workers/GeometryInstance-451dc1cd.js +121 -0
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-04332ce7.js +16 -0
- package/dist/assets/cesium/Workers/GeometryPipeline-ce4339ed.js +3690 -0
- package/dist/assets/cesium/Workers/IndexDatatype-a55ceaa1.js +200 -0
- package/dist/assets/cesium/Workers/IntersectionTests-f6e6bd8a.js +1836 -0
- package/dist/assets/cesium/Workers/Math-2dbd6b93.js +1330 -0
- package/dist/assets/cesium/Workers/Matrix2-13178034.js +7086 -0
- package/dist/assets/cesium/Workers/Matrix3-315394f6.js +4283 -0
- package/dist/assets/cesium/Workers/OrientedBoundingBox-04920dc7.js +1257 -0
- package/dist/assets/cesium/Workers/Plane-900aa728.js +309 -0
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-a8680d96.js +1074 -0
- package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +1345 -0
- package/dist/assets/cesium/Workers/PolylinePipeline-32f36d2a.js +573 -0
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-a510d657.js +781 -0
- package/dist/assets/cesium/Workers/PrimitivePipeline-ba38434a.js +966 -0
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-bdba697e.js +280 -0
- package/dist/assets/cesium/Workers/RuntimeError-06c93819.js +68 -0
- package/dist/assets/cesium/Workers/TerrainEncoding-833187da.js +1227 -0
- package/dist/assets/cesium/Workers/Transforms-40229881.js +14696 -0
- package/dist/assets/cesium/Workers/VertexFormat-6b480673.js +312 -0
- package/dist/assets/cesium/Workers/WallGeometryLibrary-919eed92.js +211 -0
- package/dist/assets/cesium/Workers/WebGLConstants-a8cc3e8c.js +620 -0
- package/dist/assets/cesium/Workers/WebMercatorProjection-13a90d41.js +151 -0
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-c2038105.js +129 -0
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +1336 -4
- package/dist/assets/cesium/Workers/combine-ca22a614.js +82 -0
- package/dist/assets/cesium/Workers/combineGeometry.js +17 -25
- package/dist/assets/cesium/Workers/createBoxGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +313 -25
- package/dist/assets/cesium/Workers/createCircleGeometry.js +213 -25
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +160 -25
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +586 -25
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +236 -25
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1407 -25
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +603 -25
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +265 -25
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +14 -25
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +14 -25
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +15 -25
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +251 -25
- package/dist/assets/cesium/Workers/createGeometry.js +55 -25
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +2134 -25
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +250 -25
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +115 -25
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1420 -25
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +683 -25
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +571 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +411 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +301 -25
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1476 -25
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +535 -25
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +458 -25
- package/dist/assets/cesium/Workers/createSphereGeometry.js +123 -25
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +126 -25
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +127 -25
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +535 -25
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +445 -25
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +79 -25
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +406 -25
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +254 -25
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +640 -25
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2711 -27
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +994 -25
- package/dist/assets/cesium/Workers/createWallGeometry.js +623 -25
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +432 -25
- package/dist/assets/cesium/Workers/decodeDraco.js +381 -25
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +3687 -25
- package/dist/assets/cesium/Workers/decodeI3S.js +1040 -0
- package/dist/assets/cesium/Workers/defaultValue-0a909f67.js +51 -0
- package/dist/assets/cesium/Workers/package.js +2 -2
- package/dist/assets/cesium/Workers/transcodeKTX2.js +1516 -25
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +18 -2
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1023 -25
- package/dist/assets/{cesium.2f992f.js → cesium.adbd45.js} +112161 -108735
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.cb0408.js → core.60e74d.js} +1616 -1629
- package/dist/assets/core.f198cf.js +15993 -0
- package/dist/assets/core.js +1 -1
- package/dist/assets/{index.bccdf969.js → index.884a53ef.js} +1 -1
- package/dist/assets/{ol.5e3fd0.js → ol.c6ff35.js} +6992 -6972
- package/dist/assets/ol.dbd604.js +44299 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.bf504d.css +1 -0
- package/dist/assets/{ui.08c48f.js → ui.bf504d.js} +6121 -6785
- package/dist/assets/ui.js +1 -1
- package/dist/assets/{vue.228ead.js → vue.75b819.js} +0 -0
- package/dist/assets/vue.a831f1.js +4675 -0
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.0b5039.css → vuetify.0d7360.css} +0 -0
- package/dist/assets/{vuetify.0b5039.js → vuetify.0d7360.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/index.js +2 -1
- package/lib/cesium.js +1 -1
- package/package.json +3 -4
- package/plugins/{simple-graph → @vcmap/simple-graph}/README.md +1 -1
- package/plugins/{simple-graph → @vcmap/simple-graph}/SimpleGraphComponent.vue +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/index.js +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/package.json +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/simpleGraphView.js +0 -0
- package/plugins/@vcmap-show-case/README.md +20 -0
- package/plugins/{buttonExamples/ButtonExamples.vue → @vcmap-show-case/buttons-example/ButtonsExample.vue} +1 -1
- package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
- package/plugins/{buttonExamples → @vcmap-show-case/buttons-example}/index.js +16 -8
- package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Categories.vue +7 -6
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Category.vue +4 -3
- package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/index.js +12 -4
- package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
- package/plugins/{test → @vcmap-show-case/config-editor}/editor.vue +0 -0
- package/plugins/@vcmap-show-case/config-editor/index.js +47 -0
- package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
- package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/context-menu-tester/index.js +33 -0
- package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
- package/plugins/{@vcmap/pluginExample/pluginExampleComponent.vue → @vcmap-show-case/form-inputs-example/FormInputsExample.vue} +14 -13
- package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
- package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/exampleActions.js +1 -1
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/index.js +23 -22
- package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/validation.js +0 -0
- package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
- package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +51 -0
- package/plugins/@vcmap-show-case/icons-example/index.js +44 -0
- package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
- package/plugins/{test/testList.vue → @vcmap-show-case/list-example/ListExample.vue} +1 -1
- package/plugins/@vcmap-show-case/list-example/README.md +3 -0
- package/plugins/@vcmap-show-case/list-example/index.js +44 -0
- package/plugins/@vcmap-show-case/list-example/package.json +5 -0
- package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
- package/plugins/{notifier → @vcmap-show-case/notifier-tester}/index.js +11 -6
- package/plugins/{notifier → @vcmap-show-case/notifier-tester}/notifierTester.vue +0 -0
- package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
- package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/TextfieldsExample.vue} +1 -7
- package/plugins/{example → @vcmap-show-case/textfields-example}/index.js +58 -62
- package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
- package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
- package/plugins/{test/windowManagerExample.vue → @vcmap-show-case/window-tester/WindowExample.vue} +36 -20
- package/plugins/{test → @vcmap-show-case/window-tester}/emptyComponent.vue +8 -3
- package/plugins/@vcmap-show-case/window-tester/index.js +62 -0
- package/plugins/{test → @vcmap-show-case/window-tester}/myCustomHeader.vue +0 -0
- package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
- package/plugins/{test → @vcmap-show-case/window-tester}/toolbox-data.js +9 -9
- package/plugins/{test/vcsContent.vue → @vcmap-show-case/window-tester/windowExampleContent.vue} +1 -5
- package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
- package/plugins/{wizardExample → @vcmap-show-case/wizard-example}/index.js +12 -6
- package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
- package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +95 -0
- package/plugins/package.json +2 -1
- package/src/actions/actionHelper.js +1 -3
- package/src/actions/stateRefAction.js +0 -10
- package/src/application/VcsApp.vue +42 -23
- package/src/application/VcsMap.vue +9 -0
- package/src/components/buttons/VcsActionButtonList.vue +1 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +3 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +17 -20
- package/src/components/form-inputs-controls/VcsWizardStep.vue +160 -0
- package/src/{icons → components/icons}/+all.js +0 -0
- package/src/{icons → components/icons}/2DAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/2DDistanceIcon.vue +0 -0
- package/src/{icons → components/icons}/3DAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/3DDistanceIcon.vue +0 -0
- package/src/{icons → components/icons}/3DHeightIcon.vue +0 -0
- package/src/{icons → components/icons}/AngleIcon.vue +0 -0
- package/src/{icons → components/icons}/AssociationsIcon.vue +0 -0
- package/src/{icons → components/icons}/AxisIcon.vue +0 -0
- package/src/{icons → components/icons}/BoundingBoxIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxCheckedIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxIndeterminateIcon.vue +0 -0
- package/src/{icons → components/icons}/CircleIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingHorizontalIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingVerticalIcon.vue +0 -0
- package/src/{icons → components/icons}/ColorPickerIcon.vue +0 -0
- package/src/{icons → components/icons}/ColorSwatchIcon.vue +0 -0
- package/src/{icons → components/icons}/CommentIcon.vue +0 -0
- package/src/{icons → components/icons}/CompassIcon.vue +0 -0
- package/src/{icons → components/icons}/ComponentsIcon.vue +0 -0
- package/src/{icons → components/icons}/ConeIcon.vue +0 -0
- package/src/{icons → components/icons}/DimensionsHouseIcon.vue +0 -0
- package/src/{icons → components/icons}/EditIcon.vue +0 -0
- package/src/{icons → components/icons}/ElevationProfileIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportFlightIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportIcon.vue +0 -0
- package/src/{icons → components/icons}/ExternalLinkIcon.vue +0 -0
- package/src/{icons → components/icons}/EyeIcon.vue +0 -0
- package/src/{icons → components/icons}/FastForwardIcon.vue +0 -0
- package/src/{icons → components/icons}/FilterIcon.vue +0 -0
- package/src/{icons → components/icons}/GlobalTerrainIcon.vue +0 -0
- package/src/{icons → components/icons}/GlobeNatureIcon.vue +0 -0
- package/src/{icons → components/icons}/GroundIcon.vue +0 -0
- package/src/{icons → components/icons}/HealthCareIndustriesIcon.vue +0 -0
- package/src/{icons → components/icons}/HelpIcon.vue +0 -0
- package/src/{icons → components/icons}/HideIcon.vue +0 -0
- package/src/{icons → components/icons}/HomePointIcon.vue +0 -0
- package/src/{icons → components/icons}/HospitalsIcon.vue +0 -0
- package/src/{icons → components/icons}/HouseIcon.vue +0 -0
- package/src/{icons → components/icons}/ImportIcon.vue +0 -0
- package/src/{icons → components/icons}/InfoIcon.vue +0 -0
- package/src/{icons → components/icons}/KebabIcon.vue +0 -0
- package/src/{icons → components/icons}/LabelIcon.vue +0 -0
- package/src/{icons → components/icons}/LayersIcon.vue +0 -0
- package/src/{icons → components/icons}/LegendIcon.vue +0 -0
- package/src/{icons → components/icons}/LineIcon.vue +0 -0
- package/src/{icons → components/icons}/LinkIcon.vue +0 -0
- package/src/{icons → components/icons}/LogoutIcon.vue +0 -0
- package/src/{icons → components/icons}/MapIcon.vue +0 -0
- package/src/{icons → components/icons}/MenuIcon.vue +0 -0
- package/src/{icons → components/icons}/MinusIcon.vue +0 -0
- package/src/{icons → components/icons}/ObjectAttributeIcon.vue +0 -0
- package/src/{icons → components/icons}/ObjectSelectIcon.vue +0 -0
- package/src/{icons → components/icons}/ObliqueViewIcon.vue +0 -0
- package/src/{icons → components/icons}/PdfIcon.vue +0 -0
- package/src/{icons → components/icons}/PedestrianIcon.vue +0 -0
- package/src/{icons → components/icons}/PenIcon.vue +0 -0
- package/src/{icons → components/icons}/PlayCircleIcon.vue +0 -0
- package/src/{icons → components/icons}/PlusIcon.vue +0 -0
- package/src/{icons → components/icons}/PoiIcon.vue +0 -0
- package/src/{icons → components/icons}/PointSelectIcon.vue +0 -0
- package/src/{icons → components/icons}/PolygonIcon.vue +0 -0
- package/src/{icons → components/icons}/PresentationModeIcon.vue +0 -0
- package/src/{icons → components/icons}/ProgressIcon.vue +0 -0
- package/src/{icons → components/icons}/QueryIcon.vue +0 -0
- package/src/{icons → components/icons}/RectangleIcon.vue +0 -0
- package/src/{icons → components/icons}/ReturnIcon.vue +0 -0
- package/src/{icons → components/icons}/RewindIcon.vue +0 -0
- package/src/{icons → components/icons}/RotateLeftIcon.vue +0 -0
- package/src/{icons → components/icons}/RotateRightIcon.vue +0 -0
- package/src/{icons → components/icons}/ScreenshotIcon.vue +0 -0
- package/src/{icons → components/icons}/SearchIcon.vue +0 -0
- package/src/{icons → components/icons}/ShadowIcon.vue +0 -0
- package/src/{icons → components/icons}/ShapesIcon.vue +0 -0
- package/src/{icons → components/icons}/ShareIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleFilledIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleOutlinedIcon.vue +0 -0
- package/src/{icons → components/icons}/SkipNextIcon.vue +0 -0
- package/src/{icons → components/icons}/SkipPreviousIcon.vue +0 -0
- package/src/{icons → components/icons}/SplitViewIcon.vue +0 -0
- package/src/{icons → components/icons}/TerrainBoxIcon.vue +0 -0
- package/src/{icons → components/icons}/TextStyleIcon.vue +0 -0
- package/src/{icons → components/icons}/ThreeDimensionsIcon.vue +0 -0
- package/src/{icons → components/icons}/ToolsIcon.vue +0 -0
- package/src/{icons → components/icons}/TouchIcon.vue +0 -0
- package/src/{icons → components/icons}/TrashCanIcon.vue +0 -0
- package/src/{icons → components/icons}/TriangleIcon.vue +0 -0
- package/src/{icons → components/icons}/TwoDimensionsIcon.vue +0 -0
- package/src/{icons → components/icons}/UploadIcon.vue +0 -0
- package/src/{icons → components/icons}/UserProfileIcon.vue +0 -0
- package/src/{icons → components/icons}/UserShareIcon.vue +0 -0
- package/src/{icons → components/icons}/VideoRecorderIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewpointFlightIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewpointIcon.vue +0 -0
- package/src/{icons → components/icons}/Viewshed360Icon.vue +0 -0
- package/src/{icons → components/icons}/ViewshedConeIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewshedIcon.vue +0 -0
- package/src/{icons → components/icons}/WalkingIcon.vue +0 -0
- package/src/{icons → components/icons}/WallIcon.vue +0 -0
- package/src/{icons → components/icons}/WandIcon.vue +0 -0
- package/src/components/lists/VcsList.vue +21 -12
- package/src/components/lists/VcsTreeviewLeaf.vue +14 -2
- package/src/components/notification/VcsTooltip.vue +1 -1
- package/src/featureInfo/abstractFeatureInfoView.js +1 -1
- package/src/featureInfo/addressBalloonFeatureInfoView.js +1 -1
- package/src/featureInfo/balloonFeatureInfoView.js +1 -1
- package/src/featureInfo/balloonHelper.js +6 -6
- package/src/featureInfo/featureInfo.js +2 -2
- package/src/i18n/de.js +2 -6
- package/src/i18n/en.js +2 -6
- package/src/legend/legendHelper.js +4 -3
- package/src/legend/vcsLegend.vue +21 -2
- package/src/manager/window/WindowComponent.vue +42 -4
- package/src/manager/window/WindowComponentHeader.vue +1 -1
- package/src/manager/window/windowHelper.js +7 -11
- package/src/manager/window/windowManager.js +15 -11
- package/src/navigation/mapNavCompass.vue +13 -7
- package/src/navigation/mapNavigation.vue +66 -4
- package/src/navigation/orientationToolsButton.vue +1 -1
- package/src/navigation/overviewMap.js +26 -10
- package/src/navigation/vcsCompass.vue +4 -73
- package/src/setup.js +1 -1
- package/src/vuePlugins/vuetify.js +1 -1
- package/dist/assets/cesium/Workers/ArcType-c9b2b290.js +0 -25
- package/dist/assets/cesium/Workers/AttributeCompression-7b0f288d.js +0 -25
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-d0c22774.js +0 -25
- package/dist/assets/cesium/Workers/BoundingRectangle-201b1a81.js +0 -25
- package/dist/assets/cesium/Workers/BoxGeometry-4985457c.js +0 -25
- package/dist/assets/cesium/Workers/Color-cc8c18b3.js +0 -25
- package/dist/assets/cesium/Workers/ComponentDatatype-0200bf8c.js +0 -25
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4345acdf.js +0 -25
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-850a6c35.js +0 -25
- package/dist/assets/cesium/Workers/CylinderGeometry-57a1051a.js +0 -25
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-62ce5a1f.js +0 -25
- package/dist/assets/cesium/Workers/EllipseGeometry-8627398f.js +0 -25
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-e5919563.js +0 -25
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-96fd4ae1.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-8bfefbff.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidGeometry-377329b9.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-e6e16e49.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-03528f73.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-c080fd1b.js +0 -25
- package/dist/assets/cesium/Workers/EncodedCartesian3-ea0e408f.js +0 -25
- package/dist/assets/cesium/Workers/FrustumGeometry-a8b5d817.js +0 -25
- package/dist/assets/cesium/Workers/GeometryAttribute-8458a8fd.js +0 -25
- package/dist/assets/cesium/Workers/GeometryAttributes-ac0f8485.js +0 -25
- package/dist/assets/cesium/Workers/GeometryInstance-ee3aa3ba.js +0 -25
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-08ae0c50.js +0 -25
- package/dist/assets/cesium/Workers/GeometryPipeline-33ca229c.js +0 -25
- package/dist/assets/cesium/Workers/IndexDatatype-e713bfd2.js +0 -25
- package/dist/assets/cesium/Workers/IntersectionTests-eb4db8e0.js +0 -25
- package/dist/assets/cesium/Workers/Matrix2-eefef8eb.js +0 -25
- package/dist/assets/cesium/Workers/OrientedBoundingBox-5193f9a2.js +0 -25
- package/dist/assets/cesium/Workers/Plane-b0299683.js +0 -25
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-b61295f3.js +0 -25
- package/dist/assets/cesium/Workers/PolygonPipeline-eb527514.js +0 -25
- package/dist/assets/cesium/Workers/PolylinePipeline-0f23dd84.js +0 -25
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-2d903430.js +0 -25
- package/dist/assets/cesium/Workers/PrimitivePipeline-e2640413.js +0 -25
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-ae8bf8a5.js +0 -25
- package/dist/assets/cesium/Workers/RuntimeError-5baf5c66.js +0 -25
- package/dist/assets/cesium/Workers/TerrainEncoding-bc10ab54.js +0 -25
- package/dist/assets/cesium/Workers/Transforms-d2e5867e.js +0 -63
- package/dist/assets/cesium/Workers/VertexFormat-5ec0d9ff.js +0 -25
- package/dist/assets/cesium/Workers/WallGeometryLibrary-1a33e416.js +0 -25
- package/dist/assets/cesium/Workers/WebGLConstants-5b50ced1.js +0 -25
- package/dist/assets/cesium/Workers/WebMercatorProjection-cd2f30c2.js +0 -25
- package/dist/assets/cesium/Workers/_commonjsHelpers-bc29abbc.js +0 -25
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-f13aceb1.js +0 -25
- package/dist/assets/cesium/Workers/combine-7533016d.js +0 -25
- package/dist/assets/cesium/Workers/defaultValue-0c475b81.js +0 -25
- package/dist/assets/cesium/Workers/package.json +0 -1
- package/dist/assets/ui.08c48f.css +0 -1
- package/plugins/@vcmap/pluginExample/config.json +0 -6
- package/plugins/@vcmap/pluginExample/package.json +0 -7
- package/plugins/categoryTest/ItemEditor.vue +0 -13
- package/plugins/test/allIconsComponent.vue +0 -50
- package/plugins/test/index.js +0 -209
- package/plugins/wizardExample/wizardExample.vue +0 -77
- package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -85
@@ -1,25 +1,1023 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
1
|
+
define(['./AttributeCompression-b646d393', './Transforms-40229881', './Matrix2-13178034', './Matrix3-315394f6', './defaultValue-0a909f67', './TerrainEncoding-833187da', './IndexDatatype-a55ceaa1', './Check-666ab1a0', './Math-2dbd6b93', './OrientedBoundingBox-04920dc7', './createTaskProcessorWorker', './ComponentDatatype-f7b11d02', './WebGLConstants-a8cc3e8c', './combine-ca22a614', './RuntimeError-06c93819', './EllipsoidTangentPlane-214683dc', './AxisAlignedBoundingBox-ff186ccc', './IntersectionTests-f6e6bd8a', './Plane-900aa728'], (function (AttributeCompression, Transforms, Matrix2, Matrix3, defaultValue, TerrainEncoding, IndexDatatype, Check, Math$1, OrientedBoundingBox, createTaskProcessorWorker, ComponentDatatype, WebGLConstants, combine, RuntimeError, EllipsoidTangentPlane, AxisAlignedBoundingBox, IntersectionTests, Plane) { 'use strict';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Contains functions for operating on 2D triangles.
|
5
|
+
*
|
6
|
+
* @namespace Intersections2D
|
7
|
+
*/
|
8
|
+
const Intersections2D = {};
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Splits a 2D triangle at given axis-aligned threshold value and returns the resulting
|
12
|
+
* polygon on a given side of the threshold. The resulting polygon may have 0, 1, 2,
|
13
|
+
* 3, or 4 vertices.
|
14
|
+
*
|
15
|
+
* @param {Number} threshold The threshold coordinate value at which to clip the triangle.
|
16
|
+
* @param {Boolean} keepAbove true to keep the portion of the triangle above the threshold, or false
|
17
|
+
* to keep the portion below.
|
18
|
+
* @param {Number} u0 The coordinate of the first vertex in the triangle, in counter-clockwise order.
|
19
|
+
* @param {Number} u1 The coordinate of the second vertex in the triangle, in counter-clockwise order.
|
20
|
+
* @param {Number} u2 The coordinate of the third vertex in the triangle, in counter-clockwise order.
|
21
|
+
* @param {Number[]} [result] The array into which to copy the result. If this parameter is not supplied,
|
22
|
+
* a new array is constructed and returned.
|
23
|
+
* @returns {Number[]} The polygon that results after the clip, specified as a list of
|
24
|
+
* vertices. The vertices are specified in counter-clockwise order.
|
25
|
+
* Each vertex is either an index from the existing list (identified as
|
26
|
+
* a 0, 1, or 2) or -1 indicating a new vertex not in the original triangle.
|
27
|
+
* For new vertices, the -1 is followed by three additional numbers: the
|
28
|
+
* index of each of the two original vertices forming the line segment that
|
29
|
+
* the new vertex lies on, and the fraction of the distance from the first
|
30
|
+
* vertex to the second one.
|
31
|
+
*
|
32
|
+
* @example
|
33
|
+
* const result = Cesium.Intersections2D.clipTriangleAtAxisAlignedThreshold(0.5, false, 0.2, 0.6, 0.4);
|
34
|
+
* // result === [2, 0, -1, 1, 0, 0.25, -1, 1, 2, 0.5]
|
35
|
+
*/
|
36
|
+
Intersections2D.clipTriangleAtAxisAlignedThreshold = function (
|
37
|
+
threshold,
|
38
|
+
keepAbove,
|
39
|
+
u0,
|
40
|
+
u1,
|
41
|
+
u2,
|
42
|
+
result
|
43
|
+
) {
|
44
|
+
//>>includeStart('debug', pragmas.debug);
|
45
|
+
if (!defaultValue.defined(threshold)) {
|
46
|
+
throw new Check.DeveloperError("threshold is required.");
|
47
|
+
}
|
48
|
+
if (!defaultValue.defined(keepAbove)) {
|
49
|
+
throw new Check.DeveloperError("keepAbove is required.");
|
50
|
+
}
|
51
|
+
if (!defaultValue.defined(u0)) {
|
52
|
+
throw new Check.DeveloperError("u0 is required.");
|
53
|
+
}
|
54
|
+
if (!defaultValue.defined(u1)) {
|
55
|
+
throw new Check.DeveloperError("u1 is required.");
|
56
|
+
}
|
57
|
+
if (!defaultValue.defined(u2)) {
|
58
|
+
throw new Check.DeveloperError("u2 is required.");
|
59
|
+
}
|
60
|
+
//>>includeEnd('debug');
|
61
|
+
|
62
|
+
if (!defaultValue.defined(result)) {
|
63
|
+
result = [];
|
64
|
+
} else {
|
65
|
+
result.length = 0;
|
66
|
+
}
|
67
|
+
|
68
|
+
let u0Behind;
|
69
|
+
let u1Behind;
|
70
|
+
let u2Behind;
|
71
|
+
if (keepAbove) {
|
72
|
+
u0Behind = u0 < threshold;
|
73
|
+
u1Behind = u1 < threshold;
|
74
|
+
u2Behind = u2 < threshold;
|
75
|
+
} else {
|
76
|
+
u0Behind = u0 > threshold;
|
77
|
+
u1Behind = u1 > threshold;
|
78
|
+
u2Behind = u2 > threshold;
|
79
|
+
}
|
80
|
+
|
81
|
+
const numBehind = u0Behind + u1Behind + u2Behind;
|
82
|
+
|
83
|
+
let u01Ratio;
|
84
|
+
let u02Ratio;
|
85
|
+
let u12Ratio;
|
86
|
+
let u10Ratio;
|
87
|
+
let u20Ratio;
|
88
|
+
let u21Ratio;
|
89
|
+
|
90
|
+
if (numBehind === 1) {
|
91
|
+
if (u0Behind) {
|
92
|
+
u01Ratio = (threshold - u0) / (u1 - u0);
|
93
|
+
u02Ratio = (threshold - u0) / (u2 - u0);
|
94
|
+
|
95
|
+
result.push(1);
|
96
|
+
|
97
|
+
result.push(2);
|
98
|
+
|
99
|
+
if (u02Ratio !== 1.0) {
|
100
|
+
result.push(-1);
|
101
|
+
result.push(0);
|
102
|
+
result.push(2);
|
103
|
+
result.push(u02Ratio);
|
104
|
+
}
|
105
|
+
|
106
|
+
if (u01Ratio !== 1.0) {
|
107
|
+
result.push(-1);
|
108
|
+
result.push(0);
|
109
|
+
result.push(1);
|
110
|
+
result.push(u01Ratio);
|
111
|
+
}
|
112
|
+
} else if (u1Behind) {
|
113
|
+
u12Ratio = (threshold - u1) / (u2 - u1);
|
114
|
+
u10Ratio = (threshold - u1) / (u0 - u1);
|
115
|
+
|
116
|
+
result.push(2);
|
117
|
+
|
118
|
+
result.push(0);
|
119
|
+
|
120
|
+
if (u10Ratio !== 1.0) {
|
121
|
+
result.push(-1);
|
122
|
+
result.push(1);
|
123
|
+
result.push(0);
|
124
|
+
result.push(u10Ratio);
|
125
|
+
}
|
126
|
+
|
127
|
+
if (u12Ratio !== 1.0) {
|
128
|
+
result.push(-1);
|
129
|
+
result.push(1);
|
130
|
+
result.push(2);
|
131
|
+
result.push(u12Ratio);
|
132
|
+
}
|
133
|
+
} else if (u2Behind) {
|
134
|
+
u20Ratio = (threshold - u2) / (u0 - u2);
|
135
|
+
u21Ratio = (threshold - u2) / (u1 - u2);
|
136
|
+
|
137
|
+
result.push(0);
|
138
|
+
|
139
|
+
result.push(1);
|
140
|
+
|
141
|
+
if (u21Ratio !== 1.0) {
|
142
|
+
result.push(-1);
|
143
|
+
result.push(2);
|
144
|
+
result.push(1);
|
145
|
+
result.push(u21Ratio);
|
146
|
+
}
|
147
|
+
|
148
|
+
if (u20Ratio !== 1.0) {
|
149
|
+
result.push(-1);
|
150
|
+
result.push(2);
|
151
|
+
result.push(0);
|
152
|
+
result.push(u20Ratio);
|
153
|
+
}
|
154
|
+
}
|
155
|
+
} else if (numBehind === 2) {
|
156
|
+
if (!u0Behind && u0 !== threshold) {
|
157
|
+
u10Ratio = (threshold - u1) / (u0 - u1);
|
158
|
+
u20Ratio = (threshold - u2) / (u0 - u2);
|
159
|
+
|
160
|
+
result.push(0);
|
161
|
+
|
162
|
+
result.push(-1);
|
163
|
+
result.push(1);
|
164
|
+
result.push(0);
|
165
|
+
result.push(u10Ratio);
|
166
|
+
|
167
|
+
result.push(-1);
|
168
|
+
result.push(2);
|
169
|
+
result.push(0);
|
170
|
+
result.push(u20Ratio);
|
171
|
+
} else if (!u1Behind && u1 !== threshold) {
|
172
|
+
u21Ratio = (threshold - u2) / (u1 - u2);
|
173
|
+
u01Ratio = (threshold - u0) / (u1 - u0);
|
174
|
+
|
175
|
+
result.push(1);
|
176
|
+
|
177
|
+
result.push(-1);
|
178
|
+
result.push(2);
|
179
|
+
result.push(1);
|
180
|
+
result.push(u21Ratio);
|
181
|
+
|
182
|
+
result.push(-1);
|
183
|
+
result.push(0);
|
184
|
+
result.push(1);
|
185
|
+
result.push(u01Ratio);
|
186
|
+
} else if (!u2Behind && u2 !== threshold) {
|
187
|
+
u02Ratio = (threshold - u0) / (u2 - u0);
|
188
|
+
u12Ratio = (threshold - u1) / (u2 - u1);
|
189
|
+
|
190
|
+
result.push(2);
|
191
|
+
|
192
|
+
result.push(-1);
|
193
|
+
result.push(0);
|
194
|
+
result.push(2);
|
195
|
+
result.push(u02Ratio);
|
196
|
+
|
197
|
+
result.push(-1);
|
198
|
+
result.push(1);
|
199
|
+
result.push(2);
|
200
|
+
result.push(u12Ratio);
|
201
|
+
}
|
202
|
+
} else if (numBehind !== 3) {
|
203
|
+
// Completely in front of threshold
|
204
|
+
result.push(0);
|
205
|
+
result.push(1);
|
206
|
+
result.push(2);
|
207
|
+
}
|
208
|
+
// else Completely behind threshold
|
209
|
+
|
210
|
+
return result;
|
211
|
+
};
|
212
|
+
|
213
|
+
/**
|
214
|
+
* Compute the barycentric coordinates of a 2D position within a 2D triangle.
|
215
|
+
*
|
216
|
+
* @param {Number} x The x coordinate of the position for which to find the barycentric coordinates.
|
217
|
+
* @param {Number} y The y coordinate of the position for which to find the barycentric coordinates.
|
218
|
+
* @param {Number} x1 The x coordinate of the triangle's first vertex.
|
219
|
+
* @param {Number} y1 The y coordinate of the triangle's first vertex.
|
220
|
+
* @param {Number} x2 The x coordinate of the triangle's second vertex.
|
221
|
+
* @param {Number} y2 The y coordinate of the triangle's second vertex.
|
222
|
+
* @param {Number} x3 The x coordinate of the triangle's third vertex.
|
223
|
+
* @param {Number} y3 The y coordinate of the triangle's third vertex.
|
224
|
+
* @param {Cartesian3} [result] The instance into to which to copy the result. If this parameter
|
225
|
+
* is undefined, a new instance is created and returned.
|
226
|
+
* @returns {Cartesian3} The barycentric coordinates of the position within the triangle.
|
227
|
+
*
|
228
|
+
* @example
|
229
|
+
* const result = Cesium.Intersections2D.computeBarycentricCoordinates(0.0, 0.0, 0.0, 1.0, -1, -0.5, 1, -0.5);
|
230
|
+
* // result === new Cesium.Cartesian3(1.0 / 3.0, 1.0 / 3.0, 1.0 / 3.0);
|
231
|
+
*/
|
232
|
+
Intersections2D.computeBarycentricCoordinates = function (
|
233
|
+
x,
|
234
|
+
y,
|
235
|
+
x1,
|
236
|
+
y1,
|
237
|
+
x2,
|
238
|
+
y2,
|
239
|
+
x3,
|
240
|
+
y3,
|
241
|
+
result
|
242
|
+
) {
|
243
|
+
//>>includeStart('debug', pragmas.debug);
|
244
|
+
if (!defaultValue.defined(x)) {
|
245
|
+
throw new Check.DeveloperError("x is required.");
|
246
|
+
}
|
247
|
+
if (!defaultValue.defined(y)) {
|
248
|
+
throw new Check.DeveloperError("y is required.");
|
249
|
+
}
|
250
|
+
if (!defaultValue.defined(x1)) {
|
251
|
+
throw new Check.DeveloperError("x1 is required.");
|
252
|
+
}
|
253
|
+
if (!defaultValue.defined(y1)) {
|
254
|
+
throw new Check.DeveloperError("y1 is required.");
|
255
|
+
}
|
256
|
+
if (!defaultValue.defined(x2)) {
|
257
|
+
throw new Check.DeveloperError("x2 is required.");
|
258
|
+
}
|
259
|
+
if (!defaultValue.defined(y2)) {
|
260
|
+
throw new Check.DeveloperError("y2 is required.");
|
261
|
+
}
|
262
|
+
if (!defaultValue.defined(x3)) {
|
263
|
+
throw new Check.DeveloperError("x3 is required.");
|
264
|
+
}
|
265
|
+
if (!defaultValue.defined(y3)) {
|
266
|
+
throw new Check.DeveloperError("y3 is required.");
|
267
|
+
}
|
268
|
+
//>>includeEnd('debug');
|
269
|
+
|
270
|
+
const x1mx3 = x1 - x3;
|
271
|
+
const x3mx2 = x3 - x2;
|
272
|
+
const y2my3 = y2 - y3;
|
273
|
+
const y1my3 = y1 - y3;
|
274
|
+
const inverseDeterminant = 1.0 / (y2my3 * x1mx3 + x3mx2 * y1my3);
|
275
|
+
const ymy3 = y - y3;
|
276
|
+
const xmx3 = x - x3;
|
277
|
+
const l1 = (y2my3 * xmx3 + x3mx2 * ymy3) * inverseDeterminant;
|
278
|
+
const l2 = (-y1my3 * xmx3 + x1mx3 * ymy3) * inverseDeterminant;
|
279
|
+
const l3 = 1.0 - l1 - l2;
|
280
|
+
|
281
|
+
if (defaultValue.defined(result)) {
|
282
|
+
result.x = l1;
|
283
|
+
result.y = l2;
|
284
|
+
result.z = l3;
|
285
|
+
return result;
|
286
|
+
}
|
287
|
+
return new Matrix3.Cartesian3(l1, l2, l3);
|
288
|
+
};
|
289
|
+
|
290
|
+
/**
|
291
|
+
* Compute the intersection between 2 line segments
|
292
|
+
*
|
293
|
+
* @param {Number} x00 The x coordinate of the first line's first vertex.
|
294
|
+
* @param {Number} y00 The y coordinate of the first line's first vertex.
|
295
|
+
* @param {Number} x01 The x coordinate of the first line's second vertex.
|
296
|
+
* @param {Number} y01 The y coordinate of the first line's second vertex.
|
297
|
+
* @param {Number} x10 The x coordinate of the second line's first vertex.
|
298
|
+
* @param {Number} y10 The y coordinate of the second line's first vertex.
|
299
|
+
* @param {Number} x11 The x coordinate of the second line's second vertex.
|
300
|
+
* @param {Number} y11 The y coordinate of the second line's second vertex.
|
301
|
+
* @param {Cartesian2} [result] The instance into to which to copy the result. If this parameter
|
302
|
+
* is undefined, a new instance is created and returned.
|
303
|
+
* @returns {Cartesian2} The intersection point, undefined if there is no intersection point or lines are coincident.
|
304
|
+
*
|
305
|
+
* @example
|
306
|
+
* const result = Cesium.Intersections2D.computeLineSegmentLineSegmentIntersection(0.0, 0.0, 0.0, 2.0, -1, 1, 1, 1);
|
307
|
+
* // result === new Cesium.Cartesian2(0.0, 1.0);
|
308
|
+
*/
|
309
|
+
Intersections2D.computeLineSegmentLineSegmentIntersection = function (
|
310
|
+
x00,
|
311
|
+
y00,
|
312
|
+
x01,
|
313
|
+
y01,
|
314
|
+
x10,
|
315
|
+
y10,
|
316
|
+
x11,
|
317
|
+
y11,
|
318
|
+
result
|
319
|
+
) {
|
320
|
+
//>>includeStart('debug', pragmas.debug);
|
321
|
+
Check.Check.typeOf.number("x00", x00);
|
322
|
+
Check.Check.typeOf.number("y00", y00);
|
323
|
+
Check.Check.typeOf.number("x01", x01);
|
324
|
+
Check.Check.typeOf.number("y01", y01);
|
325
|
+
Check.Check.typeOf.number("x10", x10);
|
326
|
+
Check.Check.typeOf.number("y10", y10);
|
327
|
+
Check.Check.typeOf.number("x11", x11);
|
328
|
+
Check.Check.typeOf.number("y11", y11);
|
329
|
+
//>>includeEnd('debug');
|
330
|
+
|
331
|
+
const numerator1A = (x11 - x10) * (y00 - y10) - (y11 - y10) * (x00 - x10);
|
332
|
+
const numerator1B = (x01 - x00) * (y00 - y10) - (y01 - y00) * (x00 - x10);
|
333
|
+
const denominator1 = (y11 - y10) * (x01 - x00) - (x11 - x10) * (y01 - y00);
|
334
|
+
|
335
|
+
// If denominator = 0, then lines are parallel. If denominator = 0 and both numerators are 0, then coincident
|
336
|
+
if (denominator1 === 0) {
|
337
|
+
return;
|
338
|
+
}
|
339
|
+
|
340
|
+
const ua1 = numerator1A / denominator1;
|
341
|
+
const ub1 = numerator1B / denominator1;
|
342
|
+
|
343
|
+
if (ua1 >= 0 && ua1 <= 1 && ub1 >= 0 && ub1 <= 1) {
|
344
|
+
if (!defaultValue.defined(result)) {
|
345
|
+
result = new Matrix2.Cartesian2();
|
346
|
+
}
|
347
|
+
|
348
|
+
result.x = x00 + ua1 * (x01 - x00);
|
349
|
+
result.y = y00 + ua1 * (y01 - y00);
|
350
|
+
|
351
|
+
return result;
|
352
|
+
}
|
353
|
+
};
|
354
|
+
var Intersections2D$1 = Intersections2D;
|
355
|
+
|
356
|
+
const maxShort = 32767;
|
357
|
+
const halfMaxShort = (maxShort / 2) | 0;
|
358
|
+
|
359
|
+
const clipScratch = [];
|
360
|
+
const clipScratch2 = [];
|
361
|
+
const verticesScratch = [];
|
362
|
+
const cartographicScratch = new Matrix3.Cartographic();
|
363
|
+
let cartesian3Scratch = new Matrix3.Cartesian3();
|
364
|
+
const uScratch = [];
|
365
|
+
const vScratch = [];
|
366
|
+
const heightScratch = [];
|
367
|
+
const indicesScratch = [];
|
368
|
+
const normalsScratch = [];
|
369
|
+
const horizonOcclusionPointScratch = new Matrix3.Cartesian3();
|
370
|
+
const boundingSphereScratch = new Transforms.BoundingSphere();
|
371
|
+
const orientedBoundingBoxScratch = new OrientedBoundingBox.OrientedBoundingBox();
|
372
|
+
const decodeTexCoordsScratch = new Matrix2.Cartesian2();
|
373
|
+
const octEncodedNormalScratch = new Matrix3.Cartesian3();
|
374
|
+
|
375
|
+
function upsampleQuantizedTerrainMesh(parameters, transferableObjects) {
|
376
|
+
const isEastChild = parameters.isEastChild;
|
377
|
+
const isNorthChild = parameters.isNorthChild;
|
378
|
+
|
379
|
+
const minU = isEastChild ? halfMaxShort : 0;
|
380
|
+
const maxU = isEastChild ? maxShort : halfMaxShort;
|
381
|
+
const minV = isNorthChild ? halfMaxShort : 0;
|
382
|
+
const maxV = isNorthChild ? maxShort : halfMaxShort;
|
383
|
+
|
384
|
+
const uBuffer = uScratch;
|
385
|
+
const vBuffer = vScratch;
|
386
|
+
const heightBuffer = heightScratch;
|
387
|
+
const normalBuffer = normalsScratch;
|
388
|
+
|
389
|
+
uBuffer.length = 0;
|
390
|
+
vBuffer.length = 0;
|
391
|
+
heightBuffer.length = 0;
|
392
|
+
normalBuffer.length = 0;
|
393
|
+
|
394
|
+
const indices = indicesScratch;
|
395
|
+
indices.length = 0;
|
396
|
+
|
397
|
+
const vertexMap = {};
|
398
|
+
|
399
|
+
const parentVertices = parameters.vertices;
|
400
|
+
let parentIndices = parameters.indices;
|
401
|
+
parentIndices = parentIndices.subarray(0, parameters.indexCountWithoutSkirts);
|
402
|
+
|
403
|
+
const encoding = TerrainEncoding.TerrainEncoding.clone(parameters.encoding);
|
404
|
+
const hasVertexNormals = encoding.hasVertexNormals;
|
405
|
+
|
406
|
+
let vertexCount = 0;
|
407
|
+
const quantizedVertexCount = parameters.vertexCountWithoutSkirts;
|
408
|
+
|
409
|
+
const parentMinimumHeight = parameters.minimumHeight;
|
410
|
+
const parentMaximumHeight = parameters.maximumHeight;
|
411
|
+
|
412
|
+
const parentUBuffer = new Array(quantizedVertexCount);
|
413
|
+
const parentVBuffer = new Array(quantizedVertexCount);
|
414
|
+
const parentHeightBuffer = new Array(quantizedVertexCount);
|
415
|
+
const parentNormalBuffer = hasVertexNormals
|
416
|
+
? new Array(quantizedVertexCount * 2)
|
417
|
+
: undefined;
|
418
|
+
|
419
|
+
const threshold = 20;
|
420
|
+
let height;
|
421
|
+
|
422
|
+
let i, n;
|
423
|
+
let u, v;
|
424
|
+
for (i = 0, n = 0; i < quantizedVertexCount; ++i, n += 2) {
|
425
|
+
const texCoords = encoding.decodeTextureCoordinates(
|
426
|
+
parentVertices,
|
427
|
+
i,
|
428
|
+
decodeTexCoordsScratch
|
429
|
+
);
|
430
|
+
height = encoding.decodeHeight(parentVertices, i);
|
431
|
+
|
432
|
+
u = Math$1.CesiumMath.clamp((texCoords.x * maxShort) | 0, 0, maxShort);
|
433
|
+
v = Math$1.CesiumMath.clamp((texCoords.y * maxShort) | 0, 0, maxShort);
|
434
|
+
parentHeightBuffer[i] = Math$1.CesiumMath.clamp(
|
435
|
+
(((height - parentMinimumHeight) /
|
436
|
+
(parentMaximumHeight - parentMinimumHeight)) *
|
437
|
+
maxShort) |
|
438
|
+
0,
|
439
|
+
0,
|
440
|
+
maxShort
|
441
|
+
);
|
442
|
+
|
443
|
+
if (u < threshold) {
|
444
|
+
u = 0;
|
445
|
+
}
|
446
|
+
|
447
|
+
if (v < threshold) {
|
448
|
+
v = 0;
|
449
|
+
}
|
450
|
+
|
451
|
+
if (maxShort - u < threshold) {
|
452
|
+
u = maxShort;
|
453
|
+
}
|
454
|
+
|
455
|
+
if (maxShort - v < threshold) {
|
456
|
+
v = maxShort;
|
457
|
+
}
|
458
|
+
|
459
|
+
parentUBuffer[i] = u;
|
460
|
+
parentVBuffer[i] = v;
|
461
|
+
|
462
|
+
if (hasVertexNormals) {
|
463
|
+
const encodedNormal = encoding.getOctEncodedNormal(
|
464
|
+
parentVertices,
|
465
|
+
i,
|
466
|
+
octEncodedNormalScratch
|
467
|
+
);
|
468
|
+
parentNormalBuffer[n] = encodedNormal.x;
|
469
|
+
parentNormalBuffer[n + 1] = encodedNormal.y;
|
470
|
+
}
|
471
|
+
|
472
|
+
if (
|
473
|
+
((isEastChild && u >= halfMaxShort) ||
|
474
|
+
(!isEastChild && u <= halfMaxShort)) &&
|
475
|
+
((isNorthChild && v >= halfMaxShort) ||
|
476
|
+
(!isNorthChild && v <= halfMaxShort))
|
477
|
+
) {
|
478
|
+
vertexMap[i] = vertexCount;
|
479
|
+
uBuffer.push(u);
|
480
|
+
vBuffer.push(v);
|
481
|
+
heightBuffer.push(parentHeightBuffer[i]);
|
482
|
+
if (hasVertexNormals) {
|
483
|
+
normalBuffer.push(parentNormalBuffer[n]);
|
484
|
+
normalBuffer.push(parentNormalBuffer[n + 1]);
|
485
|
+
}
|
486
|
+
|
487
|
+
++vertexCount;
|
488
|
+
}
|
489
|
+
}
|
490
|
+
|
491
|
+
const triangleVertices = [];
|
492
|
+
triangleVertices.push(new Vertex());
|
493
|
+
triangleVertices.push(new Vertex());
|
494
|
+
triangleVertices.push(new Vertex());
|
495
|
+
|
496
|
+
const clippedTriangleVertices = [];
|
497
|
+
clippedTriangleVertices.push(new Vertex());
|
498
|
+
clippedTriangleVertices.push(new Vertex());
|
499
|
+
clippedTriangleVertices.push(new Vertex());
|
500
|
+
|
501
|
+
let clippedIndex;
|
502
|
+
let clipped2;
|
503
|
+
|
504
|
+
for (i = 0; i < parentIndices.length; i += 3) {
|
505
|
+
const i0 = parentIndices[i];
|
506
|
+
const i1 = parentIndices[i + 1];
|
507
|
+
const i2 = parentIndices[i + 2];
|
508
|
+
|
509
|
+
const u0 = parentUBuffer[i0];
|
510
|
+
const u1 = parentUBuffer[i1];
|
511
|
+
const u2 = parentUBuffer[i2];
|
512
|
+
|
513
|
+
triangleVertices[0].initializeIndexed(
|
514
|
+
parentUBuffer,
|
515
|
+
parentVBuffer,
|
516
|
+
parentHeightBuffer,
|
517
|
+
parentNormalBuffer,
|
518
|
+
i0
|
519
|
+
);
|
520
|
+
triangleVertices[1].initializeIndexed(
|
521
|
+
parentUBuffer,
|
522
|
+
parentVBuffer,
|
523
|
+
parentHeightBuffer,
|
524
|
+
parentNormalBuffer,
|
525
|
+
i1
|
526
|
+
);
|
527
|
+
triangleVertices[2].initializeIndexed(
|
528
|
+
parentUBuffer,
|
529
|
+
parentVBuffer,
|
530
|
+
parentHeightBuffer,
|
531
|
+
parentNormalBuffer,
|
532
|
+
i2
|
533
|
+
);
|
534
|
+
|
535
|
+
// Clip triangle on the east-west boundary.
|
536
|
+
const clipped = Intersections2D$1.clipTriangleAtAxisAlignedThreshold(
|
537
|
+
halfMaxShort,
|
538
|
+
isEastChild,
|
539
|
+
u0,
|
540
|
+
u1,
|
541
|
+
u2,
|
542
|
+
clipScratch
|
543
|
+
);
|
544
|
+
|
545
|
+
// Get the first clipped triangle, if any.
|
546
|
+
clippedIndex = 0;
|
547
|
+
|
548
|
+
if (clippedIndex >= clipped.length) {
|
549
|
+
continue;
|
550
|
+
}
|
551
|
+
clippedIndex = clippedTriangleVertices[0].initializeFromClipResult(
|
552
|
+
clipped,
|
553
|
+
clippedIndex,
|
554
|
+
triangleVertices
|
555
|
+
);
|
556
|
+
|
557
|
+
if (clippedIndex >= clipped.length) {
|
558
|
+
continue;
|
559
|
+
}
|
560
|
+
clippedIndex = clippedTriangleVertices[1].initializeFromClipResult(
|
561
|
+
clipped,
|
562
|
+
clippedIndex,
|
563
|
+
triangleVertices
|
564
|
+
);
|
565
|
+
|
566
|
+
if (clippedIndex >= clipped.length) {
|
567
|
+
continue;
|
568
|
+
}
|
569
|
+
clippedIndex = clippedTriangleVertices[2].initializeFromClipResult(
|
570
|
+
clipped,
|
571
|
+
clippedIndex,
|
572
|
+
triangleVertices
|
573
|
+
);
|
574
|
+
|
575
|
+
// Clip the triangle against the North-south boundary.
|
576
|
+
clipped2 = Intersections2D$1.clipTriangleAtAxisAlignedThreshold(
|
577
|
+
halfMaxShort,
|
578
|
+
isNorthChild,
|
579
|
+
clippedTriangleVertices[0].getV(),
|
580
|
+
clippedTriangleVertices[1].getV(),
|
581
|
+
clippedTriangleVertices[2].getV(),
|
582
|
+
clipScratch2
|
583
|
+
);
|
584
|
+
addClippedPolygon(
|
585
|
+
uBuffer,
|
586
|
+
vBuffer,
|
587
|
+
heightBuffer,
|
588
|
+
normalBuffer,
|
589
|
+
indices,
|
590
|
+
vertexMap,
|
591
|
+
clipped2,
|
592
|
+
clippedTriangleVertices,
|
593
|
+
hasVertexNormals
|
594
|
+
);
|
595
|
+
|
596
|
+
// If there's another vertex in the original clipped result,
|
597
|
+
// it forms a second triangle. Clip it as well.
|
598
|
+
if (clippedIndex < clipped.length) {
|
599
|
+
clippedTriangleVertices[2].clone(clippedTriangleVertices[1]);
|
600
|
+
clippedTriangleVertices[2].initializeFromClipResult(
|
601
|
+
clipped,
|
602
|
+
clippedIndex,
|
603
|
+
triangleVertices
|
604
|
+
);
|
605
|
+
|
606
|
+
clipped2 = Intersections2D$1.clipTriangleAtAxisAlignedThreshold(
|
607
|
+
halfMaxShort,
|
608
|
+
isNorthChild,
|
609
|
+
clippedTriangleVertices[0].getV(),
|
610
|
+
clippedTriangleVertices[1].getV(),
|
611
|
+
clippedTriangleVertices[2].getV(),
|
612
|
+
clipScratch2
|
613
|
+
);
|
614
|
+
addClippedPolygon(
|
615
|
+
uBuffer,
|
616
|
+
vBuffer,
|
617
|
+
heightBuffer,
|
618
|
+
normalBuffer,
|
619
|
+
indices,
|
620
|
+
vertexMap,
|
621
|
+
clipped2,
|
622
|
+
clippedTriangleVertices,
|
623
|
+
hasVertexNormals
|
624
|
+
);
|
625
|
+
}
|
626
|
+
}
|
627
|
+
|
628
|
+
const uOffset = isEastChild ? -maxShort : 0;
|
629
|
+
const vOffset = isNorthChild ? -maxShort : 0;
|
630
|
+
|
631
|
+
const westIndices = [];
|
632
|
+
const southIndices = [];
|
633
|
+
const eastIndices = [];
|
634
|
+
const northIndices = [];
|
635
|
+
|
636
|
+
let minimumHeight = Number.MAX_VALUE;
|
637
|
+
let maximumHeight = -minimumHeight;
|
638
|
+
|
639
|
+
const cartesianVertices = verticesScratch;
|
640
|
+
cartesianVertices.length = 0;
|
641
|
+
|
642
|
+
const ellipsoid = Matrix3.Ellipsoid.clone(parameters.ellipsoid);
|
643
|
+
const rectangle = Matrix2.Rectangle.clone(parameters.childRectangle);
|
644
|
+
|
645
|
+
const north = rectangle.north;
|
646
|
+
const south = rectangle.south;
|
647
|
+
let east = rectangle.east;
|
648
|
+
const west = rectangle.west;
|
649
|
+
|
650
|
+
if (east < west) {
|
651
|
+
east += Math$1.CesiumMath.TWO_PI;
|
652
|
+
}
|
653
|
+
|
654
|
+
for (i = 0; i < uBuffer.length; ++i) {
|
655
|
+
u = Math.round(uBuffer[i]);
|
656
|
+
if (u <= minU) {
|
657
|
+
westIndices.push(i);
|
658
|
+
u = 0;
|
659
|
+
} else if (u >= maxU) {
|
660
|
+
eastIndices.push(i);
|
661
|
+
u = maxShort;
|
662
|
+
} else {
|
663
|
+
u = u * 2 + uOffset;
|
664
|
+
}
|
665
|
+
|
666
|
+
uBuffer[i] = u;
|
667
|
+
|
668
|
+
v = Math.round(vBuffer[i]);
|
669
|
+
if (v <= minV) {
|
670
|
+
southIndices.push(i);
|
671
|
+
v = 0;
|
672
|
+
} else if (v >= maxV) {
|
673
|
+
northIndices.push(i);
|
674
|
+
v = maxShort;
|
675
|
+
} else {
|
676
|
+
v = v * 2 + vOffset;
|
677
|
+
}
|
678
|
+
|
679
|
+
vBuffer[i] = v;
|
680
|
+
|
681
|
+
height = Math$1.CesiumMath.lerp(
|
682
|
+
parentMinimumHeight,
|
683
|
+
parentMaximumHeight,
|
684
|
+
heightBuffer[i] / maxShort
|
685
|
+
);
|
686
|
+
if (height < minimumHeight) {
|
687
|
+
minimumHeight = height;
|
688
|
+
}
|
689
|
+
if (height > maximumHeight) {
|
690
|
+
maximumHeight = height;
|
691
|
+
}
|
692
|
+
|
693
|
+
heightBuffer[i] = height;
|
694
|
+
|
695
|
+
cartographicScratch.longitude = Math$1.CesiumMath.lerp(west, east, u / maxShort);
|
696
|
+
cartographicScratch.latitude = Math$1.CesiumMath.lerp(south, north, v / maxShort);
|
697
|
+
cartographicScratch.height = height;
|
698
|
+
|
699
|
+
ellipsoid.cartographicToCartesian(cartographicScratch, cartesian3Scratch);
|
700
|
+
|
701
|
+
cartesianVertices.push(cartesian3Scratch.x);
|
702
|
+
cartesianVertices.push(cartesian3Scratch.y);
|
703
|
+
cartesianVertices.push(cartesian3Scratch.z);
|
704
|
+
}
|
705
|
+
|
706
|
+
const boundingSphere = Transforms.BoundingSphere.fromVertices(
|
707
|
+
cartesianVertices,
|
708
|
+
Matrix3.Cartesian3.ZERO,
|
709
|
+
3,
|
710
|
+
boundingSphereScratch
|
711
|
+
);
|
712
|
+
const orientedBoundingBox = OrientedBoundingBox.OrientedBoundingBox.fromRectangle(
|
713
|
+
rectangle,
|
714
|
+
minimumHeight,
|
715
|
+
maximumHeight,
|
716
|
+
ellipsoid,
|
717
|
+
orientedBoundingBoxScratch
|
718
|
+
);
|
719
|
+
|
720
|
+
const occluder = new TerrainEncoding.EllipsoidalOccluder(ellipsoid);
|
721
|
+
const horizonOcclusionPoint = occluder.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(
|
722
|
+
boundingSphere.center,
|
723
|
+
cartesianVertices,
|
724
|
+
3,
|
725
|
+
boundingSphere.center,
|
726
|
+
minimumHeight,
|
727
|
+
horizonOcclusionPointScratch
|
728
|
+
);
|
729
|
+
|
730
|
+
const heightRange = maximumHeight - minimumHeight;
|
731
|
+
|
732
|
+
const vertices = new Uint16Array(
|
733
|
+
uBuffer.length + vBuffer.length + heightBuffer.length
|
734
|
+
);
|
735
|
+
|
736
|
+
for (i = 0; i < uBuffer.length; ++i) {
|
737
|
+
vertices[i] = uBuffer[i];
|
738
|
+
}
|
739
|
+
|
740
|
+
let start = uBuffer.length;
|
741
|
+
|
742
|
+
for (i = 0; i < vBuffer.length; ++i) {
|
743
|
+
vertices[start + i] = vBuffer[i];
|
744
|
+
}
|
745
|
+
|
746
|
+
start += vBuffer.length;
|
747
|
+
|
748
|
+
for (i = 0; i < heightBuffer.length; ++i) {
|
749
|
+
vertices[start + i] =
|
750
|
+
(maxShort * (heightBuffer[i] - minimumHeight)) / heightRange;
|
751
|
+
}
|
752
|
+
|
753
|
+
const indicesTypedArray = IndexDatatype.IndexDatatype.createTypedArray(
|
754
|
+
uBuffer.length,
|
755
|
+
indices
|
756
|
+
);
|
757
|
+
|
758
|
+
let encodedNormals;
|
759
|
+
if (hasVertexNormals) {
|
760
|
+
const normalArray = new Uint8Array(normalBuffer);
|
761
|
+
transferableObjects.push(
|
762
|
+
vertices.buffer,
|
763
|
+
indicesTypedArray.buffer,
|
764
|
+
normalArray.buffer
|
765
|
+
);
|
766
|
+
encodedNormals = normalArray.buffer;
|
767
|
+
} else {
|
768
|
+
transferableObjects.push(vertices.buffer, indicesTypedArray.buffer);
|
769
|
+
}
|
770
|
+
|
771
|
+
return {
|
772
|
+
vertices: vertices.buffer,
|
773
|
+
encodedNormals: encodedNormals,
|
774
|
+
indices: indicesTypedArray.buffer,
|
775
|
+
minimumHeight: minimumHeight,
|
776
|
+
maximumHeight: maximumHeight,
|
777
|
+
westIndices: westIndices,
|
778
|
+
southIndices: southIndices,
|
779
|
+
eastIndices: eastIndices,
|
780
|
+
northIndices: northIndices,
|
781
|
+
boundingSphere: boundingSphere,
|
782
|
+
orientedBoundingBox: orientedBoundingBox,
|
783
|
+
horizonOcclusionPoint: horizonOcclusionPoint,
|
784
|
+
};
|
785
|
+
}
|
786
|
+
|
787
|
+
function Vertex() {
|
788
|
+
this.vertexBuffer = undefined;
|
789
|
+
this.index = undefined;
|
790
|
+
this.first = undefined;
|
791
|
+
this.second = undefined;
|
792
|
+
this.ratio = undefined;
|
793
|
+
}
|
794
|
+
|
795
|
+
Vertex.prototype.clone = function (result) {
|
796
|
+
if (!defaultValue.defined(result)) {
|
797
|
+
result = new Vertex();
|
798
|
+
}
|
799
|
+
|
800
|
+
result.uBuffer = this.uBuffer;
|
801
|
+
result.vBuffer = this.vBuffer;
|
802
|
+
result.heightBuffer = this.heightBuffer;
|
803
|
+
result.normalBuffer = this.normalBuffer;
|
804
|
+
result.index = this.index;
|
805
|
+
result.first = this.first;
|
806
|
+
result.second = this.second;
|
807
|
+
result.ratio = this.ratio;
|
808
|
+
|
809
|
+
return result;
|
810
|
+
};
|
811
|
+
|
812
|
+
Vertex.prototype.initializeIndexed = function (
|
813
|
+
uBuffer,
|
814
|
+
vBuffer,
|
815
|
+
heightBuffer,
|
816
|
+
normalBuffer,
|
817
|
+
index
|
818
|
+
) {
|
819
|
+
this.uBuffer = uBuffer;
|
820
|
+
this.vBuffer = vBuffer;
|
821
|
+
this.heightBuffer = heightBuffer;
|
822
|
+
this.normalBuffer = normalBuffer;
|
823
|
+
this.index = index;
|
824
|
+
this.first = undefined;
|
825
|
+
this.second = undefined;
|
826
|
+
this.ratio = undefined;
|
827
|
+
};
|
828
|
+
|
829
|
+
Vertex.prototype.initializeFromClipResult = function (
|
830
|
+
clipResult,
|
831
|
+
index,
|
832
|
+
vertices
|
833
|
+
) {
|
834
|
+
let nextIndex = index + 1;
|
835
|
+
|
836
|
+
if (clipResult[index] !== -1) {
|
837
|
+
vertices[clipResult[index]].clone(this);
|
838
|
+
} else {
|
839
|
+
this.vertexBuffer = undefined;
|
840
|
+
this.index = undefined;
|
841
|
+
this.first = vertices[clipResult[nextIndex]];
|
842
|
+
++nextIndex;
|
843
|
+
this.second = vertices[clipResult[nextIndex]];
|
844
|
+
++nextIndex;
|
845
|
+
this.ratio = clipResult[nextIndex];
|
846
|
+
++nextIndex;
|
847
|
+
}
|
848
|
+
|
849
|
+
return nextIndex;
|
850
|
+
};
|
851
|
+
|
852
|
+
Vertex.prototype.getKey = function () {
|
853
|
+
if (this.isIndexed()) {
|
854
|
+
return this.index;
|
855
|
+
}
|
856
|
+
return JSON.stringify({
|
857
|
+
first: this.first.getKey(),
|
858
|
+
second: this.second.getKey(),
|
859
|
+
ratio: this.ratio,
|
860
|
+
});
|
861
|
+
};
|
862
|
+
|
863
|
+
Vertex.prototype.isIndexed = function () {
|
864
|
+
return defaultValue.defined(this.index);
|
865
|
+
};
|
866
|
+
|
867
|
+
Vertex.prototype.getH = function () {
|
868
|
+
if (defaultValue.defined(this.index)) {
|
869
|
+
return this.heightBuffer[this.index];
|
870
|
+
}
|
871
|
+
return Math$1.CesiumMath.lerp(this.first.getH(), this.second.getH(), this.ratio);
|
872
|
+
};
|
873
|
+
|
874
|
+
Vertex.prototype.getU = function () {
|
875
|
+
if (defaultValue.defined(this.index)) {
|
876
|
+
return this.uBuffer[this.index];
|
877
|
+
}
|
878
|
+
return Math$1.CesiumMath.lerp(this.first.getU(), this.second.getU(), this.ratio);
|
879
|
+
};
|
880
|
+
|
881
|
+
Vertex.prototype.getV = function () {
|
882
|
+
if (defaultValue.defined(this.index)) {
|
883
|
+
return this.vBuffer[this.index];
|
884
|
+
}
|
885
|
+
return Math$1.CesiumMath.lerp(this.first.getV(), this.second.getV(), this.ratio);
|
886
|
+
};
|
887
|
+
|
888
|
+
let encodedScratch = new Matrix2.Cartesian2();
|
889
|
+
// An upsampled triangle may be clipped twice before it is assigned an index
|
890
|
+
// In this case, we need a buffer to handle the recursion of getNormalX() and getNormalY().
|
891
|
+
let depth = -1;
|
892
|
+
const cartesianScratch1 = [new Matrix3.Cartesian3(), new Matrix3.Cartesian3()];
|
893
|
+
const cartesianScratch2 = [new Matrix3.Cartesian3(), new Matrix3.Cartesian3()];
|
894
|
+
function lerpOctEncodedNormal(vertex, result) {
|
895
|
+
++depth;
|
896
|
+
|
897
|
+
let first = cartesianScratch1[depth];
|
898
|
+
let second = cartesianScratch2[depth];
|
899
|
+
|
900
|
+
first = AttributeCompression.AttributeCompression.octDecode(
|
901
|
+
vertex.first.getNormalX(),
|
902
|
+
vertex.first.getNormalY(),
|
903
|
+
first
|
904
|
+
);
|
905
|
+
second = AttributeCompression.AttributeCompression.octDecode(
|
906
|
+
vertex.second.getNormalX(),
|
907
|
+
vertex.second.getNormalY(),
|
908
|
+
second
|
909
|
+
);
|
910
|
+
cartesian3Scratch = Matrix3.Cartesian3.lerp(
|
911
|
+
first,
|
912
|
+
second,
|
913
|
+
vertex.ratio,
|
914
|
+
cartesian3Scratch
|
915
|
+
);
|
916
|
+
Matrix3.Cartesian3.normalize(cartesian3Scratch, cartesian3Scratch);
|
917
|
+
|
918
|
+
AttributeCompression.AttributeCompression.octEncode(cartesian3Scratch, result);
|
919
|
+
|
920
|
+
--depth;
|
921
|
+
|
922
|
+
return result;
|
923
|
+
}
|
924
|
+
|
925
|
+
Vertex.prototype.getNormalX = function () {
|
926
|
+
if (defaultValue.defined(this.index)) {
|
927
|
+
return this.normalBuffer[this.index * 2];
|
928
|
+
}
|
929
|
+
|
930
|
+
encodedScratch = lerpOctEncodedNormal(this, encodedScratch);
|
931
|
+
return encodedScratch.x;
|
932
|
+
};
|
933
|
+
|
934
|
+
Vertex.prototype.getNormalY = function () {
|
935
|
+
if (defaultValue.defined(this.index)) {
|
936
|
+
return this.normalBuffer[this.index * 2 + 1];
|
937
|
+
}
|
938
|
+
|
939
|
+
encodedScratch = lerpOctEncodedNormal(this, encodedScratch);
|
940
|
+
return encodedScratch.y;
|
941
|
+
};
|
942
|
+
|
943
|
+
const polygonVertices = [];
|
944
|
+
polygonVertices.push(new Vertex());
|
945
|
+
polygonVertices.push(new Vertex());
|
946
|
+
polygonVertices.push(new Vertex());
|
947
|
+
polygonVertices.push(new Vertex());
|
948
|
+
|
949
|
+
function addClippedPolygon(
|
950
|
+
uBuffer,
|
951
|
+
vBuffer,
|
952
|
+
heightBuffer,
|
953
|
+
normalBuffer,
|
954
|
+
indices,
|
955
|
+
vertexMap,
|
956
|
+
clipped,
|
957
|
+
triangleVertices,
|
958
|
+
hasVertexNormals
|
959
|
+
) {
|
960
|
+
if (clipped.length === 0) {
|
961
|
+
return;
|
962
|
+
}
|
963
|
+
|
964
|
+
let numVertices = 0;
|
965
|
+
let clippedIndex = 0;
|
966
|
+
while (clippedIndex < clipped.length) {
|
967
|
+
clippedIndex = polygonVertices[numVertices++].initializeFromClipResult(
|
968
|
+
clipped,
|
969
|
+
clippedIndex,
|
970
|
+
triangleVertices
|
971
|
+
);
|
972
|
+
}
|
973
|
+
|
974
|
+
for (let i = 0; i < numVertices; ++i) {
|
975
|
+
const polygonVertex = polygonVertices[i];
|
976
|
+
if (!polygonVertex.isIndexed()) {
|
977
|
+
const key = polygonVertex.getKey();
|
978
|
+
if (defaultValue.defined(vertexMap[key])) {
|
979
|
+
polygonVertex.newIndex = vertexMap[key];
|
980
|
+
} else {
|
981
|
+
const newIndex = uBuffer.length;
|
982
|
+
uBuffer.push(polygonVertex.getU());
|
983
|
+
vBuffer.push(polygonVertex.getV());
|
984
|
+
heightBuffer.push(polygonVertex.getH());
|
985
|
+
if (hasVertexNormals) {
|
986
|
+
normalBuffer.push(polygonVertex.getNormalX());
|
987
|
+
normalBuffer.push(polygonVertex.getNormalY());
|
988
|
+
}
|
989
|
+
polygonVertex.newIndex = newIndex;
|
990
|
+
vertexMap[key] = newIndex;
|
991
|
+
}
|
992
|
+
} else {
|
993
|
+
polygonVertex.newIndex = vertexMap[polygonVertex.index];
|
994
|
+
polygonVertex.uBuffer = uBuffer;
|
995
|
+
polygonVertex.vBuffer = vBuffer;
|
996
|
+
polygonVertex.heightBuffer = heightBuffer;
|
997
|
+
if (hasVertexNormals) {
|
998
|
+
polygonVertex.normalBuffer = normalBuffer;
|
999
|
+
}
|
1000
|
+
}
|
1001
|
+
}
|
1002
|
+
|
1003
|
+
if (numVertices === 3) {
|
1004
|
+
// A triangle.
|
1005
|
+
indices.push(polygonVertices[0].newIndex);
|
1006
|
+
indices.push(polygonVertices[1].newIndex);
|
1007
|
+
indices.push(polygonVertices[2].newIndex);
|
1008
|
+
} else if (numVertices === 4) {
|
1009
|
+
// A quad - two triangles.
|
1010
|
+
indices.push(polygonVertices[0].newIndex);
|
1011
|
+
indices.push(polygonVertices[1].newIndex);
|
1012
|
+
indices.push(polygonVertices[2].newIndex);
|
1013
|
+
|
1014
|
+
indices.push(polygonVertices[0].newIndex);
|
1015
|
+
indices.push(polygonVertices[2].newIndex);
|
1016
|
+
indices.push(polygonVertices[3].newIndex);
|
1017
|
+
}
|
1018
|
+
}
|
1019
|
+
var upsampleQuantizedTerrainMesh$1 = createTaskProcessorWorker(upsampleQuantizedTerrainMesh);
|
1020
|
+
|
1021
|
+
return upsampleQuantizedTerrainMesh$1;
|
1022
|
+
|
1023
|
+
}));
|