@realsee/dnalogel 2.24.0 → 2.24.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/dist/PanoMeasurePlugin/Controller/BaseController.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Model/area.d.ts +1 -1
- package/dist/PanoMeasurePlugin/typings/index.d.ts +4 -0
- package/dist/PanoTagPlugin/utils/model/mediaPlane.d.ts +1 -0
- package/dist/index.cjs.js +23 -23
- package/dist/index.js +366 -343
- package/dist/index.umd.js +29 -29
- package/docs/assets/search.js +1 -1
- package/docs/classes/CSS3DRender.html +30 -30
- package/docs/classes/CruisePluginController.html +25 -25
- package/docs/classes/GuideLineItem.GuideLineItem.html +19 -19
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +34 -34
- package/docs/classes/Magnifier.html +19 -19
- package/docs/classes/ModelRoomLabelController.html +10 -10
- package/docs/classes/Object3DHelperController.html +24 -24
- package/docs/classes/PaintBrush.html +14 -14
- package/docs/classes/PanoMeasurePluginLine.html +26 -26
- package/docs/classes/PanoMeasurePluginModel.html +26 -26
- package/docs/classes/PanoMeasurePluginPoint.html +13 -13
- package/docs/classes/PanoMeasurePluginPolyline.html +26 -26
- package/docs/classes/PanoTagPluginController.html +46 -46
- package/docs/classes/Util.BetterTween.html +8 -8
- package/docs/classes/Util.Interval.html +11 -11
- package/docs/classes/Util.Magnifier.html +19 -19
- package/docs/classes/Util.PointDomHelper.html +10 -10
- package/docs/classes/Util.PointHelper.html +10 -10
- package/docs/classes/Util.PointSelectorHelper.html +15 -15
- package/docs/classes/Util.Rectangle.html +12 -12
- package/docs/enums/CameraMovementEffect.html +6 -6
- package/docs/enums/ContentType.html +19 -19
- package/docs/enums/DIRECTION.html +8 -8
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +8 -8
- package/docs/enums/DimensionType.html +6 -6
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +7 -7
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +8 -8
- package/docs/enums/PaintBrushTypeEnum.html +7 -7
- package/docs/enums/PointType.html +6 -6
- package/docs/enums/Rotation.html +7 -7
- package/docs/functions/CSS3DRenderPlugin.html +3 -3
- package/docs/functions/CameraMovementPlugin.html +3 -3
- package/docs/functions/CruisePlugin.html +3 -3
- package/docs/functions/GuideLinePlugin.html +4 -4
- package/docs/functions/ItemLabelPlugin.html +3 -3
- package/docs/functions/MapviewFloorplanPlugin.html +3 -3
- package/docs/functions/ModelChassisCompassPlugin.html +3 -3
- package/docs/functions/ModelEntryDoorGuidePlugin.html +3 -3
- package/docs/functions/ModelFloorplanPlugin.html +3 -3
- package/docs/functions/ModelItemLabelPlugin.html +3 -3
- package/docs/functions/ModelRoomLabelPlugin.html +3 -3
- package/docs/functions/ModelTVVideoPlugin.html +3 -3
- package/docs/functions/ModelViewPlugin.html +3 -3
- package/docs/functions/Object3DHelperPlugin.html +3 -3
- package/docs/functions/PanoCompassPlugin.html +3 -3
- package/docs/functions/PanoCursorRaycasterPlugin.html +3 -3
- package/docs/functions/PanoDoorLabelPlugin.html +3 -3
- package/docs/functions/PanoFloorplanRadarPlugin.html +3 -3
- package/docs/functions/PanoMeasurePlugin.html +3 -3
- package/docs/functions/PanoRulerPlugin.html +3 -3
- package/docs/functions/PanoRulerProPlugin.html +3 -3
- package/docs/functions/PanoSpatialTagPlugin.html +3 -3
- package/docs/functions/PanoTagPlugin.html +3 -3
- package/docs/functions/PanoVideoPlugin.html +3 -3
- package/docs/functions/TopviewFloorplanPlugin.html +3 -3
- package/docs/functions/Util.absoluteUrl.html +4 -4
- package/docs/functions/Util.getCoordsFromClient.html +4 -4
- package/docs/functions/Util.getCoordsFromElement.html +4 -4
- package/docs/functions/Util.getFrameTime.html +4 -4
- package/docs/functions/Util.getIntersectFromRelativePosition.html +4 -4
- package/docs/functions/Util.getRaycasterFromFivePointer.html +4 -4
- package/docs/functions/Util.isAbsoluteURL.html +4 -4
- package/docs/functions/Util.isModelLike.html +4 -4
- package/docs/functions/Util.isNil.html +4 -4
- package/docs/functions/Util.isPanoramaLike.html +4 -4
- package/docs/functions/Util.nextFrame.html +4 -4
- package/docs/functions/Util.notNil.html +4 -4
- package/docs/functions/Util.requestAnimationFrameInterval.html +4 -4
- package/docs/functions/Util.tweenProgress.html +4 -4
- package/docs/functions/Util.uuid.html +4 -4
- package/docs/functions/pluginFlag.html +4 -4
- package/docs/index.html +4 -4
- package/docs/interfaces/AddTagConfig.html +5 -5
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +10 -10
- package/docs/interfaces/CSS3DRenderPluginState.html +7 -7
- package/docs/interfaces/CameraMovementPluginExportType.html +6 -6
- package/docs/interfaces/CruisePluginTypes.Config.html +7 -7
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +11 -11
- package/docs/interfaces/CruisePluginTypes.EventMap.html +19 -19
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +11 -11
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +13 -13
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +13 -13
- package/docs/interfaces/CruisePluginTypes.PluginData.html +8 -8
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +6 -6
- package/docs/interfaces/CruisePluginTypes.PluginState.html +10 -10
- package/docs/interfaces/EventMap.html +14 -14
- package/docs/interfaces/FloorplanBounding.html +7 -7
- package/docs/interfaces/FloorplanData.html +9 -9
- package/docs/interfaces/FloorplanEntrance.html +10 -10
- package/docs/interfaces/FloorplanExtraObject.html +9 -9
- package/docs/interfaces/FloorplanExtraObject3D.html +7 -7
- package/docs/interfaces/FloorplanFloorData.html +8 -8
- package/docs/interfaces/FloorplanImagePosition.html +6 -6
- package/docs/interfaces/FloorplanObserver.html +8 -8
- package/docs/interfaces/FloorplanOutlineItem.html +8 -8
- package/docs/interfaces/FloorplanPosition.html +6 -6
- package/docs/interfaces/FloorplanRoomItem.html +12 -12
- package/docs/interfaces/FloorplanRoomLabelItem.html +6 -6
- package/docs/interfaces/FloorplanServerBounding.html +7 -7
- package/docs/interfaces/FloorplanServerComputedData.html +9 -9
- package/docs/interfaces/FloorplanServerData.html +6 -6
- package/docs/interfaces/FloorplanServerDoorItem.html +9 -9
- package/docs/interfaces/FloorplanServerDoorPosition.html +7 -7
- package/docs/interfaces/FloorplanServerEntrance.html +10 -10
- package/docs/interfaces/FloorplanServerFloorData.html +8 -8
- package/docs/interfaces/FloorplanServerImagePosition.html +6 -6
- package/docs/interfaces/FloorplanServerObserver.html +8 -8
- package/docs/interfaces/FloorplanServerOutlineItem.html +8 -8
- package/docs/interfaces/FloorplanServerPosition.html +6 -6
- package/docs/interfaces/FloorplanServerRoomItem.html +13 -13
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +6 -6
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +7 -7
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +9 -9
- package/docs/interfaces/GuideLinePluginType.EventMap.html +12 -12
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +7 -7
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +5 -5
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +12 -12
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +7 -7
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +17 -17
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +6 -6
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +17 -17
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +4 -4
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +6 -6
- package/docs/interfaces/GuideLinePluginType.PluginState.html +7 -7
- package/docs/interfaces/GuideLinePluginType.Route.html +10 -10
- package/docs/interfaces/GuideLinePluginType.RouteConfig.html +8 -8
- package/docs/interfaces/HelperOffset.html +7 -7
- package/docs/interfaces/ImagePlaneGroup.html +5 -5
- package/docs/interfaces/ItemLabelPluginData.html +5 -5
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +10 -10
- package/docs/interfaces/ItemLabelPluginParametersType.html +8 -8
- package/docs/interfaces/MinMax.html +6 -6
- package/docs/interfaces/ModelChassisCompassPluginData.html +6 -6
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +7 -7
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +6 -6
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +7 -7
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +7 -7
- package/docs/interfaces/ModelItemLabelPluginData.html +5 -5
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +10 -10
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +6 -6
- package/docs/interfaces/ModelRoomLabelPluginData.html +5 -5
- package/docs/interfaces/ModelTVVideoPluginData.html +8 -8
- package/docs/interfaces/ModelTVVideoPluginExportType.html +7 -7
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +5 -5
- package/docs/interfaces/ModelViewPluginExportType.html +10 -10
- package/docs/interfaces/Object3DHelperState.html +7 -7
- package/docs/interfaces/ObjectHelperControllers.html +8 -8
- package/docs/interfaces/PaintBrushAction.html +11 -11
- package/docs/interfaces/PaintBrushConfigs.html +11 -11
- package/docs/interfaces/PaintBrushState.html +9 -9
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +9 -9
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +4 -4
- package/docs/interfaces/PanoMeasureParameterType.html +42 -17
- package/docs/interfaces/PanoMeasurePluginLineJson.html +7 -7
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +6 -6
- package/docs/interfaces/PanoMeasurePluginPointJson.html +6 -6
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +7 -7
- package/docs/interfaces/PanoRulerPluginExportType.html +9 -9
- package/docs/interfaces/PanoRulerPluginOptions.html +6 -6
- package/docs/interfaces/PanoRulerPluginParameterType.html +7 -7
- package/docs/interfaces/PanoRulerProPluginExportType.html +8 -8
- package/docs/interfaces/PanoRulerProPluginOptions.html +6 -6
- package/docs/interfaces/PanoRulerProPluginParameterType.html +6 -6
- package/docs/interfaces/PanoRulerProPluginState.html +7 -7
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +4 -4
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +4 -4
- package/docs/interfaces/PanoSpatialTagPluginData.html +10 -10
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +9 -9
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +12 -12
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +9 -9
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +12 -12
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +10 -10
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +9 -9
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +5 -5
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +7 -7
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +5 -5
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +8 -8
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +5 -5
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +7 -7
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +9 -9
- package/docs/interfaces/Point.html +7 -7
- package/docs/interfaces/Room.html +8 -8
- package/docs/interfaces/RoomInfo.html +6 -6
- package/docs/interfaces/RoomLabel.html +13 -13
- package/docs/interfaces/RoomRules.html +4 -4
- package/docs/interfaces/Rooms.html +4 -4
- package/docs/interfaces/Scissor.html +8 -8
- package/docs/interfaces/State.html +7 -7
- package/docs/interfaces/TagCacheInterface.html +11 -11
- package/docs/interfaces/TagConfig.html +12 -12
- package/docs/interfaces/TagGLTFObjectGroup.html +5 -5
- package/docs/interfaces/TagIconUrl.html +11 -11
- package/docs/interfaces/TagObjectGroup.html +5 -5
- package/docs/interfaces/TagStyle.html +5 -5
- package/docs/interfaces/Tags.html +8 -8
- package/docs/interfaces/TemporaryState.html +5 -5
- package/docs/interfaces/Util.MagnifierParameter.html +10 -10
- package/docs/interfaces/Util.MouseGroupParameter.html +7 -7
- package/docs/interfaces/Util.PointIntersection.html +7 -7
- package/docs/modules/CruisePluginTypes.html +4 -4
- package/docs/modules/GuideLineItem.html +4 -4
- package/docs/modules/GuideLineModeItem.html +4 -4
- package/docs/modules/GuideLinePluginType.html +4 -4
- package/docs/modules/PanoVideoPluginType.html +4 -4
- package/docs/modules/Util.html +4 -4
- package/docs/modules.html +4 -4
- package/docs/types/ArrayPosition.html +4 -4
- package/docs/types/AudioAppearance.html +4 -4
- package/docs/types/AudioTagTypeConfigKey.html +4 -4
- package/docs/types/CSS3DRenderExportType.html +4 -4
- package/docs/types/CSS3DRenderPluginExportType.html +4 -4
- package/docs/types/CSS3DRenderPluginParameterType.html +4 -4
- package/docs/types/ClassFunctionParameters.html +4 -4
- package/docs/types/Color.html +4 -4
- package/docs/types/ContentTypeConfigKey.html +4 -4
- package/docs/types/ContentTypeConfigKeySplit.html +4 -4
- package/docs/types/ContentTypeMap.html +4 -4
- package/docs/types/Create3DDomContainerReturnType.html +4 -4
- package/docs/types/Create3DElementReturnType.html +4 -4
- package/docs/types/CruisePluginExportType.html +4 -4
- package/docs/types/CruisePluginTypes.CruiseData.html +4 -4
- package/docs/types/CruisePluginTypes.MoveEffect.html +4 -4
- package/docs/types/DeprecatedMediaPlaneProperty.html +4 -4
- package/docs/types/DeprecatedTagProperty.html +4 -4
- package/docs/types/Direction-1.html +4 -4
- package/docs/types/Direction4.html +4 -4
- package/docs/types/ElementRenderer.html +4 -4
- package/docs/types/FloorplanRuleLabels.html +4 -4
- package/docs/types/FloorplanServerRuleLabels.html +4 -4
- package/docs/types/GuideLinePluginExportType.html +4 -4
- package/docs/types/GuideLinePluginType.GuideLineItem.html +4 -4
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +4 -4
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +4 -4
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +4 -4
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +4 -4
- package/docs/types/GuideLinePluginType.PathItem.html +4 -4
- package/docs/types/GuideLinePluginType.PluginData.html +4 -4
- package/docs/types/HelperEventMap.html +4 -4
- package/docs/types/LoadTagConfig.html +4 -4
- package/docs/types/MapviewFloorplanPluginParameterType.html +4 -4
- package/docs/types/MapviewFloorplanPluginReturnType.html +4 -4
- package/docs/types/MediaData.html +4 -4
- package/docs/types/MediaStore.html +4 -4
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +4 -4
- package/docs/types/ModelFloorplanPluginParameterType.html +4 -4
- package/docs/types/ModelFloorplanPluginReturnType.html +4 -4
- package/docs/types/ModelRoomLabelPluginParameters.html +4 -4
- package/docs/types/ModelRoomLabelPluginReturnType.html +4 -4
- package/docs/types/MoveArgs.html +4 -4
- package/docs/types/MoveOpts.html +4 -4
- package/docs/types/Object3DHelperEventMap.html +4 -4
- package/docs/types/ObjectFit.html +4 -4
- package/docs/types/PaintBrushEventMap.html +4 -4
- package/docs/types/PanoCompassPluginData.html +4 -4
- package/docs/types/PanoCompassPluginExportType.html +4 -4
- package/docs/types/PanoCompassPluginParameterType.html +4 -4
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +4 -4
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +4 -4
- package/docs/types/PanoIndex.html +4 -4
- package/docs/types/PanoMeasurePluginEvent.html +4 -4
- package/docs/types/PanoMeasureReturnType.html +4 -4
- package/docs/types/PanoSpatialTagPluginId.html +4 -4
- package/docs/types/PanoTagPluginExportInterface.html +4 -4
- package/docs/types/PanoTagPluginParamsInterface.html +4 -4
- package/docs/types/PanoVideoPluginParameterType.html +4 -4
- package/docs/types/PanoVideoPluginReturnType.html +4 -4
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +4 -4
- package/docs/types/PlaneTag.html +4 -4
- package/docs/types/Point2DTag.html +4 -4
- package/docs/types/Point3DTag.html +4 -4
- package/docs/types/PointTag.html +4 -4
- package/docs/types/PointTagInstance.html +4 -4
- package/docs/types/Position.html +4 -4
- package/docs/types/RotateArgs.html +4 -4
- package/docs/types/RotateOpts.html +4 -4
- package/docs/types/RuleLabelsKey.html +4 -4
- package/docs/types/RuleLabelsValue.html +4 -4
- package/docs/types/StickType.html +4 -4
- package/docs/types/Tag.html +4 -4
- package/docs/types/Tag2D.html +4 -4
- package/docs/types/Tag3D.html +4 -4
- package/docs/types/TagContentType.html +4 -4
- package/docs/types/TagDimensionType.html +4 -4
- package/docs/types/TagElement.html +4 -4
- package/docs/types/TagEvents.html +4 -4
- package/docs/types/TagGLTFObject.html +4 -4
- package/docs/types/TagHooks.html +4 -4
- package/docs/types/TagId.html +4 -4
- package/docs/types/TagInstance.html +4 -4
- package/docs/types/TagPointType.html +4 -4
- package/docs/types/TagRendererMap.html +4 -4
- package/docs/types/TopviewFloorplanPluginParameterType.html +4 -4
- package/docs/types/TopviewFloorplanPluginReturnType.html +4 -4
- package/docs/types/WorkCode.html +4 -4
- package/docs/variables/FLOOR_TYPE_MAP.html +4 -4
- package/docs/variables/PLUGIN.html +4 -4
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +4 -4
- package/docs/variables/ROOM_TYPE_MAP.html +4 -4
- package/docs/variables/itemLabelPluginServerParams.html +4 -4
- package/docs/variables/modelItemLabelPluginServerParams.html +4 -4
- package/docs/variables/modelRoomLabelPluginServerParams.html +4 -4
- package/libs/PanoMeasurePlugin/Components/Controller0.js +32 -31
- package/libs/PanoMeasurePlugin/Components/Controller1.js +14 -13
- package/libs/PanoMeasurePlugin/Controller/BaseController.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Controller/BaseController.js +14 -7
- package/libs/PanoMeasurePlugin/Controller/EditController.js +12 -11
- package/libs/PanoMeasurePlugin/Controller/WatchController.js +74 -59
- package/libs/PanoMeasurePlugin/Controller/index.js +18 -17
- package/libs/PanoMeasurePlugin/Model/area.d.ts +1 -1
- package/libs/PanoMeasurePlugin/Model/area.js +51 -35
- package/libs/PanoMeasurePlugin/Modules/UIController/index.js +14 -13
- package/libs/PanoMeasurePlugin/index.js +25 -24
- package/libs/PanoMeasurePlugin/typings/index.d.ts +4 -0
- package/libs/PanoMeasurePlugin/utils/dom/areaDom.js +47 -29
- package/libs/PanoTagPlugin/utils/model/mediaPlane.d.ts +1 -0
- package/libs/PanoTagPlugin/utils/model/mediaPlane.js +83 -68
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.js +1 -1
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var ff = Object.defineProperty, mf = Object.defineProperties;
|
|
2
|
+
var gf = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var il = Object.getOwnPropertySymbols;
|
|
4
|
-
var
|
|
5
|
-
var Ir = (i, t, e) => t in i ?
|
|
4
|
+
var pf = Object.prototype.hasOwnProperty, Af = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var Ir = (i, t, e) => t in i ? ff(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e, N = (i, t) => {
|
|
6
6
|
for (var e in t || (t = {}))
|
|
7
|
-
|
|
7
|
+
pf.call(t, e) && Ir(i, e, t[e]);
|
|
8
8
|
if (il)
|
|
9
9
|
for (var e of il(t))
|
|
10
|
-
|
|
10
|
+
Af.call(t, e) && Ir(i, e, t[e]);
|
|
11
11
|
return i;
|
|
12
|
-
}, Ae = (i, t) =>
|
|
12
|
+
}, Ae = (i, t) => mf(i, gf(t));
|
|
13
13
|
var f = (i, t, e) => (Ir(i, typeof t != "symbol" ? t + "" : t, e), e);
|
|
14
14
|
var U = (i, t, e) => new Promise((n, s) => {
|
|
15
15
|
var o = (l) => {
|
|
@@ -27,19 +27,19 @@ var U = (i, t, e) => new Promise((n, s) => {
|
|
|
27
27
|
}, a = (l) => l.done ? n(l.value) : Promise.resolve(l.value).then(o, r);
|
|
28
28
|
a((e = e.apply(i, t)).next());
|
|
29
29
|
});
|
|
30
|
-
import { Camera as
|
|
30
|
+
import { Camera as vf, Subscribe as mt, Five as at } from "@realsee/five";
|
|
31
31
|
import * as E from "three";
|
|
32
|
-
import { Vector3 as ie, Group as ri, Raycaster as bn, MeshBasicMaterial as rs, CanvasTexture as
|
|
33
|
-
import { CSS3DRenderer as
|
|
32
|
+
import { Vector3 as ie, Group as ri, Raycaster as bn, MeshBasicMaterial as rs, CanvasTexture as bf, AnimationMixer as yf, Color as bi, TextureLoader as ph, Vector2 as et, Object3D as Ah, Face3 as wf, PlaneGeometry as Cf, sRGBEncoding as If, LinearFilter as Ur, Mesh as ts, CurvePath as Pf, LineCurve3 as Ef, TubeGeometry as kf, ShaderMaterial as vh, SphereGeometry as Mf, DoubleSide as bh, RingGeometry as xf, Quaternion as Aa, Euler as sl, Matrix4 as Ji, VideoTexture as Df, Vector4 as Sf, SphereBufferGeometry as Tf } from "three";
|
|
33
|
+
import { CSS3DRenderer as Lf, CSS3DObject as Xr } from "three/examples/jsm/renderers/CSS3DRenderer";
|
|
34
34
|
import fs from "hammerjs";
|
|
35
35
|
import { Line as yh } from "@realsee/five/line";
|
|
36
36
|
import { FBXLoader as wh } from "three/examples/jsm/loaders/FBXLoader";
|
|
37
|
-
import
|
|
37
|
+
import jf from "earcut";
|
|
38
38
|
import ol from "animejs";
|
|
39
|
-
import { GLTFLoader as
|
|
40
|
-
function
|
|
39
|
+
import { GLTFLoader as zf } from "@realsee/five/gltf-loader";
|
|
40
|
+
function Of() {
|
|
41
41
|
console.debug(
|
|
42
|
-
"%c %c@realsee/dnalogel %cv2.24.
|
|
42
|
+
"%c %c@realsee/dnalogel %cv2.24.2",
|
|
43
43
|
[
|
|
44
44
|
"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=')",
|
|
45
45
|
"background-repeat: no-repeat",
|
|
@@ -50,7 +50,7 @@ function zf() {
|
|
|
50
50
|
"background-color: #12ce9b;color:black;padding:0 6px;border-radius: 3px"
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
|
-
function
|
|
53
|
+
function Bf() {
|
|
54
54
|
const i = typeof OffscreenCanvas != "undefined", t = i && new OffscreenCanvas(1, 1).getContext("webgl") !== null;
|
|
55
55
|
i && !t && Object.assign(window, {
|
|
56
56
|
OffscreenCanvas: function(e, n) {
|
|
@@ -64,7 +64,7 @@ function Ch() {
|
|
|
64
64
|
const rl = () => Promise.resolve(), al = {
|
|
65
65
|
__queue: Promise.resolve()
|
|
66
66
|
};
|
|
67
|
-
function
|
|
67
|
+
function Rf(i = rl) {
|
|
68
68
|
al.__queue = al.__queue.then(i).catch(rl);
|
|
69
69
|
}
|
|
70
70
|
function Ts(i, t, e) {
|
|
@@ -84,14 +84,14 @@ function Ls(i) {
|
|
|
84
84
|
};
|
|
85
85
|
return { control: e, end: n };
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function Vf(i, t, e = Ch) {
|
|
88
88
|
new Promise((n) => {
|
|
89
89
|
setTimeout(() => {
|
|
90
90
|
e(), n(!0);
|
|
91
91
|
}, t * i);
|
|
92
92
|
});
|
|
93
93
|
}
|
|
94
|
-
const
|
|
94
|
+
const Qf = window, ll = window.requestAnimationFrame || Qf.webkitRequestAnimationFrame || ((i) => setTimeout(i, 16));
|
|
95
95
|
function Js(i, t = 0) {
|
|
96
96
|
t <= 0 ? ll(i) : ll(() => Js(i, t - 1));
|
|
97
97
|
}
|
|
@@ -477,22 +477,22 @@ var jt = Object.freeze({
|
|
|
477
477
|
typeof n == "string" ? this._valuesStartRepeat[t] = this._valuesStartRepeat[t] + parseFloat(n) : this._valuesStartRepeat[t] = this._valuesEnd[t], this._valuesEnd[t] = e;
|
|
478
478
|
}, i;
|
|
479
479
|
}()
|
|
480
|
-
),
|
|
480
|
+
), Gf = "20.0.3", Nf = va.nextId, Wt = Zr, Hf = Wt.getAll.bind(Wt), _f = Wt.removeAll.bind(Wt), Wf = Wt.add.bind(Wt), Ph = Wt.remove.bind(Wt), Ff = Wt.update.bind(Wt), cl = {
|
|
481
481
|
Easing: jt,
|
|
482
482
|
Group: Ih,
|
|
483
483
|
Interpolation: Sn,
|
|
484
484
|
now: ni,
|
|
485
485
|
Sequence: va,
|
|
486
|
-
nextId:
|
|
486
|
+
nextId: Nf,
|
|
487
487
|
Tween: yo,
|
|
488
|
-
VERSION:
|
|
489
|
-
getAll:
|
|
490
|
-
removeAll:
|
|
491
|
-
add:
|
|
488
|
+
VERSION: Gf,
|
|
489
|
+
getAll: Hf,
|
|
490
|
+
removeAll: _f,
|
|
491
|
+
add: Wf,
|
|
492
492
|
remove: Ph,
|
|
493
|
-
update:
|
|
493
|
+
update: Ff
|
|
494
494
|
};
|
|
495
|
-
function
|
|
495
|
+
function Yf(i, t, e, n = jt.Linear.None) {
|
|
496
496
|
const s = new yo(i).to(t, e).easing(n).start();
|
|
497
497
|
function o(r) {
|
|
498
498
|
s.update(r) && requestAnimationFrame(o);
|
|
@@ -504,10 +504,10 @@ const ns = Symbol("$$PAINT_BRUSH_EVENT$$");
|
|
|
504
504
|
function js(i) {
|
|
505
505
|
return i[ns] || (i[ns] = {}), i[ns];
|
|
506
506
|
}
|
|
507
|
-
function
|
|
507
|
+
function Uf(i) {
|
|
508
508
|
i[ns] || delete i[ns];
|
|
509
509
|
}
|
|
510
|
-
let
|
|
510
|
+
let Xf = class {
|
|
511
511
|
/**
|
|
512
512
|
* 判断是否注册了事件
|
|
513
513
|
* @param name 事件类型
|
|
@@ -551,7 +551,7 @@ let Uf = class {
|
|
|
551
551
|
*/
|
|
552
552
|
off(t, e) {
|
|
553
553
|
if (t === void 0) {
|
|
554
|
-
|
|
554
|
+
Uf(this);
|
|
555
555
|
return;
|
|
556
556
|
}
|
|
557
557
|
const n = js(this);
|
|
@@ -587,7 +587,7 @@ function cn() {
|
|
|
587
587
|
function ct() {
|
|
588
588
|
return (cn() + cn() + "-" + cn() + "-4" + cn().substr(0, 3) + "-" + cn() + "-" + cn() + cn() + cn()).toLowerCase();
|
|
589
589
|
}
|
|
590
|
-
const
|
|
590
|
+
const Zf = `
|
|
591
591
|
<style type="text/css">
|
|
592
592
|
|
|
593
593
|
#_gl_paintBrush {
|
|
@@ -688,7 +688,7 @@ transition: all 500ms;
|
|
|
688
688
|
|
|
689
689
|
</style>
|
|
690
690
|
`;
|
|
691
|
-
let
|
|
691
|
+
let Jf = class extends Xf {
|
|
692
692
|
constructor(e) {
|
|
693
693
|
super();
|
|
694
694
|
f(this, "configs");
|
|
@@ -724,7 +724,7 @@ let Zf = class extends Uf {
|
|
|
724
724
|
const e = document.createElement("div");
|
|
725
725
|
e.id = "_gl_paintBrush", document.body.appendChild(e), this.container = e;
|
|
726
726
|
}
|
|
727
|
-
return this.container.innerHTML =
|
|
727
|
+
return this.container.innerHTML = Zf, this.container;
|
|
728
728
|
}
|
|
729
729
|
/**
|
|
730
730
|
*
|
|
@@ -909,7 +909,7 @@ let Zf = class extends Uf {
|
|
|
909
909
|
timestamp: s,
|
|
910
910
|
end: a === r - 1
|
|
911
911
|
};
|
|
912
|
-
|
|
912
|
+
Vf(a, 20, () => {
|
|
913
913
|
this.emit("stateChange", l, n);
|
|
914
914
|
});
|
|
915
915
|
}
|
|
@@ -938,7 +938,7 @@ let Zf = class extends Uf {
|
|
|
938
938
|
}
|
|
939
939
|
}
|
|
940
940
|
handleDrawLine(e, n, { withUndo: s = !1 }, o = Ch) {
|
|
941
|
-
!n || Object.prototype.toString.call(n) != "[object Object]" || Object.keys(n).length === 0 ||
|
|
941
|
+
!n || Object.prototype.toString.call(n) != "[object Object]" || Object.keys(n).length === 0 || Rf(() => new Promise((r) => {
|
|
942
942
|
if (s || (this.canvas[e] || (this.canvas[e] = this.initCanvas("_paintBrush-canvas--sync")), this.data[e] || (this.data[e] = []), this.data[e].push(n)), !this.canvas[e])
|
|
943
943
|
return;
|
|
944
944
|
const a = this.canvas[e].getContext("2d");
|
|
@@ -949,7 +949,7 @@ let Zf = class extends Uf {
|
|
|
949
949
|
if (a.strokeStyle = c, a.beginPath(), a.moveTo(u.x, u.y), d && !s) {
|
|
950
950
|
let A = [];
|
|
951
951
|
const p = this;
|
|
952
|
-
p.tween =
|
|
952
|
+
p.tween = Yf({ step: 0 }, { step: l.length - 1 }, d).onUpdate(({ step: g }) => {
|
|
953
953
|
var y;
|
|
954
954
|
if (p.tweening = !0, !p.ready)
|
|
955
955
|
return a.clearRect(0, 0, p.canvas[h].width, p.canvas[h].height), (y = p.tween) == null ? void 0 : y.stop();
|
|
@@ -1003,7 +1003,7 @@ class R2 {
|
|
|
1003
1003
|
onUndoText: "回退",
|
|
1004
1004
|
onExitText: "关闭"
|
|
1005
1005
|
}, t);
|
|
1006
|
-
this.controller = new
|
|
1006
|
+
this.controller = new Jf(e);
|
|
1007
1007
|
}
|
|
1008
1008
|
on(t, e) {
|
|
1009
1009
|
this.controller.on(t, e);
|
|
@@ -1054,7 +1054,7 @@ const V2 = (i, t) => {
|
|
|
1054
1054
|
lockedPanoIndex: null,
|
|
1055
1055
|
lockedLatitude: null,
|
|
1056
1056
|
lockedLongitude: null
|
|
1057
|
-
}), t == null ? void 0 : t.config), l = new E.Scene(), c = new
|
|
1057
|
+
}), t == null ? void 0 : t.config), l = new E.Scene(), c = new vf(60);
|
|
1058
1058
|
let d = new E.Object3D(), h, u;
|
|
1059
1059
|
{
|
|
1060
1060
|
const V = new E.DirectionalLight(16777215, 0.5);
|
|
@@ -1156,7 +1156,7 @@ function to(i, t) {
|
|
|
1156
1156
|
const e = Math.round(i);
|
|
1157
1157
|
return e % 2 === 0 ? e : e + (t != null && t.floor ? -1 : 1);
|
|
1158
1158
|
}
|
|
1159
|
-
function
|
|
1159
|
+
function qf(i, t, e = !0) {
|
|
1160
1160
|
if (!i)
|
|
1161
1161
|
return console.error("createResizeObserver: element is undefined"), { observe: () => {
|
|
1162
1162
|
}, unobserve: () => {
|
|
@@ -1174,7 +1174,7 @@ function Jf(i, t, e = !0) {
|
|
|
1174
1174
|
unobserve: () => s.unobserve(i)
|
|
1175
1175
|
};
|
|
1176
1176
|
}
|
|
1177
|
-
class dl extends
|
|
1177
|
+
class dl extends Lf {
|
|
1178
1178
|
constructor() {
|
|
1179
1179
|
super();
|
|
1180
1180
|
f(this, "wrapper");
|
|
@@ -1192,7 +1192,7 @@ class dl extends Tf {
|
|
|
1192
1192
|
}
|
|
1193
1193
|
appendToElement(e) {
|
|
1194
1194
|
e.appendChild(this.domElement);
|
|
1195
|
-
const n = (r, a) => this.setSize(r, a), { observe: s, unobserve: o } =
|
|
1195
|
+
const n = (r, a) => this.setSize(r, a), { observe: s, unobserve: o } = qf(e, n, !0);
|
|
1196
1196
|
s(), this.resizeDisoper = o, this.wrapper = e;
|
|
1197
1197
|
}
|
|
1198
1198
|
renderEveryFrame(e, n) {
|
|
@@ -1211,14 +1211,14 @@ class dl extends Tf {
|
|
|
1211
1211
|
this.stopRender(), (e = this.resizeDisoper) == null || e.call(this), this.domElement.remove();
|
|
1212
1212
|
}
|
|
1213
1213
|
}
|
|
1214
|
-
function
|
|
1214
|
+
function Kf(i) {
|
|
1215
1215
|
return typeof Symbol == "undefined" ? `$Symbol<${i}>$` : Symbol(i);
|
|
1216
1216
|
}
|
|
1217
|
-
const is =
|
|
1217
|
+
const is = Kf("$$EVENT$$");
|
|
1218
1218
|
function zs(i) {
|
|
1219
1219
|
return i[is] || (i[is] = {}), i[is];
|
|
1220
1220
|
}
|
|
1221
|
-
function
|
|
1221
|
+
function $f(i) {
|
|
1222
1222
|
i[is] || delete i[is];
|
|
1223
1223
|
}
|
|
1224
1224
|
class yi {
|
|
@@ -1265,7 +1265,7 @@ class yi {
|
|
|
1265
1265
|
*/
|
|
1266
1266
|
off(t, e) {
|
|
1267
1267
|
if (t === void 0) {
|
|
1268
|
-
|
|
1268
|
+
$f(this);
|
|
1269
1269
|
return;
|
|
1270
1270
|
}
|
|
1271
1271
|
const n = zs(this);
|
|
@@ -1295,8 +1295,8 @@ class yi {
|
|
|
1295
1295
|
return n;
|
|
1296
1296
|
}
|
|
1297
1297
|
}
|
|
1298
|
-
const
|
|
1299
|
-
class
|
|
1298
|
+
const em = ({ x: i, y: t, z: e }) => new ie(i, t, e), kt = (i) => new ie().fromArray(i), as = (i) => i instanceof ie ? i : Array.isArray(i) ? kt(i) : em(i);
|
|
1299
|
+
class tm extends E.Mesh {
|
|
1300
1300
|
constructor(e, n) {
|
|
1301
1301
|
const s = new E.MeshBasicMaterial({ opacity: 0, color: 0, transparent: !1, side: E.DoubleSide }), o = new E.PlaneGeometry(e, n);
|
|
1302
1302
|
super(o, s);
|
|
@@ -1311,11 +1311,11 @@ function sn(...i) {
|
|
|
1311
1311
|
const t = new ie();
|
|
1312
1312
|
return i.forEach((e) => t.add(e)), t.divideScalar(i.length), t;
|
|
1313
1313
|
}
|
|
1314
|
-
const Eh = 1,
|
|
1315
|
-
class
|
|
1314
|
+
const Eh = 1, nm = `CSS3DObjectPlus@${Eh}`, im = 216e-5, sm = 3e-3;
|
|
1315
|
+
class om extends Xr {
|
|
1316
1316
|
constructor(e) {
|
|
1317
1317
|
var S, P, R;
|
|
1318
|
-
const n = e.container, s = e.cornerPoints, o = (S = e.ratio) != null ? S :
|
|
1318
|
+
const n = e.container, s = e.cornerPoints, o = (S = e.ratio) != null ? S : sm, r = (P = e.dpr) != null ? P : 1, a = (R = e.pointerEvents) != null ? R : "auto", l = Math.max(im, o), c = s[0].distanceTo(s[1]), d = s[1].distanceTo(s[2]), h = to(c / o * r), u = to(d / o * r), m = sn(...s);
|
|
1319
1319
|
let A;
|
|
1320
1320
|
if (l === o)
|
|
1321
1321
|
n.style.width = `${h}px`, n.style.height = `${u}px`, A = n;
|
|
@@ -1345,7 +1345,7 @@ class sm extends Xr {
|
|
|
1345
1345
|
* @description: 生成透明Mesh
|
|
1346
1346
|
*/
|
|
1347
1347
|
f(this, "createOpacityMesh", (e) => {
|
|
1348
|
-
const { domWidthPx: n, domHeightPx: s } = e, o = new
|
|
1348
|
+
const { domWidthPx: n, domHeightPx: s } = e, o = new tm(n, s);
|
|
1349
1349
|
return o.position.copy(e.position), o.rotation.copy(e.rotation), o.scale.copy(e.scale), o;
|
|
1350
1350
|
});
|
|
1351
1351
|
f(this, "addParentVisibleListener", () => {
|
|
@@ -1367,7 +1367,7 @@ class sm extends Xr {
|
|
|
1367
1367
|
const L = o / l;
|
|
1368
1368
|
this.width = L * c, this.height = L * d, this.domWidthPx = L * h, this.domHeightPx = L * u, this.centerPosition = new ie().subVectors(m, s[0]).multiplyScalar(L).add(s[0]);
|
|
1369
1369
|
}
|
|
1370
|
-
n.classList.add(`${
|
|
1370
|
+
n.classList.add(`${nm}__container`);
|
|
1371
1371
|
const p = new ie().subVectors(s[1], s[0]), g = new ie().subVectors(s[3], s[0]), v = new ie().crossVectors(p, g).normalize();
|
|
1372
1372
|
this.lookAt(v);
|
|
1373
1373
|
const y = this.up.clone().applyQuaternion(this.quaternion), I = g.clone(), k = new ie().crossVectors(y, I).normalize();
|
|
@@ -1416,7 +1416,7 @@ class sm extends Xr {
|
|
|
1416
1416
|
this.scale.applyMatrix4(e), (n = this.opacityMesh) == null || n.scale.applyMatrix4(e);
|
|
1417
1417
|
}
|
|
1418
1418
|
}
|
|
1419
|
-
class
|
|
1419
|
+
class rm extends E.Scene {
|
|
1420
1420
|
constructor() {
|
|
1421
1421
|
super();
|
|
1422
1422
|
}
|
|
@@ -1426,7 +1426,7 @@ class om extends E.Scene {
|
|
|
1426
1426
|
}), this;
|
|
1427
1427
|
}
|
|
1428
1428
|
}
|
|
1429
|
-
class
|
|
1429
|
+
class am extends E.Scene {
|
|
1430
1430
|
constructor(e) {
|
|
1431
1431
|
super();
|
|
1432
1432
|
f(this, "scene");
|
|
@@ -1470,12 +1470,12 @@ class kh extends E.Group {
|
|
|
1470
1470
|
this.CSS3DObjectLength = fn(this).length;
|
|
1471
1471
|
}
|
|
1472
1472
|
}
|
|
1473
|
-
class
|
|
1473
|
+
class lm extends kh {
|
|
1474
1474
|
constructor() {
|
|
1475
1475
|
super("front");
|
|
1476
1476
|
}
|
|
1477
1477
|
}
|
|
1478
|
-
class
|
|
1478
|
+
class cm extends kh {
|
|
1479
1479
|
constructor(e) {
|
|
1480
1480
|
super("behind");
|
|
1481
1481
|
f(this, "scene");
|
|
@@ -1489,7 +1489,7 @@ class lm extends kh {
|
|
|
1489
1489
|
}), super.add(...e), this;
|
|
1490
1490
|
}
|
|
1491
1491
|
}
|
|
1492
|
-
const
|
|
1492
|
+
const dm = 3, Jr = "CSS3DRenderer", qi = `${Jr}@${dm}`, Zn = () => {
|
|
1493
1493
|
console.error(`${qi} is disposed`);
|
|
1494
1494
|
}, Ye = {
|
|
1495
1495
|
css3DObjects: [],
|
|
@@ -1503,10 +1503,10 @@ const cm = 3, Jr = "CSS3DRenderer", qi = `${Jr}@${cm}`, Zn = () => {
|
|
|
1503
1503
|
function hl(i) {
|
|
1504
1504
|
return Ye.css3DObjects.find((t) => t.id === i);
|
|
1505
1505
|
}
|
|
1506
|
-
function
|
|
1506
|
+
function hm(i) {
|
|
1507
1507
|
Ye.frontModeStore.css3DRenderer.setWrapper(i);
|
|
1508
1508
|
}
|
|
1509
|
-
function
|
|
1509
|
+
function um(i) {
|
|
1510
1510
|
Ye.behindModeStore.css3DRenderer.setWrapper(i);
|
|
1511
1511
|
}
|
|
1512
1512
|
class ls {
|
|
@@ -1520,7 +1520,7 @@ class ls {
|
|
|
1520
1520
|
});
|
|
1521
1521
|
f(this, "_scene");
|
|
1522
1522
|
f(this, "store", {
|
|
1523
|
-
frontModeGroup: new
|
|
1523
|
+
frontModeGroup: new lm()
|
|
1524
1524
|
});
|
|
1525
1525
|
/**
|
|
1526
1526
|
* @description 根据传入的四个点位创建一个 3d dom容器,可以通过ReactDom.render()的方式将react组件放到容器中
|
|
@@ -1611,7 +1611,7 @@ class ls {
|
|
|
1611
1611
|
s && (e ? s.add(n) : s.remove(n));
|
|
1612
1612
|
});
|
|
1613
1613
|
f(this, "createObject", (t, e) => {
|
|
1614
|
-
const n = new
|
|
1614
|
+
const n = new om(N({ cornerPoints: t }, e));
|
|
1615
1615
|
return n.element.classList.add(`${Jr}__container`), n.element.id = `${Jr}__container--${n.uuid}`, n;
|
|
1616
1616
|
});
|
|
1617
1617
|
t && this.setScene(t);
|
|
@@ -1676,7 +1676,7 @@ class ls {
|
|
|
1676
1676
|
if (e)
|
|
1677
1677
|
return e;
|
|
1678
1678
|
if (t) {
|
|
1679
|
-
const s = new
|
|
1679
|
+
const s = new rm();
|
|
1680
1680
|
Ye.frontModeStore.css3DScene = s;
|
|
1681
1681
|
}
|
|
1682
1682
|
return Ye.frontModeStore.css3DScene;
|
|
@@ -1692,7 +1692,7 @@ class ls {
|
|
|
1692
1692
|
console.error(`${qi}: scene is required when mode is behind`);
|
|
1693
1693
|
return;
|
|
1694
1694
|
}
|
|
1695
|
-
const r = new
|
|
1695
|
+
const r = new am(o);
|
|
1696
1696
|
Ye.behindModeStore.css3DScene = r, Ye.behindModeStore.scene = o;
|
|
1697
1697
|
}
|
|
1698
1698
|
return Ye.behindModeStore.css3DScene;
|
|
@@ -1705,7 +1705,7 @@ class ls {
|
|
|
1705
1705
|
var n;
|
|
1706
1706
|
const e = this.getBehindCSS3DScene({ createSceneIfNotExists: t });
|
|
1707
1707
|
if (t && e && this.scene) {
|
|
1708
|
-
const s = (n = this.store.behindModeGroup) != null ? n : new
|
|
1708
|
+
const s = (n = this.store.behindModeGroup) != null ? n : new cm(this.scene);
|
|
1709
1709
|
this.store.behindModeGroup = s, e.getObjectById(s.id) || e.add(s);
|
|
1710
1710
|
}
|
|
1711
1711
|
return this.store.behindModeGroup;
|
|
@@ -1753,7 +1753,7 @@ class ls {
|
|
|
1753
1753
|
this.handleDisable();
|
|
1754
1754
|
}
|
|
1755
1755
|
}
|
|
1756
|
-
f(ls, "setFrontModeContainer",
|
|
1756
|
+
f(ls, "setFrontModeContainer", hm), f(ls, "setBehindModeContainer", um);
|
|
1757
1757
|
function Mh(i) {
|
|
1758
1758
|
return U(this, null, function* () {
|
|
1759
1759
|
return new Promise((t) => {
|
|
@@ -1813,7 +1813,7 @@ class qr {
|
|
|
1813
1813
|
return this.min < t.min && this.max > t.max;
|
|
1814
1814
|
}
|
|
1815
1815
|
}
|
|
1816
|
-
class
|
|
1816
|
+
class fm {
|
|
1817
1817
|
constructor(t, e) {
|
|
1818
1818
|
f(this, "min");
|
|
1819
1819
|
f(this, "max");
|
|
@@ -1841,7 +1841,7 @@ function Os(i, t, e) {
|
|
|
1841
1841
|
const n = i[t], s = i[e];
|
|
1842
1842
|
n === void 0 || s === void 0 || (i[t] = s, i[e] = n);
|
|
1843
1843
|
}
|
|
1844
|
-
function
|
|
1844
|
+
function mm(i, t, e) {
|
|
1845
1845
|
const n = e / 2;
|
|
1846
1846
|
for (let s = 1; s <= n; s++) {
|
|
1847
1847
|
const o = e - (s - 1);
|
|
@@ -1932,7 +1932,7 @@ let ya = class {
|
|
|
1932
1932
|
if (!this.five.renderer || !this.containerDom)
|
|
1933
1933
|
return;
|
|
1934
1934
|
const { scale: t, context: e, width: n, height: s } = this, o = this.renderCenter.clone().project(this.five.camera), r = this.five.renderer.getSize(new E.Vector2()), a = 1, l = n / t, c = s / t, d = a * t, h = (o.x + 1) / 2 * r.x, u = (o.y + 1) / 2 * r.y, m = this.five.getPixels(h - l / 2, u - l / 2, l, c, d), A = Math.floor(n * a), p = Math.floor(s * a);
|
|
1935
|
-
|
|
1935
|
+
mm(m, A, p);
|
|
1936
1936
|
const g = new ImageData(A, p);
|
|
1937
1937
|
g.data.set(m), e.putImageData(g, 0, 0);
|
|
1938
1938
|
}
|
|
@@ -1943,7 +1943,7 @@ let ya = class {
|
|
|
1943
1943
|
t.setAttribute("width", (this.width * e).toString()), t.setAttribute("height", (this.height * e).toString()), t.style.border = "2px solid rgba(255,255,255,0.20)", t.style.width = this.width + "px", t.style.height = this.height + "px", t.style.top = this.config.initialPosition.top, t.style.left = this.config.initialPosition.left, t.style.transform = "translate(0,0,100px)", t.style.visibility = "visible", this.config.dragEnabled && (this.canvas.style.cursor = "pointer");
|
|
1944
1944
|
}
|
|
1945
1945
|
};
|
|
1946
|
-
function
|
|
1946
|
+
function gm(i, t) {
|
|
1947
1947
|
const { offsetWidth: e, offsetHeight: n } = t, { top: s, left: o } = t.getBoundingClientRect();
|
|
1948
1948
|
return new E.Vector2().set((i.x - o) / e * 2 - 1, -(i.y - s) / n * 2 + 1);
|
|
1949
1949
|
}
|
|
@@ -1951,7 +1951,7 @@ function Sh(i, t) {
|
|
|
1951
1951
|
const { offsetWidth: e, offsetHeight: n } = t;
|
|
1952
1952
|
return new E.Vector2().set(i.x / e * 2 - 1, -i.y / n * 2 + 1);
|
|
1953
1953
|
}
|
|
1954
|
-
function
|
|
1954
|
+
function pm(i, t) {
|
|
1955
1955
|
const e = i.getElement();
|
|
1956
1956
|
if (!e)
|
|
1957
1957
|
return;
|
|
@@ -1962,14 +1962,14 @@ function Th(i, t) {
|
|
|
1962
1962
|
const { x: e, y: n } = t, s = e * 2 - 1, o = n * 2 - 1, r = new E.Vector2().fromArray([s, o]), a = new E.Raycaster();
|
|
1963
1963
|
return a.setFromCamera(r, i.camera), i.model.intersectRaycaster(a)[0];
|
|
1964
1964
|
}
|
|
1965
|
-
const pm = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAGwCAYAAADFUEBtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABtqADAAQAAAABAAABsAAAAABTZ8U6AAAtiklEQVR4Ae2dAXJbSbJdp+d7AfYSHOGVeAPek5fkNXgLjviLmRkZl+CRbtc8UBKRRalZpyIesiorMx/eIcjb+QCh//Y3hwQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkMEbgj7FKFpLA4QS+fPnyx23czJc//V498h2Oy8uXwDYCf/oF3HYWC0vgAAI3QfuP22V+uR35vYplrOsX/03w/kWAVgISmCPwX+ZKWUkCErgR+PvtiKjF9uj/iMx+C1/HOZeABJ4koLA9CdB0CRQBxKxFrLa/Tung7Ni+InEigTkCCtscSytJIATo2BC3dGYIWfvs2Hy9SGATAYVtE1jLHkkgohbxQsACgTkWn8IWEg4JbCCgsG2AasljCXArMgB6DpAWs3/i1EpAArMEFLZZnlY7m0C6snwyMuPqFiT+2Cvhi98hAQk8SUBhexKg6RIoAtyKjItbj1jCWGPxayUggSECCtsQSMtI4EYgYhVx624tYOK/8mXPIQEJDBNQ2IaBWu5oAnRh3GZkHSiIG8J3NCgvXgI7CShsO+la+zQCEa0ciBgWDlnji3VIQAIbCChsG6Ba8mgCdGSxjCsRu/IRr5WABJ4goLA9Ac9UCSwE6Nj6Y/0RsBxXviXdpQQkMEFAYZugaA0J3AnQhdG1xYsPccPKTAIS2ERAYdsE1rJHEohocQsy8xwZdGuse+8e4aMEJDBGQGEbQ2khCXz94AgCxkf8gwZf5u3P2iEBCQwSUNgGYVpKAjcC+eYRRKw7NeaBpLCFgkMCmwgobJvAWvZIAhE1bkUGAAK3zq/W8TkkIIEBAgrbAERLSOCVQISsPzgSd3x0a8xjczgkIIENBBS2DVAteSwBBGsVrV4zxx4LywuXwC4CCtsustY9kUDEio4t8/W9tO7cTuTjNUvgQwgobB+C2ZMcQoD317BX4kanhj0EjZcpgY8joLB9HGvP9PkJRKwiai1odm2f/+fuFf5mBBS23+wH4tP5yxPgViRdWy6I7iwihx/fX/6CvQAJ/G4EFLbf7Sfi8/krE+DfsEW0umvrOdensEFCK4FhAgrbMFDLHU0AQUO0sHRq3JaMdUhAApsIKGybwFr2SAIRsr7ViLAFRsSsha33su+QgASGCChsQyAtI4EbgYhabkdmRLi6M1uFbF2/JPkgAQk8T0Bhe56hFSQAgYgVHVt8iBsWX2zHZe2QgASGCChsQyAtI4EbgQhYjh6s23Yn17HOJSCBAQIK2wBES0jglUC6sBy8l9Zg8MUmBqHrGOcSkMAAAYVtAKIlJPBKIGLFsULBT7emsK2EXEtgiIDCNgTSMhK4EUC8EK0WsZ6zLzQJSGADAYVtA1RLHksggtUfCmkB63kAretjoXnhEpgmoLBNE7XeyQQQNrqzlUX22VPYVjquJTBEQGEbAmkZCdwI8KGQt0SLPazgJCCBYQIK2zBQyx1PgE9FAiICli4NG7+iFgoOCWwioLBtAmvZIwnw/hpfhsxtxxUGQrf6XUtAAgMEFLYBiJaQwCuBCBu/UxEvhG4F9NbeGutaAhL4SQL8Ev5kmuESkMAFgdxi5Fbko9uNj/wX5XRJQALvIaCwvYeaORK4JhBRQ7hi37rlSNx1Jb0SkMC7CShs70ZnogT+jUDEiiObLV6ZR+gYvYdPKwEJDBBQ2AYgWkICrwQQNUSsxWt9X633BCgBCQwSUNgGYVrqeAIRKz4wsgrX99bHwxOABKYIKGxTJK0jgfutx/XDI7zPxm1IBA4rNwlIYJiAwjYM1HJHE+DDIy1azLFHA/LiJfARBBS2j6DsOU4hEPFaOzauvTu3xCl0kNFKYJiAwjYM1HJHE0CwEC3W3IZE3AKJmKOBefES2EFAYdtB1ZqnEki3lq/TYiBkLWL4iNFKQALDBBS2YaCWO5oAHRoQ1tuSLWrZc0hAAhsIKGwboFryWAIRKwQLEYvYPZofC8oLl8BOAgrbTrrWPo1Ad2x0a2FwNe/bk6dx8nolsJWAwrYVr8UPIxCxomPj0hGw2O7c2NdKQALDBBS2YaCWO5pAxGsVsgbSe8x737kEJDBAQGEbgGgJCbwSSLdGx5bujPkKiM5t9buWgAQGCChsAxAtIYFXAmvH9gjMI8F7FK9fAhL4CQIK20/AMlQC3yEQYYto0ZHFZvRtR/bad4/yUQISGCGgsI1gtIgEXgjQsSFa2MaDD9t7ziUggQECCtsAREtI4JVAurUIFscVmKsu7ipOnwQk8E4CCts7wZkmgQcE8jvF7cYrEbvyPSilWwISeA8Bhe091MyRwDWBfE9kd2tXtxvxYa8r6ZWABN5NQGF7NzoTJfBvBBC1WDozgvC1ZU8rAQkMElDYBmFa6ngCES0+Fbl+pD9Chy9xORwSkMAGAgrbBqiWPJYAgoW4NQj24lu7uY5zLgEJPElAYXsSoOkSKAIRtO7KEDC6M9aJwVfpTiUggQkCCtsERWtI4E6gu7J4unPLHsKWPYUtFBwS2EBAYdsA1ZLHEohY0bFFxBC6R/NjQXnhEthJQGHbSdfapxFAyHLd3a09mp/Gx+uVwIcQUNg+BLMnOYRABIyOjUtmna6NW5HxeSsSQloJDBNQ2IaBWu54AnRtCFeLGbck/3WjxP7xwAQggWkCCts0UeudTCDfPJKjRwsYc76hpOOcS0ACQwQUtiGQlpHAjUCEK7cZ6cwChTmdG+KGTYxDAhIYJKCwDcK01PEEIlYcwEDAsKuftVYCEhgioLANgbSMBG4EHolad22JYS00CUhgAwGFbQNUSx5LILch+RRkQ6Bba8u845xLQAIDBBS2AYiWkMArgYhVv8fW76vRpeETmgQksImAwrYJrGWPJBBh4wiAtSt7a+9IYF60BHYQUNh2ULXmqQQQrti1M0Pk2GN9KiuvWwLbCChs29Ba+EACvMcWUVvfa+NWZLBE1BS2kHBIYAMBhW0DVEseTQDRamFrUcs8h0MCEthEQGHbBNayRxKImPGtIi1e3Z1l3kJ3JCgvWgI7CShsO+la+zQCb92KbBYKW9NwLoFhAgrbMFDLHU2A25DdoV0ByX7fqryK0ScBCbyTgML2TnCmSeCCAILVHRlzbNIyd0hAApsIKGybwFr2SALpwujaAED3ho1/jSFWKwEJDBBQ2AYgWkICrwRasBCytTvDLzQJSGATAYVtE1jLHkkgorW+d/ZIyNa4I4F50RLYQUBh20HVmqcSQNjo0rJmDpNHQse+VgISeJKAwvYkQNMlUATW99giao86MwWuwDmVwCQBhW2SprUk8OevyqKD+9cNDN1bW3lJQAIbCChsG6Ba8lgC6c440q0hYvk2Egb+7DkkIIENBBS2DVAteSyBiFVEbL0F2SKWPYcEJLCRgMK2Ea6ljyPQ3RoXH1HLgaAhco/eeyNPKwEJvJOAwvZOcKZJ4IIAYhW7Chni1vaihC4JSOBZAgrbswTNl8A3AhEtxI3ODCFLVPu+ZTmTgARGCShsozgtdjiBCBdHUKRruxKz9ifOIQEJDBJQ2AZhWup4AhGxdGyxLV6IG4CyXn3saSUggScJKGxPAjRdAkUgYsX7a9ySbIEjND6HBCSwiYDCtgmsZY8kQLfW3VjPgRLflZ99rQQk8AQBhe0JeKZK4IIAHRvCRceGTUrPL0rokoAEniGgsD1Dz1wJ/JnA2rGtnVm+Witj9d+9PkpAAiMEFLYRjBaRwAsBhC2W0d0Z++0jTisBCQwRUNiGQFpGAq8E8pVa6cgQLyyAWHOrEr9WAhIYIqCwDYG0jARuBNKR5Yh4ddeGiLUf3y3UIQEJTBJQ2CZpWut0AtxqjGjl6O6MOYwUNkhoJTBMQGEbBmq5owkgaIgWlk4NccMeDcuLl8AuAgrbLrLWPZEAtyK59ghbixjC1z5itRKQwBABhW0IpGUk8EqA99jo1uLuuaLmS0UCmwkobJsBW/4oAnRsES9Gd2nxIXJY4rQSkMAQAYVtCKRlJHAjgFjRtQVKfBE6fKyz55CABDYQUNg2QLXksQQiWhGwDESuhax9zO/RPkpAAmMEFLYxlBaSwIuYRbA4rpCke/N9tisy+iQwREBhGwJpGQncCETQeJ8tQHivLf51Hp9DAhLYQEBh2wDVkscSiFjlK7UYLV49Z18rAQlsIKCwbYBqyWMJRNT4kMgVhIhbd25XMfokIIEnCShsTwI0XQJFIMJFZ4Zlm/fV8PMhE/a1EpDAEAGFbQikZSRwIxDRWju2+CJq7Y8PgbtNHRKQwCQBhW2SprVOJ0AXhg0PRA02CBoWv1YCEhgioLANgbSMBG4EIlYRtVhuPcZm4LuvfJSABLYRUNi2obXwoQS45dhdG6IWmyMDe1/5KAEJjBFQ2MZQWkgCLx/1R7xi6dqYNyKFrWk4l8AgAYVtEKaljifQohYY3bVF5BA6bk8eD0wAEthBQGHbQdWaJxNAzBC5sEDQ6NxYn8zJa5fANgIK2za0Fj6QQIQrwhbbo9eZ/+t2tK9jnUtAAk8SUNieBGi6BIpARC3fPtIdGfPYDAQNe/f6KAEJjBFQ2MZQWkgCL6IVwWrRYo4Npv4+SbFJQALDBBS2YaCWO5rA+l2RLWbducXfe0dD8+IlME1AYZsmar2TCSBYV6KFD8uHTE7m5bVLYAsBhW0LVoseSmAVtn5fjXnQIG6HYvKyJbCXgMK2l6/VzyPQnVgLWM9DpePOo+QVS2AjAYVtI1xLH0cgYpWju7OGEHFjbxW6jnMuAQk8QUBhewKeqRJYCETUECwsIRG0+HIgbuxpJSCBQQIK2yBMS0ngRqA7NoQMMPmH2Rmr/+71UQISGCGgsI1gtIgEXghE1DJiW+BenLcH/vE2a60EJLCBgMK2AaoljyWQTqxFDaFrIN21td+5BCQwREBhGwJpGQncCCBsb91qpGtLjEMCEthAQGHbANWSxxJIh4aoxfIhkRaxK9+xwLxwCewgoLDtoGrNkwn090C2oMEkPm5H4tNKQAKDBBS2QZiWOp5Ad2x8vD9Q6NIyj7ARl7VDAhIYJqCwDQO13NEEEK1AoFuLqK0fImnROxqYFy+BHQQUth1UrXkqAYQN4cLGn3kGc4Tv7vVRAhIYI6CwjaG0kARe/p1aBKtFizk2mHouNglIYJiAwjYM1HLHE8htR7qzfi+tPzASYVPcjn+pCGAXAYVtF1nrnkiA99KwLV78+zW49B4+rQQkMEBAYRuAaAkJvBKIoHWXBhhEjK4ta3zEaCUggSECCtsQSMtI4JVAhC23IhE4bksiZr0WmgQksIGAwrYBqiWPJRDxQtgQstiIGevu2o4F5YVLYCcBhW0nXWufRgDxynX3e2qIXfzME+uQgAQ2EFDYNkC15LEEIlqrcCFgsd6GPPal4YV/JAGF7SNpe65TCETEELi+ZsWtaTiXwCYCCtsmsJY9kgCChqhh42f4HhsktBLYREBh2wTWskcSQNhyyzGiltGiljX+zB0SkMAGAscI25cvX/IHhj8y+ePCmj807QvqK3/7EkMNbO8zZ++RTdy6l9rk9/6Vb41lfRW7nidr6pPXMfERs+53feKI7Rr4Oqb3OX/73po/E881XFmeZyz7PA+ulfVqEx/ff3+1mSen31Pjk5F0bP/r9pr8H68x2SM2+6yxN9fX/9UN+T9iiaHO9+zVuR/l/ExsarwVv14fzxvLc2Dddt1jvdrkxIddz5l175PPua7W1GLvkU3tf77WJyY+ancd5uwnnnnb+FMzg5rYl7p//PEH9e9RBz3mF/CIUcLWfxjzyTXWWP4oscYmlr237Fs11zxi8zPIeTjXapPHf4QkJ4P42AxyqMm58K9xWa+xySEPS17Oj6/j2E8t/Fd1E7fmX8URs8ZTf/Wva/K7Nr63bNd/VLPzmV/FZi9HRvb5gxObwR8c/ohhs88c2778IYu/97LffzTZw2b/H7ej6/Temk9s/OQQv1rOu/rJw2afA99b9lHd9TzUbD/ztT6x+L8X92h/zU8cz5e9tsw7rmtnP/kZ8ffRudknjvNhqYcl78tN3DI/buSX7tTRf3xggC82Lwj+OF3tx3e1T+yP2h954fHHkfPFMu98fFfn5nrIJbbzH+Vx/t7vfObZT2zWnC++jPU8iem8xLSv89e4xDK6buJy/hw/Ovqcb51nrbcKZ+dSExZXNvU6Z62/ruGxXh/X/1YtePC8sDkHdcnnua7nz5o8LHWJpQZrLPGssWt8r3lexLYlLpbrz37W7K35+BOXwfpR/j3q22PHrfl93m8Z386Bjzhs/OvzJLZt4juO/B/l37WOmK9gPvtF8wLJdeaFwos1/gzWvIiIaU74Ov6t/MSxj8XH+fCzXm3iGZwfG3/nM8dSa81nPzYHce0nJxY/cdj2r/PEXMVR79Fe7yeGutjsM+Jb/dSNfZTfeeR3Xup3fmLyOiCPvcSR3zEdmzlHxxLfIpl6/Zx5TvFnsE5u1+rnc5Wf82cQh717v/m7bmIyOE/m5GGv4snDJi+j62TNPv5ex5d1DvaxxMXC+Tb9Wi/zq/yOoUbi1rqPfJ2feY/Uy0GtWHyJw48Pm72MrDPIyxxf5gzysPF37ayzhy/r4wYv9k9/4a8tef/A84Pnhx//jwziyMPiTw3q9rmofRXHXudSF9sxV3HU/dGf51r36rlyzr4ezt2245ivNjV4jn1u5uyteVn3Na1xa37WHMntedbkU3PNT8w6Eksce6yx1GUfm33yiY3lIK7zE5+jfcTFdp2sE8ugLjH4Y1MP/2qzT27mGTzv++r+yHMiljr4OzZz9vE/Wnc+tcnBJqbj4qfe6ienY/CRg43/rXzyiOm8dd5r8rDkZ524PvDFZvAzfVRvzb2q3b571YMeAfjpL/n1Pba+zrw4+OH3PDH9guo5+eRhOx9fYpljyWfvkZ+43ud5cK7ssc8eddtSizwsfmpc2fiI73N0/TUvex17lc8+ucRQt9f4YtfR+WvNxLKPJZ81ltzVEo9NfD+3zo8fMcDGx4Gva2VOjbbUwpe4+HqwF9t77WeePGJi8WOzz7xtzxOTQX722Mf3EvAakzn7+B+t33pu1CaGWmt9aseusexd5RLfMZyz49eanJ+/oeSvljxqYhPHQa2265w19ThP/PioHd/fTn1/LdfODyXzTz0e/JB5QeTae86Lpn0dgx+77nV+Yoh7ZJPfo/Px44td6xATyx4+1uRhiWW/4zlX7+HrOOarJfYqfz3/mpucNYY6jyznoxbrjseXmPaT05bYxBGb/cyzhw+bPQYxWWfOQU0sudi38rNHHpa678knB8u5Y+N7dA72yMOSx3rNz34G+6u97357TH5iOo6aiWp/1j2yR2zH4cNmjwMfdXpNjfYRxx7r2PgSu+7hwxIb26PzMl/XV8+j8zN/ibn4j/k17tOujxG2+lQkP8x8goixvlh4MeHHrvHxc/Re56/7iVvrxUdOz78Xl1gG+Vc5xMQmjueExR8bH7WyZsTX/vU87LW/5+THwj77HFf5OTf7mTPwYePPnLHWyh7nJ2a12adG5+MjvuPwJSZHrquvjXUsMV375r48Z/xdJ2tG51Mztv3MyYmND3/i19F7PeccxLPHOpZ6WGLIxU9O+5l3nc7HH9/qp17s1R7njWUfy3mJaT/ztX77yefnxB7noi412Mfix+LvPM7RPuLIi+39rK9i4j9mHCNsrz9RXihZXv3wr3zJwc8LiHUs80c128/51xz8if3e4DkQl1rk9x7naB9x2euDWm2pm1/crtX1Et97VzWJ59ysySW/1+27On+fp2NT42oQc/UcEo+fuK7B3vfisr/m57nnWGskltE5mRPLnDhs9nsQv/qpiz+Wj4uzlzqchzhq95r4+NpPPjnEscbih0XWfaxxrGNzPvI5P+uOy/yqJn5ief5Xsfg6h3jOzZrY2Az899WfnzP71CAmlvz2vVVr3eu8P80f3KX6U8xnXZwmbPk58kLqF8jqYy/+HPmFzFjj7t5/93c+MdjUyD4xsWtd9vAnt+dZM9b8R3Hx9x5/ZDgXlpi1LudjnzV5WfOHE1+fkzwsTK/Oc5XP+ZLPfizz7HfNrDlX5gzyk0c8cdTC4k9ufBzkxZ9BXPyJiSWG9ZVdfc0ve9S9Tb/O8WU/R0b77p5ve71+FNf+zHnu+FMj817Hl5HnjJ/ng8WfOOax7MefwR7+Pv8av66JTS75WOq+nOT1AR/xxGabeWoyf037+hy/l8/+Vd66lxjOg01Mz7vOVX728ZP3Yr0VCbozLD98XgyPrjpxxK4x5LKPTVz2Hu3jX+utecRR961fNGr1eeMjl3mv4+McmWes67v3/sgfj6yos8ZzfvZjmd+r3B/xJT5zbMdk3vmcfz1n4lZf53Eu7NW5spf62buqdXN/vY7OJy+5OThH4vGtlpyOTXwG58fevffHxJPDudbnSt7qT4Xk9CD2ytexnLPPT05qJPbqfPg6n1h8qdPzrMlj72q/fT3v3DU/cVwXOcRjk3M12CcPi5+crNtHHPucn3XHxtfrnmcvtdZ6iemaWZOHvbnOHEcBuP0XTDpUXgBYutZ13X7y2kf8lU3cz8RSI69C8mLxY/FdxcXXcdTBh1391GT/LftWLM+J/D7P1RzfWzUf1cLfdj0/e12fmCvb8ez3c4yPmNWy9z9vk/+WxW2Qmz9Iicfyx+g/b77/9+rnD9dqb9tf/3iRF9txicn60X7HMu9Y8qlBzCOb+OSvz+Mqntiuje+RvapDfnJ6/3vPoc+RzjK5Gev1v1Vnje3zrx127/U85/zR8/dzuXquXZfzr8+R9bHfPMLXNAXgpx+3e878wD/9tXqBH0/g9h9O//d21v96O/LHpwfr2LwGI3T/5/Z6/N8d5FwCEpghcJSwzSCzigQeEmjhajFLAl1b/BwPC7khAQm8n4DC9n52ZkpgJYBgxUbIesSXQcx95aMEJDBOQGEbR2rBwwlwu/vqPbagQfQQusNxefkSmCegsM0zteK5BOjGrsQLISPmXEpeuQQ2E1DYNgO2/FEE0q3RsWEDIPN+jy0+hC5zhwQkMEhAYRuEaanjCXQ31mIWMAjZao+HJgAJTBNQ2KaJWu9kAhEtOrV0aHRpfJCkhQ+BO5mX1y6BLQQUti1YLXoogVW4ELTg6D3Wh2LysiWwl4DCtpev1c8ikG5tvQWZT0ciarF0cZk7JCCBDQQUtg1QLXk0gQgW4hYQfO1Ri9rRgLx4CewmoLDtJmz9kwhExBC12Aw6tPvq/hiRs2NrIs4lMEhAYRuEaanjCSBYLVrrPOsrsTsengAkMEVAYZsiaR0J/Pt7aWGCkPU83VwLXvYcEpDAEAGFbQikZSRwIxCx4hZkC9c677XgJCCBYQIK2zBQyx1NIKKW99lyqzFHRkSMW4/47Nhe0PgggT0EFLY9XK16JoGIGN0YNiSYt2V+JimvWgIbCShsG+Fa+jgCEat0Y2vHFhB0bYlhHr9DAhIYJqCwDQO13NEEIlociFvWDPZ4Hw6/VgISGCSgsA3CtNTxBHjvDDHjW0cicuxlnkHMfeWjBCQwRkBhG0NpIQm8EOhu7B83D0IGHgQNi18rAQkMEVDYhkBaRgI3AhG1FjagRMQicG0VNuhoJTBMQGEbBmq5owlErFbBYr3ao0F58RLYSUBh20nX2qcRQNhi6dDCgDk2vqvOLn6HBCTwJAGF7UmApkugCETQECw6tGwzx1aKUwlIYJqAwjZN1HonE+A9tu7M4IEPiwCyr5WABIYIKGxDIC0jgRuBiFW6sqvODB9WYBKQwCYCCtsmsJY9kkBEK+JGVxYIzGMZCCBrrQQkMEhAYRuEaanjCUTY8iXI/3E76MxWG0jx4c/aIQEJDBJQ2AZhWup4AnRi+YfZ+daRq5GYDIXtzsFHCYwTUNjGkVrwcAII1ipu+GP7tuThuLx8CcwTUNjmmVrxXALpxujIIl65LZnB+2zM6exeNn2QgARmCShsszytdjaBdGPdmdGdtY9uDd/ZxLx6CWwgoLBtgGrJYwlErLpjy3oVsKy7gzsWlhcugV0EFLZdZK17IoEWslXQmgfi1z7nEpDAEAGFbQikZSRwI8B7Z4jaVWfmrUhfKhLYTEBh2wzY8kcRiKB1N5Y5QgYIRA+LXysBCQwRUNiGQFpGAjcCq7ABJX66N2wLIHFaCUhggIDCNgDREhJ4JcCtyAZCZ7bajnEuAQkMElDYBmFa6ngCEbb827V0ZXRmgZI5IwLHgU8rAQkMElDYBmFa6ngCCFYErr9Si24tgJhjj4cmAAlME1DYpola72QCESveO+NbRx7xUNgekdEvgScJKGxPAjRdAkUgYsXRtx8TEv/qi98hAQkME1DYhoFa7mgCES86tsyvBn7sVYw+CUjgCQIK2xPwTJXAQgBhozNDvFgjelmzt5RwKQEJPEtAYXuWoPkS+EYgwhXBQrQQsKyZJ7pjsnZIQAKDBBS2QZiWOp5ACxZiFiiP5scDE4AEdhBQ2HZQteapBCJgfbvxrXliHRKQwAYCCtsGqJY8lkDECsFi3rcgA6b3jwXlhUtgJwGFbSdda59GIP92rbs0xG3lsIrduu9aAhJ4goDC9gQ8UyWwEIiQRdzyrSN0ZkvIyzIxb+1f5eiTgAR+kIDC9oOgDJPADxCgQ+NbR1aBazHr+Q+UNkQCEvhRAgrbj5IyTgLfJ4CwxeZ24z9eU7j1iI1bYXuFo5HANAGFbZqo9U4mELHiPbYWLubYMOr5ycy8dgmME1DYxpFa8GACEasIG51ZbEaLGL77jo8SkMA4AYVtHKkFDyYQUYuIIWTYRoIP23vOJSCBAQIK2wBES0jglUDEahWsrOngEkbHtsZlzyEBCQwQUNgGIFpCAq8EIlZ9KxIwq4hlvfqI1UpAAk8SUNieBGi6BIoAgoW41daLkHXn1nvOJSCBQQIK2yBMSx1PIIKWI+OtjgwBvEf6KAEJjBJQ2EZxWuxwAqtgIW68r4boZc38cGRevgTmCShs80yteC6BfONIDoSMW48RuJ6fS8grl8AHEFDYPgCypziGAB1bd2P5Wi3WiFuA0M0dA8cLlcBHEVDYPoq05zmFACLG9fK9kVm3mPWcWK0EJDBAQGEbgGgJCbwSiKjRtdGdxTIQM/bwayUggUECCtsgTEsdTyDCxXtsiBg2cDJX1ELCIYGNBBS2jXAtfRwBRCy2Ray7Nm5VEnscJC9YArsJKGy7CVv/JAIRK4Qr1414YWFh1wYJrQQ2EFDYNkC15LEEImAcLV7dsWW/946F5YVLYBcBhW0XWeueSCDdGh1bd2k9DxfE70RGXrMEthNQ2LYj9gQHEYhgRdjoyK46tYNweKkS+DUEFLZfw92zfk4C+UQk3VhEje6Nq6Vz686OPa0EJDBEQGEbAmkZCdwI0LHF5htHMjLvDg6xQ+RegnyQgATmCChscyytJIEQ4N+x0b1d3Y5U1HytSGAjAYVtI1xLH0eAbgxLpxYQiFl3cMcB8oIl8BEEFLaPoOw5TiEQ0aJjyzUjZuv1x/9ob411LQEJ/CQBhe0ngRkugTcIrIKFeHXnlvR1/UZJtyQggZ8loLD9LDHjJfCYQG5BruKWaASOzHWNXysBCQwQUNgGIFpCAq8EELVHwtWd2qMYYUpAAk8SUNieBGi6BIpAxIoPjpT767TFrOdfA5xIQALPE1DYnmdoBQlAIGLFQXcWy0DM2MOvlYAEBgkobIMwLXU8gQhXd2yI3ArmkX+Ncy0BCbyDgML2DmimSOABgXzUP0e+dSQCR2e2dm0K2w2OQwK7CChsu8ha90QCCNY/bhePmCFudHL4E+uQgAQ2EFDYNkC15NEEELBAQLwQt/YdDcmLl8BOAgrbTrrWPo1ARK1vQXL97UPkED1itBKQwBABhW0IpGUkcCPArUhECxELHHzMex2fQwISGCKgsA2BtIwEbgTSmSFuiFrWmTPYV9ggopXAMAGFbRio5Y4msIpWi1fPj4bkxUtgNwGFbTdh659EIOKVri0DkaNzu3u/PSp031g4k8AoAYVtFKfFDieAmCFaLWr4gqj9hyPz8iUwT0Bhm2dqxXMJRLzo2EKhxaypxP9or+OcS0AC7yCgsL0DmikSeEAg3zrCR/sTgnitHdq6flBOtwQk8B4CCtt7qJkjgWsCETI+GZmv1WIgcFlnzsG+VgISGCSgsA3CtNTxBBC2gEj35pCABH4BAYXtF0D3lJ+WAN1aBC63GzOYY/H1e3EvgT5IQAIzBBS2GY5WkQAEImAc7cs8fkbP8WklIIEBAgrbAERLSOCVQMSKW5DdsWWbD4ys/tdUjQQkMEVAYZsiaR0JfPvgSFhE5BAz2MRnpwYNrQQ2EVDYNoG17JEE1vfYELIIHO+p2bEd+dLwoj+SgML2kbQ91wkEELBca3dnzLEnsPAaJfBLCChsvwS7J/2kBCJaEbb1FmT72FPgPumLwMv69QQUtl//M/AZfB4CESsEKxYRyxXiZ97r+BwSkMAQAYVtCKRlJHAjkE9ERrAQLea8rxZI+PqWZfwOCUhgiIDCNgTSMhK4EYho8XH/ALkStPgdEpDARgIK20a4lj6OQLqwfj+tAXBbEktX1zHOJSCBAQIK2wBES0igCHCrsVwvU4RstWucawlI4EkCCtuTAE2XQBG46tjo0LwtWaCcSmAnAYVtJ11rn0agu7W1M2N9GhOvVwIfTkBh+3DknvATE0DYeJ/t0aUmLjEOCUhgAwGFbQNUSx5LoAXLDu3Yl4EX/qsJKGy/+ifg+T8TgXRhdG28p5b1+j4bMZ/p2r0WCfw2BBS23+ZH4RP5BAQQLGwuKaLGrcm+/ZgYhwQksIGAwrYBqiWPJRCxyj/QplsLCEQNseu97DskIIFhAgrbMFDLHU0gIpbj77cjQsYtSOY318s+cVk7JCCBYQIK2zBQyx1NIIIVEfvHKwWEraHQsSXOIQEJbCCgsG2AasmjCUTcGJkjZPgUNEhoJbCJgMK2CaxljySw3mKkY+NWZFsF7siXiBf9EQQUto+g7DlOIRCxasG6muPDnsLG65TAhxFQ2D4MtSc6gEDEioNuLZfdtyMRNOwBWLxECXwsAYXtY3l7ts9NIGLFe2wtXD3/3AS8Ogn8BgQUtt/gh+BT+DQEELa1W4sfH1ax+zQ/di/kdyOgsP1uPxGfz1+ZQLq1CNYqWu1jD/tXvl6fuwR+SwIK22/5Y/FJ/UUJRKz6I/5Z06HFMuJX2KChlcAwAYVtGKjljieAYD2yAGKftVYCEhgioLANgbSMBG4E8o0j/E7la7XWwQdL4lfYVjquJTBEgF/CoXKWkcDxBBCsiBy3H+Nb58QdD0wAEpgmoLBNE7XeyQTSkdGV8d4aotZ+5iez8tolsI2AwrYNrYUPJBARoxPDBsPVvH0HovKSJbCPgMK2j62VzyMQsaIbo2O7ovDW3lW8PglI4CcIKGw/ActQCXyHQISNTgx7ldJxV/v6JCCBJwgobE/AM1UCC4F0ay1adGbYhGee8Zbw3SN8lIAE3kVAYXsXNpMkcEkgYsWtyAQgXtj2Ze6QgAQ2EFDYNkC15LEEEDY6tO7O2pe4FrtjgXnhEthBQGHbQdWapxJAsFq0mGPDhrhTOXndEthKQGHbitfihxH45+168zsV4UqHxm1JOreb68WnsIWEQwKbCChsm8Ba9lgCEbceiFxsBiLH+u71UQISGCOgsI2htJAEXrqxdGm8nwaSVcSyXn3EaiUggScJKGxPAjRdAkUAwULcauvr7UkEDdsxziUggQECCtsAREtI4JVAxIr31d4Sruy9tS9QCUjgCQIK2xPwTJXAQmAVLMSL99UQPdZLuksJSGCCgMI2QdEaErgTWG9B8l5bBI55IlcBvGf7KAEJjBBQ2EYwWkQCLwRasBCzbFzN43NIQAIbCChsG6Ba8lgCCBtCxjrdWt+GZH4sKC9cAjsJKGw76Vr7NAIRMkQrc8bVvH3EaSUggQECCtsAREtI4JVAC1u/p7YCemtvjXUtAQn8JAGF7SeBGS6BNwjkW0f+/rof8boaVx3dVZw+CUjgnQQUtneCM00CFwS6Y7vY/uqyY/uKwokE5gkobPNMrXguAd43i23x6u5t3TuXllcugU0EFLZNYC17JIGIVosbEPD1evWxp5WABJ4koLA9CdB0CRQBhI1u7apTq3CnEpDADgIK2w6q1jyVQH8wJKLGunnYqTUN5xLYQEBh2wDVkscSaNF6mf/xxx9fbuNm7vZYMl64BCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQn8NQn8fyHnyuSABiy2AAAAAElFTkSuQmCC", Am = `
|
|
1965
|
+
const Am = "data:image/png;base64,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", vm = `
|
|
1966
1966
|
varying vec2 vUv;
|
|
1967
1967
|
void main() {
|
|
1968
1968
|
vUv = uv;
|
|
1969
1969
|
vec4 mvPosition = modelViewMatrix * vec4(position, 1);
|
|
1970
1970
|
gl_Position = projectionMatrix * mvPosition;
|
|
1971
1971
|
}
|
|
1972
|
-
`,
|
|
1972
|
+
`, bm = `
|
|
1973
1973
|
varying vec2 vUv;
|
|
1974
1974
|
void main() {
|
|
1975
1975
|
vec2 uv = vec2(vUv.x, vUv.y);
|
|
@@ -1978,8 +1978,8 @@ void main() {
|
|
|
1978
1978
|
gl_FragColor = vec4(1.0,1.0,1.0,match);
|
|
1979
1979
|
}
|
|
1980
1980
|
`;
|
|
1981
|
-
function
|
|
1982
|
-
const i = new E.PlaneGeometry(0.4, 0.4), t =
|
|
1981
|
+
function ym() {
|
|
1982
|
+
const i = new E.PlaneGeometry(0.4, 0.4), t = Am, e = new E.TextureLoader().load(t);
|
|
1983
1983
|
e.encoding = E.sRGBEncoding, e.minFilter = E.LinearFilter;
|
|
1984
1984
|
const n = new E.MeshBasicMaterial({
|
|
1985
1985
|
map: e,
|
|
@@ -1988,18 +1988,18 @@ function bm() {
|
|
|
1988
1988
|
});
|
|
1989
1989
|
return new E.Mesh(i, n);
|
|
1990
1990
|
}
|
|
1991
|
-
function
|
|
1991
|
+
function wm() {
|
|
1992
1992
|
const i = new E.CurvePath();
|
|
1993
1993
|
i.add(new E.LineCurve3(new E.Vector3(0, 0, 0), new E.Vector3(0, 0, 0.1)));
|
|
1994
1994
|
const t = new E.TubeGeometry(i, 8, 3e-3), e = new E.ShaderMaterial({
|
|
1995
|
-
vertexShader:
|
|
1996
|
-
fragmentShader:
|
|
1995
|
+
vertexShader: vm,
|
|
1996
|
+
fragmentShader: bm,
|
|
1997
1997
|
depthTest: !1,
|
|
1998
1998
|
transparent: !0
|
|
1999
1999
|
});
|
|
2000
2000
|
return new E.Mesh(t, e);
|
|
2001
2001
|
}
|
|
2002
|
-
function
|
|
2002
|
+
function Cm() {
|
|
2003
2003
|
const i = new E.SphereGeometry(0.01, 20, 20), t = new E.MeshBasicMaterial({
|
|
2004
2004
|
color: 10349931,
|
|
2005
2005
|
depthTest: !1,
|
|
@@ -2014,7 +2014,7 @@ class Lh extends E.Object3D {
|
|
|
2014
2014
|
f(this, "planeMesh");
|
|
2015
2015
|
f(this, "lineMesh");
|
|
2016
2016
|
f(this, "ballMesh");
|
|
2017
|
-
this.planeMesh =
|
|
2017
|
+
this.planeMesh = ym(), this.lineMesh = wm(), this.ballMesh = Cm(), this.add(this.planeMesh, this.lineMesh, this.ballMesh);
|
|
2018
2018
|
}
|
|
2019
2019
|
updateWithIntersect(e) {
|
|
2020
2020
|
if (!e.face)
|
|
@@ -2027,7 +2027,7 @@ class Lh extends E.Object3D {
|
|
|
2027
2027
|
(e = this.planeMesh.material.map) == null || e.dispose();
|
|
2028
2028
|
}
|
|
2029
2029
|
}
|
|
2030
|
-
const jh = "data:image/png;base64,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", Cm = "data:image/png;base64,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", Im = `
|
|
2030
|
+
const jh = "data:image/png;base64,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", Im = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAGwCAYAAADFUEBtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABtqADAAQAAAABAAABsAAAAABTZ8U6AAAtiklEQVR4Ae2dAXJbSbJdp+d7AfYSHOGVeAPek5fkNXgLjviLmRkZl+CRbtc8UBKRRalZpyIesiorMx/eIcjb+QCh//Y3hwQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkMEbgj7FKFpLA4QS+fPnyx23czJc//V498h2Oy8uXwDYCf/oF3HYWC0vgAAI3QfuP22V+uR35vYplrOsX/03w/kWAVgISmCPwX+ZKWUkCErgR+PvtiKjF9uj/iMx+C1/HOZeABJ4koLA9CdB0CRQBxKxFrLa/Tung7Ni+InEigTkCCtscSytJIATo2BC3dGYIWfvs2Hy9SGATAYVtE1jLHkkgohbxQsACgTkWn8IWEg4JbCCgsG2AasljCXArMgB6DpAWs3/i1EpAArMEFLZZnlY7m0C6snwyMuPqFiT+2Cvhi98hAQk8SUBhexKg6RIoAtyKjItbj1jCWGPxayUggSECCtsQSMtI4EYgYhVx624tYOK/8mXPIQEJDBNQ2IaBWu5oAnRh3GZkHSiIG8J3NCgvXgI7CShsO+la+zQCEa0ciBgWDlnji3VIQAIbCChsG6Ba8mgCdGSxjCsRu/IRr5WABJ4goLA9Ac9UCSwE6Nj6Y/0RsBxXviXdpQQkMEFAYZugaA0J3AnQhdG1xYsPccPKTAIS2ERAYdsE1rJHEohocQsy8xwZdGuse+8e4aMEJDBGQGEbQ2khCXz94AgCxkf8gwZf5u3P2iEBCQwSUNgGYVpKAjcC+eYRRKw7NeaBpLCFgkMCmwgobJvAWvZIAhE1bkUGAAK3zq/W8TkkIIEBAgrbAERLSOCVQISsPzgSd3x0a8xjczgkIIENBBS2DVAteSwBBGsVrV4zxx4LywuXwC4CCtsustY9kUDEio4t8/W9tO7cTuTjNUvgQwgobB+C2ZMcQoD317BX4kanhj0EjZcpgY8joLB9HGvP9PkJRKwiai1odm2f/+fuFf5mBBS23+wH4tP5yxPgViRdWy6I7iwihx/fX/6CvQAJ/G4EFLbf7Sfi8/krE+DfsEW0umvrOdensEFCK4FhAgrbMFDLHU0AQUO0sHRq3JaMdUhAApsIKGybwFr2SAIRsr7ViLAFRsSsha33su+QgASGCChsQyAtI4EbgYhabkdmRLi6M1uFbF2/JPkgAQk8T0Bhe56hFSQAgYgVHVt8iBsWX2zHZe2QgASGCChsQyAtI4EbgQhYjh6s23Yn17HOJSCBAQIK2wBES0jglUC6sBy8l9Zg8MUmBqHrGOcSkMAAAYVtAKIlJPBKIGLFsULBT7emsK2EXEtgiIDCNgTSMhK4EUC8EK0WsZ6zLzQJSGADAYVtA1RLHksggtUfCmkB63kAretjoXnhEpgmoLBNE7XeyQQQNrqzlUX22VPYVjquJTBEQGEbAmkZCdwI8KGQt0SLPazgJCCBYQIK2zBQyx1PgE9FAiICli4NG7+iFgoOCWwioLBtAmvZIwnw/hpfhsxtxxUGQrf6XUtAAgMEFLYBiJaQwCuBCBu/UxEvhG4F9NbeGutaAhL4SQL8Ev5kmuESkMAFgdxi5Fbko9uNj/wX5XRJQALvIaCwvYeaORK4JhBRQ7hi37rlSNx1Jb0SkMC7CShs70ZnogT+jUDEiiObLV6ZR+gYvYdPKwEJDBBQ2AYgWkICrwQQNUSsxWt9X633BCgBCQwSUNgGYVrqeAIRKz4wsgrX99bHwxOABKYIKGxTJK0jgfutx/XDI7zPxm1IBA4rNwlIYJiAwjYM1HJHE+DDIy1azLFHA/LiJfARBBS2j6DsOU4hEPFaOzauvTu3xCl0kNFKYJiAwjYM1HJHE0CwEC3W3IZE3AKJmKOBefES2EFAYdtB1ZqnEki3lq/TYiBkLWL4iNFKQALDBBS2YaCWO5oAHRoQ1tuSLWrZc0hAAhsIKGwboFryWAIRKwQLEYvYPZofC8oLl8BOAgrbTrrWPo1Ad2x0a2FwNe/bk6dx8nolsJWAwrYVr8UPIxCxomPj0hGw2O7c2NdKQALDBBS2YaCWO5pAxGsVsgbSe8x737kEJDBAQGEbgGgJCbwSSLdGx5bujPkKiM5t9buWgAQGCChsAxAtIYFXAmvH9gjMI8F7FK9fAhL4CQIK20/AMlQC3yEQYYto0ZHFZvRtR/bad4/yUQISGCGgsI1gtIgEXgjQsSFa2MaDD9t7ziUggQECCtsAREtI4JVAurUIFscVmKsu7ipOnwQk8E4CCts7wZkmgQcE8jvF7cYrEbvyPSilWwISeA8Bhe091MyRwDWBfE9kd2tXtxvxYa8r6ZWABN5NQGF7NzoTJfBvBBC1WDozgvC1ZU8rAQkMElDYBmFa6ngCES0+Fbl+pD9Chy9xORwSkMAGAgrbBqiWPJYAgoW4NQj24lu7uY5zLgEJPElAYXsSoOkSKAIRtO7KEDC6M9aJwVfpTiUggQkCCtsERWtI4E6gu7J4unPLHsKWPYUtFBwS2EBAYdsA1ZLHEohY0bFFxBC6R/NjQXnhEthJQGHbSdfapxFAyHLd3a09mp/Gx+uVwIcQUNg+BLMnOYRABIyOjUtmna6NW5HxeSsSQloJDBNQ2IaBWu54AnRtCFeLGbck/3WjxP7xwAQggWkCCts0UeudTCDfPJKjRwsYc76hpOOcS0ACQwQUtiGQlpHAjUCEK7cZ6cwChTmdG+KGTYxDAhIYJKCwDcK01PEEIlYcwEDAsKuftVYCEhgioLANgbSMBG4EHolad22JYS00CUhgAwGFbQNUSx5LILch+RRkQ6Bba8u845xLQAIDBBS2AYiWkMArgYhVv8fW76vRpeETmgQksImAwrYJrGWPJBBh4wiAtSt7a+9IYF60BHYQUNh2ULXmqQQQrti1M0Pk2GN9KiuvWwLbCChs29Ba+EACvMcWUVvfa+NWZLBE1BS2kHBIYAMBhW0DVEseTQDRamFrUcs8h0MCEthEQGHbBNayRxKImPGtIi1e3Z1l3kJ3JCgvWgI7CShsO+la+zQCb92KbBYKW9NwLoFhAgrbMFDLHU2A25DdoV0ByX7fqryK0ScBCbyTgML2TnCmSeCCAILVHRlzbNIyd0hAApsIKGybwFr2SALpwujaAED3ho1/jSFWKwEJDBBQ2AYgWkICrwRasBCytTvDLzQJSGATAYVtE1jLHkkgorW+d/ZIyNa4I4F50RLYQUBh20HVmqcSQNjo0rJmDpNHQse+VgISeJKAwvYkQNMlUATW99giao86MwWuwDmVwCQBhW2SprUk8OevyqKD+9cNDN1bW3lJQAIbCChsG6Ba8lgC6c440q0hYvk2Egb+7DkkIIENBBS2DVAteSyBiFVEbL0F2SKWPYcEJLCRgMK2Ea6ljyPQ3RoXH1HLgaAhco/eeyNPKwEJvJOAwvZOcKZJ4IIAYhW7Chni1vaihC4JSOBZAgrbswTNl8A3AhEtxI3ODCFLVPu+ZTmTgARGCShsozgtdjiBCBdHUKRruxKz9ifOIQEJDBJQ2AZhWup4AhGxdGyxLV6IG4CyXn3saSUggScJKGxPAjRdAkUgYsX7a9ySbIEjND6HBCSwiYDCtgmsZY8kQLfW3VjPgRLflZ99rQQk8AQBhe0JeKZK4IIAHRvCRceGTUrPL0rokoAEniGgsD1Dz1wJ/JnA2rGtnVm+Witj9d+9PkpAAiMEFLYRjBaRwAsBhC2W0d0Z++0jTisBCQwRUNiGQFpGAq8E8pVa6cgQLyyAWHOrEr9WAhIYIqCwDYG0jARuBNKR5Yh4ddeGiLUf3y3UIQEJTBJQ2CZpWut0AtxqjGjl6O6MOYwUNkhoJTBMQGEbBmq5owkgaIgWlk4NccMeDcuLl8AuAgrbLrLWPZEAtyK59ghbixjC1z5itRKQwBABhW0IpGUk8EqA99jo1uLuuaLmS0UCmwkobJsBW/4oAnRsES9Gd2nxIXJY4rQSkMAQAYVtCKRlJHAjgFjRtQVKfBE6fKyz55CABDYQUNg2QLXksQQiWhGwDESuhax9zO/RPkpAAmMEFLYxlBaSwIuYRbA4rpCke/N9tisy+iQwREBhGwJpGQncCETQeJ8tQHivLf51Hp9DAhLYQEBh2wDVkscSiFjlK7UYLV49Z18rAQlsIKCwbYBqyWMJRNT4kMgVhIhbd25XMfokIIEnCShsTwI0XQJFIMJFZ4Zlm/fV8PMhE/a1EpDAEAGFbQikZSRwIxDRWju2+CJq7Y8PgbtNHRKQwCQBhW2SprVOJ0AXhg0PRA02CBoWv1YCEhgioLANgbSMBG4EIlYRtVhuPcZm4LuvfJSABLYRUNi2obXwoQS45dhdG6IWmyMDe1/5KAEJjBFQ2MZQWkgCLx/1R7xi6dqYNyKFrWk4l8AgAYVtEKaljifQohYY3bVF5BA6bk8eD0wAEthBQGHbQdWaJxNAzBC5sEDQ6NxYn8zJa5fANgIK2za0Fj6QQIQrwhbbo9eZ/+t2tK9jnUtAAk8SUNieBGi6BIpARC3fPtIdGfPYDAQNe/f6KAEJjBFQ2MZQWkgCL6IVwWrRYo4Npv4+SbFJQALDBBS2YaCWO5rA+l2RLWbducXfe0dD8+IlME1AYZsmar2TCSBYV6KFD8uHTE7m5bVLYAsBhW0LVoseSmAVtn5fjXnQIG6HYvKyJbCXgMK2l6/VzyPQnVgLWM9DpePOo+QVS2AjAYVtI1xLH0cgYpWju7OGEHFjbxW6jnMuAQk8QUBhewKeqRJYCETUECwsIRG0+HIgbuxpJSCBQQIK2yBMS0ngRqA7NoQMMPmH2Rmr/+71UQISGCGgsI1gtIgEXghE1DJiW+BenLcH/vE2a60EJLCBgMK2AaoljyWQTqxFDaFrIN21td+5BCQwREBhGwJpGQncCCBsb91qpGtLjEMCEthAQGHbANWSxxJIh4aoxfIhkRaxK9+xwLxwCewgoLDtoGrNkwn090C2oMEkPm5H4tNKQAKDBBS2QZiWOp5Ad2x8vD9Q6NIyj7ARl7VDAhIYJqCwDQO13NEEEK1AoFuLqK0fImnROxqYFy+BHQQUth1UrXkqAYQN4cLGn3kGc4Tv7vVRAhIYI6CwjaG0kARe/p1aBKtFizk2mHouNglIYJiAwjYM1HLHE8htR7qzfi+tPzASYVPcjn+pCGAXAYVtF1nrnkiA99KwLV78+zW49B4+rQQkMEBAYRuAaAkJvBKIoHWXBhhEjK4ta3zEaCUggSECCtsQSMtI4JVAhC23IhE4bksiZr0WmgQksIGAwrYBqiWPJRDxQtgQstiIGevu2o4F5YVLYCcBhW0nXWufRgDxynX3e2qIXfzME+uQgAQ2EFDYNkC15LEEIlqrcCFgsd6GPPal4YV/JAGF7SNpe65TCETEELi+ZsWtaTiXwCYCCtsmsJY9kgCChqhh42f4HhsktBLYREBh2wTWskcSQNhyyzGiltGiljX+zB0SkMAGAscI25cvX/IHhj8y+ePCmj807QvqK3/7EkMNbO8zZ++RTdy6l9rk9/6Vb41lfRW7nidr6pPXMfERs+53feKI7Rr4Oqb3OX/73po/E881XFmeZyz7PA+ulfVqEx/ff3+1mSen31Pjk5F0bP/r9pr8H68x2SM2+6yxN9fX/9UN+T9iiaHO9+zVuR/l/ExsarwVv14fzxvLc2Dddt1jvdrkxIddz5l175PPua7W1GLvkU3tf77WJyY+ancd5uwnnnnb+FMzg5rYl7p//PEH9e9RBz3mF/CIUcLWfxjzyTXWWP4oscYmlr237Fs11zxi8zPIeTjXapPHf4QkJ4P42AxyqMm58K9xWa+xySEPS17Oj6/j2E8t/Fd1E7fmX8URs8ZTf/Wva/K7Nr63bNd/VLPzmV/FZi9HRvb5gxObwR8c/ohhs88c2778IYu/97LffzTZw2b/H7ej6/Temk9s/OQQv1rOu/rJw2afA99b9lHd9TzUbD/ztT6x+L8X92h/zU8cz5e9tsw7rmtnP/kZ8ffRudknjvNhqYcl78tN3DI/buSX7tTRf3xggC82Lwj+OF3tx3e1T+yP2h954fHHkfPFMu98fFfn5nrIJbbzH+Vx/t7vfObZT2zWnC++jPU8iem8xLSv89e4xDK6buJy/hw/Ovqcb51nrbcKZ+dSExZXNvU6Z62/ruGxXh/X/1YtePC8sDkHdcnnua7nz5o8LHWJpQZrLPGssWt8r3lexLYlLpbrz37W7K35+BOXwfpR/j3q22PHrfl93m8Z386Bjzhs/OvzJLZt4juO/B/l37WOmK9gPvtF8wLJdeaFwos1/gzWvIiIaU74Ov6t/MSxj8XH+fCzXm3iGZwfG3/nM8dSa81nPzYHce0nJxY/cdj2r/PEXMVR79Fe7yeGutjsM+Jb/dSNfZTfeeR3Xup3fmLyOiCPvcSR3zEdmzlHxxLfIpl6/Zx5TvFnsE5u1+rnc5Wf82cQh717v/m7bmIyOE/m5GGv4snDJi+j62TNPv5ex5d1DvaxxMXC+Tb9Wi/zq/yOoUbi1rqPfJ2feY/Uy0GtWHyJw48Pm72MrDPIyxxf5gzysPF37ayzhy/r4wYv9k9/4a8tef/A84Pnhx//jwziyMPiTw3q9rmofRXHXudSF9sxV3HU/dGf51r36rlyzr4ezt2245ivNjV4jn1u5uyteVn3Na1xa37WHMntedbkU3PNT8w6Eksce6yx1GUfm33yiY3lIK7zE5+jfcTFdp2sE8ugLjH4Y1MP/2qzT27mGTzv++r+yHMiljr4OzZz9vE/Wnc+tcnBJqbj4qfe6ienY/CRg43/rXzyiOm8dd5r8rDkZ524PvDFZvAzfVRvzb2q3b571YMeAfjpL/n1Pba+zrw4+OH3PDH9guo5+eRhOx9fYpljyWfvkZ+43ud5cK7ssc8eddtSizwsfmpc2fiI73N0/TUvex17lc8+ucRQt9f4YtfR+WvNxLKPJZ81ltzVEo9NfD+3zo8fMcDGx4Gva2VOjbbUwpe4+HqwF9t77WeePGJi8WOzz7xtzxOTQX722Mf3EvAakzn7+B+t33pu1CaGWmt9aseusexd5RLfMZyz49eanJ+/oeSvljxqYhPHQa2265w19ThP/PioHd/fTn1/LdfODyXzTz0e/JB5QeTae86Lpn0dgx+77nV+Yoh7ZJPfo/Px44td6xATyx4+1uRhiWW/4zlX7+HrOOarJfYqfz3/mpucNYY6jyznoxbrjseXmPaT05bYxBGb/cyzhw+bPQYxWWfOQU0sudi38rNHHpa678knB8u5Y+N7dA72yMOSx3rNz34G+6u97357TH5iOo6aiWp/1j2yR2zH4cNmjwMfdXpNjfYRxx7r2PgSu+7hwxIb26PzMl/XV8+j8zN/ibn4j/k17tOujxG2+lQkP8x8goixvlh4MeHHrvHxc/Re56/7iVvrxUdOz78Xl1gG+Vc5xMQmjueExR8bH7WyZsTX/vU87LW/5+THwj77HFf5OTf7mTPwYePPnLHWyh7nJ2a12adG5+MjvuPwJSZHrquvjXUsMV375r48Z/xdJ2tG51Mztv3MyYmND3/i19F7PeccxLPHOpZ6WGLIxU9O+5l3nc7HH9/qp17s1R7njWUfy3mJaT/ztX77yefnxB7noi412Mfix+LvPM7RPuLIi+39rK9i4j9mHCNsrz9RXihZXv3wr3zJwc8LiHUs80c128/51xz8if3e4DkQl1rk9x7naB9x2euDWm2pm1/crtX1Et97VzWJ59ysySW/1+27On+fp2NT42oQc/UcEo+fuK7B3vfisr/m57nnWGskltE5mRPLnDhs9nsQv/qpiz+Wj4uzlzqchzhq95r4+NpPPjnEscbih0XWfaxxrGNzPvI5P+uOy/yqJn5ief5Xsfg6h3jOzZrY2Az899WfnzP71CAmlvz2vVVr3eu8P80f3KX6U8xnXZwmbPk58kLqF8jqYy/+HPmFzFjj7t5/93c+MdjUyD4xsWtd9vAnt+dZM9b8R3Hx9x5/ZDgXlpi1LudjnzV5WfOHE1+fkzwsTK/Oc5XP+ZLPfizz7HfNrDlX5gzyk0c8cdTC4k9ufBzkxZ9BXPyJiSWG9ZVdfc0ve9S9Tb/O8WU/R0b77p5ve71+FNf+zHnu+FMj817Hl5HnjJ/ng8WfOOax7MefwR7+Pv8av66JTS75WOq+nOT1AR/xxGabeWoyf037+hy/l8/+Vd66lxjOg01Mz7vOVX728ZP3Yr0VCbozLD98XgyPrjpxxK4x5LKPTVz2Hu3jX+utecRR961fNGr1eeMjl3mv4+McmWes67v3/sgfj6yos8ZzfvZjmd+r3B/xJT5zbMdk3vmcfz1n4lZf53Eu7NW5spf62buqdXN/vY7OJy+5OThH4vGtlpyOTXwG58fevffHxJPDudbnSt7qT4Xk9CD2ytexnLPPT05qJPbqfPg6n1h8qdPzrMlj72q/fT3v3DU/cVwXOcRjk3M12CcPi5+crNtHHPucn3XHxtfrnmcvtdZ6iemaWZOHvbnOHEcBuP0XTDpUXgBYutZ13X7y2kf8lU3cz8RSI69C8mLxY/FdxcXXcdTBh1391GT/LftWLM+J/D7P1RzfWzUf1cLfdj0/e12fmCvb8ez3c4yPmNWy9z9vk/+WxW2Qmz9Iicfyx+g/b77/9+rnD9dqb9tf/3iRF9txicn60X7HMu9Y8qlBzCOb+OSvz+Mqntiuje+RvapDfnJ6/3vPoc+RzjK5Gev1v1Vnje3zrx127/U85/zR8/dzuXquXZfzr8+R9bHfPMLXNAXgpx+3e878wD/9tXqBH0/g9h9O//d21v96O/LHpwfr2LwGI3T/5/Z6/N8d5FwCEpghcJSwzSCzigQeEmjhajFLAl1b/BwPC7khAQm8n4DC9n52ZkpgJYBgxUbIesSXQcx95aMEJDBOQGEbR2rBwwlwu/vqPbagQfQQusNxefkSmCegsM0zteK5BOjGrsQLISPmXEpeuQQ2E1DYNgO2/FEE0q3RsWEDIPN+jy0+hC5zhwQkMEhAYRuEaanjCXQ31mIWMAjZao+HJgAJTBNQ2KaJWu9kAhEtOrV0aHRpfJCkhQ+BO5mX1y6BLQQUti1YLXoogVW4ELTg6D3Wh2LysiWwl4DCtpev1c8ikG5tvQWZT0ciarF0cZk7JCCBDQQUtg1QLXk0gQgW4hYQfO1Ri9rRgLx4CewmoLDtJmz9kwhExBC12Aw6tPvq/hiRs2NrIs4lMEhAYRuEaanjCSBYLVrrPOsrsTsengAkMEVAYZsiaR0J/Pt7aWGCkPU83VwLXvYcEpDAEAGFbQikZSRwIxCx4hZkC9c677XgJCCBYQIK2zBQyx1NIKKW99lyqzFHRkSMW4/47Nhe0PgggT0EFLY9XK16JoGIGN0YNiSYt2V+JimvWgIbCShsG+Fa+jgCEat0Y2vHFhB0bYlhHr9DAhIYJqCwDQO13NEEIlociFvWDPZ4Hw6/VgISGCSgsA3CtNTxBHjvDDHjW0cicuxlnkHMfeWjBCQwRkBhG0NpIQm8EOhu7B83D0IGHgQNi18rAQkMEVDYhkBaRgI3AhG1FjagRMQicG0VNuhoJTBMQGEbBmq5owlErFbBYr3ao0F58RLYSUBh20nX2qcRQNhi6dDCgDk2vqvOLn6HBCTwJAGF7UmApkugCETQECw6tGwzx1aKUwlIYJqAwjZN1HonE+A9tu7M4IEPiwCyr5WABIYIKGxDIC0jgRuBiFW6sqvODB9WYBKQwCYCCtsmsJY9kkBEK+JGVxYIzGMZCCBrrQQkMEhAYRuEaanjCUTY8iXI/3E76MxWG0jx4c/aIQEJDBJQ2AZhWup4AnRi+YfZ+daRq5GYDIXtzsFHCYwTUNjGkVrwcAII1ipu+GP7tuThuLx8CcwTUNjmmVrxXALpxujIIl65LZnB+2zM6exeNn2QgARmCShsszytdjaBdGPdmdGdtY9uDd/ZxLx6CWwgoLBtgGrJYwlErLpjy3oVsKy7gzsWlhcugV0EFLZdZK17IoEWslXQmgfi1z7nEpDAEAGFbQikZSRwI8B7Z4jaVWfmrUhfKhLYTEBh2wzY8kcRiKB1N5Y5QgYIRA+LXysBCQwRUNiGQFpGAjcCq7ABJX66N2wLIHFaCUhggIDCNgDREhJ4JcCtyAZCZ7bajnEuAQkMElDYBmFa6ngCEbb827V0ZXRmgZI5IwLHgU8rAQkMElDYBmFa6ngCCFYErr9Si24tgJhjj4cmAAlME1DYpola72QCESveO+NbRx7xUNgekdEvgScJKGxPAjRdAkUgYsXRtx8TEv/qi98hAQkME1DYhoFa7mgCES86tsyvBn7sVYw+CUjgCQIK2xPwTJXAQgBhozNDvFgjelmzt5RwKQEJPEtAYXuWoPkS+EYgwhXBQrQQsKyZJ7pjsnZIQAKDBBS2QZiWOp5ACxZiFiiP5scDE4AEdhBQ2HZQteapBCJgfbvxrXliHRKQwAYCCtsGqJY8lkDECsFi3rcgA6b3jwXlhUtgJwGFbSdda59GIP92rbs0xG3lsIrduu9aAhJ4goDC9gQ8UyWwEIiQRdzyrSN0ZkvIyzIxb+1f5eiTgAR+kIDC9oOgDJPADxCgQ+NbR1aBazHr+Q+UNkQCEvhRAgrbj5IyTgLfJ4CwxeZ24z9eU7j1iI1bYXuFo5HANAGFbZqo9U4mELHiPbYWLubYMOr5ycy8dgmME1DYxpFa8GACEasIG51ZbEaLGL77jo8SkMA4AYVtHKkFDyYQUYuIIWTYRoIP23vOJSCBAQIK2wBES0jglUDEahWsrOngEkbHtsZlzyEBCQwQUNgGIFpCAq8EIlZ9KxIwq4hlvfqI1UpAAk8SUNieBGi6BIoAgoW41daLkHXn1nvOJSCBQQIK2yBMSx1PIIKWI+OtjgwBvEf6KAEJjBJQ2EZxWuxwAqtgIW68r4boZc38cGRevgTmCShs80yteC6BfONIDoSMW48RuJ6fS8grl8AHEFDYPgCypziGAB1bd2P5Wi3WiFuA0M0dA8cLlcBHEVDYPoq05zmFACLG9fK9kVm3mPWcWK0EJDBAQGEbgGgJCbwSiKjRtdGdxTIQM/bwayUggUECCtsgTEsdTyDCxXtsiBg2cDJX1ELCIYGNBBS2jXAtfRwBRCy2Ray7Nm5VEnscJC9YArsJKGy7CVv/JAIRK4Qr1414YWFh1wYJrQQ2EFDYNkC15LEEImAcLV7dsWW/946F5YVLYBcBhW0XWeueSCDdGh1bd2k9DxfE70RGXrMEthNQ2LYj9gQHEYhgRdjoyK46tYNweKkS+DUEFLZfw92zfk4C+UQk3VhEje6Nq6Vz686OPa0EJDBEQGEbAmkZCdwI0LHF5htHMjLvDg6xQ+RegnyQgATmCChscyytJIEQ4N+x0b1d3Y5U1HytSGAjAYVtI1xLH0eAbgxLpxYQiFl3cMcB8oIl8BEEFLaPoOw5TiEQ0aJjyzUjZuv1x/9ob411LQEJ/CQBhe0ngRkugTcIrIKFeHXnlvR1/UZJtyQggZ8loLD9LDHjJfCYQG5BruKWaASOzHWNXysBCQwQUNgGIFpCAq8EELVHwtWd2qMYYUpAAk8SUNieBGi6BIpAxIoPjpT767TFrOdfA5xIQALPE1DYnmdoBQlAIGLFQXcWy0DM2MOvlYAEBgkobIMwLXU8gQhXd2yI3ArmkX+Ncy0BCbyDgML2DmimSOABgXzUP0e+dSQCR2e2dm0K2w2OQwK7CChsu8ha90QCCNY/bhePmCFudHL4E+uQgAQ2EFDYNkC15NEEELBAQLwQt/YdDcmLl8BOAgrbTrrWPo1ARK1vQXL97UPkED1itBKQwBABhW0IpGUkcCPArUhECxELHHzMex2fQwISGCKgsA2BtIwEbgTSmSFuiFrWmTPYV9ggopXAMAGFbRio5Y4msIpWi1fPj4bkxUtgNwGFbTdh659EIOKVri0DkaNzu3u/PSp031g4k8AoAYVtFKfFDieAmCFaLWr4gqj9hyPz8iUwT0Bhm2dqxXMJRLzo2EKhxaypxP9or+OcS0AC7yCgsL0DmikSeEAg3zrCR/sTgnitHdq6flBOtwQk8B4CCtt7qJkjgWsCETI+GZmv1WIgcFlnzsG+VgISGCSgsA3CtNTxBBC2gEj35pCABH4BAYXtF0D3lJ+WAN1aBC63GzOYY/H1e3EvgT5IQAIzBBS2GY5WkQAEImAc7cs8fkbP8WklIIEBAgrbAERLSOCVQMSKW5DdsWWbD4ys/tdUjQQkMEVAYZsiaR0JfPvgSFhE5BAz2MRnpwYNrQQ2EVDYNoG17JEE1vfYELIIHO+p2bEd+dLwoj+SgML2kbQ91wkEELBca3dnzLEnsPAaJfBLCChsvwS7J/2kBCJaEbb1FmT72FPgPumLwMv69QQUtl//M/AZfB4CESsEKxYRyxXiZ97r+BwSkMAQAYVtCKRlJHAjkE9ERrAQLea8rxZI+PqWZfwOCUhgiIDCNgTSMhK4EYho8XH/ALkStPgdEpDARgIK20a4lj6OQLqwfj+tAXBbEktX1zHOJSCBAQIK2wBES0igCHCrsVwvU4RstWucawlI4EkCCtuTAE2XQBG46tjo0LwtWaCcSmAnAYVtJ11rn0agu7W1M2N9GhOvVwIfTkBh+3DknvATE0DYeJ/t0aUmLjEOCUhgAwGFbQNUSx5LoAXLDu3Yl4EX/qsJKGy/+ifg+T8TgXRhdG28p5b1+j4bMZ/p2r0WCfw2BBS23+ZH4RP5BAQQLGwuKaLGrcm+/ZgYhwQksIGAwrYBqiWPJRCxyj/QplsLCEQNseu97DskIIFhAgrbMFDLHU0gIpbj77cjQsYtSOY318s+cVk7JCCBYQIK2zBQyx1NIIIVEfvHKwWEraHQsSXOIQEJbCCgsG2AasmjCUTcGJkjZPgUNEhoJbCJgMK2CaxljySw3mKkY+NWZFsF7siXiBf9EQQUto+g7DlOIRCxasG6muPDnsLG65TAhxFQ2D4MtSc6gEDEioNuLZfdtyMRNOwBWLxECXwsAYXtY3l7ts9NIGLFe2wtXD3/3AS8Ogn8BgQUtt/gh+BT+DQEELa1W4sfH1ax+zQ/di/kdyOgsP1uPxGfz1+ZQLq1CNYqWu1jD/tXvl6fuwR+SwIK22/5Y/FJ/UUJRKz6I/5Z06HFMuJX2KChlcAwAYVtGKjljieAYD2yAGKftVYCEhgioLANgbSMBG4E8o0j/E7la7XWwQdL4lfYVjquJTBEgF/CoXKWkcDxBBCsiBy3H+Nb58QdD0wAEpgmoLBNE7XeyQTSkdGV8d4aotZ+5iez8tolsI2AwrYNrYUPJBARoxPDBsPVvH0HovKSJbCPgMK2j62VzyMQsaIbo2O7ovDW3lW8PglI4CcIKGw/ActQCXyHQISNTgx7ldJxV/v6JCCBJwgobE/AM1UCC4F0ay1adGbYhGee8Zbw3SN8lIAE3kVAYXsXNpMkcEkgYsWtyAQgXtj2Ze6QgAQ2EFDYNkC15LEEEDY6tO7O2pe4FrtjgXnhEthBQGHbQdWapxJAsFq0mGPDhrhTOXndEthKQGHbitfihxH45+168zsV4UqHxm1JOreb68WnsIWEQwKbCChsm8Ba9lgCEbceiFxsBiLH+u71UQISGCOgsI2htJAEXrqxdGm8nwaSVcSyXn3EaiUggScJKGxPAjRdAkUAwULcauvr7UkEDdsxziUggQECCtsAREtI4JVAxIr31d4Sruy9tS9QCUjgCQIK2xPwTJXAQmAVLMSL99UQPdZLuksJSGCCgMI2QdEaErgTWG9B8l5bBI55IlcBvGf7KAEJjBBQ2EYwWkQCLwRasBCzbFzN43NIQAIbCChsG6Ba8lgCCBtCxjrdWt+GZH4sKC9cAjsJKGw76Vr7NAIRMkQrc8bVvH3EaSUggQECCtsAREtI4JVAC1u/p7YCemtvjXUtAQn8JAGF7SeBGS6BNwjkW0f+/rof8boaVx3dVZw+CUjgnQQUtneCM00CFwS6Y7vY/uqyY/uKwokE5gkobPNMrXguAd43i23x6u5t3TuXllcugU0EFLZNYC17JIGIVosbEPD1evWxp5WABJ4koLA9CdB0CRQBhI1u7apTq3CnEpDADgIK2w6q1jyVQH8wJKLGunnYqTUN5xLYQEBh2wDVkscSaNF6mf/xxx9fbuNm7vZYMl64BCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQlIQAISkIAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQgAQn8NQn8fyHnyuSABiy2AAAAAElFTkSuQmCC", Pm = `
|
|
2031
2031
|
<style>
|
|
2032
2032
|
.range-piece__container {
|
|
2033
2033
|
position: absolute;
|
|
@@ -2059,7 +2059,7 @@ const jh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAADYCAYAAACJIC3tAA
|
|
|
2059
2059
|
height: 100%;
|
|
2060
2060
|
opacity: 1;
|
|
2061
2061
|
position: absolute;
|
|
2062
|
-
background: url(${
|
|
2062
|
+
background: url(${Im}) center / contain no-repeat;
|
|
2063
2063
|
}
|
|
2064
2064
|
@keyframes dotting {
|
|
2065
2065
|
0% {
|
|
@@ -2176,17 +2176,17 @@ class Oh {
|
|
|
2176
2176
|
this.hooks.off(), this.disable(), this.magnifier = null, this.pointHelper = null, this.pointDomHelper = null;
|
|
2177
2177
|
}
|
|
2178
2178
|
}
|
|
2179
|
-
function
|
|
2179
|
+
function Bh(i) {
|
|
2180
2180
|
return !wi(i);
|
|
2181
2181
|
}
|
|
2182
2182
|
function wi(i) {
|
|
2183
2183
|
return i != null;
|
|
2184
2184
|
}
|
|
2185
|
-
function
|
|
2185
|
+
function Rh(i) {
|
|
2186
2186
|
return /^https?:\/\/|^\/\//.test(i) || /^data:/.test(i);
|
|
2187
2187
|
}
|
|
2188
2188
|
function wa(i, t) {
|
|
2189
|
-
return
|
|
2189
|
+
return Rh(t) ? t : `${i}${t}`;
|
|
2190
2190
|
}
|
|
2191
2191
|
class wo extends yo {
|
|
2192
2192
|
constructor() {
|
|
@@ -2242,29 +2242,29 @@ const G2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
|
2242
2242
|
PointDomHelper: zh,
|
|
2243
2243
|
PointHelper: Lh,
|
|
2244
2244
|
PointSelectorHelper: Oh,
|
|
2245
|
-
Rectangle:
|
|
2245
|
+
Rectangle: fm,
|
|
2246
2246
|
absoluteUrl: wa,
|
|
2247
|
-
getCoordsFromClient:
|
|
2247
|
+
getCoordsFromClient: gm,
|
|
2248
2248
|
getCoordsFromElement: Sh,
|
|
2249
2249
|
getFrameTime: km,
|
|
2250
2250
|
getIntersectFromRelativePosition: Th,
|
|
2251
|
-
getRaycasterFromFivePointer:
|
|
2252
|
-
isAbsoluteURL:
|
|
2251
|
+
getRaycasterFromFivePointer: pm,
|
|
2252
|
+
isAbsoluteURL: Rh,
|
|
2253
2253
|
isModelLike: Dh,
|
|
2254
|
-
isNil:
|
|
2254
|
+
isNil: Bh,
|
|
2255
2255
|
isPanoramaLike: ba,
|
|
2256
2256
|
nextFrame: Io,
|
|
2257
2257
|
notNil: wi,
|
|
2258
2258
|
requestAnimationFrameInterval: ms,
|
|
2259
2259
|
tweenProgress: Co,
|
|
2260
2260
|
uuid: ct
|
|
2261
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
2261
|
+
}, Symbol.toStringTag, { value: "Module" })), Vh = "v2.0.1", kr = `CSS3DRenderPlugin@${Vh}`;
|
|
2262
2262
|
let Mm = class extends ls {
|
|
2263
2263
|
constructor(e) {
|
|
2264
2264
|
super();
|
|
2265
2265
|
f(this, "five");
|
|
2266
2266
|
f(this, "behindFiveContainer");
|
|
2267
|
-
f(this, "VERSION",
|
|
2267
|
+
f(this, "VERSION", Vh);
|
|
2268
2268
|
f(this, "staticPrefix", "//vr-image-4.realsee-cdn.cn");
|
|
2269
2269
|
/**
|
|
2270
2270
|
* @description 根据传入的四个点位创建一个 3d dom容器,可以通过ReactDom.render()的方式将react组件放到容器中
|
|
@@ -2354,7 +2354,7 @@ let Mm = class extends ls {
|
|
|
2354
2354
|
return wa(this.staticPrefix, e);
|
|
2355
2355
|
}
|
|
2356
2356
|
};
|
|
2357
|
-
const
|
|
2357
|
+
const Qh = (i) => new Mm(i), Po = Qh;
|
|
2358
2358
|
function Mr(i, t, e = new ie(1, 1, 1), n = !1) {
|
|
2359
2359
|
const s = new yh(i, t);
|
|
2360
2360
|
return s.setMaterial({ dashed: n, color: e, linewidth: 1 }), s.remove(s.points), s;
|
|
@@ -2427,14 +2427,14 @@ function xm(i) {
|
|
|
2427
2427
|
return !!i && (typeof i == "object" || typeof i == "function") && typeof /** @type {any} */
|
|
2428
2428
|
i.then == "function";
|
|
2429
2429
|
}
|
|
2430
|
-
function
|
|
2430
|
+
function Gh(i) {
|
|
2431
2431
|
return i();
|
|
2432
2432
|
}
|
|
2433
2433
|
function ul() {
|
|
2434
2434
|
return /* @__PURE__ */ Object.create(null);
|
|
2435
2435
|
}
|
|
2436
2436
|
function Je(i) {
|
|
2437
|
-
i.forEach(
|
|
2437
|
+
i.forEach(Gh);
|
|
2438
2438
|
}
|
|
2439
2439
|
function on(i) {
|
|
2440
2440
|
return typeof i == "function";
|
|
@@ -2451,11 +2451,11 @@ function Dm(i) {
|
|
|
2451
2451
|
}
|
|
2452
2452
|
function Ci(i, t, e, n) {
|
|
2453
2453
|
if (i) {
|
|
2454
|
-
const s =
|
|
2454
|
+
const s = Nh(i, t, e, n);
|
|
2455
2455
|
return i[0](s);
|
|
2456
2456
|
}
|
|
2457
2457
|
}
|
|
2458
|
-
function
|
|
2458
|
+
function Nh(i, t, e, n) {
|
|
2459
2459
|
return i[1] && n ? tt(e.ctx.slice(), i[1](n(t))) : e.ctx;
|
|
2460
2460
|
}
|
|
2461
2461
|
function Ii(i, t, e, n) {
|
|
@@ -2475,7 +2475,7 @@ function Ii(i, t, e, n) {
|
|
|
2475
2475
|
}
|
|
2476
2476
|
function Pi(i, t, e, n, s, o) {
|
|
2477
2477
|
if (s) {
|
|
2478
|
-
const r =
|
|
2478
|
+
const r = Nh(t, e, n, o);
|
|
2479
2479
|
i.p(r, s);
|
|
2480
2480
|
}
|
|
2481
2481
|
}
|
|
@@ -2502,17 +2502,17 @@ function fl(i) {
|
|
|
2502
2502
|
"px"
|
|
2503
2503
|
];
|
|
2504
2504
|
}
|
|
2505
|
-
const
|
|
2506
|
-
let Ca =
|
|
2505
|
+
const Hh = typeof window != "undefined";
|
|
2506
|
+
let Ca = Hh ? () => window.performance.now() : () => Date.now(), Ia = Hh ? (i) => requestAnimationFrame(i) : J;
|
|
2507
2507
|
const ai = /* @__PURE__ */ new Set();
|
|
2508
|
-
function
|
|
2508
|
+
function _h(i) {
|
|
2509
2509
|
ai.forEach((t) => {
|
|
2510
2510
|
t.c(i) || (ai.delete(t), t.f());
|
|
2511
|
-
}), ai.size !== 0 && Ia(
|
|
2511
|
+
}), ai.size !== 0 && Ia(_h);
|
|
2512
2512
|
}
|
|
2513
2513
|
function Pa(i) {
|
|
2514
2514
|
let t;
|
|
2515
|
-
return ai.size === 0 && Ia(
|
|
2515
|
+
return ai.size === 0 && Ia(_h), {
|
|
2516
2516
|
promise: new Promise((e) => {
|
|
2517
2517
|
ai.add(t = { c: i, f: e });
|
|
2518
2518
|
}),
|
|
@@ -2532,7 +2532,7 @@ function ue(i, t, e) {
|
|
|
2532
2532
|
const n = Ea(i);
|
|
2533
2533
|
if (!n.getElementById(t)) {
|
|
2534
2534
|
const s = D("style");
|
|
2535
|
-
s.id = t, s.textContent = e,
|
|
2535
|
+
s.id = t, s.textContent = e, Wh(n, s);
|
|
2536
2536
|
}
|
|
2537
2537
|
}
|
|
2538
2538
|
function Ea(i) {
|
|
@@ -2547,9 +2547,9 @@ function Ea(i) {
|
|
|
2547
2547
|
}
|
|
2548
2548
|
function Tm(i) {
|
|
2549
2549
|
const t = D("style");
|
|
2550
|
-
return t.textContent = "/* empty */",
|
|
2550
|
+
return t.textContent = "/* empty */", Wh(Ea(i), t), t.sheet;
|
|
2551
2551
|
}
|
|
2552
|
-
function
|
|
2552
|
+
function Wh(i, t) {
|
|
2553
2553
|
return x(
|
|
2554
2554
|
/** @type {Document} */
|
|
2555
2555
|
i.head || i,
|
|
@@ -2584,7 +2584,7 @@ function Ee() {
|
|
|
2584
2584
|
function be(i, t, e, n) {
|
|
2585
2585
|
return i.addEventListener(t, e, n), () => i.removeEventListener(t, e, n);
|
|
2586
2586
|
}
|
|
2587
|
-
function
|
|
2587
|
+
function Fh(i) {
|
|
2588
2588
|
return function(t) {
|
|
2589
2589
|
return t.stopPropagation(), i.call(this, t);
|
|
2590
2590
|
};
|
|
@@ -2639,7 +2639,7 @@ function Eo(i, t) {
|
|
|
2639
2639
|
function q(i, t, e) {
|
|
2640
2640
|
i.classList.toggle(t, !!e);
|
|
2641
2641
|
}
|
|
2642
|
-
function
|
|
2642
|
+
function Yh(i, t, { bubbles: e = !1, cancelable: n = !1 } = {}) {
|
|
2643
2643
|
return new CustomEvent(i, { detail: t, bubbles: e, cancelable: n });
|
|
2644
2644
|
}
|
|
2645
2645
|
class no {
|
|
@@ -2763,13 +2763,13 @@ function yn() {
|
|
|
2763
2763
|
throw new Error("Function called outside component initialization");
|
|
2764
2764
|
return ds;
|
|
2765
2765
|
}
|
|
2766
|
-
function
|
|
2766
|
+
function Uh(i) {
|
|
2767
2767
|
yn().$$.before_update.push(i);
|
|
2768
2768
|
}
|
|
2769
2769
|
function wt(i) {
|
|
2770
2770
|
yn().$$.on_mount.push(i);
|
|
2771
2771
|
}
|
|
2772
|
-
function
|
|
2772
|
+
function Xh(i) {
|
|
2773
2773
|
yn().$$.after_update.push(i);
|
|
2774
2774
|
}
|
|
2775
2775
|
function Ot(i) {
|
|
@@ -2780,7 +2780,7 @@ function ko() {
|
|
|
2780
2780
|
return (t, e, { cancelable: n = !1 } = {}) => {
|
|
2781
2781
|
const s = i.$$.callbacks[t];
|
|
2782
2782
|
if (s) {
|
|
2783
|
-
const o =
|
|
2783
|
+
const o = Yh(
|
|
2784
2784
|
/** @type {string} */
|
|
2785
2785
|
t,
|
|
2786
2786
|
e,
|
|
@@ -2805,13 +2805,13 @@ function ki(i, t) {
|
|
|
2805
2805
|
}
|
|
2806
2806
|
const ti = [], Qe = [];
|
|
2807
2807
|
let li = [];
|
|
2808
|
-
const $r = [],
|
|
2808
|
+
const $r = [], Zh = /* @__PURE__ */ Promise.resolve();
|
|
2809
2809
|
let ea = !1;
|
|
2810
|
-
function
|
|
2811
|
-
ea || (ea = !0,
|
|
2810
|
+
function Jh() {
|
|
2811
|
+
ea || (ea = !0, Zh.then(Ma));
|
|
2812
2812
|
}
|
|
2813
2813
|
function ml() {
|
|
2814
|
-
return
|
|
2814
|
+
return Jh(), Zh;
|
|
2815
2815
|
}
|
|
2816
2816
|
function Ne(i) {
|
|
2817
2817
|
li.push(i);
|
|
@@ -2864,7 +2864,7 @@ function xa() {
|
|
|
2864
2864
|
})), Wi;
|
|
2865
2865
|
}
|
|
2866
2866
|
function Tn(i, t, e) {
|
|
2867
|
-
i.dispatchEvent(
|
|
2867
|
+
i.dispatchEvent(Yh(`${t ? "intro" : "outro"}${e}`));
|
|
2868
2868
|
}
|
|
2869
2869
|
const qs = /* @__PURE__ */ new Set();
|
|
2870
2870
|
let Nt;
|
|
@@ -3069,7 +3069,7 @@ function ao(i, t) {
|
|
|
3069
3069
|
i;
|
|
3070
3070
|
}
|
|
3071
3071
|
}
|
|
3072
|
-
function
|
|
3072
|
+
function qh(i, t, e) {
|
|
3073
3073
|
const n = t.slice(), { resolved: s } = i;
|
|
3074
3074
|
i.current === i.then && (n[i.value] = s), i.current === i.catch && (n[i.error] = s), i.block.p(n, e);
|
|
3075
3075
|
}
|
|
@@ -3130,7 +3130,7 @@ function dt(i, t) {
|
|
|
3130
3130
|
r in e || (e[r] = void 0);
|
|
3131
3131
|
return e;
|
|
3132
3132
|
}
|
|
3133
|
-
function
|
|
3133
|
+
function Kh(i) {
|
|
3134
3134
|
return typeof i == "object" && i !== null ? i : {};
|
|
3135
3135
|
}
|
|
3136
3136
|
function Ta(i, t, e) {
|
|
@@ -3143,7 +3143,7 @@ function ne(i) {
|
|
|
3143
3143
|
function ee(i, t, e) {
|
|
3144
3144
|
const { fragment: n, after_update: s } = i.$$;
|
|
3145
3145
|
n && n.m(t, e), Ne(() => {
|
|
3146
|
-
const o = i.$$.on_mount.map(
|
|
3146
|
+
const o = i.$$.on_mount.map(Gh).filter(on);
|
|
3147
3147
|
i.$$.on_destroy ? i.$$.on_destroy.push(...o) : Je(o), i.$$.on_mount = [];
|
|
3148
3148
|
}), s.forEach(Ne);
|
|
3149
3149
|
}
|
|
@@ -3152,7 +3152,7 @@ function te(i, t) {
|
|
|
3152
3152
|
e.fragment !== null && (Vm(e.after_update), Je(e.on_destroy), e.fragment && e.fragment.d(t), e.on_destroy = e.fragment = null, e.ctx = []);
|
|
3153
3153
|
}
|
|
3154
3154
|
function Qm(i, t) {
|
|
3155
|
-
i.$$.dirty[0] === -1 && (ti.push(i),
|
|
3155
|
+
i.$$.dirty[0] === -1 && (ti.push(i), Jh(), i.$$.dirty.fill(0)), i.$$.dirty[t / 31 | 0] |= 1 << t % 31;
|
|
3156
3156
|
}
|
|
3157
3157
|
function ae(i, t, e, n, s, o, r, a = [-1]) {
|
|
3158
3158
|
const l = ds;
|
|
@@ -3336,7 +3336,7 @@ class Fm extends le {
|
|
|
3336
3336
|
super(), ae(this, t, Wm, _m, oe, { five: 2, roomLabel: 0 }, Hm);
|
|
3337
3337
|
}
|
|
3338
3338
|
}
|
|
3339
|
-
var
|
|
3339
|
+
var $h = function() {
|
|
3340
3340
|
if (typeof Map != "undefined")
|
|
3341
3341
|
return Map;
|
|
3342
3342
|
function i(t, e) {
|
|
@@ -3450,7 +3450,7 @@ var Zm = 20, Jm = ["top", "right", "bottom", "left", "width", "height", "size",
|
|
|
3450
3450
|
return this.instance_ || (this.instance_ = new i()), this.instance_;
|
|
3451
3451
|
}, i.instance_ = null, i;
|
|
3452
3452
|
}()
|
|
3453
|
-
),
|
|
3453
|
+
), eu = function(i, t) {
|
|
3454
3454
|
for (var e = 0, n = Object.keys(t); e < n.length; e++) {
|
|
3455
3455
|
var s = n[e];
|
|
3456
3456
|
Object.defineProperty(i, s, {
|
|
@@ -3464,7 +3464,7 @@ var Zm = 20, Jm = ["top", "right", "bottom", "left", "width", "height", "size",
|
|
|
3464
3464
|
}, hi = function(i) {
|
|
3465
3465
|
var t = i && i.ownerDocument && i.ownerDocument.defaultView;
|
|
3466
3466
|
return t || lo;
|
|
3467
|
-
},
|
|
3467
|
+
}, tu = Mo(0, 0, 0, 0);
|
|
3468
3468
|
function co(i) {
|
|
3469
3469
|
return parseFloat(i) || 0;
|
|
3470
3470
|
}
|
|
@@ -3490,7 +3490,7 @@ function eg(i) {
|
|
|
3490
3490
|
function tg(i) {
|
|
3491
3491
|
var t = i.clientWidth, e = i.clientHeight;
|
|
3492
3492
|
if (!t && !e)
|
|
3493
|
-
return
|
|
3493
|
+
return tu;
|
|
3494
3494
|
var n = hi(i).getComputedStyle(i), s = $m(n), o = s.left + s.right, r = s.top + s.bottom, a = co(n.width), l = co(n.height);
|
|
3495
3495
|
if (n.boxSizing === "border-box" && (Math.round(a + o) !== t && (a -= gl(n, "left", "right") + o), Math.round(l + r) !== e && (l -= gl(n, "top", "bottom") + r)), !ig(i)) {
|
|
3496
3496
|
var c = Math.round(a + o) - t, d = Math.round(l + r) - e;
|
|
@@ -3509,11 +3509,11 @@ function ig(i) {
|
|
|
3509
3509
|
return i === hi(i).document.documentElement;
|
|
3510
3510
|
}
|
|
3511
3511
|
function sg(i) {
|
|
3512
|
-
return ta ? ng(i) ? eg(i) : tg(i) :
|
|
3512
|
+
return ta ? ng(i) ? eg(i) : tg(i) : tu;
|
|
3513
3513
|
}
|
|
3514
3514
|
function og(i) {
|
|
3515
3515
|
var t = i.x, e = i.y, n = i.width, s = i.height, o = typeof DOMRectReadOnly != "undefined" ? DOMRectReadOnly : Object, r = Object.create(o.prototype);
|
|
3516
|
-
return
|
|
3516
|
+
return eu(r, {
|
|
3517
3517
|
x: t,
|
|
3518
3518
|
y: e,
|
|
3519
3519
|
width: n,
|
|
@@ -3546,7 +3546,7 @@ var rg = (
|
|
|
3546
3546
|
function() {
|
|
3547
3547
|
function i(t, e) {
|
|
3548
3548
|
var n = og(e);
|
|
3549
|
-
|
|
3549
|
+
eu(this, { target: t, contentRect: n });
|
|
3550
3550
|
}
|
|
3551
3551
|
return i;
|
|
3552
3552
|
}()
|
|
@@ -3554,7 +3554,7 @@ var rg = (
|
|
|
3554
3554
|
/** @class */
|
|
3555
3555
|
function() {
|
|
3556
3556
|
function i(t, e, n) {
|
|
3557
|
-
if (this.activeObservations_ = [], this.observations_ = new
|
|
3557
|
+
if (this.activeObservations_ = [], this.observations_ = new $h(), typeof t != "function")
|
|
3558
3558
|
throw new TypeError("The callback provided as parameter 1 is not a function.");
|
|
3559
3559
|
this.callback_ = t, this.controller_ = e, this.callbackCtx_ = n;
|
|
3560
3560
|
}
|
|
@@ -3596,7 +3596,7 @@ var rg = (
|
|
|
3596
3596
|
return this.activeObservations_.length > 0;
|
|
3597
3597
|
}, i;
|
|
3598
3598
|
}()
|
|
3599
|
-
),
|
|
3599
|
+
), nu = typeof WeakMap != "undefined" ? /* @__PURE__ */ new WeakMap() : new $h(), iu = (
|
|
3600
3600
|
/** @class */
|
|
3601
3601
|
function() {
|
|
3602
3602
|
function i(t) {
|
|
@@ -3605,7 +3605,7 @@ var rg = (
|
|
|
3605
3605
|
if (!arguments.length)
|
|
3606
3606
|
throw new TypeError("1 argument required, but only 0 present.");
|
|
3607
3607
|
var e = Km.getInstance(), n = new lg(t, e, this);
|
|
3608
|
-
|
|
3608
|
+
nu.set(this, n);
|
|
3609
3609
|
}
|
|
3610
3610
|
return i;
|
|
3611
3611
|
}()
|
|
@@ -3615,13 +3615,13 @@ var rg = (
|
|
|
3615
3615
|
"unobserve",
|
|
3616
3616
|
"disconnect"
|
|
3617
3617
|
].forEach(function(i) {
|
|
3618
|
-
|
|
3618
|
+
iu.prototype[i] = function() {
|
|
3619
3619
|
var t;
|
|
3620
|
-
return (t =
|
|
3620
|
+
return (t = nu.get(this))[i].apply(t, arguments);
|
|
3621
3621
|
};
|
|
3622
3622
|
});
|
|
3623
3623
|
var cg = function() {
|
|
3624
|
-
return typeof lo.ResizeObserver != "undefined" ? lo.ResizeObserver :
|
|
3624
|
+
return typeof lo.ResizeObserver != "undefined" ? lo.ResizeObserver : iu;
|
|
3625
3625
|
}();
|
|
3626
3626
|
function xi(i) {
|
|
3627
3627
|
new cg((e, n) => {
|
|
@@ -3784,7 +3784,7 @@ function fg(i, t, e) {
|
|
|
3784
3784
|
function m(v) {
|
|
3785
3785
|
e(4, l = v);
|
|
3786
3786
|
}
|
|
3787
|
-
s.on("cameraUpdate", u), s.on("modelShownFloorChange", m),
|
|
3787
|
+
s.on("cameraUpdate", u), s.on("modelShownFloorChange", m), Xh(() => {
|
|
3788
3788
|
e(0, o = h({ rendererSize: n, shownFloor: l }));
|
|
3789
3789
|
}), Ot(() => {
|
|
3790
3790
|
s.off("cameraUpdate", u), s.off("modelShownFloorChange", m);
|
|
@@ -3971,7 +3971,7 @@ function Ht(i, t, e = { deep: !1 }) {
|
|
|
3971
3971
|
function fi(i) {
|
|
3972
3972
|
return i < 0.5 ? 4 * i * i * i : 0.5 * Math.pow(2 * i - 2, 3) + 1;
|
|
3973
3973
|
}
|
|
3974
|
-
function
|
|
3974
|
+
function su(i) {
|
|
3975
3975
|
const t = i - 1;
|
|
3976
3976
|
return t * t * t + 1;
|
|
3977
3977
|
}
|
|
@@ -3984,7 +3984,7 @@ function nt(i, { delay: t = 0, duration: e = 400, easing: n = nn } = {}) {
|
|
|
3984
3984
|
css: (o) => `opacity: ${o * s}`
|
|
3985
3985
|
};
|
|
3986
3986
|
}
|
|
3987
|
-
function vl(i, { delay: t = 0, duration: e = 400, easing: n =
|
|
3987
|
+
function vl(i, { delay: t = 0, duration: e = 400, easing: n = su, x: s = 0, y: o = 0, opacity: r = 0 } = {}) {
|
|
3988
3988
|
const a = getComputedStyle(i), l = +a.opacity, c = a.transform === "none" ? "" : a.transform, d = l * (1 - r), [h, u] = fl(s), [m, A] = fl(o);
|
|
3989
3989
|
return {
|
|
3990
3990
|
delay: t,
|
|
@@ -4009,7 +4009,7 @@ function uo(i, { delay: t = 0, speed: e, duration: n, easing: s = fi } = {}) {
|
|
|
4009
4009
|
};
|
|
4010
4010
|
}
|
|
4011
4011
|
const gn = "data:image/png;base64,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";
|
|
4012
|
-
function
|
|
4012
|
+
function ou(i) {
|
|
4013
4013
|
return i * 180 / Math.PI;
|
|
4014
4014
|
}
|
|
4015
4015
|
function Cg(i) {
|
|
@@ -4082,7 +4082,7 @@ function Ig(i) {
|
|
|
4082
4082
|
}
|
|
4083
4083
|
function Pg(i, t, e) {
|
|
4084
4084
|
let { panoIndex: n } = t, { floorplanData: s } = t, { lastPanoramaLongitude: o } = t, { cameraImageUrl: r } = t;
|
|
4085
|
-
const { observers: a } = s, l = a[n], c = l.positionInImage.x, d = l.positionInImage.y, h = c * 100 + "%", u = d * 100 + "%", m = -
|
|
4085
|
+
const { observers: a } = s, l = a[n], c = l.positionInImage.x, d = l.positionInImage.y, h = c * 100 + "%", u = d * 100 + "%", m = -ou(o) + 45, A = document.body.clientWidth, p = document.body.clientHeight, v = `${(A < 500 || p < 500 ? 17 : 37) / 16}rem`;
|
|
4086
4086
|
return i.$$set = (y) => {
|
|
4087
4087
|
"panoIndex" in y && e(5, n = y.panoIndex), "floorplanData" in y && e(6, s = y.floorplanData), "lastPanoramaLongitude" in y && e(7, o = y.lastPanoramaLongitude), "cameraImageUrl" in y && e(0, r = y.cameraImageUrl);
|
|
4088
4088
|
}, [
|
|
@@ -4415,7 +4415,7 @@ function Fg(i, t, e) {
|
|
|
4415
4415
|
12 && e(0, s = (l = (a = r.outlines) == null ? void 0 : a[o]) == null ? void 0 : l.svgContent);
|
|
4416
4416
|
}, [s, n, o, r];
|
|
4417
4417
|
}
|
|
4418
|
-
class
|
|
4418
|
+
class ru extends le {
|
|
4419
4419
|
constructor(t) {
|
|
4420
4420
|
super(), ae(this, t, Fg, Wg, oe, { floorIndex: 2, floorplanData: 3 }, Ng);
|
|
4421
4421
|
}
|
|
@@ -5347,7 +5347,7 @@ function Do(i, t = {}) {
|
|
|
5347
5347
|
return a === 0 ? (e += "M" + d, e) : s != null && s[a] ? (e += "A" + s[a] + "," + d, e) : (e += "L" + d, e);
|
|
5348
5348
|
}), e + (n ? "Z" : "");
|
|
5349
5349
|
}
|
|
5350
|
-
function
|
|
5350
|
+
function au({ x: i, y: t }, e) {
|
|
5351
5351
|
const { max: n, min: s } = e;
|
|
5352
5352
|
return { x: i - s.x, y: n.y - t };
|
|
5353
5353
|
}
|
|
@@ -5746,7 +5746,7 @@ function xp(i, t, e) {
|
|
|
5746
5746
|
}, i.$$.update = () => {
|
|
5747
5747
|
i.$$.dirty & /*floorplanData, floorIndex*/
|
|
5748
5748
|
24 && e(0, n = o.floorDatas[s].rooms.map((l) => Ae(N({}, l), {
|
|
5749
|
-
path: l.path.map((c) =>
|
|
5749
|
+
path: l.path.map((c) => au(c, o.bounding))
|
|
5750
5750
|
})));
|
|
5751
5751
|
}, [n, r, a, s, o];
|
|
5752
5752
|
}
|
|
@@ -5821,7 +5821,7 @@ function Lp(i, t, e) {
|
|
|
5821
5821
|
}
|
|
5822
5822
|
const { bounding: u } = a, m = Do(o.path, {
|
|
5823
5823
|
needZ: !0,
|
|
5824
|
-
format: (A) =>
|
|
5824
|
+
format: (A) => au(A, u)
|
|
5825
5825
|
});
|
|
5826
5826
|
return i.$$set = (A) => {
|
|
5827
5827
|
"room" in A && e(0, o = A.room), "floorIndex" in A && e(1, r = A.floorIndex), "floorplanData" in A && e(6, a = A.floorplanData), "highlightData" in A && e(7, l = A.highlightData), "hoveredRoom" in A && e(8, c = A.hoveredRoom);
|
|
@@ -6020,7 +6020,7 @@ function Bp(i, t, e) {
|
|
|
6020
6020
|
l
|
|
6021
6021
|
];
|
|
6022
6022
|
}
|
|
6023
|
-
class
|
|
6023
|
+
class lu extends le {
|
|
6024
6024
|
constructor(t) {
|
|
6025
6025
|
super(), ae(
|
|
6026
6026
|
this,
|
|
@@ -6066,7 +6066,7 @@ function Bl(i) {
|
|
|
6066
6066
|
let s = {};
|
|
6067
6067
|
for (let o = 0; o < n.length; o += 1)
|
|
6068
6068
|
s = tt(s, n[o]);
|
|
6069
|
-
return t = new
|
|
6069
|
+
return t = new lu({ props: s }), {
|
|
6070
6070
|
c() {
|
|
6071
6071
|
ne(t.$$.fragment);
|
|
6072
6072
|
},
|
|
@@ -6304,7 +6304,7 @@ function Vp(i) {
|
|
|
6304
6304
|
let A = {};
|
|
6305
6305
|
for (let v = 0; v < m.length; v += 1)
|
|
6306
6306
|
A = tt(A, m[v]);
|
|
6307
|
-
o = new
|
|
6307
|
+
o = new ru({ props: A });
|
|
6308
6308
|
let p = (
|
|
6309
6309
|
/*roomLabelsEnable*/
|
|
6310
6310
|
i[4] && Rl(i)
|
|
@@ -6986,7 +6986,7 @@ let gs = class {
|
|
|
6986
6986
|
/**
|
|
6987
6987
|
* @realsee/dnalogel 版本号
|
|
6988
6988
|
*/
|
|
6989
|
-
f(this, "VERSION", "2.24.
|
|
6989
|
+
f(this, "VERSION", "2.24.2");
|
|
6990
6990
|
f(this, "five");
|
|
6991
6991
|
/**
|
|
6992
6992
|
* 插件事件钩子
|
|
@@ -7010,7 +7010,7 @@ let gs = class {
|
|
|
7010
7010
|
}, Rn = class extends gs {
|
|
7011
7011
|
};
|
|
7012
7012
|
var Pt = /* @__PURE__ */ ((i) => (i.UnknownError = "UnknownError", i.DataNotLoaded = "DataNotLoaded", i.BreakOffByHide = "BreakOffByHide", i.BreakOffByDisable = "BreakOffByDisable", i.ModelNotLoaded = "ModelNotLoaded", i.ChangeModeError = "ChangeModeError", i.UpdateCameraError = "UpdateCameraError", i))(Pt || {});
|
|
7013
|
-
const
|
|
7013
|
+
const cu = 500, Kp = 80;
|
|
7014
7014
|
function na(i, t, e = 4) {
|
|
7015
7015
|
return Math.floor(i * Math.pow(10, e)) === Math.floor(t * Math.pow(10, e));
|
|
7016
7016
|
}
|
|
@@ -7047,7 +7047,7 @@ function Va(i, t) {
|
|
|
7047
7047
|
const { latitude: e, longitude: n, fov: s } = t, { latitude: o, longitude: r } = i.getCurrentState(), a = i.camera.fov;
|
|
7048
7048
|
return !(!na(e, o, 2) || !na(n, r, 2) || s !== a);
|
|
7049
7049
|
}
|
|
7050
|
-
function
|
|
7050
|
+
function du(i, t, e = !0) {
|
|
7051
7051
|
return U(this, null, function* () {
|
|
7052
7052
|
if (Va(i, t) === !0)
|
|
7053
7053
|
return;
|
|
@@ -7191,13 +7191,13 @@ let nA = class extends Rn {
|
|
|
7191
7191
|
this.showRejection = (u) => {
|
|
7192
7192
|
a = !0, l = u;
|
|
7193
7193
|
};
|
|
7194
|
-
const [c] = yield ui(
|
|
7194
|
+
const [c] = yield ui(du(this.five, this.showState, s.userAction));
|
|
7195
7195
|
if (c)
|
|
7196
7196
|
throw c;
|
|
7197
7197
|
if (a)
|
|
7198
7198
|
throw l ? new Error(l) : new Error(Pt.UnknownError);
|
|
7199
7199
|
this.updateSize(), this.floorIndex = s.floorIndex, this.five.model.show(this.floorIndex);
|
|
7200
|
-
const d = s.modelOpacity, h = s.immediately ? 0 :
|
|
7200
|
+
const d = s.modelOpacity, h = s.immediately ? 0 : cu;
|
|
7201
7201
|
mi(this.five, d, h), this.render(h);
|
|
7202
7202
|
});
|
|
7203
7203
|
return this.showPromise = o().then(() => {
|
|
@@ -7520,13 +7520,13 @@ let oA = class extends Rn {
|
|
|
7520
7520
|
this.showRejection = (u) => {
|
|
7521
7521
|
a = !0, l = u;
|
|
7522
7522
|
};
|
|
7523
|
-
const [c] = yield ui(
|
|
7523
|
+
const [c] = yield ui(du(this.five, this.showState, s.userAction));
|
|
7524
7524
|
if (c)
|
|
7525
7525
|
throw c;
|
|
7526
7526
|
if (a)
|
|
7527
7527
|
throw l ? new Error(l) : new Error(Pt.UnknownError);
|
|
7528
7528
|
this.updateSize(), this.updatePosition(), this.floorIndex = s.floorIndex, this.five.model.show(this.floorIndex);
|
|
7529
|
-
const d = s.modelOpacity, h = s.immediately ? 0 :
|
|
7529
|
+
const d = s.modelOpacity, h = s.immediately ? 0 : cu;
|
|
7530
7530
|
mi(this.five, d, h), this.render(h);
|
|
7531
7531
|
});
|
|
7532
7532
|
return this.showPromise = o().then(() => {
|
|
@@ -8247,7 +8247,7 @@ function Ul(i) {
|
|
|
8247
8247
|
let s = {};
|
|
8248
8248
|
for (let o = 0; o < n.length; o += 1)
|
|
8249
8249
|
s = tt(s, n[o]);
|
|
8250
|
-
return t = new
|
|
8250
|
+
return t = new lu({ props: s }), {
|
|
8251
8251
|
c() {
|
|
8252
8252
|
ne(t.$$.fragment);
|
|
8253
8253
|
},
|
|
@@ -8315,7 +8315,7 @@ function pA(i) {
|
|
|
8315
8315
|
let l = {};
|
|
8316
8316
|
for (let d = 0; d < a.length; d += 1)
|
|
8317
8317
|
l = tt(l, a[d]);
|
|
8318
|
-
t = new
|
|
8318
|
+
t = new ru({ props: l }), n = new gA({
|
|
8319
8319
|
props: {
|
|
8320
8320
|
extraObjects: (
|
|
8321
8321
|
/*currentFloorExtraObjects*/
|
|
@@ -8935,7 +8935,7 @@ const iE = (i, t) => new IA(i, t), sE = [
|
|
|
8935
8935
|
}
|
|
8936
8936
|
return n && i.position.set(n.x, n.y, n.z), i;
|
|
8937
8937
|
};
|
|
8938
|
-
function
|
|
8938
|
+
function hu(i, t) {
|
|
8939
8939
|
i.traverse((e) => {
|
|
8940
8940
|
var n;
|
|
8941
8941
|
if (e.type === "Mesh") {
|
|
@@ -8955,7 +8955,7 @@ const aE = (i, t) => {
|
|
|
8955
8955
|
if (l = (k = g == null ? void 0 : g.north_rad) != null ? k : n, typeof l != "number")
|
|
8956
8956
|
throw new Error('"northRad"配置参数缺失:未配置指南针指向!');
|
|
8957
8957
|
const I = yield new wh().loadAsync(v);
|
|
8958
|
-
return
|
|
8958
|
+
return hu(I, {
|
|
8959
8959
|
transparent: !0,
|
|
8960
8960
|
side: E.DoubleSide,
|
|
8961
8961
|
blending: E.AdditiveBlending
|
|
@@ -8998,7 +8998,7 @@ function EA(i, t) {
|
|
|
8998
8998
|
const e = (c = t == null ? void 0 : t.size) != null ? c : 512, n = (d = t == null ? void 0 : t.fontSize) != null ? d : e * (35 / 256) * 1.2, s = (h = t == null ? void 0 : t.backgroundColor) != null ? h : "rgba(0,0,0,0)", o = (u = t == null ? void 0 : t.fontColor) != null ? u : "#fff", r = (m = t == null ? void 0 : t.textAlign) != null ? m : "center", a = document.createElement("canvas");
|
|
8999
8999
|
a.setAttribute("width", e + ""), a.setAttribute("height", e + "");
|
|
9000
9000
|
const l = a.getContext("2d");
|
|
9001
|
-
return l.fillStyle = s, l.fillRect(0, 0, e, e), l.font = `${n}px "微软雅黑"`, l.textAlign = r, l.fillStyle = o, l.fillText(i, e / 2, e * 0.7), new
|
|
9001
|
+
return l.fillStyle = s, l.fillRect(0, 0, e, e), l.font = `${n}px "微软雅黑"`, l.textAlign = r, l.fillStyle = o, l.fillText(i, e / 2, e * 0.7), new bf(a);
|
|
9002
9002
|
}
|
|
9003
9003
|
const kA = ({ x: i, y: t, z: e }) => new ie(i, t, e), lE = (i, t) => {
|
|
9004
9004
|
var p, g, v;
|
|
@@ -9011,7 +9011,7 @@ const kA = ({ x: i, y: t, z: e }) => new ie(i, t, e), lE = (i, t) => {
|
|
|
9011
9011
|
if (e.rad = S, S === void 0)
|
|
9012
9012
|
return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): rad is ${S}`));
|
|
9013
9013
|
const R = yield new wh().loadAsync(P);
|
|
9014
|
-
R.position.copy(k), R.rotation.z = S, R.scale.set(0.8, 0.8, 0.8),
|
|
9014
|
+
R.position.copy(k), R.rotation.z = S, R.scale.set(0.8, 0.8, 0.8), hu(R, { transparent: !0, side: E.DoubleSide });
|
|
9015
9015
|
const L = (Z = (_ = (V = (H = R.children) == null ? void 0 : H[0]) == null ? void 0 : V.children) == null ? void 0 : _[3]) == null ? void 0 : Z.clone();
|
|
9016
9016
|
if (!L)
|
|
9017
9017
|
return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): textMesh is ${L}`));
|
|
@@ -9022,7 +9022,7 @@ const kA = ({ x: i, y: t, z: e }) => new ie(i, t, e), lE = (i, t) => {
|
|
|
9022
9022
|
return;
|
|
9023
9023
|
if (!e.object)
|
|
9024
9024
|
return console.error("ModelEntryDoorGuidePlugin.initAnimation(): state.object is ", e.object);
|
|
9025
|
-
const y = 1, I = new
|
|
9025
|
+
const y = 1, I = new yf(e.object);
|
|
9026
9026
|
a.push(I);
|
|
9027
9027
|
const k = I.clipAction(e.object.animations[0]);
|
|
9028
9028
|
k.timeScale = y;
|
|
@@ -9152,15 +9152,15 @@ const ia = (i, t, e) => {
|
|
|
9152
9152
|
function Kl(i, t) {
|
|
9153
9153
|
return i.x === t.x && i.y === t.y;
|
|
9154
9154
|
}
|
|
9155
|
-
function
|
|
9155
|
+
function uu(i, t) {
|
|
9156
9156
|
return Math.abs(i) === 1 / 0 && Math.abs(t) === 1 / 0 ? !0 : Math.abs(i - t) < 1e-3;
|
|
9157
9157
|
}
|
|
9158
9158
|
function fo(i, t) {
|
|
9159
9159
|
return (t.y - i.y) / (t.x - i.x);
|
|
9160
9160
|
}
|
|
9161
|
-
function
|
|
9161
|
+
function fu(i, t, e) {
|
|
9162
9162
|
const n = fo(i[1], i[0]), s = fo(t[1], t[0]);
|
|
9163
|
-
if (isNaN(n) || isNaN(s) ||
|
|
9163
|
+
if (isNaN(n) || isNaN(s) || uu(n, s))
|
|
9164
9164
|
return !1;
|
|
9165
9165
|
if (Vs(i[0], t))
|
|
9166
9166
|
return i[0];
|
|
@@ -9181,7 +9181,7 @@ function uu(i, t, e) {
|
|
|
9181
9181
|
return { x: a, y: l };
|
|
9182
9182
|
}
|
|
9183
9183
|
function Vs(i, t) {
|
|
9184
|
-
return Kl(i, t[0]) || Kl(i, t[1]) ? !0 : (t[0].x - i.x) * (i.x - t[1].x) >= 0 && (t[0].y - i.y) * (i.y - t[1].y) >= 0 &&
|
|
9184
|
+
return Kl(i, t[0]) || Kl(i, t[1]) ? !0 : (t[0].x - i.x) * (i.x - t[1].x) >= 0 && (t[0].y - i.y) * (i.y - t[1].y) >= 0 && uu(fo(t[0], i), fo(i, t[1]));
|
|
9185
9185
|
}
|
|
9186
9186
|
function Qs(i, t, e) {
|
|
9187
9187
|
return (i.x - e.x) * (t.y - e.y) - (t.x - e.x) * (i.y - e.y);
|
|
@@ -9189,8 +9189,8 @@ function Qs(i, t, e) {
|
|
|
9189
9189
|
function TA(i, t) {
|
|
9190
9190
|
return Math.max(i[0].x, i[1].x) >= Math.min(t[0].x, t[1].x) && Math.max(t[0].x, t[1].x) >= Math.min(i[0].x, i[1].x) && Math.max(i[0].y, i[1].y) >= Math.min(t[0].y, t[1].y) && Qs(t[0], i[1], i[0]) * Qs(i[1], t[1], i[0]) > 0 && Qs(i[0], t[1], t[0]) * Qs(t[1], i[1], t[0]) > 0 ? 1 : 0;
|
|
9191
9191
|
}
|
|
9192
|
-
function
|
|
9193
|
-
t <= 0 ? requestAnimationFrame(i) : requestAnimationFrame(() =>
|
|
9192
|
+
function mu(i, t = 0) {
|
|
9193
|
+
t <= 0 ? requestAnimationFrame(i) : requestAnimationFrame(() => mu(i, t - 1));
|
|
9194
9194
|
}
|
|
9195
9195
|
const LA = `<style type="text/css">
|
|
9196
9196
|
.PanoRulerPlugin-rule-line {
|
|
@@ -9402,7 +9402,7 @@ const LA = `<style type="text/css">
|
|
|
9402
9402
|
]
|
|
9403
9403
|
], k = [];
|
|
9404
9404
|
for (let S = 0; S < I.length; S++) {
|
|
9405
|
-
const P =
|
|
9405
|
+
const P = fu([p, g], [I[S][0], I[S][1]], !0);
|
|
9406
9406
|
P && k.push(P);
|
|
9407
9407
|
}
|
|
9408
9408
|
return k.length === 0 ? !1 : k;
|
|
@@ -9488,7 +9488,7 @@ const LA = `<style type="text/css">
|
|
|
9488
9488
|
const ht = (Math.PI / 2 - Math.atan2(ve - Ce, pe - We)) / Math.PI * 180, Me = _.querySelector(".PanoRulerPlugin-rule-label"), it = Me.children[0].clientWidth;
|
|
9489
9489
|
it >= fe || it / 2 >= je / 100 * fe || it / 2 >= (1 - je / 100) * fe ? _.style.display = "none" : (_.style.display = "block", _.style.width = fe + "px", _.style.left = Ce + "px", _.style.top = pe + "px", _.style.transform = `rotate(${-ht}deg)`, Me.style.left = `${je}%`);
|
|
9490
9490
|
}
|
|
9491
|
-
}, h = () =>
|
|
9491
|
+
}, h = () => mu(d), u = () => {
|
|
9492
9492
|
var p, g;
|
|
9493
9493
|
return e.loaded ? (e.enable || (s.setAttribute("class", "PanoRulerPlugin" + (e.options.className ? " " + e.options.className : "")), (g = (p = i.getElement()) == null ? void 0 : p.parentElement) == null || g.append(s), d(), i.on("modeChange", d), i.on("cameraUpdate", h), e.enable = !0), !0) : !1;
|
|
9494
9494
|
}, m = () => (e.enable && (i.off("modeChange", d), i.off("cameraUpdate", h), s && s.remove(), e.enable = !1), !0);
|
|
@@ -9819,7 +9819,7 @@ function HA(i, t, e) {
|
|
|
9819
9819
|
[{ x: 0, y: l }, { x: a, y: l }]
|
|
9820
9820
|
], P = [];
|
|
9821
9821
|
for (let R = 0; R < S.length; R++) {
|
|
9822
|
-
const L =
|
|
9822
|
+
const L = fu([I, k], [S[R][0], S[R][1]], !0);
|
|
9823
9823
|
L && P.push(L);
|
|
9824
9824
|
}
|
|
9825
9825
|
return P.length === 0 ? !1 : P;
|
|
@@ -10217,8 +10217,8 @@ class XA extends Rn {
|
|
|
10217
10217
|
return Po(this.five).create3DDomContainer(e);
|
|
10218
10218
|
}
|
|
10219
10219
|
}
|
|
10220
|
-
const fE = (i, t) => new XA(i, t), ZA = 1, JA = 3, qA = new bi(16777215), KA = new bi(6522623), $A = new bi(16777215), ev = new bi(6522623), tv = 6, nv = 8, iv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAIVBMVEUAAAD////////////////////////////////////////PIev5AAAACnRSTlMAG/Py2baba05un7UgfgAAAHJJREFUKM9joBpgLHVSCRdA4metAoJlCJHmVWBgAeNzroKCCVCBLpjACqgJVjCBxRBT2FbBQQJYQAohsBAsUIUQWA4WiEIILAULeCEEloAFtBACizAEMLRgGIphLabDMJ2O6TlM72MGECIIMQIZIxqoBQCPvpJ/e9FaAAAAAABJRU5ErkJggg==",
|
|
10221
|
-
pointTexture:
|
|
10220
|
+
const fE = (i, t) => new XA(i, t), ZA = 1, JA = 3, qA = new bi(16777215), KA = new bi(6522623), $A = new bi(16777215), ev = new bi(6522623), tv = 6, nv = 8, iv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAIVBMVEUAAAD////////////////////////////////////////PIev5AAAACnRSTlMAG/Py2baba05un7UgfgAAAHJJREFUKM9joBpgLHVSCRdA4metAoJlCJHmVWBgAeNzroKCCVCBLpjACqgJVjCBxRBT2FbBQQJYQAohsBAsUIUQWA4WiEIILAULeCEEloAFtBACizAEMLRgGIphLabDMJ2O6TlM72MGECIIMQIZIxqoBQCPvpJ/e9FaAAAAAABJRU5ErkJggg==", gu = new ph().load(iv), sv = {
|
|
10221
|
+
pointTexture: gu,
|
|
10222
10222
|
pointSize: tv,
|
|
10223
10223
|
lineWidth: ZA,
|
|
10224
10224
|
lineColor: qA,
|
|
@@ -10226,7 +10226,7 @@ const fE = (i, t) => new XA(i, t), ZA = 1, JA = 3, qA = new bi(16777215), KA = n
|
|
|
10226
10226
|
lineRenderOrder: 20,
|
|
10227
10227
|
pointsRenderOrder: 20
|
|
10228
10228
|
}, ov = {
|
|
10229
|
-
pointTexture:
|
|
10229
|
+
pointTexture: gu,
|
|
10230
10230
|
pointSize: nv,
|
|
10231
10231
|
lineWidth: JA,
|
|
10232
10232
|
lineColor: KA,
|
|
@@ -10264,7 +10264,7 @@ function lv(i) {
|
|
|
10264
10264
|
const t = document.createElement("div");
|
|
10265
10265
|
return i != null && i.id && (t.id = i == null ? void 0 : i.id), t.classList.add("five-plugin-measure__distance"), t.style.position = "absolute", t.style.left = "0", t.style.top = "0", t.style.width = "0", t.style.height = "0", t.style.transform = "translate(-10px, -10px)", t.style.transformOrigin = "left top", i != null && i.style && Object.assign(t.style, i.style), t;
|
|
10266
10266
|
}
|
|
10267
|
-
class
|
|
10267
|
+
class pu {
|
|
10268
10268
|
constructor(t) {
|
|
10269
10269
|
f(this, "ndcPosition");
|
|
10270
10270
|
f(this, "contentDom");
|
|
@@ -10324,7 +10324,7 @@ class gu {
|
|
|
10324
10324
|
this.containerDom.style.transform = `translate(${r}px, ${a}px)`, this.tempShow();
|
|
10325
10325
|
}
|
|
10326
10326
|
}
|
|
10327
|
-
class cv extends
|
|
10327
|
+
class cv extends pu {
|
|
10328
10328
|
constructor(e) {
|
|
10329
10329
|
var n;
|
|
10330
10330
|
e.contentStyle = Ae(N({}, e.contentStyle), {
|
|
@@ -10482,6 +10482,13 @@ let To = class {
|
|
|
10482
10482
|
f(this, "updateDistanceUI", () => {
|
|
10483
10483
|
this.dashed.distanceItem.update(this.five), this.model.getAllLines().forEach((t) => t.distanceItem.update(this.five));
|
|
10484
10484
|
});
|
|
10485
|
+
f(this, "updateAreaUI", () => {
|
|
10486
|
+
this.dashed.distanceItem.update(this.five), this.model.getAllAreas().forEach((t) => {
|
|
10487
|
+
t.areaItem.updateArea(this.five), t.polyline.lines.forEach((e) => {
|
|
10488
|
+
e.distanceItem.update(this.five);
|
|
10489
|
+
});
|
|
10490
|
+
});
|
|
10491
|
+
});
|
|
10485
10492
|
var n, s;
|
|
10486
10493
|
this.five = t.five, this.hook = t.hook, this.model = t.model, this.getMeasureType = t.getMeasureType, this.config = t.config, this.magnifierParams = t.magnifierParams, this.editParams = t.editParams, this.magnifier = t.magnifier, this.container = t.container, this.isMobile = (s = (n = t.openParams) == null ? void 0 : n.isMobile) != null ? s : !1, this.userDistanceItemCreator = t.userDistanceItemCreator, this.group = t.group, this.mouseGroup = t.mouseGroup, this.dashed = new An(new bt([0, 0, 0]), new bt([0, 0, 0]), this.model), this.dashed.distanceItem.setCanSelect(!1), this.dashed.mesh.setMaterial({ dashed: !0, dashScale: 100 }), this.dashed.mesh.name = "dashLine", this.perpendicularDashed = new An(new bt([0, 0, 0]), new bt([0, 0, 0]), this.model), this.perpendicularDashed.distanceItem.setCanSelect(!1), this.perpendicularDashed.mesh.setMaterial({ dashed: !0, dashScale: 40, color: new bi(10218089) }), this.perpendicularDashed.mesh.name = "perpendicularDashLine";
|
|
10487
10494
|
const e = this.five.getElement();
|
|
@@ -10607,7 +10614,7 @@ let To = class {
|
|
|
10607
10614
|
this.id = t.id, this.clear(), this.lines.push(...t.lines), this.points.push(...t.points);
|
|
10608
10615
|
}
|
|
10609
10616
|
};
|
|
10610
|
-
class
|
|
10617
|
+
class Au extends Ah {
|
|
10611
10618
|
constructor() {
|
|
10612
10619
|
super();
|
|
10613
10620
|
}
|
|
@@ -10633,11 +10640,11 @@ function hv(i) {
|
|
|
10633
10640
|
if (t.length < 3)
|
|
10634
10641
|
return;
|
|
10635
10642
|
t.at(-1).equals(t[0]) || t.push(t[0]);
|
|
10636
|
-
const e = t.flatMap((r) => [r.x, r.y, r.z]), n = new E.Float32BufferAttribute(e, 3), s =
|
|
10643
|
+
const e = t.flatMap((r) => [r.x, r.y, r.z]), n = new E.Float32BufferAttribute(e, 3), s = jf(e, void 0, 3), o = new E.BufferGeometry();
|
|
10637
10644
|
return o.setAttribute("position", n), o.setIndex(s), o.name = "PolygonGeometry", o;
|
|
10638
10645
|
}
|
|
10639
10646
|
const uv = new E.BufferGeometry();
|
|
10640
|
-
class
|
|
10647
|
+
class vu extends Au {
|
|
10641
10648
|
constructor(e) {
|
|
10642
10649
|
super();
|
|
10643
10650
|
f(this, "isPolygonMesh", !0);
|
|
@@ -10675,16 +10682,16 @@ function fv(i) {
|
|
|
10675
10682
|
return;
|
|
10676
10683
|
let e = 0, n = new ie();
|
|
10677
10684
|
for (const [s, o, r] of t) {
|
|
10678
|
-
const a =
|
|
10685
|
+
const a = bu(s, o, r), l = mv(s, o, r, a);
|
|
10679
10686
|
e += a, n.add(l);
|
|
10680
10687
|
}
|
|
10681
10688
|
return n = n.divideScalar(e), { center: n, area: e };
|
|
10682
10689
|
}
|
|
10683
|
-
function
|
|
10690
|
+
function bu(i, t, e) {
|
|
10684
10691
|
return t.clone().sub(i).cross(e.clone().sub(i)).length() / 2;
|
|
10685
10692
|
}
|
|
10686
10693
|
function mv(i, t, e, n) {
|
|
10687
|
-
const s = n != null ? n :
|
|
10694
|
+
const s = n != null ? n : bu(i, t, e);
|
|
10688
10695
|
return sn(i, t, e).multiplyScalar(s);
|
|
10689
10696
|
}
|
|
10690
10697
|
function gv(i) {
|
|
@@ -10699,7 +10706,7 @@ function gv(i) {
|
|
|
10699
10706
|
}
|
|
10700
10707
|
return n;
|
|
10701
10708
|
}
|
|
10702
|
-
class pv extends
|
|
10709
|
+
class pv extends pu {
|
|
10703
10710
|
constructor(e) {
|
|
10704
10711
|
e.containerStyle = Ae(N({}, e.containerStyle), {
|
|
10705
10712
|
zIndex: "1"
|
|
@@ -10715,17 +10722,18 @@ class pv extends gu {
|
|
|
10715
10722
|
* @description: dom 依赖的多边形的顶点的位置更新时,更新 dom 的位置和面积
|
|
10716
10723
|
*/
|
|
10717
10724
|
updateArea(e, n) {
|
|
10725
|
+
var l, c;
|
|
10718
10726
|
const s = n != null ? n : this.area.polygon.geometry, o = fv(s);
|
|
10719
10727
|
if (!o) {
|
|
10720
10728
|
this.ndcPosition = null, this.updateDomPosition(e);
|
|
10721
10729
|
return;
|
|
10722
10730
|
}
|
|
10723
10731
|
const { area: r, center: a } = o;
|
|
10724
|
-
this.ndcPosition = a, this.updateDomPosition(e), this.updateAreaText(r);
|
|
10732
|
+
this.ndcPosition = a, this.updateDomPosition(e), (c = (l = this.area.model) == null ? void 0 : l.config) != null && c.getAreaText ? this.contentDom.innerText = this.area.model.config.getAreaText(r) : this.updateAreaText(r, { fix: 2 });
|
|
10725
10733
|
}
|
|
10726
10734
|
updateAreaText(e, n) {
|
|
10727
|
-
const { unit: s = "m²", fix: o
|
|
10728
|
-
this.contentDom.innerText = `${e.toFixed(o)}${s}`;
|
|
10735
|
+
const { unit: s = "m²", fix: o } = n != null ? n : {};
|
|
10736
|
+
this.contentDom.innerText = `${Bh(o) ? e : e.toFixed(o)}${s}`;
|
|
10729
10737
|
}
|
|
10730
10738
|
}
|
|
10731
10739
|
class sa {
|
|
@@ -10737,6 +10745,7 @@ class sa {
|
|
|
10737
10745
|
f(this, "lightMesh");
|
|
10738
10746
|
f(this, "areaItem");
|
|
10739
10747
|
f(this, "hook", new mt());
|
|
10748
|
+
f(this, "model");
|
|
10740
10749
|
/** 多边形mesh */
|
|
10741
10750
|
f(this, "polygon");
|
|
10742
10751
|
/** 多边形顶点 */
|
|
@@ -10750,7 +10759,6 @@ class sa {
|
|
|
10750
10759
|
/** 多边形dom容器 */
|
|
10751
10760
|
f(this, "domContainer");
|
|
10752
10761
|
f(this, "five");
|
|
10753
|
-
f(this, "model");
|
|
10754
10762
|
/**
|
|
10755
10763
|
* @description: five camera update 时,更新Dom的位置
|
|
10756
10764
|
*/
|
|
@@ -10758,7 +10766,7 @@ class sa {
|
|
|
10758
10766
|
this.five && (this.polyline.lines.forEach((t) => t.distanceItem.update(this.five)), this.areaItem.updateDomPosition(this.five));
|
|
10759
10767
|
});
|
|
10760
10768
|
var n;
|
|
10761
|
-
t && (this.points = t), this.model = e.model, this.polygon = new
|
|
10769
|
+
t && (this.points = t), this.model = e.model, this.polygon = new vu(t), this.polyline = new gi({ model: e.model }), this.areaItem = new pv({
|
|
10762
10770
|
area: this,
|
|
10763
10771
|
clickCallback: (s, o) => {
|
|
10764
10772
|
const r = s.clientX + "px", a = s.clientY + "px";
|
|
@@ -10841,7 +10849,7 @@ function Hs(i, t, e) {
|
|
|
10841
10849
|
function _s(i, t, e) {
|
|
10842
10850
|
return t.x <= Math.max(i.x, e.x) && t.x >= Math.min(i.x, e.x) && t.z <= Math.max(i.z, e.z) && t.z >= Math.min(i.z, e.z);
|
|
10843
10851
|
}
|
|
10844
|
-
const
|
|
10852
|
+
const yu = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
|
|
10845
10853
|
function oa(i) {
|
|
10846
10854
|
const { x: t, y: e } = i.center, { clientWidth: n, clientHeight: s } = i.target, o = i.target.getBoundingClientRect(), r = new et(t, e).sub(new et(o.left, o.top)), a = new et(r.x / n * 2 - 1, -(r.y / s) * 2 + 1);
|
|
10847
10855
|
return { point: r, ndcPoint: a };
|
|
@@ -10967,7 +10975,7 @@ class Av {
|
|
|
10967
10975
|
var o, r;
|
|
10968
10976
|
this.five = t;
|
|
10969
10977
|
const n = (o = e == null ? void 0 : e.mode) != null ? o : "auto";
|
|
10970
|
-
n === "auto" ? this.mode =
|
|
10978
|
+
n === "auto" ? this.mode = yu ? "fixed" : "cursor" : this.mode = n;
|
|
10971
10979
|
const s = {
|
|
10972
10980
|
autoFixPCPosition: this.mode === "cursor",
|
|
10973
10981
|
initialPosition: this.mode === "fixed" ? { left: "35%", top: "20%" } : void 0
|
|
@@ -11012,7 +11020,7 @@ function bv(i, t) {
|
|
|
11012
11020
|
distance: n,
|
|
11013
11021
|
point: s,
|
|
11014
11022
|
object: new Ah(),
|
|
11015
|
-
face: new
|
|
11023
|
+
face: new wf(0, 0, 0, o)
|
|
11016
11024
|
};
|
|
11017
11025
|
}
|
|
11018
11026
|
const yv = `
|
|
@@ -11504,7 +11512,7 @@ class cc extends To {
|
|
|
11504
11512
|
f(this, "wantsTapGesture", (e) => {
|
|
11505
11513
|
var p;
|
|
11506
11514
|
const n = this.model.areas.map((g) => e.intersectObject(g.polygon, !0)[0]).sort((g, v) => g.distance - v.distance), s = (p = n[0]) == null ? void 0 : p.object.parent;
|
|
11507
|
-
if (s instanceof
|
|
11515
|
+
if (s instanceof vu) {
|
|
11508
11516
|
const g = this.model.areas.find((v) => v.polygon === s);
|
|
11509
11517
|
if (g) {
|
|
11510
11518
|
const { x: v, y } = n[0].point.clone().project(this.five.camera), I = `${(v + 1) / 2 * 100}%`, k = `${(-y + 1) / 2 * 100}%`;
|
|
@@ -11612,7 +11620,7 @@ class cc extends To {
|
|
|
11612
11620
|
});
|
|
11613
11621
|
}
|
|
11614
11622
|
}
|
|
11615
|
-
class
|
|
11623
|
+
class wu {
|
|
11616
11624
|
constructor(t) {
|
|
11617
11625
|
f(this, "config");
|
|
11618
11626
|
f(this, "polylines", []);
|
|
@@ -11718,25 +11726,25 @@ void main() {
|
|
|
11718
11726
|
gl_FragColor = vec4(1.0,1.0,1.0,match);
|
|
11719
11727
|
}
|
|
11720
11728
|
`;
|
|
11721
|
-
function
|
|
11729
|
+
function Cu(i) {
|
|
11722
11730
|
var v, y;
|
|
11723
11731
|
const t = (v = i.isMobile) != null ? v : !0, e = (y = i.useNormalVector) != null ? y : !0;
|
|
11724
11732
|
let n = 10349931;
|
|
11725
11733
|
e && i.ballColor >= 0 && (n = i.ballColor);
|
|
11726
|
-
const s = new ri(), o = new
|
|
11727
|
-
a.encoding =
|
|
11734
|
+
const s = new ri(), o = new Cf(0.3, 0.3), r = t ? xv : Dv, a = new ph().load(r);
|
|
11735
|
+
a.encoding = If, a.minFilter = Ur;
|
|
11728
11736
|
const l = new rs({
|
|
11729
11737
|
map: a,
|
|
11730
11738
|
transparent: !0,
|
|
11731
11739
|
depthTest: !1
|
|
11732
|
-
}), c = new ts(o, l), d = new
|
|
11733
|
-
d.add(new
|
|
11734
|
-
const h = new
|
|
11740
|
+
}), c = new ts(o, l), d = new Pf();
|
|
11741
|
+
d.add(new Ef(new ie(0, 0, 0), new ie(0, 0, 0.1)));
|
|
11742
|
+
const h = new kf(d, 8, 3e-3), u = new vh({
|
|
11735
11743
|
vertexShader: Sv,
|
|
11736
11744
|
fragmentShader: Tv,
|
|
11737
11745
|
depthTest: !1,
|
|
11738
11746
|
transparent: !0
|
|
11739
|
-
}), m = new ts(h, u), A = new
|
|
11747
|
+
}), m = new ts(h, u), A = new Mf(0.01, 20, 20), p = new rs({
|
|
11740
11748
|
color: n,
|
|
11741
11749
|
depthTest: !1,
|
|
11742
11750
|
transparent: !0,
|
|
@@ -11792,8 +11800,8 @@ class Lv {
|
|
|
11792
11800
|
const t = this.five.model.intersectRaycaster(this.raycaster)[0];
|
|
11793
11801
|
return t || null;
|
|
11794
11802
|
});
|
|
11795
|
-
this.five = t.five, this.hook = t.hook, this.group = t.group, this.mouseGroup =
|
|
11796
|
-
new
|
|
11803
|
+
this.five = t.five, this.hook = t.hook, this.group = t.group, this.mouseGroup = Cu(N({ isMobile: !0 }, t.openParams.crossHairParameter)), this.container.innerHTML = Pm, this.container.classList.add("range-piece-controller"), this.content = this.container.querySelector(".range-piece__content"), this.content && (this.content.style.transform = `matrix3d(${this.pieceStyl.matrix3d.toString()}) scale(${this.pieceStyl.scale})`, this.content.style.opacity = `${this.pieceStyl.opacity}`), t.container.append(this.container), this.intersectMesh = new ts(
|
|
11804
|
+
new xf(0.04, 0.08, 32),
|
|
11797
11805
|
new rs({ color: 1245179, opacity: 0, side: bh, transparent: !0 })
|
|
11798
11806
|
), this.container.addEventListener("animationend", this.computedCenterMouseXY), this.five.on("cameraUpdate", this.onCameraDirectionUpdate), this.hook.on("willChangeState", this.onWillChangeState);
|
|
11799
11807
|
}
|
|
@@ -11943,7 +11951,7 @@ class Yi extends To {
|
|
|
11943
11951
|
f(this, "cancelDeleteClickCallback", () => {
|
|
11944
11952
|
this.clearHighlightLines();
|
|
11945
11953
|
});
|
|
11946
|
-
this.model = new
|
|
11954
|
+
this.model = new wu(this.config), this.polyline = new gi({ model: this.model }), this.rangePieceController = new Lv(e), this.deleteDom = new Ga(this.five, {
|
|
11947
11955
|
i18n: this.config.i18n,
|
|
11948
11956
|
onClick: this.deleteDomClickCallback,
|
|
11949
11957
|
cancel: this.cancelDeleteClickCallback
|
|
@@ -12199,11 +12207,11 @@ const go = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNzIiIHhtbG
|
|
|
12199
12207
|
height: "184px",
|
|
12200
12208
|
background: "linear-gradient(180deg, rgba(0,0,0,0.00) 0%, #000000 100%)",
|
|
12201
12209
|
zIndex: "0"
|
|
12202
|
-
},
|
|
12210
|
+
}, Iu = {
|
|
12203
12211
|
margin: "0 64px"
|
|
12204
12212
|
}, Nv = {
|
|
12205
12213
|
opacity: "0.85"
|
|
12206
|
-
},
|
|
12214
|
+
}, Pu = {
|
|
12207
12215
|
width: "72px",
|
|
12208
12216
|
height: "72px",
|
|
12209
12217
|
backgroundSize: "100%",
|
|
@@ -12253,7 +12261,7 @@ class Wv {
|
|
|
12253
12261
|
end: (a = this._params.endButtonText) != null ? a : this._btnTexts.end,
|
|
12254
12262
|
revoke: (l = this._params.revokeButtonText) != null ? l : this._btnTexts.revoke,
|
|
12255
12263
|
exit: (c = this._params.exitButtonText) != null ? c : this._btnTexts.exit
|
|
12256
|
-
}, this.measureController = t, this.container = e, this.mainElement = this.getMainElement(), Object.assign(this.mainElement.mainIcon.style,
|
|
12264
|
+
}, this.measureController = t, this.container = e, this.mainElement = this.getMainElement(), Object.assign(this.mainElement.mainIcon.style, Pu), Object.assign(this.mainElement.mainItem.style, Iu);
|
|
12257
12265
|
const { revokeTextDom: s, exitTextDom: o } = this._getTextElement();
|
|
12258
12266
|
s && (s.innerText = this._btnTexts.revoke), o && (o.innerText = this._btnTexts.exit), this.change2Add(), this.measureController.hook.on("modeChange", this.modeChangeHandler), this.mainElement.mainItem.addEventListener("click", this.onClick), this.mainElement.mainItem.addEventListener("mouseenter", this.onMouseEnter), this.mainElement.mainItem.addEventListener("mouseleave", this.onMouseLeave);
|
|
12259
12267
|
}
|
|
@@ -12305,7 +12313,7 @@ class Fv {
|
|
|
12305
12313
|
this._params = n, this._btnTexts = {
|
|
12306
12314
|
start: (s = this._params.startButtonText) != null ? s : this._btnTexts.start,
|
|
12307
12315
|
end: (o = this._params.endButtonText) != null ? o : this._btnTexts.end
|
|
12308
|
-
}, this.measureController = t, this.container = e, this.mainElement = this.getMainElement(), this.mainElement.mainIcon.setAttribute("style", "-webkit-tap-highlight-color: rgba(0,0,0,0);"), Object.assign(this.mainElement.mainIcon.style,
|
|
12316
|
+
}, this.measureController = t, this.container = e, this.mainElement = this.getMainElement(), this.mainElement.mainIcon.setAttribute("style", "-webkit-tap-highlight-color: rgba(0,0,0,0);"), Object.assign(this.mainElement.mainIcon.style, Pu), Object.assign(this.mainElement.mainItem.style, Iu), this.change2Add(), this.mainElement.mainItem.addEventListener("click", this.onClick);
|
|
12309
12317
|
}
|
|
12310
12318
|
dispose() {
|
|
12311
12319
|
this.mainElement.mainItem.removeEventListener("click", this.onClick);
|
|
@@ -12639,18 +12647,18 @@ function $v(i, t, e) {
|
|
|
12639
12647
|
"onClick" in s && e(0, n = s.onClick);
|
|
12640
12648
|
}, [n];
|
|
12641
12649
|
}
|
|
12642
|
-
class
|
|
12650
|
+
class Eu extends le {
|
|
12643
12651
|
constructor(t) {
|
|
12644
12652
|
super(), ae(this, t, $v, Kv, oe, { onClick: 0 }, qv);
|
|
12645
12653
|
}
|
|
12646
12654
|
}
|
|
12647
|
-
const
|
|
12655
|
+
const ku = "data:image/png;base64,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", Mu = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASKADAAQAAAABAAAASAAAAACQMUbvAAAFO0lEQVR4Ae2YWYgdRRSG78SFOG6Ju4MxIRnRgCCKBlSC24P64IO4h7wI6oMPCioqAX1TfFIQRFFBETQmIioqGhDBh3GJiMSAZnABNSIuUQTFbcz4fZcup297b9+t7525wznwU11d1aervj6nurprtbAgEASCQBAIAkEgCASBIBAEgkAQCAJBIAgEgSAQBIJAEMgIzM7OLkHL0STaJ8DMgRkDyDK0CX2MptEUOrMbSGPddB6VvkAwUo5Hd6OzCuP+hfr5Y2NjvxbON60uaXp2hE8CZ3+GfzJ6ABXhOLND0VoPOrF9O+k0Kn2AM85Y16M70UTJuL8taWtoWjSAgHMYM7sQ3YyWN8yysbKZ9NrdeKp1bVGsQcBxvbkUXYsOaD3d2jbabgXQ3yV9GppGPoKA43pyDboclb3G36T9rm7g0L82soAAY/S7CG9E56GybHiLduH4BuvKRhIQcIyUi5BwTmsz47dpvwftadOvafPIAQLOUmZiSl2JVjed1dzJ7Rzei74iembnTnd+NFKAgHMIU7seXYKObTPN92kXzue9wtH/yAACjkBuQecgN3tltoNGN4rTwNlb1rFd20gAAs4JTOR2dAYqe407351IOB/2C0dnlQBiAm7vZ6oYkIPKG77XUd+E1iDvU2bTND6I3qtqLH0BYvDuWP3uORHNUHeAOxlcRx+C9C01/F1MhzvQUahsj6OfT9HDaKoqODot2zvY3tIYvOuAi+W5SD++Xf5BU+h1BvklZc+G/+u4+AbkwtxunF/QRzivcl/HUJn1E0GTjMKNmtGin7+QKeD30AQTfI1ye7dPk+uMFFPqMtRuvaFLzQfxOKocjs57ApRNwrfKDPKJ+YSV9Z/RKcj2lfR9BUi/cdzW6GsU3o98U3Uytq/p9wR6serIwWfdevoflA3mh8yHGzBfpYJK5U8cuz5dhW5k4isoS40+ptJDaD3qBM439HsKbR0UHHzXegLkhdhnaBcyrfJwhKSMGtPuAnQbAM6mbGq0HU3DI+h01Akc/+c8owYJB/9tFz/7NDUmZUqtRFegVehP5OSU64jlfpkOp/wRbUNbmNQflHXDzyoO7kMnIX16rWr18L6nbTN6FD+m9EDNAfVsGaRJHAjpOGTEJDgJViqX0WakvYu2ot3oVHQT0odRJxT7C1Y/RUtwHgNOx/90ik66qfcFyBvlIG2gOoGMjgTFMg/sQOoHo++QQFynjC7BJjjpWq/LQ3LNM62GBod79Z5iXpwsg7SWul/YQiqmW4qINPmD6OM5zUU+QbQs9vUhzgsc7tsyz23r2Ah3J/kJegE5mXFkOjVbvNMC7v7JaHMd8ZzST/4a6/MGh3vXU8GybxMS9hGOfOJG0jFIAGnylk7edpXOm1qpzWPb7Ge0mYrPoaGmFff7zxxEZZZB2oFD00RIRyAhJSh5MHkoAhFOeit5vQvyFvTksBZk7vU/qxSQ3jNIH2R3cqPoh+bvKEVMiqJ8tKSo8TLXIdPqWfT0fMLh/tWlmM6SMam9pFsRkgt3ihRhGS3FiHLT6X7JfY475KG8yrlXS6s8gtKdCpCu5ryR5Os8H0H5NDNyhGNaPc/1Kd2ozp8NDJBTKkDawKkjkZFkeuVBOY49yMh5eaHAYSyDSTEdJytAcuF2n2TqmF5pD5Tg+B9pQUQOY6ubgxyKsSYZNf4GEdJqJJylyA/Pl9AbCw0OY6o/RcuhGJB8IMJZh1Ygf4u8g3YBx5QLk4DRhMaRC3NYEAgCQSAIBIEgEASCQBAIAkEgCASBIBAEgkAQCAJBYJEQ+BdpRqKi3IjqNwAAAABJRU5ErkJggg==", mc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAABi0lEQVRoBe2Yu20DMRBEdW7EuVLX4NQVuAEVoUhFuAFV4FQ1OHWuRkzNABRwMLhDfbhcBhyA0IEjnvYNjjxoN5upmcBMYCYQmcCifjyl9AL/E+Md4xXjjHHCOC7L8ofPcJkAufgvVPhWqPIHc7sRIJiwJSZfKp7f5zz9cCkAPjZKNV+tbeYpAD7zSjVfrW3mKQBuWKWar9Y28xQATxsl7PNkHgJqYUtPARzxQzxtLG1h7KMhZIL5KP3/HkgonMVf9Y2LA45UzneXBChVkxPfw/tY+WEQdwOw6JEgHgIYCeJhgFEgngIYAeJpgGiIJgCREM0AoiCaAkRANAfoDeEC0BPCDaAXhCtADwh3AG+ILgCeEN0AvCC6AnhAdAdoDRECICB+4bEmtmzOGNU2ZhgAirP+2dFaS7YxVVdifROX69wIOODmTN6SbGOGArDiDFF7Esw2ZjhAjr3WpjT9UQC4YZVMfxSAWhvT9EcBUG1MnkL0i6ptnuIij0mjjVl9D3jUMu85E5gJzARuT+ACS7KuMQ7rOEcAAAAASUVORK5CYII=", gc = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAByElEQVRoBe1ZMU4DMRC8Q7yCJjVNKCh4ARVfAPo0PCYNPeQLVLyAggIa6jQ8g2NGsiJjeUfHrdGd0K60Sm7t3R3P+hx503UhwUAwEAzMyUCvkg/DcITxa+gldAXdQ5+hu77vv/DZTKbmMheQAt4D4XkF5Stsm1aL8OQiw5aQ+Rp4zqed461kci5VgUegO22F0BnnA9W+qcVQFeCeX4qYWNQC+MIuRUwsxwIhTxu1hV4w/ib8fzN0hskXwoFYqqIqsIMHT5uafML4XhuYaGMsxqwJMRBLVcyXmLOzs/ku8ybzTDhkthZfiWUNzSuxxbP8zVEV6HjOQx8KdNw2rcEzBWP+2JLMTQwctEQuwHJakj0WMHc1ogJRAScDsYWcBLrdowJuCp0BogJOAt3uUQE3hc4AUQEngW73/10BXimhtwVNvIDLq2gxf+wjYzL2QZg7XWsPtvKLCSQ5Wq1FXsCfoK2ulsRxBT2BliLbmGoLqXYfE/EC3koYqwae8WUbU1UgWoutyoM4KyuW2kJ7y2kGu4nF01rcVnpGk9aWTrq8eVbGad5alO2+MvuIZ9XGlLnMl5hJ01HK02ixfzGNICemBAPBQDDwhwx8A43PdoQvgLfYAAAAAElFTkSuQmCC";
|
|
12648
12656
|
function e0(i) {
|
|
12649
12657
|
ue(i, "svelte-468fdd", '*.forbid.svelte-468fdd.svelte-468fdd{pointer-events:none !important;opacity:0.5}.Measure-Controller.svelte-468fdd.svelte-468fdd{pointer-events:none;position:relative;width:100%;height:100%;z-index:2}.Measure-Controller.svelte-468fdd .mode-switcher.svelte-468fdd{margin-top:2.25rem}.Measure-Controller.svelte-468fdd .bottom.svelte-468fdd{position:absolute;width:100%;bottom:0}.Measure-Controller.svelte-468fdd .bottom .mask.svelte-468fdd{position:absolute;bottom:0;width:100%;height:11.5rem;background-size:100%;background-image:linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.3))}.Measure-Controller.svelte-468fdd .bottom .center.svelte-468fdd{display:flex;flex-direction:column;align-items:center;margin-bottom:2.5rem}.Measure-Controller.svelte-468fdd .buttons.svelte-468fdd{pointer-events:all;display:flex;align-items:center;height:2.5rem;background:rgba(0, 0, 0, 0.2);color:rgba(255, 255, 255, 0.85);width:-moz-max-content;width:max-content;border-radius:624.9375rem;overflow:hidden}.Measure-Controller.svelte-468fdd .buttons .button.svelte-468fdd{cursor:pointer;display:flex;align-items:center;position:relative;font-size:0.875rem;padding:0rem 1rem}.Measure-Controller.svelte-468fdd .buttons .button .icon.svelte-468fdd{width:1.5rem;height:1.5rem;background-repeat:no-repeat;background-size:100%;margin-right:0.25rem}.Measure-Controller.svelte-468fdd .buttons .button.svelte-468fdd::after{content:"";position:absolute;display:block;right:-0.03125rem;height:1.5rem;width:0.0625rem;background-image:linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.3), transparent);background-size:100%;background-repeat:no-repeat;background-position:center}.Measure-Controller.svelte-468fdd .buttons .button.svelte-468fdd:last-child::after{display:none}');
|
|
12650
12658
|
}
|
|
12651
12659
|
function pc(i) {
|
|
12652
12660
|
let t, e;
|
|
12653
|
-
return t = new
|
|
12661
|
+
return t = new Eu({
|
|
12654
12662
|
props: {
|
|
12655
12663
|
onClick: (
|
|
12656
12664
|
/*measureController*/
|
|
@@ -12691,8 +12699,8 @@ function Ac(i) {
|
|
|
12691
12699
|
), u, m, A;
|
|
12692
12700
|
return {
|
|
12693
12701
|
c() {
|
|
12694
|
-
t = D("div"), e = D("div"), n = D("div"), s = K(), r = xe(o), a = K(), l = D("div"), c = D("div"), d = K(), u = xe(h), w(n, "class", "icon svelte-468fdd"), z(n, "background-image", `url(${
|
|
12695
|
-
i[3]), w(c, "class", "icon svelte-468fdd"), z(c, "background-image", `url(${
|
|
12702
|
+
t = D("div"), e = D("div"), n = D("div"), s = K(), r = xe(o), a = K(), l = D("div"), c = D("div"), d = K(), u = xe(h), w(n, "class", "icon svelte-468fdd"), z(n, "background-image", `url(${ku})`), w(e, "class", "button svelte-468fdd"), q(e, "forbid", !/*canRevoke*/
|
|
12703
|
+
i[3]), w(c, "class", "icon svelte-468fdd"), z(c, "background-image", `url(${Mu})`), w(l, "class", "button svelte-468fdd"), w(t, "class", "buttons svelte-468fdd");
|
|
12696
12704
|
},
|
|
12697
12705
|
m(p, g) {
|
|
12698
12706
|
B(p, t, g), x(t, e), x(e, n), x(e, s), x(e, r), x(t, a), x(t, l), x(l, c), x(l, d), x(l, u), m || (A = [
|
|
@@ -13171,7 +13179,7 @@ function u0(i) {
|
|
|
13171
13179
|
}
|
|
13172
13180
|
function Cc(i) {
|
|
13173
13181
|
let t, e;
|
|
13174
|
-
return t = new
|
|
13182
|
+
return t = new Eu({
|
|
13175
13183
|
props: {
|
|
13176
13184
|
onClick: (
|
|
13177
13185
|
/*measureController*/
|
|
@@ -13283,7 +13291,7 @@ function Pc(i) {
|
|
|
13283
13291
|
), o, r, a, l, c;
|
|
13284
13292
|
return {
|
|
13285
13293
|
c() {
|
|
13286
|
-
t = D("div"), e = D("div"), n = K(), o = xe(s), w(e, "class", "icon svelte-ldjbp8"), z(e, "background-image", `url(${
|
|
13294
|
+
t = D("div"), e = D("div"), n = K(), o = xe(s), w(e, "class", "icon svelte-ldjbp8"), z(e, "background-image", `url(${ku})`), w(t, "class", "button svelte-ldjbp8"), q(
|
|
13287
13295
|
t,
|
|
13288
13296
|
"forbid",
|
|
13289
13297
|
/*buttonState*/
|
|
@@ -13329,7 +13337,7 @@ function Ec(i) {
|
|
|
13329
13337
|
), o, r, a, l, c;
|
|
13330
13338
|
return {
|
|
13331
13339
|
c() {
|
|
13332
|
-
t = D("div"), e = D("div"), n = K(), o = xe(s), w(e, "class", "icon svelte-ldjbp8"), z(e, "background-image", `url(${
|
|
13340
|
+
t = D("div"), e = D("div"), n = K(), o = xe(s), w(e, "class", "icon svelte-ldjbp8"), z(e, "background-image", `url(${Mu})`), w(t, "class", "button svelte-ldjbp8");
|
|
13333
13341
|
},
|
|
13334
13342
|
m(d, h) {
|
|
13335
13343
|
B(d, t, h), x(t, e), x(t, n), x(t, o), a = !0, l || (c = be(
|
|
@@ -13602,16 +13610,16 @@ var Mt = typeof globalThis != "undefined" ? globalThis : typeof window != "undef
|
|
|
13602
13610
|
function po(i) {
|
|
13603
13611
|
return i === null ? "null" : typeof i == "undefined" ? "undefined" : typeof i == "object" ? Array.isArray(i) ? "array" : "object" : typeof i;
|
|
13604
13612
|
}
|
|
13605
|
-
function
|
|
13613
|
+
function xu(i) {
|
|
13606
13614
|
return po(i) === "object" ? aa(i) : po(i) === "array" ? ra(i) : i;
|
|
13607
13615
|
}
|
|
13608
13616
|
function ra(i) {
|
|
13609
|
-
return i.map(
|
|
13617
|
+
return i.map(xu);
|
|
13610
13618
|
}
|
|
13611
13619
|
function aa(i) {
|
|
13612
13620
|
const t = {};
|
|
13613
13621
|
for (const e in i)
|
|
13614
|
-
i.hasOwnProperty(e) && (t[e] =
|
|
13622
|
+
i.hasOwnProperty(e) && (t[e] = xu(i[e]));
|
|
13615
13623
|
return t;
|
|
13616
13624
|
}
|
|
13617
13625
|
function Lo(i, t = [], e = {}) {
|
|
@@ -13904,8 +13912,8 @@ class k0 {
|
|
|
13904
13912
|
this.currentMeasureType = t, this.hook.emit("measureTypeChange", t);
|
|
13905
13913
|
});
|
|
13906
13914
|
var o, r, a, l, c, d, h, u, m;
|
|
13907
|
-
this.five = t, this.params = e, this.config = So(e, ["openParams", "magnifierParams"]), this.model = new
|
|
13908
|
-
const n = (u = (h = e.editParams) == null ? void 0 : h.pointSelectorMode) != null ? u :
|
|
13915
|
+
this.five = t, this.params = e, this.config = So(e, ["openParams", "magnifierParams"]), this.model = new wu(this.config), this.isMobile = (r = (o = e == null ? void 0 : e.openParams) == null ? void 0 : o.isMobile) != null ? r : !1, this.magnifier = new ya(t, (a = e.magnifierParams) != null ? a : { width: 190, height: 190, scale: 2 }), this.allowMeasureType = Array.from(new Set((c = (l = e.editParams) == null ? void 0 : l.allowMeasureType) != null ? c : ["line"])), this.currentMeasureType = (d = this.allowMeasureType[0]) != null ? d : "line", this.group = new ri(), this.group.name = "plugin-measure-group", this.container.classList.add("five-plugin-measure-container"), this.container.style.position = "absolute", this.container.style.left = "0", this.container.style.top = "0", this.container.style.pointerEvents = "none", this.container.style.width = "100%", this.container.style.height = "100%", this.container.style.opacity = "0";
|
|
13916
|
+
const n = (u = (h = e.editParams) == null ? void 0 : h.pointSelectorMode) != null ? u : yu ? "fixed" : "cursor", s = (m = this.params.openParams) != null ? m : {};
|
|
13909
13917
|
if (this.params.useUIController !== !1) {
|
|
13910
13918
|
const A = N({
|
|
13911
13919
|
container: this.container,
|
|
@@ -14021,8 +14029,8 @@ class k0 {
|
|
|
14021
14029
|
changeIsMobile(t) {
|
|
14022
14030
|
}
|
|
14023
14031
|
changeConfigs(t) {
|
|
14024
|
-
var e;
|
|
14025
|
-
Object.assign(this.config, t), (e = this.controller) == null || e.updateDistanceUI();
|
|
14032
|
+
var e, n;
|
|
14033
|
+
Object.assign(this.config, t), (e = this.controller) == null || e.updateDistanceUI(), (n = this.controller) == null || n.updateAreaUI();
|
|
14026
14034
|
}
|
|
14027
14035
|
/** 设置线段的文本 */
|
|
14028
14036
|
setCustomText(t, e) {
|
|
@@ -14047,7 +14055,7 @@ class k0 {
|
|
|
14047
14055
|
editParams: e,
|
|
14048
14056
|
magnifierParams: this.params.magnifierParams,
|
|
14049
14057
|
getMeasureType: () => this.currentMeasureType,
|
|
14050
|
-
mouseGroup:
|
|
14058
|
+
mouseGroup: Cu(N({}, t.crossHairParameter)),
|
|
14051
14059
|
userDistanceItemCreator: this.params.userDistanceItemCreator
|
|
14052
14060
|
};
|
|
14053
14061
|
}
|
|
@@ -14203,7 +14211,7 @@ class pE {
|
|
|
14203
14211
|
}
|
|
14204
14212
|
const AE = function(t, e) {
|
|
14205
14213
|
return new k0(t, e);
|
|
14206
|
-
},
|
|
14214
|
+
}, Du = ja(null);
|
|
14207
14215
|
function x0(i) {
|
|
14208
14216
|
ue(i, "svelte-19zi46m", ".PanoSpatialTagPlugin__tag-origin.svelte-19zi46m{position:absolute;width:0.5rem;height:0.5rem;border-radius:50%;background:#fff;box-shadow:0 0 .6rem #fff;transform:translate(-50%, -50%) scale(1);transform-origin:center center;animation:svelte-19zi46m-PanoSpatialTagPlugin__tag-origin 1.2s forwards;pointer-events:auto}.PanoSpatialTagPlugin__tag-origin.svelte-19zi46m:after{content:'';position:absolute;top:50%;height:50%;width:2rem;height:2rem;transform:translate(-50%, -50%)}.PanoSpatialTagPlugin__tag-origin-destroy.svelte-19zi46m{transform:translate(-50%, -50%) scale(0.6);animation:svelte-19zi46m-PanoSpatialTagPlugin__tag-origin-destroy 1.2s forwards .7s}@keyframes svelte-19zi46m-PanoSpatialTagPlugin__tag-origin{0%{transform:translate(-50%, -50%) scale(1);opacity:0}100%{transform:translate(-50%, -50%) scale(0.6);opacity:1 }}@keyframes svelte-19zi46m-PanoSpatialTagPlugin__tag-origin-destroy{0%{transform:translate(-50%, -50%) scale(0.6);opacity:1}10%{transform:translate(-50%, -50%) scale(1);opacity:0.9}100%{transform:translate(-50%, -50%) scale(1);opacity:0}}");
|
|
14209
14217
|
}
|
|
@@ -14310,7 +14318,7 @@ function D0(i) {
|
|
|
14310
14318
|
function S0(i, t, e) {
|
|
14311
14319
|
let { origins: n } = t;
|
|
14312
14320
|
const s = (r) => {
|
|
14313
|
-
|
|
14321
|
+
Du.update(() => `${r}-PanoSpatialTagPlugin-${Date.now()}`);
|
|
14314
14322
|
}, o = (r) => s(r.id);
|
|
14315
14323
|
return i.$$set = (r) => {
|
|
14316
14324
|
"origins" in r && e(0, n = r.origins);
|
|
@@ -14448,7 +14456,7 @@ function z0(i, t, e) {
|
|
|
14448
14456
|
wt(() => {
|
|
14449
14457
|
m.emit("initTag", { id: n });
|
|
14450
14458
|
});
|
|
14451
|
-
const k =
|
|
14459
|
+
const k = Du.subscribe((P) => {
|
|
14452
14460
|
if (P === null)
|
|
14453
14461
|
return;
|
|
14454
14462
|
const [R, L] = P.split("-PanoSpatialTagPlugin-");
|
|
@@ -14459,7 +14467,7 @@ function z0(i, t, e) {
|
|
|
14459
14467
|
1500
|
|
14460
14468
|
)));
|
|
14461
14469
|
});
|
|
14462
|
-
|
|
14470
|
+
Xh(() => {
|
|
14463
14471
|
e(7, A = g.offsetWidth), e(8, p = g.offsetHeight), !y && e(10, v = !d);
|
|
14464
14472
|
}), Ot(() => {
|
|
14465
14473
|
m.emit("destroyTag", { id: n }), k(), h();
|
|
@@ -15026,7 +15034,7 @@ let Y0 = class extends le {
|
|
|
15026
15034
|
super(), ae(this, t, F0, W0, oe, { itemLabel: 0, hooks: 2 }, _0);
|
|
15027
15035
|
}
|
|
15028
15036
|
};
|
|
15029
|
-
function
|
|
15037
|
+
function Su(i, t = 200) {
|
|
15030
15038
|
let e;
|
|
15031
15039
|
return function(...n) {
|
|
15032
15040
|
clearTimeout(e), e = setTimeout(() => {
|
|
@@ -15202,7 +15210,7 @@ function J0(i, t, e) {
|
|
|
15202
15210
|
}, P = () => {
|
|
15203
15211
|
A = [], e(1, h = S(o, h));
|
|
15204
15212
|
};
|
|
15205
|
-
|
|
15213
|
+
Uh(() => {
|
|
15206
15214
|
F();
|
|
15207
15215
|
});
|
|
15208
15216
|
const R = () => {
|
|
@@ -15211,7 +15219,7 @@ function J0(i, t, e) {
|
|
|
15211
15219
|
wt(() => {
|
|
15212
15220
|
e(1, h = a), d = a, P(), Y(), o.on("cameraUpdate", R);
|
|
15213
15221
|
});
|
|
15214
|
-
const L =
|
|
15222
|
+
const L = Su(
|
|
15215
15223
|
() => {
|
|
15216
15224
|
e(4, p = !0), P();
|
|
15217
15225
|
},
|
|
@@ -15932,7 +15940,7 @@ function mb(i, t, e) {
|
|
|
15932
15940
|
p = [], e(1, h = k(s, h));
|
|
15933
15941
|
}, P = () => {
|
|
15934
15942
|
e(5, g = !1), R();
|
|
15935
|
-
}, R =
|
|
15943
|
+
}, R = Su(
|
|
15936
15944
|
() => {
|
|
15937
15945
|
e(5, g = !0), S();
|
|
15938
15946
|
},
|
|
@@ -15980,7 +15988,7 @@ function mb(i, t, e) {
|
|
|
15980
15988
|
});
|
|
15981
15989
|
}
|
|
15982
15990
|
};
|
|
15983
|
-
|
|
15991
|
+
Uh(() => {
|
|
15984
15992
|
F();
|
|
15985
15993
|
}), wt(() => {
|
|
15986
15994
|
e(1, h = Nc(r)), d = r, S(), Y(), s.on("cameraUpdate", P);
|
|
@@ -16486,7 +16494,7 @@ const xE = (i) => new xb(i);
|
|
|
16486
16494
|
function Db(i, t) {
|
|
16487
16495
|
console.warn(`⛔ ==> [${i}]: ${t}`);
|
|
16488
16496
|
}
|
|
16489
|
-
function
|
|
16497
|
+
function Tu(i, t) {
|
|
16490
16498
|
console.warn(`🚫 ==> [${i}]: ${t}`);
|
|
16491
16499
|
}
|
|
16492
16500
|
var jo = {}, Sb = Tb;
|
|
@@ -16510,15 +16518,15 @@ var Vb = Qb;
|
|
|
16510
16518
|
function Qb(i, t) {
|
|
16511
16519
|
return i[0] * t[0] + i[1] * t[1];
|
|
16512
16520
|
}
|
|
16513
|
-
var Gb = Sb, da = Lb,
|
|
16521
|
+
var Gb = Sb, da = Lb, Lu = zb, Nb = Bb, Hb = Vb, Fc = [0, 0];
|
|
16514
16522
|
jo.computeMiter = function(t, e, n, s, o) {
|
|
16515
|
-
return Gb(t, n, s),
|
|
16523
|
+
return Gb(t, n, s), Lu(t, t), da(e, -t[1], t[0]), da(Fc, -n[1], n[0]), o / Hb(e, Fc);
|
|
16516
16524
|
};
|
|
16517
16525
|
jo.normal = function(t, e) {
|
|
16518
16526
|
return da(t, -e[1], e[0]), t;
|
|
16519
16527
|
};
|
|
16520
16528
|
jo.direction = function(t, e, n) {
|
|
16521
|
-
return Nb(t, e, n),
|
|
16529
|
+
return Nb(t, e, n), Lu(t, t), t;
|
|
16522
16530
|
};
|
|
16523
16531
|
var Kt = jo, Dn = [0, 0], Fs = [0, 0], Yc = [0, 0], Ui = [0, 0], _b = function(i, t) {
|
|
16524
16532
|
var e = null, n = [];
|
|
@@ -16645,7 +16653,7 @@ function Ao(i) {
|
|
|
16645
16653
|
} else
|
|
16646
16654
|
return as(i);
|
|
16647
16655
|
}
|
|
16648
|
-
function
|
|
16656
|
+
function ju(i) {
|
|
16649
16657
|
if (yt(i) && i.matrix) {
|
|
16650
16658
|
const t = new Ji().fromArray(i.matrix), e = i.data.mediaPosition.map((n) => new ie().fromArray(n).applyMatrix4(t));
|
|
16651
16659
|
return sn(e[0], e[2]);
|
|
@@ -16740,15 +16748,15 @@ var Wa = /* @__PURE__ */ ((i) => (i.Default = "default", i.GetAudioDuration = "g
|
|
|
16740
16748
|
function c1(i, t) {
|
|
16741
16749
|
const e = (t == null ? void 0 : t.namespace) || "default", n = ss[e] || (ss[e] = []);
|
|
16742
16750
|
let s = n.find((o) => !o.realSrc || o.realSrc === Ai);
|
|
16743
|
-
return s || (console.warn("未找到缓存音频,已新建", ss), s = new
|
|
16751
|
+
return s || (console.warn("未找到缓存音频,已新建", ss), s = new zu(Ai), n.push(s)), i && (s.src = i), s;
|
|
16744
16752
|
}
|
|
16745
16753
|
function d1(i, t) {
|
|
16746
16754
|
const e = (t == null ? void 0 : t.namespace) || "default", n = ss[e] || (ss[e] = []), s = i - n.length;
|
|
16747
16755
|
if (!(s <= 0))
|
|
16748
16756
|
for (let o = 0; o < s; o++)
|
|
16749
|
-
n.push(new
|
|
16757
|
+
n.push(new zu(Ai));
|
|
16750
16758
|
}
|
|
16751
|
-
class
|
|
16759
|
+
class zu extends Audio {
|
|
16752
16760
|
constructor(e) {
|
|
16753
16761
|
super(e);
|
|
16754
16762
|
f(this, "preload", "auto");
|
|
@@ -16895,9 +16903,9 @@ class f1 extends gs {
|
|
|
16895
16903
|
removeCache() {
|
|
16896
16904
|
}
|
|
16897
16905
|
}
|
|
16898
|
-
const
|
|
16906
|
+
const Ou = navigator.userAgent.toLowerCase().indexOf("iphone") !== -1;
|
|
16899
16907
|
navigator.userAgent.toLowerCase().indexOf("android");
|
|
16900
|
-
const eo = navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1, m1 =
|
|
16908
|
+
const eo = navigator.userAgent.toLowerCase().indexOf("micromessenger") !== -1, m1 = Ou && eo;
|
|
16901
16909
|
function g1(i) {
|
|
16902
16910
|
if (i.length !== 4)
|
|
16903
16911
|
return !1;
|
|
@@ -16912,7 +16920,7 @@ class Br extends E.Mesh {
|
|
|
16912
16920
|
constructor(e, n, s) {
|
|
16913
16921
|
if (e.length !== 4)
|
|
16914
16922
|
throw new Error("QuadrangleMesh: Invalid number of points, it's not a quadrangle");
|
|
16915
|
-
const [o, r, a, l] = e, c = sn(...e), d = [o.clone().sub(c), r.clone().sub(c), a.clone().sub(c), l.clone().sub(c)], h = new
|
|
16923
|
+
const [o, r, a, l] = e, c = sn(...e), d = [o.clone().sub(c), r.clone().sub(c), a.clone().sub(c), l.clone().sub(c)], h = new Bu(d, s);
|
|
16916
16924
|
super(h, n);
|
|
16917
16925
|
f(this, "name", "QuadrangleMesh");
|
|
16918
16926
|
this.position.copy(c);
|
|
@@ -16922,7 +16930,7 @@ class Br extends E.Mesh {
|
|
|
16922
16930
|
return e !== null && e.remove(this), this;
|
|
16923
16931
|
}
|
|
16924
16932
|
}
|
|
16925
|
-
class
|
|
16933
|
+
class Bu extends E.BufferGeometry {
|
|
16926
16934
|
/**
|
|
16927
16935
|
* @description 生成一个四边形的BufferGeometry,原点取 points[0],即左下角
|
|
16928
16936
|
* @param {Vector3Position[]} points: 四个顶点的坐标, [左下,右下,右上,左上]
|
|
@@ -16982,7 +16990,7 @@ function p1(i, t) {
|
|
|
16982
16990
|
});
|
|
16983
16991
|
}
|
|
16984
16992
|
};
|
|
16985
|
-
document.addEventListener("click", r, { once: !0 }),
|
|
16993
|
+
document.addEventListener("click", r, { once: !0 }), Ou && document.addEventListener("touchstart", r, { once: !0 });
|
|
16986
16994
|
}
|
|
16987
16995
|
return s;
|
|
16988
16996
|
}
|
|
@@ -17041,7 +17049,7 @@ class A1 extends E.ShaderMaterial {
|
|
|
17041
17049
|
};
|
|
17042
17050
|
}
|
|
17043
17051
|
}
|
|
17044
|
-
let
|
|
17052
|
+
let Ru = class extends E.Mesh {
|
|
17045
17053
|
constructor() {
|
|
17046
17054
|
super(...arguments);
|
|
17047
17055
|
f(this, "name", "MediaPlane");
|
|
@@ -17062,20 +17070,35 @@ let Bu = class extends E.Mesh {
|
|
|
17062
17070
|
});
|
|
17063
17071
|
}
|
|
17064
17072
|
};
|
|
17065
|
-
class Zc extends
|
|
17073
|
+
class Zc extends Ru {
|
|
17066
17074
|
constructor(e, n, s) {
|
|
17075
|
+
var a;
|
|
17067
17076
|
super();
|
|
17068
17077
|
f(this, "name", "PanoTagPluginImagePlane");
|
|
17069
|
-
this.src = e
|
|
17070
|
-
|
|
17071
|
-
|
|
17072
|
-
|
|
17073
|
-
|
|
17074
|
-
|
|
17078
|
+
this.src = e;
|
|
17079
|
+
const o = (a = s == null ? void 0 : s.resolveZFighting) != null ? a : !0;
|
|
17080
|
+
let r = n;
|
|
17081
|
+
if (o) {
|
|
17082
|
+
const l = new E.Vector3().crossVectors(
|
|
17083
|
+
new E.Vector3().subVectors(n[0], n[1]),
|
|
17084
|
+
new E.Vector3().subVectors(n[0], n[3])
|
|
17085
|
+
).normalize().multiplyScalar(5e-4);
|
|
17086
|
+
r = n.map((c) => c.clone().add(l));
|
|
17087
|
+
}
|
|
17088
|
+
hs(e).then((l) => {
|
|
17089
|
+
var p;
|
|
17090
|
+
const c = new URL(e, location.href).pathname.endsWith(".png"), d = new E.MeshBasicMaterial({ map: l, transparent: c }), h = $i(
|
|
17091
|
+
(p = s == null ? void 0 : s.objectFit) != null ? p : "contain",
|
|
17092
|
+
r,
|
|
17093
|
+
l.image.width / l.image.height
|
|
17094
|
+
), u = sn(...h), m = h.map((g) => g.clone().sub(u)), A = new Bu(m);
|
|
17095
|
+
this.position.copy(u), this.geometry = A, this.material = d;
|
|
17096
|
+
}).catch((l) => {
|
|
17097
|
+
console.error(`Imageplane error ${l}`);
|
|
17075
17098
|
});
|
|
17076
17099
|
}
|
|
17077
17100
|
}
|
|
17078
|
-
class ha extends
|
|
17101
|
+
class ha extends Ru {
|
|
17079
17102
|
// eslint-disable-next-line max-params
|
|
17080
17103
|
constructor(e, n, s) {
|
|
17081
17104
|
const {
|
|
@@ -17665,7 +17688,7 @@ class b1 extends f1 {
|
|
|
17665
17688
|
const l = (a = (r = this.five.work) == null ? void 0 : r.observers[s]) == null ? void 0 : a.position;
|
|
17666
17689
|
if (l === void 0)
|
|
17667
17690
|
throw new Error(`getDistance(): observerPosition is ${l}`);
|
|
17668
|
-
const c =
|
|
17691
|
+
const c = ju(e);
|
|
17669
17692
|
if (!c)
|
|
17670
17693
|
return -1;
|
|
17671
17694
|
const d = l.distanceTo(c);
|
|
@@ -18078,7 +18101,7 @@ class w1 extends b1 {
|
|
|
18078
18101
|
var r, a, l, c, d, h, u;
|
|
18079
18102
|
let n = 0;
|
|
18080
18103
|
const s = (r = e.fiveState) == null ? void 0 : r.panoIndex;
|
|
18081
|
-
s !== void 0 ? n = (a = this.five.work.observers[s]) == null ? void 0 : a.floorIndex : n = y1(this.five.work.observers, (u = (h = (c = (l = e.model) == null ? void 0 : l.object) == null ? void 0 : c.position) != null ? h : (d = e.mediaPlane) == null ? void 0 : d.position) != null ? u :
|
|
18104
|
+
s !== void 0 ? n = (a = this.five.work.observers[s]) == null ? void 0 : a.floorIndex : n = y1(this.five.work.observers, (u = (h = (c = (l = e.model) == null ? void 0 : l.object) == null ? void 0 : c.position) != null ? h : (d = e.mediaPlane) == null ? void 0 : d.position) != null ? u : ju(e));
|
|
18082
18105
|
const o = this.five.model.shownFloor;
|
|
18083
18106
|
return o === null || o === n;
|
|
18084
18107
|
}
|
|
@@ -18732,7 +18755,7 @@ function j1(i, t, e) {
|
|
|
18732
18755
|
k
|
|
18733
18756
|
];
|
|
18734
18757
|
}
|
|
18735
|
-
class
|
|
18758
|
+
class Vu extends le {
|
|
18736
18759
|
constructor(t) {
|
|
18737
18760
|
super(), ae(
|
|
18738
18761
|
this,
|
|
@@ -18885,7 +18908,7 @@ function Q1(i) {
|
|
|
18885
18908
|
}
|
|
18886
18909
|
function nd(i) {
|
|
18887
18910
|
let t, e, n;
|
|
18888
|
-
return e = new
|
|
18911
|
+
return e = new Vu({
|
|
18889
18912
|
props: {
|
|
18890
18913
|
unfolded: (
|
|
18891
18914
|
/*visible*/
|
|
@@ -19056,7 +19079,7 @@ function N1(i, t, e) {
|
|
|
19056
19079
|
m
|
|
19057
19080
|
];
|
|
19058
19081
|
}
|
|
19059
|
-
class
|
|
19082
|
+
class Qu extends le {
|
|
19060
19083
|
constructor(t) {
|
|
19061
19084
|
super(), ae(this, t, N1, G1, oe, { visible: 0, textUnfolded: 8, content: 1 }, Q1);
|
|
19062
19085
|
}
|
|
@@ -19102,7 +19125,7 @@ function sd(i) {
|
|
|
19102
19125
|
),
|
|
19103
19126
|
useLinearColor: !0
|
|
19104
19127
|
}
|
|
19105
|
-
}), r = new
|
|
19128
|
+
}), r = new Qu({
|
|
19106
19129
|
props: {
|
|
19107
19130
|
visible: (
|
|
19108
19131
|
/*unfolded*/
|
|
@@ -19825,7 +19848,7 @@ function cd(i) {
|
|
|
19825
19848
|
/*inDelay*/
|
|
19826
19849
|
i[0]
|
|
19827
19850
|
),
|
|
19828
|
-
easing:
|
|
19851
|
+
easing: su
|
|
19829
19852
|
}), e.start());
|
|
19830
19853
|
}), s = !0);
|
|
19831
19854
|
},
|
|
@@ -20153,7 +20176,7 @@ function wy(i, t, e) {
|
|
|
20153
20176
|
"direction" in r && e(0, n = r.direction), "disabled" in r && e(1, s = r.disabled);
|
|
20154
20177
|
}, [n, s, o];
|
|
20155
20178
|
}
|
|
20156
|
-
class
|
|
20179
|
+
class Gu extends le {
|
|
20157
20180
|
constructor(t) {
|
|
20158
20181
|
super(), ae(this, t, wy, yy, oe, { direction: 0, disabled: 1 }, by);
|
|
20159
20182
|
}
|
|
@@ -20359,7 +20382,7 @@ function Wy({
|
|
|
20359
20382
|
clonesCountTotal: n,
|
|
20360
20383
|
particlesToScroll: s
|
|
20361
20384
|
}) {
|
|
20362
|
-
return i === t - e ? 0 : i === 0 ?
|
|
20385
|
+
return i === t - e ? 0 : i === 0 ? Nu({
|
|
20363
20386
|
particlesCountWithoutClones: t - n,
|
|
20364
20387
|
particlesToScroll: s
|
|
20365
20388
|
}) - 1 : Math.floor((i - e) / s);
|
|
@@ -20389,7 +20412,7 @@ function Yy({
|
|
|
20389
20412
|
particlesToScroll: o
|
|
20390
20413
|
});
|
|
20391
20414
|
}
|
|
20392
|
-
function
|
|
20415
|
+
function Nu({
|
|
20393
20416
|
particlesCountWithoutClones: i,
|
|
20394
20417
|
particlesToScroll: t
|
|
20395
20418
|
}) {
|
|
@@ -20400,7 +20423,7 @@ function Uy({
|
|
|
20400
20423
|
particlesToScroll: t,
|
|
20401
20424
|
particlesToShow: e
|
|
20402
20425
|
}) {
|
|
20403
|
-
const n =
|
|
20426
|
+
const n = Hu({
|
|
20404
20427
|
particlesCountWithoutClones: i,
|
|
20405
20428
|
particlesToScroll: t,
|
|
20406
20429
|
particlesToShow: e
|
|
@@ -20413,7 +20436,7 @@ function Xy({
|
|
|
20413
20436
|
particlesToScroll: e,
|
|
20414
20437
|
particlesToShow: n
|
|
20415
20438
|
}) {
|
|
20416
|
-
return i ?
|
|
20439
|
+
return i ? Nu({
|
|
20417
20440
|
particlesCountWithoutClones: t,
|
|
20418
20441
|
particlesToScroll: e
|
|
20419
20442
|
}) : Uy({
|
|
@@ -20476,7 +20499,7 @@ function qy({
|
|
|
20476
20499
|
for (let e = 0; e < i.length; e++)
|
|
20477
20500
|
i[e].style.minWidth = `${t}px`, i[e].style.maxWidth = `${t}px`;
|
|
20478
20501
|
}
|
|
20479
|
-
function
|
|
20502
|
+
function Hu({
|
|
20480
20503
|
particlesToScroll: i,
|
|
20481
20504
|
particlesToShow: t,
|
|
20482
20505
|
particlesCountWithoutClones: e
|
|
@@ -20549,7 +20572,7 @@ const os = (i, t, e) => {
|
|
|
20549
20572
|
}, ua = (i) => (t) => {
|
|
20550
20573
|
i[t] && i[t]();
|
|
20551
20574
|
};
|
|
20552
|
-
var nw = "Expected a function",
|
|
20575
|
+
var nw = "Expected a function", _u = "__lodash_hash_undefined__", Wu = 1 / 0, iw = "[object Function]", sw = "[object GeneratorFunction]", ow = "[object Symbol]", rw = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, aw = /^\w*$/, lw = /^\./, cw = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, dw = /[\\^$.*+?()[\]{}|]/g, hw = /\\(\\)?/g, uw = /^\[object .+?Constructor\]$/, fw = typeof Mt == "object" && Mt && Mt.Object === Object && Mt, mw = typeof self == "object" && self && self.Object === Object && self, Xa = fw || mw || Function("return this")();
|
|
20553
20576
|
function gw(i, t) {
|
|
20554
20577
|
return i == null ? void 0 : i[t];
|
|
20555
20578
|
}
|
|
@@ -20562,12 +20585,12 @@ function pw(i) {
|
|
|
20562
20585
|
}
|
|
20563
20586
|
return t;
|
|
20564
20587
|
}
|
|
20565
|
-
var Aw = Array.prototype, vw = Function.prototype,
|
|
20588
|
+
var Aw = Array.prototype, vw = Function.prototype, Fu = Object.prototype, Gr = Xa["__core-js_shared__"], Ad = function() {
|
|
20566
20589
|
var i = /[^.]+$/.exec(Gr && Gr.keys && Gr.keys.IE_PROTO || "");
|
|
20567
20590
|
return i ? "Symbol(src)_1." + i : "";
|
|
20568
|
-
}(),
|
|
20569
|
-
"^" +
|
|
20570
|
-
), vd = Xa.Symbol, yw = Aw.splice, ww =
|
|
20591
|
+
}(), Yu = vw.toString, Za = Fu.hasOwnProperty, Uu = Fu.toString, bw = RegExp(
|
|
20592
|
+
"^" + Yu.call(Za).replace(dw, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
|
|
20593
|
+
), vd = Xa.Symbol, yw = Aw.splice, ww = Xu(Xa, "Map"), us = Xu(Object, "create"), bd = vd ? vd.prototype : void 0, yd = bd ? bd.toString : void 0;
|
|
20571
20594
|
function On(i) {
|
|
20572
20595
|
var t = -1, e = i ? i.length : 0;
|
|
20573
20596
|
for (this.clear(); ++t < e; ) {
|
|
@@ -20585,7 +20608,7 @@ function Pw(i) {
|
|
|
20585
20608
|
var t = this.__data__;
|
|
20586
20609
|
if (us) {
|
|
20587
20610
|
var e = t[i];
|
|
20588
|
-
return e ===
|
|
20611
|
+
return e === _u ? void 0 : e;
|
|
20589
20612
|
}
|
|
20590
20613
|
return Za.call(t, i) ? t[i] : void 0;
|
|
20591
20614
|
}
|
|
@@ -20595,7 +20618,7 @@ function Ew(i) {
|
|
|
20595
20618
|
}
|
|
20596
20619
|
function kw(i, t) {
|
|
20597
20620
|
var e = this.__data__;
|
|
20598
|
-
return e[i] = us && t === void 0 ?
|
|
20621
|
+
return e[i] = us && t === void 0 ? _u : t, this;
|
|
20599
20622
|
}
|
|
20600
20623
|
On.prototype.clear = Cw;
|
|
20601
20624
|
On.prototype.delete = Iw;
|
|
@@ -20679,7 +20702,7 @@ function Rw(i, t) {
|
|
|
20679
20702
|
return e && e == n ? i : void 0;
|
|
20680
20703
|
}
|
|
20681
20704
|
function Vw(i) {
|
|
20682
|
-
if (!
|
|
20705
|
+
if (!Ju(i) || _w(i))
|
|
20683
20706
|
return !1;
|
|
20684
20707
|
var t = Xw(i) || pw(i) ? bw : uw;
|
|
20685
20708
|
return t.test(Yw(i));
|
|
@@ -20690,21 +20713,21 @@ function Qw(i) {
|
|
|
20690
20713
|
if (qa(i))
|
|
20691
20714
|
return yd ? yd.call(i) : "";
|
|
20692
20715
|
var t = i + "";
|
|
20693
|
-
return t == "0" && 1 / i == -
|
|
20716
|
+
return t == "0" && 1 / i == -Wu ? "-0" : t;
|
|
20694
20717
|
}
|
|
20695
20718
|
function Gw(i) {
|
|
20696
|
-
return
|
|
20719
|
+
return Zu(i) ? i : Ww(i);
|
|
20697
20720
|
}
|
|
20698
20721
|
function Oo(i, t) {
|
|
20699
20722
|
var e = i.__data__;
|
|
20700
20723
|
return Hw(t) ? e[typeof t == "string" ? "string" : "hash"] : e.map;
|
|
20701
20724
|
}
|
|
20702
|
-
function
|
|
20725
|
+
function Xu(i, t) {
|
|
20703
20726
|
var e = gw(i, t);
|
|
20704
20727
|
return Vw(e) ? e : void 0;
|
|
20705
20728
|
}
|
|
20706
20729
|
function Nw(i, t) {
|
|
20707
|
-
if (
|
|
20730
|
+
if (Zu(i))
|
|
20708
20731
|
return !1;
|
|
20709
20732
|
var e = typeof i;
|
|
20710
20733
|
return e == "number" || e == "symbol" || e == "boolean" || i == null || qa(i) ? !0 : aw.test(i) || !rw.test(i) || t != null && i in Object(t);
|
|
@@ -20727,12 +20750,12 @@ function Fw(i) {
|
|
|
20727
20750
|
if (typeof i == "string" || qa(i))
|
|
20728
20751
|
return i;
|
|
20729
20752
|
var t = i + "";
|
|
20730
|
-
return t == "0" && 1 / i == -
|
|
20753
|
+
return t == "0" && 1 / i == -Wu ? "-0" : t;
|
|
20731
20754
|
}
|
|
20732
20755
|
function Yw(i) {
|
|
20733
20756
|
if (i != null) {
|
|
20734
20757
|
try {
|
|
20735
|
-
return
|
|
20758
|
+
return Yu.call(i);
|
|
20736
20759
|
} catch (t) {
|
|
20737
20760
|
}
|
|
20738
20761
|
try {
|
|
@@ -20758,12 +20781,12 @@ Ja.Cache = Vn;
|
|
|
20758
20781
|
function Uw(i, t) {
|
|
20759
20782
|
return i === t || i !== i && t !== t;
|
|
20760
20783
|
}
|
|
20761
|
-
var
|
|
20784
|
+
var Zu = Array.isArray;
|
|
20762
20785
|
function Xw(i) {
|
|
20763
|
-
var t =
|
|
20786
|
+
var t = Ju(i) ? Uu.call(i) : "";
|
|
20764
20787
|
return t == iw || t == sw;
|
|
20765
20788
|
}
|
|
20766
|
-
function
|
|
20789
|
+
function Ju(i) {
|
|
20767
20790
|
var t = typeof i;
|
|
20768
20791
|
return !!i && (t == "object" || t == "function");
|
|
20769
20792
|
}
|
|
@@ -20771,7 +20794,7 @@ function Zw(i) {
|
|
|
20771
20794
|
return !!i && typeof i == "object";
|
|
20772
20795
|
}
|
|
20773
20796
|
function qa(i) {
|
|
20774
|
-
return typeof i == "symbol" || Zw(i) &&
|
|
20797
|
+
return typeof i == "symbol" || Zw(i) && Uu.call(i) == ow;
|
|
20775
20798
|
}
|
|
20776
20799
|
function Jw(i) {
|
|
20777
20800
|
return i == null ? "" : Qw(i);
|
|
@@ -21933,7 +21956,7 @@ function fC(i) {
|
|
|
21933
21956
|
});
|
|
21934
21957
|
},
|
|
21935
21958
|
setPartialPageSize({ data: r }) {
|
|
21936
|
-
r.partialPageSize =
|
|
21959
|
+
r.partialPageSize = Hu({
|
|
21937
21960
|
particlesToScroll: r.particlesToScroll,
|
|
21938
21961
|
particlesToShow: r.particlesToShow,
|
|
21939
21962
|
particlesCountWithoutClones: r.particlesCountWithoutClones
|
|
@@ -22206,7 +22229,7 @@ function kd(i) {
|
|
|
22206
22229
|
}
|
|
22207
22230
|
function bC(i) {
|
|
22208
22231
|
let t, e, n;
|
|
22209
|
-
return e = new
|
|
22232
|
+
return e = new Gu({
|
|
22210
22233
|
props: {
|
|
22211
22234
|
direction: "prev",
|
|
22212
22235
|
disabled: !/*infinite*/
|
|
@@ -22327,7 +22350,7 @@ function xd(i) {
|
|
|
22327
22350
|
}
|
|
22328
22351
|
function yC(i) {
|
|
22329
22352
|
let t, e, n;
|
|
22330
|
-
return e = new
|
|
22353
|
+
return e = new Gu({
|
|
22331
22354
|
props: {
|
|
22332
22355
|
direction: "next",
|
|
22333
22356
|
disabled: !/*infinite*/
|
|
@@ -23187,7 +23210,7 @@ function TC(i, t, e) {
|
|
|
23187
23210
|
F
|
|
23188
23211
|
];
|
|
23189
23212
|
}
|
|
23190
|
-
class
|
|
23213
|
+
class qu extends le {
|
|
23191
23214
|
constructor(t) {
|
|
23192
23215
|
super(), ae(
|
|
23193
23216
|
this,
|
|
@@ -23330,7 +23353,7 @@ function jC(i) {
|
|
|
23330
23353
|
return (
|
|
23331
23354
|
/*mediaInstanceList*/
|
|
23332
23355
|
i[8][0] !== void 0 && (r.mediaInstance = /*mediaInstanceList*/
|
|
23333
|
-
i[8][0]), t = new
|
|
23356
|
+
i[8][0]), t = new qu({ props: r }), Qe.push(() => Ta(t, "mediaInstance", o)), {
|
|
23334
23357
|
c() {
|
|
23335
23358
|
ne(t.$$.fragment);
|
|
23336
23359
|
},
|
|
@@ -23346,7 +23369,7 @@ function jC(i) {
|
|
|
23346
23369
|
a[1][0]
|
|
23347
23370
|
) },
|
|
23348
23371
|
l[0] & /*mediaItemConfig*/
|
|
23349
|
-
128 &&
|
|
23372
|
+
128 && Kh(
|
|
23350
23373
|
/*mediaItemConfig*/
|
|
23351
23374
|
a[7]
|
|
23352
23375
|
),
|
|
@@ -23440,7 +23463,7 @@ function jd(i) {
|
|
|
23440
23463
|
i[8][
|
|
23441
23464
|
/*index*/
|
|
23442
23465
|
i[30]
|
|
23443
|
-
]), t = new
|
|
23466
|
+
]), t = new qu({ props: r }), Qe.push(() => Ta(t, "mediaInstance", o)), {
|
|
23444
23467
|
c() {
|
|
23445
23468
|
ne(t.$$.fragment);
|
|
23446
23469
|
},
|
|
@@ -23452,7 +23475,7 @@ function jd(i) {
|
|
|
23452
23475
|
const c = l[0] & /*mediaItemConfig, mediaDataList, tag*/
|
|
23453
23476
|
1153 ? dt(s, [
|
|
23454
23477
|
l[0] & /*mediaItemConfig*/
|
|
23455
|
-
128 &&
|
|
23478
|
+
128 && Kh(
|
|
23456
23479
|
/*mediaItemConfig*/
|
|
23457
23480
|
i[7]
|
|
23458
23481
|
),
|
|
@@ -23640,7 +23663,7 @@ function RC(i, t, e) {
|
|
|
23640
23663
|
V
|
|
23641
23664
|
];
|
|
23642
23665
|
}
|
|
23643
|
-
class
|
|
23666
|
+
class Ku extends le {
|
|
23644
23667
|
constructor(t) {
|
|
23645
23668
|
super(), ae(
|
|
23646
23669
|
this,
|
|
@@ -23736,7 +23759,7 @@ function zd(i) {
|
|
|
23736
23759
|
}
|
|
23737
23760
|
function Od(i) {
|
|
23738
23761
|
let t, e, n;
|
|
23739
|
-
return e = new
|
|
23762
|
+
return e = new Vu({
|
|
23740
23763
|
props: {
|
|
23741
23764
|
unfolded: (
|
|
23742
23765
|
/*unfolded*/
|
|
@@ -23776,7 +23799,7 @@ function Od(i) {
|
|
|
23776
23799
|
}
|
|
23777
23800
|
function Bd(i) {
|
|
23778
23801
|
let t, e, n;
|
|
23779
|
-
return e = new
|
|
23802
|
+
return e = new Ku({
|
|
23780
23803
|
props: {
|
|
23781
23804
|
autoplayConfig: { autoplayCarousel: !1 },
|
|
23782
23805
|
unfolded: (
|
|
@@ -24399,7 +24422,7 @@ function XC(i) {
|
|
|
24399
24422
|
);
|
|
24400
24423
|
},
|
|
24401
24424
|
m(a, l) {
|
|
24402
|
-
B(a, t, l), r && r.m(t, null), e = !0, n || (s = be(t, "click",
|
|
24425
|
+
B(a, t, l), r && r.m(t, null), e = !0, n || (s = be(t, "click", Fh(
|
|
24403
24426
|
/*onClick*/
|
|
24404
24427
|
i[1]
|
|
24405
24428
|
)), n = !0);
|
|
@@ -24521,7 +24544,7 @@ function ZC(i, t, e) {
|
|
|
24521
24544
|
72 && c(r && !m ? "play" : "pause");
|
|
24522
24545
|
}, [a, p, o, r, l, u, m, s, n];
|
|
24523
24546
|
}
|
|
24524
|
-
let
|
|
24547
|
+
let $u = class extends le {
|
|
24525
24548
|
constructor(t) {
|
|
24526
24549
|
super(), ae(
|
|
24527
24550
|
this,
|
|
@@ -24674,7 +24697,7 @@ function KC(i, t, e) {
|
|
|
24674
24697
|
h
|
|
24675
24698
|
];
|
|
24676
24699
|
}
|
|
24677
|
-
class
|
|
24700
|
+
class ef extends le {
|
|
24678
24701
|
constructor(t) {
|
|
24679
24702
|
super(), ae(
|
|
24680
24703
|
this,
|
|
@@ -24718,7 +24741,7 @@ function Jd(i) {
|
|
|
24718
24741
|
/*unfolded*/
|
|
24719
24742
|
i[6] && qd(i)
|
|
24720
24743
|
);
|
|
24721
|
-
return c = new
|
|
24744
|
+
return c = new Qu({
|
|
24722
24745
|
props: {
|
|
24723
24746
|
visible: (
|
|
24724
24747
|
/*unfolded*/
|
|
@@ -24837,7 +24860,7 @@ function qd(i) {
|
|
|
24837
24860
|
blurRadius: 15,
|
|
24838
24861
|
spreadRadius: 6
|
|
24839
24862
|
}
|
|
24840
|
-
}), s = new
|
|
24863
|
+
}), s = new $u({
|
|
24841
24864
|
props: {
|
|
24842
24865
|
enable: (
|
|
24843
24866
|
/*unfolded*/
|
|
@@ -24919,7 +24942,7 @@ function qd(i) {
|
|
|
24919
24942
|
}
|
|
24920
24943
|
function eI(i) {
|
|
24921
24944
|
let t, e, n;
|
|
24922
|
-
return e = new
|
|
24945
|
+
return e = new ef({ props: { playing: (
|
|
24923
24946
|
/*playing*/
|
|
24924
24947
|
i[2]
|
|
24925
24948
|
) } }), {
|
|
@@ -25028,7 +25051,7 @@ function sI(i) {
|
|
|
25028
25051
|
}
|
|
25029
25052
|
function Kd(i) {
|
|
25030
25053
|
let t, e, n, s;
|
|
25031
|
-
return n = new
|
|
25054
|
+
return n = new $u({
|
|
25032
25055
|
props: {
|
|
25033
25056
|
style: "width: max-content; height: max-content;",
|
|
25034
25057
|
enable: (
|
|
@@ -25150,7 +25173,7 @@ function oI(i) {
|
|
|
25150
25173
|
}
|
|
25151
25174
|
function rI(i) {
|
|
25152
25175
|
let t, e, n, s, o, r, a;
|
|
25153
|
-
return n = new
|
|
25176
|
+
return n = new ef({ props: { playing: (
|
|
25154
25177
|
/*playing*/
|
|
25155
25178
|
i[3]
|
|
25156
25179
|
) } }), r = new Ya({
|
|
@@ -25397,7 +25420,7 @@ function gI(i) {
|
|
|
25397
25420
|
function $d(i) {
|
|
25398
25421
|
var s;
|
|
25399
25422
|
let t, e, n;
|
|
25400
|
-
return e = new
|
|
25423
|
+
return e = new Ku({
|
|
25401
25424
|
props: {
|
|
25402
25425
|
mediaItemConfig: {
|
|
25403
25426
|
canPlay: !0,
|
|
@@ -25536,7 +25559,7 @@ class vI extends le {
|
|
|
25536
25559
|
super(), ae(this, t, AI, pI, oe, { tag: 0 }, gI);
|
|
25537
25560
|
}
|
|
25538
25561
|
}
|
|
25539
|
-
function
|
|
25562
|
+
function tf(i) {
|
|
25540
25563
|
return U(this, null, function* () {
|
|
25541
25564
|
return new Promise((t, e) => {
|
|
25542
25565
|
if (!i) {
|
|
@@ -25552,7 +25575,7 @@ function bI(i) {
|
|
|
25552
25575
|
return U(this, null, function* () {
|
|
25553
25576
|
const { url: t, ratio: e = 3 } = i;
|
|
25554
25577
|
i.ratio || console.warn("Tag icon ratio is not set, default is 3");
|
|
25555
|
-
const { width: n, height: s } = yield
|
|
25578
|
+
const { width: n, height: s } = yield tf(t);
|
|
25556
25579
|
return Ae(N({}, i), {
|
|
25557
25580
|
width: n / e,
|
|
25558
25581
|
height: s / e
|
|
@@ -25564,7 +25587,7 @@ function yI(i) {
|
|
|
25564
25587
|
const { steps: t, url: e, ratio: n = 3, fps: s = 24 } = i;
|
|
25565
25588
|
if (!t)
|
|
25566
25589
|
throw new Error("KeyframeIcon requires steps");
|
|
25567
|
-
const { width: o, height: r } = yield
|
|
25590
|
+
const { width: o, height: r } = yield tf(e), a = o / n, l = r / n, c = a / t, d = l, h = 1 / s * t + "s";
|
|
25568
25591
|
return Ae(N({}, i), {
|
|
25569
25592
|
width: c,
|
|
25570
25593
|
height: d,
|
|
@@ -25698,7 +25721,7 @@ function CI(i) {
|
|
|
25698
25721
|
/*iconRatio*/
|
|
25699
25722
|
i[5]
|
|
25700
25723
|
)
|
|
25701
|
-
}))) && ao(e, n) ||
|
|
25724
|
+
}))) && ao(e, n) || qh(n, i, o);
|
|
25702
25725
|
},
|
|
25703
25726
|
d(s) {
|
|
25704
25727
|
s && O(t), n.block.d(s), n.token = null, n = null;
|
|
@@ -25764,7 +25787,7 @@ function II(i) {
|
|
|
25764
25787
|
/*iconRatio*/
|
|
25765
25788
|
i[5]
|
|
25766
25789
|
)
|
|
25767
|
-
}))) && ao(e, n) ||
|
|
25790
|
+
}))) && ao(e, n) || qh(n, i, o);
|
|
25768
25791
|
},
|
|
25769
25792
|
d(s) {
|
|
25770
25793
|
s && O(t), n.block.d(s), n.token = null, n = null;
|
|
@@ -26029,7 +26052,7 @@ function TI(i, t, e) {
|
|
|
26029
26052
|
m
|
|
26030
26053
|
];
|
|
26031
26054
|
}
|
|
26032
|
-
class
|
|
26055
|
+
class nf extends le {
|
|
26033
26056
|
constructor(t) {
|
|
26034
26057
|
super(), ae(this, t, TI, SI, oe, { width: 1, icon: 12, shadow: 0 }, wI);
|
|
26035
26058
|
}
|
|
@@ -26080,7 +26103,7 @@ function sh(i) {
|
|
|
26080
26103
|
}
|
|
26081
26104
|
function jI(i) {
|
|
26082
26105
|
let t, e, n, s;
|
|
26083
|
-
e = new
|
|
26106
|
+
e = new nf({
|
|
26084
26107
|
props: { icon: (
|
|
26085
26108
|
/*icon*/
|
|
26086
26109
|
i[0]
|
|
@@ -26335,7 +26358,7 @@ function _I(i) {
|
|
|
26335
26358
|
);
|
|
26336
26359
|
},
|
|
26337
26360
|
m(A, p) {
|
|
26338
|
-
B(A, t, p), x(t, e), x(e, n), ~s && u[s].m(n, null), l = !0, c || (d = be(t, "click",
|
|
26361
|
+
B(A, t, p), x(t, e), x(e, n), ~s && u[s].m(n, null), l = !0, c || (d = be(t, "click", Fh(
|
|
26339
26362
|
/*click_handler_1*/
|
|
26340
26363
|
i[15]
|
|
26341
26364
|
)), c = !0);
|
|
@@ -26770,7 +26793,7 @@ function KI(i, t, e) {
|
|
|
26770
26793
|
S
|
|
26771
26794
|
];
|
|
26772
26795
|
}
|
|
26773
|
-
let
|
|
26796
|
+
let sf = class extends le {
|
|
26774
26797
|
constructor(t) {
|
|
26775
26798
|
super(), ae(
|
|
26776
26799
|
this,
|
|
@@ -26803,7 +26826,7 @@ function eP(i) {
|
|
|
26803
26826
|
spreadRadius: 5,
|
|
26804
26827
|
opacity: 0.3
|
|
26805
26828
|
}
|
|
26806
|
-
}), c = new
|
|
26829
|
+
}), c = new nf({
|
|
26807
26830
|
props: {
|
|
26808
26831
|
icon: (
|
|
26809
26832
|
/*url*/
|
|
@@ -27032,7 +27055,7 @@ function rP(i) {
|
|
|
27032
27055
|
}
|
|
27033
27056
|
function aP(i) {
|
|
27034
27057
|
let t, e;
|
|
27035
|
-
return t = new
|
|
27058
|
+
return t = new sf({
|
|
27036
27059
|
props: {
|
|
27037
27060
|
mediaStore: (
|
|
27038
27061
|
/*mediaStore*/
|
|
@@ -27525,7 +27548,7 @@ class mP extends le {
|
|
|
27525
27548
|
);
|
|
27526
27549
|
}
|
|
27527
27550
|
}
|
|
27528
|
-
const gP = new
|
|
27551
|
+
const gP = new zf();
|
|
27529
27552
|
function pP(i) {
|
|
27530
27553
|
return new Promise((t, e) => {
|
|
27531
27554
|
function n(o) {
|
|
@@ -27678,7 +27701,7 @@ class bP extends w1 {
|
|
|
27678
27701
|
} else {
|
|
27679
27702
|
if (yt(n) && !((s = n.model) != null && s.object) || ((o = n.state) == null ? void 0 : o.visible) === !1 || !this.state.visible || !this.state.enabled)
|
|
27680
27703
|
return;
|
|
27681
|
-
if (this.css3DRenderPlugin || (this.css3DRenderPlugin =
|
|
27704
|
+
if (this.css3DRenderPlugin || (this.css3DRenderPlugin = Qh(this.five)), n.stickType === "3DPoint" && !n.normal)
|
|
27682
27705
|
return console.error("updateRenderPlaneTag: 三维点标签缺少法向量!");
|
|
27683
27706
|
const l = this.getPositions(n);
|
|
27684
27707
|
if (!l)
|
|
@@ -27704,7 +27727,7 @@ class bP extends w1 {
|
|
|
27704
27727
|
if (!u)
|
|
27705
27728
|
return;
|
|
27706
27729
|
this.store.css3DRenderDisposer.set(n.id, [u.dispose]);
|
|
27707
|
-
const m = new
|
|
27730
|
+
const m = new sf({
|
|
27708
27731
|
target: u.container,
|
|
27709
27732
|
props: {
|
|
27710
27733
|
tag: n,
|
|
@@ -27834,7 +27857,7 @@ class bP extends w1 {
|
|
|
27834
27857
|
}
|
|
27835
27858
|
}
|
|
27836
27859
|
}
|
|
27837
|
-
const
|
|
27860
|
+
const of = "Dnalogel-PanoTagPlugin", jE = (i) => `${of}--${i}`;
|
|
27838
27861
|
class fa extends bP {
|
|
27839
27862
|
constructor(e, n) {
|
|
27840
27863
|
super(e);
|
|
@@ -27875,7 +27898,7 @@ class fa extends bP {
|
|
|
27875
27898
|
load(e, n) {
|
|
27876
27899
|
return U(this, null, function* () {
|
|
27877
27900
|
var o, r;
|
|
27878
|
-
this.clearTags(), console.debug(
|
|
27901
|
+
this.clearTags(), console.debug(of, " load:", { data: JSON.parse(JSON.stringify(e)) }), this.config = Xe({}, this.config, {
|
|
27879
27902
|
globalConfig: (o = e.globalConfig) != null ? o : {},
|
|
27880
27903
|
contentTypeConfig: (r = e.contentTypeConfig) != null ? r : {}
|
|
27881
27904
|
});
|
|
@@ -28538,7 +28561,7 @@ class ma {
|
|
|
28538
28561
|
}))), this.endTagContainer.tag && Nr(this.endTagContainer.tag) && ((o = this.endTagContainer.app) == null || o.$set(Ae(N({}, this.endTagContainer.tag.data), { opacity: n })));
|
|
28539
28562
|
});
|
|
28540
28563
|
f(this, "logWarning", (t) => Db("GuideLineModeItem: ", t));
|
|
28541
|
-
f(this, "logError", (t) =>
|
|
28564
|
+
f(this, "logError", (t) => Tu("GuideLineModeItem: ", t));
|
|
28542
28565
|
var o, r;
|
|
28543
28566
|
this.five = t, this.mode = e.mode, this.plugin = e.plugin, this.parent = e.parent, this.startTagContainer = { tag: null, plugin: new fa(this.five) }, this.endTagContainer = { tag: null, plugin: new fa(this.five) };
|
|
28544
28567
|
const n = new E.BufferGeometry(), s = new E.ShaderMaterial({
|
|
@@ -28807,7 +28830,7 @@ function OP(i) {
|
|
|
28807
28830
|
}, i);
|
|
28808
28831
|
});
|
|
28809
28832
|
}
|
|
28810
|
-
const
|
|
28833
|
+
const rf = "v1.0.6", af = "CruisePlugin", Bo = `${af}@${rf}`, uh = () => {
|
|
28811
28834
|
console.error(`${Bo} is disposed`);
|
|
28812
28835
|
}, BP = () => {
|
|
28813
28836
|
console.warn(`${Bo} is disabled`);
|
|
@@ -28843,7 +28866,7 @@ class Ro extends Rn {
|
|
|
28843
28866
|
modeChanging: !1
|
|
28844
28867
|
});
|
|
28845
28868
|
f(this, "GuideLine");
|
|
28846
|
-
this.config = n, Object.assign(window, { [`__${
|
|
28869
|
+
this.config = n, Object.assign(window, { [`__${af}_DEBUG__`]: this });
|
|
28847
28870
|
const s = this.setFiveLinearUpdateCamera.bind(this), o = this.setFiveOriginUpdateCamera.bind(this);
|
|
28848
28871
|
this.hooks.on("play", s), this.hooks.on("broke", o), this.hooks.on("end", o), this.hooks.on("pause", o), this.privateState.disposers.push(() => {
|
|
28849
28872
|
this.hooks.off("play", s), this.hooks.off("broke", o), this.hooks.off("end", o), this.hooks.off("pause", o);
|
|
@@ -29359,11 +29382,11 @@ class Ro extends Rn {
|
|
|
29359
29382
|
this.privateState.fiveOriginGetProgress && (this.five.controller.cameraMotion.getProgress = this.privateState.fiveOriginGetProgress);
|
|
29360
29383
|
}
|
|
29361
29384
|
}
|
|
29362
|
-
f(Ro, "PluginVersion",
|
|
29385
|
+
f(Ro, "PluginVersion", rf);
|
|
29363
29386
|
const BE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
29364
29387
|
__proto__: null
|
|
29365
29388
|
}, Symbol.toStringTag, { value: "Module" })), RE = (i) => new Ro(i);
|
|
29366
|
-
class
|
|
29389
|
+
class lf {
|
|
29367
29390
|
constructor(t) {
|
|
29368
29391
|
f(this, "id");
|
|
29369
29392
|
f(this, "renderID");
|
|
@@ -29374,7 +29397,7 @@ class af {
|
|
|
29374
29397
|
f(this, "_visible", !0);
|
|
29375
29398
|
f(this, "plugin");
|
|
29376
29399
|
f(this, "five");
|
|
29377
|
-
f(this, "logError", (t) =>
|
|
29400
|
+
f(this, "logError", (t) => Tu("GuideLineItem: ", t));
|
|
29378
29401
|
this.id = t.id, this.five = t.five, this.plugin = t.plugin, this.panoramaItem = new ma(this.five, { mode: "panorama", plugin: this.plugin, parent: this }), this.modelItem = new ma(this.five, { mode: "model", plugin: this.plugin, parent: this });
|
|
29379
29402
|
}
|
|
29380
29403
|
get visible() {
|
|
@@ -29454,12 +29477,12 @@ function VP(i, t) {
|
|
|
29454
29477
|
}
|
|
29455
29478
|
const VE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
29456
29479
|
__proto__: null,
|
|
29457
|
-
GuideLineItem:
|
|
29458
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
29480
|
+
GuideLineItem: lf
|
|
29481
|
+
}, Symbol.toStringTag, { value: "Module" })), cf = "v1.1.0", ga = "GuideLinePlugin", fh = `${ga}@${cf}`;
|
|
29459
29482
|
class QP extends Rn {
|
|
29460
29483
|
constructor(e, n) {
|
|
29461
29484
|
super(e, n);
|
|
29462
|
-
f(this, "version",
|
|
29485
|
+
f(this, "version", cf);
|
|
29463
29486
|
f(this, "name", ga);
|
|
29464
29487
|
f(this, "cruisePlugin");
|
|
29465
29488
|
/** GuideLineItem 索引 */
|
|
@@ -29547,7 +29570,7 @@ class QP extends Rn {
|
|
|
29547
29570
|
addGuideLineItem(e) {
|
|
29548
29571
|
const n = e.render_id || e.id, s = this.itemMap.get(n);
|
|
29549
29572
|
s && this.removeGuideLineItem(s);
|
|
29550
|
-
const o = new
|
|
29573
|
+
const o = new lf({ five: this.five, id: n, plugin: this });
|
|
29551
29574
|
return this.itemMap.set(n, o), e && o.setData(e), this.heightOffset += 1e-4, o.setHeightOffset(this.heightOffset), o;
|
|
29552
29575
|
}
|
|
29553
29576
|
/** 获取 Plugin 内的 GuideLineItem */
|
|
@@ -29615,14 +29638,14 @@ class QP extends Rn {
|
|
|
29615
29638
|
}
|
|
29616
29639
|
}
|
|
29617
29640
|
const GP = (i, t) => new QP(i, t);
|
|
29618
|
-
function
|
|
29641
|
+
function df(i, t, e) {
|
|
29619
29642
|
if (e) {
|
|
29620
29643
|
const s = new E.Vector3().subVectors(i.position, e).applyQuaternion(i.quaternion.clone().inverse()).applyQuaternion(t).add(e);
|
|
29621
29644
|
i.position.copy(s);
|
|
29622
29645
|
}
|
|
29623
29646
|
i.quaternion.copy(t);
|
|
29624
29647
|
}
|
|
29625
|
-
class Vo extends
|
|
29648
|
+
class Vo extends Au {
|
|
29626
29649
|
constructor(e, n) {
|
|
29627
29650
|
var s;
|
|
29628
29651
|
super();
|
|
@@ -29662,7 +29685,7 @@ class Vo extends pu {
|
|
|
29662
29685
|
this.scale.applyMatrix4(e);
|
|
29663
29686
|
}
|
|
29664
29687
|
setHelperQuaternion(e, n) {
|
|
29665
|
-
|
|
29688
|
+
df(this, e, n);
|
|
29666
29689
|
}
|
|
29667
29690
|
applyHelperQuaternion(e, n) {
|
|
29668
29691
|
if (n) {
|
|
@@ -29681,9 +29704,9 @@ class HP extends Vo {
|
|
|
29681
29704
|
}
|
|
29682
29705
|
class _P extends Vo {
|
|
29683
29706
|
}
|
|
29684
|
-
class
|
|
29707
|
+
class hf extends Vo {
|
|
29685
29708
|
}
|
|
29686
|
-
class WP extends
|
|
29709
|
+
class WP extends hf {
|
|
29687
29710
|
}
|
|
29688
29711
|
class FP extends E.Group {
|
|
29689
29712
|
constructor(e) {
|
|
@@ -30099,7 +30122,7 @@ class n2 extends WP {
|
|
|
30099
30122
|
];
|
|
30100
30123
|
}
|
|
30101
30124
|
}
|
|
30102
|
-
function
|
|
30125
|
+
function uf(i) {
|
|
30103
30126
|
const t = new E.Box3(), e = new E.Vector3();
|
|
30104
30127
|
if (i.traverse((n) => {
|
|
30105
30128
|
var o;
|
|
@@ -30135,7 +30158,7 @@ class i2 extends HP {
|
|
|
30135
30158
|
this.box.raycast(e, n);
|
|
30136
30159
|
}
|
|
30137
30160
|
update() {
|
|
30138
|
-
const e =
|
|
30161
|
+
const e = uf(this.originObject);
|
|
30139
30162
|
if (!e)
|
|
30140
30163
|
return;
|
|
30141
30164
|
const { min: n, max: s } = e;
|
|
@@ -30371,7 +30394,7 @@ class ps {
|
|
|
30371
30394
|
const n = this.originObject3D, s = new E.Vector3(0, 0, 0);
|
|
30372
30395
|
if (!t)
|
|
30373
30396
|
return s;
|
|
30374
|
-
const o = () => e || (this.boundingBox ? this.boundingBox : (this.boundingBox =
|
|
30397
|
+
const o = () => e || (this.boundingBox ? this.boundingBox : (this.boundingBox = uf(n), this.boundingBox));
|
|
30375
30398
|
if (typeof t.x == "number")
|
|
30376
30399
|
s.setX(t.x);
|
|
30377
30400
|
else if (typeof t.x == "object") {
|
|
@@ -30670,7 +30693,7 @@ class h2 extends ps {
|
|
|
30670
30693
|
if (this.hooks.emit("wantToRotate", a))
|
|
30671
30694
|
return;
|
|
30672
30695
|
const { originObject3D: c, rotateCenter: d } = this;
|
|
30673
|
-
|
|
30696
|
+
df(c, a, d), this.hooks.emit("setObjectRotate", a, d), this.hooks.emit("rotate", a), this.render();
|
|
30674
30697
|
}
|
|
30675
30698
|
dispose() {
|
|
30676
30699
|
this.removeListener(), super.dispose();
|
|
@@ -30731,7 +30754,7 @@ class h2 extends ps {
|
|
|
30731
30754
|
),
|
|
30732
30755
|
`${r.toUpperCase()}${"XZY".replace(r.toUpperCase(), "")}`
|
|
30733
30756
|
)[r] * o.angleDirection;
|
|
30734
|
-
if (this.startInfo.angle += v, this.setAngleHelperLength(r, this.startInfo.angle), this.setTipsAngle(
|
|
30757
|
+
if (this.startInfo.angle += v, this.setAngleHelperLength(r, this.startInfo.angle), this.setTipsAngle(ou(this.startInfo.angle)), d) {
|
|
30735
30758
|
const y = new E.Vector3().subVectors(l.position, d).applyQuaternion(m).add(d);
|
|
30736
30759
|
l.position.copy(y);
|
|
30737
30760
|
}
|
|
@@ -30913,7 +30936,7 @@ class m2 extends ps {
|
|
|
30913
30936
|
f(this, "name", "BoundingBoxController");
|
|
30914
30937
|
}
|
|
30915
30938
|
}
|
|
30916
|
-
class g2 extends
|
|
30939
|
+
class g2 extends hf {
|
|
30917
30940
|
constructor(t) {
|
|
30918
30941
|
super(t);
|
|
30919
30942
|
}
|
|
@@ -31242,7 +31265,7 @@ class gh {
|
|
|
31242
31265
|
this.five = t, this.panoIndex = e.panoIndex, this._id = e.renderID, this.url = e.url, this.origin = e.origin.slice(), this._enabled = (c = (l = e.initialState) == null ? void 0 : l.enabled) != null ? c : !0;
|
|
31243
31266
|
const n = document.createElement("video");
|
|
31244
31267
|
n.crossOrigin = "anonymous", n.autoplay = !1, n.muted = !0, n.loop = !0, n.playsInline = !0, this.video = n;
|
|
31245
|
-
const s = new
|
|
31268
|
+
const s = new Df(this.video);
|
|
31246
31269
|
s.minFilter = Ur, s.magFilter = Ur;
|
|
31247
31270
|
const o = new vh({
|
|
31248
31271
|
vertexShader: w2,
|
|
@@ -31250,12 +31273,12 @@ class gh {
|
|
|
31250
31273
|
uniforms: {
|
|
31251
31274
|
map: { value: s },
|
|
31252
31275
|
size: {
|
|
31253
|
-
value: new
|
|
31276
|
+
value: new Sf(this.origin[0], 1 - this.origin[1] - this.origin[3], this.origin[2], this.origin[3])
|
|
31254
31277
|
}
|
|
31255
31278
|
},
|
|
31256
31279
|
depthTest: !0,
|
|
31257
31280
|
transparent: !0
|
|
31258
|
-
}), r = new
|
|
31281
|
+
}), r = new Tf(1, 64, 64);
|
|
31259
31282
|
r.scale(-1, 1, 1);
|
|
31260
31283
|
const a = new ts(r, o);
|
|
31261
31284
|
a.name = "pano-video", this.videoMesh = a, this.five.work && this.onFiveDataLoaded(), this.enabled && this.addEventListeners(), this.mountIfNeeded();
|
|
@@ -31471,11 +31494,11 @@ class P2 extends gs {
|
|
|
31471
31494
|
const GE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
31472
31495
|
__proto__: null
|
|
31473
31496
|
}, Symbol.toStringTag, { value: "Module" })), NE = (i) => new P2(i);
|
|
31497
|
+
Bf();
|
|
31474
31498
|
Of();
|
|
31475
|
-
zf();
|
|
31476
31499
|
export {
|
|
31477
31500
|
ls as CSS3DRender,
|
|
31478
|
-
|
|
31501
|
+
Qh as CSS3DRenderPlugin,
|
|
31479
31502
|
SA as CameraMovementEffect,
|
|
31480
31503
|
cE as CameraMovementPlugin,
|
|
31481
31504
|
wP as ContentType,
|
|
@@ -31512,7 +31535,7 @@ export {
|
|
|
31512
31535
|
iE as PanoFloorplanRadarPlugin,
|
|
31513
31536
|
AE as PanoMeasurePlugin,
|
|
31514
31537
|
An as PanoMeasurePluginLine,
|
|
31515
|
-
|
|
31538
|
+
wu as PanoMeasurePluginModel,
|
|
31516
31539
|
bt as PanoMeasurePluginPoint,
|
|
31517
31540
|
gi as PanoMeasurePluginPolyline,
|
|
31518
31541
|
dE as PanoRulerPlugin,
|