@realsee/dnalogel 3.81.0-alpha.3 → 3.81.0-alpha.5
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/dist/DigitalPerformancePlugin/core/DigitalHuman.d.ts +23 -0
- package/dist/DigitalPerformancePlugin/core/DigitalPlayground.d.ts +7 -0
- package/dist/DigitalPerformanceV2Plugin/controller/index.d.ts +31 -2
- package/dist/DigitalPerformanceV2Plugin/core/Playground.d.ts +2 -0
- package/dist/DigitalPerformanceV2Plugin/typings/index.d.ts +2 -0
- package/dist/index.cjs.js +43 -43
- package/dist/index.js +1717 -1617
- package/dist/index.umd.js +41 -41
- package/docs/assets/search.js +1 -1
- package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
- package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
- package/docs/classes/CSS3DRender.html +2 -2
- package/docs/classes/DigitalHuman.html +13 -4
- package/docs/classes/DigitalPerformanceV2.DigitalPerformanceV2PluginController.html +50 -43
- package/docs/classes/DigitalPlayground.html +6 -3
- package/docs/classes/DigitalStateMachine.html +2 -2
- package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
- package/docs/classes/ModelMakerPluginInstance.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +2 -2
- package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +2 -2
- package/docs/classes/ModelRoomLabelController.html +2 -2
- package/docs/classes/MoveController.html +2 -2
- package/docs/classes/Object3DHelperController.html +2 -2
- package/docs/classes/PaintBrush.html +2 -2
- package/docs/classes/PanoMeasurePluginLine.html +2 -2
- package/docs/classes/PanoMeasurePluginModel.html +2 -2
- package/docs/classes/PanoMeasurePluginPoint.html +2 -2
- package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
- package/docs/classes/PanoTagPluginController.html +2 -2
- package/docs/classes/Sculpt.html +2 -2
- package/docs/classes/Util.BetterTween.html +2 -2
- package/docs/classes/Util.FiveDomEvents.html +2 -2
- package/docs/classes/Util.FivePuppet.html +2 -2
- package/docs/classes/Util.Interval.html +2 -2
- package/docs/classes/Util.LegacyPointHelper.html +2 -2
- package/docs/classes/Util.LightTag.html +2 -2
- package/docs/classes/Util.LineSegments.html +2 -2
- package/docs/classes/Util.Magnifier.html +2 -2
- package/docs/classes/Util.Object3D.html +2 -2
- package/docs/classes/Util.PointDomHelper.html +2 -2
- package/docs/classes/Util.PointHelper.html +2 -2
- package/docs/classes/Util.PointSelector.html +2 -2
- package/docs/classes/Util.PointSelectorHelper.html +2 -2
- package/docs/classes/Util.Rectangle.html +2 -2
- package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
- package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
- package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
- package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
- package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
- package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.LineMesh.html +2 -2
- package/docs/classes/Util.sculpt.PointMesh.html +2 -2
- package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
- package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
- package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
- package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
- package/docs/classes/WalkController.html +2 -2
- package/docs/enums/CameraMovementEffect.html +2 -2
- package/docs/enums/ContentType.html +2 -2
- package/docs/enums/DIRECTION.html +2 -2
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
- package/docs/enums/DimensionType.html +2 -2
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
- package/docs/enums/PaintBrushTypeEnum.html +2 -2
- package/docs/enums/PointType.html +2 -2
- package/docs/enums/Rotation.html +2 -2
- package/docs/functions/AreaMakerPlugin.html +1 -1
- package/docs/functions/CSS3DRenderPlugin.html +1 -1
- package/docs/functions/CameraMovementPlugin.html +2 -2
- package/docs/functions/CruisePlugin.html +1 -1
- package/docs/functions/CurrentPanoImagePlugin.html +1 -1
- package/docs/functions/DigitalPerformancePlugin.html +1 -1
- package/docs/functions/DigitalPerformanceV2.DigitalPerformanceV2Plugin.html +1 -1
- package/docs/functions/FloorplanGuidePlugin.html +1 -1
- package/docs/functions/GuideLinePlugin.html +1 -1
- package/docs/functions/ItemLabelPlugin.html +1 -1
- package/docs/functions/MapviewFloorplanPlugin.html +1 -1
- package/docs/functions/MeasurePlugin.html +1 -1
- package/docs/functions/ModelChassisCompassPlugin.html +2 -2
- package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
- package/docs/functions/ModelFloorplanPlugin.html +1 -1
- package/docs/functions/ModelItemLabelPlugin.html +1 -1
- package/docs/functions/ModelMakerPlugin.html +1 -1
- package/docs/functions/ModelRoomLabelPlugin.html +1 -1
- package/docs/functions/ModelTVVideoPlugin.html +1 -1
- package/docs/functions/ModelViewPlugin.html +2 -2
- package/docs/functions/MovePlugin.html +1 -1
- package/docs/functions/Object3DHelperPlugin.html +1 -1
- package/docs/functions/PanoCompassPlugin.html +1 -1
- package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
- package/docs/functions/PanoDoorLabelPlugin.html +1 -1
- package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
- package/docs/functions/PanoMeasurePlugin.html +1 -1
- package/docs/functions/PanoRulerPlugin.html +2 -2
- package/docs/functions/PanoRulerProPlugin.html +2 -2
- package/docs/functions/PanoSpatialTagPlugin.html +2 -2
- package/docs/functions/PanoTagPlugin.html +1 -1
- package/docs/functions/PanoVideoPlugin.html +2 -2
- package/docs/functions/PipelinePlugin.html +1 -1
- package/docs/functions/SculptPlugin.html +2 -2
- package/docs/functions/SculptPluginForFive.html +2 -2
- package/docs/functions/TopviewFloorplanPlugin.html +1 -1
- package/docs/functions/Util.awaitNextFrame.html +1 -1
- package/docs/functions/Util.blink.html +2 -2
- package/docs/functions/Util.blinkWithPreset.html +2 -2
- package/docs/functions/Util.bounding.html +1 -1
- package/docs/functions/Util.boundingBox.html +1 -1
- package/docs/functions/Util.boundingSphere.html +1 -1
- package/docs/functions/Util.boxVertex.html +2 -2
- package/docs/functions/Util.boxVertexes.html +1 -1
- package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
- package/docs/functions/Util.cleanup.html +2 -2
- package/docs/functions/Util.convexHull.html +2 -2
- package/docs/functions/Util.equal.html +2 -2
- package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
- package/docs/functions/Util.generatePolygonGeometry.html +2 -2
- package/docs/functions/Util.getCoordsFromClient.html +1 -1
- package/docs/functions/Util.getCoordsFromElement.html +1 -1
- package/docs/functions/Util.getFrameTime.html +2 -2
- package/docs/functions/Util.getGeometryArea.html +1 -1
- package/docs/functions/Util.getGeometryInfo.html +1 -1
- package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -1
- package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -1
- package/docs/functions/Util.initialCSS3DRender.html +1 -1
- package/docs/functions/Util.inside.html +1 -1
- package/docs/functions/Util.isModelLike.html +1 -1
- package/docs/functions/Util.isNil.html +2 -2
- package/docs/functions/Util.isPanoramaLike.html +1 -1
- package/docs/functions/Util.lookObject.html +2 -2
- package/docs/functions/Util.lookPoint.html +2 -2
- package/docs/functions/Util.nextFrame.html +1 -1
- package/docs/functions/Util.notNil.html +2 -2
- package/docs/functions/Util.reblink.html +2 -2
- package/docs/functions/Util.replaceStaticPrefix.html +2 -2
- package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
- package/docs/functions/Util.sculpt.createBox.html +1 -1
- package/docs/functions/Util.sculpt.createCircle.html +1 -1
- package/docs/functions/Util.sculpt.createCylinder.html +1 -1
- package/docs/functions/Util.sculpt.createLine.html +2 -2
- package/docs/functions/Util.sculpt.createPoint.html +1 -1
- package/docs/functions/Util.sculpt.createPolygon.html +1 -1
- package/docs/functions/Util.sculpt.createPrism.html +1 -1
- package/docs/functions/Util.sculpt.createRectangle.html +2 -2
- package/docs/functions/Util.sculpt.transformUnit.html +1 -1
- package/docs/functions/Util.sculpt.transformUnitSquare.html +1 -1
- package/docs/functions/Util.tag.html +1 -1
- package/docs/functions/Util.triangleArea.html +2 -2
- package/docs/functions/Util.triangleCenter.html +2 -2
- package/docs/functions/Util.tweenProgress.html +1 -1
- package/docs/functions/Util.uuid.html +2 -2
- package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
- package/docs/functions/Util.worldBounding.html +1 -1
- package/docs/functions/Util.worldBoundingBox.html +1 -1
- package/docs/functions/Util.worldBoundingSphere.html +1 -1
- package/docs/functions/createPolyline.html +2 -2
- package/docs/functions/pluginFlag.html +1 -1
- package/docs/functions/validatePolygon.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
- package/docs/interfaces/BoxAnimationConfig.html +2 -2
- package/docs/interfaces/BoxPosition.html +2 -2
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
- package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
- package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
- package/docs/interfaces/ChapterLocation.html +2 -2
- package/docs/interfaces/ChapterTimeInfo.html +2 -2
- package/docs/interfaces/ContentTypeMapInterface.html +2 -2
- package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
- package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
- package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
- package/docs/interfaces/DigitalCameraKeyframe.html +2 -2
- package/docs/interfaces/DigitalCameraPlayer.html +2 -2
- package/docs/interfaces/DigitalCameraState.html +2 -2
- package/docs/interfaces/DigitalChapter.html +2 -2
- package/docs/interfaces/DigitalDataPlayer.html +2 -2
- package/docs/interfaces/DigitalDataState.html +2 -2
- package/docs/interfaces/DigitalEffectKeyframe.html +2 -2
- package/docs/interfaces/DigitalEffectState.html +2 -2
- package/docs/interfaces/DigitalItemKeyframe.html +2 -2
- package/docs/interfaces/DigitalItemState.html +2 -2
- package/docs/interfaces/DigitalModelKeyframe.html +2 -2
- package/docs/interfaces/DigitalModelPlayer.html +2 -2
- package/docs/interfaces/DigitalModelPlayerEffect.html +2 -2
- package/docs/interfaces/DigitalModelPlayerItem.html +2 -2
- package/docs/interfaces/DigitalModelState.html +2 -2
- package/docs/interfaces/DigitalPerformancePluginConfig.html +2 -2
- package/docs/interfaces/DigitalPerformanceV2.CameraState.html +7 -7
- package/docs/interfaces/DigitalPerformanceV2.DigitalCameraKeyframe.html +10 -10
- package/docs/interfaces/DigitalPerformanceV2.DigitalCameraPlayer.html +3 -3
- package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceV2PluginConfig.html +4 -2
- package/docs/interfaces/DigitalPerformanceV2.GroupChapterTimeInfo.html +7 -7
- package/docs/interfaces/DigitalPerformanceV2.GroupProgress.html +9 -9
- package/docs/interfaces/DigitalPerformanceV2.V2Progress.html +2 -2
- package/docs/interfaces/DigitalScript.html +2 -2
- package/docs/interfaces/DigitalSubTitleKeyframe.html +2 -2
- package/docs/interfaces/DigitalSubTitlePlayer.html +2 -2
- package/docs/interfaces/DigitalSubTitleState.html +2 -2
- package/docs/interfaces/ExtendedAnimationConfig.html +2 -2
- package/docs/interfaces/FloorplanBounding.html +2 -2
- package/docs/interfaces/FloorplanData.html +2 -2
- package/docs/interfaces/FloorplanEntrance.html +2 -2
- package/docs/interfaces/FloorplanExtraObject.html +2 -2
- package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
- package/docs/interfaces/FloorplanFloorData.html +2 -2
- package/docs/interfaces/FloorplanImagePosition.html +2 -2
- package/docs/interfaces/FloorplanObserver.html +2 -2
- package/docs/interfaces/FloorplanOutlineItem.html +2 -2
- package/docs/interfaces/FloorplanPosition.html +2 -2
- package/docs/interfaces/FloorplanRoomItem.html +2 -2
- package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
- package/docs/interfaces/FloorplanServerBounding.html +2 -2
- package/docs/interfaces/FloorplanServerComputedData.html +2 -2
- package/docs/interfaces/FloorplanServerData.html +2 -2
- package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
- package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
- package/docs/interfaces/FloorplanServerEntrance.html +2 -2
- package/docs/interfaces/FloorplanServerFloorData.html +2 -2
- package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
- package/docs/interfaces/FloorplanServerObserver.html +2 -2
- package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
- package/docs/interfaces/FloorplanServerPosition.html +2 -2
- package/docs/interfaces/FloorplanServerRoomItem.html +2 -2
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
- package/docs/interfaces/GlobalProgress.html +2 -2
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
- package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
- package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
- package/docs/interfaces/HelperOffset.html +2 -2
- package/docs/interfaces/ImagePlaneGroup.html +2 -2
- package/docs/interfaces/ItemLabelPluginData.html +2 -2
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
- package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
- package/docs/interfaces/MinMax.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +2 -2
- package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
- package/docs/interfaces/ModelViewPluginExportType.html +2 -2
- package/docs/interfaces/Object3DHelperState.html +2 -2
- package/docs/interfaces/ObjectHelperControllers.html +2 -2
- package/docs/interfaces/PaintBrushAction.html +2 -2
- package/docs/interfaces/PaintBrushConfigs.html +2 -2
- package/docs/interfaces/PaintBrushState.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
- package/docs/interfaces/PanoMeasureParameterType.html +2 -2
- package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
- package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
- package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
- package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
- package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
- package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginState.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
- package/docs/interfaces/PluginEventMap.html +2 -2
- package/docs/interfaces/Point.html +2 -2
- package/docs/interfaces/ProgressBarEvents.html +2 -2
- package/docs/interfaces/Room.html +2 -2
- package/docs/interfaces/RoomInfo.html +2 -2
- package/docs/interfaces/RoomLabel.html +2 -2
- package/docs/interfaces/RoomRules.html +1 -1
- package/docs/interfaces/Rooms.html +1 -1
- package/docs/interfaces/Scissor.html +2 -2
- package/docs/interfaces/SculptConfig.html +2 -2
- package/docs/interfaces/State.html +2 -2
- package/docs/interfaces/TagCacheInterface.html +2 -2
- package/docs/interfaces/TagConfig.html +2 -2
- package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
- package/docs/interfaces/TagIconAnimationConfig.html +2 -2
- package/docs/interfaces/TagIconUrl.html +2 -2
- package/docs/interfaces/TagObjectGroup.html +2 -2
- package/docs/interfaces/TagState.html +2 -2
- package/docs/interfaces/TagStyle.html +2 -2
- package/docs/interfaces/Tags.html +2 -2
- package/docs/interfaces/TemporaryState.html +2 -2
- package/docs/interfaces/TraceManager.html +2 -2
- package/docs/interfaces/TracePoint.html +2 -2
- package/docs/interfaces/Util.AnimeInstance.html +2 -2
- package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
- package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
- package/docs/interfaces/Util.FiveDomEvent.html +2 -2
- package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
- package/docs/interfaces/Util.LegacyMouseGroupParameter.html +2 -2
- package/docs/interfaces/Util.MagnifierParameter.html +2 -2
- package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
- package/docs/interfaces/Util.ObjectInitialState.html +2 -2
- package/docs/interfaces/Util.PointIntersection.html +2 -2
- package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
- package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
- package/docs/modules/AreaMakerPluginType.html +2 -2
- package/docs/modules/CruisePluginTypes.html +2 -2
- package/docs/modules/CurrentPanoImagePluginType.html +2 -2
- package/docs/modules/DigitalPerformanceV2.html +2 -2
- package/docs/modules/GuideLineItem.html +2 -2
- package/docs/modules/GuideLineModeItem.html +2 -2
- package/docs/modules/GuideLinePluginType.html +2 -2
- package/docs/modules/ModelMakerPluginType.html +2 -2
- package/docs/modules/PanoVideoPluginType.html +2 -2
- package/docs/modules/SculptData.html +2 -2
- package/docs/modules/SculptType.html +2 -2
- package/docs/modules/Util.html +2 -2
- package/docs/modules/Util.sculpt.html +2 -2
- package/docs/modules.html +2 -2
- package/docs/types/AddObject3DHelperConfig.html +2 -2
- package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
- package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
- package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
- package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
- package/docs/types/ArrayPosition.html +1 -1
- package/docs/types/AudioAppearance.html +1 -1
- package/docs/types/BoxTag.html +2 -2
- package/docs/types/CSS3DRenderExportType.html +1 -1
- package/docs/types/CSS3DRenderPluginExportType.html +1 -1
- package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
- package/docs/types/ClassFunctionParameters.html +1 -1
- package/docs/types/Color.html +1 -1
- package/docs/types/ContentTypeConfigKey.html +1 -1
- package/docs/types/ContentTypeConfigKeySplit.html +1 -1
- package/docs/types/ContentTypeMap.html +1 -1
- package/docs/types/Create3DDomContainerReturnType.html +1 -1
- package/docs/types/Create3DElementReturnType.html +1 -1
- package/docs/types/CruisePluginExportType.html +1 -1
- package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
- package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
- package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
- package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
- package/docs/types/DeprecatedTagProperty.html +2 -2
- package/docs/types/DigitalPerformancePluginExportInterface.html +1 -1
- package/docs/types/DigitalPerformancePluginParamsInterface.html +1 -1
- package/docs/types/DigitalPerformanceV2.CameraCoordinateSpace.html +2 -2
- package/docs/types/DigitalPerformanceV2.CameraTransition.html +2 -2
- package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginExportInterface.html +1 -1
- package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginParamsInterface.html +1 -1
- package/docs/types/DigitalPerformanceV2.V2ProgressListener.html +1 -1
- package/docs/types/Direction-1.html +1 -1
- package/docs/types/Direction4.html +1 -1
- package/docs/types/ElementRenderer.html +2 -2
- package/docs/types/FloorplanGuidePluginParameterType.html +1 -1
- package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
- package/docs/types/FloorplanRuleLabels.html +2 -2
- package/docs/types/FloorplanServerRuleLabels.html +1 -1
- package/docs/types/GuideLinePluginExportType.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
- package/docs/types/GuideLinePluginType.PathItem.html +2 -2
- package/docs/types/GuideLinePluginType.PluginData.html +2 -2
- package/docs/types/GuideLinePluginType.RouteConfig.html +2 -2
- package/docs/types/HelperEventMap.html +1 -1
- package/docs/types/InternalHelperEventMap.html +1 -1
- package/docs/types/KeyframeType.html +1 -1
- package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
- package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
- package/docs/types/MaskPosition.html +2 -2
- package/docs/types/MaskTag.html +2 -2
- package/docs/types/MeasureEndReason.html +1 -1
- package/docs/types/MeasurePluginConfig.html +2 -2
- package/docs/types/MeasurePluginEventMap.html +1 -1
- package/docs/types/MediaData.html +2 -2
- package/docs/types/MediaStore.html +1 -1
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
- package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
- package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
- package/docs/types/ModelId.html +1 -1
- package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
- package/docs/types/ModelMakerPluginType.ItemType.html +2 -2
- package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -1
- package/docs/types/ModelMakerPluginType.ServerItem.html +2 -2
- package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
- package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
- package/docs/types/MoveArgs.html +2 -2
- package/docs/types/MoveOpts.html +2 -2
- package/docs/types/Object3DHelperEventMap.html +1 -1
- package/docs/types/ObjectFit.html +1 -1
- package/docs/types/PaintBrushEventMap.html +1 -1
- package/docs/types/PanoCompassPluginData.html +1 -1
- package/docs/types/PanoCompassPluginExportType.html +1 -1
- package/docs/types/PanoCompassPluginParameterType.html +1 -1
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
- package/docs/types/PanoIndex.html +1 -1
- package/docs/types/PanoMeasurePluginEvent.html +1 -1
- package/docs/types/PanoMeasureReturnType.html +1 -1
- package/docs/types/PanoSpatialTagPluginId.html +1 -1
- package/docs/types/PanoTagPluginExportInterface.html +1 -1
- package/docs/types/PanoTagPluginParamsInterface.html +1 -1
- package/docs/types/PanoVideoPluginParameterType.html +1 -1
- package/docs/types/PanoVideoPluginReturnType.html +1 -1
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
- package/docs/types/PipelinePluginParameterType.html +1 -1
- package/docs/types/PipelinePluginReturnType.html +1 -1
- package/docs/types/PlaneTag.html +2 -2
- package/docs/types/Point2DTag.html +2 -2
- package/docs/types/Point3DTag.html +2 -2
- package/docs/types/PointTagInstance.html +1 -1
- package/docs/types/PolygonPosition.html +2 -2
- package/docs/types/PolygonTag.html +2 -2
- package/docs/types/Position.html +1 -1
- package/docs/types/PositionFrom.html +1 -1
- package/docs/types/ProgressListener.html +1 -1
- package/docs/types/RotateArgs.html +2 -2
- package/docs/types/RotateOpts.html +2 -2
- package/docs/types/RuleLabelsKey.html +1 -1
- package/docs/types/RuleLabelsValue.html +1 -1
- package/docs/types/ScaleCallback.html +1 -1
- package/docs/types/ScalePosition.html +2 -2
- package/docs/types/SculptData.BoxData.html +1 -1
- package/docs/types/SculptData.CircleData.html +1 -1
- package/docs/types/SculptData.CylinderData.html +1 -1
- package/docs/types/SculptData.PointData.html +1 -1
- package/docs/types/SculptData.PolygonData.html +1 -1
- package/docs/types/SculptData.PolylineData.html +1 -1
- package/docs/types/SculptData.PrismData.html +1 -1
- package/docs/types/SculptData.RectangleData.html +1 -1
- package/docs/types/SculptType.Theme.html +2 -2
- package/docs/types/StateType.html +1 -1
- package/docs/types/StickType.html +1 -1
- package/docs/types/Tag.html +2 -2
- package/docs/types/Tag2D.html +2 -2
- package/docs/types/Tag3D.html +2 -2
- package/docs/types/TagClickParams.html +1 -1
- package/docs/types/TagConfigByKey.html +1 -1
- package/docs/types/TagContentType.html +1 -1
- package/docs/types/TagContentTypeMapping.html +1 -1
- package/docs/types/TagDimensionType.html +1 -1
- package/docs/types/TagElement.html +2 -2
- package/docs/types/TagEvents.html +1 -1
- package/docs/types/TagGLTFObject.html +1 -1
- package/docs/types/TagHooks.html +1 -1
- package/docs/types/TagId.html +1 -1
- package/docs/types/TagInstance.html +1 -1
- package/docs/types/TagPlacement.html +2 -2
- package/docs/types/TagPointType.html +2 -2
- package/docs/types/TagRendererMap.html +1 -1
- package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
- package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
- package/docs/types/Util.ActionIfNoIntersection.html +1 -1
- package/docs/types/Util.AdherePoint.html +2 -2
- package/docs/types/Util.PointSelectorConfig.html +1 -1
- package/docs/types/Util.SupportedTarget.html +2 -2
- package/docs/types/Util.Target.html +2 -2
- package/docs/types/Util.ThreeObject.html +2 -2
- package/docs/types/WorkCode.html +1 -1
- package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
- package/docs/variables/PLUGIN.html +1 -1
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
- package/docs/variables/ROOM_TYPE_MAP.html +2 -2
- package/docs/variables/Util.ANIME_PRESETS.html +2 -2
- package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -2
- package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -2
- package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -2
- package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -2
- package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -2
- package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -2
- package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -2
- package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -2
- package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -2
- package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -2
- package/docs/variables/defaultGlobalConfig.html +1 -1
- package/docs/variables/itemLabelPluginServerParams.html +1 -1
- package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
- package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.d.ts +23 -0
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.js +169 -137
- package/libs/DigitalPerformancePlugin/core/DigitalPlayground.d.ts +7 -0
- package/libs/DigitalPerformancePlugin/core/DigitalPlayground.js +81 -70
- package/libs/DigitalPerformanceV2Plugin/controller/index.d.ts +31 -2
- package/libs/DigitalPerformanceV2Plugin/controller/index.js +130 -77
- package/libs/DigitalPerformanceV2Plugin/core/Playground.d.ts +2 -0
- package/libs/DigitalPerformanceV2Plugin/core/Playground.js +6 -2
- package/libs/DigitalPerformanceV2Plugin/typings/index.d.ts +2 -0
- package/libs/base/BasePlugin.js +1 -1
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +1 -1
|
@@ -11,24 +11,24 @@ var k = (p, e, t) => e in p ? R(p, e, { enumerable: !0, configurable: !0, writab
|
|
|
11
11
|
};
|
|
12
12
|
var h = (p, e, t) => (k(p, typeof e != "symbol" ? e + "" : e, t), t);
|
|
13
13
|
var m = (p, e, t) => new Promise((r, a) => {
|
|
14
|
-
var s = (
|
|
14
|
+
var s = (n) => {
|
|
15
15
|
try {
|
|
16
|
-
o(t.next(
|
|
16
|
+
o(t.next(n));
|
|
17
17
|
} catch (l) {
|
|
18
18
|
a(l);
|
|
19
19
|
}
|
|
20
|
-
},
|
|
20
|
+
}, i = (n) => {
|
|
21
21
|
try {
|
|
22
|
-
o(t.throw(
|
|
22
|
+
o(t.throw(n));
|
|
23
23
|
} catch (l) {
|
|
24
24
|
a(l);
|
|
25
25
|
}
|
|
26
|
-
}, o = (
|
|
26
|
+
}, o = (n) => n.done ? r(n.value) : Promise.resolve(n.value).then(s, i);
|
|
27
27
|
o((t = t.apply(p, e)).next());
|
|
28
28
|
});
|
|
29
29
|
import * as T from "three";
|
|
30
|
-
import { PerformancePlayground as
|
|
31
|
-
import { CameraTrack as
|
|
30
|
+
import { PerformancePlayground as A, getChapterModelDuration as I, getChapterDuration as N } from "../core/Playground.js";
|
|
31
|
+
import { CameraTrack as V } from "../core/CameraTrack.js";
|
|
32
32
|
import "../../DigitalPerformancePlugin/core/DigitalPlayground.js";
|
|
33
33
|
import "@realsee/five/gltf-loader";
|
|
34
34
|
import "../../DigitalPerformancePlugin/core/DigitalHuman.js";
|
|
@@ -39,12 +39,12 @@ import "../core/PerformanceClock.js";
|
|
|
39
39
|
import "../core/CameraDirector.js";
|
|
40
40
|
import "../core/FiveModelCameraBridge.js";
|
|
41
41
|
import "../core/CameraSampler.js";
|
|
42
|
-
const
|
|
42
|
+
const O = "Dnalogel-DigitalPerformanceV2Plugin", L = "five-world";
|
|
43
43
|
class $ {
|
|
44
44
|
constructor(e, t = {}) {
|
|
45
45
|
h(this, "five");
|
|
46
46
|
h(this, "config");
|
|
47
|
-
h(this, "NAME",
|
|
47
|
+
h(this, "NAME", O);
|
|
48
48
|
h(this, "playground");
|
|
49
49
|
h(this, "state", {
|
|
50
50
|
enabled: !0,
|
|
@@ -84,25 +84,36 @@ class $ {
|
|
|
84
84
|
* `null`(整体)表示未启用该能力(不触碰楼层可见性)。由消费方经 `setChapterFloorMap` 注入。
|
|
85
85
|
*/
|
|
86
86
|
h(this, "chapterFloorMap", null);
|
|
87
|
-
|
|
87
|
+
/**
|
|
88
|
+
* 楼层可见性作用的目标模型(`show(floorIndex)` 的接收者)。
|
|
89
|
+
* - `null`:回退到 `five.model`(= `modelScene.models[0]`,单 VR 即唯一模型)。
|
|
90
|
+
* - 沙盘/联合现场:`five.model` 恒为 models[0],未必是当前播放的子 VR,故消费方须显式注入
|
|
91
|
+
* 动画所属子 VR 的模型(`five.models.find(m => m.name === resourceCode)`),否则楼层隔离会落到
|
|
92
|
+
* 错误模型,被播放子 VR 保持全楼层可见(表现为「跨楼层动画所有楼层同时高亮」)。
|
|
93
|
+
*/
|
|
94
|
+
h(this, "chapterFloorModel", null);
|
|
95
|
+
/** five 'modeChange' 楼层重放监听的反订阅句柄(chapterFloorMap 启用时挂载,停用/reset/dispose 时清理) */
|
|
96
|
+
h(this, "unsubFloorModeChange", null);
|
|
97
|
+
this.five = e, this.config = g({ autoPlay: !1, loop: !1, debug: !1, showTrace: !1 }, t), this.playground = new A(e, this.config.debug), this.unsubClockTick = this.playground.getClock().onTick(() => this.emitProgress());
|
|
88
98
|
}
|
|
89
99
|
/** 加载剧本:预加载资源 + 将模型加入 five 场景;autoPlay 时自动播放首章 */
|
|
90
100
|
loadScript(e) {
|
|
91
101
|
return m(this, null, function* () {
|
|
102
|
+
var t;
|
|
92
103
|
if (this.state.currentScript = e, this.playground.setScript(e), this.groupChapterTimeMapCache = null, this.groupChapterTimeMapCacheScript = null, this.chapterFloorMap = null, yield this.preloadResources(e), this.five && this.five.scene) {
|
|
93
|
-
yield new Promise((
|
|
94
|
-
let
|
|
95
|
-
if (e.chapters.forEach((
|
|
96
|
-
|
|
97
|
-
if (
|
|
98
|
-
const
|
|
99
|
-
|
|
104
|
+
yield new Promise((a) => requestAnimationFrame(() => a()));
|
|
105
|
+
let r = 0;
|
|
106
|
+
if (e.chapters.forEach((a) => {
|
|
107
|
+
a.players.forEach((s) => {
|
|
108
|
+
if (s.type === "model") {
|
|
109
|
+
const i = this.playground.loader.getDigitalHuman(s.model, s.id);
|
|
110
|
+
i != null && i.container && (this.five.scene.add(i.container), r++);
|
|
100
111
|
}
|
|
101
112
|
});
|
|
102
|
-
}),
|
|
113
|
+
}), r === 0)
|
|
103
114
|
throw new Error("没有模型被添加到场景中");
|
|
104
115
|
}
|
|
105
|
-
this.config.autoPlay && e.chapters.length > 0 && (yield this.playChapter(e.chapters[0]));
|
|
116
|
+
this.playground.setTraceVisible((t = this.config.showTrace) != null ? t : !1), this.config.autoPlay && e.chapters.length > 0 && (yield this.playChapter(e.chapters[0]));
|
|
106
117
|
});
|
|
107
118
|
}
|
|
108
119
|
/** 播放指定章节 */
|
|
@@ -224,6 +235,13 @@ class $ {
|
|
|
224
235
|
setCameraDirectionEnabled(e) {
|
|
225
236
|
this.playground.setCameraDirectionEnabled(e);
|
|
226
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* 人物运动轨迹线开关(默认关闭、不显示)。仅 debug / 特殊需求由业务显式开启。
|
|
240
|
+
* 立即作用于当前所有 DigitalHuman,并记忆给后续加载的模型。
|
|
241
|
+
*/
|
|
242
|
+
setTraceVisible(e) {
|
|
243
|
+
this.playground.setTraceVisible(e);
|
|
244
|
+
}
|
|
227
245
|
/**
|
|
228
246
|
* 加法式:设置「章节索引 → 楼层」映射,启用「播放/切章时 Mapview 只显示当前章节所在楼层」。
|
|
229
247
|
* - number:该章节单一楼层;null:该章节内跨楼层 → 显示全部;映射缺项按显示全部处理。
|
|
@@ -231,12 +249,44 @@ class $ {
|
|
|
231
249
|
* - 传入 null:停用该能力(不再随章节应用),但**不主动恢复**楼层可见性(恢复由 `reset()` 负责)。
|
|
232
250
|
* 楼层可见性是 five 空间模型的显隐(`five.model.show`),与运镜相机接管相互独立。
|
|
233
251
|
* 各消费方(workshop 编辑端 / NextVR 展示端)自行从各自数据算好映射注入,保证两端行为一致(parity)。
|
|
252
|
+
*
|
|
253
|
+
* @param model 楼层可见性作用的目标模型(缺省/undefined/null 回退到 `five.model`)。
|
|
254
|
+
* 单 VR 场景无需传(`five.model` 即唯一模型);沙盘/联合现场须传动画所属子 VR 的模型
|
|
255
|
+
* (`five.models.find(m => m.name === resourceCode)`),否则楼层隔离会落到 models[0] 而非播放中的子 VR,
|
|
256
|
+
* 导致跨楼层动画所有楼层同时高亮。传入 null 时清空目标模型回退到 `five.model`。
|
|
234
257
|
*/
|
|
235
|
-
setChapterFloorMap(e) {
|
|
236
|
-
if (this.chapterFloorMap = e, e) {
|
|
237
|
-
const
|
|
238
|
-
this.applyChapterFloor(
|
|
239
|
-
}
|
|
258
|
+
setChapterFloorMap(e, t) {
|
|
259
|
+
if (this.chapterFloorMap = e, arguments.length >= 2 && (this.chapterFloorModel = t != null ? t : null), e) {
|
|
260
|
+
const r = this.getCurrentChapterIndex();
|
|
261
|
+
this.applyChapterFloor(r >= 0 ? r : 0), this.hookFloorModeChange();
|
|
262
|
+
} else
|
|
263
|
+
this.unhookFloorModeChange();
|
|
264
|
+
}
|
|
265
|
+
/** 监听 five 'modeChange':模态切换后(延后一帧)重放当前章节楼层,避免被外部 UI 覆盖(只挂一次) */
|
|
266
|
+
hookFloorModeChange() {
|
|
267
|
+
if (this.unsubFloorModeChange)
|
|
268
|
+
return;
|
|
269
|
+
const e = this.five;
|
|
270
|
+
if (typeof e.on != "function")
|
|
271
|
+
return;
|
|
272
|
+
const t = () => {
|
|
273
|
+
if (!this.chapterFloorMap)
|
|
274
|
+
return;
|
|
275
|
+
(typeof requestAnimationFrame == "function" ? requestAnimationFrame : (a) => setTimeout(a, 0))(() => {
|
|
276
|
+
if (!this.chapterFloorMap)
|
|
277
|
+
return;
|
|
278
|
+
const a = this.getCurrentChapterIndex();
|
|
279
|
+
this.applyChapterFloor(a >= 0 ? a : 0);
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
e.on("modeChange", t), this.unsubFloorModeChange = () => {
|
|
283
|
+
var r;
|
|
284
|
+
return (r = e.off) == null ? void 0 : r.call(e, "modeChange", t);
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
/** 取消 'modeChange' 楼层重放监听 */
|
|
288
|
+
unhookFloorModeChange() {
|
|
289
|
+
this.unsubFloorModeChange && (this.unsubFloorModeChange(), this.unsubFloorModeChange = null);
|
|
240
290
|
}
|
|
241
291
|
/** 按章节楼层映射对指定章节应用楼层可见性(映射未启用时 no-op) */
|
|
242
292
|
applyChapterFloor(e) {
|
|
@@ -245,11 +295,14 @@ class $ {
|
|
|
245
295
|
const t = e in this.chapterFloorMap ? this.chapterFloorMap[e] : null;
|
|
246
296
|
this.showModelFloor(typeof t == "number" ? t : void 0);
|
|
247
297
|
}
|
|
248
|
-
/**
|
|
298
|
+
/**
|
|
299
|
+
* 显示指定楼层(传 undefined 显示全部)。安全访问 model.show,避免类型/运行时缺失。
|
|
300
|
+
* 目标模型优先用消费方注入的 `chapterFloorModel`(沙盘下为播放中的子 VR),缺省回退 `five.model`。
|
|
301
|
+
*/
|
|
249
302
|
showModelFloor(e) {
|
|
250
|
-
var r, a, s;
|
|
251
|
-
const t = (r = this.five) == null ? void 0 : r.model;
|
|
252
|
-
typeof e == "number" ? (
|
|
303
|
+
var r, a, s, i;
|
|
304
|
+
const t = (a = this.chapterFloorModel) != null ? a : (r = this.five) == null ? void 0 : r.model;
|
|
305
|
+
typeof e == "number" ? (s = t == null ? void 0 : t.show) == null || s.call(t, e) : (i = t == null ? void 0 : t.show) == null || i.call(t);
|
|
253
306
|
}
|
|
254
307
|
/**
|
|
255
308
|
* seek 预览:跳转到指定时间并渲染当前帧(不改变播放/暂停状态)。
|
|
@@ -271,17 +324,17 @@ class $ {
|
|
|
271
324
|
return a;
|
|
272
325
|
if (!(Number.isFinite(e) && e >= 0))
|
|
273
326
|
return this.rejectKeyframe("time 必须为非负有限数");
|
|
274
|
-
const s = this.ensureCameraPlayer(),
|
|
327
|
+
const s = this.ensureCameraPlayer(), i = this.captureCameraPose(), o = this.resolveFov(t), n = {
|
|
275
328
|
timeStamp: e,
|
|
276
|
-
target:
|
|
277
|
-
longitude:
|
|
278
|
-
latitude:
|
|
279
|
-
distance:
|
|
329
|
+
target: i.target,
|
|
330
|
+
longitude: i.longitude,
|
|
331
|
+
latitude: i.latitude,
|
|
332
|
+
distance: i.distance,
|
|
280
333
|
fov: o
|
|
281
334
|
};
|
|
282
|
-
r != null && r.transition && (
|
|
335
|
+
r != null && r.transition && (n.transition = r.transition), r != null && r.thumbnail && (n.thumbnail = r.thumbnail);
|
|
283
336
|
const l = s.keyframes.findIndex((c) => c.timeStamp === e);
|
|
284
|
-
return l >= 0 ? s.keyframes[l] =
|
|
337
|
+
return l >= 0 ? s.keyframes[l] = n : s.keyframes.push(n), s.keyframes.sort((c, u) => c.timeStamp - u.timeStamp), this.afterKeyframesChanged(s);
|
|
285
338
|
}
|
|
286
339
|
/**
|
|
287
340
|
* 更新指定下标关键帧:合并 patch 中出现的字段,按 timeStamp 重排序。
|
|
@@ -297,7 +350,7 @@ class $ {
|
|
|
297
350
|
if (t.timeStamp !== void 0 && !(Number.isFinite(t.timeStamp) && t.timeStamp >= 0))
|
|
298
351
|
return this.rejectKeyframe("time 必须为非负有限数");
|
|
299
352
|
const s = g(g({}, a.keyframes[e]), t);
|
|
300
|
-
return a.keyframes[e] = s, a.keyframes.sort((
|
|
353
|
+
return a.keyframes[e] = s, a.keyframes.sort((i, o) => i.timeStamp - o.timeStamp), this.afterKeyframesChanged(a);
|
|
301
354
|
}
|
|
302
355
|
/** 移除指定下标关键帧。拒绝(保持序列不变):未加载 script / 无章节 / index 越界。 */
|
|
303
356
|
removeCameraKeyframe(e) {
|
|
@@ -330,7 +383,7 @@ class $ {
|
|
|
330
383
|
name: (t = e == null ? void 0 : e.name) != null ? t : "camera",
|
|
331
384
|
type: "camera",
|
|
332
385
|
keyframes: this.serializeKeyframes(e),
|
|
333
|
-
coordinateSpace:
|
|
386
|
+
coordinateSpace: L
|
|
334
387
|
}
|
|
335
388
|
};
|
|
336
389
|
}
|
|
@@ -351,7 +404,7 @@ class $ {
|
|
|
351
404
|
name: (s = a.name) != null ? s : "camera",
|
|
352
405
|
type: "camera",
|
|
353
406
|
keyframes: this.serializeKeyframes(a),
|
|
354
|
-
coordinateSpace:
|
|
407
|
+
coordinateSpace: L
|
|
355
408
|
}
|
|
356
409
|
});
|
|
357
410
|
}), e;
|
|
@@ -367,9 +420,9 @@ class $ {
|
|
|
367
420
|
const s = Number(a);
|
|
368
421
|
if (!Number.isInteger(s) || s < 0 || s >= t.length)
|
|
369
422
|
return;
|
|
370
|
-
const
|
|
371
|
-
let
|
|
372
|
-
|
|
423
|
+
const i = t[s], o = e[s];
|
|
424
|
+
let n = i.players.find((u) => u.type === "camera");
|
|
425
|
+
n || (n = { name: (l = o.name) != null ? l : "camera", type: "camera", keyframes: [] }, i.players.push(n)), n.keyframes = [...(c = o.keyframes) != null ? c : []].sort((u, f) => u.timeStamp - f.timeStamp), o.coordinateSpace && (n.coordinateSpace = o.coordinateSpace);
|
|
373
426
|
});
|
|
374
427
|
const r = this.cameraPlayerOf(this.state.currentChapter);
|
|
375
428
|
r && this.playground.setCameraKeyframes(r.keyframes);
|
|
@@ -408,26 +461,26 @@ class $ {
|
|
|
408
461
|
* 无任何可用模型几何(未加载/无 model player/包围盒空)时返回 undefined。
|
|
409
462
|
*/
|
|
410
463
|
deriveChapterModelFramingView(e) {
|
|
411
|
-
var d,
|
|
464
|
+
var d, F, M;
|
|
412
465
|
const t = this.getChapters();
|
|
413
466
|
if (e < 0 || e >= t.length)
|
|
414
467
|
return;
|
|
415
468
|
const r = t[e], a = new T.Box3();
|
|
416
469
|
let s = !1;
|
|
417
|
-
if (r.players.forEach((
|
|
418
|
-
var
|
|
419
|
-
if (
|
|
470
|
+
if (r.players.forEach((S) => {
|
|
471
|
+
var E, C, v, K;
|
|
472
|
+
if (S.type !== "model")
|
|
420
473
|
return;
|
|
421
|
-
const
|
|
474
|
+
const b = S, P = (v = (C = (E = this.playground) == null ? void 0 : E.loader) == null ? void 0 : C.getDigitalHuman) == null ? void 0 : v.call(C, b.model, b.id), y = P == null ? void 0 : P.container;
|
|
422
475
|
if (!y)
|
|
423
476
|
return;
|
|
424
477
|
(K = y.updateWorldMatrix) == null || K.call(y, !0, !0);
|
|
425
|
-
const
|
|
426
|
-
|
|
478
|
+
const w = new T.Box3().setFromObject(y);
|
|
479
|
+
w.isEmpty() || (a.union(w), s = !0);
|
|
427
480
|
}), !s || a.isEmpty())
|
|
428
481
|
return;
|
|
429
|
-
const
|
|
430
|
-
return { target:
|
|
482
|
+
const i = a.getCenter(new T.Vector3()), o = a.getSize(new T.Vector3()).length(), n = (M = (F = (d = this.five).getCurrentState) == null ? void 0 : F.call(d)) != null ? M : {}, l = typeof n.longitude == "number" ? n.longitude : Math.PI / 4, c = typeof n.latitude == "number" ? n.latitude : Math.PI / 5, u = typeof n.fov == "number" && n.fov > 0 ? n.fov : 60, f = this.clamp(o * 2.5, 4, 14);
|
|
483
|
+
return { target: i, longitude: l, latitude: c, distance: f, fov: u };
|
|
431
484
|
}
|
|
432
485
|
/**
|
|
433
486
|
* 设为当前编辑章节(不开始播放)。该次调用内联动完成:
|
|
@@ -448,7 +501,7 @@ class $ {
|
|
|
448
501
|
return e ? {
|
|
449
502
|
index: this.getCurrentChapterIndex(),
|
|
450
503
|
name: e.name,
|
|
451
|
-
duration:
|
|
504
|
+
duration: I(e)
|
|
452
505
|
} : { index: -1, name: "", duration: 0 };
|
|
453
506
|
}
|
|
454
507
|
/** 注册当前章节变更监听(current-chapter-changed);返回反订阅函数 */
|
|
@@ -481,8 +534,8 @@ class $ {
|
|
|
481
534
|
else if (s)
|
|
482
535
|
s.keyframes = this.cloneKeyframes(r);
|
|
483
536
|
else {
|
|
484
|
-
const
|
|
485
|
-
a.players.push(
|
|
537
|
+
const i = { name: "camera", type: "camera", keyframes: this.cloneKeyframes(r) };
|
|
538
|
+
a.players.push(i);
|
|
486
539
|
}
|
|
487
540
|
});
|
|
488
541
|
const t = this.cameraPlayerOf(this.state.currentChapter);
|
|
@@ -492,9 +545,9 @@ class $ {
|
|
|
492
545
|
getProgress() {
|
|
493
546
|
const e = this.playground.getClock(), t = e.getTime();
|
|
494
547
|
let r = e.getDuration();
|
|
495
|
-
r <= 0 && this.state.currentChapter && (r =
|
|
496
|
-
const a = this.getChapters(), s = this.state.currentChapter,
|
|
497
|
-
return { currentTime: t, totalTime: r, currentChapterIndex:
|
|
548
|
+
r <= 0 && this.state.currentChapter && (r = N(this.state.currentChapter));
|
|
549
|
+
const a = this.getChapters(), s = this.state.currentChapter, i = s ? a.findIndex((o) => o === s || o.name === s.name) : -1;
|
|
550
|
+
return { currentTime: t, totalTime: r, currentChapterIndex: i, totalChapters: a.length };
|
|
498
551
|
}
|
|
499
552
|
/** 注册进度监听;返回反订阅函数 */
|
|
500
553
|
onProgressChanged(e) {
|
|
@@ -516,8 +569,8 @@ class $ {
|
|
|
516
569
|
const t = this.getChapters(), r = [];
|
|
517
570
|
let a = 0;
|
|
518
571
|
for (let s = 0; s < t.length; s++) {
|
|
519
|
-
const
|
|
520
|
-
r.push({ index: s, name: t[s].name, startTime: o, endTime:
|
|
572
|
+
const i = I(t[s]), o = a, n = o + i;
|
|
573
|
+
r.push({ index: s, name: t[s].name, startTime: o, endTime: n, duration: i }), a = n;
|
|
521
574
|
}
|
|
522
575
|
return this.groupChapterTimeMapCache = r, this.groupChapterTimeMapCacheScript = e, r;
|
|
523
576
|
}
|
|
@@ -532,14 +585,14 @@ class $ {
|
|
|
532
585
|
const e = this.getProgress(), t = this.getGroupChapterTimeMap(), r = t.length === 0 ? 0 : t[t.length - 1].endTime, a = e.currentChapterIndex;
|
|
533
586
|
let s = 0;
|
|
534
587
|
if (a >= 0 && a < t.length) {
|
|
535
|
-
const o = t[a].startTime,
|
|
536
|
-
s = this.clamp(o +
|
|
588
|
+
const o = t[a].startTime, n = this.clamp(e.currentTime, 0, t[a].duration);
|
|
589
|
+
s = this.clamp(o + n, 0, r);
|
|
537
590
|
}
|
|
538
|
-
const
|
|
591
|
+
const i = r > 0 ? this.clamp(s / r * 100, 0, 100) : 0;
|
|
539
592
|
return {
|
|
540
593
|
groupCurrentTime: s,
|
|
541
594
|
groupTotalTime: r,
|
|
542
|
-
percentage:
|
|
595
|
+
percentage: i,
|
|
543
596
|
currentChapterIndex: a,
|
|
544
597
|
currentChapterTime: e.currentTime,
|
|
545
598
|
currentChapterTotalTime: e.totalTime,
|
|
@@ -576,12 +629,12 @@ class $ {
|
|
|
576
629
|
const t = this.getGroupChapterTimeMap();
|
|
577
630
|
if (t.length === 0)
|
|
578
631
|
return { success: !1, error: "无章节" };
|
|
579
|
-
const r = t[t.length - 1].endTime, a = this.clamp(e, 0, r), { index: s, localTime:
|
|
632
|
+
const r = t[t.length - 1].endTime, a = this.clamp(e, 0, r), { index: s, localTime: i } = this.mapGroupTimeToChapter(a, t), o = s !== this.getCurrentChapterIndex();
|
|
580
633
|
if (this.state.playing && this.state.continuousPlaying && o)
|
|
581
|
-
return this.seekRedirect = { index: s, fromTime:
|
|
582
|
-
o && this.setCurrentChapterForPlayback(s,
|
|
583
|
-
const
|
|
584
|
-
return this.emitProgress(),
|
|
634
|
+
return this.seekRedirect = { index: s, fromTime: i }, this.playground.abortCurrentPlay(), { success: !0 };
|
|
635
|
+
o && this.setCurrentChapterForPlayback(s, i);
|
|
636
|
+
const n = this.setTimelineTo(i);
|
|
637
|
+
return this.emitProgress(), n;
|
|
585
638
|
}
|
|
586
639
|
/** 跳转到组级百分比 [0,100](= seekToGroupTime(clamp(pct,0,100)/100 * groupTotalTime)) */
|
|
587
640
|
seekToGroupPercentage(e) {
|
|
@@ -622,28 +675,28 @@ class $ {
|
|
|
622
675
|
}
|
|
623
676
|
/** 重置播放(保留已加载资源) */
|
|
624
677
|
reset() {
|
|
625
|
-
this.playground.reset(), this.state.playing = !1, this.state.continuousPlaying = !1, this.state.currentChapter = null, this.state.selectedShotIndex = null, this.seekRedirect = null, this.chapterFloorMap && (this.showModelFloor(), this.chapterFloorMap = null), this.emitProgress();
|
|
678
|
+
this.playground.reset(), this.state.playing = !1, this.state.continuousPlaying = !1, this.state.currentChapter = null, this.state.selectedShotIndex = null, this.seekRedirect = null, this.chapterFloorMap && (this.showModelFloor(), this.chapterFloorMap = null), this.chapterFloorModel = null, this.unhookFloorModeChange(), this.emitProgress();
|
|
626
679
|
}
|
|
627
680
|
/** 销毁插件、释放资源 */
|
|
628
681
|
dispose() {
|
|
629
|
-
this.unsubClockTick && (this.unsubClockTick(), this.unsubClockTick = null), this.chapterFloorMap && (this.showModelFloor(), this.chapterFloorMap = null), this.progressListeners.clear(), this.keyframesChangedListeners.clear(), this.currentChapterChangedListeners.clear(), this.groupProgressListeners.clear(), this.cameraEditSnapshot = null, this.playground.dispose();
|
|
682
|
+
this.unsubClockTick && (this.unsubClockTick(), this.unsubClockTick = null), this.chapterFloorMap && (this.showModelFloor(), this.chapterFloorMap = null), this.chapterFloorModel = null, this.unhookFloorModeChange(), this.progressListeners.clear(), this.keyframesChangedListeners.clear(), this.currentChapterChangedListeners.clear(), this.groupProgressListeners.clear(), this.cameraEditSnapshot = null, this.playground.dispose();
|
|
630
683
|
}
|
|
631
684
|
/** 预加载模型 / 动画 / 道具(复用 Shared_Core 加载) */
|
|
632
685
|
preloadResources(e) {
|
|
633
686
|
return m(this, null, function* () {
|
|
634
|
-
const t = [], r = [], a = /* @__PURE__ */ new Set(), s = [],
|
|
687
|
+
const t = [], r = [], a = /* @__PURE__ */ new Set(), s = [], i = /* @__PURE__ */ new Map();
|
|
635
688
|
e.chapters.forEach((o) => {
|
|
636
|
-
o.players.forEach((
|
|
637
|
-
if (
|
|
689
|
+
o.players.forEach((n) => {
|
|
690
|
+
if (n.type !== "model")
|
|
638
691
|
return;
|
|
639
|
-
const l =
|
|
640
|
-
t.push(l.model), r.push(
|
|
692
|
+
const l = n;
|
|
693
|
+
t.push(l.model), r.push(n.id), l.keyframes.forEach((c) => {
|
|
641
694
|
var f, d;
|
|
642
695
|
if (!c.animation)
|
|
643
696
|
return;
|
|
644
697
|
a.add(c.animation.url);
|
|
645
698
|
const u = c.animation.item;
|
|
646
|
-
u && (s.push(u.url),
|
|
699
|
+
u && (s.push(u.url), i.set(u.url, {
|
|
647
700
|
position: (f = u.position) != null ? f : [0, 0, 0],
|
|
648
701
|
rotation: (d = u.rotation) != null ? d : [0, 0, 0]
|
|
649
702
|
}));
|
|
@@ -651,7 +704,7 @@ class $ {
|
|
|
651
704
|
});
|
|
652
705
|
}), yield Promise.all([
|
|
653
706
|
this.playground.loader.loadModels(t, r),
|
|
654
|
-
this.playground.loader.loadItems(s,
|
|
707
|
+
this.playground.loader.loadItems(s, i),
|
|
655
708
|
this.playground.loader.loadAnimations(Array.from(a))
|
|
656
709
|
]);
|
|
657
710
|
});
|
|
@@ -757,7 +810,7 @@ class $ {
|
|
|
757
810
|
const r = this.cameraPlayerOf(t[e]);
|
|
758
811
|
if (!r || r.keyframes.length === 0)
|
|
759
812
|
return null;
|
|
760
|
-
const a = new
|
|
813
|
+
const a = new V();
|
|
761
814
|
return a.setKeyframes(r.keyframes), a;
|
|
762
815
|
}
|
|
763
816
|
/** 深拷贝关键帧序列(数组字段亦深拷贝),供快照/还原使用(Mapview 位姿) */
|
|
@@ -72,6 +72,8 @@ export declare class PerformancePlayground {
|
|
|
72
72
|
setTimelineTo(time: number): void;
|
|
73
73
|
/** 运镜开关(透传到 CameraDirector,立即生效) */
|
|
74
74
|
setCameraDirectionEnabled(enabled: boolean): void;
|
|
75
|
+
/** 运动轨迹线开关(默认关闭;透传到 loader,作用于全部 DigitalHuman) */
|
|
76
|
+
setTraceVisible(visible: boolean): void;
|
|
75
77
|
/**
|
|
76
78
|
* 加法式新增:立即将一个 CameraState 应用到 five(透传到 CameraDirector,复用其桥实例)。
|
|
77
79
|
* 供 controller 的「章节默认视角」应用使用;不改变播放/时钟状态、不绑定轨道。
|
|
@@ -34,7 +34,7 @@ function I(s) {
|
|
|
34
34
|
function m(s, e, t) {
|
|
35
35
|
return s < e ? e : s > t ? t : s;
|
|
36
36
|
}
|
|
37
|
-
class
|
|
37
|
+
class V {
|
|
38
38
|
constructor(e, t = !1) {
|
|
39
39
|
/** 复用 Shared_Core 的加载与实例管理 */
|
|
40
40
|
o(this, "loader");
|
|
@@ -145,6 +145,10 @@ class B {
|
|
|
145
145
|
setCameraDirectionEnabled(e) {
|
|
146
146
|
this.director.setEnabled(e);
|
|
147
147
|
}
|
|
148
|
+
/** 运动轨迹线开关(默认关闭;透传到 loader,作用于全部 DigitalHuman) */
|
|
149
|
+
setTraceVisible(e) {
|
|
150
|
+
this.loader.setTraceVisible(e);
|
|
151
|
+
}
|
|
148
152
|
/**
|
|
149
153
|
* 加法式新增:立即将一个 CameraState 应用到 five(透传到 CameraDirector,复用其桥实例)。
|
|
150
154
|
* 供 controller 的「章节默认视角」应用使用;不改变播放/时钟状态、不绑定轨道。
|
|
@@ -203,7 +207,7 @@ class B {
|
|
|
203
207
|
}
|
|
204
208
|
}
|
|
205
209
|
export {
|
|
206
|
-
|
|
210
|
+
V as PerformancePlayground,
|
|
207
211
|
d as getChapterDuration,
|
|
208
212
|
I as getChapterModelDuration
|
|
209
213
|
};
|
package/libs/base/BasePlugin.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function A() {
|
|
2
2
|
console.debug(
|
|
3
|
-
"%c %c@realsee/dnalogel %cv3.81.0-alpha.
|
|
3
|
+
"%c %c@realsee/dnalogel %cv3.81.0-alpha.5",
|
|
4
4
|
[
|
|
5
5
|
"background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')",
|
|
6
6
|
"background-repeat: no-repeat",
|