@realsee/dnalogel 3.77.4-alpha.0 → 3.77.4-alpha.2
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/CHANGELOG.md +837 -846
- package/dist/DigitalPerformancePlugin/controller/index.d.ts +224 -0
- package/dist/DigitalPerformancePlugin/core/DigitalHuman.d.ts +54 -0
- package/dist/DigitalPerformancePlugin/core/DigitalPlayground.d.ts +40 -0
- package/dist/DigitalPerformancePlugin/core/DigitalStateMachine.d.ts +150 -0
- package/dist/DigitalPerformancePlugin/core/Trace.d.ts +9 -0
- package/dist/DigitalPerformancePlugin/index.d.ts +11 -0
- package/dist/DigitalPerformancePlugin/mock.d.ts +76 -0
- package/dist/DigitalPerformancePlugin/typings/index.d.ts +79 -0
- package/dist/GuideLinePlugin/Controller.d.ts +2 -34
- package/dist/GuideLinePlugin/GuideLineModeItem.d.ts +2 -7
- package/dist/index.cjs.js +86 -73
- package/dist/index.d.ts +1 -0
- package/dist/index.js +12911 -11239
- package/dist/index.umd.js +87 -74
- package/libs/DigitalPerformancePlugin/controller/index.d.ts +2 -2
- package/libs/DigitalPerformancePlugin/controller/index.js +164 -173
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.d.ts +15 -6
- package/libs/DigitalPerformancePlugin/core/DigitalHuman.js +125 -98
- package/libs/DigitalPerformancePlugin/core/DigitalPlayground.d.ts +11 -5
- package/libs/DigitalPerformancePlugin/core/DigitalPlayground.js +84 -74
- package/libs/DigitalPerformancePlugin/core/DigitalStateMachine.d.ts +7 -0
- package/libs/DigitalPerformancePlugin/mock.d.ts +6 -0
- package/libs/DigitalPerformancePlugin/mock.js +270 -273
- package/libs/GuideLinePlugin/Components/Tag.js +163 -151
- package/libs/GuideLinePlugin/Controller.d.ts +2 -34
- package/libs/GuideLinePlugin/Controller.js +22 -56
- package/libs/GuideLinePlugin/GuideLineModeItem/index.js +69 -76
- package/libs/GuideLinePlugin/GuideLineModeItem.d.ts +2 -7
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.d.ts +1 -0
- package/libs/index.js +161 -150
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +2 -2
- package/docs/.nojekyll +0 -1
- package/docs/assets/custom.css +0 -0
- package/docs/assets/highlight.css +0 -127
- package/docs/assets/icons.js +0 -18
- package/docs/assets/icons.svg +0 -1
- package/docs/assets/main.js +0 -60
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1493
- package/docs/classes/AreaMakerPluginType.AreaMakerController.html +0 -59
- package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +0 -71
- package/docs/classes/CSS3DRender.html +0 -100
- package/docs/classes/GuideLineItem.GuideLineItem.html +0 -21
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +0 -72
- package/docs/classes/ModelMakerPluginInstance.html +0 -116
- package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +0 -52
- package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +0 -52
- package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +0 -53
- package/docs/classes/ModelRoomLabelController.html +0 -19
- package/docs/classes/MoveController.html +0 -45
- package/docs/classes/Object3DHelperController.html +0 -45
- package/docs/classes/PaintBrush.html +0 -15
- package/docs/classes/PanoMeasurePluginLine.html +0 -24
- package/docs/classes/PanoMeasurePluginModel.html +0 -23
- package/docs/classes/PanoMeasurePluginPoint.html +0 -7
- package/docs/classes/PanoMeasurePluginPolyline.html +0 -27
- package/docs/classes/PanoTagPluginController.html +0 -111
- package/docs/classes/Sculpt.html +0 -77
- package/docs/classes/Util.BetterTween.html +0 -6
- package/docs/classes/Util.FiveDomEvents.html +0 -13
- package/docs/classes/Util.FivePuppet.html +0 -20
- package/docs/classes/Util.Interval.html +0 -11
- package/docs/classes/Util.LegacyPointHelper.html +0 -7
- package/docs/classes/Util.LightTag.html +0 -47
- package/docs/classes/Util.LineSegments.html +0 -4
- package/docs/classes/Util.Magnifier.html +0 -26
- package/docs/classes/Util.Object3D.html +0 -8
- package/docs/classes/Util.PointDomHelper.html +0 -8
- package/docs/classes/Util.PointHelper.html +0 -10
- package/docs/classes/Util.PointSelector.html +0 -66
- package/docs/classes/Util.PointSelectorHelper.html +0 -14
- package/docs/classes/Util.Rectangle.html +0 -12
- package/docs/classes/Util.sculpt.BaseEditor.html +0 -17
- package/docs/classes/Util.sculpt.BoxMesh.html +0 -48
- package/docs/classes/Util.sculpt.BoxMeshEditor.html +0 -18
- package/docs/classes/Util.sculpt.CircleMesh.html +0 -26
- package/docs/classes/Util.sculpt.CircleMeshEditor.html +0 -18
- package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +0 -26
- package/docs/classes/Util.sculpt.CylinderMesh.html +0 -25
- package/docs/classes/Util.sculpt.CylinderMeshEditor.html +0 -18
- package/docs/classes/Util.sculpt.LineMesh.html +0 -34
- package/docs/classes/Util.sculpt.PointMesh.html +0 -24
- package/docs/classes/Util.sculpt.PolygonMesh.html +0 -40
- package/docs/classes/Util.sculpt.PrismMesh.html +0 -48
- package/docs/classes/Util.sculpt.PrismMeshEditor.html +0 -18
- package/docs/classes/Util.sculpt.RectangleMesh.html +0 -41
- package/docs/classes/Util.sculpt.RectangleMeshEditor.html +0 -18
- package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +0 -44
- package/docs/classes/WalkController.html +0 -42
- package/docs/enums/CameraMovementEffect.html +0 -4
- package/docs/enums/ContentType.html +0 -34
- package/docs/enums/DIRECTION.html +0 -5
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +0 -5
- package/docs/enums/DimensionType.html +0 -4
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +0 -4
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +0 -5
- package/docs/enums/PaintBrushTypeEnum.html +0 -4
- package/docs/enums/PointType.html +0 -4
- package/docs/enums/Rotation.html +0 -5
- package/docs/functions/AreaMakerPlugin.html +0 -1
- package/docs/functions/CSS3DRenderPlugin.html +0 -1
- package/docs/functions/CameraMovementPlugin.html +0 -2
- package/docs/functions/CruisePlugin.html +0 -1
- package/docs/functions/CurrentPanoImagePlugin.html +0 -1
- package/docs/functions/FloorplanGuidePlugin.html +0 -1
- package/docs/functions/GuideLinePlugin.html +0 -1
- package/docs/functions/ItemLabelPlugin.html +0 -1
- package/docs/functions/MapviewFloorplanPlugin.html +0 -1
- package/docs/functions/MeasurePlugin.html +0 -1
- package/docs/functions/ModelChassisCompassPlugin.html +0 -2
- package/docs/functions/ModelEntryDoorGuidePlugin.html +0 -2
- package/docs/functions/ModelFloorplanPlugin.html +0 -1
- package/docs/functions/ModelItemLabelPlugin.html +0 -1
- package/docs/functions/ModelMakerPlugin.html +0 -1
- package/docs/functions/ModelRoomLabelPlugin.html +0 -1
- package/docs/functions/ModelTVVideoPlugin.html +0 -1
- package/docs/functions/ModelViewPlugin.html +0 -2
- package/docs/functions/MovePlugin.html +0 -1
- package/docs/functions/Object3DHelperPlugin.html +0 -1
- package/docs/functions/PanoCompassPlugin.html +0 -1
- package/docs/functions/PanoCursorRaycasterPlugin.html +0 -2
- package/docs/functions/PanoDoorLabelPlugin.html +0 -1
- package/docs/functions/PanoFloorplanRadarPlugin.html +0 -1
- package/docs/functions/PanoMeasurePlugin.html +0 -1
- package/docs/functions/PanoRulerPlugin.html +0 -2
- package/docs/functions/PanoRulerProPlugin.html +0 -2
- package/docs/functions/PanoSpatialTagPlugin.html +0 -2
- package/docs/functions/PanoTagPlugin.html +0 -1
- package/docs/functions/PanoVideoPlugin.html +0 -10
- package/docs/functions/PipelinePlugin.html +0 -1
- package/docs/functions/SculptPlugin.html +0 -2
- package/docs/functions/SculptPluginForFive.html +0 -2
- package/docs/functions/TopviewFloorplanPlugin.html +0 -1
- package/docs/functions/Util.awaitNextFrame.html +0 -1
- package/docs/functions/Util.blink.html +0 -13
- package/docs/functions/Util.blinkWithPreset.html +0 -6
- package/docs/functions/Util.bounding.html +0 -1
- package/docs/functions/Util.boundingBox.html +0 -1
- package/docs/functions/Util.boundingSphere.html +0 -1
- package/docs/functions/Util.boxVertex.html +0 -7
- package/docs/functions/Util.boxVertexes.html +0 -1
- package/docs/functions/Util.checkFiveModelLoaded.html +0 -2
- package/docs/functions/Util.cleanup.html +0 -3
- package/docs/functions/Util.convexHull.html +0 -2
- package/docs/functions/Util.equal.html +0 -5
- package/docs/functions/Util.fiveModelIsLoaded.html +0 -2
- package/docs/functions/Util.generatePolygonGeometry.html +0 -2
- package/docs/functions/Util.getCoordsFromClient.html +0 -1
- package/docs/functions/Util.getCoordsFromElement.html +0 -1
- package/docs/functions/Util.getFrameTime.html +0 -3
- package/docs/functions/Util.getGeometryArea.html +0 -1
- package/docs/functions/Util.getGeometryInfo.html +0 -1
- package/docs/functions/Util.getIntersectFromRelativePosition.html +0 -1
- package/docs/functions/Util.getRaycasterFromFivePointer.html +0 -1
- package/docs/functions/Util.initialCSS3DRender.html +0 -1
- package/docs/functions/Util.inside.html +0 -1
- package/docs/functions/Util.isModelLike.html +0 -1
- package/docs/functions/Util.isNil.html +0 -2
- package/docs/functions/Util.isPanoramaLike.html +0 -1
- package/docs/functions/Util.lookObject.html +0 -7
- package/docs/functions/Util.lookPoint.html +0 -5
- package/docs/functions/Util.nextFrame.html +0 -1
- package/docs/functions/Util.notNil.html +0 -2
- package/docs/functions/Util.reblink.html +0 -13
- package/docs/functions/Util.replaceStaticPrefix.html +0 -8
- package/docs/functions/Util.requestAnimationFrameInterval.html +0 -5
- package/docs/functions/Util.sculpt.createBox.html +0 -1
- package/docs/functions/Util.sculpt.createCircle.html +0 -1
- package/docs/functions/Util.sculpt.createCylinder.html +0 -1
- package/docs/functions/Util.sculpt.createLine.html +0 -2
- package/docs/functions/Util.sculpt.createPoint.html +0 -1
- package/docs/functions/Util.sculpt.createPolygon.html +0 -1
- package/docs/functions/Util.sculpt.createPrism.html +0 -1
- package/docs/functions/Util.sculpt.createRectangle.html +0 -2
- package/docs/functions/Util.sculpt.transformUnit.html +0 -1
- package/docs/functions/Util.sculpt.transformUnitSquare.html +0 -1
- package/docs/functions/Util.tag.html +0 -1
- package/docs/functions/Util.triangleArea.html +0 -2
- package/docs/functions/Util.triangleCenter.html +0 -2
- package/docs/functions/Util.tweenProgress.html +0 -1
- package/docs/functions/Util.uuid.html +0 -2
- package/docs/functions/Util.waitFiveModelLoaded.html +0 -2
- package/docs/functions/Util.worldBounding.html +0 -1
- package/docs/functions/Util.worldBoundingBox.html +0 -1
- package/docs/functions/Util.worldBoundingSphere.html +0 -1
- package/docs/functions/createPolyline.html +0 -2
- package/docs/functions/pluginFlag.html +0 -1
- package/docs/functions/validatePolygon.html +0 -1
- package/docs/hierarchy.html +0 -1
- package/docs/index.html +0 -70
- package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +0 -4
- package/docs/interfaces/AreaMakerPluginType.Config.html +0 -8
- package/docs/interfaces/AreaMakerPluginType.EventMap.html +0 -25
- package/docs/interfaces/AreaMakerPluginType.Params.html +0 -4
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +0 -20
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +0 -13
- package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +0 -9
- package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +0 -3
- package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +0 -3
- package/docs/interfaces/AreaMakerPluginType.State.html +0 -8
- package/docs/interfaces/BoxAnimationConfig.html +0 -6
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +0 -9
- package/docs/interfaces/CSS3DRenderPluginState.html +0 -7
- package/docs/interfaces/CameraMovementPluginExportType.html +0 -11
- package/docs/interfaces/ContentTypeMapInterface.html +0 -73
- package/docs/interfaces/CruisePluginTypes.Config.html +0 -7
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +0 -8
- package/docs/interfaces/CruisePluginTypes.EventMap.html +0 -33
- package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +0 -6
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +0 -16
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +0 -19
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +0 -20
- package/docs/interfaces/CruisePluginTypes.PluginData.html +0 -8
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +0 -2
- package/docs/interfaces/CruisePluginTypes.PluginState.html +0 -15
- package/docs/interfaces/CurrentPanoImagePluginType.Config.html +0 -13
- package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +0 -15
- package/docs/interfaces/CurrentPanoImagePluginType.Params.html +0 -4
- package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +0 -3
- package/docs/interfaces/CurrentPanoImagePluginType.State.html +0 -7
- package/docs/interfaces/FloorplanBounding.html +0 -9
- package/docs/interfaces/FloorplanData.html +0 -7
- package/docs/interfaces/FloorplanEntrance.html +0 -14
- package/docs/interfaces/FloorplanExtraObject.html +0 -9
- package/docs/interfaces/FloorplanExtraObject3D.html +0 -5
- package/docs/interfaces/FloorplanFloorData.html +0 -9
- package/docs/interfaces/FloorplanImagePosition.html +0 -4
- package/docs/interfaces/FloorplanObserver.html +0 -8
- package/docs/interfaces/FloorplanOutlineItem.html +0 -6
- package/docs/interfaces/FloorplanPosition.html +0 -4
- package/docs/interfaces/FloorplanRoomItem.html +0 -24
- package/docs/interfaces/FloorplanRoomLabelItem.html +0 -6
- package/docs/interfaces/FloorplanServerBounding.html +0 -9
- package/docs/interfaces/FloorplanServerComputedData.html +0 -6
- package/docs/interfaces/FloorplanServerData.html +0 -4
- package/docs/interfaces/FloorplanServerDoorItem.html +0 -6
- package/docs/interfaces/FloorplanServerDoorPosition.html +0 -4
- package/docs/interfaces/FloorplanServerEntrance.html +0 -14
- package/docs/interfaces/FloorplanServerFloorData.html +0 -8
- package/docs/interfaces/FloorplanServerImagePosition.html +0 -4
- package/docs/interfaces/FloorplanServerObserver.html +0 -8
- package/docs/interfaces/FloorplanServerOutlineItem.html +0 -6
- package/docs/interfaces/FloorplanServerPosition.html +0 -4
- package/docs/interfaces/FloorplanServerRoomItem.html +0 -27
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +0 -6
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +0 -4
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +0 -7
- package/docs/interfaces/GuideLinePluginType.EventMap.html +0 -13
- package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +0 -5
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +0 -8
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +0 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +0 -32
- package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +0 -4
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +0 -5
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +0 -42
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +0 -3
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +0 -57
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +0 -1
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +0 -2
- package/docs/interfaces/GuideLinePluginType.PluginState.html +0 -7
- package/docs/interfaces/GuideLinePluginType.Route.html +0 -13
- package/docs/interfaces/HelperOffset.html +0 -4
- package/docs/interfaces/ImagePlaneGroup.html +0 -3
- package/docs/interfaces/ItemLabelPluginData.html +0 -2
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +0 -7
- package/docs/interfaces/ItemLabelPluginParametersType.html +0 -5
- package/docs/interfaces/MinMax.html +0 -3
- package/docs/interfaces/ModelChassisCompassPluginData.html +0 -3
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +0 -4
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +0 -3
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +0 -4
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +0 -4
- package/docs/interfaces/ModelItemLabelPluginData.html +0 -2
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +0 -7
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +0 -3
- package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +0 -17
- package/docs/interfaces/ModelMakerPluginType.EventMap.html +0 -18
- package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +0 -23
- package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +0 -11
- package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +0 -10
- package/docs/interfaces/ModelMakerPluginType.ServerData.html +0 -3
- package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +0 -10
- package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +0 -10
- package/docs/interfaces/ModelMakerPluginType.State.html +0 -8
- package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +0 -11
- package/docs/interfaces/ModelRoomLabelPluginData.html +0 -2
- package/docs/interfaces/ModelTVVideoPluginData.html +0 -5
- package/docs/interfaces/ModelTVVideoPluginExportType.html +0 -4
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +0 -2
- package/docs/interfaces/ModelViewPluginExportType.html +0 -8
- package/docs/interfaces/Object3DHelperState.html +0 -4
- package/docs/interfaces/ObjectHelperControllers.html +0 -5
- package/docs/interfaces/PaintBrushAction.html +0 -14
- package/docs/interfaces/PaintBrushConfigs.html +0 -8
- package/docs/interfaces/PaintBrushState.html +0 -6
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +0 -16
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +0 -1
- package/docs/interfaces/PanoMeasureParameterType.html +0 -20
- package/docs/interfaces/PanoMeasurePluginLineJson.html +0 -4
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +0 -4
- package/docs/interfaces/PanoMeasurePluginPointJson.html +0 -3
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +0 -7
- package/docs/interfaces/PanoRulerPluginExportType.html +0 -6
- package/docs/interfaces/PanoRulerPluginOptions.html +0 -3
- package/docs/interfaces/PanoRulerPluginParameterType.html +0 -4
- package/docs/interfaces/PanoRulerProPluginExportType.html +0 -5
- package/docs/interfaces/PanoRulerProPluginOptions.html +0 -3
- package/docs/interfaces/PanoRulerProPluginParameterType.html +0 -3
- package/docs/interfaces/PanoRulerProPluginState.html +0 -4
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +0 -1
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +0 -1
- package/docs/interfaces/PanoSpatialTagPluginData.html +0 -7
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +0 -6
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +0 -9
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +0 -6
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +0 -9
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +0 -7
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +0 -6
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +0 -3
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +0 -8
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +0 -2
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +0 -15
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +0 -2
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +0 -14
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +0 -13
- package/docs/interfaces/PluginEventMap.html +0 -16
- package/docs/interfaces/Point.html +0 -4
- package/docs/interfaces/Room.html +0 -5
- package/docs/interfaces/RoomInfo.html +0 -3
- package/docs/interfaces/RoomLabel.html +0 -16
- package/docs/interfaces/RoomRules.html +0 -1
- package/docs/interfaces/Rooms.html +0 -1
- package/docs/interfaces/Scissor.html +0 -13
- package/docs/interfaces/SculptConfig.html +0 -19
- package/docs/interfaces/State.html +0 -7
- package/docs/interfaces/TagCacheInterface.html +0 -9
- package/docs/interfaces/TagConfig.html +0 -174
- package/docs/interfaces/TagGLTFObjectGroup.html +0 -3
- package/docs/interfaces/TagIconAnimationConfig.html +0 -7
- package/docs/interfaces/TagIconUrl.html +0 -22
- package/docs/interfaces/TagObjectGroup.html +0 -3
- package/docs/interfaces/TagState.html +0 -3
- package/docs/interfaces/TagStyle.html +0 -5
- package/docs/interfaces/Tags.html +0 -8
- package/docs/interfaces/TemporaryState.html +0 -2
- package/docs/interfaces/Util.AnimeInstance.html +0 -14
- package/docs/interfaces/Util.BlinkAnimeOptions.html +0 -21
- package/docs/interfaces/Util.EventHandlerConfig.html +0 -21
- package/docs/interfaces/Util.FiveDomEvent.html +0 -7
- package/docs/interfaces/Util.FiveDomEventMap.html +0 -20
- package/docs/interfaces/Util.LegacyMouseGroupParameter.html +0 -4
- package/docs/interfaces/Util.MagnifierParameter.html +0 -13
- package/docs/interfaces/Util.MouseGroupParameter.html +0 -4
- package/docs/interfaces/Util.ObjectInitialState.html +0 -9
- package/docs/interfaces/Util.PointIntersection.html +0 -21
- package/docs/interfaces/Util.PointSelectorHelperConfig.html +0 -6
- package/docs/interfaces/Util.ReBlinkAnimeOptions.html +0 -27
- package/docs/modules/AreaMakerPluginType.html +0 -17
- package/docs/modules/CruisePluginTypes.html +0 -14
- package/docs/modules/CurrentPanoImagePluginType.html +0 -6
- package/docs/modules/GuideLineItem.html +0 -2
- package/docs/modules/GuideLineModeItem.html +0 -3
- package/docs/modules/GuideLinePluginType.html +0 -25
- package/docs/modules/ModelMakerPluginType.html +0 -19
- package/docs/modules/PanoVideoPluginType.html +0 -8
- package/docs/modules/SculptData.html +0 -9
- package/docs/modules/SculptType.html +0 -2
- package/docs/modules/Util.html +0 -91
- package/docs/modules/Util.sculpt.html +0 -27
- package/docs/modules.html +0 -281
- package/docs/types/AddObject3DHelperConfig.html +0 -19
- package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +0 -7
- package/docs/types/AreaMakerPluginType.ItemRenderer.html +0 -1
- package/docs/types/AreaMakerPluginType.PluginData.html +0 -2
- package/docs/types/AreaMakerPluginType.ServerData.html +0 -2
- package/docs/types/ArrayPosition.html +0 -1
- package/docs/types/AudioAppearance.html +0 -1
- package/docs/types/CSS3DRenderExportType.html +0 -1
- package/docs/types/CSS3DRenderPluginExportType.html +0 -1
- package/docs/types/CSS3DRenderPluginParameterType.html +0 -1
- package/docs/types/ClassFunctionParameters.html +0 -1
- package/docs/types/Color.html +0 -1
- package/docs/types/ContentTypeConfigKey.html +0 -1
- package/docs/types/ContentTypeConfigKeySplit.html +0 -1
- package/docs/types/ContentTypeMap.html +0 -1
- package/docs/types/Create3DDomContainerReturnType.html +0 -1
- package/docs/types/Create3DElementReturnType.html +0 -1
- package/docs/types/CruisePluginExportType.html +0 -1
- package/docs/types/CruisePluginTypes.CruiseData.html +0 -6
- package/docs/types/CruisePluginTypes.MoveEffect.html +0 -1
- package/docs/types/CurrentPanoImagePluginExportType.html +0 -1
- package/docs/types/DeprecatedMediaPlaneProperty.html +0 -3
- package/docs/types/DeprecatedTagProperty.html +0 -3
- package/docs/types/Direction-1.html +0 -1
- package/docs/types/Direction4.html +0 -1
- package/docs/types/ElementRenderer.html +0 -2
- package/docs/types/FloorplanGuidePluginParameterType.html +0 -1
- package/docs/types/FloorplanGuidePluginReturnType.html +0 -1
- package/docs/types/FloorplanRuleLabels.html +0 -2
- package/docs/types/FloorplanServerRuleLabels.html +0 -1
- package/docs/types/GuideLinePluginExportType.html +0 -1
- package/docs/types/GuideLinePluginType.GuideLineItem.html +0 -2
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +0 -1
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +0 -1
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +0 -2
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +0 -2
- package/docs/types/GuideLinePluginType.PathItem.html +0 -2
- package/docs/types/GuideLinePluginType.PluginData.html +0 -2
- package/docs/types/GuideLinePluginType.RouteConfig.html +0 -4
- package/docs/types/HelperEventMap.html +0 -1
- package/docs/types/InternalHelperEventMap.html +0 -1
- package/docs/types/MapviewFloorplanPluginParameterType.html +0 -1
- package/docs/types/MapviewFloorplanPluginReturnType.html +0 -1
- package/docs/types/MeasureEndReason.html +0 -1
- package/docs/types/MeasurePluginConfig.html +0 -5
- package/docs/types/MeasurePluginEventMap.html +0 -1
- package/docs/types/MediaData.html +0 -2
- package/docs/types/MediaStore.html +0 -1
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +0 -1
- package/docs/types/ModelFloorplanPluginParameterType.html +0 -1
- package/docs/types/ModelFloorplanPluginReturnType.html +0 -1
- package/docs/types/ModelId.html +0 -1
- package/docs/types/ModelMakerPluginType.ElementRenderer.html +0 -1
- package/docs/types/ModelMakerPluginType.ItemType.html +0 -2
- package/docs/types/ModelMakerPluginType.MarkerItem.html +0 -1
- package/docs/types/ModelMakerPluginType.ServerItem.html +0 -2
- package/docs/types/ModelRoomLabelPluginParameters.html +0 -1
- package/docs/types/ModelRoomLabelPluginReturnType.html +0 -1
- package/docs/types/MoveArgs.html +0 -2
- package/docs/types/MoveOpts.html +0 -2
- package/docs/types/Object3DHelperEventMap.html +0 -1
- package/docs/types/ObjectFit.html +0 -1
- package/docs/types/PaintBrushEventMap.html +0 -1
- package/docs/types/PanoCompassPluginData.html +0 -1
- package/docs/types/PanoCompassPluginExportType.html +0 -1
- package/docs/types/PanoCompassPluginParameterType.html +0 -1
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +0 -1
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +0 -1
- package/docs/types/PanoIndex.html +0 -1
- package/docs/types/PanoMeasurePluginEvent.html +0 -1
- package/docs/types/PanoMeasureReturnType.html +0 -1
- package/docs/types/PanoSpatialTagPluginId.html +0 -1
- package/docs/types/PanoTagPluginExportInterface.html +0 -1
- package/docs/types/PanoTagPluginParamsInterface.html +0 -1
- package/docs/types/PanoVideoPluginParameterType.html +0 -1
- package/docs/types/PanoVideoPluginReturnType.html +0 -1
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +0 -2
- package/docs/types/PipelinePluginParameterType.html +0 -1
- package/docs/types/PipelinePluginReturnType.html +0 -1
- package/docs/types/PlaneTag.html +0 -2
- package/docs/types/Point2DTag.html +0 -2
- package/docs/types/Point3DTag.html +0 -2
- package/docs/types/PointTagInstance.html +0 -1
- package/docs/types/Position.html +0 -1
- package/docs/types/PositionFrom.html +0 -1
- package/docs/types/RotateArgs.html +0 -2
- package/docs/types/RotateOpts.html +0 -2
- package/docs/types/RuleLabelsKey.html +0 -1
- package/docs/types/RuleLabelsValue.html +0 -1
- package/docs/types/ScaleCallback.html +0 -1
- package/docs/types/ScalePosition.html +0 -3
- package/docs/types/SculptData.BoxData.html +0 -1
- package/docs/types/SculptData.CircleData.html +0 -1
- package/docs/types/SculptData.CylinderData.html +0 -1
- package/docs/types/SculptData.PointData.html +0 -1
- package/docs/types/SculptData.PolygonData.html +0 -1
- package/docs/types/SculptData.PolylineData.html +0 -1
- package/docs/types/SculptData.PrismData.html +0 -1
- package/docs/types/SculptData.RectangleData.html +0 -1
- package/docs/types/SculptType.Theme.html +0 -10
- package/docs/types/StickType.html +0 -1
- package/docs/types/Tag.html +0 -17
- package/docs/types/Tag2D.html +0 -2
- package/docs/types/Tag3D.html +0 -2
- package/docs/types/TagClickParams.html +0 -1
- package/docs/types/TagConfigByKey.html +0 -1
- package/docs/types/TagContentType.html +0 -1
- package/docs/types/TagContentTypeMapping.html +0 -1
- package/docs/types/TagDimensionType.html +0 -1
- package/docs/types/TagElement.html +0 -2
- package/docs/types/TagEvents.html +0 -1
- package/docs/types/TagGLTFObject.html +0 -1
- package/docs/types/TagHooks.html +0 -1
- package/docs/types/TagId.html +0 -1
- package/docs/types/TagInstance.html +0 -1
- package/docs/types/TagPlacement.html +0 -5
- package/docs/types/TagPointType.html +0 -2
- package/docs/types/TagRendererMap.html +0 -1
- package/docs/types/TopviewFloorplanPluginParameterType.html +0 -1
- package/docs/types/TopviewFloorplanPluginReturnType.html +0 -1
- package/docs/types/Util.ActionIfNoIntersection.html +0 -1
- package/docs/types/Util.AdherePoint.html +0 -2
- package/docs/types/Util.PointSelectorConfig.html +0 -1
- package/docs/types/Util.SupportedTarget.html +0 -2
- package/docs/types/Util.Target.html +0 -2
- package/docs/types/Util.ThreeObject.html +0 -2
- package/docs/types/WorkCode.html +0 -1
- package/docs/variables/FLOOR_TYPE_MAP.html +0 -2
- package/docs/variables/PLUGIN.html +0 -1
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +0 -2
- package/docs/variables/ROOM_TYPE_MAP.html +0 -2
- package/docs/variables/Util.ANIME_PRESETS.html +0 -2
- package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +0 -2
- package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +0 -2
- package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +0 -2
- package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +0 -2
- package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +0 -2
- package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +0 -2
- package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +0 -2
- package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +0 -2
- package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +0 -2
- package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +0 -2
- package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +0 -2
- package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +0 -2
- package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +0 -2
- package/docs/variables/defaultGlobalConfig.html +0 -1
- package/docs/variables/itemLabelPluginServerParams.html +0 -1
- package/docs/variables/modelItemLabelPluginServerParams.html +0 -1
- package/docs/variables/modelRoomLabelPluginServerParams.html +0 -1
|
@@ -9,23 +9,29 @@ export declare class DigitalHuman {
|
|
|
9
9
|
items: DigitalModelPlayerItem[];
|
|
10
10
|
effects: DigitalModelPlayerEffect[];
|
|
11
11
|
digitalPlayground: any;
|
|
12
|
-
private mixer;
|
|
13
|
-
private action;
|
|
14
12
|
state: {
|
|
15
13
|
currentTime: number;
|
|
16
14
|
currentAnimation: THREE.AnimationClip | null;
|
|
17
15
|
playing: boolean;
|
|
18
16
|
};
|
|
19
17
|
animationFrameId: number | null;
|
|
20
|
-
private itemMatrixMap;
|
|
21
|
-
private trace;
|
|
22
18
|
curveLine: THREE.Line;
|
|
23
19
|
effectsGroup: THREE.Group;
|
|
24
20
|
effectObjects: Map<string, THREE.Mesh>;
|
|
25
21
|
container: THREE.Group;
|
|
22
|
+
private mixer;
|
|
23
|
+
private action;
|
|
24
|
+
private itemMatrixMap;
|
|
25
|
+
private trace;
|
|
26
26
|
private processedNeedRenderKeyframeIndices;
|
|
27
|
+
private attachedItems;
|
|
28
|
+
private rightHandBone;
|
|
27
29
|
constructor(model: GLTFObject, digitalPlayground: any);
|
|
28
|
-
playAnimation(animation
|
|
30
|
+
playAnimation({ animation, repeat, switchDuration }: {
|
|
31
|
+
animation: THREE.AnimationClip;
|
|
32
|
+
repeat: boolean;
|
|
33
|
+
switchDuration: number;
|
|
34
|
+
}): void;
|
|
29
35
|
pauseAnimation(): void;
|
|
30
36
|
stopAnimation(): void;
|
|
31
37
|
continueAnimation(): void;
|
|
@@ -39,7 +45,10 @@ export declare class DigitalHuman {
|
|
|
39
45
|
}): Promise<boolean>;
|
|
40
46
|
traceUpDate(): void;
|
|
41
47
|
clearTrace(): void;
|
|
48
|
+
clearProcessedNeedRenderKeyframeIndices(): void;
|
|
42
49
|
private hasProcessedNeedRenderForTimestamp;
|
|
43
50
|
private markNeedRenderProcessedForTimestamp;
|
|
44
|
-
|
|
51
|
+
private getRightHandBone;
|
|
52
|
+
private updateKeyframeItems;
|
|
53
|
+
private detachAllKeyframeItems;
|
|
45
54
|
}
|
|
@@ -1,57 +1,63 @@
|
|
|
1
1
|
var x = Object.defineProperty;
|
|
2
|
-
var R = (
|
|
3
|
-
var n = (
|
|
4
|
-
var M = (
|
|
5
|
-
var
|
|
2
|
+
var R = (y, e, t) => e in y ? x(y, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : y[e] = t;
|
|
3
|
+
var n = (y, e, t) => (R(y, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
var M = (y, e, t) => new Promise((l, o) => {
|
|
5
|
+
var a = (d) => {
|
|
6
6
|
try {
|
|
7
|
-
p(
|
|
7
|
+
p(t.next(d));
|
|
8
8
|
} catch (F) {
|
|
9
|
-
|
|
9
|
+
o(F);
|
|
10
10
|
}
|
|
11
|
-
},
|
|
11
|
+
}, g = (d) => {
|
|
12
12
|
try {
|
|
13
|
-
p(
|
|
13
|
+
p(t.throw(d));
|
|
14
14
|
} catch (F) {
|
|
15
|
-
|
|
15
|
+
o(F);
|
|
16
16
|
}
|
|
17
|
-
}, p = (
|
|
18
|
-
p((
|
|
17
|
+
}, p = (d) => d.done ? l(d.value) : Promise.resolve(d.value).then(a, g);
|
|
18
|
+
p((t = t.apply(y, e)).next());
|
|
19
19
|
});
|
|
20
|
-
import * as
|
|
20
|
+
import * as i from "three";
|
|
21
21
|
import { DigitalStateMachine as S } from "./DigitalStateMachine.js";
|
|
22
22
|
import { Trace as L } from "./Trace.js";
|
|
23
|
-
const
|
|
24
|
-
class
|
|
25
|
-
constructor(e,
|
|
23
|
+
const q = 300;
|
|
24
|
+
class D {
|
|
25
|
+
constructor(e, t) {
|
|
26
26
|
n(this, "model");
|
|
27
27
|
n(this, "keyframesManager");
|
|
28
28
|
n(this, "keyframes");
|
|
29
29
|
n(this, "items");
|
|
30
30
|
n(this, "effects");
|
|
31
31
|
n(this, "digitalPlayground");
|
|
32
|
-
n(this, "mixer");
|
|
33
|
-
n(this, "action");
|
|
34
32
|
n(this, "state");
|
|
35
33
|
n(this, "animationFrameId");
|
|
36
|
-
n(this, "itemMatrixMap");
|
|
37
|
-
n(this, "trace");
|
|
38
34
|
n(this, "curveLine");
|
|
39
35
|
n(this, "effectsGroup");
|
|
40
36
|
n(this, "effectObjects");
|
|
41
37
|
n(this, "container");
|
|
38
|
+
n(this, "mixer");
|
|
39
|
+
n(this, "action");
|
|
40
|
+
n(this, "itemMatrixMap");
|
|
41
|
+
n(this, "trace");
|
|
42
42
|
// 用于跟踪已处理的needRender keyframeIndex
|
|
43
43
|
n(this, "processedNeedRenderKeyframeIndices", /* @__PURE__ */ new Set());
|
|
44
|
-
|
|
44
|
+
// 跟踪已绑定到骨骼的 keyframe 道具(key: itemKey, value: item object)
|
|
45
|
+
n(this, "attachedItems", /* @__PURE__ */ new Map());
|
|
46
|
+
// 缓存 RightHand 骨骼
|
|
47
|
+
n(this, "rightHandBone", null);
|
|
48
|
+
this.model = e, this.model.visible = !1, this.model.mixer = null, this.mixer = new i.AnimationMixer(this.model), this.action = null, this.keyframesManager = new S(), this.keyframes = [], this.items = [], this.effects = [], this.digitalPlayground = t, this.state = {
|
|
45
49
|
currentTime: 0,
|
|
46
50
|
currentAnimation: null,
|
|
47
51
|
playing: !1
|
|
48
|
-
}, this.animationFrameId = null, this.itemMatrixMap = /* @__PURE__ */ new Map(), this.trace = new L(), this.curveLine = new
|
|
52
|
+
}, this.animationFrameId = null, this.itemMatrixMap = /* @__PURE__ */ new Map(), this.trace = new L(), this.curveLine = new i.Line(), this.curveLine.material = new i.LineBasicMaterial({ color: 14467195, linewidth: 5 }), this.effectsGroup = new i.Group(), this.effectObjects = /* @__PURE__ */ new Map(), this.container = new i.Group(), this.container.add(this.model), this.container.add(this.curveLine), this.container.add(this.effectsGroup);
|
|
49
53
|
}
|
|
50
|
-
playAnimation(e,
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
playAnimation({ animation: e, repeat: t, switchDuration: l }) {
|
|
55
|
+
const o = this.action;
|
|
56
|
+
e.tracks = e.tracks.filter((g) => g);
|
|
57
|
+
const a = this.mixer.clipAction(e);
|
|
58
|
+
a.reset(), t || (a.setLoop(i.LoopOnce, 1), a.clampWhenFinished = !0), o && (a.enabled = !0, a.setEffectiveTimeScale(1), a.crossFadeFrom(o, l / 1e3, !0)), a.play(), o && o !== a && setTimeout(() => {
|
|
59
|
+
o.stop();
|
|
60
|
+
}, l), this.action = a;
|
|
55
61
|
}
|
|
56
62
|
pauseAnimation() {
|
|
57
63
|
this.action && (this.action.paused = !0), this.animationFrameId && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.state.playing = !1;
|
|
@@ -65,93 +71,86 @@ class O {
|
|
|
65
71
|
attachItem() {
|
|
66
72
|
}
|
|
67
73
|
init() {
|
|
68
|
-
this.state.currentTime = 0, this.model.position.copy(new
|
|
74
|
+
this.state.currentTime = 0, this.model.position.copy(new i.Vector3().fromArray(this.keyframes[0].position)), this.model.quaternion.copy(new i.Quaternion().fromArray(this.keyframes[0].quaternion)), this.model.visible = this.keyframes[0].visible;
|
|
69
75
|
}
|
|
70
76
|
reset() {
|
|
71
|
-
this.state.currentTime = 0, this.keyframes && this.keyframes.length > 0 && (this.model.position.copy(new
|
|
77
|
+
this.state.currentTime = 0, this.keyframes && this.keyframes.length > 0 && (this.model.position.copy(new i.Vector3().fromArray(this.keyframes[0].position)), this.model.quaternion.copy(new i.Quaternion().fromArray(this.keyframes[0].quaternion))), this.model.visible = !1, this.container.visible = !1, this.animationFrameId && cancelAnimationFrame(this.animationFrameId), this.stopAnimation(), this.clearTrace(), this.detachAllKeyframeItems(), this.state.playing = !1;
|
|
72
78
|
}
|
|
73
79
|
play(e) {
|
|
74
80
|
return M(this, null, function* () {
|
|
75
81
|
this.clearProcessedNeedRenderKeyframeIndices();
|
|
76
|
-
const { keyframes:
|
|
77
|
-
return this.keyframes =
|
|
82
|
+
const { keyframes: t, items: l, effects: o } = e || {};
|
|
83
|
+
return this.keyframes = t || this.keyframes, this.items = l || this.items, this.effects = o || this.effects, this.state.currentAnimation = null, this.state.playing = !0, new Promise((a, g) => {
|
|
78
84
|
this.state.currentTime || this.init();
|
|
79
85
|
let p = null;
|
|
80
|
-
for (let
|
|
81
|
-
const
|
|
82
|
-
if (
|
|
83
|
-
let
|
|
84
|
-
const
|
|
85
|
-
if (!
|
|
86
|
+
for (let c = 0; c < this.items.length; c++) {
|
|
87
|
+
const h = this.digitalPlayground.getDigitalItem(this.items[c].model);
|
|
88
|
+
if (h) {
|
|
89
|
+
let s = null;
|
|
90
|
+
const u = this.model.children[0].children.find((f) => f instanceof i.Bone), A = this.model.children[0].children.find((f) => f instanceof i.SkinnedMesh);
|
|
91
|
+
if (!u || !A)
|
|
86
92
|
throw new Error("模型骨骼缺失");
|
|
87
93
|
if (this.model.children[0].children[2].traverse((f) => {
|
|
88
|
-
f instanceof
|
|
89
|
-
}), !
|
|
94
|
+
f instanceof i.Bone && f.name === "RightHand" && (s = f);
|
|
95
|
+
}), !s)
|
|
90
96
|
throw new Error("没有找到绑定的骨骼");
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
new
|
|
97
|
+
s.add(h);
|
|
98
|
+
const w = new i.Vector3(), r = new i.Quaternion(), m = new i.Vector3();
|
|
99
|
+
new i.Matrix4().fromArray(this.items[c].initialMatrix).decompose(w, r, m), h.position.copy(w), h.quaternion.copy(r), h.scale.copy(m), h.updateMatrixWorld(!0);
|
|
94
100
|
}
|
|
95
101
|
}
|
|
96
|
-
const
|
|
97
|
-
for (let
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
100
|
-
const
|
|
101
|
-
for (let
|
|
102
|
-
F.load(
|
|
103
|
-
A.name =
|
|
102
|
+
const d = /* @__PURE__ */ new Map(), F = new i.TextureLoader();
|
|
103
|
+
for (let c = 0; c < this.effects.length; c++) {
|
|
104
|
+
const h = this.effects[c];
|
|
105
|
+
if (h.type === "frameSequence") {
|
|
106
|
+
const s = h.keyframes;
|
|
107
|
+
for (let u = 0; u < s.length; u++)
|
|
108
|
+
F.load(s[u].image, (A) => {
|
|
109
|
+
A.name = s[u].image, d.set(s[u].image, A);
|
|
104
110
|
});
|
|
105
111
|
}
|
|
106
112
|
}
|
|
107
|
-
const
|
|
108
|
-
var A;
|
|
109
|
-
p === null && (p =
|
|
110
|
-
const
|
|
111
|
-
p =
|
|
112
|
-
const
|
|
113
|
-
this.trace.addPoint(
|
|
114
|
-
const
|
|
115
|
-
if (this.curveLine.geometry =
|
|
116
|
-
this.model.visible = !1, this.container.visible = !1, this.stopAnimation(), this.model.needsRender = !0,
|
|
113
|
+
const v = (c) => {
|
|
114
|
+
var A, w;
|
|
115
|
+
p === null && (p = c);
|
|
116
|
+
const h = c - p;
|
|
117
|
+
p = c, this.state.currentTime += h;
|
|
118
|
+
const s = this.keyframesManager.getStateByTime(this.state.currentTime, this.keyframes, "model");
|
|
119
|
+
this.trace.addPoint(s.translation);
|
|
120
|
+
const u = new i.BufferGeometry().setFromPoints(this.trace.tracePoints);
|
|
121
|
+
if (this.curveLine.geometry = u, this.model.position.copy(s.translation), this.model.quaternion.copy(s.quaternion), this.model.scale.copy(s.scale), this.model.visible = s.visible, s.isFinal) {
|
|
122
|
+
this.model.visible = !1, this.container.visible = !1, this.stopAnimation(), this.model.needsRender = !0, a(!0), this.animationFrameId !== null && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null);
|
|
117
123
|
return;
|
|
118
|
-
} else if (
|
|
119
|
-
const
|
|
120
|
-
(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
(A =
|
|
124
|
-
)), this.mixer.update(
|
|
124
|
+
} else if (s.animation) {
|
|
125
|
+
const r = this.digitalPlayground.getAnimation(s.animation.url), m = s.animation.needRender;
|
|
126
|
+
(r !== this.state.currentAnimation || m && !this.hasProcessedNeedRenderForTimestamp(s.keyframeIndex)) && (m && r === this.state.currentAnimation && this.markNeedRenderProcessedForTimestamp(s.keyframeIndex), this.state.currentAnimation = r, this.playAnimation({
|
|
127
|
+
animation: r,
|
|
128
|
+
repeat: s.animation.repeat,
|
|
129
|
+
switchDuration: (A = s.animation.switchDuration) != null ? A : q
|
|
130
|
+
})), this.mixer.update(h / 1e3), s.animation.isOver === !0 && (this.action.paused = !0, this.action.time = this.state.currentAnimation.duration, this.mixer.update(0));
|
|
125
131
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
this.items[a].keyframes,
|
|
131
|
-
"item"
|
|
132
|
-
).visible === !0 ? o.visible = !0 : o.visible = !1);
|
|
132
|
+
this.updateKeyframeItems((w = s.animation) == null ? void 0 : w.item);
|
|
133
|
+
for (let r = 0; r < this.items.length; r++) {
|
|
134
|
+
const m = this.digitalPlayground.getDigitalItem(this.items[r].model);
|
|
135
|
+
m && (this.keyframesManager.getStateByTime(this.state.currentTime, this.items[r].keyframes, "item").visible === !0 ? m.visible = !0 : m.visible = !1);
|
|
133
136
|
}
|
|
134
|
-
for (let
|
|
135
|
-
const
|
|
136
|
-
if (
|
|
137
|
-
const
|
|
138
|
-
if (!this.effectObjects.has(
|
|
139
|
-
const
|
|
137
|
+
for (let r = 0; r < this.effects.length; r++) {
|
|
138
|
+
const m = this.effects[r];
|
|
139
|
+
if (m.type === "frameSequence") {
|
|
140
|
+
const I = m.type + r;
|
|
141
|
+
if (!this.effectObjects.has(I)) {
|
|
142
|
+
const b = new i.PlaneGeometry(1, 1), B = new i.MeshBasicMaterial({
|
|
140
143
|
transparent: !0
|
|
141
|
-
}),
|
|
142
|
-
|
|
144
|
+
}), k = new i.Mesh(b, B);
|
|
145
|
+
k.rotateX(-Math.PI / 2), k.position.copy(new i.Vector3().fromArray(m.position)), this.effectObjects.set(I, k), this.effectsGroup.add(k);
|
|
143
146
|
}
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
this.effects[a].keyframes,
|
|
147
|
-
"effect"
|
|
148
|
-
), v = l.get(f.image);
|
|
149
|
-
I.material.map = v, I.visible = f.visible;
|
|
147
|
+
const f = this.effectObjects.get(I), T = this.keyframesManager.getStateByTime(this.state.currentTime, this.effects[r].keyframes, "effect"), P = d.get(T.image);
|
|
148
|
+
f.material.map = P, f.visible = T.visible;
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
|
-
this.model.needsRender = !0, this.animationFrameId = requestAnimationFrame(
|
|
151
|
+
this.model.needsRender = !0, this.animationFrameId = requestAnimationFrame(v);
|
|
153
152
|
};
|
|
154
|
-
this.animationFrameId && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.animationFrameId = requestAnimationFrame(
|
|
153
|
+
this.animationFrameId && (cancelAnimationFrame(this.animationFrameId), this.animationFrameId = null), this.animationFrameId = requestAnimationFrame(v);
|
|
155
154
|
});
|
|
156
155
|
});
|
|
157
156
|
}
|
|
@@ -159,18 +158,22 @@ class O {
|
|
|
159
158
|
traceUpDate() {
|
|
160
159
|
this.trace.clear();
|
|
161
160
|
for (let e = 0; e <= this.state.currentTime; e += 100) {
|
|
162
|
-
const
|
|
163
|
-
this.trace.addPoint(
|
|
164
|
-
const
|
|
165
|
-
this.curveLine.geometry =
|
|
161
|
+
const t = this.keyframesManager.getStateByTime(e, this.keyframes, "model");
|
|
162
|
+
this.trace.addPoint(t.translation);
|
|
163
|
+
const l = new i.BufferGeometry().setFromPoints(this.trace.tracePoints);
|
|
164
|
+
this.curveLine.geometry = l;
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
// 清楚轨迹
|
|
169
168
|
clearTrace() {
|
|
170
169
|
this.trace.clear();
|
|
171
|
-
const e = new
|
|
170
|
+
const e = new i.BufferGeometry().setFromPoints(this.trace.tracePoints);
|
|
172
171
|
this.curveLine.geometry = e;
|
|
173
172
|
}
|
|
173
|
+
// 清理已处理的keyframeIndex记录(可选,在适当的时候调用)
|
|
174
|
+
clearProcessedNeedRenderKeyframeIndices() {
|
|
175
|
+
this.processedNeedRenderKeyframeIndices.clear();
|
|
176
|
+
}
|
|
174
177
|
// 检查指定keyframeIndex的needRender是否已经处理过
|
|
175
178
|
hasProcessedNeedRenderForTimestamp(e) {
|
|
176
179
|
return this.processedNeedRenderKeyframeIndices.has(e);
|
|
@@ -179,11 +182,35 @@ class O {
|
|
|
179
182
|
markNeedRenderProcessedForTimestamp(e) {
|
|
180
183
|
this.processedNeedRenderKeyframeIndices.add(e);
|
|
181
184
|
}
|
|
182
|
-
//
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
// 获取并缓存 RightHand 骨骼
|
|
186
|
+
getRightHandBone() {
|
|
187
|
+
var e;
|
|
188
|
+
return this.rightHandBone ? this.rightHandBone : ((e = this.model.children[0].children.find((t) => t instanceof i.Bone)) == null || e.traverse((t) => {
|
|
189
|
+
t instanceof i.Bone && t.name === "RightHand" && (this.rightHandBone = t);
|
|
190
|
+
}), this.rightHandBone);
|
|
191
|
+
}
|
|
192
|
+
// 根据当前帧的 items 动态绑定/解绑道具
|
|
193
|
+
updateKeyframeItems(e) {
|
|
194
|
+
var o;
|
|
195
|
+
const t = (e == null ? void 0 : e.url) || null;
|
|
196
|
+
for (const [a, g] of this.attachedItems)
|
|
197
|
+
t !== a && ((o = g.parent) == null || o.remove(g), this.attachedItems.delete(a));
|
|
198
|
+
if (!t)
|
|
199
|
+
return;
|
|
200
|
+
const l = this.getRightHandBone();
|
|
201
|
+
if (l && !this.attachedItems.has(t)) {
|
|
202
|
+
const a = this.digitalPlayground.getDigitalItem(t);
|
|
203
|
+
a && (l.add(a), this.attachedItems.set(t, a));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// 解绑所有 keyframe 道具
|
|
207
|
+
detachAllKeyframeItems() {
|
|
208
|
+
var e;
|
|
209
|
+
for (const [, t] of this.attachedItems)
|
|
210
|
+
(e = t.parent) == null || e.remove(t);
|
|
211
|
+
this.attachedItems.clear();
|
|
185
212
|
}
|
|
186
213
|
}
|
|
187
214
|
export {
|
|
188
|
-
|
|
215
|
+
D as DigitalHuman
|
|
189
216
|
};
|
|
@@ -4,14 +4,13 @@ import { DigitalHuman } from './DigitalHuman';
|
|
|
4
4
|
import type { DigitalScript, DigitalChapter } from './DigitalStateMachine';
|
|
5
5
|
export declare class DigitalPlayground {
|
|
6
6
|
gltfLoader: GLTFLoader;
|
|
7
|
+
script: DigitalScript | null;
|
|
8
|
+
currentChapter: DigitalChapter | null;
|
|
7
9
|
private digitalHumanMap;
|
|
8
10
|
private digitalItemMap;
|
|
9
11
|
private skeletalAnimationMap;
|
|
10
|
-
script: DigitalScript | null;
|
|
11
|
-
currentChapter: DigitalChapter | null;
|
|
12
12
|
private debugMode;
|
|
13
13
|
constructor(debugMode?: boolean);
|
|
14
|
-
private loadGLTF;
|
|
15
14
|
setScript(script: DigitalScript): void;
|
|
16
15
|
loadModel(url: string, id?: string): Promise<DigitalHuman>;
|
|
17
16
|
loadModels(urls: string[], ids?: string[]): Promise<DigitalHuman[]>;
|
|
@@ -20,8 +19,14 @@ export declare class DigitalPlayground {
|
|
|
20
19
|
getAnimation(url: string): THREE.AnimationClip | null;
|
|
21
20
|
getDigitalHuman(url: string, id?: string): DigitalHuman | null;
|
|
22
21
|
playByChapter(chapter: DigitalChapter): Promise<any[]>;
|
|
23
|
-
loadItems(urls: string[]
|
|
24
|
-
|
|
22
|
+
loadItems(urls: string[], offsets?: Map<string, {
|
|
23
|
+
position: number[];
|
|
24
|
+
rotation: number[];
|
|
25
|
+
}>): Promise<any[]>;
|
|
26
|
+
loadItem(url: string, offset?: {
|
|
27
|
+
position: number[];
|
|
28
|
+
rotation: number[];
|
|
29
|
+
}): Promise<any>;
|
|
25
30
|
getDigitalItem(url: string): any | null;
|
|
26
31
|
pause(): void;
|
|
27
32
|
continue(): void;
|
|
@@ -31,4 +36,5 @@ export declare class DigitalPlayground {
|
|
|
31
36
|
* 销毁 playground
|
|
32
37
|
*/
|
|
33
38
|
dispose(): void;
|
|
39
|
+
private loadGLTF;
|
|
34
40
|
}
|
|
@@ -1,127 +1,131 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var m = (o, t,
|
|
4
|
-
var
|
|
5
|
-
var
|
|
1
|
+
var g = Object.defineProperty;
|
|
2
|
+
var u = (o, t, i) => t in o ? g(o, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : o[t] = i;
|
|
3
|
+
var m = (o, t, i) => (u(o, typeof t != "symbol" ? t + "" : t, i), i);
|
|
4
|
+
var p = (o, t, i) => new Promise((e, a) => {
|
|
5
|
+
var r = (l) => {
|
|
6
6
|
try {
|
|
7
|
-
|
|
8
|
-
} catch (
|
|
9
|
-
|
|
7
|
+
s(i.next(l));
|
|
8
|
+
} catch (h) {
|
|
9
|
+
a(h);
|
|
10
10
|
}
|
|
11
|
-
},
|
|
11
|
+
}, n = (l) => {
|
|
12
12
|
try {
|
|
13
|
-
|
|
14
|
-
} catch (
|
|
15
|
-
|
|
13
|
+
s(i.throw(l));
|
|
14
|
+
} catch (h) {
|
|
15
|
+
a(h);
|
|
16
16
|
}
|
|
17
|
-
},
|
|
18
|
-
|
|
17
|
+
}, s = (l) => l.done ? e(l.value) : Promise.resolve(l.value).then(r, n);
|
|
18
|
+
s((i = i.apply(o, t)).next());
|
|
19
19
|
});
|
|
20
|
-
import
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import "
|
|
20
|
+
import * as d from "three";
|
|
21
|
+
import { GLTFLoader as M } from "@realsee/five/gltf-loader";
|
|
22
|
+
import { DigitalHuman as y } from "./DigitalHuman.js";
|
|
23
|
+
import { loadGltf as A } from "@realsee/five";
|
|
24
24
|
import "./DigitalStateMachine.js";
|
|
25
25
|
import "./Trace.js";
|
|
26
|
-
class
|
|
26
|
+
class T {
|
|
27
27
|
constructor(t = !1) {
|
|
28
28
|
m(this, "gltfLoader");
|
|
29
|
+
m(this, "script");
|
|
30
|
+
m(this, "currentChapter");
|
|
29
31
|
m(this, "digitalHumanMap");
|
|
30
32
|
m(this, "digitalItemMap");
|
|
31
33
|
m(this, "skeletalAnimationMap");
|
|
32
|
-
m(this, "script");
|
|
33
|
-
m(this, "currentChapter");
|
|
34
34
|
m(this, "debugMode");
|
|
35
|
-
this.gltfLoader = new
|
|
36
|
-
}
|
|
37
|
-
loadGLTF(t) {
|
|
38
|
-
return M(t).then((e) => {
|
|
39
|
-
const a = e == null ? void 0 : e.upAxis;
|
|
40
|
-
return e && a === "Z" && e.scene && (e.scene.rotateX(-Math.PI / 2), e.scene.updateMatrixWorld(!0)), e;
|
|
41
|
-
});
|
|
35
|
+
this.gltfLoader = new M(), this.digitalHumanMap = /* @__PURE__ */ new Map(), this.digitalItemMap = /* @__PURE__ */ new Map(), this.skeletalAnimationMap = /* @__PURE__ */ new Map(), this.script = null, this.currentChapter = null, this.debugMode = t;
|
|
42
36
|
}
|
|
43
37
|
setScript(t) {
|
|
44
38
|
this.script = t;
|
|
45
39
|
}
|
|
46
|
-
loadModel(t,
|
|
47
|
-
return
|
|
48
|
-
const
|
|
49
|
-
if (this.digitalHumanMap.has(
|
|
50
|
-
const
|
|
51
|
-
return Promise.resolve(
|
|
40
|
+
loadModel(t, i) {
|
|
41
|
+
return p(this, null, function* () {
|
|
42
|
+
const e = i ? `${t}_${i}` : t;
|
|
43
|
+
if (this.digitalHumanMap.has(e)) {
|
|
44
|
+
const a = this.digitalHumanMap.get(e);
|
|
45
|
+
return Promise.resolve(a);
|
|
52
46
|
} else
|
|
53
|
-
return new Promise((
|
|
54
|
-
t.endsWith(".gltf") || t.endsWith(".glb") ? this.loadGLTF(t).then((
|
|
55
|
-
const
|
|
56
|
-
this.digitalHumanMap.set(
|
|
57
|
-
}) :
|
|
47
|
+
return new Promise((a, r) => {
|
|
48
|
+
t.endsWith(".gltf") || t.endsWith(".glb") ? this.loadGLTF(t).then((n) => {
|
|
49
|
+
const s = n.scene, l = new y(s, this);
|
|
50
|
+
this.digitalHumanMap.set(e, l), a(l);
|
|
51
|
+
}) : r(new Error("不支持的模型格式"));
|
|
58
52
|
});
|
|
59
53
|
});
|
|
60
54
|
}
|
|
61
|
-
loadModels(t,
|
|
62
|
-
return
|
|
63
|
-
return
|
|
55
|
+
loadModels(t, i) {
|
|
56
|
+
return p(this, null, function* () {
|
|
57
|
+
return i && i.length === t.length ? Promise.all(t.map((e, a) => this.loadModel(e, i[a]))) : Promise.all(t.map((e) => this.loadModel(e)));
|
|
64
58
|
});
|
|
65
59
|
}
|
|
66
60
|
// 加载骨骼动画,暂且认为一个glb只包含一个骨骼动画
|
|
67
61
|
loadAnimation(t) {
|
|
68
|
-
return
|
|
62
|
+
return p(this, null, function* () {
|
|
69
63
|
if (this.skeletalAnimationMap.has(t)) {
|
|
70
|
-
const
|
|
71
|
-
return Promise.resolve(
|
|
64
|
+
const i = this.skeletalAnimationMap.get(t);
|
|
65
|
+
return Promise.resolve(i);
|
|
72
66
|
} else
|
|
73
|
-
return new Promise((
|
|
74
|
-
this.loadGLTF(t).then((
|
|
75
|
-
const
|
|
76
|
-
this.skeletalAnimationMap.set(t,
|
|
67
|
+
return new Promise((i, e) => {
|
|
68
|
+
this.loadGLTF(t).then((a) => {
|
|
69
|
+
const n = a.animations[0];
|
|
70
|
+
this.skeletalAnimationMap.set(t, n), i(n);
|
|
77
71
|
});
|
|
78
72
|
});
|
|
79
73
|
});
|
|
80
74
|
}
|
|
81
75
|
loadAnimations(t) {
|
|
82
|
-
return
|
|
83
|
-
return Promise.all(t.map((
|
|
76
|
+
return p(this, null, function* () {
|
|
77
|
+
return Promise.all(t.map((i) => this.loadAnimation(i)));
|
|
84
78
|
});
|
|
85
79
|
}
|
|
86
80
|
getAnimation(t) {
|
|
87
81
|
return this.skeletalAnimationMap.get(t) || null;
|
|
88
82
|
}
|
|
89
|
-
getDigitalHuman(t,
|
|
90
|
-
const
|
|
91
|
-
return this.digitalHumanMap.get(
|
|
83
|
+
getDigitalHuman(t, i) {
|
|
84
|
+
const e = i ? `${t}_${i}` : t;
|
|
85
|
+
return this.digitalHumanMap.get(e) || null;
|
|
92
86
|
}
|
|
93
87
|
playByChapter(t) {
|
|
94
|
-
return
|
|
88
|
+
return p(this, null, function* () {
|
|
95
89
|
if (!t || !Array.isArray(t.players))
|
|
96
90
|
throw new Error("Invalid chapter: chapter or chapter.players is undefined");
|
|
97
91
|
this.currentChapter = t;
|
|
98
|
-
const
|
|
99
|
-
this.digitalHumanMap.forEach((
|
|
100
|
-
|
|
92
|
+
const i = t.players.filter((a) => a.type === "model");
|
|
93
|
+
this.digitalHumanMap.forEach((a) => {
|
|
94
|
+
a.model.visible = !1, a.container.visible = !1;
|
|
101
95
|
});
|
|
102
|
-
const
|
|
103
|
-
for (let
|
|
104
|
-
const
|
|
105
|
-
|
|
96
|
+
const e = [];
|
|
97
|
+
for (let a = 0; a < i.length; a++) {
|
|
98
|
+
const r = i[a], n = `${r.model}_${r.id}`, s = this.digitalHumanMap.get(n);
|
|
99
|
+
s && (s.model.visible = !0, s.container.visible = !0, e.push(s.play({ keyframes: r.keyframes, items: [], effects: [] })));
|
|
106
100
|
}
|
|
107
|
-
return Promise.all(
|
|
101
|
+
return Promise.all(e);
|
|
108
102
|
});
|
|
109
103
|
}
|
|
110
|
-
loadItems(t) {
|
|
111
|
-
return
|
|
112
|
-
return Promise.all(t.map((e) => this.loadItem(e)));
|
|
104
|
+
loadItems(t, i) {
|
|
105
|
+
return p(this, null, function* () {
|
|
106
|
+
return Promise.all(t.map((e) => this.loadItem(e, i == null ? void 0 : i.get(e))));
|
|
113
107
|
});
|
|
114
108
|
}
|
|
115
|
-
loadItem(t) {
|
|
116
|
-
return
|
|
109
|
+
loadItem(t, i) {
|
|
110
|
+
return p(this, null, function* () {
|
|
117
111
|
if (this.digitalItemMap.has(t)) {
|
|
118
112
|
const e = this.digitalItemMap.get(t);
|
|
119
113
|
return Promise.resolve(e);
|
|
120
114
|
} else
|
|
121
115
|
return new Promise((e, a) => {
|
|
122
|
-
t.endsWith(".gltf") || t.endsWith(".glb") ? this.loadGLTF(t).then((
|
|
123
|
-
const
|
|
124
|
-
|
|
116
|
+
t.endsWith(".gltf") || t.endsWith(".glb") ? this.loadGLTF(t).then((r) => {
|
|
117
|
+
const n = r.scene;
|
|
118
|
+
if (i && (i != null && i.position) && (i != null && i.rotation)) {
|
|
119
|
+
const [s, l, h] = i.position;
|
|
120
|
+
n.position.set(s * 0.01, -l * 0.01, -h * 0.01);
|
|
121
|
+
const c = new d.Euler(
|
|
122
|
+
d.MathUtils.degToRad(i.rotation[0]),
|
|
123
|
+
d.MathUtils.degToRad(i.rotation[1]),
|
|
124
|
+
d.MathUtils.degToRad(i.rotation[2])
|
|
125
|
+
);
|
|
126
|
+
n.quaternion.setFromEuler(c);
|
|
127
|
+
}
|
|
128
|
+
this.digitalItemMap.set(t, n), e(n);
|
|
125
129
|
}) : a(new Error("不支持的模型格式"));
|
|
126
130
|
});
|
|
127
131
|
});
|
|
@@ -145,8 +149,8 @@ class w {
|
|
|
145
149
|
});
|
|
146
150
|
}
|
|
147
151
|
setTimelineTo(t) {
|
|
148
|
-
this.digitalHumanMap.forEach((
|
|
149
|
-
|
|
152
|
+
this.digitalHumanMap.forEach((i) => {
|
|
153
|
+
i.state.currentTime = t;
|
|
150
154
|
});
|
|
151
155
|
}
|
|
152
156
|
/**
|
|
@@ -157,7 +161,13 @@ class w {
|
|
|
157
161
|
t.reset();
|
|
158
162
|
}), this.digitalHumanMap.clear(), this.digitalItemMap.clear(), this.skeletalAnimationMap.clear();
|
|
159
163
|
}
|
|
164
|
+
loadGLTF(t) {
|
|
165
|
+
return A(t).then((i) => {
|
|
166
|
+
const e = i == null ? void 0 : i.upAxis;
|
|
167
|
+
return i && e === "Z" && i.scene && (i.scene.rotateX(-Math.PI / 2), i.scene.updateMatrixWorld(!0)), i;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
160
170
|
}
|
|
161
171
|
export {
|
|
162
|
-
|
|
172
|
+
T as DigitalPlayground
|
|
163
173
|
};
|
|
@@ -78,6 +78,13 @@ interface DigitalModelKeyframe {
|
|
|
78
78
|
repeat: boolean;
|
|
79
79
|
isOver?: boolean;
|
|
80
80
|
switchDuration?: number;
|
|
81
|
+
duration?: number;
|
|
82
|
+
item?: {
|
|
83
|
+
url: string;
|
|
84
|
+
position?: number[];
|
|
85
|
+
name?: string;
|
|
86
|
+
rotation?: number[];
|
|
87
|
+
};
|
|
81
88
|
};
|
|
82
89
|
position: number[];
|
|
83
90
|
interpolationType?: 'linear' | 'parabola';
|