@realsee/dnalogel 3.81.8 → 3.81.9

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.
Files changed (560) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/PanoTagPlugin/controller/Tag/MaskTag.d.ts +1 -0
  3. package/dist/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +1 -1
  4. package/dist/index.cjs.js +45 -39
  5. package/dist/index.js +103 -91
  6. package/dist/index.umd.js +76 -70
  7. package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
  8. package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
  9. package/docs/classes/CSS3DRender.html +2 -2
  10. package/docs/classes/DigitalHuman.html +2 -2
  11. package/docs/classes/DigitalPerformanceV2.DigitalPerformanceV2PluginController.html +2 -2
  12. package/docs/classes/DigitalPlayground.html +2 -2
  13. package/docs/classes/DigitalStateMachine.html +2 -2
  14. package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
  15. package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
  16. package/docs/classes/ModelMakerPluginInstance.html +2 -2
  17. package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +2 -2
  18. package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +2 -2
  19. package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +2 -2
  20. package/docs/classes/ModelRoomLabelController.html +2 -2
  21. package/docs/classes/MoveController.html +2 -2
  22. package/docs/classes/Object3DHelperController.html +2 -2
  23. package/docs/classes/PaintBrush.html +2 -2
  24. package/docs/classes/PanoMeasurePluginLine.html +2 -2
  25. package/docs/classes/PanoMeasurePluginModel.html +2 -2
  26. package/docs/classes/PanoMeasurePluginPoint.html +2 -2
  27. package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
  28. package/docs/classes/PanoTagPluginController.html +2 -2
  29. package/docs/classes/Sculpt.html +2 -2
  30. package/docs/classes/Util.BetterTween.html +2 -2
  31. package/docs/classes/Util.FiveDomEvents.html +2 -2
  32. package/docs/classes/Util.FivePuppet.html +2 -2
  33. package/docs/classes/Util.Interval.html +2 -2
  34. package/docs/classes/Util.LegacyPointHelper.html +2 -2
  35. package/docs/classes/Util.LightTag.html +2 -2
  36. package/docs/classes/Util.LineSegments.html +2 -2
  37. package/docs/classes/Util.Magnifier.html +2 -2
  38. package/docs/classes/Util.Object3D.html +2 -2
  39. package/docs/classes/Util.PointDomHelper.html +2 -2
  40. package/docs/classes/Util.PointHelper.html +2 -2
  41. package/docs/classes/Util.PointSelector.html +2 -2
  42. package/docs/classes/Util.PointSelectorHelper.html +2 -2
  43. package/docs/classes/Util.Rectangle.html +2 -2
  44. package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
  45. package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
  46. package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
  47. package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
  48. package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
  49. package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
  50. package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
  51. package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
  52. package/docs/classes/Util.sculpt.LineMesh.html +2 -2
  53. package/docs/classes/Util.sculpt.PointMesh.html +2 -2
  54. package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
  55. package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
  56. package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
  57. package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
  58. package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
  59. package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
  60. package/docs/classes/WalkController.html +2 -2
  61. package/docs/enums/CameraMovementEffect.html +2 -2
  62. package/docs/enums/ContentType.html +2 -2
  63. package/docs/enums/DIRECTION.html +2 -2
  64. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
  65. package/docs/enums/DimensionType.html +2 -2
  66. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
  67. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
  68. package/docs/enums/PaintBrushTypeEnum.html +2 -2
  69. package/docs/enums/PointType.html +2 -2
  70. package/docs/enums/Rotation.html +2 -2
  71. package/docs/functions/AreaMakerPlugin.html +1 -1
  72. package/docs/functions/CSS3DRenderPlugin.html +1 -1
  73. package/docs/functions/CameraMovementPlugin.html +2 -2
  74. package/docs/functions/CruisePlugin.html +1 -1
  75. package/docs/functions/CurrentPanoImagePlugin.html +1 -1
  76. package/docs/functions/DigitalPerformancePlugin.html +1 -1
  77. package/docs/functions/DigitalPerformanceV2.DigitalPerformanceV2Plugin.html +1 -1
  78. package/docs/functions/FloorplanGuidePlugin.html +1 -1
  79. package/docs/functions/GuideLinePlugin.html +1 -1
  80. package/docs/functions/ItemLabelPlugin.html +1 -1
  81. package/docs/functions/MapviewFloorplanPlugin.html +1 -1
  82. package/docs/functions/MeasurePlugin.html +1 -1
  83. package/docs/functions/ModelChassisCompassPlugin.html +2 -2
  84. package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
  85. package/docs/functions/ModelFloorplanPlugin.html +1 -1
  86. package/docs/functions/ModelItemLabelPlugin.html +1 -1
  87. package/docs/functions/ModelMakerPlugin.html +1 -1
  88. package/docs/functions/ModelRoomLabelPlugin.html +1 -1
  89. package/docs/functions/ModelTVVideoPlugin.html +1 -1
  90. package/docs/functions/ModelViewPlugin.html +2 -2
  91. package/docs/functions/MovePlugin.html +1 -1
  92. package/docs/functions/Object3DHelperPlugin.html +1 -1
  93. package/docs/functions/PanoCompassPlugin.html +1 -1
  94. package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
  95. package/docs/functions/PanoDoorLabelPlugin.html +1 -1
  96. package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
  97. package/docs/functions/PanoMeasurePlugin.html +1 -1
  98. package/docs/functions/PanoRulerPlugin.html +2 -2
  99. package/docs/functions/PanoRulerProPlugin.html +2 -2
  100. package/docs/functions/PanoSpatialTagPlugin.html +2 -2
  101. package/docs/functions/PanoTagPlugin.html +1 -1
  102. package/docs/functions/PanoVideoPlugin.html +2 -2
  103. package/docs/functions/PipelinePlugin.html +1 -1
  104. package/docs/functions/SculptPlugin.html +2 -2
  105. package/docs/functions/SculptPluginForFive.html +2 -2
  106. package/docs/functions/TopviewFloorplanPlugin.html +1 -1
  107. package/docs/functions/Util.awaitNextFrame.html +1 -1
  108. package/docs/functions/Util.blink.html +2 -2
  109. package/docs/functions/Util.blinkWithPreset.html +2 -2
  110. package/docs/functions/Util.bounding.html +1 -1
  111. package/docs/functions/Util.boundingBox.html +1 -1
  112. package/docs/functions/Util.boundingSphere.html +1 -1
  113. package/docs/functions/Util.boxVertex.html +2 -2
  114. package/docs/functions/Util.boxVertexes.html +1 -1
  115. package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
  116. package/docs/functions/Util.cleanup.html +2 -2
  117. package/docs/functions/Util.convexHull.html +2 -2
  118. package/docs/functions/Util.equal.html +2 -2
  119. package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
  120. package/docs/functions/Util.generatePolygonGeometry.html +2 -2
  121. package/docs/functions/Util.getCoordsFromClient.html +1 -1
  122. package/docs/functions/Util.getCoordsFromElement.html +1 -1
  123. package/docs/functions/Util.getFrameTime.html +2 -2
  124. package/docs/functions/Util.getGeometryArea.html +1 -1
  125. package/docs/functions/Util.getGeometryInfo.html +1 -1
  126. package/docs/functions/Util.getIntersectFromRelativePosition.html +1 -1
  127. package/docs/functions/Util.getRaycasterFromFivePointer.html +1 -1
  128. package/docs/functions/Util.initialCSS3DRender.html +1 -1
  129. package/docs/functions/Util.inside.html +1 -1
  130. package/docs/functions/Util.isModelLike.html +1 -1
  131. package/docs/functions/Util.isNil.html +2 -2
  132. package/docs/functions/Util.isPanoramaLike.html +1 -1
  133. package/docs/functions/Util.lookObject.html +2 -2
  134. package/docs/functions/Util.lookPoint.html +2 -2
  135. package/docs/functions/Util.nextFrame.html +1 -1
  136. package/docs/functions/Util.notNil.html +2 -2
  137. package/docs/functions/Util.reblink.html +2 -2
  138. package/docs/functions/Util.replaceStaticPrefix.html +2 -2
  139. package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
  140. package/docs/functions/Util.sculpt.createBox.html +1 -1
  141. package/docs/functions/Util.sculpt.createCircle.html +1 -1
  142. package/docs/functions/Util.sculpt.createCylinder.html +1 -1
  143. package/docs/functions/Util.sculpt.createLine.html +2 -2
  144. package/docs/functions/Util.sculpt.createPoint.html +1 -1
  145. package/docs/functions/Util.sculpt.createPolygon.html +1 -1
  146. package/docs/functions/Util.sculpt.createPrism.html +1 -1
  147. package/docs/functions/Util.sculpt.createRectangle.html +2 -2
  148. package/docs/functions/Util.sculpt.transformUnit.html +2 -2
  149. package/docs/functions/Util.sculpt.transformUnitSquare.html +1 -1
  150. package/docs/functions/Util.tag.html +1 -1
  151. package/docs/functions/Util.triangleArea.html +2 -2
  152. package/docs/functions/Util.triangleCenter.html +2 -2
  153. package/docs/functions/Util.tweenProgress.html +1 -1
  154. package/docs/functions/Util.uuid.html +2 -2
  155. package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
  156. package/docs/functions/Util.worldBounding.html +1 -1
  157. package/docs/functions/Util.worldBoundingBox.html +1 -1
  158. package/docs/functions/Util.worldBoundingSphere.html +1 -1
  159. package/docs/functions/createPolyline.html +2 -2
  160. package/docs/functions/pluginFlag.html +1 -1
  161. package/docs/functions/validatePolygon.html +1 -1
  162. package/docs/hierarchy.html +1 -1
  163. package/docs/index.html +2 -2
  164. package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
  165. package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
  166. package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
  167. package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
  168. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
  169. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
  170. package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
  171. package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
  172. package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
  173. package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
  174. package/docs/interfaces/BoxAnimationConfig.html +2 -2
  175. package/docs/interfaces/BoxPosition.html +2 -2
  176. package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
  177. package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
  178. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  179. package/docs/interfaces/ChapterLocation.html +2 -2
  180. package/docs/interfaces/ChapterTimeInfo.html +2 -2
  181. package/docs/interfaces/ContentTypeMapInterface.html +2 -2
  182. package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
  183. package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
  184. package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
  185. package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
  186. package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
  187. package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
  188. package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
  189. package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
  190. package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
  191. package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
  192. package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
  193. package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
  194. package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
  195. package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
  196. package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
  197. package/docs/interfaces/DigitalCameraKeyframe.html +2 -2
  198. package/docs/interfaces/DigitalCameraPlayer.html +2 -2
  199. package/docs/interfaces/DigitalCameraState.html +2 -2
  200. package/docs/interfaces/DigitalChapter.html +2 -2
  201. package/docs/interfaces/DigitalDataPlayer.html +2 -2
  202. package/docs/interfaces/DigitalDataState.html +2 -2
  203. package/docs/interfaces/DigitalEffectKeyframe.html +2 -2
  204. package/docs/interfaces/DigitalEffectState.html +2 -2
  205. package/docs/interfaces/DigitalItemKeyframe.html +2 -2
  206. package/docs/interfaces/DigitalItemState.html +2 -2
  207. package/docs/interfaces/DigitalModelKeyframe.html +2 -2
  208. package/docs/interfaces/DigitalModelPlayer.html +2 -2
  209. package/docs/interfaces/DigitalModelPlayerEffect.html +2 -2
  210. package/docs/interfaces/DigitalModelPlayerItem.html +2 -2
  211. package/docs/interfaces/DigitalModelState.html +2 -2
  212. package/docs/interfaces/DigitalPerformancePluginConfig.html +2 -2
  213. package/docs/interfaces/DigitalPerformanceV2.CameraState.html +2 -2
  214. package/docs/interfaces/DigitalPerformanceV2.DigitalCameraKeyframe.html +2 -2
  215. package/docs/interfaces/DigitalPerformanceV2.DigitalCameraPlayer.html +2 -2
  216. package/docs/interfaces/DigitalPerformanceV2.DigitalPerformanceV2PluginConfig.html +2 -2
  217. package/docs/interfaces/DigitalPerformanceV2.GroupChapterTimeInfo.html +2 -2
  218. package/docs/interfaces/DigitalPerformanceV2.GroupProgress.html +2 -2
  219. package/docs/interfaces/DigitalPerformanceV2.V2Progress.html +2 -2
  220. package/docs/interfaces/DigitalScript.html +2 -2
  221. package/docs/interfaces/DigitalSubTitleKeyframe.html +2 -2
  222. package/docs/interfaces/DigitalSubTitlePlayer.html +2 -2
  223. package/docs/interfaces/DigitalSubTitleState.html +2 -2
  224. package/docs/interfaces/ExtendedAnimationConfig.html +2 -2
  225. package/docs/interfaces/FloorplanBounding.html +2 -2
  226. package/docs/interfaces/FloorplanData.html +2 -2
  227. package/docs/interfaces/FloorplanEntrance.html +2 -2
  228. package/docs/interfaces/FloorplanExtraObject.html +2 -2
  229. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  230. package/docs/interfaces/FloorplanFloorData.html +2 -2
  231. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  232. package/docs/interfaces/FloorplanObserver.html +2 -2
  233. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  234. package/docs/interfaces/FloorplanPosition.html +2 -2
  235. package/docs/interfaces/FloorplanRoomItem.html +2 -2
  236. package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
  237. package/docs/interfaces/FloorplanServerBounding.html +2 -2
  238. package/docs/interfaces/FloorplanServerComputedData.html +2 -2
  239. package/docs/interfaces/FloorplanServerData.html +2 -2
  240. package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
  241. package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
  242. package/docs/interfaces/FloorplanServerEntrance.html +2 -2
  243. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  244. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  245. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  246. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  247. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  248. package/docs/interfaces/FloorplanServerRoomItem.html +2 -2
  249. package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
  250. package/docs/interfaces/FloorplanServerStyledFloorplan.html +2 -2
  251. package/docs/interfaces/FloorplanServerStyledImage.html +2 -2
  252. package/docs/interfaces/GlobalProgress.html +2 -2
  253. package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
  254. package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
  255. package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
  256. package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +2 -2
  257. package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
  258. package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
  259. package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
  260. package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
  261. package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
  262. package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
  263. package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
  264. package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
  265. package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
  266. package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
  267. package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
  268. package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
  269. package/docs/interfaces/HelperOffset.html +2 -2
  270. package/docs/interfaces/ImagePlaneGroup.html +2 -2
  271. package/docs/interfaces/ItemLabelPluginData.html +2 -2
  272. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
  273. package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
  274. package/docs/interfaces/MinMax.html +2 -2
  275. package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
  276. package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
  277. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
  278. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
  279. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
  280. package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
  281. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
  282. package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
  283. package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +2 -2
  284. package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
  285. package/docs/interfaces/ModelMakerPluginType.ModelMakerPluginConfig.html +2 -2
  286. package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +2 -2
  287. package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
  288. package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
  289. package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
  290. package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
  291. package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
  292. package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
  293. package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +2 -2
  294. package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
  295. package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
  296. package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
  297. package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
  298. package/docs/interfaces/ModelViewPluginExportType.html +2 -2
  299. package/docs/interfaces/Object3DHelperState.html +2 -2
  300. package/docs/interfaces/ObjectHelperControllers.html +2 -2
  301. package/docs/interfaces/PaintBrushAction.html +2 -2
  302. package/docs/interfaces/PaintBrushConfigs.html +2 -2
  303. package/docs/interfaces/PaintBrushState.html +2 -2
  304. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
  305. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  306. package/docs/interfaces/PanoMeasureParameterType.html +2 -2
  307. package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
  308. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
  309. package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
  310. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
  311. package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
  312. package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
  313. package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
  314. package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
  315. package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
  316. package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
  317. package/docs/interfaces/PanoRulerProPluginState.html +2 -2
  318. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  319. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  320. package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
  321. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
  322. package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
  323. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
  324. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
  325. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
  326. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
  327. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
  328. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
  329. package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
  330. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
  331. package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
  332. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
  333. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
  334. package/docs/interfaces/PluginEventMap.html +2 -2
  335. package/docs/interfaces/Point.html +2 -2
  336. package/docs/interfaces/ProgressBarEvents.html +2 -2
  337. package/docs/interfaces/Room.html +2 -2
  338. package/docs/interfaces/RoomInfo.html +2 -2
  339. package/docs/interfaces/RoomLabel.html +2 -2
  340. package/docs/interfaces/RoomRules.html +1 -1
  341. package/docs/interfaces/Rooms.html +1 -1
  342. package/docs/interfaces/Scissor.html +2 -2
  343. package/docs/interfaces/SculptConfig.html +2 -2
  344. package/docs/interfaces/State.html +2 -2
  345. package/docs/interfaces/StyledFloorplan.html +2 -2
  346. package/docs/interfaces/StyledFloorplanImage.html +2 -2
  347. package/docs/interfaces/StyledFloorplanRoomLabel.html +2 -2
  348. package/docs/interfaces/TagCacheInterface.html +2 -2
  349. package/docs/interfaces/TagConfig.html +2 -2
  350. package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
  351. package/docs/interfaces/TagIconAnimationConfig.html +2 -2
  352. package/docs/interfaces/TagIconUrl.html +2 -2
  353. package/docs/interfaces/TagObjectGroup.html +2 -2
  354. package/docs/interfaces/TagState.html +2 -2
  355. package/docs/interfaces/TagStyle.html +2 -2
  356. package/docs/interfaces/Tags.html +2 -2
  357. package/docs/interfaces/TemporaryState.html +2 -2
  358. package/docs/interfaces/TraceManager.html +2 -2
  359. package/docs/interfaces/TracePoint.html +2 -2
  360. package/docs/interfaces/Util.AnimeInstance.html +2 -2
  361. package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
  362. package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
  363. package/docs/interfaces/Util.FiveDomEvent.html +2 -2
  364. package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
  365. package/docs/interfaces/Util.LegacyMouseGroupParameter.html +2 -2
  366. package/docs/interfaces/Util.MagnifierParameter.html +2 -2
  367. package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
  368. package/docs/interfaces/Util.ObjectInitialState.html +2 -2
  369. package/docs/interfaces/Util.PointIntersection.html +2 -2
  370. package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
  371. package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
  372. package/docs/modules/AreaMakerPluginType.html +2 -2
  373. package/docs/modules/CruisePluginTypes.html +2 -2
  374. package/docs/modules/CurrentPanoImagePluginType.html +2 -2
  375. package/docs/modules/DigitalPerformanceV2.html +2 -2
  376. package/docs/modules/GuideLineItem.html +2 -2
  377. package/docs/modules/GuideLineModeItem.html +2 -2
  378. package/docs/modules/GuideLinePluginType.html +2 -2
  379. package/docs/modules/ModelMakerPluginType.html +2 -2
  380. package/docs/modules/PanoVideoPluginType.html +2 -2
  381. package/docs/modules/SculptData.html +2 -2
  382. package/docs/modules/SculptType.html +2 -2
  383. package/docs/modules/Util.html +2 -2
  384. package/docs/modules/Util.sculpt.html +2 -2
  385. package/docs/modules.html +2 -2
  386. package/docs/types/AddObject3DHelperConfig.html +2 -2
  387. package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
  388. package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
  389. package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
  390. package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
  391. package/docs/types/ArrayPosition.html +1 -1
  392. package/docs/types/AudioAppearance.html +1 -1
  393. package/docs/types/BoxTag.html +2 -2
  394. package/docs/types/CSS3DRenderExportType.html +1 -1
  395. package/docs/types/CSS3DRenderPluginExportType.html +1 -1
  396. package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
  397. package/docs/types/ClassFunctionParameters.html +1 -1
  398. package/docs/types/Color.html +1 -1
  399. package/docs/types/ContentTypeConfigKey.html +1 -1
  400. package/docs/types/ContentTypeConfigKeySplit.html +1 -1
  401. package/docs/types/ContentTypeMap.html +1 -1
  402. package/docs/types/Create3DDomContainerReturnType.html +1 -1
  403. package/docs/types/Create3DElementReturnType.html +1 -1
  404. package/docs/types/CruisePluginExportType.html +1 -1
  405. package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
  406. package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
  407. package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
  408. package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
  409. package/docs/types/DeprecatedTagProperty.html +2 -2
  410. package/docs/types/DigitalPerformancePluginExportInterface.html +1 -1
  411. package/docs/types/DigitalPerformancePluginParamsInterface.html +1 -1
  412. package/docs/types/DigitalPerformanceV2.CameraCoordinateSpace.html +2 -2
  413. package/docs/types/DigitalPerformanceV2.CameraTransition.html +2 -2
  414. package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginExportInterface.html +1 -1
  415. package/docs/types/DigitalPerformanceV2.DigitalPerformanceV2PluginParamsInterface.html +1 -1
  416. package/docs/types/DigitalPerformanceV2.V2ProgressListener.html +1 -1
  417. package/docs/types/Direction-1.html +1 -1
  418. package/docs/types/Direction4.html +1 -1
  419. package/docs/types/ElementRenderer.html +2 -2
  420. package/docs/types/FloorplanAffineTransform.html +1 -1
  421. package/docs/types/FloorplanGuidePluginParameterType.html +1 -1
  422. package/docs/types/FloorplanGuidePluginReturnType.html +1 -1
  423. package/docs/types/FloorplanRuleLabels.html +2 -2
  424. package/docs/types/FloorplanServerAffineTransform.html +1 -1
  425. package/docs/types/FloorplanServerRuleLabels.html +1 -1
  426. package/docs/types/GuideLinePluginExportType.html +1 -1
  427. package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
  428. package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
  429. package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
  430. package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
  431. package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
  432. package/docs/types/GuideLinePluginType.PathItem.html +2 -2
  433. package/docs/types/GuideLinePluginType.PluginData.html +2 -2
  434. package/docs/types/GuideLinePluginType.RouteConfig.html +2 -2
  435. package/docs/types/HelperEventMap.html +1 -1
  436. package/docs/types/InternalHelperEventMap.html +1 -1
  437. package/docs/types/KeyframeType.html +1 -1
  438. package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
  439. package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
  440. package/docs/types/MaskPosition.html +2 -2
  441. package/docs/types/MaskTag.html +2 -2
  442. package/docs/types/MeasureEndReason.html +1 -1
  443. package/docs/types/MeasurePluginConfig.html +2 -2
  444. package/docs/types/MeasurePluginEventMap.html +1 -1
  445. package/docs/types/MediaData.html +2 -2
  446. package/docs/types/MediaStore.html +1 -1
  447. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
  448. package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
  449. package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
  450. package/docs/types/ModelId.html +1 -1
  451. package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
  452. package/docs/types/ModelMakerPluginType.ItemType.html +2 -2
  453. package/docs/types/ModelMakerPluginType.MarkerItem.html +1 -1
  454. package/docs/types/ModelMakerPluginType.ServerItem.html +2 -2
  455. package/docs/types/ModelMakerPluginType.TagOcclusionScope.html +2 -2
  456. package/docs/types/ModelMakerPluginType.TagOcclusionScopeConfig.html +2 -2
  457. package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
  458. package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
  459. package/docs/types/MoveArgs.html +2 -2
  460. package/docs/types/MoveOpts.html +2 -2
  461. package/docs/types/Object3DHelperEventMap.html +1 -1
  462. package/docs/types/ObjectFit.html +1 -1
  463. package/docs/types/PaintBrushEventMap.html +1 -1
  464. package/docs/types/PanoCompassPluginData.html +1 -1
  465. package/docs/types/PanoCompassPluginExportType.html +1 -1
  466. package/docs/types/PanoCompassPluginParameterType.html +1 -1
  467. package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
  468. package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
  469. package/docs/types/PanoIndex.html +1 -1
  470. package/docs/types/PanoMeasurePluginEvent.html +1 -1
  471. package/docs/types/PanoMeasureReturnType.html +1 -1
  472. package/docs/types/PanoSpatialTagPluginId.html +1 -1
  473. package/docs/types/PanoTagPluginExportInterface.html +1 -1
  474. package/docs/types/PanoTagPluginParamsInterface.html +1 -1
  475. package/docs/types/PanoVideoPluginParameterType.html +1 -1
  476. package/docs/types/PanoVideoPluginReturnType.html +1 -1
  477. package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
  478. package/docs/types/PipelinePluginParameterType.html +1 -1
  479. package/docs/types/PipelinePluginReturnType.html +1 -1
  480. package/docs/types/PlaneTag.html +2 -2
  481. package/docs/types/Point2DTag.html +2 -2
  482. package/docs/types/Point3DTag.html +2 -2
  483. package/docs/types/PointTagInstance.html +1 -1
  484. package/docs/types/PolygonPosition.html +2 -2
  485. package/docs/types/PolygonTag.html +2 -2
  486. package/docs/types/Position.html +1 -1
  487. package/docs/types/PositionFrom.html +1 -1
  488. package/docs/types/ProgressListener.html +1 -1
  489. package/docs/types/RotateArgs.html +2 -2
  490. package/docs/types/RotateOpts.html +2 -2
  491. package/docs/types/RuleLabelsKey.html +1 -1
  492. package/docs/types/RuleLabelsValue.html +1 -1
  493. package/docs/types/ScaleCallback.html +1 -1
  494. package/docs/types/ScalePosition.html +2 -2
  495. package/docs/types/SculptData.BoxData.html +1 -1
  496. package/docs/types/SculptData.CircleData.html +1 -1
  497. package/docs/types/SculptData.CylinderData.html +1 -1
  498. package/docs/types/SculptData.PointData.html +1 -1
  499. package/docs/types/SculptData.PolygonData.html +1 -1
  500. package/docs/types/SculptData.PolylineData.html +1 -1
  501. package/docs/types/SculptData.PrismData.html +1 -1
  502. package/docs/types/SculptData.RectangleData.html +1 -1
  503. package/docs/types/SculptType.Theme.html +2 -2
  504. package/docs/types/StateType.html +1 -1
  505. package/docs/types/StickType.html +1 -1
  506. package/docs/types/Tag.html +2 -2
  507. package/docs/types/Tag2D.html +2 -2
  508. package/docs/types/Tag3D.html +2 -2
  509. package/docs/types/TagClickParams.html +1 -1
  510. package/docs/types/TagConfigByKey.html +1 -1
  511. package/docs/types/TagContentType.html +1 -1
  512. package/docs/types/TagContentTypeMapping.html +1 -1
  513. package/docs/types/TagDimensionType.html +1 -1
  514. package/docs/types/TagElement.html +2 -2
  515. package/docs/types/TagEvents.html +1 -1
  516. package/docs/types/TagGLTFObject.html +1 -1
  517. package/docs/types/TagHooks.html +1 -1
  518. package/docs/types/TagId.html +1 -1
  519. package/docs/types/TagInstance.html +1 -1
  520. package/docs/types/TagPlacement.html +2 -2
  521. package/docs/types/TagPointType.html +2 -2
  522. package/docs/types/TagRendererMap.html +1 -1
  523. package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
  524. package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
  525. package/docs/types/Util.ActionIfNoIntersection.html +1 -1
  526. package/docs/types/Util.AdherePoint.html +2 -2
  527. package/docs/types/Util.PointSelectorConfig.html +1 -1
  528. package/docs/types/Util.SupportedTarget.html +2 -2
  529. package/docs/types/Util.Target.html +2 -2
  530. package/docs/types/Util.ThreeObject.html +2 -2
  531. package/docs/types/WorkCode.html +1 -1
  532. package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
  533. package/docs/variables/PLUGIN.html +1 -1
  534. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
  535. package/docs/variables/ROOM_TYPE_MAP.html +2 -2
  536. package/docs/variables/Util.ANIME_PRESETS.html +2 -2
  537. package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +2 -2
  538. package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +2 -2
  539. package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +2 -2
  540. package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +2 -2
  541. package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +2 -2
  542. package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +2 -2
  543. package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +2 -2
  544. package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +2 -2
  545. package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +2 -2
  546. package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +2 -2
  547. package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +2 -2
  548. package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +2 -2
  549. package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +2 -2
  550. package/docs/variables/defaultGlobalConfig.html +1 -1
  551. package/docs/variables/itemLabelPluginServerParams.html +1 -1
  552. package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
  553. package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
  554. package/libs/PanoTagPlugin/controller/Tag/MaskTag.d.ts +1 -0
  555. package/libs/PanoTagPlugin/controller/Tag/MaskTag.js +85 -79
  556. package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +1 -1
  557. package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.js +36 -30
  558. package/libs/base/BasePlugin.js +1 -1
  559. package/libs/shared-utils/logger.js +1 -1
  560. package/package.json +1 -1
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>modelItemLabelPluginServerParams | 如视空间交互插件合集 - v3.81.8</title><meta name="description" content="Documentation for 如视空间交互插件合集"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">如视空间交互插件合集 - v3.81.8</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">如视空间交互插件合集</a></li><li><a href="modelItemLabelPluginServerParams.html">modelItemLabelPluginServerParams</a></li></ul><h1>Variable modelItemLabelPluginServerParams<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">model<wbr/>Item<wbr/>Label<wbr/>Plugin<wbr/>Server<wbr/>Params</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">version</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in plugins/src/ModelItemLabelPlugin/index.ts:7</li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>如视空间交互插件合集 - v3.81.8</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>modelItemLabelPluginServerParams | 如视空间交互插件合集 - v3.81.9</title><meta name="description" content="Documentation for 如视空间交互插件合集"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">如视空间交互插件合集 - v3.81.9</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">如视空间交互插件合集</a></li><li><a href="modelItemLabelPluginServerParams.html">modelItemLabelPluginServerParams</a></li></ul><h1>Variable modelItemLabelPluginServerParams<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">model<wbr/>Item<wbr/>Label<wbr/>Plugin<wbr/>Server<wbr/>Params</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">version</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in plugins/src/ModelItemLabelPlugin/index.ts:7</li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>如视空间交互插件合集 - v3.81.9</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>modelRoomLabelPluginServerParams | 如视空间交互插件合集 - v3.81.8</title><meta name="description" content="Documentation for 如视空间交互插件合集"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">如视空间交互插件合集 - v3.81.8</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">如视空间交互插件合集</a></li><li><a href="modelRoomLabelPluginServerParams.html">modelRoomLabelPluginServerParams</a></li></ul><h1>Variable modelRoomLabelPluginServerParams<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Server<wbr/>Params</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">version</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in plugins/src/ModelRoomLabelPlugin/index.ts:9</li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>如视空间交互插件合集 - v3.81.8</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
1
+ <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>modelRoomLabelPluginServerParams | 如视空间交互插件合集 - v3.81.9</title><meta name="description" content="Documentation for 如视空间交互插件合集"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">如视空间交互插件合集 - v3.81.9</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">如视空间交互插件合集</a></li><li><a href="modelRoomLabelPluginServerParams.html">modelRoomLabelPluginServerParams</a></li></ul><h1>Variable modelRoomLabelPluginServerParams<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Server<wbr/>Params</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">name</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">version</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in plugins/src/ModelRoomLabelPlugin/index.ts:9</li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>如视空间交互插件合集 - v3.81.9</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -69,6 +69,7 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
69
69
  private initializeMaskMesh;
70
70
  /** 构建用于 mergedTexture 的 style 对象(color 作 id),tolerance 0–255 */
71
71
  private buildStyleForMaterial;
72
+ private static getMaskTexelSize;
72
73
  private static createSharedMesh;
73
74
  /** 仅更新材质中某一 slot 的 style(用于 enable/disable/updateMaskStyle) */
74
75
  private updateStyleSlotInMaterial;
@@ -1,36 +1,36 @@
1
1
  var F = Object.defineProperty;
2
2
  var R = Object.getOwnPropertySymbols;
3
- var B = Object.prototype.hasOwnProperty, A = Object.prototype.propertyIsEnumerable;
4
- var E = (m, c, e) => c in m ? F(m, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : m[c] = e, v = (m, c) => {
3
+ var B = Object.prototype.hasOwnProperty, z = Object.prototype.propertyIsEnumerable;
4
+ var E = (m, c, e) => c in m ? F(m, c, { enumerable: !0, configurable: !0, writable: !0, value: e }) : m[c] = e, C = (m, c) => {
5
5
  for (var e in c || (c = {}))
6
6
  B.call(c, e) && E(m, e, c[e]);
7
7
  if (R)
8
8
  for (var e of R(c))
9
- A.call(c, e) && E(m, e, c[e]);
9
+ z.call(c, e) && E(m, e, c[e]);
10
10
  return m;
11
11
  };
12
12
  var x = (m, c, e) => (E(m, typeof c != "symbol" ? c + "" : c, e), e);
13
13
  var S = (m, c, e) => new Promise((s, t) => {
14
- var o = (l) => {
14
+ var o = (h) => {
15
15
  try {
16
- r(e.next(l));
16
+ r(e.next(h));
17
17
  } catch (n) {
18
18
  t(n);
19
19
  }
20
- }, i = (l) => {
20
+ }, i = (h) => {
21
21
  try {
22
- r(e.throw(l));
22
+ r(e.throw(h));
23
23
  } catch (n) {
24
24
  t(n);
25
25
  }
26
- }, r = (l) => l.done ? s(l.value) : Promise.resolve(l.value).then(o, i);
26
+ }, r = (h) => h.done ? s(h.value) : Promise.resolve(h.value).then(o, i);
27
27
  r((e = e.apply(m, c)).next());
28
28
  });
29
- import { BaseTag as D } from "./BaseTag.js";
29
+ import { BaseTag as A } from "./BaseTag.js";
30
30
  import * as g from "three";
31
- import { anime as $ } from "../../../vendor/animejs/lib/anime.es.js";
32
- import { maskVertexShader as z, maskFragmentShaderMulti as G } from "./MaskTag.shaders.js";
33
- import { transformPosition as L } from "../../../shared-utils/five/transformPosition.js";
31
+ import { anime as D } from "../../../vendor/animejs/lib/anime.es.js";
32
+ import { maskVertexShader as $, maskFragmentShaderMulti as V } from "./MaskTag.shaders.js";
33
+ import { transformPosition as G } from "../../../shared-utils/five/transformPosition.js";
34
34
  import "../../../shared-utils/Subscribe.js";
35
35
  import "../../utils/tag/calculateTagConfig.js";
36
36
  import "../../../vendor/object-assign-deep/objectAssignDeep.js";
@@ -132,7 +132,7 @@ function w(m) {
132
132
  }
133
133
  return [0, 0, 0];
134
134
  }
135
- const h = class extends D {
135
+ const l = class extends A {
136
136
  constructor(e, s) {
137
137
  var i;
138
138
  super(e, s);
@@ -196,15 +196,15 @@ const h = class extends D {
196
196
  if (typeof e == "number") {
197
197
  this.loadingMask = !0;
198
198
  try {
199
- const t = yield h.loadMaskTexture(this.maskUrl);
199
+ const t = yield l.loadMaskTexture(this.maskUrl);
200
200
  this.maskTexture = t;
201
- const o = h.getMeshKey(e);
201
+ const o = l.getMeshKey(e);
202
202
  this._sharedMeshKey = o;
203
- let i = h.sharedMeshRegistry.get(o);
204
- const r = this.getColorKey(), l = this.buildStyleForMaterial();
205
- i ? i.maskSource !== this.maskUrl && (h.releaseMaskTexture(i.maskSource), i.maskTexture = t, i.maskSource = this.maskUrl, i.material.uniforms.map.value = t) : (i = h.createSharedMesh(t, this.maskUrl, this.plugin), h.sharedMeshRegistry.set(o, i), this.plugin.imagePlaneGroup.add(i.mesh));
203
+ let i = l.sharedMeshRegistry.get(o);
204
+ const r = this.getColorKey(), h = this.buildStyleForMaterial();
205
+ i ? i.maskSource !== this.maskUrl && (l.releaseMaskTexture(i.maskSource), i.maskTexture = t, i.maskSource = this.maskUrl, i.material.uniforms.map.value = t, i.material.uniforms.maskTexelSize.value = l.getMaskTexelSize(t)) : (i = l.createSharedMesh(t, this.maskUrl, this.plugin), l.sharedMeshRegistry.set(o, i), this.plugin.imagePlaneGroup.add(i.mesh));
206
206
  const n = i.styleIndexByColorKey.get(r);
207
- n !== void 0 ? (this.sharedStyleIndex = n, this.maskMesh = i.mesh, this.updateStyleSlotInMaterial(i.material, n, l)) : (i.tagsByColorKey.set(r, this), this.appendStyleToMaterial(i.material, l), this.sharedStyleIndex = i.tagsByColorKey.size - 1, i.styleIndexByColorKey.set(r, this.sharedStyleIndex), this.maskMesh = i.mesh), this.setupSharedMeshRaycast(i), this.updateMeshTransform(), this.setupClickEvents(), this.updateScreenPosition(), i.mesh.visible = !0;
207
+ n !== void 0 ? (this.sharedStyleIndex = n, this.maskMesh = i.mesh, this.updateStyleSlotInMaterial(i.material, n, h)) : (i.tagsByColorKey.set(r, this), this.appendStyleToMaterial(i.material, h), this.sharedStyleIndex = i.tagsByColorKey.size - 1, i.styleIndexByColorKey.set(r, this.sharedStyleIndex), this.maskMesh = i.mesh), this.setupSharedMeshRaycast(i), this.updateMeshTransform(), this.setupClickEvents(), this.updateScreenPosition(), i.mesh.visible = !0;
208
208
  } finally {
209
209
  this.loadingMask = !1;
210
210
  }
@@ -221,18 +221,24 @@ const h = class extends D {
221
221
  opacity: this.enabled && this.visible ? e.opacity : 0
222
222
  };
223
223
  }
224
+ static getMaskTexelSize(e) {
225
+ var i, r;
226
+ const s = e.image, t = Math.max((i = s == null ? void 0 : s.width) != null ? i : 1, 1), o = Math.max((r = s == null ? void 0 : s.height) != null ? r : 1, 1);
227
+ return new g.Vector2(1 / t, 1 / o);
228
+ }
224
229
  static createSharedMesh(e, s, t) {
225
- const r = Math.max(1, Math.ceil(Math.sqrt(0))), l = 1, n = new Float32Array(r * l * 4), a = new g.DataTexture(n, r, l, g.RGBAFormat, g.FloatType);
230
+ const r = Math.max(1, Math.ceil(Math.sqrt(0))), h = 1, n = new Float32Array(r * h * 4), a = new g.DataTexture(n, r, h, g.RGBAFormat, g.FloatType);
226
231
  a.needsUpdate = !0;
227
232
  const d = new g.ShaderMaterial({
228
- vertexShader: z,
229
- fragmentShader: G,
233
+ vertexShader: $,
234
+ fragmentShader: V,
230
235
  uniforms: {
231
236
  map: { value: e },
232
237
  mergedTexture: { value: a },
233
238
  groupCount: { value: 0 },
234
239
  textureWidth: { value: r },
235
- pixelsPerGroup: { value: 3 }
240
+ pixelsPerGroup: { value: 3 },
241
+ maskTexelSize: { value: l.getMaskTexelSize(e) }
236
242
  },
237
243
  depthWrite: !1,
238
244
  depthTest: !1,
@@ -265,26 +271,26 @@ const h = class extends D {
265
271
  s.__maskRaycastSet = !0;
266
272
  let t = null, o = null;
267
273
  const i = () => {
268
- const l = e.maskTexture;
269
- if (!(l != null && l.image))
274
+ const h = e.maskTexture;
275
+ if (!(h != null && h.image))
270
276
  return null;
271
- if (o === l && t)
277
+ if (o === h && t)
272
278
  return t;
273
- o = l;
279
+ o = h;
274
280
  try {
275
281
  const n = document.createElement("canvas"), a = n.getContext("2d");
276
282
  if (!a)
277
283
  return null;
278
- const d = l.image;
284
+ const d = h.image;
279
285
  return n.width = d.width, n.height = d.height, a.drawImage(d, 0, 0), t = a.getImageData(0, 0, d.width, d.height), t;
280
286
  } catch (n) {
281
287
  return null;
282
288
  }
283
289
  }, r = s.raycast.bind(s);
284
- s.raycast = (l, n) => {
290
+ s.raycast = (h, n) => {
285
291
  var k, I;
286
292
  const a = [];
287
- if (r(l, a), a.length === 0)
293
+ if (r(h, a), a.length === 0)
288
294
  return;
289
295
  const d = a[0];
290
296
  if (!d.uv || !((k = e.maskTexture) != null && k.image))
@@ -325,16 +331,16 @@ const h = class extends D {
325
331
  var a, d, u;
326
332
  if (!this.maskMesh || this._sharedMeshKey === null || this.sharedStyleIndex < 0)
327
333
  return;
328
- const s = h.sharedMeshRegistry.get(this._sharedMeshKey);
334
+ const s = l.sharedMeshRegistry.get(this._sharedMeshKey);
329
335
  if (!s)
330
336
  return;
331
- const i = { opacity: this.buildStyleForMaterial().opacity }, r = (a = e == null ? void 0 : e.duration) != null ? a : 300, l = (d = e == null ? void 0 : e.loop) != null ? d : 4, n = $({
337
+ const i = { opacity: this.buildStyleForMaterial().opacity }, r = (a = e == null ? void 0 : e.duration) != null ? a : 300, h = (d = e == null ? void 0 : e.loop) != null ? d : 4, n = D({
332
338
  targets: i,
333
339
  opacity: [0, 1],
334
340
  duration: r,
335
341
  easing: (u = e == null ? void 0 : e.easing) != null ? u : "easeInOutQuad",
336
342
  direction: "alternate",
337
- loop: l,
343
+ loop: h,
338
344
  update: () => {
339
345
  const p = this.buildStyleForMaterial();
340
346
  p.opacity = i.opacity, this.updateStyleSlotInMaterial(s.material, this.sharedStyleIndex, p);
@@ -353,7 +359,7 @@ const h = class extends D {
353
359
  */
354
360
  set(e, s = !0) {
355
361
  var o, i;
356
- super.set(e, s), e.style && (this.tagStyle = v(v({}, this.tagStyle), e.style), (o = e.style) != null && o.mask && this.updateMaskStyle());
362
+ super.set(e, s), e.style && (this.tagStyle = C(C({}, this.tagStyle), e.style), (o = e.style) != null && o.mask && this.updateMaskStyle());
357
363
  const t = (i = e.mask) != null ? i : e.maskUrl;
358
364
  t && t !== this.maskUrl && (this.maskUrl = t, this.updateSharedMeshTexture()), e.color !== void 0 && (this.targetColor = w(e.color), this.updateMaskStyle()), this.maskMesh && this.updateMaskStyle();
359
365
  }
@@ -370,7 +376,7 @@ const h = class extends D {
370
376
  try {
371
377
  if (!this.enabled || !this.plugin.state.enabled || !this.fiveUtil.model || !this.maskUrl)
372
378
  return !1;
373
- const t = v(v({}, this.five.getCurrentState()), e), { panoIndex: o } = t;
379
+ const t = C(C({}, this.five.getCurrentState()), e), { panoIndex: o } = t;
374
380
  return o !== ((s = this.fiveState) == null ? void 0 : s.panoIndex) ? !1 : super.getVisible(t);
375
381
  } catch (t) {
376
382
  return !1;
@@ -382,7 +388,7 @@ const h = class extends D {
382
388
  */
383
389
  computeVisible(e) {
384
390
  var o, i, r;
385
- const s = v(v({}, this.five.getCurrentState()), e), { panoIndex: t } = s;
391
+ const s = C(C({}, this.five.getCurrentState()), e), { panoIndex: t } = s;
386
392
  return t !== ((o = this.fiveState) == null ? void 0 : o.panoIndex) ? {
387
393
  value: !1,
388
394
  reason: {
@@ -476,7 +482,7 @@ const h = class extends D {
476
482
  const s = this.workUtil.getObserver(e);
477
483
  if (!s)
478
484
  return;
479
- this.maskMesh.position.copy(L(s.position, this.workUtil.transform)), this.maskMesh.quaternion.copy(s.quaternion);
485
+ this.maskMesh.position.copy(G(s.position, this.workUtil.transform)), this.maskMesh.quaternion.copy(s.quaternion);
480
486
  const t = new g.Vector3(), o = new g.Quaternion(), i = new g.Vector3();
481
487
  this.workUtil.transform.decompose(t, o, i), this.maskMesh.quaternion.multiply(o), this.five.needsRender = !0;
482
488
  }
@@ -486,17 +492,17 @@ const h = class extends D {
486
492
  * @returns {Array} 解析后的 styleList
487
493
  */
488
494
  parseStyleListFromMaterial(e) {
489
- const s = e.uniforms, t = s.groupCount.value, o = s.pixelsPerGroup.value, r = s.mergedTexture.value.image.data, l = [];
495
+ const s = e.uniforms, t = s.groupCount.value, o = s.pixelsPerGroup.value, r = s.mergedTexture.value.image.data, h = [];
490
496
  for (let n = 0; n < t; n++) {
491
- const a = n * o, d = a * 4, u = r[d] * 255, p = r[d + 1] * 255, C = r[d + 2] * 255, y = r[d + 3], f = (a + 1) * 4, M = r[f] * 255, k = r[f + 1] * 255, I = r[f + 2] * 255, T = r[f + 3] * 255, K = (a + 2) * 4, P = r[K];
492
- l.push({
493
- color: [Math.round(u), Math.round(p), Math.round(C), y],
497
+ const a = n * o, d = a * 4, u = r[d] * 255, p = r[d + 1] * 255, v = r[d + 2] * 255, y = r[d + 3], f = (a + 1) * 4, M = r[f] * 255, k = r[f + 1] * 255, I = r[f + 2] * 255, T = r[f + 3] * 255, K = (a + 2) * 4, P = r[K];
498
+ h.push({
499
+ color: [Math.round(u), Math.round(p), Math.round(v), y],
494
500
  tolerance: Math.round(M),
495
501
  highlightColor: [Math.round(k), Math.round(I), Math.round(T)],
496
502
  opacity: P
497
503
  });
498
504
  }
499
- return l;
505
+ return h;
500
506
  }
501
507
  /**
502
508
  * 步骤2:更新材质的样式纹理(追加新元素后)
@@ -506,9 +512,9 @@ const h = class extends D {
506
512
  appendStyleToMaterial(e, s) {
507
513
  const t = this.parseStyleListFromMaterial(e);
508
514
  Array.isArray(s) ? t.push(...s) : t.push(s);
509
- const o = t.length, i = 3, l = o * i, n = 1, a = new Float32Array(l * n * 4);
510
- t.forEach((p, C) => {
511
- const y = C * i, f = y * 4;
515
+ const o = t.length, i = 3, h = o * i, n = 1, a = new Float32Array(h * n * 4);
516
+ t.forEach((p, v) => {
517
+ const y = v * i, f = y * 4;
512
518
  a[f] = p.color[0] / 255, a[f + 1] = p.color[1] / 255, a[f + 2] = p.color[2] / 255, a[f + 3] = p.color[3];
513
519
  const M = (y + 1) * 4;
514
520
  a[M] = p.tolerance / 255, a[M + 1] = p.highlightColor[0] / 255, a[M + 2] = p.highlightColor[1] / 255, a[M + 3] = p.highlightColor[2] / 255;
@@ -516,7 +522,7 @@ const h = class extends D {
516
522
  a[k] = p.opacity, a[k + 1] = 0, a[k + 2] = 0, a[k + 3] = 0;
517
523
  });
518
524
  const d = e.uniforms.mergedTexture.value, u = d.image;
519
- u.data = a, u.width = l, u.height = n, d.needsUpdate = !0, e.uniforms.groupCount.value = o, e.uniforms.textureWidth.value = l, console.log(`成功追加样式,当前总组数:${o}`);
525
+ u.data = a, u.width = h, u.height = n, d.needsUpdate = !0, e.uniforms.groupCount.value = o, e.uniforms.textureWidth.value = h, console.log(`成功追加样式,当前总组数:${o}`);
520
526
  }
521
527
  /**
522
528
  * 获取 Mask 样式配置(合并用户配置和默认值)
@@ -561,10 +567,10 @@ const h = class extends D {
561
567
  // eslint-disable-next-line @typescript-eslint/no-unused-vars -- 保留参数与 set() 调用一致
562
568
  reloadMask(e) {
563
569
  var i;
564
- const s = (i = this.fiveState) == null ? void 0 : i.panoIndex, t = this.getColorKey(), o = typeof s == "number" ? h.getMeshKey(s) : this._sharedMeshKey;
570
+ const s = (i = this.fiveState) == null ? void 0 : i.panoIndex, t = this.getColorKey(), o = typeof s == "number" ? l.getMeshKey(s) : this._sharedMeshKey;
565
571
  if (o) {
566
- const r = h.sharedMeshRegistry.get(o);
567
- r && (r.tagsByColorKey.delete(t), r.styleIndexByColorKey.delete(t), r.tagsByColorKey.size === 0 && (r.mesh.parent && r.mesh.parent.remove(r.mesh), r.mesh.geometry.dispose(), r.mesh.material.dispose(), r.material.uniforms.mergedTexture.value.dispose(), h.releaseMaskTexture(r.maskSource), h.sharedMeshRegistry.delete(o)));
572
+ const r = l.sharedMeshRegistry.get(o);
573
+ r && (r.tagsByColorKey.delete(t), r.styleIndexByColorKey.delete(t), r.tagsByColorKey.size === 0 && (r.mesh.parent && r.mesh.parent.remove(r.mesh), r.mesh.geometry.dispose(), r.mesh.material.dispose(), r.material.uniforms.mergedTexture.value.dispose(), l.releaseMaskTexture(r.maskSource), l.sharedMeshRegistry.delete(o)));
568
574
  }
569
575
  this.maskMesh = void 0, this._sharedMeshKey = null, this.sharedStyleIndex = -1, this.maskTexture = void 0, this.visible && !this.loadingMask && this.initializeMaskMesh();
570
576
  }
@@ -580,15 +586,15 @@ const h = class extends D {
580
586
  const e = (i = this.fiveState) == null ? void 0 : i.panoIndex;
581
587
  if (typeof e != "number")
582
588
  return;
583
- const s = h.getMeshKey(e), t = h.sharedMeshRegistry.get(s);
589
+ const s = l.getMeshKey(e), t = l.sharedMeshRegistry.get(s);
584
590
  if (!t) {
585
591
  yield this.initializeMaskMesh();
586
592
  return;
587
593
  }
588
594
  if (t.maskSource === this.maskUrl)
589
595
  return;
590
- const o = yield h.loadMaskTexture(this.maskUrl);
591
- this.maskTexture = o, h.releaseMaskTexture(t.maskSource), t.maskTexture = o, t.maskSource = this.maskUrl, t.material.uniforms.map.value = o, this.five.needsRender = !0;
596
+ const o = yield l.loadMaskTexture(this.maskUrl);
597
+ this.maskTexture = o, l.releaseMaskTexture(t.maskSource), t.maskTexture = o, t.maskSource = this.maskUrl, t.material.uniforms.map.value = o, t.material.uniforms.maskTexelSize.value = l.getMaskTexelSize(o), this.five.needsRender = !0;
592
598
  });
593
599
  }
594
600
  /**
@@ -597,7 +603,7 @@ const h = class extends D {
597
603
  updateMaskStyle() {
598
604
  if (!this.maskMesh || this._sharedMeshKey === null || this.sharedStyleIndex < 0)
599
605
  return;
600
- const e = h.sharedMeshRegistry.get(this._sharedMeshKey);
606
+ const e = l.sharedMeshRegistry.get(this._sharedMeshKey);
601
607
  e && this.updateStyleSlotInMaterial(e.material, this.sharedStyleIndex, this.buildStyleForMaterial());
602
608
  }
603
609
  /**
@@ -621,8 +627,8 @@ const h = class extends D {
621
627
  this._disposed = !0, this.cleanupClickEvents();
622
628
  const e = this._sharedMeshKey, s = this.getColorKey();
623
629
  if (e) {
624
- const t = h.sharedMeshRegistry.get(e);
625
- t && (t.tagsByColorKey.delete(s), t.styleIndexByColorKey.delete(s), t.tagsByColorKey.size === 0 ? (t.mesh.parent && t.mesh.parent.remove(t.mesh), t.mesh.geometry.dispose(), t.mesh.material.dispose(), t.material.uniforms.mergedTexture.value.dispose(), h.releaseMaskTexture(t.maskSource), h.sharedMeshRegistry.delete(e)) : h.rebuildEntryMaterial(t));
630
+ const t = l.sharedMeshRegistry.get(e);
631
+ t && (t.tagsByColorKey.delete(s), t.styleIndexByColorKey.delete(s), t.tagsByColorKey.size === 0 ? (t.mesh.parent && t.mesh.parent.remove(t.mesh), t.mesh.geometry.dispose(), t.mesh.material.dispose(), t.material.uniforms.mergedTexture.value.dispose(), l.releaseMaskTexture(t.maskSource), l.sharedMeshRegistry.delete(e)) : l.rebuildEntryMaterial(t));
626
632
  }
627
633
  this.maskMesh = void 0, this._sharedMeshKey = null, this.sharedStyleIndex = -1, this.maskTexture = void 0, this.five.needsRender = !0;
628
634
  }
@@ -654,27 +660,27 @@ const h = class extends D {
654
660
  * 清除所有点位共享 mesh(重新 load 数据前调用)
655
661
  */
656
662
  static clearSharedMeshRegistry() {
657
- h.sharedMeshRegistry.forEach((e) => {
663
+ l.sharedMeshRegistry.forEach((e) => {
658
664
  e.tagsByColorKey.forEach((s) => {
659
665
  s.maskMesh = void 0, s._sharedMeshKey = null, s.sharedStyleIndex = -1;
660
- }), e.mesh.parent && e.mesh.parent.remove(e.mesh), e.mesh.geometry.dispose(), e.mesh.material.dispose(), e.material.uniforms.mergedTexture.value.dispose(), h.releaseMaskTexture(e.maskSource);
661
- }), h.sharedMeshRegistry.clear();
666
+ }), e.mesh.parent && e.mesh.parent.remove(e.mesh), e.mesh.geometry.dispose(), e.mesh.material.dispose(), e.material.uniforms.mergedTexture.value.dispose(), l.releaseMaskTexture(e.maskSource);
667
+ }), l.sharedMeshRegistry.clear();
662
668
  }
663
669
  /**
664
670
  * 将 style 列表写入材质(用于重建材质)
665
671
  */
666
672
  static writeStyleListToMaterial(e, s) {
667
- const t = s.length, o = 3, r = t * o, l = 1, n = new Float32Array(r * l * 4);
673
+ const t = s.length, o = 3, r = t * o, h = 1, n = new Float32Array(r * h * 4);
668
674
  s.forEach((u, p) => {
669
- const C = p * o, y = C * 4;
675
+ const v = p * o, y = v * 4;
670
676
  n[y] = u.color[0] / 255, n[y + 1] = u.color[1] / 255, n[y + 2] = u.color[2] / 255, n[y + 3] = u.color[3];
671
- const f = (C + 1) * 4;
677
+ const f = (v + 1) * 4;
672
678
  n[f] = u.tolerance / 255, n[f + 1] = u.highlightColor[0] / 255, n[f + 2] = u.highlightColor[1] / 255, n[f + 3] = u.highlightColor[2] / 255;
673
- const M = (C + 2) * 4;
679
+ const M = (v + 2) * 4;
674
680
  n[M] = u.opacity;
675
681
  });
676
682
  const a = e.uniforms.mergedTexture.value, d = a.image;
677
- d.data = n, d.width = r, d.height = l, a.needsUpdate = !0, e.uniforms.groupCount.value = t, e.uniforms.textureWidth.value = r;
683
+ d.data = n, d.width = r, d.height = h, a.needsUpdate = !0, e.uniforms.groupCount.value = t, e.uniforms.textureWidth.value = r;
678
684
  }
679
685
  /**
680
686
  * destroy 后重建该点位材质,更新剩余 tag 的 styleIndex
@@ -684,7 +690,7 @@ const h = class extends D {
684
690
  if (s.length === 0)
685
691
  return;
686
692
  const t = s.map((o) => o.getStyleForMaterial());
687
- h.writeStyleListToMaterial(e.material, t), s.forEach((o, i) => {
693
+ l.writeStyleListToMaterial(e.material, t), s.forEach((o, i) => {
688
694
  o.sharedStyleIndex = i, e.styleIndexByColorKey.set(`${o.targetColor[0]},${o.targetColor[1]},${o.targetColor[2]}`, i);
689
695
  });
690
696
  }
@@ -697,8 +703,8 @@ const h = class extends D {
697
703
  if (typeof e == "string")
698
704
  return e;
699
705
  {
700
- let s = h.canvasSymbolMap.get(e);
701
- return s || (s = Symbol("canvas-mask"), h.canvasSymbolMap.set(e, s)), s;
706
+ let s = l.canvasSymbolMap.get(e);
707
+ return s || (s = Symbol("canvas-mask"), l.canvasSymbolMap.set(e, s)), s;
702
708
  }
703
709
  }
704
710
  /**
@@ -708,7 +714,7 @@ const h = class extends D {
708
714
  */
709
715
  static loadMaskTexture(e) {
710
716
  return S(this, null, function* () {
711
- const s = h.getMaskCacheKey(e), t = h.maskTextureCache.get(s);
717
+ const s = l.getMaskCacheKey(e), t = l.maskTextureCache.get(s);
712
718
  if (t)
713
719
  return t.refCount++, t.texture;
714
720
  const o = performance.now(), i = new AbortController();
@@ -736,13 +742,13 @@ const h = class extends D {
736
742
  });
737
743
  } else
738
744
  r = new g.CanvasTexture(e), r.needsUpdate = !0, console.log("[MaskTag] Created texture from canvas, size:", e.width, "x", e.height);
739
- r.wrapS = g.ClampToEdgeWrapping, r.wrapT = g.ClampToEdgeWrapping, r.minFilter = g.LinearFilter, r.magFilter = g.LinearFilter, r.anisotropy = 4, r instanceof g.CanvasTexture && (r.needsUpdate = !0), h.maskTextureCache.set(s, {
745
+ r.wrapS = g.ClampToEdgeWrapping, r.wrapT = g.ClampToEdgeWrapping, r.minFilter = g.NearestFilter, r.magFilter = g.NearestFilter, r.anisotropy = 4, r instanceof g.CanvasTexture && (r.needsUpdate = !0), l.maskTextureCache.set(s, {
740
746
  texture: r,
741
747
  refCount: 1,
742
748
  abortController: i
743
749
  });
744
- const l = performance.now() - o, n = typeof e == "string" ? e.substring(0, 50) : "Canvas";
745
- if (console.log(`[MaskTag Performance] Texture loaded in ${l.toFixed(2)}ms, source: ${n}`), r.image) {
750
+ const h = performance.now() - o, n = typeof e == "string" ? e.substring(0, 50) : "Canvas";
751
+ if (console.log(`[MaskTag Performance] Texture loaded in ${h.toFixed(2)}ms, source: ${n}`), r.image) {
746
752
  const a = (r.image.width * r.image.height * 4 / 1048576).toFixed(2);
747
753
  console.log(`[MaskTag Memory] Texture size: ${r.image.width}x${r.image.height}, estimated memory: ${a}MB`);
748
754
  }
@@ -758,10 +764,10 @@ const h = class extends D {
758
764
  */
759
765
  static releaseMaskTexture(e) {
760
766
  var o;
761
- const s = h.getMaskCacheKey(e), t = h.maskTextureCache.get(s);
767
+ const s = l.getMaskCacheKey(e), t = l.maskTextureCache.get(s);
762
768
  if (t && (t.refCount--, t.refCount <= 0)) {
763
769
  const i = typeof e == "string" ? e.substring(0, 50) : "Canvas";
764
- console.log(`[MaskTag Memory] Releasing texture (refCount=0): ${i}`), (o = t.abortController) == null || o.abort(), t.texture.dispose(), h.maskTextureCache.delete(s);
770
+ console.log(`[MaskTag Memory] Releasing texture (refCount=0): ${i}`), (o = t.abortController) == null || o.abort(), t.texture.dispose(), l.maskTextureCache.delete(s);
765
771
  }
766
772
  }
767
773
  /**
@@ -771,21 +777,21 @@ const h = class extends D {
771
777
  static getCacheStats() {
772
778
  let e = 0, s = 0;
773
779
  const t = [];
774
- return h.maskTextureCache.forEach((o, i) => {
780
+ return l.maskTextureCache.forEach((o, i) => {
775
781
  e += o.refCount;
776
782
  let r = 0;
777
783
  if (o.texture.image) {
778
784
  const n = o.texture.image.width || 0, a = o.texture.image.height || 0;
779
785
  r = n * a * 4 / (1024 * 1024), s += r;
780
786
  }
781
- const l = typeof i == "string" ? i.substring(0, 80) : "[Canvas]";
787
+ const h = typeof i == "string" ? i.substring(0, 80) : "[Canvas]";
782
788
  t.push({
783
- source: l,
789
+ source: h,
784
790
  refCount: o.refCount,
785
791
  sizeMB: parseFloat(r.toFixed(2))
786
792
  });
787
793
  }), {
788
- totalCached: h.maskTextureCache.size,
794
+ totalCached: l.maskTextureCache.size,
789
795
  totalRefCount: e,
790
796
  estimatedMemoryMB: parseFloat(s.toFixed(2)),
791
797
  cacheEntries: t
@@ -796,13 +802,13 @@ const h = class extends D {
796
802
  * 注意:这会释放所有纹理,即使它们仍在使用中
797
803
  */
798
804
  static clearAllCache() {
799
- console.warn("[MaskTag] Clearing all texture cache"), h.maskTextureCache.forEach((e) => {
805
+ console.warn("[MaskTag] Clearing all texture cache"), l.maskTextureCache.forEach((e) => {
800
806
  var s;
801
807
  (s = e.abortController) == null || s.abort(), e.texture.dispose();
802
- }), h.maskTextureCache.clear();
808
+ }), l.maskTextureCache.clear();
803
809
  }
804
810
  };
805
- let b = h;
811
+ let b = l;
806
812
  /**
807
813
  * Mask 纹理缓存(静态,所有 MaskTag 实例共享)
808
814
  * key: mask URL 或 canvas 的 symbol, value: { texture: THREE.Texture, refCount: number, abortController?: AbortController }
@@ -7,4 +7,4 @@
7
7
  */
8
8
  export declare const maskVertexShader = "\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
9
9
  /** 多 style:mergedTexture 中每组 3 像素为 color(id)/tolerance+highlight/opacity,用 color 作 id 匹配 */
10
- export declare const maskFragmentShaderMulti = "\n#define RESOLUTION 2048.0\n#define MAX_GROUPS 64\n#define STRICT_MATCH 0.5/255.0\n\nvarying vec2 vUv;\nuniform sampler2D map;\nuniform sampler2D mergedTexture;\nuniform float groupCount;\nuniform float textureWidth;\nuniform float pixelsPerGroup;\n\nfloat colorGap(vec3 a, vec3 b) {\n return abs(a.r - b.r) + abs(a.g - b.g) + abs(a.b - b.b);\n}\n\nvec4 readStyleColor(float groupIndex) {\n float px = groupIndex * pixelsPerGroup;\n float texX = (px + 0.5) / textureWidth;\n return texture2D(mergedTexture, vec2(texX, 0.5));\n}\n\nvec4 readStyleToleranceHighlight(float groupIndex) {\n float px = groupIndex * pixelsPerGroup + 1.0;\n float texX = (px + 0.5) / textureWidth;\n return texture2D(mergedTexture, vec2(texX, 0.5));\n}\n\nfloat readStyleOpacity(float groupIndex) {\n float px = groupIndex * pixelsPerGroup + 2.0;\n float texX = (px + 0.5) / textureWidth;\n return texture2D(mergedTexture, vec2(texX, 0.5)).r;\n}\n\nfloat detectEdge(sampler2D map, vec2 uv, vec3 matchColor, float tolerance) {\n vec4 centerColor = texture2D(map, uv);\n if (colorGap(centerColor.rgb, matchColor) >= tolerance) return 0.0;\n float step = 1.0 / RESOLUTION;\n vec4 u = texture2D(map, uv + vec2(0.0, -step));\n vec4 l = texture2D(map, uv + vec2(-step, 0.0));\n vec4 r = texture2D(map, uv + vec2(step, 0.0));\n vec4 d = texture2D(map, uv + vec2(0.0, step));\n bool edge = colorGap(u.rgb, matchColor) >= tolerance || colorGap(l.rgb, matchColor) >= tolerance\n || colorGap(r.rgb, matchColor) >= tolerance || colorGap(d.rgb, matchColor) >= tolerance;\n return edge ? 1.0 : 0.0;\n}\n\nvoid main() {\n vec4 image = texture2D(map, vUv);\n if (image.r == 0.0 && image.g == 0.0 && image.b == 0.0) discard;\n\n // WebGL 1.0 \u8981\u6C42\u5FAA\u73AF\u7EC8\u6B62\u6761\u4EF6\u5FC5\u987B\u662F\u7F16\u8BD1\u65F6\u5E38\u91CF\uFF0C\u6240\u4EE5\u7528 MAX_GROUPS\uFF0C\u5FAA\u73AF\u5185\u68C0\u67E5 groupCount\n for (float i = 0.0; i < float(MAX_GROUPS); i += 1.0) {\n if (i < groupCount) {\n vec4 styleColor = readStyleColor(i);\n vec3 colorRgb = styleColor.rgb;\n float tol = readStyleToleranceHighlight(i).r * 3.0;\n vec3 highlight = readStyleToleranceHighlight(i).gba;\n float opacity = readStyleOpacity(i);\n \n if (opacity > 0.0) {\n float gap = colorGap(image.rgb, colorRgb);\n if (gap > STRICT_MATCH) continue;\n float smoothRange = 0.01;\n float matchFactor = 1.0 - smoothstep(tol - smoothRange, tol + smoothRange, gap);\n if (matchFactor > 0.0) {\n float isEdge = detectEdge(map, vUv, colorRgb, tol);\n float alpha = mix(opacity, 1.0, isEdge);\n alpha *= max(matchFactor, 0.9);\n gl_FragColor = vec4(highlight, alpha);\n return;\n }\n }\n }\n }\n discard;\n}\n";
10
+ export declare const maskFragmentShaderMulti = "\n#define MAX_GROUPS 64\n#define STRICT_MATCH 0.5/255.0\n\nvarying vec2 vUv;\nuniform sampler2D map;\nuniform sampler2D mergedTexture;\nuniform float groupCount;\nuniform float textureWidth;\nuniform float pixelsPerGroup;\nuniform vec2 maskTexelSize;\n\nfloat colorGap(vec3 a, vec3 b) {\n return abs(a.r - b.r) + abs(a.g - b.g) + abs(a.b - b.b);\n}\n\nfloat exactMatch(vec3 sampleColor, vec3 targetColor) {\n return colorGap(sampleColor, targetColor) <= STRICT_MATCH ? 1.0 : 0.0;\n}\n\nvec4 readStyleColor(float groupIndex) {\n float px = groupIndex * pixelsPerGroup;\n float texX = (px + 0.5) / textureWidth;\n return texture2D(mergedTexture, vec2(texX, 0.5));\n}\n\nvec4 readStyleToleranceHighlight(float groupIndex) {\n float px = groupIndex * pixelsPerGroup + 1.0;\n float texX = (px + 0.5) / textureWidth;\n return texture2D(mergedTexture, vec2(texX, 0.5));\n}\n\nfloat readStyleOpacity(float groupIndex) {\n float px = groupIndex * pixelsPerGroup + 2.0;\n float texX = (px + 0.5) / textureWidth;\n return texture2D(mergedTexture, vec2(texX, 0.5)).r;\n}\n\nvoid main() {\n vec4 center = texture2D(map, vUv);\n vec2 quarterTexel = maskTexelSize * 0.25;\n vec3 sample0 = texture2D(map, vUv + quarterTexel * vec2(-1.0, -1.0)).rgb;\n vec3 sample1 = texture2D(map, vUv + quarterTexel * vec2(1.0, -1.0)).rgb;\n vec3 sample2 = texture2D(map, vUv + quarterTexel * vec2(-1.0, 1.0)).rgb;\n vec3 sample3 = texture2D(map, vUv + quarterTexel * vec2(1.0, 1.0)).rgb;\n\n float bestCoverage = 0.0;\n float bestScore = -1.0;\n float bestOpacity = 0.0;\n vec3 bestHighlight = vec3(0.0);\n\n // WebGL 1.0 \u8981\u6C42\u5FAA\u73AF\u7EC8\u6B62\u6761\u4EF6\u5FC5\u987B\u662F\u7F16\u8BD1\u65F6\u5E38\u91CF\uFF0C\u6240\u4EE5\u7528 MAX_GROUPS\uFF0C\u5FAA\u73AF\u5185\u68C0\u67E5 groupCount\n for (float i = 0.0; i < float(MAX_GROUPS); i += 1.0) {\n if (i < groupCount) {\n vec3 colorRgb = readStyleColor(i).rgb;\n vec3 highlight = readStyleToleranceHighlight(i).gba;\n float opacity = readStyleOpacity(i);\n\n if (opacity > 0.0) {\n float coverage = 0.25 * (\n exactMatch(sample0, colorRgb) +\n exactMatch(sample1, colorRgb) +\n exactMatch(sample2, colorRgb) +\n exactMatch(sample3, colorRgb)\n );\n // coverage \u76F8\u540C\u65F6\u4F18\u5148\u9009\u62E9\u4E2D\u5FC3\u50CF\u7D20\u6240\u5C5E\u6807\u7B7E\uFF0C\u907F\u514D\u76F8\u90BB\u6807\u7B7E\u8FB9\u754C\u968F\u6CE8\u518C\u987A\u5E8F\u95EA\u70C1\u3002\n float score = coverage + exactMatch(center.rgb, colorRgb) * 0.001;\n if (coverage > 0.0 && score > bestScore) {\n bestCoverage = coverage;\n bestScore = score;\n bestOpacity = opacity;\n bestHighlight = highlight;\n }\n }\n }\n }\n\n if (bestCoverage > 0.0) {\n gl_FragColor = vec4(bestHighlight, bestOpacity * bestCoverage);\n return;\n }\n discard;\n}\n";