@realsee/dnalogel 3.78.0-alpha.0 → 3.78.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. package/dist/PanoTagPlugin/controller/Tag/BoxTag.d.ts +1 -0
  2. package/dist/PanoTagPlugin/controller/Tag/MaskTag.d.ts +116 -16
  3. package/dist/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +4 -1
  4. package/dist/PanoTagPlugin/controller/index.d.ts +20 -2
  5. package/dist/PanoTagPlugin/typings/tag/Tag.d.ts +2 -2
  6. package/dist/PanoTagPlugin/typings/tag/Utils.d.ts +2 -2
  7. package/dist/PanoTagPlugin/utils/tagPosition.d.ts +9 -1
  8. package/dist/index.cjs.js +154 -149
  9. package/dist/index.js +8398 -8018
  10. package/dist/index.umd.js +144 -139
  11. package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +11 -11
  12. package/libs/PanoTagPlugin/controller/Tag/BoxTag.d.ts +1 -0
  13. package/libs/PanoTagPlugin/controller/Tag/BoxTag.js +17 -10
  14. package/libs/PanoTagPlugin/controller/Tag/MaskTag.d.ts +116 -16
  15. package/libs/PanoTagPlugin/controller/Tag/MaskTag.js +539 -220
  16. package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.d.ts +4 -1
  17. package/libs/PanoTagPlugin/controller/Tag/MaskTag.shaders.js +134 -41
  18. package/libs/PanoTagPlugin/controller/Tag/MaskTag1.d.ts +202 -0
  19. package/libs/PanoTagPlugin/controller/Tag/MaskTag1.js +617 -0
  20. package/libs/PanoTagPlugin/controller/TagUtil.js +11 -11
  21. package/libs/PanoTagPlugin/controller/index.d.ts +20 -2
  22. package/libs/PanoTagPlugin/controller/index.js +168 -120
  23. package/libs/PanoTagPlugin/typings/tag/Tag.d.ts +2 -2
  24. package/libs/PanoTagPlugin/typings/tag/Utils.d.ts +2 -2
  25. package/libs/PanoTagPlugin/utils/index.js +25 -23
  26. package/libs/PanoTagPlugin/utils/tagPosition.d.ts +9 -1
  27. package/libs/PanoTagPlugin/utils/tagPosition.js +3 -1
  28. package/libs/base/BasePlugin.js +1 -1
  29. package/libs/shared-utils/logger.js +1 -1
  30. package/package.json +1 -1
  31. package/docs/.nojekyll +0 -1
  32. package/docs/assets/custom.css +0 -0
  33. package/docs/assets/highlight.css +0 -127
  34. package/docs/assets/icons.js +0 -18
  35. package/docs/assets/icons.svg +0 -1
  36. package/docs/assets/main.js +0 -60
  37. package/docs/assets/navigation.js +0 -1
  38. package/docs/assets/search.js +0 -1
  39. package/docs/assets/style.css +0 -1493
  40. package/docs/classes/AreaMakerPluginType.AreaMakerController.html +0 -59
  41. package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +0 -71
  42. package/docs/classes/CSS3DRender.html +0 -100
  43. package/docs/classes/GuideLineItem.GuideLineItem.html +0 -21
  44. package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +0 -70
  45. package/docs/classes/ModelMakerPluginInstance.html +0 -116
  46. package/docs/classes/ModelMakerPluginType.ModelMakerBoxItem.html +0 -52
  47. package/docs/classes/ModelMakerPluginType.ModelMakerPolygonItem.html +0 -52
  48. package/docs/classes/ModelMakerPluginType.ModelMakerPrismItem.html +0 -53
  49. package/docs/classes/ModelRoomLabelController.html +0 -19
  50. package/docs/classes/MoveController.html +0 -45
  51. package/docs/classes/Object3DHelperController.html +0 -45
  52. package/docs/classes/PaintBrush.html +0 -15
  53. package/docs/classes/PanoMeasurePluginLine.html +0 -24
  54. package/docs/classes/PanoMeasurePluginModel.html +0 -23
  55. package/docs/classes/PanoMeasurePluginPoint.html +0 -7
  56. package/docs/classes/PanoMeasurePluginPolyline.html +0 -27
  57. package/docs/classes/PanoTagPluginController.html +0 -119
  58. package/docs/classes/Sculpt.html +0 -77
  59. package/docs/classes/Util.BetterTween.html +0 -6
  60. package/docs/classes/Util.FiveDomEvents.html +0 -13
  61. package/docs/classes/Util.FivePuppet.html +0 -20
  62. package/docs/classes/Util.Interval.html +0 -11
  63. package/docs/classes/Util.LegacyPointHelper.html +0 -7
  64. package/docs/classes/Util.LightTag.html +0 -47
  65. package/docs/classes/Util.LineSegments.html +0 -4
  66. package/docs/classes/Util.Magnifier.html +0 -26
  67. package/docs/classes/Util.Object3D.html +0 -8
  68. package/docs/classes/Util.PointDomHelper.html +0 -8
  69. package/docs/classes/Util.PointHelper.html +0 -10
  70. package/docs/classes/Util.PointSelector.html +0 -66
  71. package/docs/classes/Util.PointSelectorHelper.html +0 -14
  72. package/docs/classes/Util.Rectangle.html +0 -12
  73. package/docs/classes/Util.sculpt.BaseEditor.html +0 -17
  74. package/docs/classes/Util.sculpt.BoxMesh.html +0 -48
  75. package/docs/classes/Util.sculpt.BoxMeshEditor.html +0 -18
  76. package/docs/classes/Util.sculpt.CircleMesh.html +0 -26
  77. package/docs/classes/Util.sculpt.CircleMeshEditor.html +0 -18
  78. package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +0 -26
  79. package/docs/classes/Util.sculpt.CylinderMesh.html +0 -25
  80. package/docs/classes/Util.sculpt.CylinderMeshEditor.html +0 -18
  81. package/docs/classes/Util.sculpt.LineMesh.html +0 -34
  82. package/docs/classes/Util.sculpt.PointMesh.html +0 -24
  83. package/docs/classes/Util.sculpt.PolygonMesh.html +0 -40
  84. package/docs/classes/Util.sculpt.PrismMesh.html +0 -48
  85. package/docs/classes/Util.sculpt.PrismMeshEditor.html +0 -18
  86. package/docs/classes/Util.sculpt.RectangleMesh.html +0 -41
  87. package/docs/classes/Util.sculpt.RectangleMeshEditor.html +0 -18
  88. package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +0 -44
  89. package/docs/classes/WalkController.html +0 -42
  90. package/docs/enums/CameraMovementEffect.html +0 -4
  91. package/docs/enums/ContentType.html +0 -34
  92. package/docs/enums/DIRECTION.html +0 -5
  93. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +0 -5
  94. package/docs/enums/DimensionType.html +0 -4
  95. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +0 -4
  96. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +0 -5
  97. package/docs/enums/PaintBrushTypeEnum.html +0 -4
  98. package/docs/enums/PointType.html +0 -4
  99. package/docs/enums/Rotation.html +0 -5
  100. package/docs/functions/AreaMakerPlugin.html +0 -1
  101. package/docs/functions/CSS3DRenderPlugin.html +0 -1
  102. package/docs/functions/CameraMovementPlugin.html +0 -2
  103. package/docs/functions/CruisePlugin.html +0 -1
  104. package/docs/functions/CurrentPanoImagePlugin.html +0 -1
  105. package/docs/functions/FloorplanGuidePlugin.html +0 -1
  106. package/docs/functions/GuideLinePlugin.html +0 -1
  107. package/docs/functions/ItemLabelPlugin.html +0 -1
  108. package/docs/functions/MapviewFloorplanPlugin.html +0 -1
  109. package/docs/functions/MeasurePlugin.html +0 -1
  110. package/docs/functions/ModelChassisCompassPlugin.html +0 -2
  111. package/docs/functions/ModelEntryDoorGuidePlugin.html +0 -2
  112. package/docs/functions/ModelFloorplanPlugin.html +0 -1
  113. package/docs/functions/ModelItemLabelPlugin.html +0 -1
  114. package/docs/functions/ModelMakerPlugin.html +0 -1
  115. package/docs/functions/ModelRoomLabelPlugin.html +0 -1
  116. package/docs/functions/ModelTVVideoPlugin.html +0 -1
  117. package/docs/functions/ModelViewPlugin.html +0 -2
  118. package/docs/functions/MovePlugin.html +0 -1
  119. package/docs/functions/Object3DHelperPlugin.html +0 -1
  120. package/docs/functions/PanoCompassPlugin.html +0 -1
  121. package/docs/functions/PanoCursorRaycasterPlugin.html +0 -2
  122. package/docs/functions/PanoDoorLabelPlugin.html +0 -1
  123. package/docs/functions/PanoFloorplanRadarPlugin.html +0 -1
  124. package/docs/functions/PanoMeasurePlugin.html +0 -1
  125. package/docs/functions/PanoRulerPlugin.html +0 -2
  126. package/docs/functions/PanoRulerProPlugin.html +0 -2
  127. package/docs/functions/PanoSpatialTagPlugin.html +0 -2
  128. package/docs/functions/PanoTagPlugin.html +0 -1
  129. package/docs/functions/PanoVideoPlugin.html +0 -10
  130. package/docs/functions/PipelinePlugin.html +0 -1
  131. package/docs/functions/SculptPlugin.html +0 -2
  132. package/docs/functions/SculptPluginForFive.html +0 -2
  133. package/docs/functions/TopviewFloorplanPlugin.html +0 -1
  134. package/docs/functions/Util.awaitNextFrame.html +0 -1
  135. package/docs/functions/Util.blink.html +0 -13
  136. package/docs/functions/Util.blinkWithPreset.html +0 -6
  137. package/docs/functions/Util.bounding.html +0 -1
  138. package/docs/functions/Util.boundingBox.html +0 -1
  139. package/docs/functions/Util.boundingSphere.html +0 -1
  140. package/docs/functions/Util.boxVertex.html +0 -7
  141. package/docs/functions/Util.boxVertexes.html +0 -1
  142. package/docs/functions/Util.checkFiveModelLoaded.html +0 -2
  143. package/docs/functions/Util.cleanup.html +0 -3
  144. package/docs/functions/Util.convexHull.html +0 -2
  145. package/docs/functions/Util.equal.html +0 -5
  146. package/docs/functions/Util.fiveModelIsLoaded.html +0 -2
  147. package/docs/functions/Util.generatePolygonGeometry.html +0 -2
  148. package/docs/functions/Util.getCoordsFromClient.html +0 -1
  149. package/docs/functions/Util.getCoordsFromElement.html +0 -1
  150. package/docs/functions/Util.getFrameTime.html +0 -3
  151. package/docs/functions/Util.getGeometryArea.html +0 -1
  152. package/docs/functions/Util.getGeometryInfo.html +0 -1
  153. package/docs/functions/Util.getIntersectFromRelativePosition.html +0 -1
  154. package/docs/functions/Util.getRaycasterFromFivePointer.html +0 -1
  155. package/docs/functions/Util.initialCSS3DRender.html +0 -1
  156. package/docs/functions/Util.inside.html +0 -1
  157. package/docs/functions/Util.isModelLike.html +0 -1
  158. package/docs/functions/Util.isNil.html +0 -2
  159. package/docs/functions/Util.isPanoramaLike.html +0 -1
  160. package/docs/functions/Util.lookObject.html +0 -7
  161. package/docs/functions/Util.lookPoint.html +0 -5
  162. package/docs/functions/Util.nextFrame.html +0 -1
  163. package/docs/functions/Util.notNil.html +0 -2
  164. package/docs/functions/Util.reblink.html +0 -13
  165. package/docs/functions/Util.replaceStaticPrefix.html +0 -8
  166. package/docs/functions/Util.requestAnimationFrameInterval.html +0 -5
  167. package/docs/functions/Util.sculpt.createBox.html +0 -1
  168. package/docs/functions/Util.sculpt.createCircle.html +0 -1
  169. package/docs/functions/Util.sculpt.createCylinder.html +0 -1
  170. package/docs/functions/Util.sculpt.createLine.html +0 -2
  171. package/docs/functions/Util.sculpt.createPoint.html +0 -1
  172. package/docs/functions/Util.sculpt.createPolygon.html +0 -1
  173. package/docs/functions/Util.sculpt.createPrism.html +0 -1
  174. package/docs/functions/Util.sculpt.createRectangle.html +0 -2
  175. package/docs/functions/Util.sculpt.transformUnit.html +0 -1
  176. package/docs/functions/Util.sculpt.transformUnitSquare.html +0 -1
  177. package/docs/functions/Util.tag.html +0 -1
  178. package/docs/functions/Util.triangleArea.html +0 -2
  179. package/docs/functions/Util.triangleCenter.html +0 -2
  180. package/docs/functions/Util.tweenProgress.html +0 -1
  181. package/docs/functions/Util.uuid.html +0 -2
  182. package/docs/functions/Util.waitFiveModelLoaded.html +0 -2
  183. package/docs/functions/Util.worldBounding.html +0 -1
  184. package/docs/functions/Util.worldBoundingBox.html +0 -1
  185. package/docs/functions/Util.worldBoundingSphere.html +0 -1
  186. package/docs/functions/createPolyline.html +0 -2
  187. package/docs/functions/pluginFlag.html +0 -1
  188. package/docs/functions/validatePolygon.html +0 -1
  189. package/docs/hierarchy.html +0 -1
  190. package/docs/index.html +0 -70
  191. package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +0 -4
  192. package/docs/interfaces/AreaMakerPluginType.Config.html +0 -8
  193. package/docs/interfaces/AreaMakerPluginType.EventMap.html +0 -25
  194. package/docs/interfaces/AreaMakerPluginType.Params.html +0 -4
  195. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +0 -20
  196. package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +0 -13
  197. package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +0 -9
  198. package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +0 -3
  199. package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +0 -3
  200. package/docs/interfaces/AreaMakerPluginType.State.html +0 -8
  201. package/docs/interfaces/BoxAnimationConfig.html +0 -6
  202. package/docs/interfaces/BoxPosition.html +0 -8
  203. package/docs/interfaces/CSS3DRenderPluginEventMap.html +0 -9
  204. package/docs/interfaces/CSS3DRenderPluginState.html +0 -7
  205. package/docs/interfaces/CameraMovementPluginExportType.html +0 -11
  206. package/docs/interfaces/ContentTypeMapInterface.html +0 -73
  207. package/docs/interfaces/CruisePluginTypes.Config.html +0 -7
  208. package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +0 -8
  209. package/docs/interfaces/CruisePluginTypes.EventMap.html +0 -33
  210. package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +0 -6
  211. package/docs/interfaces/CruisePluginTypes.MoveAction.html +0 -16
  212. package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +0 -19
  213. package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +0 -20
  214. package/docs/interfaces/CruisePluginTypes.PluginData.html +0 -8
  215. package/docs/interfaces/CruisePluginTypes.PluginServerData.html +0 -2
  216. package/docs/interfaces/CruisePluginTypes.PluginState.html +0 -15
  217. package/docs/interfaces/CurrentPanoImagePluginType.Config.html +0 -13
  218. package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +0 -15
  219. package/docs/interfaces/CurrentPanoImagePluginType.Params.html +0 -4
  220. package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +0 -3
  221. package/docs/interfaces/CurrentPanoImagePluginType.State.html +0 -7
  222. package/docs/interfaces/FloorplanBounding.html +0 -9
  223. package/docs/interfaces/FloorplanData.html +0 -7
  224. package/docs/interfaces/FloorplanEntrance.html +0 -14
  225. package/docs/interfaces/FloorplanExtraObject.html +0 -9
  226. package/docs/interfaces/FloorplanExtraObject3D.html +0 -5
  227. package/docs/interfaces/FloorplanFloorData.html +0 -9
  228. package/docs/interfaces/FloorplanImagePosition.html +0 -4
  229. package/docs/interfaces/FloorplanObserver.html +0 -8
  230. package/docs/interfaces/FloorplanOutlineItem.html +0 -6
  231. package/docs/interfaces/FloorplanPosition.html +0 -4
  232. package/docs/interfaces/FloorplanRoomItem.html +0 -24
  233. package/docs/interfaces/FloorplanRoomLabelItem.html +0 -6
  234. package/docs/interfaces/FloorplanServerBounding.html +0 -9
  235. package/docs/interfaces/FloorplanServerComputedData.html +0 -6
  236. package/docs/interfaces/FloorplanServerData.html +0 -4
  237. package/docs/interfaces/FloorplanServerDoorItem.html +0 -6
  238. package/docs/interfaces/FloorplanServerDoorPosition.html +0 -4
  239. package/docs/interfaces/FloorplanServerEntrance.html +0 -14
  240. package/docs/interfaces/FloorplanServerFloorData.html +0 -8
  241. package/docs/interfaces/FloorplanServerImagePosition.html +0 -4
  242. package/docs/interfaces/FloorplanServerObserver.html +0 -8
  243. package/docs/interfaces/FloorplanServerOutlineItem.html +0 -6
  244. package/docs/interfaces/FloorplanServerPosition.html +0 -4
  245. package/docs/interfaces/FloorplanServerRoomItem.html +0 -27
  246. package/docs/interfaces/FloorplanServerRoomLabelItem.html +0 -6
  247. package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +0 -4
  248. package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +0 -7
  249. package/docs/interfaces/GuideLinePluginType.EventMap.html +0 -13
  250. package/docs/interfaces/GuideLinePluginType.ExtraRouteData.html +0 -5
  251. package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +0 -8
  252. package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +0 -2
  253. package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +0 -32
  254. package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +0 -4
  255. package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +0 -5
  256. package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +0 -42
  257. package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +0 -3
  258. package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +0 -57
  259. package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +0 -1
  260. package/docs/interfaces/GuideLinePluginType.PluginServerData.html +0 -2
  261. package/docs/interfaces/GuideLinePluginType.PluginState.html +0 -7
  262. package/docs/interfaces/GuideLinePluginType.Route.html +0 -13
  263. package/docs/interfaces/HelperOffset.html +0 -4
  264. package/docs/interfaces/ImagePlaneGroup.html +0 -3
  265. package/docs/interfaces/ItemLabelPluginData.html +0 -2
  266. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +0 -7
  267. package/docs/interfaces/ItemLabelPluginParametersType.html +0 -5
  268. package/docs/interfaces/MinMax.html +0 -3
  269. package/docs/interfaces/ModelChassisCompassPluginData.html +0 -3
  270. package/docs/interfaces/ModelChassisCompassPluginExportType.html +0 -4
  271. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +0 -3
  272. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +0 -4
  273. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +0 -4
  274. package/docs/interfaces/ModelItemLabelPluginData.html +0 -2
  275. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +0 -7
  276. package/docs/interfaces/ModelItemLabelPluginParametersType.html +0 -3
  277. package/docs/interfaces/ModelMakerPluginType.BoxItemObjectData.html +0 -17
  278. package/docs/interfaces/ModelMakerPluginType.EventMap.html +0 -18
  279. package/docs/interfaces/ModelMakerPluginType.PrismItemObjectData.html +0 -23
  280. package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +0 -11
  281. package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +0 -10
  282. package/docs/interfaces/ModelMakerPluginType.ServerData.html +0 -3
  283. package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +0 -10
  284. package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +0 -10
  285. package/docs/interfaces/ModelMakerPluginType.State.html +0 -8
  286. package/docs/interfaces/ModelMakerPluginType.TrianglesItemObjectData.html +0 -11
  287. package/docs/interfaces/ModelRoomLabelPluginData.html +0 -2
  288. package/docs/interfaces/ModelTVVideoPluginData.html +0 -5
  289. package/docs/interfaces/ModelTVVideoPluginExportType.html +0 -4
  290. package/docs/interfaces/ModelTVVideoPluginParameterType.html +0 -2
  291. package/docs/interfaces/ModelViewPluginExportType.html +0 -8
  292. package/docs/interfaces/Object3DHelperState.html +0 -4
  293. package/docs/interfaces/ObjectHelperControllers.html +0 -5
  294. package/docs/interfaces/PaintBrushAction.html +0 -14
  295. package/docs/interfaces/PaintBrushConfigs.html +0 -8
  296. package/docs/interfaces/PaintBrushState.html +0 -6
  297. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +0 -16
  298. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +0 -1
  299. package/docs/interfaces/PanoMeasureParameterType.html +0 -20
  300. package/docs/interfaces/PanoMeasurePluginLineJson.html +0 -4
  301. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +0 -4
  302. package/docs/interfaces/PanoMeasurePluginPointJson.html +0 -3
  303. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +0 -7
  304. package/docs/interfaces/PanoRulerPluginExportType.html +0 -6
  305. package/docs/interfaces/PanoRulerPluginOptions.html +0 -3
  306. package/docs/interfaces/PanoRulerPluginParameterType.html +0 -4
  307. package/docs/interfaces/PanoRulerProPluginExportType.html +0 -5
  308. package/docs/interfaces/PanoRulerProPluginOptions.html +0 -3
  309. package/docs/interfaces/PanoRulerProPluginParameterType.html +0 -3
  310. package/docs/interfaces/PanoRulerProPluginState.html +0 -4
  311. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +0 -1
  312. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +0 -1
  313. package/docs/interfaces/PanoSpatialTagPluginData.html +0 -7
  314. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +0 -6
  315. package/docs/interfaces/PanoSpatialTagPluginExportType.html +0 -9
  316. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +0 -6
  317. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +0 -9
  318. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +0 -7
  319. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +0 -6
  320. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +0 -3
  321. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +0 -8
  322. package/docs/interfaces/PanoVideoPluginType.PluginData.html +0 -2
  323. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +0 -15
  324. package/docs/interfaces/PanoVideoPluginType.PluginState.html +0 -2
  325. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +0 -14
  326. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +0 -13
  327. package/docs/interfaces/PluginEventMap.html +0 -16
  328. package/docs/interfaces/Point.html +0 -4
  329. package/docs/interfaces/Room.html +0 -5
  330. package/docs/interfaces/RoomInfo.html +0 -3
  331. package/docs/interfaces/RoomLabel.html +0 -16
  332. package/docs/interfaces/RoomRules.html +0 -1
  333. package/docs/interfaces/Rooms.html +0 -1
  334. package/docs/interfaces/Scissor.html +0 -13
  335. package/docs/interfaces/SculptConfig.html +0 -19
  336. package/docs/interfaces/State.html +0 -7
  337. package/docs/interfaces/TagCacheInterface.html +0 -9
  338. package/docs/interfaces/TagConfig.html +0 -174
  339. package/docs/interfaces/TagGLTFObjectGroup.html +0 -3
  340. package/docs/interfaces/TagIconAnimationConfig.html +0 -7
  341. package/docs/interfaces/TagIconUrl.html +0 -22
  342. package/docs/interfaces/TagObjectGroup.html +0 -3
  343. package/docs/interfaces/TagState.html +0 -3
  344. package/docs/interfaces/TagStyle.html +0 -17
  345. package/docs/interfaces/Tags.html +0 -8
  346. package/docs/interfaces/TemporaryState.html +0 -2
  347. package/docs/interfaces/Util.AnimeInstance.html +0 -14
  348. package/docs/interfaces/Util.BlinkAnimeOptions.html +0 -21
  349. package/docs/interfaces/Util.EventHandlerConfig.html +0 -21
  350. package/docs/interfaces/Util.FiveDomEvent.html +0 -7
  351. package/docs/interfaces/Util.FiveDomEventMap.html +0 -20
  352. package/docs/interfaces/Util.LegacyMouseGroupParameter.html +0 -4
  353. package/docs/interfaces/Util.MagnifierParameter.html +0 -13
  354. package/docs/interfaces/Util.MouseGroupParameter.html +0 -4
  355. package/docs/interfaces/Util.ObjectInitialState.html +0 -9
  356. package/docs/interfaces/Util.PointIntersection.html +0 -21
  357. package/docs/interfaces/Util.PointSelectorHelperConfig.html +0 -6
  358. package/docs/interfaces/Util.ReBlinkAnimeOptions.html +0 -27
  359. package/docs/modules/AreaMakerPluginType.html +0 -17
  360. package/docs/modules/CruisePluginTypes.html +0 -14
  361. package/docs/modules/CurrentPanoImagePluginType.html +0 -6
  362. package/docs/modules/GuideLineItem.html +0 -2
  363. package/docs/modules/GuideLineModeItem.html +0 -3
  364. package/docs/modules/GuideLinePluginType.html +0 -25
  365. package/docs/modules/ModelMakerPluginType.html +0 -19
  366. package/docs/modules/PanoVideoPluginType.html +0 -8
  367. package/docs/modules/SculptData.html +0 -9
  368. package/docs/modules/SculptType.html +0 -2
  369. package/docs/modules/Util.html +0 -91
  370. package/docs/modules/Util.sculpt.html +0 -27
  371. package/docs/modules.html +0 -287
  372. package/docs/types/AddObject3DHelperConfig.html +0 -19
  373. package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +0 -7
  374. package/docs/types/AreaMakerPluginType.ItemRenderer.html +0 -1
  375. package/docs/types/AreaMakerPluginType.PluginData.html +0 -2
  376. package/docs/types/AreaMakerPluginType.ServerData.html +0 -2
  377. package/docs/types/ArrayPosition.html +0 -1
  378. package/docs/types/AudioAppearance.html +0 -1
  379. package/docs/types/BoxTag.html +0 -2
  380. package/docs/types/CSS3DRenderExportType.html +0 -1
  381. package/docs/types/CSS3DRenderPluginExportType.html +0 -1
  382. package/docs/types/CSS3DRenderPluginParameterType.html +0 -1
  383. package/docs/types/ClassFunctionParameters.html +0 -1
  384. package/docs/types/Color.html +0 -1
  385. package/docs/types/ContentTypeConfigKey.html +0 -1
  386. package/docs/types/ContentTypeConfigKeySplit.html +0 -1
  387. package/docs/types/ContentTypeMap.html +0 -1
  388. package/docs/types/Create3DDomContainerReturnType.html +0 -1
  389. package/docs/types/Create3DElementReturnType.html +0 -1
  390. package/docs/types/CruisePluginExportType.html +0 -1
  391. package/docs/types/CruisePluginTypes.CruiseData.html +0 -6
  392. package/docs/types/CruisePluginTypes.MoveEffect.html +0 -1
  393. package/docs/types/CurrentPanoImagePluginExportType.html +0 -1
  394. package/docs/types/DeprecatedMediaPlaneProperty.html +0 -3
  395. package/docs/types/DeprecatedTagProperty.html +0 -3
  396. package/docs/types/Direction-1.html +0 -1
  397. package/docs/types/Direction4.html +0 -1
  398. package/docs/types/ElementRenderer.html +0 -2
  399. package/docs/types/FloorplanGuidePluginParameterType.html +0 -1
  400. package/docs/types/FloorplanGuidePluginReturnType.html +0 -1
  401. package/docs/types/FloorplanRuleLabels.html +0 -2
  402. package/docs/types/FloorplanServerRuleLabels.html +0 -1
  403. package/docs/types/GuideLinePluginExportType.html +0 -1
  404. package/docs/types/GuideLinePluginType.GuideLineItem.html +0 -2
  405. package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +0 -1
  406. package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +0 -1
  407. package/docs/types/GuideLinePluginType.GuideLineStyle.html +0 -2
  408. package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +0 -2
  409. package/docs/types/GuideLinePluginType.PathItem.html +0 -2
  410. package/docs/types/GuideLinePluginType.PluginData.html +0 -2
  411. package/docs/types/GuideLinePluginType.RouteConfig.html +0 -4
  412. package/docs/types/HelperEventMap.html +0 -1
  413. package/docs/types/InternalHelperEventMap.html +0 -1
  414. package/docs/types/MapviewFloorplanPluginParameterType.html +0 -1
  415. package/docs/types/MapviewFloorplanPluginReturnType.html +0 -1
  416. package/docs/types/MaskPosition.html +0 -3
  417. package/docs/types/MaskTag.html +0 -2
  418. package/docs/types/MeasureEndReason.html +0 -1
  419. package/docs/types/MeasurePluginConfig.html +0 -5
  420. package/docs/types/MeasurePluginEventMap.html +0 -1
  421. package/docs/types/MediaData.html +0 -2
  422. package/docs/types/MediaStore.html +0 -1
  423. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +0 -1
  424. package/docs/types/ModelFloorplanPluginParameterType.html +0 -1
  425. package/docs/types/ModelFloorplanPluginReturnType.html +0 -1
  426. package/docs/types/ModelId.html +0 -1
  427. package/docs/types/ModelMakerPluginType.ElementRenderer.html +0 -1
  428. package/docs/types/ModelMakerPluginType.ItemType.html +0 -2
  429. package/docs/types/ModelMakerPluginType.MarkerItem.html +0 -1
  430. package/docs/types/ModelMakerPluginType.ServerItem.html +0 -2
  431. package/docs/types/ModelRoomLabelPluginParameters.html +0 -1
  432. package/docs/types/ModelRoomLabelPluginReturnType.html +0 -1
  433. package/docs/types/MoveArgs.html +0 -2
  434. package/docs/types/MoveOpts.html +0 -2
  435. package/docs/types/Object3DHelperEventMap.html +0 -1
  436. package/docs/types/ObjectFit.html +0 -1
  437. package/docs/types/PaintBrushEventMap.html +0 -1
  438. package/docs/types/PanoCompassPluginData.html +0 -1
  439. package/docs/types/PanoCompassPluginExportType.html +0 -1
  440. package/docs/types/PanoCompassPluginParameterType.html +0 -1
  441. package/docs/types/PanoFloorplanRadarPluginParameterType.html +0 -1
  442. package/docs/types/PanoFloorplanRadarPluginReturnType.html +0 -1
  443. package/docs/types/PanoIndex.html +0 -1
  444. package/docs/types/PanoMeasurePluginEvent.html +0 -1
  445. package/docs/types/PanoMeasureReturnType.html +0 -1
  446. package/docs/types/PanoSpatialTagPluginId.html +0 -1
  447. package/docs/types/PanoTagPluginExportInterface.html +0 -1
  448. package/docs/types/PanoTagPluginParamsInterface.html +0 -1
  449. package/docs/types/PanoVideoPluginParameterType.html +0 -1
  450. package/docs/types/PanoVideoPluginReturnType.html +0 -1
  451. package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +0 -2
  452. package/docs/types/PipelinePluginParameterType.html +0 -1
  453. package/docs/types/PipelinePluginReturnType.html +0 -1
  454. package/docs/types/PlaneTag.html +0 -2
  455. package/docs/types/Point2DTag.html +0 -2
  456. package/docs/types/Point3DTag.html +0 -2
  457. package/docs/types/PointTagInstance.html +0 -1
  458. package/docs/types/PolygonPosition.html +0 -3
  459. package/docs/types/PolygonTag.html +0 -2
  460. package/docs/types/Position.html +0 -1
  461. package/docs/types/PositionFrom.html +0 -1
  462. package/docs/types/RotateArgs.html +0 -2
  463. package/docs/types/RotateOpts.html +0 -2
  464. package/docs/types/RuleLabelsKey.html +0 -1
  465. package/docs/types/RuleLabelsValue.html +0 -1
  466. package/docs/types/ScaleCallback.html +0 -1
  467. package/docs/types/ScalePosition.html +0 -3
  468. package/docs/types/SculptData.BoxData.html +0 -1
  469. package/docs/types/SculptData.CircleData.html +0 -1
  470. package/docs/types/SculptData.CylinderData.html +0 -1
  471. package/docs/types/SculptData.PointData.html +0 -1
  472. package/docs/types/SculptData.PolygonData.html +0 -1
  473. package/docs/types/SculptData.PolylineData.html +0 -1
  474. package/docs/types/SculptData.PrismData.html +0 -1
  475. package/docs/types/SculptData.RectangleData.html +0 -1
  476. package/docs/types/SculptType.Theme.html +0 -10
  477. package/docs/types/StickType.html +0 -1
  478. package/docs/types/Tag.html +0 -17
  479. package/docs/types/Tag2D.html +0 -2
  480. package/docs/types/Tag3D.html +0 -2
  481. package/docs/types/TagClickParams.html +0 -1
  482. package/docs/types/TagConfigByKey.html +0 -1
  483. package/docs/types/TagContentType.html +0 -1
  484. package/docs/types/TagContentTypeMapping.html +0 -1
  485. package/docs/types/TagDimensionType.html +0 -1
  486. package/docs/types/TagElement.html +0 -2
  487. package/docs/types/TagEvents.html +0 -1
  488. package/docs/types/TagGLTFObject.html +0 -1
  489. package/docs/types/TagHooks.html +0 -1
  490. package/docs/types/TagId.html +0 -1
  491. package/docs/types/TagInstance.html +0 -1
  492. package/docs/types/TagPlacement.html +0 -5
  493. package/docs/types/TagPointType.html +0 -2
  494. package/docs/types/TagRendererMap.html +0 -1
  495. package/docs/types/TopviewFloorplanPluginParameterType.html +0 -1
  496. package/docs/types/TopviewFloorplanPluginReturnType.html +0 -1
  497. package/docs/types/Util.ActionIfNoIntersection.html +0 -1
  498. package/docs/types/Util.AdherePoint.html +0 -2
  499. package/docs/types/Util.PointSelectorConfig.html +0 -1
  500. package/docs/types/Util.SupportedTarget.html +0 -2
  501. package/docs/types/Util.Target.html +0 -2
  502. package/docs/types/Util.ThreeObject.html +0 -2
  503. package/docs/types/WorkCode.html +0 -1
  504. package/docs/variables/FLOOR_TYPE_MAP.html +0 -2
  505. package/docs/variables/PLUGIN.html +0 -1
  506. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +0 -2
  507. package/docs/variables/ROOM_TYPE_MAP.html +0 -2
  508. package/docs/variables/Util.ANIME_PRESETS.html +0 -2
  509. package/docs/variables/Util.CURRENT_PANO_IMAGE_DEFAULT_IMAGE.html +0 -2
  510. package/docs/variables/Util.DEFAULT_ANIME_CONFIG.html +0 -2
  511. package/docs/variables/Util.DEFAULT_STATIC_PREFIX.html +0 -2
  512. package/docs/variables/Util.DNALOGEL_DEFAULT_ASSETS.html +0 -2
  513. package/docs/variables/Util.ENTRY_DOOR_DEFAULT_IMAGE.html +0 -2
  514. package/docs/variables/Util.FLOORPLAN_DEFAULT_IMAGE.html +0 -2
  515. package/docs/variables/Util.GUIDELINE_DEFAULT_ARROW_TEXTURE.html +0 -2
  516. package/docs/variables/Util.GUIDELINE_WHITE_ARROW_TEXTURE.html +0 -2
  517. package/docs/variables/Util.MODEL_CHASSIS_COMPASS_DEFAULT_MODEL.html +0 -2
  518. package/docs/variables/Util.MODEL_ENTRY_DOOR_GUIDE_PLUGIN_DEFAULT_MODEL.html +0 -2
  519. package/docs/variables/Util.PANO_COMPASS_DEFAULT_IMAGE.html +0 -2
  520. package/docs/variables/Util.PANO_SPATIAL_TAG_BLUR_IMAGE.html +0 -2
  521. package/docs/variables/Util.PANO_TAG_DEFAULT_LINK_ICON.html +0 -2
  522. package/docs/variables/defaultGlobalConfig.html +0 -1
  523. package/docs/variables/itemLabelPluginServerParams.html +0 -1
  524. package/docs/variables/modelItemLabelPluginServerParams.html +0 -1
  525. package/docs/variables/modelRoomLabelPluginServerParams.html +0 -1
@@ -107,6 +107,7 @@ export declare class BoxTag<C extends TagContentType = TagContentType> extends B
107
107
  * 显示在 Box 最右侧的顶点位置
108
108
  */
109
109
  updateScreenPosition(): void;
110
+ get centerPosition(): THREE.Vector3;
110
111
  /**
111
112
  * 应用可见性变化
112
113
  */
@@ -5,6 +5,7 @@ import * as THREE from 'three';
5
5
  import type { PartialObjectDeep } from '../../../typings/typings';
6
6
  import type { Tag } from '../..';
7
7
  import type { State as FiveState } from '@realsee/five';
8
+ import type { AnimeParams } from 'animejs';
8
9
  export type MaskTagInterface<C extends TagContentType = TagContentType> = TagInstance<C, 'Mask'>;
9
10
  /**
10
11
  * Mask 类型的标签
@@ -13,13 +14,19 @@ export type MaskTagInterface<C extends TagContentType = TagContentType> = TagIns
13
14
  export declare class MaskTag<C extends TagContentType = TagContentType> extends BaseTag<C, 'Mask'> {
14
15
  /**
15
16
  * Mask 纹理缓存(静态,所有 MaskTag 实例共享)
16
- * key: mask URL, value: { texture: THREE.Texture, refCount: number, abortController?: AbortController }
17
+ * key: mask URL 或 canvas 的 symbol, value: { texture: THREE.Texture, refCount: number, abortController?: AbortController }
17
18
  */
18
19
  private static maskTextureCache;
19
20
  /**
20
- * mask 图片 URL(2:1 全景图格式)
21
+ * Canvas Symbol 的映射(用于缓存 canvas 纹理)
21
22
  */
22
- maskUrl: string;
23
+ private static canvasSymbolMap;
24
+ /** 同点位共用 mesh:key = meshKey(panoIndex + maskKey), value = 共享数据 */
25
+ private static sharedMeshRegistry;
26
+ /**
27
+ * mask 图片 URL 或 Canvas 元素(2:1 全景图格式)
28
+ */
29
+ maskUrl: string | HTMLCanvasElement;
23
30
  /**
24
31
  * 目标颜色(RGB 格式)
25
32
  */
@@ -36,6 +43,10 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
36
43
  * 是否正在加载 mask
37
44
  */
38
45
  private loadingMask;
46
+ /**
47
+ * 资源是否已释放
48
+ */
49
+ private _disposed;
39
50
  /**
40
51
  * 标签样式配置
41
52
  */
@@ -44,21 +55,61 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
44
55
  * 点击事件清理函数
45
56
  */
46
57
  private clickEventDispose?;
58
+ /** 当前 tag 在共享 style 纹理中的下标(color 即 id) */
59
+ private sharedStyleIndex;
60
+ /** 共享 mesh 的 registry key,用于 updateMaskStyle / dispose 查找 entry */
61
+ private _sharedMeshKey;
47
62
  constructor(plugin: PanoTagPluginController, tagData: TagData);
63
+ private getColorKey;
64
+ /** 同点位共用一个 mesh,key 仅用 panoIndex(string/canvas 切换时不会因 key 不同而重复创建) */
65
+ private static getMeshKey;
66
+ /**
67
+ * 初始化/挂载到同点位共享 mesh,用 appendStyleToMaterial 注册本 tag 的 style(color 即 id)
68
+ */
69
+ private initializeMaskMesh;
70
+ /** 构建用于 mergedTexture 的 style 对象(color 作 id),tolerance 0–255 */
71
+ private buildStyleForMaterial;
72
+ private static createSharedMesh;
73
+ /** 仅更新材质中某一 slot 的 style(用于 enable/disable/updateMaskStyle) */
74
+ private updateStyleSlotInMaterial;
75
+ private setupSharedMeshRaycast;
48
76
  /**
49
77
  * 计算法向量
50
78
  * Mask 标签返回向上的法向量(因为是贴在 cube 面上)
51
79
  */
52
80
  computeNormal(): THREE.Vector3;
81
+ /**
82
+ * 不把共享 mesh 作为 blink 目标,闪烁通过本 tag 的 style opacity 动画实现
83
+ */
84
+ protected getAdditionalBlinkTargets(): any | any[] | null;
85
+ /**
86
+ * 闪烁仅针对本 tag:通过改变本 tag 在 merged texture 中的 opacity 实现
87
+ */
88
+ blink(animeConfig?: Partial<AnimeParams>): Promise<void>;
53
89
  /**
54
90
  * 更新标签数据
55
91
  */
56
92
  set(tag: PartialObjectDeep<Tag<C, 'Mask'>>, deepMerge?: boolean): void;
93
+ /** 供 rebuildEntryMaterial 使用:返回当前 tag 的 style 对象 */
94
+ getStyleForMaterial(): {
95
+ color: number[];
96
+ tolerance: number;
97
+ highlightColor: number[];
98
+ opacity: number;
99
+ };
57
100
  /**
58
101
  * 重写 getVisible 方法
59
102
  * Mask 标签仅在当前点位可见
60
103
  */
61
104
  getVisible(fiveState?: Partial<FiveState>): boolean;
105
+ /**
106
+ * 重写 computeVisible 方法
107
+ * 增加 Mask 特有的可见性检查逻辑,用于 whyHide 功能
108
+ */
109
+ protected computeVisible(_fiveState?: Partial<FiveState>): {
110
+ value: boolean;
111
+ reason?: any;
112
+ };
62
113
  /**
63
114
  * 点击事件处理
64
115
  */
@@ -84,7 +135,7 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
84
135
  */
85
136
  updateScreenPosition(): void;
86
137
  /**
87
- * 应用可见性变化
138
+ * 应用可见性变化(通过 style opacity 控制展示,共享 mesh 保持 visible)
88
139
  */
89
140
  applyVisible(): void;
90
141
  /**
@@ -93,19 +144,23 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
93
144
  */
94
145
  private updateMeshTransform;
95
146
  /**
96
- * 初始化 Mask Mesh(使用 Sphere)
147
+ * 步骤1:从材质中解析出 styleList
148
+ * @param {THREE.ShaderMaterial} material - 目标材质
149
+ * @returns {Array} 解析后的 styleList
97
150
  */
98
- private initializeMaskMesh;
151
+ private parseStyleListFromMaterial;
99
152
  /**
100
- * 创建 Sphere mesh(参考 itemMask 实现)
153
+ * 步骤2:更新材质的样式纹理(追加新元素后)
154
+ * @param {THREE.ShaderMaterial} material - 目标材质
155
+ * @param {Array} newStyle - 要追加的新样式对象
101
156
  */
102
- private createSphereMesh;
157
+ private appendStyleToMaterial;
103
158
  /**
104
159
  * 获取 Mask 样式配置(合并用户配置和默认值)
105
160
  */
106
161
  private getMaskStyle;
107
162
  /**
108
- * 设置点击事件
163
+ * 设置点击事件(仅当 raycast 命中本 tag 的 color 时触发)
109
164
  */
110
165
  private setupClickEvents;
111
166
  /**
@@ -113,26 +168,71 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
113
168
  */
114
169
  private cleanupClickEvents;
115
170
  /**
116
- * 重新加载 mask
171
+ * 重新加载 mask 图:从旧点位 mesh 注销,再按新 maskUrl 初始化
117
172
  */
118
173
  private reloadMask;
119
174
  /**
120
- * 更新 mask 样式
175
+ * changeTagById mask 时:只更新共享 mesh 的 texture,不 unregister
176
+ * 有 entry 则换图;无 entry 则走完整初始化
177
+ */
178
+ private updateSharedMeshTexture;
179
+ /**
180
+ * 更新当前 tag 在共享材质中的 style slot(color/style 控制展示)
121
181
  */
122
- private updateMaskStyle;
182
+ updateMaskStyle(): void;
123
183
  /**
124
- * 销毁标签
184
+ * 更新 Canvas 纹理(仅当 maskUrl 为 Canvas 时有效)
185
+ * 当 canvas 内容发生变化时,调用此方法更新渲染
186
+ */
187
+ updateCanvasTexture(): void;
188
+ /**
189
+ * 清理当前标签:从共享材质中删除本 tag 的样式槽,并更新材质;
190
+ * 若该点位已无其他 tag 则销毁 mesh 并释放纹理。
191
+ */
192
+ private disposeMaskResources;
193
+ /**
194
+ * 清理 MaskTag 特有的资源(公开方法)
125
195
  */
126
196
  dispose(): void;
197
+ /**
198
+ * 禁用标签(通过 style opacity=0 隐藏,不拆 mesh)
199
+ */
200
+ disable(): void;
201
+ /**
202
+ * 启用标签(恢复 style 展示)
203
+ */
204
+ enable(): void;
205
+ /**
206
+ * 销毁标签(重写父类方法)
207
+ */
208
+ destroy(): void;
209
+ /**
210
+ * 清除所有点位共享 mesh(重新 load 数据前调用)
211
+ */
212
+ static clearSharedMeshRegistry(): void;
213
+ /**
214
+ * 将 style 列表写入材质(用于重建材质)
215
+ */
216
+ private static writeStyleListToMaterial;
217
+ /**
218
+ * destroy 后重建该点位材质,更新剩余 tag 的 styleIndex
219
+ */
220
+ private static rebuildEntryMaterial;
221
+ /**
222
+ * 获取 mask 的缓存 key
223
+ * @param maskSource mask URL 或 Canvas
224
+ * @returns 缓存 key
225
+ */
226
+ private static getMaskCacheKey;
127
227
  /**
128
228
  * 加载 Mask 纹理(静态方法,支持缓存和引用计数)
129
- * @param maskUrl mask 图片 URL
229
+ * @param maskSource mask 图片 URL 或 Canvas 元素
130
230
  * @returns Promise<THREE.Texture>
131
231
  */
132
232
  private static loadMaskTexture;
133
233
  /**
134
234
  * 释放 Mask 纹理(静态方法)
135
- * @param maskUrl mask 图片 URL
235
+ * @param maskSource mask 图片 URL 或 Canvas 元素
136
236
  */
137
237
  private static releaseMaskTexture;
138
238
  /**
@@ -144,7 +244,7 @@ export declare class MaskTag<C extends TagContentType = TagContentType> extends
144
244
  totalRefCount: number;
145
245
  estimatedMemoryMB: number;
146
246
  cacheEntries: Array<{
147
- url: string;
247
+ source: string;
148
248
  refCount: number;
149
249
  sizeMB: number;
150
250
  }>;
@@ -9,5 +9,8 @@ export declare const maskVertexShader = "\nvarying vec2 vUv;\nvoid main() {\n v
9
9
  /**
10
10
  * Fragment Shader
11
11
  * 实现颜色匹配和高亮渲染逻辑
12
+ * 参考 MosaicPlugin 的边缘检测实现
12
13
  */
13
- export declare const maskFragmentShader = "\n#extension GL_OES_standard_derivatives : enable\n\nvarying vec2 vUv;\nuniform sampler2D map;\nuniform vec4 color;\nuniform float tolerance;\nuniform vec3 highlightColor;\nuniform float opacity;\n\nfloat colorGap(vec3 color1, vec3 color2) {\n float gap = abs(color1.r - color2.r) + abs(color1.g - color2.g) + abs(color1.b - color2.b);\n return gap;\n}\n\nvoid main() {\n vec4 image = texture2D(map, vUv);\n \n // \u8BA1\u7B97\u5F53\u524D\u50CF\u7D20\u4E0E\u76EE\u6807\u989C\u8272\u7684\u5DEE\u5F02\n float gap = colorGap(image.rgb, color.rgb);\n \n // \u6392\u9664\u9ED1\u8272\u50CF\u7D20\n if (image.r == 0.0 && image.g == 0.0 && image.b == 0.0) {\n discard;\n }\n \n // \u4F7F\u7528 fwidth \u8BA1\u7B97\u68AF\u5EA6\uFF0C\u5B9E\u73B0\u5E73\u6ED1\u7684\u989C\u8272\u5339\u914D\u8FB9\u754C\n #ifdef GL_OES_standard_derivatives\n float smoothRange = fwidth(gap) * 3.0;\n #else\n float smoothRange = 0.01;\n #endif\n \n // \u5E73\u6ED1\u7684\u989C\u8272\u5339\u914D\u56E0\u5B50\uFF080-1\uFF09\n float matchFactor = 1.0 - smoothstep(tolerance - smoothRange, tolerance + smoothRange, gap);\n \n if (matchFactor > 0.0) {\n // \u68C0\u6D4B\u8FB9\u7F18\uFF1A\u91C7\u6837\u5468\u56F4\u50CF\u7D20\n float edgeWidth = 0.004;\n \n vec4 colorLeft = texture2D(map, vUv + vec2(-edgeWidth, 0.0));\n vec4 colorRight = texture2D(map, vUv + vec2(edgeWidth, 0.0));\n vec4 colorUp = texture2D(map, vUv + vec2(0.0, -edgeWidth));\n vec4 colorDown = texture2D(map, vUv + vec2(0.0, edgeWidth));\n \n // \u8BA1\u7B97\u8FB9\u7F18\u5F3A\u5EA6\n float edgeStrength = 0.0;\n \n if (colorGap(colorLeft.rgb, color.rgb) >= tolerance || (colorLeft.r == 0.0 && colorLeft.g == 0.0 && colorLeft.b == 0.0)) {\n edgeStrength += 0.25;\n }\n if (colorGap(colorRight.rgb, color.rgb) >= tolerance || (colorRight.r == 0.0 && colorRight.g == 0.0 && colorRight.b == 0.0)) {\n edgeStrength += 0.25;\n }\n if (colorGap(colorUp.rgb, color.rgb) >= tolerance || (colorUp.r == 0.0 && colorUp.g == 0.0 && colorUp.b == 0.0)) {\n edgeStrength += 0.25;\n }\n if (colorGap(colorDown.rgb, color.rgb) >= tolerance || (colorDown.r == 0.0 && colorDown.g == 0.0 && colorDown.b == 0.0)) {\n edgeStrength += 0.25;\n }\n \n // \u8FB9\u7F18\u5E73\u6ED1\u8FC7\u6E21\uFF1AedgeStrength \u8D8A\u5927\u8D8A\u63A5\u8FD1\u8FB9\u7F18\n float alpha = mix(opacity, 1.0, smoothstep(0.0, 0.3, edgeStrength));\n \n // \u5E94\u7528\u5339\u914D\u56E0\u5B50\uFF08\u5E73\u6ED1\u989C\u8272\u8FB9\u754C\uFF09\n alpha *= matchFactor;\n \n gl_FragColor = vec4(highlightColor, alpha);\n } else {\n discard;\n }\n}\n";
14
+ export declare const maskFragmentShader = "\n#define RESOLUTION 2048.0\n\nvarying vec2 vUv;\nuniform sampler2D map;\nuniform vec4 color;\nuniform float tolerance;\nuniform vec3 highlightColor;\nuniform float opacity;\n\nfloat colorGap(vec3 color1, vec3 color2) {\n float gap = abs(color1.r - color2.r) + abs(color1.g - color2.g) + abs(color1.b - color2.b);\n return gap;\n}\n\n// \u5224\u65AD\u50CF\u7D20\u662F\u5426\u5339\u914D\u76EE\u6807\u989C\u8272\nbool isMatchingColor(vec3 pixelColor) {\n // \u6392\u9664\u9ED1\u8272\u50CF\u7D20\n if (pixelColor.r == 0.0 && pixelColor.g == 0.0 && pixelColor.b == 0.0) {\n return false;\n }\n return colorGap(pixelColor, color.rgb) < tolerance;\n}\n\n// \u8FB9\u7F18\u68C0\u6D4B\u51FD\u6570\uFF1A\u53C2\u8003 MosaicPlugin \u5B9E\u73B0\nfloat detectEdge(sampler2D map, vec2 uv) {\n vec4 centerColor = texture2D(map, uv);\n \n // \u5F53\u524D\u50CF\u7D20\u5FC5\u987B\u5339\u914D\u76EE\u6807\u989C\u8272\n if (!isMatchingColor(centerColor.rgb)) {\n return 0.0;\n }\n \n float step = 1.0 / RESOLUTION;\n \n // \u68C0\u67E54\u4E2A\u4E3B\u8981\u65B9\u5411\u7684\u90BB\u5C45\u50CF\u7D20\n vec4 upColor = texture2D(map, uv + vec2(0.0, -step));\n vec4 leftColor = texture2D(map, uv + vec2(-step, 0.0));\n vec4 rightColor = texture2D(map, uv + vec2(step, 0.0));\n vec4 downColor = texture2D(map, uv + vec2(0.0, step));\n \n // \u53EA\u6709\u5F53\u524D\u50CF\u7D20\u5339\u914D\u989C\u8272\uFF0C\u4E14\u81F3\u5C11\u6709\u4E00\u4E2A\u90BB\u5C45\u4E0D\u5339\u914D\u65F6\uFF0C\u624D\u662F\u8FB9\u7F18\n bool hasNonMatchingNeighbor = \n !isMatchingColor(upColor.rgb) || \n !isMatchingColor(leftColor.rgb) || \n !isMatchingColor(rightColor.rgb) || \n !isMatchingColor(downColor.rgb);\n \n return hasNonMatchingNeighbor ? 1.0 : 0.0;\n}\n\nvoid main() {\n vec4 image = texture2D(map, vUv);\n \n // \u6392\u9664\u9ED1\u8272\u50CF\u7D20\n if (image.r == 0.0 && image.g == 0.0 && image.b == 0.0) {\n discard;\n }\n \n // \u8BA1\u7B97\u5F53\u524D\u50CF\u7D20\u4E0E\u76EE\u6807\u989C\u8272\u7684\u5DEE\u5F02\n float gap = colorGap(image.rgb, color.rgb);\n \n // \u4F7F\u7528\u56FA\u5B9A\u5E73\u6ED1\u8303\u56F4\u5B9E\u73B0\u989C\u8272\u5339\u914D\u8FB9\u754C\n float smoothRange = 0.01;\n \n // \u5E73\u6ED1\u7684\u989C\u8272\u5339\u914D\u56E0\u5B50\uFF080-1\uFF09\n float matchFactor = 1.0 - smoothstep(tolerance - smoothRange, tolerance + smoothRange, gap);\n \n if (matchFactor > 0.0) {\n // \u4F7F\u7528\u65B0\u7684\u8FB9\u7F18\u68C0\u6D4B\u65B9\u6CD5\n float isEdge = detectEdge(map, vUv);\n \n // \u8FB9\u7F18\u4F7F\u7528\u5B8C\u5168\u4E0D\u900F\u660E\uFF0C\u5185\u90E8\u4F7F\u7528\u8BBE\u5B9A\u7684\u900F\u660E\u5EA6\n float alpha = mix(opacity, 1.0, isEdge);\n \n // \u5E94\u7528\u5339\u914D\u56E0\u5B50\u5B9E\u73B0\u8FB9\u754C\u5E73\u6ED1\uFF0C\u4F46\u4FDD\u7559\u6700\u5C0F 0.9 \u7684\u900F\u660E\u5EA6\n // \u8FD9\u6837\u5373\u4F7F\u5728\u8FB9\u754C\u5904\u4E5F\u4E0D\u4F1A\u5B8C\u5168\u900F\u660E\uFF0C\u540C\u65F6\u5B8C\u5168\u5339\u914D\u533A\u57DF\u4FDD\u6301\u8BBE\u5B9A\u7684\u900F\u660E\u5EA6\n alpha *= max(matchFactor, 0.9);\n \n gl_FragColor = vec4(highlightColor, alpha);\n } else {\n discard;\n }\n}\n";
15
+ /** 多 style:mergedTexture 中每组 3 像素为 color(id)/tolerance+highlight/opacity,用 color 作 id 匹配 */
16
+ 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";
@@ -28,8 +28,13 @@ declare class PanoTagPluginController extends TagRender {
28
28
  load(data: Tags): Promise<void>;
29
29
  /**
30
30
  * @description 添加标签
31
+ * @param tag 标签或标签数组
32
+ * @param options 可选配置
33
+ * @param options.updateMaskUrl 是否更新 mask。若为 true 且该 panoIndex 已有 Mask 标签,仅更新其 maskUrl(不变 color、style),并添加新标签
31
34
  */
32
- addTag(tag: Tag | Tag[]): Promise<void>;
35
+ addTag(tag: Tag | Tag[], options?: {
36
+ updateMaskUrl?: boolean;
37
+ }): Promise<void>;
33
38
  /**
34
39
  * @description 改变配置
35
40
  */
@@ -103,6 +108,19 @@ declare class PanoTagPluginController extends TagRender {
103
108
  * @description 改变tag任意属性
104
109
  */
105
110
  changeTagById<C extends TagContentType = TagContentType>(id: TagId, tag: PartialObjectDeep<Tag<C>>, deepMerge?: boolean): void;
111
+ /**
112
+ * @description 批量更新指定点位的 Mask 图
113
+ * @param maskUpdates 包含点位索引和对应 mask 的数组
114
+ * @example
115
+ * changeMask([
116
+ * { index: 0, mask: 'https://example.com/mask1.png' },
117
+ * { index: 1, mask: canvasElement }
118
+ * ])
119
+ */
120
+ changeMask(maskUpdates: Array<{
121
+ index: number;
122
+ mask: string | HTMLCanvasElement;
123
+ }>): void;
106
124
  /**
107
125
  * @description 销毁tag
108
126
  */
@@ -189,7 +207,7 @@ declare class PanoTagPluginController extends TagRender {
189
207
  totalRefCount: number;
190
208
  estimatedMemoryMB: number;
191
209
  cacheEntries: {
192
- url: string;
210
+ source: string;
193
211
  refCount: number;
194
212
  sizeMB: number;
195
213
  }[];
@@ -57,8 +57,8 @@ export type Tag<C extends TagContentType = TagContentType, S extends StickType =
57
57
  matrix: number[];
58
58
  } : unknown) & // 模型标签需要模型
59
59
  (S extends 'Mask' ? {
60
- mask: string;
61
- color: [number, number, number] | number;
60
+ mask: string | HTMLCanvasElement;
61
+ color: [number, number, number] | number | string;
62
62
  } : unknown) & {
63
63
  [key: string]: any;
64
64
  };
@@ -107,8 +107,8 @@ export interface TagStyle {
107
107
  };
108
108
  /** Mask 标签样式 */
109
109
  mask?: {
110
- /** 高亮颜色(RGB 数组或十六进制数字) */
111
- color?: [number, number, number] | number;
110
+ /** 高亮颜色(支持 RGB 数组、十六进制数字、#FFFFFF 格式字符串) */
111
+ color?: [number, number, number] | number | string;
112
112
  /** 透明度 0-1,用于填充区域;描边区域始终完全不透明 */
113
113
  opacity?: number;
114
114
  /** 颜色匹配容差(归一化值 0-1,默认 0.001) */
@@ -1,4 +1,12 @@
1
1
  import type { Vector3 } from 'three';
2
- import type { TagInstance } from '../typings';
2
+ import type { TagInstance, BoxPosition } from '../typings';
3
+ /**
4
+ * 计算 BoxPosition 的8个角点
5
+ */
6
+ export declare function getBoxCorners(boxPosition: BoxPosition): Vector3[];
7
+ /**
8
+ * 应用 matrix 变换到点数组
9
+ */
10
+ export declare function applyMatrixToPoints(points: Vector3[], matrix?: number[]): Vector3[];
3
11
  export declare function getTagPosition(tag: TagInstance): Vector3 | [Vector3, Vector3, Vector3, Vector3] | Vector3[];
4
12
  export declare function getTagCenterPosition(tag: TagInstance): Vector3;