@cesium/engine 24.0.0 → 25.0.0
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/Workers/{chunk-NKT5K3K3.js → chunk-35H3UBIO.js} +13 -12
- package/Build/Workers/{chunk-5A2SW66E.js → chunk-3LSD7OOA.js} +16 -16
- package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-3RFFPH4M.js} +1 -1
- package/Build/Workers/{chunk-EDXL4W76.js → chunk-3TKLDHV3.js} +2 -2
- package/Build/Workers/{chunk-GQUNK2XC.js → chunk-3VDDRF2E.js} +14 -14
- package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-3XY3MVPG.js} +4 -4
- package/Build/Workers/{chunk-A47HVBC5.js → chunk-4GF4MVPY.js} +7 -7
- package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-4MTRQFJP.js} +3 -2
- package/Build/Workers/{chunk-N65BAKSH.js → chunk-4QQXGTCE.js} +8 -8
- package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-4XXHJI6Y.js} +17 -17
- package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-5T6QQAJW.js} +3 -2
- package/Build/Workers/{chunk-UIGVOKKI.js → chunk-6SDGQI27.js} +3 -2
- package/Build/Workers/{chunk-ILMFADZA.js → chunk-77RL3MBD.js} +6 -5
- package/Build/Workers/{chunk-2N4KDHS3.js → chunk-7LSFAEWF.js} +12 -11
- package/Build/Workers/{chunk-44EMEGKW.js → chunk-A7A433MD.js} +5 -5
- package/Build/Workers/{chunk-J6AW5YHS.js → chunk-A7ZBMVFS.js} +14 -14
- package/Build/Workers/{chunk-XJRBB253.js → chunk-ACFFCHHZ.js} +11 -11
- package/Build/Workers/{chunk-MKM27KGV.js → chunk-AEAVLYPS.js} +2 -2
- package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-AWFZHD2B.js} +4 -4
- package/Build/Workers/{chunk-UQU4RXLT.js → chunk-BTX2NL3P.js} +50 -45
- package/Build/Workers/{chunk-4TIG36AW.js → chunk-BVAIWR7O.js} +12 -12
- package/Build/Workers/chunk-CKQP3DSS.js +973 -0
- package/Build/Workers/{chunk-VLDEUTOP.js → chunk-CZ23Y3RM.js} +2 -2
- package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DFEI5MAV.js} +7 -7
- package/Build/Workers/{chunk-AJLTU6PF.js → chunk-DH26SNAB.js} +4 -1
- package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-DYT5NR6P.js} +3 -3
- package/Build/Workers/{chunk-63SIWPLS.js → chunk-EZARA5FJ.js} +13 -13
- package/Build/Workers/{chunk-AMIHNSST.js → chunk-FIBS5S7R.js} +2 -2
- package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-FVLVVOBQ.js} +10 -10
- package/Build/Workers/{chunk-XY6HMDGI.js → chunk-GL7DNVUS.js} +5 -5
- package/Build/Workers/{chunk-6WLHJFD3.js → chunk-GPIGURCG.js} +59 -32
- package/Build/Workers/{chunk-B6SCUUFP.js → chunk-H2A4USJR.js} +10 -10
- package/Build/Workers/chunk-HSVQATK2.js +147 -0
- package/Build/Workers/{chunk-72VYSVEW.js → chunk-HVMG6AG4.js} +11 -10
- package/Build/Workers/{chunk-LXMCPFFS.js → chunk-I3A6DXYZ.js} +4 -4
- package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-ITD2IN7N.js} +2 -2
- package/Build/Workers/{chunk-RQNJD3O4.js → chunk-J3OFS2RD.js} +12 -12
- package/Build/Workers/{chunk-C6P4IG5P.js → chunk-J647NNZW.js} +6 -6
- package/Build/Workers/{chunk-7X322WP2.js → chunk-J7KQEKPK.js} +13 -13
- package/Build/Workers/{chunk-7O5XJTVE.js → chunk-K6NFIRFB.js} +5 -5
- package/Build/Workers/{chunk-AF3MU2RL.js → chunk-LH5SF3XV.js} +7 -6
- package/Build/Workers/{chunk-GOQBUCXH.js → chunk-ND3NTTOF.js} +708 -430
- package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
- package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
- package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
- package/Build/Workers/{chunk-YAOZMOFL.js → chunk-ST2UWDUU.js} +5 -5
- package/Build/Workers/{chunk-PVV64VFW.js → chunk-TA777BGS.js} +3 -2
- package/Build/Workers/{chunk-ISY4EZCA.js → chunk-TAI4HLII.js} +4 -4
- package/Build/Workers/{chunk-JCI63T3K.js → chunk-URUCCIPS.js} +6 -6
- package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-VQKLRBIK.js} +7 -7
- package/Build/Workers/{chunk-6MPGQEHA.js → chunk-WC57YYBN.js} +2 -2
- package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-WN6P5UDH.js} +12 -12
- package/Build/Workers/{chunk-LIB2H534.js → chunk-WNN5D4W3.js} +12 -11
- package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-WTQGE7Q6.js} +17 -17
- package/Build/Workers/{chunk-YJZGW74L.js → chunk-WUBKZFF6.js} +2213 -1349
- package/Build/Workers/{chunk-7TYLCBGK.js → chunk-ZAPOS52G.js} +12 -10
- package/Build/Workers/{chunk-6RMS4S72.js → chunk-ZCCIIBZT.js} +6 -6
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +175 -118
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +24 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +12 -9
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/ArcType.js +6 -1
- package/Source/Core/ArticulationStageType.js +5 -1
- package/Source/Core/AssociativeArray.js +100 -94
- package/Source/Core/BoundingSphere.js +1296 -1300
- package/Source/Core/Cartesian3.js +1 -2
- package/Source/Core/Cartographic.js +257 -249
- package/Source/Core/ClockRange.js +6 -1
- package/Source/Core/ClockStep.js +6 -1
- package/Source/Core/Color.js +844 -835
- package/Source/Core/ComponentDatatype.js +4 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/Ellipsoid.js +637 -660
- package/Source/Core/ExtrapolationType.js +6 -1
- package/Source/Core/GeocodeType.js +6 -1
- package/Source/Core/GeographicProjection.js +74 -74
- package/Source/Core/GeographicTilingScheme.js +179 -198
- package/Source/Core/GeometryOffsetAttribute.js +7 -1
- package/Source/Core/GeometryType.js +7 -1
- package/Source/Core/HeightmapEncoding.js +6 -1
- package/Source/Core/Iau2006XysData.js +24 -13
- package/Source/Core/IndexDatatype.js +3 -1
- package/Source/Core/InterpolationType.js +5 -1
- package/Source/Core/Intersect.js +6 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocodeProviderType.js +5 -1
- package/Source/Core/JulianDate.js +850 -848
- package/Source/Core/KeyboardEventModifier.js +6 -1
- package/Source/Core/MapProjection.js +39 -44
- package/Source/Core/Matrix2.js +906 -893
- package/Source/Core/Matrix3.js +1643 -1575
- package/Source/Core/Matrix4.js +2903 -2872
- package/Source/Core/PixelFormat.js +3 -1
- package/Source/Core/PrimitiveType.js +11 -1
- package/Source/Core/Ray.js +62 -60
- package/Source/Core/Rectangle.js +913 -904
- package/Source/Core/ReferenceFrame.js +6 -1
- package/Source/Core/RequestScheduler.js +8 -3
- package/Source/Core/RequestState.js +6 -1
- package/Source/Core/RequestType.js +6 -1
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainQuantization.js +6 -1
- package/Source/Core/TilingScheme.js +100 -98
- package/Source/Core/TimeConstants.js +6 -1
- package/Source/Core/TimeStandard.js +6 -1
- package/Source/Core/TrackingReferenceFrame.js +6 -1
- package/Source/Core/Visibility.js +6 -1
- package/Source/Core/VulkanConstants.js +6 -1
- package/Source/Core/WebGLConstants.js +6 -1
- package/Source/Core/WebMercatorProjection.js +108 -109
- package/Source/Core/WebMercatorTilingScheme.js +246 -242
- package/Source/Core/WindingOrder.js +3 -1
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
- package/Source/DataSources/StripeOrientation.js +6 -1
- package/Source/Renderer/BufferUsage.js +20 -9
- package/Source/Renderer/Context.js +2 -29
- package/Source/Renderer/DrawCommand.js +435 -403
- package/Source/Renderer/MipmapHint.js +5 -1
- package/Source/Renderer/Pass.js +7 -1
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderbufferFormat.js +5 -1
- package/Source/Renderer/ShaderDestination.js +4 -1
- package/Source/Renderer/TextureMagnificationFilter.js +3 -1
- package/Source/Renderer/TextureMinificationFilter.js +3 -1
- package/Source/Renderer/TextureWrap.js +5 -1
- package/Source/Scene/AlphaMode.js +5 -1
- package/Source/Scene/ArcGisBaseMapType.js +6 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/AttributeType.js +3 -1
- package/Source/Scene/Axis.js +3 -1
- package/Source/Scene/BingMapsStyle.js +6 -1
- package/Source/Scene/BlendEquation.js +6 -1
- package/Source/Scene/BlendFunction.js +6 -1
- package/Source/Scene/BlendOption.js +6 -1
- package/Source/Scene/BlendingState.js +6 -1
- package/Source/Scene/BufferLoader.js +0 -2
- package/Source/Scene/BufferPointCollection.js +4 -1
- package/Source/Scene/BufferPolygonCollection.js +3 -1
- package/Source/Scene/BufferPolylineCollection.js +3 -1
- package/Source/Scene/BufferPrimitiveCollection.js +140 -24
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContentState.js +6 -1
- package/Source/Scene/Cesium3DTileContentType.js +3 -1
- package/Source/Scene/Cesium3DTileFeature.js +289 -306
- package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
- package/Source/Scene/Cesium3DTilePass.js +5 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
- package/Source/Scene/Cesium3DTileRefine.js +6 -1
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +1 -1
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GltfBufferViewLoader.js +0 -2
- package/Source/Scene/GltfDracoLoader.js +0 -2
- package/Source/Scene/GltfImageLoader.js +0 -3
- package/Source/Scene/GltfIndexBufferLoader.js +0 -4
- package/Source/Scene/GltfJsonLoader.js +0 -2
- package/Source/Scene/GltfLoader.js +0 -5
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +0 -2
- package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
- package/Source/Scene/GltfTextureLoader.js +0 -2
- package/Source/Scene/GltfVertexBufferLoader.js +0 -4
- package/Source/Scene/HeightReference.js +5 -1
- package/Source/Scene/HorizontalOrigin.js +6 -1
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
- package/Source/Scene/InstanceAttributeSemantic.js +3 -1
- package/Source/Scene/IonWorldImageryStyle.js +6 -1
- package/Source/Scene/JobType.js +6 -1
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/MetadataComponentType.js +3 -1
- package/Source/Scene/MetadataSchemaLoader.js +0 -2
- package/Source/Scene/MetadataSemantic.js +6 -2
- package/Source/Scene/MetadataType.js +3 -1
- package/Source/Scene/Model/B3dmLoader.js +0 -3
- package/Source/Scene/Model/CustomShaderMode.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +44 -71
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
- package/Source/Scene/Model/GeoJsonLoader.js +0 -2
- package/Source/Scene/Model/I3dmLoader.js +0 -3
- package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
- package/Source/Scene/Model/LightingModel.js +5 -1
- package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
- package/Source/Scene/Model/ModelReader.js +474 -3
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/PntsLoader.js +4 -3
- package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
- package/Source/Scene/Model/UniformType.js +5 -1
- package/Source/Scene/Model/VaryingType.js +5 -1
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +73 -28
- package/Source/Scene/Model/pickModel.js +94 -299
- package/Source/Scene/ModelAnimationLoop.js +6 -1
- package/Source/Scene/ModelAnimationState.js +6 -1
- package/Source/Scene/ModelComponents.js +8 -1
- package/Source/Scene/PrimitiveState.js +7 -1
- package/Source/Scene/QuadtreeOccluders.js +20 -15
- package/Source/Scene/QuadtreeTile.js +547 -541
- package/Source/Scene/QuadtreeTileLoadState.js +6 -1
- package/Source/Scene/QuadtreeTileProvider.js +159 -175
- package/Source/Scene/ResourceLoader.js +0 -1
- package/Source/Scene/ResourceLoaderState.js +7 -1
- package/Source/Scene/SceneMode.js +4 -1
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +1 -1
- package/Source/Scene/SplitDirection.js +6 -1
- package/Source/Scene/StencilFunction.js +6 -1
- package/Source/Scene/StencilOperation.js +6 -1
- package/Source/Scene/TerrainState.js +7 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/VectorGltf3DTileContent.js +72 -51
- package/Source/Scene/VertexAttributeSemantic.js +3 -1
- package/Source/Scene/VerticalOrigin.js +6 -1
- package/Source/Scene/VoxelBoxShape.js +12 -6
- package/Source/Scene/VoxelContent.js +2 -0
- package/Source/Scene/VoxelCylinderShape.js +39 -38
- package/Source/Scene/VoxelEllipsoidShape.js +46 -96
- package/Source/Scene/VoxelMetadataOrder.js +6 -1
- package/Source/Scene/VoxelProvider.js +1 -0
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/renderBufferPointCollection.js +17 -66
- package/Source/Scene/renderBufferPolygonCollection.js +21 -68
- package/Source/Scene/renderBufferPolylineCollection.js +22 -73
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
- package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
- package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
- package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
- package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
- package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
- package/Source/Widget/CesiumWidget.js +11 -4
- package/index.d.ts +343 -309
- package/index.js +443 -438
- package/package.json +2 -2
- package/Build/Workers/chunk-DVB56LG7.js +0 -114
- package/Build/Workers/chunk-HKUES6UG.js +0 -2357
- package/Build/Workers/chunk-HRHRYFHS.js +0 -940
- package/Build/Workers/chunk-KLPGTXS3.js +0 -642
- package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
|
@@ -18,6 +18,7 @@ import Pass from "../Renderer/Pass.js";
|
|
|
18
18
|
import createVectorTileBuffersFromModelComponents from "./Model/createVectorTileBuffersFromModelComponents.js";
|
|
19
19
|
import defined from "../Core/defined.js";
|
|
20
20
|
import destroyObject from "../Core/destroyObject.js";
|
|
21
|
+
import DeveloperError from "../Core/DeveloperError.js";
|
|
21
22
|
|
|
22
23
|
/** @import BufferPrimitive from "./BufferPrimitive.js"; */
|
|
23
24
|
/** @import BufferPrimitiveCollection from "./BufferPrimitiveCollection.js"; */
|
|
@@ -25,7 +26,7 @@ import destroyObject from "../Core/destroyObject.js";
|
|
|
25
26
|
/** @import Cesium3DContentGroup from "./Cesium3DContentGroup.js"; */
|
|
26
27
|
/** @import Cesium3DTile from "./Cesium3DTile.js"; */
|
|
27
28
|
/** @import Cesium3DTileBatchTable from "./Cesium3DTileBatchTable.js"; */
|
|
28
|
-
/** @import
|
|
29
|
+
/** @import Cesium3DTileVectorFeature from "./Cesium3DTileVectorFeature.js";*/
|
|
29
30
|
/** @import Cesium3DTileset from "./Cesium3DTileset.js"; */
|
|
30
31
|
/** @import FrameState from "./FrameState.js"; */
|
|
31
32
|
/** @import ImplicitMetadataView from "./ImplicitMetadataView.js"; */
|
|
@@ -70,7 +71,7 @@ class VectorGltf3DTileContent {
|
|
|
70
71
|
this._resource = resource;
|
|
71
72
|
|
|
72
73
|
/** @type {Model} */
|
|
73
|
-
this.
|
|
74
|
+
this._model = undefined;
|
|
74
75
|
|
|
75
76
|
/** @type {Array<BufferPrimitiveCollection<BufferPrimitive>>} */
|
|
76
77
|
this._collections = [];
|
|
@@ -78,6 +79,9 @@ class VectorGltf3DTileContent {
|
|
|
78
79
|
/** @type {Array<Matrix4>} */
|
|
79
80
|
this._collectionLocalMatrices = [];
|
|
80
81
|
|
|
82
|
+
/** @type {Map<number, Cesium3DTileVectorFeature>} */
|
|
83
|
+
this._features = new Map();
|
|
84
|
+
|
|
81
85
|
/** @type {ImplicitMetadataView} */
|
|
82
86
|
this._metadata = undefined;
|
|
83
87
|
/** @type {Cesium3DContentGroup} */
|
|
@@ -94,25 +98,27 @@ class VectorGltf3DTileContent {
|
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
get featuresLength() {
|
|
97
|
-
return this._collections.reduce(
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
return this._collections.reduce(
|
|
102
|
+
(acc, collection) => acc + collection.primitiveCount,
|
|
103
|
+
0,
|
|
104
|
+
);
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
get pointsLength() {
|
|
103
108
|
return this._collections
|
|
104
109
|
.filter((collection) => collection instanceof BufferPointCollection)
|
|
105
|
-
.reduce((
|
|
106
|
-
return totalPoints + collection.primitiveCount;
|
|
107
|
-
}, 0);
|
|
110
|
+
.reduce((acc, collection) => acc + collection.primitiveCount, 0);
|
|
108
111
|
}
|
|
109
112
|
|
|
110
113
|
get trianglesLength() {
|
|
111
|
-
return this._collections
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
return this._collections.reduce((acc, collection) => {
|
|
115
|
+
if (collection instanceof BufferPolygonCollection) {
|
|
116
|
+
return acc + collection.triangleCount;
|
|
117
|
+
} else if (collection instanceof BufferPolylineCollection) {
|
|
118
|
+
return acc + (collection.vertexCount - collection.primitiveCount) * 2;
|
|
119
|
+
}
|
|
120
|
+
return acc;
|
|
121
|
+
}, 0);
|
|
116
122
|
}
|
|
117
123
|
|
|
118
124
|
get geometryByteLength() {
|
|
@@ -150,9 +156,17 @@ class VectorGltf3DTileContent {
|
|
|
150
156
|
return this._resource.getUrlComponent(true);
|
|
151
157
|
}
|
|
152
158
|
|
|
153
|
-
/** @type {Cesium3DTileBatchTable} */
|
|
159
|
+
/** @type {Cesium3DTileBatchTable[]} */
|
|
160
|
+
get batchTables() {
|
|
161
|
+
return this._model._featureTables;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @type {Cesium3DTileBatchTable}
|
|
166
|
+
* @deprecated See {@link batchTables}.
|
|
167
|
+
*/
|
|
154
168
|
get batchTable() {
|
|
155
|
-
|
|
169
|
+
throw new DeveloperError("Deprecated: Use `content.batchTables`.");
|
|
156
170
|
}
|
|
157
171
|
|
|
158
172
|
/** @type {ImplicitMetadataView} */
|
|
@@ -174,20 +188,21 @@ class VectorGltf3DTileContent {
|
|
|
174
188
|
}
|
|
175
189
|
|
|
176
190
|
/**
|
|
177
|
-
* @param {number}
|
|
178
|
-
* @returns {
|
|
191
|
+
* @param {number} featureId
|
|
192
|
+
* @returns {Cesium3DTileVectorFeature}
|
|
179
193
|
*/
|
|
180
|
-
getFeature(
|
|
181
|
-
return
|
|
194
|
+
getFeature(featureId) {
|
|
195
|
+
return this._features.get(featureId);
|
|
182
196
|
}
|
|
183
197
|
|
|
184
198
|
/**
|
|
185
|
-
* @param {number}
|
|
186
|
-
* @param {string}
|
|
199
|
+
* @param {number} featureId
|
|
200
|
+
* @param {string} name
|
|
187
201
|
* @returns {boolean}
|
|
188
202
|
*/
|
|
189
|
-
hasProperty(
|
|
190
|
-
|
|
203
|
+
hasProperty(featureId, name) {
|
|
204
|
+
const feature = this.getFeature(featureId);
|
|
205
|
+
return feature ? feature.hasProperty(name) : false;
|
|
191
206
|
}
|
|
192
207
|
|
|
193
208
|
/**
|
|
@@ -203,9 +218,6 @@ class VectorGltf3DTileContent {
|
|
|
203
218
|
* @param {*} style
|
|
204
219
|
*/
|
|
205
220
|
applyStyle(style) {
|
|
206
|
-
const show = style.show?.evaluate(null) ?? true;
|
|
207
|
-
const color = style.color?.evaluate(null, new Color());
|
|
208
|
-
|
|
209
221
|
const isPointCollection = /** @param {unknown} c */ (c) =>
|
|
210
222
|
c instanceof BufferPointCollection;
|
|
211
223
|
const isPolylineCollection = /** @param {unknown} c */ (c) =>
|
|
@@ -213,33 +225,42 @@ class VectorGltf3DTileContent {
|
|
|
213
225
|
const isPolygonCollection = /** @param {unknown} c */ (c) =>
|
|
214
226
|
c instanceof BufferPolygonCollection;
|
|
215
227
|
|
|
216
|
-
Color.clone(color, pointMaterial.color);
|
|
217
|
-
pointMaterial.size = style.pointSize?.evaluate(null);
|
|
218
|
-
pointMaterial.outlineWidth = style.pointOutlineWidth?.evaluate(null);
|
|
219
|
-
style.pointOutlineColor?.evaluate(null, pointMaterial.outlineColor);
|
|
220
228
|
for (const collection of this._collections.filter(isPointCollection)) {
|
|
221
229
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
222
230
|
collection.get(i, point);
|
|
223
|
-
|
|
231
|
+
const feature = this.getFeature(point.featureId);
|
|
232
|
+
|
|
233
|
+
point.show = style.show?.evaluate(feature) ?? true;
|
|
234
|
+
style.color?.evaluate(feature, pointMaterial.color);
|
|
235
|
+
pointMaterial.size = style.pointSize?.evaluate(feature);
|
|
236
|
+
pointMaterial.outlineWidth = style.pointOutlineWidth?.evaluate(feature);
|
|
237
|
+
style.pointOutlineColor?.evaluate(feature, pointMaterial.outlineColor);
|
|
238
|
+
|
|
224
239
|
point.setMaterial(pointMaterial);
|
|
225
240
|
}
|
|
226
241
|
}
|
|
227
242
|
|
|
228
|
-
Color.clone(color, polylineMaterial.color);
|
|
229
|
-
polylineMaterial.width = style.lineWidth?.evaluate(null) ?? 1;
|
|
230
243
|
for (const collection of this._collections.filter(isPolylineCollection)) {
|
|
231
244
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
232
245
|
collection.get(i, polyline);
|
|
233
|
-
|
|
246
|
+
const feature = this.getFeature(polyline.featureId);
|
|
247
|
+
|
|
248
|
+
polyline.show = style.show?.evaluate(feature) ?? true;
|
|
249
|
+
style.color?.evaluate(feature, polylineMaterial.color);
|
|
250
|
+
polylineMaterial.width = style.lineWidth?.evaluate(feature) ?? 1;
|
|
251
|
+
|
|
234
252
|
polyline.setMaterial(polylineMaterial);
|
|
235
253
|
}
|
|
236
254
|
}
|
|
237
255
|
|
|
238
|
-
Color.clone(color, polygonMaterial.color);
|
|
239
256
|
for (const collection of this._collections.filter(isPolygonCollection)) {
|
|
240
257
|
for (let i = 0, il = collection.primitiveCount; i < il; i++) {
|
|
241
258
|
collection.get(i, polygon);
|
|
242
|
-
|
|
259
|
+
const feature = this.getFeature(polygon.featureId);
|
|
260
|
+
|
|
261
|
+
polygon.show = style.show?.evaluate(feature) ?? true;
|
|
262
|
+
style.color?.evaluate(feature, polygonMaterial.color);
|
|
263
|
+
|
|
243
264
|
polygon.setMaterial(polygonMaterial);
|
|
244
265
|
}
|
|
245
266
|
}
|
|
@@ -250,18 +271,14 @@ class VectorGltf3DTileContent {
|
|
|
250
271
|
* @param {FrameState} frameState
|
|
251
272
|
*/
|
|
252
273
|
update(_tileset, frameState) {
|
|
253
|
-
if (defined(this.
|
|
254
|
-
const model = this.
|
|
274
|
+
if (defined(this._model) && !this._ready) {
|
|
275
|
+
const model = this._model;
|
|
255
276
|
model.modelMatrix = this._tile.computedTransform;
|
|
256
277
|
model.update(frameState);
|
|
257
278
|
|
|
258
279
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
259
280
|
if (model.ready) {
|
|
260
281
|
initializeVectorPrimitives(this);
|
|
261
|
-
if (this._decodeModel) {
|
|
262
|
-
this._decodeModel.destroy();
|
|
263
|
-
this._decodeModel = undefined;
|
|
264
|
-
}
|
|
265
282
|
this._ready = true;
|
|
266
283
|
}
|
|
267
284
|
}
|
|
@@ -297,8 +314,8 @@ class VectorGltf3DTileContent {
|
|
|
297
314
|
}
|
|
298
315
|
|
|
299
316
|
destroy() {
|
|
300
|
-
this.
|
|
301
|
-
this.
|
|
317
|
+
this._model?.destroy();
|
|
318
|
+
this._model = undefined;
|
|
302
319
|
this._collections.forEach((collection) => collection.destroy());
|
|
303
320
|
this._collections.length = 0;
|
|
304
321
|
return destroyObject(this);
|
|
@@ -313,11 +330,11 @@ class VectorGltf3DTileContent {
|
|
|
313
330
|
*/
|
|
314
331
|
static async fromGltf(tileset, tile, resource, gltf) {
|
|
315
332
|
const content = new VectorGltf3DTileContent(tileset, tile, resource);
|
|
316
|
-
const modelOptions =
|
|
317
|
-
const
|
|
333
|
+
const modelOptions = makeModelOptions(tileset, tile, content, gltf);
|
|
334
|
+
const model = await Model.fromGltfAsync(modelOptions);
|
|
318
335
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
319
|
-
|
|
320
|
-
content.
|
|
336
|
+
model.show = false;
|
|
337
|
+
content._model = model;
|
|
321
338
|
return content;
|
|
322
339
|
}
|
|
323
340
|
}
|
|
@@ -330,7 +347,7 @@ class VectorGltf3DTileContent {
|
|
|
330
347
|
* @returns {*}
|
|
331
348
|
* @ignore
|
|
332
349
|
*/
|
|
333
|
-
function
|
|
350
|
+
function makeModelOptions(tileset, tile, content, gltf) {
|
|
334
351
|
return {
|
|
335
352
|
gltf: gltf,
|
|
336
353
|
basePath: content._resource,
|
|
@@ -359,7 +376,7 @@ function makeDecodeModelOptions(tileset, tile, content, gltf) {
|
|
|
359
376
|
*/
|
|
360
377
|
function initializeVectorPrimitives(content) {
|
|
361
378
|
// @ts-expect-error Requires Model conversion to ES6 class.
|
|
362
|
-
const components = content.
|
|
379
|
+
const components = content._model.sceneGraph.components;
|
|
363
380
|
|
|
364
381
|
const axisCorrection = ModelUtility.getAxisCorrectionMatrix(
|
|
365
382
|
components.upAxis,
|
|
@@ -373,10 +390,14 @@ function initializeVectorPrimitives(content) {
|
|
|
373
390
|
content._modelMatrix,
|
|
374
391
|
);
|
|
375
392
|
|
|
376
|
-
const result = createVectorTileBuffersFromModelComponents(
|
|
393
|
+
const result = createVectorTileBuffersFromModelComponents(
|
|
394
|
+
content,
|
|
395
|
+
components,
|
|
396
|
+
);
|
|
377
397
|
|
|
378
398
|
content._collections = result.collections;
|
|
379
399
|
content._collectionLocalMatrices = result.collectionLocalMatrices;
|
|
400
|
+
content._features = result.features;
|
|
380
401
|
}
|
|
381
402
|
|
|
382
403
|
export default VectorGltf3DTileContent;
|
|
@@ -316,4 +316,6 @@ VertexAttributeSemantic.getVariableName = function (semantic, setIndex) {
|
|
|
316
316
|
return variableName;
|
|
317
317
|
};
|
|
318
318
|
|
|
319
|
-
|
|
319
|
+
Object.freeze(VertexAttributeSemantic);
|
|
320
|
+
|
|
321
|
+
export default VertexAttributeSemantic;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The vertical location of an origin relative to an object, e.g., a {@link Billboard}
|
|
3
5
|
* or {@link Label}. For example, setting the vertical origin to <code>TOP</code>
|
|
@@ -46,4 +48,7 @@ const VerticalOrigin = {
|
|
|
46
48
|
*/
|
|
47
49
|
TOP: -1,
|
|
48
50
|
};
|
|
49
|
-
|
|
51
|
+
|
|
52
|
+
Object.freeze(VerticalOrigin);
|
|
53
|
+
|
|
54
|
+
export default VerticalOrigin;
|
|
@@ -76,10 +76,16 @@ function VoxelBoxShape() {
|
|
|
76
76
|
|
|
77
77
|
this._renderBoundPlanes = new VoxelBoundsCollection({ planes: boundPlanes });
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* UV space transformation translation (JS-only, not a shader uniform)
|
|
81
|
+
* @type {Cartesian3}
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
this._localToShapeUvTranslate = new Cartesian3();
|
|
85
|
+
|
|
79
86
|
this._shaderUniforms = {
|
|
80
87
|
boxEcToXyz: new Matrix3(),
|
|
81
88
|
boxLocalToShapeUvScale: new Cartesian3(),
|
|
82
|
-
boxLocalToShapeUvTranslate: new Cartesian3(),
|
|
83
89
|
};
|
|
84
90
|
|
|
85
91
|
this._shaderDefines = {
|
|
@@ -321,13 +327,13 @@ VoxelBoxShape.prototype.update = function (
|
|
|
321
327
|
boundScale(min.z, max.z),
|
|
322
328
|
shaderUniforms.boxLocalToShapeUvScale,
|
|
323
329
|
);
|
|
324
|
-
|
|
330
|
+
this._localToShapeUvTranslate = Cartesian3.negate(
|
|
325
331
|
Cartesian3.multiplyComponents(
|
|
326
332
|
boxLocalToShapeUvScale,
|
|
327
333
|
min,
|
|
328
|
-
|
|
334
|
+
this._localToShapeUvTranslate,
|
|
329
335
|
),
|
|
330
|
-
|
|
336
|
+
this._localToShapeUvTranslate,
|
|
331
337
|
);
|
|
332
338
|
|
|
333
339
|
this._shaderMaximumIntersectionsLength = intersectionCount;
|
|
@@ -381,8 +387,8 @@ VoxelBoxShape.prototype.convertLocalToShapeUvSpace = function (
|
|
|
381
387
|
Check.typeOf.object("result", result);
|
|
382
388
|
//>>includeEnd('debug');
|
|
383
389
|
|
|
384
|
-
const { boxLocalToShapeUvScale
|
|
385
|
-
|
|
390
|
+
const { boxLocalToShapeUvScale } = this._shaderUniforms;
|
|
391
|
+
const boxLocalToShapeUvTranslate = this._localToShapeUvTranslate;
|
|
386
392
|
|
|
387
393
|
return Cartesian3.add(
|
|
388
394
|
Cartesian3.multiplyComponents(
|
|
@@ -66,6 +66,8 @@ Object.defineProperties(VoxelContent.prototype, {
|
|
|
66
66
|
* The metadata for this voxel content.
|
|
67
67
|
* The metadata is an array of typed arrays, one for each field.
|
|
68
68
|
* The data for one field is a flattened 3D array ordered by X, then Y, then Z.
|
|
69
|
+
*
|
|
70
|
+
* @memberof VoxelContent.prototype
|
|
69
71
|
* @type {Int8Array[]|Uint8Array[]|Int16Array[]|Uint16Array[]|Int32Array[]|Uint32Array[]|Float32Array[]|Float64Array[]}
|
|
70
72
|
* @readonly
|
|
71
73
|
*/
|
|
@@ -54,14 +54,20 @@ function VoxelCylinderShape() {
|
|
|
54
54
|
|
|
55
55
|
this._renderBoundPlanes = new VoxelBoundsCollection({ planes: boundPlanes });
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* UV space transformation translations (JS-only, not shader uniforms)
|
|
59
|
+
* Components: [radius, angle, height] translation
|
|
60
|
+
* @type {Cartesian3}
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
this._localToShapeUvTranslate = new Cartesian3();
|
|
64
|
+
|
|
57
65
|
this._shaderUniforms = {
|
|
58
66
|
cameraShapePosition: new Cartesian3(),
|
|
59
67
|
cylinderEcToRadialTangentUp: new Matrix3(),
|
|
60
68
|
cylinderRenderRadiusMinMax: new Cartesian2(),
|
|
61
69
|
cylinderRenderAngleMinMax: new Cartesian2(),
|
|
62
|
-
|
|
63
|
-
cylinderLocalToShapeUvAngle: new Cartesian2(),
|
|
64
|
-
cylinderLocalToShapeUvHeight: new Cartesian2(),
|
|
70
|
+
cylinderLocalToShapeUvScale: new Cartesian3(),
|
|
65
71
|
cylinderShapeUvAngleRangeOrigin: 0.0,
|
|
66
72
|
};
|
|
67
73
|
|
|
@@ -359,30 +365,22 @@ VoxelCylinderShape.prototype.update = function (
|
|
|
359
365
|
}
|
|
360
366
|
|
|
361
367
|
const radiusRange = maxBounds.x - minBounds.x;
|
|
368
|
+
// Defaults are for the case where radiusRange is zero, to avoid division by zero.
|
|
362
369
|
let radialScale = 0.0;
|
|
363
370
|
let radialOffset = 1.0;
|
|
364
371
|
if (radiusRange !== 0.0) {
|
|
365
372
|
radialScale = 1.0 / radiusRange;
|
|
366
373
|
radialOffset = -minBounds.x * radialScale;
|
|
367
374
|
}
|
|
368
|
-
shaderUniforms.cylinderLocalToShapeUvRadius = Cartesian2.fromElements(
|
|
369
|
-
radialScale,
|
|
370
|
-
radialOffset,
|
|
371
|
-
shaderUniforms.cylinderLocalToShapeUvRadius,
|
|
372
|
-
);
|
|
373
375
|
|
|
374
376
|
const heightRange = maxBounds.z - minBounds.z; // Default 2.0
|
|
377
|
+
// Defaults are for the case where heightRange is zero, to avoid division by zero.
|
|
375
378
|
let heightScale = 0.0;
|
|
376
379
|
let heightOffset = 1.0;
|
|
377
380
|
if (heightRange !== 0.0) {
|
|
378
381
|
heightScale = 1.0 / heightRange;
|
|
379
382
|
heightOffset = -minBounds.z * heightScale;
|
|
380
383
|
}
|
|
381
|
-
shaderUniforms.cylinderLocalToShapeUvHeight = Cartesian2.fromElements(
|
|
382
|
-
heightScale,
|
|
383
|
-
heightOffset,
|
|
384
|
-
shaderUniforms.cylinderLocalToShapeUvHeight,
|
|
385
|
-
);
|
|
386
384
|
|
|
387
385
|
if (renderHasAngle) {
|
|
388
386
|
shaderDefines["CYLINDER_HAS_RENDER_BOUNDS_ANGLE"] = true;
|
|
@@ -414,23 +412,31 @@ VoxelCylinderShape.prototype.update = function (
|
|
|
414
412
|
const uvAngleRangeOrigin = (uvMaxAngle + 0.5 * uvAngleRangeZero) % 1.0;
|
|
415
413
|
shaderUniforms.cylinderShapeUvAngleRangeOrigin = uvAngleRangeOrigin;
|
|
416
414
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
);
|
|
423
|
-
} else {
|
|
424
|
-
const scale = defaultAngleRange / shapeAngleRange;
|
|
415
|
+
// Defaults are for the case where shapeAngleRange is zero, to avoid division by zero.
|
|
416
|
+
let angleScale = 0.0;
|
|
417
|
+
let angleOffset = 1.0;
|
|
418
|
+
if (shapeAngleRange > epsilonAngle) {
|
|
419
|
+
angleScale = defaultAngleRange / shapeAngleRange;
|
|
425
420
|
const shiftedMinAngle = uvMinAngle - uvAngleRangeOrigin;
|
|
426
|
-
|
|
427
|
-
shaderUniforms.cylinderLocalToShapeUvAngle = Cartesian2.fromElements(
|
|
428
|
-
scale,
|
|
429
|
-
offset,
|
|
430
|
-
shaderUniforms.cylinderLocalToShapeUvAngle,
|
|
431
|
-
);
|
|
421
|
+
angleOffset = -angleScale * (shiftedMinAngle - Math.floor(shiftedMinAngle));
|
|
432
422
|
}
|
|
433
423
|
|
|
424
|
+
// Store scales in shader uniforms (GPU)
|
|
425
|
+
shaderUniforms.cylinderLocalToShapeUvScale = Cartesian3.fromElements(
|
|
426
|
+
radialScale,
|
|
427
|
+
angleScale,
|
|
428
|
+
heightScale,
|
|
429
|
+
shaderUniforms.cylinderLocalToShapeUvScale,
|
|
430
|
+
);
|
|
431
|
+
|
|
432
|
+
// Store translations in private property (JS-only)
|
|
433
|
+
this._localToShapeUvTranslate = Cartesian3.fromElements(
|
|
434
|
+
radialOffset,
|
|
435
|
+
angleOffset,
|
|
436
|
+
heightOffset,
|
|
437
|
+
this._localToShapeUvTranslate,
|
|
438
|
+
);
|
|
439
|
+
|
|
434
440
|
this._shaderMaximumIntersectionsLength = intersectionCount;
|
|
435
441
|
|
|
436
442
|
return true;
|
|
@@ -523,25 +529,20 @@ VoxelCylinderShape.prototype.convertLocalToShapeUvSpace = function (
|
|
|
523
529
|
let angle = Math.atan2(positionLocal.y, positionLocal.x);
|
|
524
530
|
let height = positionLocal.z;
|
|
525
531
|
|
|
526
|
-
const {
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
cylinderShapeUvAngleRangeOrigin,
|
|
530
|
-
cylinderLocalToShapeUvHeight,
|
|
531
|
-
} = this._shaderUniforms;
|
|
532
|
+
const { cylinderLocalToShapeUvScale, cylinderShapeUvAngleRangeOrigin } =
|
|
533
|
+
this._shaderUniforms;
|
|
534
|
+
const localToShapeUvTranslate = this._localToShapeUvTranslate;
|
|
532
535
|
|
|
533
|
-
radius =
|
|
534
|
-
radius * cylinderLocalToShapeUvRadius.x + cylinderLocalToShapeUvRadius.y;
|
|
536
|
+
radius = radius * cylinderLocalToShapeUvScale.x + localToShapeUvTranslate.x;
|
|
535
537
|
|
|
536
538
|
// Convert angle to a "UV" in [0,1] with 0 defined at the center of the unoccupied space.
|
|
537
539
|
angle = (angle + Math.PI) / (2.0 * Math.PI);
|
|
538
540
|
angle -= cylinderShapeUvAngleRangeOrigin;
|
|
539
541
|
angle = angle - Math.floor(angle);
|
|
540
542
|
// Scale and shift so [0,1] covers the occupied space.
|
|
541
|
-
angle = angle *
|
|
543
|
+
angle = angle * cylinderLocalToShapeUvScale.y + localToShapeUvTranslate.y;
|
|
542
544
|
|
|
543
|
-
height =
|
|
544
|
-
height * cylinderLocalToShapeUvHeight.x + cylinderLocalToShapeUvHeight.y;
|
|
545
|
+
height = height * cylinderLocalToShapeUvScale.z + localToShapeUvTranslate.z;
|
|
545
546
|
|
|
546
547
|
return Cartesian3.fromElements(radius, angle, height, result);
|
|
547
548
|
};
|