@realsee/dnalogel 2.24.0-dev.1 → 2.24.1
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/index.cjs.js +23 -23
- package/dist/index.js +346 -338
- 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/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.1",
|
|
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,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", 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.1");
|
|
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,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASKADAAQAAAABAAAASAAAAACQMUbvAAAFfUlEQVR4Ae2aSYgdRRjHMy6473FDc9GDKB68CSqIicspHhQDXgRBQTSJChEUUQ/iVdGLiHgVBAUPUXKZKIKQi3jJYaKIjLiguC9RiWb8/Sb9hfJZ9ex67zmZaeuD/1T117V9v6qu7tc969Y1awQagUagEWgEGoFGoBFoBBqBRqARGAyBpaWlm9Eu9A7aiuYGE9y0gQDjHrQPLXSp+dunbfdI1D9q1p0C4j7afLBrN1bNQY6vn3VfK9HeMbPsBDj30969mTadiJMy/lXvmhkg4Owg2rtXfcSVA5zJJQachzs4Xkol20C5uORKZVadf2pABP0oUd2J/kB/diL5h63Hs22tQZp4RrtAnyBo706/owPoaORlazoKfwmf/f2MvkLCtI6pcM2rAB35SL/nnPW+RT+gT9Tc3Ny4VUuR6WwiQB2cJ+n6NvQr+g0FHMEEpInap37J7Mf+1OdoAe1BH6JFYDkJM7XqAIAjgKfQLegn5GCFkyoAWba6D+rUmCtrL3oD7QGS4GZm1YMH0F30/hByYF4u6YoJMCks8yth++lkHr2O3gOUEze1TQJoJ71eiL5ABi+UUUgep+dWChLdLu9Tz5DOA8m9aiozkFr7kQrWE64bpJus1775ODYNn+nM9wbaLNk5nHgcbWG1n1Uq1Nc/yQq6msZfRK4KQYyzgBNpgLNO5KMNy4Qvyqc+J+UUdALqY9Z9Hr3ESnIrmMiqAdkLM3MRySZ0ssedpavRwbmylEF7686lUSZNc+Ws71iPR2egy9DlXaqvZLb1CNoJJNuotokAVfcy4wpMkFC8lC5Bt6JrUTpBHB42N+870F4gOXFVtiYBRYSAcvyCugZ5Z3V15ewjnJsB5EqtshL1qkaOVGFXBPqS/n0G2ooWC2O5GP+Wwrmx7jW9gtLIWE3eNNyXvIGclp7r8l+T3gjQXzLniq41vYLSqLrLxydq3yzkbD3O6lU0GEAS6SC9TXa3xxm7KeMb6xoUICMFkrf2pwtRX8Gl6ErqbYMDZORA8tf9vgwF99yNGX/RNUhAXbTzhai9o/W2IQNyw87ZuTlnyTdkQL59zJkPlr1tyIBKrzpO702HgkMGVPrZ8V0DdIhA6VIqXXpZbkNeQf7syFkD1FG5IUcH3wcFf9Y9yBXE07Iv1HLPOz5lv5UlUXAOEhCx7ijE+z5P2X547G2DA8Tq2Uj0vjfP2a6cc5xvMO+DDBI4XlavIF/uj5ov1nwf5NfZ3jaYFQScDUT9AsrBEciztXCsNAhAwLmKWF5DQsqZv+z94lptfhVdswaYCxi8/9W2GZUm2w+d21g91S/sqbf82di02hjcmVQ6Hx2L/ObkACI1n2rU7/HB2kHTp3vm2chN2M34OmT/JXMMD9DPYqnAv/knWkEM1KdUB3geijZ8xki/O6V5Tv3tvzyc7TnaMY1v+75099g08um5U/H78+G4pAzZognnMeC8WyzR40QE16PooSIE5SA3IVfPNygNKoKzXWc2AKT+1BcATKNMpKO+KGvgtuEElO7CXlaunKng0Mbh2Tff1wTjMve/OyJYB5rK1eRlZFAGFOfMa+GLMpbXImDTKDta13JxTphRR7/mT4ntwPl4+WjKPwZQa86cA4xBRhoDTYMz8PQ4+hKs9dJzKcw4l543H0qBCknzu9dz6FXgxJj0T2WTAPLX8GfIrwMu5dRsLx18OtAITjixciINEJHaZkAyn/rNRz3LLKA30cuA2U86U7OzamMfupRKVyIvt5hBA7e9kMfhy+1Ho3uNcC2fpmnedn1L6AT5VOyXi91A+ZT0P7OJADkaIPnG7kRkUM7kAeTMhjxO72R9+yqVq34soP9mjUAj0Ag0Ao1AI9AINAKNQCPQCDQCjUAj8L8j8BdMDI4sjknmbgAAAABJRU5ErkJggg==", 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,20 @@ 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) {
|
|
17067
17075
|
super();
|
|
17068
17076
|
f(this, "name", "PanoTagPluginImagePlane");
|
|
17069
17077
|
this.src = e, hs(e).then((o) => {
|
|
17070
17078
|
var u;
|
|
17071
|
-
const r = new URL(e, location.href).pathname.endsWith(".png"), a = new E.MeshBasicMaterial({ map: o, transparent: r }), l = $i((u = s == null ? void 0 : s.objectFit) != null ? u : "contain", n, o.image.width / o.image.height), c = sn(...l), d = l.map((m) => m.clone().sub(c)), h = new
|
|
17079
|
+
const r = new URL(e, location.href).pathname.endsWith(".png"), a = new E.MeshBasicMaterial({ map: o, transparent: r }), l = $i((u = s == null ? void 0 : s.objectFit) != null ? u : "contain", n, o.image.width / o.image.height), c = sn(...l), d = l.map((m) => m.clone().sub(c)), h = new Bu(d);
|
|
17072
17080
|
this.position.copy(c), this.geometry = h, this.material = a;
|
|
17073
17081
|
}).catch((o) => {
|
|
17074
17082
|
console.error(`Imageplane error ${o}`);
|
|
17075
17083
|
});
|
|
17076
17084
|
}
|
|
17077
17085
|
}
|
|
17078
|
-
class ha extends
|
|
17086
|
+
class ha extends Ru {
|
|
17079
17087
|
// eslint-disable-next-line max-params
|
|
17080
17088
|
constructor(e, n, s) {
|
|
17081
17089
|
const {
|
|
@@ -17665,7 +17673,7 @@ class b1 extends f1 {
|
|
|
17665
17673
|
const l = (a = (r = this.five.work) == null ? void 0 : r.observers[s]) == null ? void 0 : a.position;
|
|
17666
17674
|
if (l === void 0)
|
|
17667
17675
|
throw new Error(`getDistance(): observerPosition is ${l}`);
|
|
17668
|
-
const c =
|
|
17676
|
+
const c = ju(e);
|
|
17669
17677
|
if (!c)
|
|
17670
17678
|
return -1;
|
|
17671
17679
|
const d = l.distanceTo(c);
|
|
@@ -18078,7 +18086,7 @@ class w1 extends b1 {
|
|
|
18078
18086
|
var r, a, l, c, d, h, u;
|
|
18079
18087
|
let n = 0;
|
|
18080
18088
|
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 :
|
|
18089
|
+
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
18090
|
const o = this.five.model.shownFloor;
|
|
18083
18091
|
return o === null || o === n;
|
|
18084
18092
|
}
|
|
@@ -18732,7 +18740,7 @@ function j1(i, t, e) {
|
|
|
18732
18740
|
k
|
|
18733
18741
|
];
|
|
18734
18742
|
}
|
|
18735
|
-
class
|
|
18743
|
+
class Vu extends le {
|
|
18736
18744
|
constructor(t) {
|
|
18737
18745
|
super(), ae(
|
|
18738
18746
|
this,
|
|
@@ -18885,7 +18893,7 @@ function Q1(i) {
|
|
|
18885
18893
|
}
|
|
18886
18894
|
function nd(i) {
|
|
18887
18895
|
let t, e, n;
|
|
18888
|
-
return e = new
|
|
18896
|
+
return e = new Vu({
|
|
18889
18897
|
props: {
|
|
18890
18898
|
unfolded: (
|
|
18891
18899
|
/*visible*/
|
|
@@ -19056,7 +19064,7 @@ function N1(i, t, e) {
|
|
|
19056
19064
|
m
|
|
19057
19065
|
];
|
|
19058
19066
|
}
|
|
19059
|
-
class
|
|
19067
|
+
class Qu extends le {
|
|
19060
19068
|
constructor(t) {
|
|
19061
19069
|
super(), ae(this, t, N1, G1, oe, { visible: 0, textUnfolded: 8, content: 1 }, Q1);
|
|
19062
19070
|
}
|
|
@@ -19102,7 +19110,7 @@ function sd(i) {
|
|
|
19102
19110
|
),
|
|
19103
19111
|
useLinearColor: !0
|
|
19104
19112
|
}
|
|
19105
|
-
}), r = new
|
|
19113
|
+
}), r = new Qu({
|
|
19106
19114
|
props: {
|
|
19107
19115
|
visible: (
|
|
19108
19116
|
/*unfolded*/
|
|
@@ -19825,7 +19833,7 @@ function cd(i) {
|
|
|
19825
19833
|
/*inDelay*/
|
|
19826
19834
|
i[0]
|
|
19827
19835
|
),
|
|
19828
|
-
easing:
|
|
19836
|
+
easing: su
|
|
19829
19837
|
}), e.start());
|
|
19830
19838
|
}), s = !0);
|
|
19831
19839
|
},
|
|
@@ -20153,7 +20161,7 @@ function wy(i, t, e) {
|
|
|
20153
20161
|
"direction" in r && e(0, n = r.direction), "disabled" in r && e(1, s = r.disabled);
|
|
20154
20162
|
}, [n, s, o];
|
|
20155
20163
|
}
|
|
20156
|
-
class
|
|
20164
|
+
class Gu extends le {
|
|
20157
20165
|
constructor(t) {
|
|
20158
20166
|
super(), ae(this, t, wy, yy, oe, { direction: 0, disabled: 1 }, by);
|
|
20159
20167
|
}
|
|
@@ -20359,7 +20367,7 @@ function Wy({
|
|
|
20359
20367
|
clonesCountTotal: n,
|
|
20360
20368
|
particlesToScroll: s
|
|
20361
20369
|
}) {
|
|
20362
|
-
return i === t - e ? 0 : i === 0 ?
|
|
20370
|
+
return i === t - e ? 0 : i === 0 ? Nu({
|
|
20363
20371
|
particlesCountWithoutClones: t - n,
|
|
20364
20372
|
particlesToScroll: s
|
|
20365
20373
|
}) - 1 : Math.floor((i - e) / s);
|
|
@@ -20389,7 +20397,7 @@ function Yy({
|
|
|
20389
20397
|
particlesToScroll: o
|
|
20390
20398
|
});
|
|
20391
20399
|
}
|
|
20392
|
-
function
|
|
20400
|
+
function Nu({
|
|
20393
20401
|
particlesCountWithoutClones: i,
|
|
20394
20402
|
particlesToScroll: t
|
|
20395
20403
|
}) {
|
|
@@ -20400,7 +20408,7 @@ function Uy({
|
|
|
20400
20408
|
particlesToScroll: t,
|
|
20401
20409
|
particlesToShow: e
|
|
20402
20410
|
}) {
|
|
20403
|
-
const n =
|
|
20411
|
+
const n = Hu({
|
|
20404
20412
|
particlesCountWithoutClones: i,
|
|
20405
20413
|
particlesToScroll: t,
|
|
20406
20414
|
particlesToShow: e
|
|
@@ -20413,7 +20421,7 @@ function Xy({
|
|
|
20413
20421
|
particlesToScroll: e,
|
|
20414
20422
|
particlesToShow: n
|
|
20415
20423
|
}) {
|
|
20416
|
-
return i ?
|
|
20424
|
+
return i ? Nu({
|
|
20417
20425
|
particlesCountWithoutClones: t,
|
|
20418
20426
|
particlesToScroll: e
|
|
20419
20427
|
}) : Uy({
|
|
@@ -20476,7 +20484,7 @@ function qy({
|
|
|
20476
20484
|
for (let e = 0; e < i.length; e++)
|
|
20477
20485
|
i[e].style.minWidth = `${t}px`, i[e].style.maxWidth = `${t}px`;
|
|
20478
20486
|
}
|
|
20479
|
-
function
|
|
20487
|
+
function Hu({
|
|
20480
20488
|
particlesToScroll: i,
|
|
20481
20489
|
particlesToShow: t,
|
|
20482
20490
|
particlesCountWithoutClones: e
|
|
@@ -20549,7 +20557,7 @@ const os = (i, t, e) => {
|
|
|
20549
20557
|
}, ua = (i) => (t) => {
|
|
20550
20558
|
i[t] && i[t]();
|
|
20551
20559
|
};
|
|
20552
|
-
var nw = "Expected a function",
|
|
20560
|
+
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
20561
|
function gw(i, t) {
|
|
20554
20562
|
return i == null ? void 0 : i[t];
|
|
20555
20563
|
}
|
|
@@ -20562,12 +20570,12 @@ function pw(i) {
|
|
|
20562
20570
|
}
|
|
20563
20571
|
return t;
|
|
20564
20572
|
}
|
|
20565
|
-
var Aw = Array.prototype, vw = Function.prototype,
|
|
20573
|
+
var Aw = Array.prototype, vw = Function.prototype, Fu = Object.prototype, Gr = Xa["__core-js_shared__"], Ad = function() {
|
|
20566
20574
|
var i = /[^.]+$/.exec(Gr && Gr.keys && Gr.keys.IE_PROTO || "");
|
|
20567
20575
|
return i ? "Symbol(src)_1." + i : "";
|
|
20568
|
-
}(),
|
|
20569
|
-
"^" +
|
|
20570
|
-
), vd = Xa.Symbol, yw = Aw.splice, ww =
|
|
20576
|
+
}(), Yu = vw.toString, Za = Fu.hasOwnProperty, Uu = Fu.toString, bw = RegExp(
|
|
20577
|
+
"^" + Yu.call(Za).replace(dw, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
|
|
20578
|
+
), 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
20579
|
function On(i) {
|
|
20572
20580
|
var t = -1, e = i ? i.length : 0;
|
|
20573
20581
|
for (this.clear(); ++t < e; ) {
|
|
@@ -20585,7 +20593,7 @@ function Pw(i) {
|
|
|
20585
20593
|
var t = this.__data__;
|
|
20586
20594
|
if (us) {
|
|
20587
20595
|
var e = t[i];
|
|
20588
|
-
return e ===
|
|
20596
|
+
return e === _u ? void 0 : e;
|
|
20589
20597
|
}
|
|
20590
20598
|
return Za.call(t, i) ? t[i] : void 0;
|
|
20591
20599
|
}
|
|
@@ -20595,7 +20603,7 @@ function Ew(i) {
|
|
|
20595
20603
|
}
|
|
20596
20604
|
function kw(i, t) {
|
|
20597
20605
|
var e = this.__data__;
|
|
20598
|
-
return e[i] = us && t === void 0 ?
|
|
20606
|
+
return e[i] = us && t === void 0 ? _u : t, this;
|
|
20599
20607
|
}
|
|
20600
20608
|
On.prototype.clear = Cw;
|
|
20601
20609
|
On.prototype.delete = Iw;
|
|
@@ -20679,7 +20687,7 @@ function Rw(i, t) {
|
|
|
20679
20687
|
return e && e == n ? i : void 0;
|
|
20680
20688
|
}
|
|
20681
20689
|
function Vw(i) {
|
|
20682
|
-
if (!
|
|
20690
|
+
if (!Ju(i) || _w(i))
|
|
20683
20691
|
return !1;
|
|
20684
20692
|
var t = Xw(i) || pw(i) ? bw : uw;
|
|
20685
20693
|
return t.test(Yw(i));
|
|
@@ -20690,21 +20698,21 @@ function Qw(i) {
|
|
|
20690
20698
|
if (qa(i))
|
|
20691
20699
|
return yd ? yd.call(i) : "";
|
|
20692
20700
|
var t = i + "";
|
|
20693
|
-
return t == "0" && 1 / i == -
|
|
20701
|
+
return t == "0" && 1 / i == -Wu ? "-0" : t;
|
|
20694
20702
|
}
|
|
20695
20703
|
function Gw(i) {
|
|
20696
|
-
return
|
|
20704
|
+
return Zu(i) ? i : Ww(i);
|
|
20697
20705
|
}
|
|
20698
20706
|
function Oo(i, t) {
|
|
20699
20707
|
var e = i.__data__;
|
|
20700
20708
|
return Hw(t) ? e[typeof t == "string" ? "string" : "hash"] : e.map;
|
|
20701
20709
|
}
|
|
20702
|
-
function
|
|
20710
|
+
function Xu(i, t) {
|
|
20703
20711
|
var e = gw(i, t);
|
|
20704
20712
|
return Vw(e) ? e : void 0;
|
|
20705
20713
|
}
|
|
20706
20714
|
function Nw(i, t) {
|
|
20707
|
-
if (
|
|
20715
|
+
if (Zu(i))
|
|
20708
20716
|
return !1;
|
|
20709
20717
|
var e = typeof i;
|
|
20710
20718
|
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 +20735,12 @@ function Fw(i) {
|
|
|
20727
20735
|
if (typeof i == "string" || qa(i))
|
|
20728
20736
|
return i;
|
|
20729
20737
|
var t = i + "";
|
|
20730
|
-
return t == "0" && 1 / i == -
|
|
20738
|
+
return t == "0" && 1 / i == -Wu ? "-0" : t;
|
|
20731
20739
|
}
|
|
20732
20740
|
function Yw(i) {
|
|
20733
20741
|
if (i != null) {
|
|
20734
20742
|
try {
|
|
20735
|
-
return
|
|
20743
|
+
return Yu.call(i);
|
|
20736
20744
|
} catch (t) {
|
|
20737
20745
|
}
|
|
20738
20746
|
try {
|
|
@@ -20758,12 +20766,12 @@ Ja.Cache = Vn;
|
|
|
20758
20766
|
function Uw(i, t) {
|
|
20759
20767
|
return i === t || i !== i && t !== t;
|
|
20760
20768
|
}
|
|
20761
|
-
var
|
|
20769
|
+
var Zu = Array.isArray;
|
|
20762
20770
|
function Xw(i) {
|
|
20763
|
-
var t =
|
|
20771
|
+
var t = Ju(i) ? Uu.call(i) : "";
|
|
20764
20772
|
return t == iw || t == sw;
|
|
20765
20773
|
}
|
|
20766
|
-
function
|
|
20774
|
+
function Ju(i) {
|
|
20767
20775
|
var t = typeof i;
|
|
20768
20776
|
return !!i && (t == "object" || t == "function");
|
|
20769
20777
|
}
|
|
@@ -20771,7 +20779,7 @@ function Zw(i) {
|
|
|
20771
20779
|
return !!i && typeof i == "object";
|
|
20772
20780
|
}
|
|
20773
20781
|
function qa(i) {
|
|
20774
|
-
return typeof i == "symbol" || Zw(i) &&
|
|
20782
|
+
return typeof i == "symbol" || Zw(i) && Uu.call(i) == ow;
|
|
20775
20783
|
}
|
|
20776
20784
|
function Jw(i) {
|
|
20777
20785
|
return i == null ? "" : Qw(i);
|
|
@@ -21933,7 +21941,7 @@ function fC(i) {
|
|
|
21933
21941
|
});
|
|
21934
21942
|
},
|
|
21935
21943
|
setPartialPageSize({ data: r }) {
|
|
21936
|
-
r.partialPageSize =
|
|
21944
|
+
r.partialPageSize = Hu({
|
|
21937
21945
|
particlesToScroll: r.particlesToScroll,
|
|
21938
21946
|
particlesToShow: r.particlesToShow,
|
|
21939
21947
|
particlesCountWithoutClones: r.particlesCountWithoutClones
|
|
@@ -22206,7 +22214,7 @@ function kd(i) {
|
|
|
22206
22214
|
}
|
|
22207
22215
|
function bC(i) {
|
|
22208
22216
|
let t, e, n;
|
|
22209
|
-
return e = new
|
|
22217
|
+
return e = new Gu({
|
|
22210
22218
|
props: {
|
|
22211
22219
|
direction: "prev",
|
|
22212
22220
|
disabled: !/*infinite*/
|
|
@@ -22327,7 +22335,7 @@ function xd(i) {
|
|
|
22327
22335
|
}
|
|
22328
22336
|
function yC(i) {
|
|
22329
22337
|
let t, e, n;
|
|
22330
|
-
return e = new
|
|
22338
|
+
return e = new Gu({
|
|
22331
22339
|
props: {
|
|
22332
22340
|
direction: "next",
|
|
22333
22341
|
disabled: !/*infinite*/
|
|
@@ -23187,7 +23195,7 @@ function TC(i, t, e) {
|
|
|
23187
23195
|
F
|
|
23188
23196
|
];
|
|
23189
23197
|
}
|
|
23190
|
-
class
|
|
23198
|
+
class qu extends le {
|
|
23191
23199
|
constructor(t) {
|
|
23192
23200
|
super(), ae(
|
|
23193
23201
|
this,
|
|
@@ -23330,7 +23338,7 @@ function jC(i) {
|
|
|
23330
23338
|
return (
|
|
23331
23339
|
/*mediaInstanceList*/
|
|
23332
23340
|
i[8][0] !== void 0 && (r.mediaInstance = /*mediaInstanceList*/
|
|
23333
|
-
i[8][0]), t = new
|
|
23341
|
+
i[8][0]), t = new qu({ props: r }), Qe.push(() => Ta(t, "mediaInstance", o)), {
|
|
23334
23342
|
c() {
|
|
23335
23343
|
ne(t.$$.fragment);
|
|
23336
23344
|
},
|
|
@@ -23346,7 +23354,7 @@ function jC(i) {
|
|
|
23346
23354
|
a[1][0]
|
|
23347
23355
|
) },
|
|
23348
23356
|
l[0] & /*mediaItemConfig*/
|
|
23349
|
-
128 &&
|
|
23357
|
+
128 && Kh(
|
|
23350
23358
|
/*mediaItemConfig*/
|
|
23351
23359
|
a[7]
|
|
23352
23360
|
),
|
|
@@ -23440,7 +23448,7 @@ function jd(i) {
|
|
|
23440
23448
|
i[8][
|
|
23441
23449
|
/*index*/
|
|
23442
23450
|
i[30]
|
|
23443
|
-
]), t = new
|
|
23451
|
+
]), t = new qu({ props: r }), Qe.push(() => Ta(t, "mediaInstance", o)), {
|
|
23444
23452
|
c() {
|
|
23445
23453
|
ne(t.$$.fragment);
|
|
23446
23454
|
},
|
|
@@ -23452,7 +23460,7 @@ function jd(i) {
|
|
|
23452
23460
|
const c = l[0] & /*mediaItemConfig, mediaDataList, tag*/
|
|
23453
23461
|
1153 ? dt(s, [
|
|
23454
23462
|
l[0] & /*mediaItemConfig*/
|
|
23455
|
-
128 &&
|
|
23463
|
+
128 && Kh(
|
|
23456
23464
|
/*mediaItemConfig*/
|
|
23457
23465
|
i[7]
|
|
23458
23466
|
),
|
|
@@ -23640,7 +23648,7 @@ function RC(i, t, e) {
|
|
|
23640
23648
|
V
|
|
23641
23649
|
];
|
|
23642
23650
|
}
|
|
23643
|
-
class
|
|
23651
|
+
class Ku extends le {
|
|
23644
23652
|
constructor(t) {
|
|
23645
23653
|
super(), ae(
|
|
23646
23654
|
this,
|
|
@@ -23736,7 +23744,7 @@ function zd(i) {
|
|
|
23736
23744
|
}
|
|
23737
23745
|
function Od(i) {
|
|
23738
23746
|
let t, e, n;
|
|
23739
|
-
return e = new
|
|
23747
|
+
return e = new Vu({
|
|
23740
23748
|
props: {
|
|
23741
23749
|
unfolded: (
|
|
23742
23750
|
/*unfolded*/
|
|
@@ -23776,7 +23784,7 @@ function Od(i) {
|
|
|
23776
23784
|
}
|
|
23777
23785
|
function Bd(i) {
|
|
23778
23786
|
let t, e, n;
|
|
23779
|
-
return e = new
|
|
23787
|
+
return e = new Ku({
|
|
23780
23788
|
props: {
|
|
23781
23789
|
autoplayConfig: { autoplayCarousel: !1 },
|
|
23782
23790
|
unfolded: (
|
|
@@ -24399,7 +24407,7 @@ function XC(i) {
|
|
|
24399
24407
|
);
|
|
24400
24408
|
},
|
|
24401
24409
|
m(a, l) {
|
|
24402
|
-
B(a, t, l), r && r.m(t, null), e = !0, n || (s = be(t, "click",
|
|
24410
|
+
B(a, t, l), r && r.m(t, null), e = !0, n || (s = be(t, "click", Fh(
|
|
24403
24411
|
/*onClick*/
|
|
24404
24412
|
i[1]
|
|
24405
24413
|
)), n = !0);
|
|
@@ -24521,7 +24529,7 @@ function ZC(i, t, e) {
|
|
|
24521
24529
|
72 && c(r && !m ? "play" : "pause");
|
|
24522
24530
|
}, [a, p, o, r, l, u, m, s, n];
|
|
24523
24531
|
}
|
|
24524
|
-
let
|
|
24532
|
+
let $u = class extends le {
|
|
24525
24533
|
constructor(t) {
|
|
24526
24534
|
super(), ae(
|
|
24527
24535
|
this,
|
|
@@ -24674,7 +24682,7 @@ function KC(i, t, e) {
|
|
|
24674
24682
|
h
|
|
24675
24683
|
];
|
|
24676
24684
|
}
|
|
24677
|
-
class
|
|
24685
|
+
class ef extends le {
|
|
24678
24686
|
constructor(t) {
|
|
24679
24687
|
super(), ae(
|
|
24680
24688
|
this,
|
|
@@ -24718,7 +24726,7 @@ function Jd(i) {
|
|
|
24718
24726
|
/*unfolded*/
|
|
24719
24727
|
i[6] && qd(i)
|
|
24720
24728
|
);
|
|
24721
|
-
return c = new
|
|
24729
|
+
return c = new Qu({
|
|
24722
24730
|
props: {
|
|
24723
24731
|
visible: (
|
|
24724
24732
|
/*unfolded*/
|
|
@@ -24837,7 +24845,7 @@ function qd(i) {
|
|
|
24837
24845
|
blurRadius: 15,
|
|
24838
24846
|
spreadRadius: 6
|
|
24839
24847
|
}
|
|
24840
|
-
}), s = new
|
|
24848
|
+
}), s = new $u({
|
|
24841
24849
|
props: {
|
|
24842
24850
|
enable: (
|
|
24843
24851
|
/*unfolded*/
|
|
@@ -24919,7 +24927,7 @@ function qd(i) {
|
|
|
24919
24927
|
}
|
|
24920
24928
|
function eI(i) {
|
|
24921
24929
|
let t, e, n;
|
|
24922
|
-
return e = new
|
|
24930
|
+
return e = new ef({ props: { playing: (
|
|
24923
24931
|
/*playing*/
|
|
24924
24932
|
i[2]
|
|
24925
24933
|
) } }), {
|
|
@@ -25028,7 +25036,7 @@ function sI(i) {
|
|
|
25028
25036
|
}
|
|
25029
25037
|
function Kd(i) {
|
|
25030
25038
|
let t, e, n, s;
|
|
25031
|
-
return n = new
|
|
25039
|
+
return n = new $u({
|
|
25032
25040
|
props: {
|
|
25033
25041
|
style: "width: max-content; height: max-content;",
|
|
25034
25042
|
enable: (
|
|
@@ -25150,7 +25158,7 @@ function oI(i) {
|
|
|
25150
25158
|
}
|
|
25151
25159
|
function rI(i) {
|
|
25152
25160
|
let t, e, n, s, o, r, a;
|
|
25153
|
-
return n = new
|
|
25161
|
+
return n = new ef({ props: { playing: (
|
|
25154
25162
|
/*playing*/
|
|
25155
25163
|
i[3]
|
|
25156
25164
|
) } }), r = new Ya({
|
|
@@ -25397,7 +25405,7 @@ function gI(i) {
|
|
|
25397
25405
|
function $d(i) {
|
|
25398
25406
|
var s;
|
|
25399
25407
|
let t, e, n;
|
|
25400
|
-
return e = new
|
|
25408
|
+
return e = new Ku({
|
|
25401
25409
|
props: {
|
|
25402
25410
|
mediaItemConfig: {
|
|
25403
25411
|
canPlay: !0,
|
|
@@ -25536,7 +25544,7 @@ class vI extends le {
|
|
|
25536
25544
|
super(), ae(this, t, AI, pI, oe, { tag: 0 }, gI);
|
|
25537
25545
|
}
|
|
25538
25546
|
}
|
|
25539
|
-
function
|
|
25547
|
+
function tf(i) {
|
|
25540
25548
|
return U(this, null, function* () {
|
|
25541
25549
|
return new Promise((t, e) => {
|
|
25542
25550
|
if (!i) {
|
|
@@ -25552,7 +25560,7 @@ function bI(i) {
|
|
|
25552
25560
|
return U(this, null, function* () {
|
|
25553
25561
|
const { url: t, ratio: e = 3 } = i;
|
|
25554
25562
|
i.ratio || console.warn("Tag icon ratio is not set, default is 3");
|
|
25555
|
-
const { width: n, height: s } = yield
|
|
25563
|
+
const { width: n, height: s } = yield tf(t);
|
|
25556
25564
|
return Ae(N({}, i), {
|
|
25557
25565
|
width: n / e,
|
|
25558
25566
|
height: s / e
|
|
@@ -25564,7 +25572,7 @@ function yI(i) {
|
|
|
25564
25572
|
const { steps: t, url: e, ratio: n = 3, fps: s = 24 } = i;
|
|
25565
25573
|
if (!t)
|
|
25566
25574
|
throw new Error("KeyframeIcon requires steps");
|
|
25567
|
-
const { width: o, height: r } = yield
|
|
25575
|
+
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
25576
|
return Ae(N({}, i), {
|
|
25569
25577
|
width: c,
|
|
25570
25578
|
height: d,
|
|
@@ -25698,7 +25706,7 @@ function CI(i) {
|
|
|
25698
25706
|
/*iconRatio*/
|
|
25699
25707
|
i[5]
|
|
25700
25708
|
)
|
|
25701
|
-
}))) && ao(e, n) ||
|
|
25709
|
+
}))) && ao(e, n) || qh(n, i, o);
|
|
25702
25710
|
},
|
|
25703
25711
|
d(s) {
|
|
25704
25712
|
s && O(t), n.block.d(s), n.token = null, n = null;
|
|
@@ -25764,7 +25772,7 @@ function II(i) {
|
|
|
25764
25772
|
/*iconRatio*/
|
|
25765
25773
|
i[5]
|
|
25766
25774
|
)
|
|
25767
|
-
}))) && ao(e, n) ||
|
|
25775
|
+
}))) && ao(e, n) || qh(n, i, o);
|
|
25768
25776
|
},
|
|
25769
25777
|
d(s) {
|
|
25770
25778
|
s && O(t), n.block.d(s), n.token = null, n = null;
|
|
@@ -26029,7 +26037,7 @@ function TI(i, t, e) {
|
|
|
26029
26037
|
m
|
|
26030
26038
|
];
|
|
26031
26039
|
}
|
|
26032
|
-
class
|
|
26040
|
+
class nf extends le {
|
|
26033
26041
|
constructor(t) {
|
|
26034
26042
|
super(), ae(this, t, TI, SI, oe, { width: 1, icon: 12, shadow: 0 }, wI);
|
|
26035
26043
|
}
|
|
@@ -26080,7 +26088,7 @@ function sh(i) {
|
|
|
26080
26088
|
}
|
|
26081
26089
|
function jI(i) {
|
|
26082
26090
|
let t, e, n, s;
|
|
26083
|
-
e = new
|
|
26091
|
+
e = new nf({
|
|
26084
26092
|
props: { icon: (
|
|
26085
26093
|
/*icon*/
|
|
26086
26094
|
i[0]
|
|
@@ -26335,7 +26343,7 @@ function _I(i) {
|
|
|
26335
26343
|
);
|
|
26336
26344
|
},
|
|
26337
26345
|
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",
|
|
26346
|
+
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
26347
|
/*click_handler_1*/
|
|
26340
26348
|
i[15]
|
|
26341
26349
|
)), c = !0);
|
|
@@ -26770,7 +26778,7 @@ function KI(i, t, e) {
|
|
|
26770
26778
|
S
|
|
26771
26779
|
];
|
|
26772
26780
|
}
|
|
26773
|
-
let
|
|
26781
|
+
let sf = class extends le {
|
|
26774
26782
|
constructor(t) {
|
|
26775
26783
|
super(), ae(
|
|
26776
26784
|
this,
|
|
@@ -26803,7 +26811,7 @@ function eP(i) {
|
|
|
26803
26811
|
spreadRadius: 5,
|
|
26804
26812
|
opacity: 0.3
|
|
26805
26813
|
}
|
|
26806
|
-
}), c = new
|
|
26814
|
+
}), c = new nf({
|
|
26807
26815
|
props: {
|
|
26808
26816
|
icon: (
|
|
26809
26817
|
/*url*/
|
|
@@ -27032,7 +27040,7 @@ function rP(i) {
|
|
|
27032
27040
|
}
|
|
27033
27041
|
function aP(i) {
|
|
27034
27042
|
let t, e;
|
|
27035
|
-
return t = new
|
|
27043
|
+
return t = new sf({
|
|
27036
27044
|
props: {
|
|
27037
27045
|
mediaStore: (
|
|
27038
27046
|
/*mediaStore*/
|
|
@@ -27525,7 +27533,7 @@ class mP extends le {
|
|
|
27525
27533
|
);
|
|
27526
27534
|
}
|
|
27527
27535
|
}
|
|
27528
|
-
const gP = new
|
|
27536
|
+
const gP = new zf();
|
|
27529
27537
|
function pP(i) {
|
|
27530
27538
|
return new Promise((t, e) => {
|
|
27531
27539
|
function n(o) {
|
|
@@ -27678,7 +27686,7 @@ class bP extends w1 {
|
|
|
27678
27686
|
} else {
|
|
27679
27687
|
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
27688
|
return;
|
|
27681
|
-
if (this.css3DRenderPlugin || (this.css3DRenderPlugin =
|
|
27689
|
+
if (this.css3DRenderPlugin || (this.css3DRenderPlugin = Qh(this.five)), n.stickType === "3DPoint" && !n.normal)
|
|
27682
27690
|
return console.error("updateRenderPlaneTag: 三维点标签缺少法向量!");
|
|
27683
27691
|
const l = this.getPositions(n);
|
|
27684
27692
|
if (!l)
|
|
@@ -27704,7 +27712,7 @@ class bP extends w1 {
|
|
|
27704
27712
|
if (!u)
|
|
27705
27713
|
return;
|
|
27706
27714
|
this.store.css3DRenderDisposer.set(n.id, [u.dispose]);
|
|
27707
|
-
const m = new
|
|
27715
|
+
const m = new sf({
|
|
27708
27716
|
target: u.container,
|
|
27709
27717
|
props: {
|
|
27710
27718
|
tag: n,
|
|
@@ -27834,7 +27842,7 @@ class bP extends w1 {
|
|
|
27834
27842
|
}
|
|
27835
27843
|
}
|
|
27836
27844
|
}
|
|
27837
|
-
const
|
|
27845
|
+
const of = "Dnalogel-PanoTagPlugin", jE = (i) => `${of}--${i}`;
|
|
27838
27846
|
class fa extends bP {
|
|
27839
27847
|
constructor(e, n) {
|
|
27840
27848
|
super(e);
|
|
@@ -27875,7 +27883,7 @@ class fa extends bP {
|
|
|
27875
27883
|
load(e, n) {
|
|
27876
27884
|
return U(this, null, function* () {
|
|
27877
27885
|
var o, r;
|
|
27878
|
-
this.clearTags(), console.debug(
|
|
27886
|
+
this.clearTags(), console.debug(of, " load:", { data: JSON.parse(JSON.stringify(e)) }), this.config = Xe({}, this.config, {
|
|
27879
27887
|
globalConfig: (o = e.globalConfig) != null ? o : {},
|
|
27880
27888
|
contentTypeConfig: (r = e.contentTypeConfig) != null ? r : {}
|
|
27881
27889
|
});
|
|
@@ -28538,7 +28546,7 @@ class ma {
|
|
|
28538
28546
|
}))), this.endTagContainer.tag && Nr(this.endTagContainer.tag) && ((o = this.endTagContainer.app) == null || o.$set(Ae(N({}, this.endTagContainer.tag.data), { opacity: n })));
|
|
28539
28547
|
});
|
|
28540
28548
|
f(this, "logWarning", (t) => Db("GuideLineModeItem: ", t));
|
|
28541
|
-
f(this, "logError", (t) =>
|
|
28549
|
+
f(this, "logError", (t) => Tu("GuideLineModeItem: ", t));
|
|
28542
28550
|
var o, r;
|
|
28543
28551
|
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
28552
|
const n = new E.BufferGeometry(), s = new E.ShaderMaterial({
|
|
@@ -28807,7 +28815,7 @@ function OP(i) {
|
|
|
28807
28815
|
}, i);
|
|
28808
28816
|
});
|
|
28809
28817
|
}
|
|
28810
|
-
const
|
|
28818
|
+
const rf = "v1.0.6", af = "CruisePlugin", Bo = `${af}@${rf}`, uh = () => {
|
|
28811
28819
|
console.error(`${Bo} is disposed`);
|
|
28812
28820
|
}, BP = () => {
|
|
28813
28821
|
console.warn(`${Bo} is disabled`);
|
|
@@ -28843,7 +28851,7 @@ class Ro extends Rn {
|
|
|
28843
28851
|
modeChanging: !1
|
|
28844
28852
|
});
|
|
28845
28853
|
f(this, "GuideLine");
|
|
28846
|
-
this.config = n, Object.assign(window, { [`__${
|
|
28854
|
+
this.config = n, Object.assign(window, { [`__${af}_DEBUG__`]: this });
|
|
28847
28855
|
const s = this.setFiveLinearUpdateCamera.bind(this), o = this.setFiveOriginUpdateCamera.bind(this);
|
|
28848
28856
|
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
28857
|
this.hooks.off("play", s), this.hooks.off("broke", o), this.hooks.off("end", o), this.hooks.off("pause", o);
|
|
@@ -29359,11 +29367,11 @@ class Ro extends Rn {
|
|
|
29359
29367
|
this.privateState.fiveOriginGetProgress && (this.five.controller.cameraMotion.getProgress = this.privateState.fiveOriginGetProgress);
|
|
29360
29368
|
}
|
|
29361
29369
|
}
|
|
29362
|
-
f(Ro, "PluginVersion",
|
|
29370
|
+
f(Ro, "PluginVersion", rf);
|
|
29363
29371
|
const BE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
29364
29372
|
__proto__: null
|
|
29365
29373
|
}, Symbol.toStringTag, { value: "Module" })), RE = (i) => new Ro(i);
|
|
29366
|
-
class
|
|
29374
|
+
class lf {
|
|
29367
29375
|
constructor(t) {
|
|
29368
29376
|
f(this, "id");
|
|
29369
29377
|
f(this, "renderID");
|
|
@@ -29374,7 +29382,7 @@ class af {
|
|
|
29374
29382
|
f(this, "_visible", !0);
|
|
29375
29383
|
f(this, "plugin");
|
|
29376
29384
|
f(this, "five");
|
|
29377
|
-
f(this, "logError", (t) =>
|
|
29385
|
+
f(this, "logError", (t) => Tu("GuideLineItem: ", t));
|
|
29378
29386
|
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
29387
|
}
|
|
29380
29388
|
get visible() {
|
|
@@ -29454,12 +29462,12 @@ function VP(i, t) {
|
|
|
29454
29462
|
}
|
|
29455
29463
|
const VE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
29456
29464
|
__proto__: null,
|
|
29457
|
-
GuideLineItem:
|
|
29458
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
29465
|
+
GuideLineItem: lf
|
|
29466
|
+
}, Symbol.toStringTag, { value: "Module" })), cf = "v1.1.0", ga = "GuideLinePlugin", fh = `${ga}@${cf}`;
|
|
29459
29467
|
class QP extends Rn {
|
|
29460
29468
|
constructor(e, n) {
|
|
29461
29469
|
super(e, n);
|
|
29462
|
-
f(this, "version",
|
|
29470
|
+
f(this, "version", cf);
|
|
29463
29471
|
f(this, "name", ga);
|
|
29464
29472
|
f(this, "cruisePlugin");
|
|
29465
29473
|
/** GuideLineItem 索引 */
|
|
@@ -29547,7 +29555,7 @@ class QP extends Rn {
|
|
|
29547
29555
|
addGuideLineItem(e) {
|
|
29548
29556
|
const n = e.render_id || e.id, s = this.itemMap.get(n);
|
|
29549
29557
|
s && this.removeGuideLineItem(s);
|
|
29550
|
-
const o = new
|
|
29558
|
+
const o = new lf({ five: this.five, id: n, plugin: this });
|
|
29551
29559
|
return this.itemMap.set(n, o), e && o.setData(e), this.heightOffset += 1e-4, o.setHeightOffset(this.heightOffset), o;
|
|
29552
29560
|
}
|
|
29553
29561
|
/** 获取 Plugin 内的 GuideLineItem */
|
|
@@ -29615,14 +29623,14 @@ class QP extends Rn {
|
|
|
29615
29623
|
}
|
|
29616
29624
|
}
|
|
29617
29625
|
const GP = (i, t) => new QP(i, t);
|
|
29618
|
-
function
|
|
29626
|
+
function df(i, t, e) {
|
|
29619
29627
|
if (e) {
|
|
29620
29628
|
const s = new E.Vector3().subVectors(i.position, e).applyQuaternion(i.quaternion.clone().inverse()).applyQuaternion(t).add(e);
|
|
29621
29629
|
i.position.copy(s);
|
|
29622
29630
|
}
|
|
29623
29631
|
i.quaternion.copy(t);
|
|
29624
29632
|
}
|
|
29625
|
-
class Vo extends
|
|
29633
|
+
class Vo extends Au {
|
|
29626
29634
|
constructor(e, n) {
|
|
29627
29635
|
var s;
|
|
29628
29636
|
super();
|
|
@@ -29662,7 +29670,7 @@ class Vo extends pu {
|
|
|
29662
29670
|
this.scale.applyMatrix4(e);
|
|
29663
29671
|
}
|
|
29664
29672
|
setHelperQuaternion(e, n) {
|
|
29665
|
-
|
|
29673
|
+
df(this, e, n);
|
|
29666
29674
|
}
|
|
29667
29675
|
applyHelperQuaternion(e, n) {
|
|
29668
29676
|
if (n) {
|
|
@@ -29681,9 +29689,9 @@ class HP extends Vo {
|
|
|
29681
29689
|
}
|
|
29682
29690
|
class _P extends Vo {
|
|
29683
29691
|
}
|
|
29684
|
-
class
|
|
29692
|
+
class hf extends Vo {
|
|
29685
29693
|
}
|
|
29686
|
-
class WP extends
|
|
29694
|
+
class WP extends hf {
|
|
29687
29695
|
}
|
|
29688
29696
|
class FP extends E.Group {
|
|
29689
29697
|
constructor(e) {
|
|
@@ -30099,7 +30107,7 @@ class n2 extends WP {
|
|
|
30099
30107
|
];
|
|
30100
30108
|
}
|
|
30101
30109
|
}
|
|
30102
|
-
function
|
|
30110
|
+
function uf(i) {
|
|
30103
30111
|
const t = new E.Box3(), e = new E.Vector3();
|
|
30104
30112
|
if (i.traverse((n) => {
|
|
30105
30113
|
var o;
|
|
@@ -30135,7 +30143,7 @@ class i2 extends HP {
|
|
|
30135
30143
|
this.box.raycast(e, n);
|
|
30136
30144
|
}
|
|
30137
30145
|
update() {
|
|
30138
|
-
const e =
|
|
30146
|
+
const e = uf(this.originObject);
|
|
30139
30147
|
if (!e)
|
|
30140
30148
|
return;
|
|
30141
30149
|
const { min: n, max: s } = e;
|
|
@@ -30371,7 +30379,7 @@ class ps {
|
|
|
30371
30379
|
const n = this.originObject3D, s = new E.Vector3(0, 0, 0);
|
|
30372
30380
|
if (!t)
|
|
30373
30381
|
return s;
|
|
30374
|
-
const o = () => e || (this.boundingBox ? this.boundingBox : (this.boundingBox =
|
|
30382
|
+
const o = () => e || (this.boundingBox ? this.boundingBox : (this.boundingBox = uf(n), this.boundingBox));
|
|
30375
30383
|
if (typeof t.x == "number")
|
|
30376
30384
|
s.setX(t.x);
|
|
30377
30385
|
else if (typeof t.x == "object") {
|
|
@@ -30670,7 +30678,7 @@ class h2 extends ps {
|
|
|
30670
30678
|
if (this.hooks.emit("wantToRotate", a))
|
|
30671
30679
|
return;
|
|
30672
30680
|
const { originObject3D: c, rotateCenter: d } = this;
|
|
30673
|
-
|
|
30681
|
+
df(c, a, d), this.hooks.emit("setObjectRotate", a, d), this.hooks.emit("rotate", a), this.render();
|
|
30674
30682
|
}
|
|
30675
30683
|
dispose() {
|
|
30676
30684
|
this.removeListener(), super.dispose();
|
|
@@ -30731,7 +30739,7 @@ class h2 extends ps {
|
|
|
30731
30739
|
),
|
|
30732
30740
|
`${r.toUpperCase()}${"XZY".replace(r.toUpperCase(), "")}`
|
|
30733
30741
|
)[r] * o.angleDirection;
|
|
30734
|
-
if (this.startInfo.angle += v, this.setAngleHelperLength(r, this.startInfo.angle), this.setTipsAngle(
|
|
30742
|
+
if (this.startInfo.angle += v, this.setAngleHelperLength(r, this.startInfo.angle), this.setTipsAngle(ou(this.startInfo.angle)), d) {
|
|
30735
30743
|
const y = new E.Vector3().subVectors(l.position, d).applyQuaternion(m).add(d);
|
|
30736
30744
|
l.position.copy(y);
|
|
30737
30745
|
}
|
|
@@ -30913,7 +30921,7 @@ class m2 extends ps {
|
|
|
30913
30921
|
f(this, "name", "BoundingBoxController");
|
|
30914
30922
|
}
|
|
30915
30923
|
}
|
|
30916
|
-
class g2 extends
|
|
30924
|
+
class g2 extends hf {
|
|
30917
30925
|
constructor(t) {
|
|
30918
30926
|
super(t);
|
|
30919
30927
|
}
|
|
@@ -31242,7 +31250,7 @@ class gh {
|
|
|
31242
31250
|
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
31251
|
const n = document.createElement("video");
|
|
31244
31252
|
n.crossOrigin = "anonymous", n.autoplay = !1, n.muted = !0, n.loop = !0, n.playsInline = !0, this.video = n;
|
|
31245
|
-
const s = new
|
|
31253
|
+
const s = new Df(this.video);
|
|
31246
31254
|
s.minFilter = Ur, s.magFilter = Ur;
|
|
31247
31255
|
const o = new vh({
|
|
31248
31256
|
vertexShader: w2,
|
|
@@ -31250,12 +31258,12 @@ class gh {
|
|
|
31250
31258
|
uniforms: {
|
|
31251
31259
|
map: { value: s },
|
|
31252
31260
|
size: {
|
|
31253
|
-
value: new
|
|
31261
|
+
value: new Sf(this.origin[0], 1 - this.origin[1] - this.origin[3], this.origin[2], this.origin[3])
|
|
31254
31262
|
}
|
|
31255
31263
|
},
|
|
31256
31264
|
depthTest: !0,
|
|
31257
31265
|
transparent: !0
|
|
31258
|
-
}), r = new
|
|
31266
|
+
}), r = new Tf(1, 64, 64);
|
|
31259
31267
|
r.scale(-1, 1, 1);
|
|
31260
31268
|
const a = new ts(r, o);
|
|
31261
31269
|
a.name = "pano-video", this.videoMesh = a, this.five.work && this.onFiveDataLoaded(), this.enabled && this.addEventListeners(), this.mountIfNeeded();
|
|
@@ -31471,11 +31479,11 @@ class P2 extends gs {
|
|
|
31471
31479
|
const GE = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
31472
31480
|
__proto__: null
|
|
31473
31481
|
}, Symbol.toStringTag, { value: "Module" })), NE = (i) => new P2(i);
|
|
31482
|
+
Bf();
|
|
31474
31483
|
Of();
|
|
31475
|
-
zf();
|
|
31476
31484
|
export {
|
|
31477
31485
|
ls as CSS3DRender,
|
|
31478
|
-
|
|
31486
|
+
Qh as CSS3DRenderPlugin,
|
|
31479
31487
|
SA as CameraMovementEffect,
|
|
31480
31488
|
cE as CameraMovementPlugin,
|
|
31481
31489
|
wP as ContentType,
|
|
@@ -31512,7 +31520,7 @@ export {
|
|
|
31512
31520
|
iE as PanoFloorplanRadarPlugin,
|
|
31513
31521
|
AE as PanoMeasurePlugin,
|
|
31514
31522
|
An as PanoMeasurePluginLine,
|
|
31515
|
-
|
|
31523
|
+
wu as PanoMeasurePluginModel,
|
|
31516
31524
|
bt as PanoMeasurePluginPoint,
|
|
31517
31525
|
gi as PanoMeasurePluginPolyline,
|
|
31518
31526
|
dE as PanoRulerPlugin,
|