@cesium/engine 23.0.1 → 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-ZEMJQKHD.js → chunk-35H3UBIO.js} +13 -12
- package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-3LSD7OOA.js} +16 -16
- package/Build/Workers/{chunk-PUO7BYDY.js → chunk-3RFFPH4M.js} +1 -1
- package/Build/Workers/{chunk-PBECJOWF.js → chunk-3TKLDHV3.js} +2 -2
- package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-3VDDRF2E.js} +14 -14
- package/Build/Workers/{chunk-FKU77FNM.js → chunk-3XY3MVPG.js} +4 -4
- package/Build/Workers/{chunk-2OBWHTIC.js → chunk-4GF4MVPY.js} +7 -7
- package/Build/Workers/{chunk-JUKGMJX7.js → chunk-4MTRQFJP.js} +3 -2
- package/Build/Workers/{chunk-66OWUDO7.js → chunk-4QQXGTCE.js} +8 -8
- package/Build/Workers/{chunk-ALTCIHRH.js → chunk-4XXHJI6Y.js} +17 -17
- package/Build/Workers/{chunk-K7UTK4OM.js → chunk-5T6QQAJW.js} +3 -2
- package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-6SDGQI27.js} +3 -2
- package/Build/Workers/{chunk-FXSRA5UG.js → chunk-77RL3MBD.js} +6 -5
- package/Build/Workers/{chunk-G6MJ3ZW3.js → chunk-7LSFAEWF.js} +12 -11
- package/Build/Workers/{chunk-C6HHBKT5.js → chunk-A7A433MD.js} +5 -5
- package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-A7ZBMVFS.js} +14 -14
- package/Build/Workers/{chunk-OZYB3AOR.js → chunk-ACFFCHHZ.js} +11 -11
- package/Build/Workers/{chunk-DNMASBMH.js → chunk-AEAVLYPS.js} +2 -2
- package/Build/Workers/{chunk-VPWYHFQA.js → chunk-AWFZHD2B.js} +4 -4
- package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-BTX2NL3P.js} +59 -46
- package/Build/Workers/{chunk-TNXOPEIG.js → chunk-BVAIWR7O.js} +12 -12
- package/Build/Workers/chunk-CKQP3DSS.js +973 -0
- package/Build/Workers/{chunk-N6HRZLS6.js → chunk-CZ23Y3RM.js} +2 -2
- package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-DFEI5MAV.js} +7 -7
- package/Build/Workers/{chunk-BTP3634E.js → chunk-DH26SNAB.js} +4 -1
- package/Build/Workers/{chunk-TXYQNXNW.js → chunk-DYT5NR6P.js} +3 -3
- package/Build/Workers/{chunk-O67UP5YO.js → chunk-EZARA5FJ.js} +13 -13
- package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-FIBS5S7R.js} +2 -2
- package/Build/Workers/{chunk-2M7DKGLW.js → chunk-FVLVVOBQ.js} +10 -10
- package/Build/Workers/{chunk-B2VA6IEL.js → chunk-GL7DNVUS.js} +5 -5
- package/Build/Workers/{chunk-77DJBHMI.js → chunk-GPIGURCG.js} +59 -32
- package/Build/Workers/{chunk-QPXGGVHC.js → chunk-H2A4USJR.js} +10 -10
- package/Build/Workers/chunk-HSVQATK2.js +147 -0
- package/Build/Workers/{chunk-HXEPZWJN.js → chunk-HVMG6AG4.js} +11 -10
- package/Build/Workers/{chunk-H3TVRJLY.js → chunk-I3A6DXYZ.js} +4 -4
- package/Build/Workers/{chunk-UEWYSOFD.js → chunk-ITD2IN7N.js} +2 -2
- package/Build/Workers/{chunk-CYOPNGPX.js → chunk-J3OFS2RD.js} +12 -12
- package/Build/Workers/{chunk-RZX6LOG6.js → chunk-J647NNZW.js} +6 -6
- package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-J7KQEKPK.js} +13 -13
- package/Build/Workers/{chunk-XPMXRJDD.js → chunk-K6NFIRFB.js} +5 -5
- package/Build/Workers/{chunk-CID5SY7L.js → chunk-LH5SF3XV.js} +7 -6
- package/Build/Workers/{chunk-UOQB7XQI.js → chunk-ND3NTTOF.js} +713 -435
- 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-CJ7ZDY77.js → chunk-ST2UWDUU.js} +5 -5
- package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-TA777BGS.js} +3 -2
- package/Build/Workers/{chunk-U4SWB6TI.js → chunk-TAI4HLII.js} +4 -4
- package/Build/Workers/{chunk-VX774SWE.js → chunk-URUCCIPS.js} +6 -6
- package/Build/Workers/{chunk-MNSNOONX.js → chunk-VQKLRBIK.js} +7 -7
- package/Build/Workers/{chunk-CVAAIRNP.js → chunk-WC57YYBN.js} +2 -2
- package/Build/Workers/{chunk-QNABVTTP.js → chunk-WN6P5UDH.js} +12 -12
- package/Build/Workers/{chunk-CNLXMOPM.js → chunk-WNN5D4W3.js} +12 -11
- package/Build/Workers/{chunk-4JJQRZYL.js → chunk-WTQGE7Q6.js} +17 -17
- package/Build/Workers/{chunk-FCJQO4NC.js → chunk-WUBKZFF6.js} +2213 -1349
- package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-ZAPOS52G.js} +12 -10
- package/Build/Workers/{chunk-LHFC4R7Z.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 +25 -25
- package/Build/Workers/createWallOutlineGeometry.js +24 -24
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +12 -12
- 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/Cartesian2.js +7 -5
- package/Source/Core/Cartesian3.js +9 -8
- package/Source/Core/Cartesian4.js +8 -6
- 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 +846 -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/DeveloperError.js +2 -1
- 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/ITwinPlatform.js +1 -0
- 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/S2Cell.js +2 -2
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainMesh.js +10 -1
- package/Source/Core/TerrainPicker.js +1 -0
- 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/WallGeometry.js +1 -1
- package/Source/Core/WallOutlineGeometry.js +1 -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/Core/assert.js +27 -0
- package/Source/Core/globalTypes.js +4 -0
- package/Source/DataSources/CzmlDataSource.js +9 -0
- package/Source/DataSources/PathGraphics.js +13 -0
- package/Source/DataSources/PathVisualizer.js +330 -18
- package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +4 -1
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +4 -1
- 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/RenderState.js +2 -2
- 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/Renderer/VertexArray.js +80 -0
- 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/BillboardCollection.js +65 -364
- 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/BufferPoint.js +148 -0
- package/Source/Scene/BufferPointCollection.js +138 -0
- package/Source/Scene/BufferPointMaterial.js +95 -0
- package/Source/Scene/BufferPolygon.js +516 -0
- package/Source/Scene/BufferPolygonCollection.js +370 -0
- package/Source/Scene/BufferPolygonMaterial.js +41 -0
- package/Source/Scene/BufferPolyline.js +185 -0
- package/Source/Scene/BufferPolylineCollection.js +138 -0
- package/Source/Scene/BufferPolylineMaterial.js +93 -0
- package/Source/Scene/BufferPrimitive.js +347 -0
- package/Source/Scene/BufferPrimitiveCollection.js +818 -0
- package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContent.js +5 -1
- package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
- 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/Cesium3DTileStyle.js +22 -0
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +2 -1
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/ClippingPolygonCollection.js +270 -101
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/CubeMapPanorama.js +4 -4
- 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/GaussianSplat3DTileContent.js +40 -46
- package/Source/Scene/GaussianSplatPrimitive.js +413 -70
- package/Source/Scene/GetFeatureInfoFormat.js +3 -3
- 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 +215 -39
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +109 -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/ITwinData.js +1 -0
- 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/Label.js +32 -0
- package/Source/Scene/LabelCollection.js +14 -13
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/Material.js +2 -0
- package/Source/Scene/Megatexture.js +1 -0
- package/Source/Scene/MetadataClassProperty.js +24 -10
- package/Source/Scene/MetadataComponentType.js +118 -24
- 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/CustomShaderPipelineStage.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +735 -264
- 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 +331 -3
- package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +6 -0
- package/Source/Scene/Model/ModelReader.js +475 -4
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/ModelUtility.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 +375 -0
- 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 +1639 -1542
- package/Source/Scene/PickedMetadataInfo.js +1 -0
- 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/ScreenSpaceCameraController.js +13 -0
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +17 -8
- 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/TileBoundingRegion.js +1 -1
- package/Source/Scene/TileBoundingS2Cell.js +1 -1
- package/Source/Scene/TileBoundingSphere.js +1 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/TweenCollection.js +7 -0
- package/Source/Scene/VectorGltf3DTileContent.js +403 -0
- package/Source/Scene/VertexAttributeSemantic.js +17 -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/WebMapServiceImageryProvider.js +2 -2
- package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
- package/Source/Scene/parseStructuralMetadata.js +97 -37
- package/Source/Scene/renderBufferPointCollection.js +285 -0
- package/Source/Scene/renderBufferPolygonCollection.js +339 -0
- package/Source/Scene/renderBufferPolylineCollection.js +478 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
- package/Source/Shaders/BillboardCollectionFS.js +2 -77
- package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
- package/Source/Shaders/BillboardCollectionVS.js +2 -60
- package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
- package/Source/Shaders/BufferPointMaterialFS.js +29 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
- package/Source/Shaders/BufferPointMaterialVS.js +50 -0
- package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
- package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
- package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
- package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
- 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/EdgeVisibilityStageFS.glsl +34 -48
- package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Model/ModelFS.glsl +15 -0
- package/Source/Shaders/Model/ModelFS.js +15 -0
- package/Source/Shaders/Model/ModelVS.glsl +8 -0
- package/Source/Shaders/Model/ModelVS.js +8 -0
- package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
- package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
- package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
- package/Source/Shaders/Voxels/VoxelFS.js +1 -1
- 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/Source/Workers/decodeDraco.js +3 -0
- package/Source/Workers/decodeI3S.js +5 -2
- package/index.d.ts +1332 -402
- package/index.js +111 -81
- package/package.json +3 -3
- package/Build/Workers/chunk-54O3AGOA.js +0 -642
- package/Build/Workers/chunk-6U5QMZU3.js +0 -940
- package/Build/Workers/chunk-HNDE73JK.js +0 -1829
- package/Build/Workers/chunk-PAFMAR7A.js +0 -2357
- package/Build/Workers/chunk-S53HSRT6.js +0 -114
|
@@ -1,7 +1,24 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
import Frozen from "../Core/Frozen.js";
|
|
2
4
|
import defined from "../Core/defined.js";
|
|
3
5
|
import PrimitiveType from "../Core/PrimitiveType.js";
|
|
4
6
|
|
|
7
|
+
/** @import Context from "./Context.js"; */
|
|
8
|
+
/** @import Framebuffer from "./Framebuffer.js"; */
|
|
9
|
+
/** @import Matrix4 from "../Core/Matrix4.js"; */
|
|
10
|
+
/** @import OrientedBoundingBox from "../Core/OrientedBoundingBox.js"; */
|
|
11
|
+
/** @import Pass from "./Pass.js"; */
|
|
12
|
+
/** @import PassState from "./PassState.js"; */
|
|
13
|
+
/** @import PickedMetadataInfo from "../Scene/PickedMetadataInfo.js"; */
|
|
14
|
+
/** @import RenderState from "./RenderState.js"; */
|
|
15
|
+
/** @import ShaderProgram from "./ShaderProgram.js"; */
|
|
16
|
+
/** @import VertexArray from "./VertexArray.js"; */
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @enum {number}
|
|
20
|
+
* @ignore
|
|
21
|
+
*/
|
|
5
22
|
const Flags = {
|
|
6
23
|
CULL: 1,
|
|
7
24
|
OCCLUDE: 2,
|
|
@@ -14,69 +31,106 @@ const Flags = {
|
|
|
14
31
|
};
|
|
15
32
|
|
|
16
33
|
/**
|
|
17
|
-
*
|
|
34
|
+
* @typedef {object} DrawCommandOptions
|
|
35
|
+
* @property {object} [boundingVolume]
|
|
36
|
+
* @property {OrientedBoundingBox} [orientedBoundingBox]
|
|
37
|
+
* @property {Matrix4} [modelMatrix]
|
|
38
|
+
* @property {PrimitiveType} [primitiveType=PrimitiveType.TRIANGLES]
|
|
39
|
+
* @property {VertexArray} [vertexArray]
|
|
40
|
+
* @property {number} [count]
|
|
41
|
+
* @property {number} [offset]
|
|
42
|
+
* @property {number} [instanceCount]
|
|
43
|
+
* @property {ShaderProgram} [shaderProgram]
|
|
44
|
+
* @property {object} [uniformMap]
|
|
45
|
+
* @property {RenderState} [renderState]
|
|
46
|
+
* @property {Framebuffer} [framebuffer]
|
|
47
|
+
* @property {Pass} [pass]
|
|
48
|
+
* @property {object} [owner]
|
|
49
|
+
* @property {string} [pickId]
|
|
50
|
+
* @property {boolean} [pickMetadataAllowed=false]
|
|
51
|
+
* @property {boolean} [cull=true]
|
|
52
|
+
* @property {boolean} [occlude=true]
|
|
53
|
+
* @property {boolean} [executeInClosestFrustum=false]
|
|
54
|
+
* @property {boolean} [debugShowBoundingVolume=false]
|
|
55
|
+
* @property {boolean} [castShadows=false]
|
|
56
|
+
* @property {boolean} [receiveShadows=false]
|
|
57
|
+
* @property {boolean} [pickOnly=false]
|
|
58
|
+
* @property {boolean} [depthForTranslucentClassification=false]
|
|
18
59
|
*
|
|
19
|
-
* @
|
|
20
|
-
|
|
60
|
+
* @ignore
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Represents a command to the renderer for drawing.
|
|
21
65
|
*
|
|
22
66
|
* @private
|
|
23
67
|
*/
|
|
24
|
-
|
|
25
|
-
options = options ?? Frozen.EMPTY_OBJECT;
|
|
26
|
-
|
|
27
|
-
this._boundingVolume = options.boundingVolume;
|
|
28
|
-
this._orientedBoundingBox = options.orientedBoundingBox;
|
|
29
|
-
this._modelMatrix = options.modelMatrix;
|
|
30
|
-
this._primitiveType = options.primitiveType ?? PrimitiveType.TRIANGLES;
|
|
31
|
-
this._vertexArray = options.vertexArray;
|
|
32
|
-
this._count = options.count;
|
|
33
|
-
this._offset = options.offset ?? 0;
|
|
34
|
-
this._instanceCount = options.instanceCount ?? 0;
|
|
35
|
-
this._shaderProgram = options.shaderProgram;
|
|
36
|
-
this._uniformMap = options.uniformMap;
|
|
37
|
-
this._renderState = options.renderState;
|
|
38
|
-
this._framebuffer = options.framebuffer;
|
|
39
|
-
this._pass = options.pass;
|
|
40
|
-
this._owner = options.owner;
|
|
41
|
-
this._debugOverlappingFrustums = 0;
|
|
42
|
-
this._pickId = options.pickId;
|
|
43
|
-
this._pickMetadataAllowed = options.pickMetadataAllowed === true;
|
|
44
|
-
this._pickedMetadataInfo = undefined;
|
|
45
|
-
|
|
46
|
-
// Set initial flags.
|
|
47
|
-
this._flags = 0;
|
|
48
|
-
this.cull = options.cull ?? true;
|
|
49
|
-
this.occlude = options.occlude ?? true;
|
|
50
|
-
this.executeInClosestFrustum = options.executeInClosestFrustum ?? false;
|
|
51
|
-
this.debugShowBoundingVolume = options.debugShowBoundingVolume ?? false;
|
|
52
|
-
this.castShadows = options.castShadows ?? false;
|
|
53
|
-
this.receiveShadows = options.receiveShadows ?? false;
|
|
54
|
-
this.pickOnly = options.pickOnly ?? false;
|
|
55
|
-
this.depthForTranslucentClassification =
|
|
56
|
-
options.depthForTranslucentClassification ?? false;
|
|
57
|
-
|
|
58
|
-
this.dirty = true;
|
|
59
|
-
this.lastDirtyTime = 0;
|
|
60
|
-
|
|
68
|
+
class DrawCommand {
|
|
61
69
|
/**
|
|
62
|
-
* @
|
|
70
|
+
* @param {DrawCommandOptions} [options]
|
|
63
71
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
constructor(options = Frozen.EMPTY_OBJECT) {
|
|
73
|
+
/** @private */
|
|
74
|
+
this._boundingVolume = options.boundingVolume;
|
|
75
|
+
/** @private */
|
|
76
|
+
this._orientedBoundingBox = options.orientedBoundingBox;
|
|
77
|
+
/** @private */
|
|
78
|
+
this._modelMatrix = options.modelMatrix;
|
|
79
|
+
/** @private */
|
|
80
|
+
this._primitiveType = options.primitiveType ?? PrimitiveType.TRIANGLES;
|
|
81
|
+
/** @private */
|
|
82
|
+
this._vertexArray = options.vertexArray;
|
|
83
|
+
/** @private */
|
|
84
|
+
this._count = options.count;
|
|
85
|
+
/** @private */
|
|
86
|
+
this._offset = options.offset ?? 0;
|
|
87
|
+
/** @private */
|
|
88
|
+
this._instanceCount = options.instanceCount ?? 0;
|
|
89
|
+
/** @private */
|
|
90
|
+
this._shaderProgram = options.shaderProgram;
|
|
91
|
+
/** @private */
|
|
92
|
+
this._uniformMap = options.uniformMap;
|
|
93
|
+
/** @private */
|
|
94
|
+
this._renderState = options.renderState;
|
|
95
|
+
/** @private */
|
|
96
|
+
this._framebuffer = options.framebuffer;
|
|
97
|
+
/** @private */
|
|
98
|
+
this._pass = options.pass;
|
|
99
|
+
/** @private */
|
|
100
|
+
this._owner = options.owner;
|
|
101
|
+
/** @private */
|
|
102
|
+
this._debugOverlappingFrustums = 0;
|
|
103
|
+
/** @private */
|
|
104
|
+
this._pickId = options.pickId;
|
|
105
|
+
/** @private */
|
|
106
|
+
this._pickMetadataAllowed = options.pickMetadataAllowed === true;
|
|
107
|
+
/**
|
|
108
|
+
* @type {PickedMetadataInfo|undefined}
|
|
109
|
+
* @private
|
|
110
|
+
*/
|
|
111
|
+
this._pickedMetadataInfo = undefined;
|
|
112
|
+
|
|
113
|
+
// Set initial flags.
|
|
114
|
+
this._flags = 0;
|
|
115
|
+
this.cull = options.cull ?? true;
|
|
116
|
+
this.occlude = options.occlude ?? true;
|
|
117
|
+
this.executeInClosestFrustum = options.executeInClosestFrustum ?? false;
|
|
118
|
+
this.debugShowBoundingVolume = options.debugShowBoundingVolume ?? false;
|
|
119
|
+
this.castShadows = options.castShadows ?? false;
|
|
120
|
+
this.receiveShadows = options.receiveShadows ?? false;
|
|
121
|
+
this.pickOnly = options.pickOnly ?? false;
|
|
122
|
+
this.depthForTranslucentClassification =
|
|
123
|
+
options.depthForTranslucentClassification ?? false;
|
|
124
|
+
|
|
125
|
+
this.dirty = true;
|
|
126
|
+
this.lastDirtyTime = 0;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* @private
|
|
130
|
+
*/
|
|
131
|
+
this.derivedCommands = {};
|
|
76
132
|
}
|
|
77
|
-
}
|
|
78
133
|
|
|
79
|
-
Object.defineProperties(DrawCommand.prototype, {
|
|
80
134
|
/**
|
|
81
135
|
* The bounding volume of the geometry in world space. This is used for culling and frustum selection.
|
|
82
136
|
* <p>
|
|
@@ -86,85 +140,77 @@ Object.defineProperties(DrawCommand.prototype, {
|
|
|
86
140
|
* minimize the number of frustums needed.
|
|
87
141
|
* </p>
|
|
88
142
|
*
|
|
89
|
-
* @memberof DrawCommand.prototype
|
|
90
143
|
* @type {object}
|
|
91
144
|
* @default undefined
|
|
92
145
|
*
|
|
93
146
|
* @see DrawCommand#debugShowBoundingVolume
|
|
94
147
|
*/
|
|
95
|
-
boundingVolume
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
},
|
|
148
|
+
get boundingVolume() {
|
|
149
|
+
return this._boundingVolume;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
set boundingVolume(value) {
|
|
153
|
+
if (this._boundingVolume !== value) {
|
|
154
|
+
this._boundingVolume = value;
|
|
155
|
+
this.dirty = true;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
106
158
|
|
|
107
159
|
/**
|
|
108
160
|
* The oriented bounding box of the geometry in world space. If this is defined, it is used instead of
|
|
109
161
|
* {@link DrawCommand#boundingVolume} for plane intersection testing.
|
|
110
162
|
*
|
|
111
|
-
* @memberof DrawCommand.prototype
|
|
112
163
|
* @type {OrientedBoundingBox}
|
|
113
164
|
* @default undefined
|
|
114
165
|
*
|
|
115
166
|
* @see DrawCommand#debugShowBoundingVolume
|
|
116
167
|
*/
|
|
117
|
-
orientedBoundingBox
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
},
|
|
168
|
+
get orientedBoundingBox() {
|
|
169
|
+
return this._orientedBoundingBox;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
set orientedBoundingBox(value) {
|
|
173
|
+
if (this._orientedBoundingBox !== value) {
|
|
174
|
+
this._orientedBoundingBox = value;
|
|
175
|
+
this.dirty = true;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
128
178
|
|
|
129
179
|
/**
|
|
130
180
|
* When <code>true</code>, the renderer frustum and horizon culls the command based on its {@link DrawCommand#boundingVolume}.
|
|
131
181
|
* If the command was already culled, set this to <code>false</code> for a performance improvement.
|
|
132
182
|
*
|
|
133
|
-
* @memberof DrawCommand.prototype
|
|
134
183
|
* @type {boolean}
|
|
135
184
|
* @default true
|
|
136
185
|
*/
|
|
137
|
-
cull
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
},
|
|
186
|
+
get cull() {
|
|
187
|
+
return hasFlag(this, Flags.CULL);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
set cull(value) {
|
|
191
|
+
if (hasFlag(this, Flags.CULL) !== value) {
|
|
192
|
+
setFlag(this, Flags.CULL, value);
|
|
193
|
+
this.dirty = true;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
148
196
|
|
|
149
197
|
/**
|
|
150
198
|
* When <code>true</code>, the horizon culls the command based on its {@link DrawCommand#boundingVolume}.
|
|
151
199
|
* {@link DrawCommand#cull} must also be <code>true</code> in order for the command to be culled.
|
|
152
200
|
*
|
|
153
|
-
* @memberof DrawCommand.prototype
|
|
154
201
|
* @type {boolean}
|
|
155
202
|
* @default true
|
|
156
203
|
*/
|
|
157
|
-
occlude
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
},
|
|
204
|
+
get occlude() {
|
|
205
|
+
return hasFlag(this, Flags.OCCLUDE);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
set occlude(value) {
|
|
209
|
+
if (hasFlag(this, Flags.OCCLUDE) !== value) {
|
|
210
|
+
setFlag(this, Flags.OCCLUDE, value);
|
|
211
|
+
this.dirty = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
168
214
|
|
|
169
215
|
/**
|
|
170
216
|
* The transformation from the geometry in model space to world space.
|
|
@@ -172,270 +218,242 @@ Object.defineProperties(DrawCommand.prototype, {
|
|
|
172
218
|
* When <code>undefined</code>, the geometry is assumed to be defined in world space.
|
|
173
219
|
* </p>
|
|
174
220
|
*
|
|
175
|
-
* @memberof DrawCommand.prototype
|
|
176
221
|
* @type {Matrix4}
|
|
177
222
|
* @default undefined
|
|
178
223
|
*/
|
|
179
|
-
modelMatrix
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
},
|
|
224
|
+
get modelMatrix() {
|
|
225
|
+
return this._modelMatrix;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
set modelMatrix(value) {
|
|
229
|
+
if (this._modelMatrix !== value) {
|
|
230
|
+
this._modelMatrix = value;
|
|
231
|
+
this.dirty = true;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
190
234
|
|
|
191
235
|
/**
|
|
192
236
|
* The type of geometry in the vertex array.
|
|
193
237
|
*
|
|
194
|
-
* @memberof DrawCommand.prototype
|
|
195
238
|
* @type {PrimitiveType}
|
|
196
239
|
* @default PrimitiveType.TRIANGLES
|
|
197
240
|
*/
|
|
198
|
-
primitiveType
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
},
|
|
241
|
+
get primitiveType() {
|
|
242
|
+
return this._primitiveType;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
set primitiveType(value) {
|
|
246
|
+
if (this._primitiveType !== value) {
|
|
247
|
+
this._primitiveType = value;
|
|
248
|
+
this.dirty = true;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
209
251
|
|
|
210
252
|
/**
|
|
211
253
|
* The vertex array.
|
|
212
254
|
*
|
|
213
|
-
* @memberof DrawCommand.prototype
|
|
214
255
|
* @type {VertexArray}
|
|
215
256
|
* @default undefined
|
|
216
257
|
*/
|
|
217
|
-
vertexArray
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
},
|
|
258
|
+
get vertexArray() {
|
|
259
|
+
return this._vertexArray;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
set vertexArray(value) {
|
|
263
|
+
if (this._vertexArray !== value) {
|
|
264
|
+
this._vertexArray = value;
|
|
265
|
+
this.dirty = true;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
228
268
|
|
|
229
269
|
/**
|
|
230
270
|
* The number of vertices to draw in the vertex array.
|
|
231
271
|
*
|
|
232
|
-
* @memberof DrawCommand.prototype
|
|
233
272
|
* @type {number}
|
|
234
273
|
* @default undefined
|
|
235
274
|
*/
|
|
236
|
-
count
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
},
|
|
275
|
+
get count() {
|
|
276
|
+
return this._count;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
set count(value) {
|
|
280
|
+
if (this._count !== value) {
|
|
281
|
+
this._count = value;
|
|
282
|
+
this.dirty = true;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
247
285
|
|
|
248
286
|
/**
|
|
249
287
|
* The offset to start drawing in the vertex array.
|
|
250
288
|
*
|
|
251
|
-
* @memberof DrawCommand.prototype
|
|
252
289
|
* @type {number}
|
|
253
290
|
* @default 0
|
|
254
291
|
*/
|
|
255
|
-
offset
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
},
|
|
292
|
+
get offset() {
|
|
293
|
+
return this._offset;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
set offset(value) {
|
|
297
|
+
if (this._offset !== value) {
|
|
298
|
+
this._offset = value;
|
|
299
|
+
this.dirty = true;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
266
302
|
|
|
267
303
|
/**
|
|
268
304
|
* The number of instances to draw.
|
|
269
305
|
*
|
|
270
|
-
* @memberof DrawCommand.prototype
|
|
271
306
|
* @type {number}
|
|
272
307
|
* @default 0
|
|
273
308
|
*/
|
|
274
|
-
instanceCount
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
},
|
|
309
|
+
get instanceCount() {
|
|
310
|
+
return this._instanceCount;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
set instanceCount(value) {
|
|
314
|
+
if (this._instanceCount !== value) {
|
|
315
|
+
this._instanceCount = value;
|
|
316
|
+
this.dirty = true;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
285
319
|
|
|
286
320
|
/**
|
|
287
321
|
* The shader program to apply.
|
|
288
322
|
*
|
|
289
|
-
* @memberof DrawCommand.prototype
|
|
290
323
|
* @type {ShaderProgram}
|
|
291
324
|
* @default undefined
|
|
292
325
|
*/
|
|
293
|
-
shaderProgram
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
},
|
|
326
|
+
get shaderProgram() {
|
|
327
|
+
return this._shaderProgram;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
set shaderProgram(value) {
|
|
331
|
+
if (this._shaderProgram !== value) {
|
|
332
|
+
this._shaderProgram = value;
|
|
333
|
+
this.dirty = true;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
304
336
|
|
|
305
337
|
/**
|
|
306
338
|
* Whether this command should cast shadows when shadowing is enabled.
|
|
307
339
|
*
|
|
308
|
-
* @memberof DrawCommand.prototype
|
|
309
340
|
* @type {boolean}
|
|
310
341
|
* @default false
|
|
311
342
|
*/
|
|
312
|
-
castShadows
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
},
|
|
343
|
+
get castShadows() {
|
|
344
|
+
return hasFlag(this, Flags.CAST_SHADOWS);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
set castShadows(value) {
|
|
348
|
+
if (hasFlag(this, Flags.CAST_SHADOWS) !== value) {
|
|
349
|
+
setFlag(this, Flags.CAST_SHADOWS, value);
|
|
350
|
+
this.dirty = true;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
323
353
|
|
|
324
354
|
/**
|
|
325
355
|
* Whether this command should receive shadows when shadowing is enabled.
|
|
326
356
|
*
|
|
327
|
-
* @memberof DrawCommand.prototype
|
|
328
357
|
* @type {boolean}
|
|
329
358
|
* @default false
|
|
330
359
|
*/
|
|
331
|
-
receiveShadows
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
},
|
|
360
|
+
get receiveShadows() {
|
|
361
|
+
return hasFlag(this, Flags.RECEIVE_SHADOWS);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
set receiveShadows(value) {
|
|
365
|
+
if (hasFlag(this, Flags.RECEIVE_SHADOWS) !== value) {
|
|
366
|
+
setFlag(this, Flags.RECEIVE_SHADOWS, value);
|
|
367
|
+
this.dirty = true;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
342
370
|
|
|
343
371
|
/**
|
|
344
372
|
* An object with functions whose names match the uniforms in the shader program
|
|
345
373
|
* and return values to set those uniforms.
|
|
346
374
|
*
|
|
347
|
-
* @memberof DrawCommand.prototype
|
|
348
375
|
* @type {object}
|
|
349
376
|
* @default undefined
|
|
350
377
|
*/
|
|
351
|
-
uniformMap
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
},
|
|
378
|
+
get uniformMap() {
|
|
379
|
+
return this._uniformMap;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
set uniformMap(value) {
|
|
383
|
+
if (this._uniformMap !== value) {
|
|
384
|
+
this._uniformMap = value;
|
|
385
|
+
this.dirty = true;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
362
388
|
|
|
363
389
|
/**
|
|
364
390
|
* The render state.
|
|
365
391
|
*
|
|
366
|
-
* @memberof DrawCommand.prototype
|
|
367
392
|
* @type {RenderState}
|
|
368
393
|
* @default undefined
|
|
369
394
|
*/
|
|
370
|
-
renderState
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
},
|
|
395
|
+
get renderState() {
|
|
396
|
+
return this._renderState;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
set renderState(value) {
|
|
400
|
+
if (this._renderState !== value) {
|
|
401
|
+
this._renderState = value;
|
|
402
|
+
this.dirty = true;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
381
405
|
|
|
382
406
|
/**
|
|
383
407
|
* The framebuffer to draw to.
|
|
384
408
|
*
|
|
385
|
-
* @memberof DrawCommand.prototype
|
|
386
409
|
* @type {Framebuffer}
|
|
387
410
|
* @default undefined
|
|
388
411
|
*/
|
|
389
|
-
framebuffer
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
},
|
|
412
|
+
get framebuffer() {
|
|
413
|
+
return this._framebuffer;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
set framebuffer(value) {
|
|
417
|
+
if (this._framebuffer !== value) {
|
|
418
|
+
this._framebuffer = value;
|
|
419
|
+
this.dirty = true;
|
|
420
|
+
}
|
|
421
|
+
}
|
|
400
422
|
|
|
401
423
|
/**
|
|
402
424
|
* The pass when to render.
|
|
403
425
|
*
|
|
404
|
-
* @memberof DrawCommand.prototype
|
|
405
426
|
* @type {Pass}
|
|
406
427
|
* @default undefined
|
|
407
428
|
*/
|
|
408
|
-
pass
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
},
|
|
429
|
+
get pass() {
|
|
430
|
+
return this._pass;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
set pass(value) {
|
|
434
|
+
if (this._pass !== value) {
|
|
435
|
+
this._pass = value;
|
|
436
|
+
this.dirty = true;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
419
439
|
|
|
420
440
|
/**
|
|
421
441
|
* Specifies if this command is only to be executed in the frustum closest
|
|
422
442
|
* to the eye containing the bounding volume. Defaults to <code>false</code>.
|
|
423
443
|
*
|
|
424
|
-
* @memberof DrawCommand.prototype
|
|
425
444
|
* @type {boolean}
|
|
426
445
|
* @default false
|
|
427
446
|
*/
|
|
428
|
-
executeInClosestFrustum
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
},
|
|
447
|
+
get executeInClosestFrustum() {
|
|
448
|
+
return hasFlag(this, Flags.EXECUTE_IN_CLOSEST_FRUSTUM);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
set executeInClosestFrustum(value) {
|
|
452
|
+
if (hasFlag(this, Flags.EXECUTE_IN_CLOSEST_FRUSTUM) !== value) {
|
|
453
|
+
setFlag(this, Flags.EXECUTE_IN_CLOSEST_FRUSTUM, value);
|
|
454
|
+
this.dirty = true;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
439
457
|
|
|
440
458
|
/**
|
|
441
459
|
* The object who created this command. This is useful for debugging command
|
|
@@ -443,23 +461,21 @@ Object.defineProperties(DrawCommand.prototype, {
|
|
|
443
461
|
* reference to the command, and can be used to selectively execute commands
|
|
444
462
|
* with {@link Scene#debugCommandFilter}.
|
|
445
463
|
*
|
|
446
|
-
* @memberof DrawCommand.prototype
|
|
447
464
|
* @type {object}
|
|
448
465
|
* @default undefined
|
|
449
466
|
*
|
|
450
467
|
* @see Scene#debugCommandFilter
|
|
451
468
|
*/
|
|
452
|
-
owner
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
},
|
|
469
|
+
get owner() {
|
|
470
|
+
return this._owner;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
set owner(value) {
|
|
474
|
+
if (this._owner !== value) {
|
|
475
|
+
this._owner = value;
|
|
476
|
+
this.dirty = true;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
463
479
|
|
|
464
480
|
/**
|
|
465
481
|
* This property is for debugging only; it is not for production use nor is it optimized.
|
|
@@ -467,58 +483,54 @@ Object.defineProperties(DrawCommand.prototype, {
|
|
|
467
483
|
* Draws the {@link DrawCommand#boundingVolume} for this command, assuming it is a sphere, when the command executes.
|
|
468
484
|
* </p>
|
|
469
485
|
*
|
|
470
|
-
* @memberof DrawCommand.prototype
|
|
471
486
|
* @type {boolean}
|
|
472
487
|
* @default false
|
|
473
488
|
*
|
|
474
489
|
* @see DrawCommand#boundingVolume
|
|
475
490
|
*/
|
|
476
|
-
debugShowBoundingVolume
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
},
|
|
491
|
+
get debugShowBoundingVolume() {
|
|
492
|
+
return hasFlag(this, Flags.DEBUG_SHOW_BOUNDING_VOLUME);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
set debugShowBoundingVolume(value) {
|
|
496
|
+
if (hasFlag(this, Flags.DEBUG_SHOW_BOUNDING_VOLUME) !== value) {
|
|
497
|
+
setFlag(this, Flags.DEBUG_SHOW_BOUNDING_VOLUME, value);
|
|
498
|
+
this.dirty = true;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
487
501
|
|
|
488
502
|
/**
|
|
489
503
|
* Used to implement Scene.debugShowFrustums.
|
|
490
|
-
* @
|
|
504
|
+
* @ignore
|
|
491
505
|
*/
|
|
492
|
-
debugOverlappingFrustums
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
506
|
+
get debugOverlappingFrustums() {
|
|
507
|
+
return this._debugOverlappingFrustums;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
set debugOverlappingFrustums(value) {
|
|
511
|
+
if (this._debugOverlappingFrustums !== value) {
|
|
512
|
+
this._debugOverlappingFrustums = value;
|
|
513
|
+
this.dirty = true;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
|
|
503
517
|
/**
|
|
504
518
|
* A GLSL string that will evaluate to a pick id. When <code>undefined</code>, the command will only draw depth
|
|
505
519
|
* during the pick pass.
|
|
506
520
|
*
|
|
507
|
-
* @memberof DrawCommand.prototype
|
|
508
521
|
* @type {string|undefined}
|
|
509
522
|
* @default undefined
|
|
510
523
|
*/
|
|
511
|
-
pickId
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
},
|
|
524
|
+
get pickId() {
|
|
525
|
+
return this._pickId;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
set pickId(value) {
|
|
529
|
+
if (this._pickId !== value) {
|
|
530
|
+
this._pickId = value;
|
|
531
|
+
this.dirty = true;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
522
534
|
|
|
523
535
|
/**
|
|
524
536
|
* Whether metadata picking is allowed.
|
|
@@ -527,118 +539,138 @@ Object.defineProperties(DrawCommand.prototype, {
|
|
|
527
539
|
* part of a `ModelDrawCommand`, to check whether a derived command
|
|
528
540
|
* for metadata picking has to be created.
|
|
529
541
|
*
|
|
530
|
-
* @memberof DrawCommand.prototype
|
|
531
542
|
* @type {boolean}
|
|
532
543
|
* @default undefined
|
|
533
544
|
* @private
|
|
534
545
|
*/
|
|
535
|
-
pickMetadataAllowed
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
},
|
|
539
|
-
},
|
|
546
|
+
get pickMetadataAllowed() {
|
|
547
|
+
return this._pickMetadataAllowed;
|
|
548
|
+
}
|
|
540
549
|
|
|
541
550
|
/**
|
|
542
551
|
* Information about picked metadata.
|
|
543
552
|
*
|
|
544
|
-
* @memberof DrawCommand.prototype
|
|
545
553
|
* @type {PickedMetadataInfo|undefined}
|
|
546
554
|
* @default undefined
|
|
547
555
|
*/
|
|
548
|
-
pickedMetadataInfo
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
},
|
|
556
|
+
get pickedMetadataInfo() {
|
|
557
|
+
return this._pickedMetadataInfo;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
set pickedMetadataInfo(value) {
|
|
561
|
+
if (this._pickedMetadataInfo !== value) {
|
|
562
|
+
this._pickedMetadataInfo = value;
|
|
563
|
+
this.dirty = true;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
559
566
|
|
|
560
567
|
/**
|
|
561
568
|
* Whether this command should be executed in the pick pass only.
|
|
562
569
|
*
|
|
563
|
-
* @memberof DrawCommand.prototype
|
|
564
570
|
* @type {boolean}
|
|
565
571
|
* @default false
|
|
566
572
|
*/
|
|
567
|
-
pickOnly
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
573
|
+
get pickOnly() {
|
|
574
|
+
return hasFlag(this, Flags.PICK_ONLY);
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
set pickOnly(value) {
|
|
578
|
+
if (hasFlag(this, Flags.PICK_ONLY) !== value) {
|
|
579
|
+
setFlag(this, Flags.PICK_ONLY, value);
|
|
580
|
+
this.dirty = true;
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
|
|
578
584
|
/**
|
|
579
585
|
* Whether this command should be derived to draw depth for classification of translucent primitives.
|
|
580
586
|
*
|
|
581
|
-
* @memberof DrawCommand.prototype
|
|
582
587
|
* @type {boolean}
|
|
583
588
|
* @default false
|
|
584
589
|
*/
|
|
585
|
-
depthForTranslucentClassification
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
590
|
+
get depthForTranslucentClassification() {
|
|
591
|
+
return hasFlag(this, Flags.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION);
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
set depthForTranslucentClassification(value) {
|
|
595
|
+
if (hasFlag(this, Flags.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION) !== value) {
|
|
596
|
+
setFlag(this, Flags.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION, value);
|
|
597
|
+
this.dirty = true;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* @param {DrawCommand} command
|
|
603
|
+
* @param {DrawCommand} result
|
|
604
|
+
* @returns {DrawCommand}
|
|
605
|
+
* @private
|
|
606
|
+
*/
|
|
607
|
+
static shallowClone(command, result) {
|
|
608
|
+
if (!defined(command)) {
|
|
609
|
+
return undefined;
|
|
610
|
+
}
|
|
611
|
+
if (!defined(result)) {
|
|
612
|
+
result = new DrawCommand();
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
result._boundingVolume = command._boundingVolume;
|
|
616
|
+
result._orientedBoundingBox = command._orientedBoundingBox;
|
|
617
|
+
result._modelMatrix = command._modelMatrix;
|
|
618
|
+
result._primitiveType = command._primitiveType;
|
|
619
|
+
result._vertexArray = command._vertexArray;
|
|
620
|
+
result._count = command._count;
|
|
621
|
+
result._offset = command._offset;
|
|
622
|
+
result._instanceCount = command._instanceCount;
|
|
623
|
+
result._shaderProgram = command._shaderProgram;
|
|
624
|
+
result._uniformMap = command._uniformMap;
|
|
625
|
+
result._renderState = command._renderState;
|
|
626
|
+
result._framebuffer = command._framebuffer;
|
|
627
|
+
result._pass = command._pass;
|
|
628
|
+
result._owner = command._owner;
|
|
629
|
+
result._debugOverlappingFrustums = command._debugOverlappingFrustums;
|
|
630
|
+
result._pickId = command._pickId;
|
|
631
|
+
result._pickMetadataAllowed = command._pickMetadataAllowed;
|
|
632
|
+
result._pickedMetadataInfo = command._pickedMetadataInfo;
|
|
633
|
+
result._flags = command._flags;
|
|
634
|
+
|
|
635
|
+
result.dirty = true;
|
|
636
|
+
result.lastDirtyTime = 0;
|
|
637
|
+
|
|
638
|
+
return result;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
/**
|
|
642
|
+
* Executes the draw command.
|
|
643
|
+
*
|
|
644
|
+
* @param {Context} context The renderer context in which to draw.
|
|
645
|
+
* @param {PassState} [passState] The state for the current render pass.
|
|
646
|
+
*/
|
|
647
|
+
execute(context, passState) {
|
|
648
|
+
context.draw(this, passState);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
597
651
|
|
|
598
652
|
/**
|
|
599
|
-
* @
|
|
653
|
+
* @param {DrawCommand} command
|
|
654
|
+
* @param {Flags} flag
|
|
655
|
+
* @returns {boolean}
|
|
656
|
+
* @ignore
|
|
600
657
|
*/
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
}
|
|
605
|
-
if (!defined(result)) {
|
|
606
|
-
result = new DrawCommand();
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
result._boundingVolume = command._boundingVolume;
|
|
610
|
-
result._orientedBoundingBox = command._orientedBoundingBox;
|
|
611
|
-
result._modelMatrix = command._modelMatrix;
|
|
612
|
-
result._primitiveType = command._primitiveType;
|
|
613
|
-
result._vertexArray = command._vertexArray;
|
|
614
|
-
result._count = command._count;
|
|
615
|
-
result._offset = command._offset;
|
|
616
|
-
result._instanceCount = command._instanceCount;
|
|
617
|
-
result._shaderProgram = command._shaderProgram;
|
|
618
|
-
result._uniformMap = command._uniformMap;
|
|
619
|
-
result._renderState = command._renderState;
|
|
620
|
-
result._framebuffer = command._framebuffer;
|
|
621
|
-
result._pass = command._pass;
|
|
622
|
-
result._owner = command._owner;
|
|
623
|
-
result._debugOverlappingFrustums = command._debugOverlappingFrustums;
|
|
624
|
-
result._pickId = command._pickId;
|
|
625
|
-
result._pickMetadataAllowed = command._pickMetadataAllowed;
|
|
626
|
-
result._pickedMetadataInfo = command._pickedMetadataInfo;
|
|
627
|
-
result._flags = command._flags;
|
|
628
|
-
|
|
629
|
-
result.dirty = true;
|
|
630
|
-
result.lastDirtyTime = 0;
|
|
631
|
-
|
|
632
|
-
return result;
|
|
633
|
-
};
|
|
658
|
+
function hasFlag(command, flag) {
|
|
659
|
+
return (command._flags & flag) === flag;
|
|
660
|
+
}
|
|
634
661
|
|
|
635
662
|
/**
|
|
636
|
-
*
|
|
637
|
-
*
|
|
638
|
-
* @param {
|
|
639
|
-
* @
|
|
663
|
+
* @param {DrawCommand} command
|
|
664
|
+
* @param {Flags} flag
|
|
665
|
+
* @param {boolean} value
|
|
666
|
+
* @ignore
|
|
640
667
|
*/
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
668
|
+
function setFlag(command, flag, value) {
|
|
669
|
+
if (value) {
|
|
670
|
+
command._flags |= flag;
|
|
671
|
+
} else {
|
|
672
|
+
command._flags &= ~flag;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
|
|
644
676
|
export default DrawCommand;
|