@cesium/engine 15.0.0 → 17.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-XED3RXKO.js → chunk-236N6BJN.js} +4 -4
- package/Build/Workers/{chunk-TU6ZXHVU.js → chunk-2BJXFXD7.js} +46 -42
- package/Build/Workers/{chunk-3LHBH4TC.js → chunk-37PA7GZW.js} +7 -7
- package/Build/Workers/{chunk-FMZ5CX6V.js → chunk-4BGKMM7J.js} +1 -1
- package/Build/Workers/{chunk-L5SO4Y5V.js → chunk-4TIR5UPL.js} +1 -1
- package/Build/Workers/{chunk-NAGMYRDW.js → chunk-5PC577K7.js} +17 -20
- package/Build/Workers/{chunk-XDHM4G3P.js → chunk-5RPUEFSA.js} +129 -146
- package/Build/Workers/{chunk-ZVDLC3T4.js → chunk-5YEFZMMM.js} +25 -30
- package/Build/Workers/{chunk-VMVPONIV.js → chunk-77MDEA47.js} +5 -5
- package/Build/Workers/{chunk-QTEX3Y4V.js → chunk-7IIMO7ZZ.js} +33 -41
- package/Build/Workers/{chunk-Q5BHMNKU.js → chunk-7PHT4JHA.js} +27 -29
- package/Build/Workers/{chunk-25TOENEE.js → chunk-C5DCX2YQ.js} +9 -12
- package/Build/Workers/{chunk-B2Y4ZS6X.js → chunk-CAKU6ZPR.js} +9 -12
- package/Build/Workers/{chunk-RRN6LRDX.js → chunk-CBFJVM6I.js} +26 -28
- package/Build/Workers/{chunk-GGV2XJHE.js → chunk-CC2WKHIW.js} +13 -16
- package/Build/Workers/{chunk-K5G2WELR.js → chunk-CQMXZF4A.js} +12 -17
- package/Build/Workers/{chunk-67ONR44K.js → chunk-DRMXU674.js} +7 -10
- package/Build/Workers/{chunk-3LZF23RY.js → chunk-E7SMO47Q.js} +7 -10
- package/Build/Workers/{chunk-PUTA3AE2.js → chunk-G6JUXZUO.js} +4 -4
- package/Build/Workers/{chunk-CHX2K5AC.js → chunk-GO3RZX2R.js} +14 -17
- package/Build/Workers/{chunk-7ITUZTFH.js → chunk-HBNWBMAM.js} +1 -1
- package/Build/Workers/{chunk-3JZGPJMZ.js → chunk-HGEGZ67N.js} +6 -6
- package/Build/Workers/{chunk-GK4QU6QI.js → chunk-IFIS4CVK.js} +2 -2
- package/Build/Workers/{chunk-DYJHEP3B.js → chunk-IKDQX7DY.js} +6 -12
- package/Build/Workers/{chunk-FRAWHNSR.js → chunk-J2HTPGC7.js} +2 -2
- package/Build/Workers/{chunk-YNYCGTQH.js → chunk-K5JTWJPE.js} +5 -8
- package/Build/Workers/{chunk-6EDBC234.js → chunk-KE45DUDH.js} +18 -20
- package/Build/Workers/{chunk-TFCOEX3W.js → chunk-LPGOAMYH.js} +2 -2
- package/Build/Workers/{chunk-WPXU45PH.js → chunk-LVGYWPEX.js} +4 -4
- package/Build/Workers/{chunk-B2UQN3DH.js → chunk-MAIKDIBS.js} +6 -6
- package/Build/Workers/{chunk-MWJW37I7.js → chunk-MS5NWDHH.js} +2 -2
- package/Build/Workers/{chunk-2AVIUB5H.js → chunk-NZSBSY5K.js} +2 -2
- package/Build/Workers/{chunk-OYO6TKMU.js → chunk-OBHLT34A.js} +7 -7
- package/Build/Workers/{chunk-RO2Z3LCR.js → chunk-P2N5IDWU.js} +21 -23
- package/Build/Workers/{chunk-BD2TPFGC.js → chunk-P57PR3WM.js} +9 -11
- package/Build/Workers/{chunk-HYPB7FAV.js → chunk-PM4Q36WX.js} +15 -24
- package/Build/Workers/{chunk-CJGVEABL.js → chunk-PS3OKVOQ.js} +16 -19
- package/Build/Workers/{chunk-SLIA3GQP.js → chunk-QJTIOB2Z.js} +19 -22
- package/Build/Workers/{chunk-EZNAJPP5.js → chunk-QUFN3GEO.js} +18 -21
- package/Build/Workers/{chunk-ARVZCY6X.js → chunk-RX65FA7X.js} +7 -7
- package/Build/Workers/{chunk-E3H7AVMK.js → chunk-SQKTLDSD.js} +39 -41
- package/Build/Workers/{chunk-Z4SI54EB.js → chunk-SSLK4U3V.js} +14 -14
- package/Build/Workers/{chunk-IGINOLDX.js → chunk-UC7KH56Y.js} +6 -9
- package/Build/Workers/{chunk-VJ2PDF64.js → chunk-UFV3YUIN.js} +6 -9
- package/Build/Workers/{chunk-LCMJQVIF.js → chunk-UX5JWAC7.js} +17 -26
- package/Build/Workers/{chunk-ISQSYLZY.js → chunk-UZ6KXWCA.js} +4 -4
- package/Build/Workers/{chunk-JZAMRL5I.js → chunk-VXAKU6EV.js} +34 -36
- package/Build/Workers/{chunk-6EV4VOET.js → chunk-WP3IJYLC.js} +16 -19
- package/Build/Workers/{chunk-5S2B46UQ.js → chunk-XYGBWBD5.js} +1 -1
- package/Build/Workers/{chunk-F7ZI463G.js → chunk-YE6MDFDA.js} +21 -23
- package/Build/Workers/{chunk-I4HO2ED2.js → chunk-ZTBZMRQT.js} +9 -12
- package/Build/Workers/combineGeometry.js +21 -22
- package/Build/Workers/createBoxGeometry.js +15 -16
- package/Build/Workers/createBoxOutlineGeometry.js +20 -25
- package/Build/Workers/createCircleGeometry.js +26 -28
- package/Build/Workers/createCircleOutlineGeometry.js +19 -21
- package/Build/Workers/createCoplanarPolygonGeometry.js +38 -42
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +34 -36
- package/Build/Workers/createCorridorGeometry.js +42 -49
- package/Build/Workers/createCorridorOutlineGeometry.js +36 -43
- package/Build/Workers/createCylinderGeometry.js +17 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +23 -25
- package/Build/Workers/createEllipseGeometry.js +23 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -17
- package/Build/Workers/createEllipsoidGeometry.js +16 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -16
- package/Build/Workers/createFrustumGeometry.js +15 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -21
- package/Build/Workers/createGeometry.js +22 -25
- package/Build/Workers/createGroundPolylineGeometry.js +34 -42
- package/Build/Workers/createPlaneGeometry.js +19 -21
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -13
- package/Build/Workers/createPolygonGeometry.js +45 -50
- package/Build/Workers/createPolygonOutlineGeometry.js +39 -44
- package/Build/Workers/createPolylineGeometry.js +33 -40
- package/Build/Workers/createPolylineVolumeGeometry.js +37 -44
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +32 -39
- package/Build/Workers/createRectangleGeometry.js +41 -51
- package/Build/Workers/createRectangleOutlineGeometry.js +28 -33
- package/Build/Workers/createSimplePolylineGeometry.js +29 -34
- package/Build/Workers/createSphereGeometry.js +17 -20
- package/Build/Workers/createSphereOutlineGeometry.js +16 -19
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -13
- package/Build/Workers/createVectorTileGeometries.js +21 -22
- package/Build/Workers/createVectorTilePoints.js +11 -12
- package/Build/Workers/createVectorTilePolygons.js +19 -20
- package/Build/Workers/createVectorTilePolylines.js +12 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -23
- package/Build/Workers/createVerticesFromHeightmap.js +31 -58
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -18
- package/Build/Workers/createWallGeometry.js +30 -35
- package/Build/Workers/createWallOutlineGeometry.js +28 -33
- package/Build/Workers/decodeDraco.js +10 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -16
- package/Build/Workers/transcodeKTX2.js +7 -10
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -20
- package/Source/Core/ApproximateTerrainHeights.js +2 -3
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +6 -6
- package/Source/Core/AxisAlignedBoundingBox.js +2 -3
- package/Source/Core/BingMapsGeocoderService.js +2 -2
- package/Source/Core/BoundingRectangle.js +7 -8
- package/Source/Core/BoundingSphere.js +10 -11
- package/Source/Core/BoxGeometry.js +7 -7
- package/Source/Core/BoxOutlineGeometry.js +7 -9
- package/Source/Core/Cartesian2.js +4 -5
- package/Source/Core/Cartesian3.js +7 -8
- package/Source/Core/Cartesian4.js +6 -7
- package/Source/Core/Cartographic.js +5 -6
- package/Source/Core/CatmullRomSpline.js +2 -2
- package/Source/Core/CesiumTerrainProvider.js +11 -14
- package/Source/Core/Check.d.ts +4 -1
- package/Source/Core/CircleGeometry.js +2 -2
- package/Source/Core/CircleOutlineGeometry.js +2 -2
- package/Source/Core/Clock.js +7 -10
- package/Source/Core/Color.js +28 -28
- package/Source/Core/ColorGeometryInstanceAttribute.js +4 -5
- package/Source/Core/ComponentDatatype.js +4 -6
- package/Source/Core/CoplanarPolygonGeometry.js +8 -10
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +5 -5
- package/Source/Core/CorridorGeometry.js +15 -20
- package/Source/Core/CorridorOutlineGeometry.js +10 -15
- package/Source/Core/Credit.js +1 -2
- package/Source/Core/CullingVolume.js +1 -2
- package/Source/Core/CustomHeightmapTerrainProvider.js +3 -3
- package/Source/Core/CylinderGeometry.js +7 -7
- package/Source/Core/CylinderOutlineGeometry.js +7 -7
- package/Source/Core/DistanceDisplayCondition.js +4 -5
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +2 -3
- package/Source/Core/EarthOrientationParameters.js +4 -4
- package/Source/Core/EllipseGeometry.js +17 -23
- package/Source/Core/EllipseOutlineGeometry.js +12 -15
- package/Source/Core/Ellipsoid.js +7 -8
- package/Source/Core/EllipsoidGeodesic.js +1 -2
- package/Source/Core/EllipsoidGeometry.js +15 -15
- package/Source/Core/EllipsoidOutlineGeometry.js +15 -15
- package/Source/Core/EllipsoidRhumbLine.js +2 -3
- package/Source/Core/EllipsoidTangentPlane.js +1 -2
- package/Source/Core/EllipsoidTerrainProvider.js +4 -4
- package/Source/Core/EllipsoidalOccluder.js +2 -3
- package/Source/Core/FeatureDetection.js +1 -2
- package/Source/Core/Frozen.js +24 -0
- package/Source/Core/FrustumGeometry.js +7 -8
- package/Source/Core/FrustumOutlineGeometry.js +3 -4
- package/Source/Core/GeographicProjection.js +1 -2
- package/Source/Core/GeographicTilingScheme.js +6 -12
- package/Source/Core/Geometry.js +4 -7
- package/Source/Core/GeometryAttribute.js +3 -3
- package/Source/Core/GeometryAttributes.js +2 -2
- package/Source/Core/GeometryInstance.js +4 -6
- package/Source/Core/GeometryInstanceAttribute.js +3 -3
- package/Source/Core/GeometryPipeline.js +3 -4
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +13 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +9 -12
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +3 -3
- package/Source/Core/GoogleGeocoderService.js +2 -2
- package/Source/Core/GregorianDate.js +8 -9
- package/Source/Core/GroundPolylineGeometry.js +8 -8
- package/Source/Core/HeadingPitchRange.js +3 -4
- package/Source/Core/HeadingPitchRoll.js +3 -4
- package/Source/Core/Heap.js +3 -4
- package/Source/Core/HeightmapTerrainData.js +22 -38
- package/Source/Core/HeightmapTessellator.js +21 -37
- package/Source/Core/HermitePolynomialApproximation.js +1 -2
- package/Source/Core/HermiteSpline.js +5 -5
- package/Source/Core/ITwinPlatform.js +72 -15
- package/Source/Core/Iau2006XysData.js +8 -10
- package/Source/Core/IntersectionTests.js +1 -2
- package/Source/Core/Interval.js +2 -4
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +6 -10
- package/Source/Core/IonResource.js +6 -6
- package/Source/Core/JulianDate.js +11 -12
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/ManagedArray.js +2 -3
- package/Source/Core/Math.js +36 -27
- package/Source/Core/Matrix2.js +7 -8
- package/Source/Core/Matrix3.js +12 -13
- package/Source/Core/Matrix4.js +28 -28
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +6 -7
- package/Source/Core/Occluder.js +1 -2
- package/Source/Core/OffsetGeometryInstanceAttribute.js +3 -4
- package/Source/Core/OpenCageGeocoderService.js +1 -2
- package/Source/Core/OrientedBoundingBox.js +7 -8
- package/Source/Core/OrthographicFrustum.js +6 -6
- package/Source/Core/OrthographicOffCenterFrustum.js +4 -4
- package/Source/Core/PerspectiveFrustum.js +8 -8
- package/Source/Core/PerspectiveOffCenterFrustum.js +4 -4
- package/Source/Core/PlaneGeometry.js +5 -5
- package/Source/Core/PolygonGeometry.js +17 -19
- package/Source/Core/PolygonGeometryLibrary.js +1 -2
- package/Source/Core/PolygonOutlineGeometry.js +11 -14
- package/Source/Core/PolygonPipeline.js +5 -6
- package/Source/Core/PolylineGeometry.js +10 -15
- package/Source/Core/PolylinePipeline.js +7 -14
- package/Source/Core/PolylineVolumeGeometry.js +8 -13
- package/Source/Core/PolylineVolumeOutlineGeometry.js +7 -12
- package/Source/Core/QuantizedMeshTerrainData.js +12 -16
- package/Source/Core/Quaternion.js +7 -8
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Ray.js +2 -3
- package/Source/Core/Rectangle.js +18 -19
- package/Source/Core/RectangleGeometry.js +17 -25
- package/Source/Core/RectangleGeometryLibrary.js +1 -1
- package/Source/Core/RectangleOutlineGeometry.js +11 -14
- package/Source/Core/Request.js +6 -6
- package/Source/Core/RequestScheduler.js +4 -6
- package/Source/Core/Resource.js +13 -16
- package/Source/Core/S2Cell.js +2 -3
- package/Source/Core/ScreenSpaceEventHandler.js +1 -2
- package/Source/Core/ShowGeometryInstanceAttribute.js +1 -2
- package/Source/Core/Simon1994PlanetaryPositions.js +9 -9
- package/Source/Core/SimplePolylineGeometry.js +8 -11
- package/Source/Core/SphereGeometry.js +1 -2
- package/Source/Core/SphereOutlineGeometry.js +1 -2
- package/Source/Core/Spherical.js +4 -5
- package/Source/Core/Spline.js +1 -2
- package/Source/Core/SteppedSpline.js +2 -2
- package/Source/Core/TaskProcessor.js +2 -9
- package/Source/Core/TerrainData.js +1 -1
- package/Source/Core/TerrainEncoding.js +4 -11
- package/Source/Core/TerrainMesh.js +1 -3
- package/Source/Core/TerrainProvider.js +1 -1
- package/Source/Core/TileProviderError.js +1 -2
- package/Source/Core/TimeInterval.js +7 -7
- package/Source/Core/TimeIntervalCollection.js +7 -7
- package/Source/Core/Tipsify.js +5 -5
- package/Source/Core/Transforms.js +10 -15
- package/Source/Core/TranslationRotationScale.js +3 -6
- package/Source/Core/VRTheWorldTerrainProvider.js +5 -5
- package/Source/Core/VertexFormat.js +10 -10
- package/Source/Core/VerticalExaggeration.js +1 -1
- package/Source/Core/VideoSynchronizer.js +6 -6
- package/Source/Core/WallGeometry.js +8 -11
- package/Source/Core/WallOutlineGeometry.js +7 -10
- package/Source/Core/WebMercatorProjection.js +1 -2
- package/Source/Core/WebMercatorTilingScheme.js +5 -11
- package/Source/Core/arrayRemoveDuplicates.js +1 -2
- package/Source/Core/clone.js +1 -3
- package/Source/Core/combine.js +1 -2
- package/Source/Core/createWorldBathymetryAsync.js +3 -3
- package/Source/Core/createWorldTerrainAsync.js +4 -4
- package/Source/Core/defaultValue.js +20 -1
- package/Source/Core/destroyObject.js +1 -5
- package/Source/Core/getAbsoluteUri.js +1 -2
- package/Source/Core/getMagic.js +1 -2
- package/Source/Core/getStringFromTypedArray.js +2 -3
- package/Source/Core/loadImageFromTypedArray.js +2 -6
- package/Source/Core/oneTimeWarning.js +1 -2
- package/Source/Core/writeTextToCanvas.js +10 -13
- package/Source/DataSources/BillboardGraphics.js +27 -53
- package/Source/DataSources/BoxGraphics.js +13 -18
- package/Source/DataSources/CallbackPositionProperty.js +1 -2
- package/Source/DataSources/Cesium3DTilesetGraphics.js +6 -8
- package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
- package/Source/DataSources/CompositePositionProperty.js +1 -2
- package/Source/DataSources/ConstantPositionProperty.js +1 -2
- package/Source/DataSources/CorridorGraphics.js +23 -35
- package/Source/DataSources/CylinderGraphics.js +18 -25
- package/Source/DataSources/CzmlDataSource.js +34 -60
- package/Source/DataSources/DataSourceClock.js +12 -13
- package/Source/DataSources/DataSourceCollection.js +2 -3
- package/Source/DataSources/DataSourceDisplay.js +2 -5
- package/Source/DataSources/EllipseGraphics.js +26 -40
- package/Source/DataSources/EllipsoidGeometryUpdater.js +1 -2
- package/Source/DataSources/EllipsoidGraphics.js +21 -32
- package/Source/DataSources/Entity.js +7 -9
- package/Source/DataSources/EntityCluster.js +9 -9
- package/Source/DataSources/EntityView.js +1 -2
- package/Source/DataSources/GeoJsonDataSource.js +12 -12
- package/Source/DataSources/GeometryUpdater.js +12 -17
- package/Source/DataSources/GeometryVisualizer.js +2 -3
- package/Source/DataSources/GpxDataSource.js +4 -7
- package/Source/DataSources/GridMaterialProperty.js +2 -2
- package/Source/DataSources/GroundGeometryUpdater.js +1 -2
- package/Source/DataSources/ImageMaterialProperty.js +2 -2
- package/Source/DataSources/KmlDataSource.js +84 -158
- package/Source/DataSources/LabelGraphics.js +27 -56
- package/Source/DataSources/LabelVisualizer.js +1 -2
- package/Source/DataSources/ModelGraphics.js +29 -63
- package/Source/DataSources/ModelVisualizer.js +1 -2
- package/Source/DataSources/NodeTransformationProperty.js +2 -2
- package/Source/DataSources/PathGraphics.js +10 -12
- package/Source/DataSources/PlaneGraphics.js +13 -15
- package/Source/DataSources/PointGraphics.js +17 -32
- package/Source/DataSources/PolygonGraphics.js +28 -45
- package/Source/DataSources/PolylineDashMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGeometryUpdater.js +9 -14
- package/Source/DataSources/PolylineGlowMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineGraphics.js +16 -23
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +2 -2
- package/Source/DataSources/PolylineVisualizer.js +2 -3
- package/Source/DataSources/PolylineVolumeGraphics.js +15 -17
- package/Source/DataSources/PositionPropertyArray.js +1 -2
- package/Source/DataSources/Property.js +1 -2
- package/Source/DataSources/PropertyBag.js +1 -2
- package/Source/DataSources/RectangleGraphics.js +23 -35
- package/Source/DataSources/Rotation.js +4 -5
- package/Source/DataSources/SampledPositionProperty.js +2 -3
- package/Source/DataSources/SampledProperty.js +6 -11
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -2
- package/Source/DataSources/StripeMaterialProperty.js +2 -2
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +1 -2
- package/Source/DataSources/VelocityOrientationProperty.js +1 -2
- package/Source/DataSources/VelocityVectorProperty.js +1 -2
- package/Source/DataSources/WallGraphics.js +15 -23
- package/Source/DataSources/createPropertyDescriptor.js +2 -3
- package/Source/DataSources/exportKml.js +11 -14
- package/Source/Renderer/Buffer.js +5 -5
- package/Source/Renderer/ClearCommand.js +2 -2
- package/Source/Renderer/ComputeCommand.js +3 -3
- package/Source/Renderer/Context.js +22 -33
- package/Source/Renderer/CubeMap.js +6 -6
- package/Source/Renderer/CubeMapFace.js +11 -12
- package/Source/Renderer/DrawCommand.js +14 -25
- package/Source/Renderer/Framebuffer.js +3 -3
- package/Source/Renderer/FramebufferManager.js +25 -39
- package/Source/Renderer/MultisampleFramebuffer.js +2 -2
- package/Source/Renderer/RenderState.js +63 -92
- package/Source/Renderer/Renderbuffer.js +4 -4
- package/Source/Renderer/Sampler.js +2 -2
- package/Source/Renderer/ShaderBuilder.js +2 -3
- package/Source/Renderer/ShaderProgram.js +3 -3
- package/Source/Renderer/ShaderSource.js +3 -3
- package/Source/Renderer/Texture.js +10 -10
- package/Source/Renderer/TextureAtlas.js +4 -4
- package/Source/Renderer/UniformState.js +6 -11
- package/Source/Renderer/VertexArray.js +14 -23
- package/Source/Renderer/VertexArrayFacade.js +7 -11
- package/Source/Scene/Appearance.js +4 -4
- package/Source/Scene/ArcGisMapServerImageryProvider.js +23 -37
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/B3dmParser.js +2 -3
- package/Source/Scene/BatchTableHierarchy.js +6 -13
- package/Source/Scene/Billboard.js +22 -44
- package/Source/Scene/BillboardCollection.js +8 -22
- package/Source/Scene/BingMapsImageryProvider.js +6 -6
- package/Source/Scene/BoxEmitter.js +1 -2
- package/Source/Scene/BufferLoader.js +2 -2
- package/Source/Scene/Camera.js +43 -62
- package/Source/Scene/CameraFlightPath.js +6 -6
- package/Source/Scene/Cesium3DContentGroup.js +2 -2
- package/Source/Scene/Cesium3DTile.js +3 -4
- package/Source/Scene/Cesium3DTileBatchTable.js +6 -49
- package/Source/Scene/Cesium3DTileFeatureTable.js +2 -3
- package/Source/Scene/Cesium3DTilePointFeature.js +10 -18
- package/Source/Scene/Cesium3DTileStyle.js +4 -7
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +57 -34
- package/Source/Scene/Cesium3DTileset.js +77 -143
- package/Source/Scene/Cesium3DTilesetMetadata.js +3 -3
- package/Source/Scene/CircleEmitter.js +2 -3
- package/Source/Scene/ClassificationPrimitive.js +15 -26
- package/Source/Scene/ClippingPlaneCollection.js +7 -12
- package/Source/Scene/ClippingPolygon.js +1 -2
- package/Source/Scene/ClippingPolygonCollection.js +4 -4
- package/Source/Scene/CloudCollection.js +9 -11
- package/Source/Scene/Composite3DTileContent.js +1 -2
- package/Source/Scene/ConeEmitter.js +1 -2
- package/Source/Scene/ContentMetadata.js +2 -2
- package/Source/Scene/CreditDisplay.js +5 -9
- package/Source/Scene/CumulusCloud.js +9 -15
- package/Source/Scene/DebugAppearance.js +7 -7
- package/Source/Scene/DebugCameraPrimitive.js +5 -5
- package/Source/Scene/DebugModelMatrixPrimitive.js +6 -8
- package/Source/Scene/DepthPlane.js +1 -2
- package/Source/Scene/DirectionalLight.js +2 -3
- package/Source/Scene/DiscardMissingTileImagePolicy.js +2 -2
- package/Source/Scene/DynamicEnvironmentMapManager.js +15 -24
- package/Source/Scene/EllipsoidPrimitive.js +11 -19
- package/Source/Scene/EllipsoidSurfaceAppearance.js +11 -15
- package/Source/Scene/FrameRateMonitor.js +12 -21
- package/Source/Scene/FrustumCommands.js +2 -3
- package/Source/Scene/Geometry3DTileContent.js +9 -16
- package/Source/Scene/Globe.js +3 -4
- package/Source/Scene/GlobeSurfaceTileProvider.js +9 -18
- package/Source/Scene/GlobeTranslucencyState.js +12 -25
- package/Source/Scene/GltfBufferViewLoader.js +4 -4
- package/Source/Scene/GltfDracoLoader.js +2 -2
- package/Source/Scene/GltfImageLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +17 -30
- package/Source/Scene/GltfLoaderUtil.js +11 -11
- package/Source/Scene/GltfPipeline/addDefaults.js +37 -64
- package/Source/Scene/GltfPipeline/addToArray.js +1 -3
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -5
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -5
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +1 -2
- package/Source/Scene/GltfPipeline/updateVersion.js +28 -49
- package/Source/Scene/GltfStructuralMetadataLoader.js +5 -6
- package/Source/Scene/GltfTextureLoader.js +3 -3
- package/Source/Scene/GltfVertexBufferLoader.js +5 -5
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +2 -2
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +3 -4
- package/Source/Scene/GridImageryProvider.js +10 -13
- package/Source/Scene/GroundPolylinePrimitive.js +11 -22
- package/Source/Scene/GroundPrimitive.js +13 -24
- package/Source/Scene/GroupMetadata.js +2 -2
- package/Source/Scene/I3SDataProvider.js +10 -15
- package/Source/Scene/I3SNode.js +1 -6
- package/Source/Scene/I3SSublayer.js +1 -2
- package/Source/Scene/I3SSymbology.js +2 -3
- package/Source/Scene/I3dmParser.js +1 -2
- package/Source/Scene/ITwinData.js +11 -6
- package/Source/Scene/ImageBasedLighting.js +2 -2
- package/Source/Scene/ImageryLayer.js +44 -73
- package/Source/Scene/ImageryLayerCollection.js +2 -3
- package/Source/Scene/Implicit3DTileContent.js +3 -4
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -5
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +8 -15
- package/Source/Scene/ImplicitSubtreeCache.js +3 -3
- package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
- package/Source/Scene/InstanceAttributeSemantic.js +1 -1
- package/Source/Scene/IonImageryProvider.js +3 -3
- package/Source/Scene/Label.js +19 -36
- package/Source/Scene/LabelCollection.js +6 -14
- package/Source/Scene/MapboxImageryProvider.js +4 -4
- package/Source/Scene/MapboxStyleImageryProvider.js +5 -5
- package/Source/Scene/Material.js +14 -20
- package/Source/Scene/MaterialAppearance.js +12 -18
- package/Source/Scene/Megatexture.js +1 -2
- package/Source/Scene/MetadataClass.js +4 -4
- package/Source/Scene/MetadataClassProperty.js +11 -14
- package/Source/Scene/MetadataEnum.js +4 -7
- package/Source/Scene/MetadataEnumValue.js +2 -2
- package/Source/Scene/MetadataSchema.js +4 -4
- package/Source/Scene/MetadataSchemaLoader.js +2 -2
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +17 -31
- package/Source/Scene/Model/AlphaPipelineStage.js +1 -2
- package/Source/Scene/Model/B3dmLoader.js +15 -26
- package/Source/Scene/Model/BatchTexturePipelineStage.js +1 -2
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +2 -2
- package/Source/Scene/Model/CustomShader.js +10 -12
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +3 -3
- package/Source/Scene/Model/FeatureIdPipelineStage.js +1 -5
- package/Source/Scene/Model/GeoJsonLoader.js +5 -8
- package/Source/Scene/Model/I3dmLoader.js +13 -21
- package/Source/Scene/Model/MaterialPipelineStage.js +1 -2
- package/Source/Scene/Model/Model.js +40 -62
- package/Source/Scene/Model/ModelAnimation.js +5 -6
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +4 -4
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +2 -2
- package/Source/Scene/Model/ModelDrawCommand.js +3 -3
- package/Source/Scene/Model/ModelFeatureTable.js +3 -9
- package/Source/Scene/Model/ModelLightingOptions.js +3 -3
- package/Source/Scene/Model/ModelNode.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +2 -2
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -2
- package/Source/Scene/Model/ModelSceneGraph.js +2 -2
- package/Source/Scene/Model/ModelSkin.js +2 -2
- package/Source/Scene/Model/PickingPipelineStage.js +1 -2
- package/Source/Scene/Model/PntsLoader.js +6 -6
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -5
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +2 -2
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +2 -3
- package/Source/Scene/Model/TextureUniform.js +5 -8
- package/Source/Scene/Model/VaryingType.js +2 -2
- package/Source/Scene/Model/pickModel.js +4 -5
- package/Source/Scene/Moon.js +5 -5
- package/Source/Scene/OpenStreetMapImageryProvider.js +7 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +1 -2
- package/Source/Scene/Particle.js +11 -17
- package/Source/Scene/ParticleBurst.js +5 -5
- package/Source/Scene/ParticleSystem.js +24 -54
- package/Source/Scene/PerInstanceColorAppearance.js +8 -8
- package/Source/Scene/PerformanceDisplay.js +3 -3
- package/Source/Scene/PickFramebuffer.js +4 -5
- package/Source/Scene/Picking.js +3 -4
- package/Source/Scene/PntsParser.js +1 -2
- package/Source/Scene/PointCloud.js +6 -12
- package/Source/Scene/PointCloudShading.js +9 -18
- package/Source/Scene/PointPrimitive.js +11 -21
- package/Source/Scene/PointPrimitiveCollection.js +6 -14
- package/Source/Scene/Polyline.js +5 -5
- package/Source/Scene/PolylineCollection.js +5 -10
- package/Source/Scene/PolylineColorAppearance.js +7 -11
- package/Source/Scene/PolylineMaterialAppearance.js +7 -11
- package/Source/Scene/PostProcessStage.js +2 -2
- package/Source/Scene/PostProcessStageComposite.js +3 -6
- package/Source/Scene/Primitive.js +21 -42
- package/Source/Scene/PrimitiveCollection.js +4 -4
- package/Source/Scene/PrimitivePipeline.js +1 -2
- package/Source/Scene/PropertyAttribute.js +2 -2
- package/Source/Scene/PropertyAttributeProperty.js +4 -4
- package/Source/Scene/PropertyTable.js +2 -2
- package/Source/Scene/PropertyTexture.js +2 -2
- package/Source/Scene/PropertyTextureProperty.js +4 -4
- package/Source/Scene/QuadtreePrimitive.js +89 -67
- package/Source/Scene/QuadtreeTile.js +170 -0
- package/Source/Scene/ResourceCache.js +11 -11
- package/Source/Scene/ResourceCacheKey.js +11 -11
- package/Source/Scene/Scene.js +27 -25
- package/Source/Scene/ScreenSpaceCameraController.js +10 -12
- package/Source/Scene/ShadowMap.js +15 -15
- package/Source/Scene/ShadowVolumeAppearance.js +1 -2
- package/Source/Scene/SingleTileImageryProvider.js +4 -4
- package/Source/Scene/SkyAtmosphere.js +1 -2
- package/Source/Scene/SkyBox.js +1 -2
- package/Source/Scene/SphereEmitter.js +2 -3
- package/Source/Scene/StructuralMetadata.js +2 -2
- package/Source/Scene/SunLight.js +4 -4
- package/Source/Scene/SupportedImageFormats.js +4 -4
- package/Source/Scene/TileBoundingRegion.js +4 -5
- package/Source/Scene/TileBoundingS2Cell.js +3 -4
- package/Source/Scene/TileCoordinatesImageryProvider.js +5 -5
- package/Source/Scene/TileMapServiceImageryProvider.js +18 -27
- package/Source/Scene/TileMetadata.js +2 -2
- package/Source/Scene/TilesetMetadata.js +2 -2
- package/Source/Scene/TimeDynamicImagery.js +2 -2
- package/Source/Scene/TimeDynamicPointCloud.js +8 -10
- package/Source/Scene/TweenCollection.js +13 -16
- package/Source/Scene/UrlTemplateImageryProvider.js +11 -15
- package/Source/Scene/Vector3DTileClampedPolylines.js +1 -2
- package/Source/Scene/Vector3DTileContent.js +16 -20
- package/Source/Scene/Vector3DTileGeometry.js +1 -2
- package/Source/Scene/Vector3DTilePolygons.js +2 -3
- package/Source/Scene/Vector3DTilePolylines.js +1 -2
- package/Source/Scene/Vector3DTilePrimitive.js +9 -13
- package/Source/Scene/VoxelBoxShape.js +38 -82
- package/Source/Scene/VoxelCylinderShape.js +130 -271
- package/Source/Scene/VoxelEllipsoidShape.js +2 -3
- package/Source/Scene/VoxelMetadataOrder.js +14 -2
- package/Source/Scene/VoxelPrimitive.js +17 -30
- package/Source/Scene/VoxelProvider.js +0 -12
- package/Source/Scene/VoxelRenderResources.js +17 -21
- package/Source/Scene/VoxelTraversal.js +2 -6
- package/Source/Scene/WebMapServiceImageryProvider.js +17 -24
- package/Source/Scene/WebMapTileServiceImageryProvider.js +7 -10
- package/Source/Scene/createElevationBandMaterial.js +4 -4
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +8 -16
- package/Source/Scene/createOsmBuildingsAsync.js +3 -6
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +4 -6
- package/Source/Scene/createWorldImageryAsync.js +3 -3
- package/Source/Scene/findContentMetadata.js +2 -5
- package/Source/Scene/findTileMetadata.js +2 -5
- package/Source/Scene/parseBatchTable.js +1 -5
- package/Source/Scene/parseFeatureMetadataLegacy.js +2 -2
- package/Source/Scene/parseStructuralMetadata.js +2 -2
- package/Source/Shaders/PolylineCommon.glsl +1 -1
- package/Source/Shaders/PolylineCommon.js +1 -1
- package/Source/Shaders/Voxels/Octree.glsl +1 -1
- package/Source/Shaders/Voxels/Octree.js +1 -1
- package/Source/Widget/CesiumWidget.js +17 -25
- package/Source/Workers/createGeometry.js +1 -2
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -2
- package/Source/Workers/decodeI3S.js +1 -5
- package/Source/Workers/transcodeKTX2.js +1 -2
- package/index.d.ts +83 -37
- package/index.js +179 -178
- package/package.json +2 -2
- package/Build/Workers/chunk-QZKN2RXM.js +0 -39
|
@@ -5,7 +5,7 @@ import Cartesian4 from "../Core/Cartesian4.js";
|
|
|
5
5
|
import Check from "../Core/Check.js";
|
|
6
6
|
import ComponentDatatype from "../Core/ComponentDatatype.js";
|
|
7
7
|
import Credit from "../Core/Credit.js";
|
|
8
|
-
import
|
|
8
|
+
import Frozen from "../Core/Frozen.js";
|
|
9
9
|
import defined from "../Core/defined.js";
|
|
10
10
|
import FeatureDetection from "../Core/FeatureDetection.js";
|
|
11
11
|
import InterpolationType from "../Core/InterpolationType.js";
|
|
@@ -195,7 +195,7 @@ const GltfLoaderState = {
|
|
|
195
195
|
* @private
|
|
196
196
|
*/
|
|
197
197
|
function GltfLoader(options) {
|
|
198
|
-
options =
|
|
198
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
199
199
|
const {
|
|
200
200
|
gltfResource,
|
|
201
201
|
typedArray,
|
|
@@ -855,7 +855,7 @@ async function loadAccessorBufferView(
|
|
|
855
855
|
bufferViewLoader.typedArray,
|
|
856
856
|
);
|
|
857
857
|
|
|
858
|
-
useQuaternion =
|
|
858
|
+
useQuaternion = useQuaternion ?? false;
|
|
859
859
|
loadAccessorValues(accessor, typedArray, values, useQuaternion);
|
|
860
860
|
}
|
|
861
861
|
|
|
@@ -1004,7 +1004,7 @@ function setQuantizationFromWeb3dQuantizedAttributes(
|
|
|
1004
1004
|
function createAttribute(gltf, accessorId, name, semantic, setIndex) {
|
|
1005
1005
|
const accessor = gltf.accessors[accessorId];
|
|
1006
1006
|
const MathType = AttributeType.getMathType(accessor.type);
|
|
1007
|
-
const normalized =
|
|
1007
|
+
const normalized = accessor.normalized ?? false;
|
|
1008
1008
|
|
|
1009
1009
|
const attribute = new Attribute();
|
|
1010
1010
|
attribute.name = name;
|
|
@@ -1670,10 +1670,7 @@ function loadClearcoat(loader, clearcoatInfo, frameState) {
|
|
|
1670
1670
|
function loadMaterial(loader, gltfMaterial, frameState) {
|
|
1671
1671
|
const material = new Material();
|
|
1672
1672
|
|
|
1673
|
-
const extensions =
|
|
1674
|
-
gltfMaterial.extensions,
|
|
1675
|
-
defaultValue.EMPTY_OBJECT,
|
|
1676
|
-
);
|
|
1673
|
+
const extensions = gltfMaterial.extensions ?? Frozen.EMPTY_OBJECT;
|
|
1677
1674
|
const pbrSpecularGlossiness = extensions.KHR_materials_pbrSpecularGlossiness;
|
|
1678
1675
|
const pbrSpecular = extensions.KHR_materials_specular;
|
|
1679
1676
|
const pbrAnisotropy = extensions.KHR_materials_anisotropy;
|
|
@@ -1794,9 +1791,9 @@ function loadFeatureIdImplicitRangeLegacy(
|
|
|
1794
1791
|
featureIdRange.featureCount = featureCount;
|
|
1795
1792
|
|
|
1796
1793
|
// constant/divisor was renamed to offset/repeat
|
|
1797
|
-
featureIdRange.offset =
|
|
1794
|
+
featureIdRange.offset = featureIds.constant ?? 0;
|
|
1798
1795
|
// The default is now undefined
|
|
1799
|
-
const divisor =
|
|
1796
|
+
const divisor = featureIds.divisor ?? 0;
|
|
1800
1797
|
featureIdRange.repeat = divisor === 0 ? undefined : divisor;
|
|
1801
1798
|
|
|
1802
1799
|
featureIdRange.positionalLabel = positionalLabel;
|
|
@@ -1936,10 +1933,7 @@ function loadPrimitive(loader, gltfPrimitive, hasInstances, frameState) {
|
|
|
1936
1933
|
);
|
|
1937
1934
|
}
|
|
1938
1935
|
|
|
1939
|
-
const extensions =
|
|
1940
|
-
gltfPrimitive.extensions,
|
|
1941
|
-
defaultValue.EMPTY_OBJECT,
|
|
1942
|
-
);
|
|
1936
|
+
const extensions = gltfPrimitive.extensions ?? Frozen.EMPTY_OBJECT;
|
|
1943
1937
|
|
|
1944
1938
|
let needsPostProcessing = false;
|
|
1945
1939
|
const outlineExtension = extensions.CESIUM_primitive_outline;
|
|
@@ -2240,10 +2234,8 @@ function loadInstances(loader, nodeExtensions, frameState) {
|
|
|
2240
2234
|
}
|
|
2241
2235
|
}
|
|
2242
2236
|
|
|
2243
|
-
const instancingExtExtensions =
|
|
2244
|
-
instancingExtension.extensions
|
|
2245
|
-
defaultValue.EMPTY_OBJECT,
|
|
2246
|
-
);
|
|
2237
|
+
const instancingExtExtensions =
|
|
2238
|
+
instancingExtension.extensions ?? Frozen.EMPTY_OBJECT;
|
|
2247
2239
|
const instanceFeatures = nodeExtensions.EXT_instance_features;
|
|
2248
2240
|
const featureMetadataLegacy = instancingExtExtensions.EXT_feature_metadata;
|
|
2249
2241
|
|
|
@@ -2341,10 +2333,7 @@ function loadNode(loader, gltfNode, frameState) {
|
|
|
2341
2333
|
node.rotation = fromArray(Quaternion, gltfNode.rotation);
|
|
2342
2334
|
node.scale = fromArray(Cartesian3, gltfNode.scale);
|
|
2343
2335
|
|
|
2344
|
-
const nodeExtensions =
|
|
2345
|
-
gltfNode.extensions,
|
|
2346
|
-
defaultValue.EMPTY_OBJECT,
|
|
2347
|
-
);
|
|
2336
|
+
const nodeExtensions = gltfNode.extensions ?? Frozen.EMPTY_OBJECT;
|
|
2348
2337
|
const instancingExtension = nodeExtensions.EXT_mesh_gpu_instancing;
|
|
2349
2338
|
const articulationsExtension = nodeExtensions.AGI_articulations;
|
|
2350
2339
|
|
|
@@ -2378,7 +2367,7 @@ function loadNode(loader, gltfNode, frameState) {
|
|
|
2378
2367
|
|
|
2379
2368
|
// If the node has no weights array, it will look for the weights array provided
|
|
2380
2369
|
// by the mesh. If both are undefined, it will default to an array of zero weights.
|
|
2381
|
-
const morphWeights =
|
|
2370
|
+
const morphWeights = gltfNode.weights ?? mesh.weights;
|
|
2382
2371
|
const targets = node.primitives[0].morphTargets;
|
|
2383
2372
|
|
|
2384
2373
|
// Since meshes are not stored as separate components, the mesh weights will still
|
|
@@ -2508,10 +2497,8 @@ function loadAnimationSampler(loader, gltfSampler) {
|
|
|
2508
2497
|
animationSampler.input = loadAccessor(loader, inputAccessor);
|
|
2509
2498
|
|
|
2510
2499
|
const gltfInterpolation = gltfSampler.interpolation;
|
|
2511
|
-
animationSampler.interpolation =
|
|
2512
|
-
InterpolationType[gltfInterpolation]
|
|
2513
|
-
InterpolationType.LINEAR,
|
|
2514
|
-
);
|
|
2500
|
+
animationSampler.interpolation =
|
|
2501
|
+
InterpolationType[gltfInterpolation] ?? InterpolationType.LINEAR;
|
|
2515
2502
|
|
|
2516
2503
|
const outputAccessor = accessors[gltfSampler.output];
|
|
2517
2504
|
animationSampler.output = loadAccessor(loader, outputAccessor, true);
|
|
@@ -2606,7 +2593,7 @@ function loadArticulation(articulationJson) {
|
|
|
2606
2593
|
}
|
|
2607
2594
|
|
|
2608
2595
|
function loadArticulations(gltf) {
|
|
2609
|
-
const extensions =
|
|
2596
|
+
const extensions = gltf.extensions ?? Frozen.EMPTY_OBJECT;
|
|
2610
2597
|
const articulationJsons = extensions.AGI_articulations?.articulations;
|
|
2611
2598
|
if (!defined(articulationJsons)) {
|
|
2612
2599
|
return [];
|
|
@@ -2619,7 +2606,7 @@ function getSceneNodeIds(gltf) {
|
|
|
2619
2606
|
if (defined(gltf.scenes) && defined(gltf.scene)) {
|
|
2620
2607
|
nodesIds = gltf.scenes[gltf.scene].nodes;
|
|
2621
2608
|
}
|
|
2622
|
-
nodesIds =
|
|
2609
|
+
nodesIds = nodesIds ?? gltf.nodes;
|
|
2623
2610
|
nodesIds = defined(nodesIds) ? nodesIds : [];
|
|
2624
2611
|
return nodesIds;
|
|
2625
2612
|
}
|
|
@@ -2652,7 +2639,7 @@ const scratchCenter = new Cartesian3();
|
|
|
2652
2639
|
*/
|
|
2653
2640
|
function parse(loader, frameState) {
|
|
2654
2641
|
const gltf = loader.gltfJson;
|
|
2655
|
-
const extensions =
|
|
2642
|
+
const extensions = gltf.extensions ?? Frozen.EMPTY_OBJECT;
|
|
2656
2643
|
const structuralMetadataExtension = extensions.EXT_structural_metadata;
|
|
2657
2644
|
const featureMetadataExtensionLegacy = extensions.EXT_feature_metadata;
|
|
2658
2645
|
const cesiumRtcExtension = extensions.CESIUM_RTC;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Cartesian2 from "../Core/Cartesian2.js";
|
|
2
2
|
import Check from "../Core/Check.js";
|
|
3
|
-
import
|
|
3
|
+
import Frozen from "../Core/Frozen.js";
|
|
4
4
|
import defined from "../Core/defined.js";
|
|
5
5
|
import Matrix3 from "../Core/Matrix3.js";
|
|
6
6
|
import Sampler from "../Renderer/Sampler.js";
|
|
@@ -34,7 +34,7 @@ const GltfLoaderUtil = {};
|
|
|
34
34
|
* @private
|
|
35
35
|
*/
|
|
36
36
|
GltfLoaderUtil.getImageIdFromTexture = function (options) {
|
|
37
|
-
options =
|
|
37
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
38
38
|
const { gltf, textureId, supportedImageFormats } = options;
|
|
39
39
|
|
|
40
40
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -70,7 +70,7 @@ GltfLoaderUtil.getImageIdFromTexture = function (options) {
|
|
|
70
70
|
* @private
|
|
71
71
|
*/
|
|
72
72
|
GltfLoaderUtil.createSampler = function (options) {
|
|
73
|
-
options =
|
|
73
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
74
74
|
const { gltf, textureInfo, compressedTextureNoMipmap = false } = options;
|
|
75
75
|
|
|
76
76
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -90,10 +90,10 @@ GltfLoaderUtil.createSampler = function (options) {
|
|
|
90
90
|
|
|
91
91
|
if (defined(samplerId)) {
|
|
92
92
|
const sampler = gltf.samplers[samplerId];
|
|
93
|
-
wrapS =
|
|
94
|
-
wrapT =
|
|
95
|
-
minFilter =
|
|
96
|
-
magFilter =
|
|
93
|
+
wrapS = sampler.wrapS ?? wrapS;
|
|
94
|
+
wrapT = sampler.wrapT ?? wrapT;
|
|
95
|
+
minFilter = sampler.minFilter ?? minFilter;
|
|
96
|
+
magFilter = sampler.magFilter ?? magFilter;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
if (
|
|
@@ -132,25 +132,25 @@ const defaultScale = new Cartesian2(1.0, 1.0);
|
|
|
132
132
|
* @returns {ModelComponents.TextureReader} The texture reader for this model.
|
|
133
133
|
*/
|
|
134
134
|
GltfLoaderUtil.createModelTextureReader = function (options) {
|
|
135
|
-
options =
|
|
135
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
136
136
|
const { textureInfo, channels, texture } = options;
|
|
137
137
|
|
|
138
138
|
//>>includeStart('debug', pragmas.debug);
|
|
139
139
|
Check.typeOf.object("options.textureInfo", textureInfo);
|
|
140
140
|
//>>includeEnd('debug');
|
|
141
141
|
|
|
142
|
-
let texCoord =
|
|
142
|
+
let texCoord = textureInfo.texCoord ?? 0;
|
|
143
143
|
let transform;
|
|
144
144
|
|
|
145
145
|
const textureTransform = textureInfo.extensions?.KHR_texture_transform;
|
|
146
146
|
|
|
147
147
|
if (defined(textureTransform)) {
|
|
148
|
-
texCoord =
|
|
148
|
+
texCoord = textureTransform.texCoord ?? texCoord;
|
|
149
149
|
|
|
150
150
|
const offset = defined(textureTransform.offset)
|
|
151
151
|
? Cartesian2.unpack(textureTransform.offset)
|
|
152
152
|
: Cartesian2.ZERO;
|
|
153
|
-
let rotation =
|
|
153
|
+
let rotation = textureTransform.rotation ?? 0.0;
|
|
154
154
|
const scale = defined(textureTransform.scale)
|
|
155
155
|
? Cartesian2.unpack(textureTransform.scale)
|
|
156
156
|
: defaultScale;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import addToArray from "./addToArray.js";
|
|
2
2
|
import ForEach from "./ForEach.js";
|
|
3
3
|
import getAccessorByteStride from "./getAccessorByteStride.js";
|
|
4
|
-
import
|
|
4
|
+
import Frozen from "../../Core/Frozen.js";
|
|
5
5
|
import defined from "../../Core/defined.js";
|
|
6
6
|
import WebGLConstants from "../../Core/WebGLConstants.js";
|
|
7
7
|
|
|
@@ -16,19 +16,19 @@ import WebGLConstants from "../../Core/WebGLConstants.js";
|
|
|
16
16
|
function addDefaults(gltf) {
|
|
17
17
|
ForEach.accessor(gltf, function (accessor) {
|
|
18
18
|
if (defined(accessor.bufferView)) {
|
|
19
|
-
accessor.byteOffset =
|
|
19
|
+
accessor.byteOffset = accessor.byteOffset ?? 0;
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
ForEach.bufferView(gltf, function (bufferView) {
|
|
24
24
|
if (defined(bufferView.buffer)) {
|
|
25
|
-
bufferView.byteOffset =
|
|
25
|
+
bufferView.byteOffset = bufferView.byteOffset ?? 0;
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
ForEach.mesh(gltf, function (mesh) {
|
|
30
30
|
ForEach.meshPrimitive(mesh, function (primitive) {
|
|
31
|
-
primitive.mode =
|
|
31
|
+
primitive.mode = primitive.mode ?? WebGLConstants.TRIANGLES;
|
|
32
32
|
if (!defined(primitive.material)) {
|
|
33
33
|
if (!defined(gltf.materials)) {
|
|
34
34
|
gltf.materials = [];
|
|
@@ -44,7 +44,7 @@ function addDefaults(gltf) {
|
|
|
44
44
|
ForEach.accessorContainingVertexAttributeData(gltf, function (accessorId) {
|
|
45
45
|
const accessor = gltf.accessors[accessorId];
|
|
46
46
|
const bufferViewId = accessor.bufferView;
|
|
47
|
-
accessor.normalized =
|
|
47
|
+
accessor.normalized = accessor.normalized ?? false;
|
|
48
48
|
if (defined(bufferViewId)) {
|
|
49
49
|
const bufferView = gltf.bufferViews[bufferViewId];
|
|
50
50
|
bufferView.byteStride = getAccessorByteStride(gltf, accessor);
|
|
@@ -62,10 +62,7 @@ function addDefaults(gltf) {
|
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
ForEach.material(gltf, function (material) {
|
|
65
|
-
const extensions =
|
|
66
|
-
material.extensions,
|
|
67
|
-
defaultValue.EMPTY_OBJECT
|
|
68
|
-
);
|
|
65
|
+
const extensions = material.extensions ?? Frozen.EMPTY_OBJECT;
|
|
69
66
|
const materialsCommon = extensions.KHR_materials_common;
|
|
70
67
|
if (defined(materialsCommon)) {
|
|
71
68
|
const technique = materialsCommon.technique;
|
|
@@ -81,7 +78,7 @@ function addDefaults(gltf) {
|
|
|
81
78
|
? values.emission
|
|
82
79
|
: [0.0, 0.0, 0.0, 1.0];
|
|
83
80
|
|
|
84
|
-
values.transparency =
|
|
81
|
+
values.transparency = values.transparency ?? 1.0;
|
|
85
82
|
|
|
86
83
|
if (technique !== "CONSTANT") {
|
|
87
84
|
values.diffuse = defined(values.diffuse)
|
|
@@ -91,32 +88,23 @@ function addDefaults(gltf) {
|
|
|
91
88
|
values.specular = defined(values.specular)
|
|
92
89
|
? values.specular
|
|
93
90
|
: [0.0, 0.0, 0.0, 1.0];
|
|
94
|
-
values.shininess =
|
|
91
|
+
values.shininess = values.shininess ?? 0.0;
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
|
|
98
95
|
// These actually exist on the extension object, not the values object despite what's shown in the spec
|
|
99
|
-
materialsCommon.transparent =
|
|
100
|
-
|
|
101
|
-
false
|
|
102
|
-
);
|
|
103
|
-
materialsCommon.doubleSided = defaultValue(
|
|
104
|
-
materialsCommon.doubleSided,
|
|
105
|
-
false
|
|
106
|
-
);
|
|
96
|
+
materialsCommon.transparent = materialsCommon.transparent ?? false;
|
|
97
|
+
materialsCommon.doubleSided = materialsCommon.doubleSided ?? false;
|
|
107
98
|
|
|
108
99
|
return;
|
|
109
100
|
}
|
|
110
101
|
|
|
111
|
-
material.emissiveFactor =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
);
|
|
115
|
-
material.alphaMode = defaultValue(material.alphaMode, "OPAQUE");
|
|
116
|
-
material.doubleSided = defaultValue(material.doubleSided, false);
|
|
102
|
+
material.emissiveFactor = material.emissiveFactor ?? [0.0, 0.0, 0.0];
|
|
103
|
+
material.alphaMode = material.alphaMode ?? "OPAQUE";
|
|
104
|
+
material.doubleSided = material.doubleSided ?? false;
|
|
117
105
|
|
|
118
106
|
if (material.alphaMode === "MASK") {
|
|
119
|
-
material.alphaCutoff =
|
|
107
|
+
material.alphaCutoff = material.alphaCutoff ?? 0.5;
|
|
120
108
|
}
|
|
121
109
|
|
|
122
110
|
const techniquesExtension = extensions.KHR_techniques_webgl;
|
|
@@ -135,18 +123,12 @@ function addDefaults(gltf) {
|
|
|
135
123
|
|
|
136
124
|
const pbrMetallicRoughness = material.pbrMetallicRoughness;
|
|
137
125
|
if (defined(pbrMetallicRoughness)) {
|
|
138
|
-
pbrMetallicRoughness.baseColorFactor =
|
|
139
|
-
pbrMetallicRoughness.baseColorFactor,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
pbrMetallicRoughness.
|
|
143
|
-
pbrMetallicRoughness.
|
|
144
|
-
1.0
|
|
145
|
-
);
|
|
146
|
-
pbrMetallicRoughness.roughnessFactor = defaultValue(
|
|
147
|
-
pbrMetallicRoughness.roughnessFactor,
|
|
148
|
-
1.0
|
|
149
|
-
);
|
|
126
|
+
pbrMetallicRoughness.baseColorFactor =
|
|
127
|
+
pbrMetallicRoughness.baseColorFactor ?? [1.0, 1.0, 1.0, 1.0];
|
|
128
|
+
pbrMetallicRoughness.metallicFactor =
|
|
129
|
+
pbrMetallicRoughness.metallicFactor ?? 1.0;
|
|
130
|
+
pbrMetallicRoughness.roughnessFactor =
|
|
131
|
+
pbrMetallicRoughness.roughnessFactor ?? 1.0;
|
|
150
132
|
addTextureDefaults(pbrMetallicRoughness.baseColorTexture);
|
|
151
133
|
addTextureDefaults(pbrMetallicRoughness.metallicRoughnessTexture);
|
|
152
134
|
}
|
|
@@ -154,25 +136,19 @@ function addDefaults(gltf) {
|
|
|
154
136
|
const pbrSpecularGlossiness =
|
|
155
137
|
extensions.KHR_materials_pbrSpecularGlossiness;
|
|
156
138
|
if (defined(pbrSpecularGlossiness)) {
|
|
157
|
-
pbrSpecularGlossiness.diffuseFactor =
|
|
158
|
-
pbrSpecularGlossiness.diffuseFactor,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
pbrSpecularGlossiness.
|
|
162
|
-
pbrSpecularGlossiness.
|
|
163
|
-
[1.0, 1.0, 1.0]
|
|
164
|
-
);
|
|
165
|
-
pbrSpecularGlossiness.glossinessFactor = defaultValue(
|
|
166
|
-
pbrSpecularGlossiness.glossinessFactor,
|
|
167
|
-
1.0
|
|
168
|
-
);
|
|
139
|
+
pbrSpecularGlossiness.diffuseFactor =
|
|
140
|
+
pbrSpecularGlossiness.diffuseFactor ?? [1.0, 1.0, 1.0, 1.0];
|
|
141
|
+
pbrSpecularGlossiness.specularFactor =
|
|
142
|
+
pbrSpecularGlossiness.specularFactor ?? [1.0, 1.0, 1.0];
|
|
143
|
+
pbrSpecularGlossiness.glossinessFactor =
|
|
144
|
+
pbrSpecularGlossiness.glossinessFactor ?? 1.0;
|
|
169
145
|
addTextureDefaults(pbrSpecularGlossiness.specularGlossinessTexture);
|
|
170
146
|
}
|
|
171
147
|
});
|
|
172
148
|
|
|
173
149
|
ForEach.animation(gltf, function (animation) {
|
|
174
150
|
ForEach.animationSampler(animation, function (sampler) {
|
|
175
|
-
sampler.interpolation =
|
|
151
|
+
sampler.interpolation = sampler.interpolation ?? "LINEAR";
|
|
176
152
|
});
|
|
177
153
|
});
|
|
178
154
|
|
|
@@ -185,23 +161,20 @@ function addDefaults(gltf) {
|
|
|
185
161
|
defined(node.rotation) ||
|
|
186
162
|
defined(node.scale)
|
|
187
163
|
) {
|
|
188
|
-
node.translation =
|
|
189
|
-
node.rotation =
|
|
190
|
-
node.scale =
|
|
164
|
+
node.translation = node.translation ?? [0.0, 0.0, 0.0];
|
|
165
|
+
node.rotation = node.rotation ?? [0.0, 0.0, 0.0, 1.0];
|
|
166
|
+
node.scale = node.scale ?? [1.0, 1.0, 1.0];
|
|
191
167
|
} else {
|
|
192
|
-
node.matrix =
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
0.0, 1.0,
|
|
197
|
-
]
|
|
198
|
-
);
|
|
168
|
+
node.matrix = node.matrix ?? [
|
|
169
|
+
1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,
|
|
170
|
+
0.0, 1.0,
|
|
171
|
+
];
|
|
199
172
|
}
|
|
200
173
|
});
|
|
201
174
|
|
|
202
175
|
ForEach.sampler(gltf, function (sampler) {
|
|
203
|
-
sampler.wrapS =
|
|
204
|
-
sampler.wrapT =
|
|
176
|
+
sampler.wrapS = sampler.wrapS ?? WebGLConstants.REPEAT;
|
|
177
|
+
sampler.wrapT = sampler.wrapT ?? WebGLConstants.REPEAT;
|
|
205
178
|
});
|
|
206
179
|
|
|
207
180
|
if (defined(gltf.scenes) && !defined(gltf.scene)) {
|
|
@@ -229,7 +202,7 @@ function getAnimatedNodes(gltf) {
|
|
|
229
202
|
|
|
230
203
|
function addTextureDefaults(texture) {
|
|
231
204
|
if (defined(texture)) {
|
|
232
|
-
texture.texCoord =
|
|
205
|
+
texture.texCoord = texture.texCoord ?? 0;
|
|
233
206
|
}
|
|
234
207
|
}
|
|
235
208
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import defaultValue from "../../Core/defaultValue.js";
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Adds an element to an array and returns the element's index.
|
|
5
3
|
*
|
|
@@ -10,7 +8,7 @@ import defaultValue from "../../Core/defaultValue.js";
|
|
|
10
8
|
* @private
|
|
11
9
|
*/
|
|
12
10
|
function addToArray(array, element, checkDuplicates) {
|
|
13
|
-
checkDuplicates =
|
|
11
|
+
checkDuplicates = checkDuplicates ?? false;
|
|
14
12
|
if (checkDuplicates) {
|
|
15
13
|
const index = array.indexOf(element);
|
|
16
14
|
if (index > -1) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import addExtensionsUsed from "./addExtensionsUsed.js";
|
|
2
2
|
import ForEach from "./ForEach.js";
|
|
3
|
-
import defaultValue from "../../Core/defaultValue.js";
|
|
4
3
|
import defined from "../../Core/defined.js";
|
|
5
4
|
import WebGLConstants from "../../Core/WebGLConstants.js";
|
|
6
5
|
|
|
@@ -84,10 +83,8 @@ function moveTechniqueRenderStates(gltf) {
|
|
|
84
83
|
defined(blendFunctions.blendFuncSeparate))
|
|
85
84
|
) {
|
|
86
85
|
blendingForTechnique[techniqueIndex] = {
|
|
87
|
-
blendEquation:
|
|
88
|
-
blendFunctions.blendEquationSeparate,
|
|
89
|
-
defaultBlendEquation
|
|
90
|
-
),
|
|
86
|
+
blendEquation:
|
|
87
|
+
blendFunctions.blendEquationSeparate ?? defaultBlendEquation,
|
|
91
88
|
blendFactors: getSupportedBlendFactors(
|
|
92
89
|
blendFunctions.blendFuncSeparate,
|
|
93
90
|
defaultBlendFactors
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import addPipelineExtras from "./addPipelineExtras.js";
|
|
2
2
|
import removeExtensionsUsed from "./removeExtensionsUsed.js";
|
|
3
|
-
import defaultValue from "../../Core/defaultValue.js";
|
|
4
3
|
import defined from "../../Core/defined.js";
|
|
5
4
|
import getMagic from "../../Core/getMagic.js";
|
|
6
5
|
import getStringFromTypedArray from "../../Core/getStringFromTypedArray.js";
|
|
@@ -72,10 +71,7 @@ function parseGlbVersion1(glb, header) {
|
|
|
72
71
|
const buffers = gltf.buffers;
|
|
73
72
|
if (defined(buffers) && Object.keys(buffers).length > 0) {
|
|
74
73
|
// In some older models, the binary glTF buffer is named KHR_binary_glTF
|
|
75
|
-
const binaryGltfBuffer =
|
|
76
|
-
buffers.binary_glTF,
|
|
77
|
-
buffers.KHR_binary_glTF
|
|
78
|
-
);
|
|
74
|
+
const binaryGltfBuffer = buffers.binary_glTF ?? buffers.KHR_binary_glTF;
|
|
79
75
|
if (defined(binaryGltfBuffer)) {
|
|
80
76
|
binaryGltfBuffer.extras._pipeline.source = binaryBuffer;
|
|
81
77
|
delete binaryGltfBuffer.uri;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import ForEach from "./ForEach.js";
|
|
2
2
|
import forEachTextureInMaterial from "./forEachTextureInMaterial.js";
|
|
3
3
|
import usesExtension from "./usesExtension.js";
|
|
4
|
-
import defaultValue from "../../Core/defaultValue.js";
|
|
5
4
|
import defined from "../../Core/defined.js";
|
|
6
5
|
|
|
7
6
|
const allElementTypes = [
|
|
@@ -25,7 +24,7 @@ const allElementTypes = [
|
|
|
25
24
|
* @private
|
|
26
25
|
*/
|
|
27
26
|
function removeUnusedElements(gltf, elementTypes) {
|
|
28
|
-
elementTypes =
|
|
27
|
+
elementTypes = elementTypes ?? allElementTypes;
|
|
29
28
|
allElementTypes.forEach(function (type) {
|
|
30
29
|
if (elementTypes.indexOf(type) > -1) {
|
|
31
30
|
removeUnusedElementsByType(gltf, type);
|
|
@@ -13,7 +13,7 @@ import Cartesian3 from "../../Core/Cartesian3.js";
|
|
|
13
13
|
import Cartesian4 from "../../Core/Cartesian4.js";
|
|
14
14
|
import clone from "../../Core/clone.js";
|
|
15
15
|
import ComponentDatatype from "../../Core/ComponentDatatype.js";
|
|
16
|
-
import
|
|
16
|
+
import Frozen from "../../Core/Frozen.js";
|
|
17
17
|
import defined from "../../Core/defined.js";
|
|
18
18
|
import Matrix4 from "../../Core/Matrix4.js";
|
|
19
19
|
import Quaternion from "../../Core/Quaternion.js";
|
|
@@ -40,16 +40,14 @@ const updateFunctions = {
|
|
|
40
40
|
* @private
|
|
41
41
|
*/
|
|
42
42
|
function updateVersion(gltf, options) {
|
|
43
|
-
options =
|
|
43
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
44
44
|
const targetVersion = options.targetVersion;
|
|
45
45
|
let version = gltf.version;
|
|
46
46
|
|
|
47
|
-
gltf.asset =
|
|
48
|
-
version: "1.0",
|
|
49
|
-
});
|
|
47
|
+
gltf.asset = gltf.asset ?? { version: "1.0" };
|
|
50
48
|
|
|
51
|
-
gltf.asset.version =
|
|
52
|
-
version =
|
|
49
|
+
gltf.asset.version = gltf.asset.version ?? "1.0";
|
|
50
|
+
version = (version ?? gltf.asset.version).toString();
|
|
53
51
|
|
|
54
52
|
// Invalid version
|
|
55
53
|
if (!Object.prototype.hasOwnProperty.call(updateFunctions, version)) {
|
|
@@ -107,11 +105,8 @@ function setPrimitiveModes(gltf) {
|
|
|
107
105
|
const primitivesLength = primitives.length;
|
|
108
106
|
for (let i = 0; i < primitivesLength; ++i) {
|
|
109
107
|
const primitive = primitives[i];
|
|
110
|
-
const defaultMode =
|
|
111
|
-
|
|
112
|
-
WebGLConstants.TRIANGLES
|
|
113
|
-
);
|
|
114
|
-
primitive.mode = defaultValue(primitive.mode, defaultMode);
|
|
108
|
+
const defaultMode = primitive.primitive ?? WebGLConstants.TRIANGLES;
|
|
109
|
+
primitive.mode = primitive.mode ?? defaultMode;
|
|
115
110
|
delete primitive.primitive;
|
|
116
111
|
}
|
|
117
112
|
}
|
|
@@ -205,23 +200,15 @@ function removeTechniquePasses(gltf) {
|
|
|
205
200
|
const technique = techniques[techniqueId];
|
|
206
201
|
const passes = technique.passes;
|
|
207
202
|
if (defined(passes)) {
|
|
208
|
-
const passName =
|
|
203
|
+
const passName = technique.pass ?? "defaultPass";
|
|
209
204
|
if (Object.prototype.hasOwnProperty.call(passes, passName)) {
|
|
210
205
|
const pass = passes[passName];
|
|
211
206
|
const instanceProgram = pass.instanceProgram;
|
|
212
|
-
technique.attributes =
|
|
213
|
-
technique.attributes
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
technique.
|
|
217
|
-
technique.program,
|
|
218
|
-
instanceProgram.program
|
|
219
|
-
);
|
|
220
|
-
technique.uniforms = defaultValue(
|
|
221
|
-
technique.uniforms,
|
|
222
|
-
instanceProgram.uniforms
|
|
223
|
-
);
|
|
224
|
-
technique.states = defaultValue(technique.states, pass.states);
|
|
207
|
+
technique.attributes =
|
|
208
|
+
technique.attributes ?? instanceProgram.attributes;
|
|
209
|
+
technique.program = technique.program ?? instanceProgram.program;
|
|
210
|
+
technique.uniforms = technique.uniforms ?? instanceProgram.uniforms;
|
|
211
|
+
technique.states = technique.states ?? pass.states;
|
|
225
212
|
}
|
|
226
213
|
delete technique.passes;
|
|
227
214
|
delete technique.pass;
|
|
@@ -269,9 +256,9 @@ function glTF08to10(gltf) {
|
|
|
269
256
|
}
|
|
270
257
|
// gltf.lights -> khrMaterialsCommon.lights
|
|
271
258
|
if (defined(gltf.lights)) {
|
|
272
|
-
const extensions =
|
|
259
|
+
const extensions = gltf.extensions ?? {};
|
|
273
260
|
gltf.extensions = extensions;
|
|
274
|
-
const materialsCommon =
|
|
261
|
+
const materialsCommon = extensions.KHR_materials_common ?? {};
|
|
275
262
|
extensions.KHR_materials_common = materialsCommon;
|
|
276
263
|
materialsCommon.lights = gltf.lights;
|
|
277
264
|
delete gltf.lights;
|
|
@@ -611,7 +598,7 @@ const knownExtensions = {
|
|
|
611
598
|
};
|
|
612
599
|
function requireKnownExtensions(gltf) {
|
|
613
600
|
const extensionsUsed = gltf.extensionsUsed;
|
|
614
|
-
gltf.extensionsRequired =
|
|
601
|
+
gltf.extensionsRequired = gltf.extensionsRequired ?? [];
|
|
615
602
|
if (defined(extensionsUsed)) {
|
|
616
603
|
const extensionsUsedLength = extensionsUsed.length;
|
|
617
604
|
for (let i = 0; i < extensionsUsedLength; ++i) {
|
|
@@ -768,7 +755,7 @@ function requireByteLength(gltf) {
|
|
|
768
755
|
const accessorByteEnd =
|
|
769
756
|
accessor.byteOffset + accessor.count * accessorByteStride;
|
|
770
757
|
bufferView.byteLength = Math.max(
|
|
771
|
-
|
|
758
|
+
bufferView.byteLength ?? 0,
|
|
772
759
|
accessorByteEnd
|
|
773
760
|
);
|
|
774
761
|
}
|
|
@@ -793,10 +780,8 @@ function moveByteStrideToBufferView(gltf) {
|
|
|
793
780
|
const bufferViewMap = {};
|
|
794
781
|
ForEach.accessor(gltf, function (accessor) {
|
|
795
782
|
if (defined(accessor.bufferView)) {
|
|
796
|
-
bufferViewMap[accessor.bufferView] =
|
|
797
|
-
bufferViewMap[accessor.bufferView]
|
|
798
|
-
[]
|
|
799
|
-
);
|
|
783
|
+
bufferViewMap[accessor.bufferView] =
|
|
784
|
+
bufferViewMap[accessor.bufferView] ?? [];
|
|
800
785
|
bufferViewMap[accessor.bufferView].push(accessor);
|
|
801
786
|
}
|
|
802
787
|
});
|
|
@@ -955,7 +940,7 @@ function validatePresentAccessorMinMax(gltf) {
|
|
|
955
940
|
}
|
|
956
941
|
|
|
957
942
|
function glTF10to20(gltf) {
|
|
958
|
-
gltf.asset =
|
|
943
|
+
gltf.asset = gltf.asset ?? {};
|
|
959
944
|
gltf.asset.version = "2.0";
|
|
960
945
|
// material.instanceTechnique properties should be directly on the material. instanceTechnique is a gltf 0.8 property but is seen in some 1.0 models.
|
|
961
946
|
updateInstanceTechniques(gltf);
|
|
@@ -1052,15 +1037,11 @@ function srgbToLinear(srgb) {
|
|
|
1052
1037
|
}
|
|
1053
1038
|
|
|
1054
1039
|
function convertTechniquesToPbr(gltf, options) {
|
|
1055
|
-
options =
|
|
1056
|
-
const baseColorTextureNames =
|
|
1057
|
-
options.baseColorTextureNames
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
const baseColorFactorNames = defaultValue(
|
|
1061
|
-
options.baseColorFactorNames,
|
|
1062
|
-
defaultBaseColorFactorNames
|
|
1063
|
-
);
|
|
1040
|
+
options = options ?? Frozen.EMPTY_OBJECT;
|
|
1041
|
+
const baseColorTextureNames =
|
|
1042
|
+
options.baseColorTextureNames ?? defaultBaseColorTextureNames;
|
|
1043
|
+
const baseColorFactorNames =
|
|
1044
|
+
options.baseColorFactorNames ?? defaultBaseColorFactorNames;
|
|
1064
1045
|
|
|
1065
1046
|
// Future work: convert other values like emissive, specular, etc. Only handling diffuse right now.
|
|
1066
1047
|
ForEach.material(gltf, function (material) {
|
|
@@ -1102,16 +1083,14 @@ function assignAsEmissive(material, emissive) {
|
|
|
1102
1083
|
function convertMaterialsCommonToPbr(gltf) {
|
|
1103
1084
|
// Future work: convert KHR_materials_common lights to KHR_lights_punctual
|
|
1104
1085
|
ForEach.material(gltf, function (material) {
|
|
1105
|
-
const materialsCommon =
|
|
1106
|
-
|
|
1107
|
-
defaultValue.EMPTY_OBJECT
|
|
1108
|
-
).KHR_materials_common;
|
|
1086
|
+
const materialsCommon = (material.extensions ?? Frozen.EMPTY_OBJECT)
|
|
1087
|
+
.KHR_materials_common;
|
|
1109
1088
|
if (!defined(materialsCommon)) {
|
|
1110
1089
|
// Nothing to do
|
|
1111
1090
|
return;
|
|
1112
1091
|
}
|
|
1113
1092
|
|
|
1114
|
-
const values =
|
|
1093
|
+
const values = materialsCommon.values ?? {};
|
|
1115
1094
|
const ambient = values.ambient;
|
|
1116
1095
|
const diffuse = values.diffuse;
|
|
1117
1096
|
const emission = values.emission;
|