@aibee/owlly 1.0.25

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 (500) hide show
  1. package/README.external.md +75 -0
  2. package/README.md +28 -0
  3. package/lib/src/external/lines/line-geometry.d.ts +9 -0
  4. package/lib/src/external/lines/line-geometry.js +52 -0
  5. package/lib/src/external/lines/line-geometry.js.map +1 -0
  6. package/lib/src/external/lines/line-material.d.ts +10 -0
  7. package/lib/src/external/lines/line-material.js +377 -0
  8. package/lib/src/external/lines/line-material.js.map +1 -0
  9. package/lib/src/external/lines/line-segments-2.d.ts +7 -0
  10. package/lib/src/external/lines/line-segments-2.js +144 -0
  11. package/lib/src/external/lines/line-segments-2.js.map +1 -0
  12. package/lib/src/external/lines/line-segments-geometry.d.ts +15 -0
  13. package/lib/src/external/lines/line-segments-geometry.js +141 -0
  14. package/lib/src/external/lines/line-segments-geometry.js.map +1 -0
  15. package/lib/src/external/loaders/gltf-loader.d.ts +77 -0
  16. package/lib/src/external/loaders/gltf-loader.js +2319 -0
  17. package/lib/src/external/loaders/gltf-loader.js.map +1 -0
  18. package/lib/src/external/orbit-controls.d.ts +44 -0
  19. package/lib/src/external/orbit-controls.js +746 -0
  20. package/lib/src/external/orbit-controls.js.map +1 -0
  21. package/lib/src/external/renderers/css-2d-renderer.d.ts +16 -0
  22. package/lib/src/external/renderers/css-2d-renderer.js +122 -0
  23. package/lib/src/external/renderers/css-2d-renderer.js.map +1 -0
  24. package/lib/src/external/renderers/css-3d-renderer.d.ts +18 -0
  25. package/lib/src/external/renderers/css-3d-renderer.js +139 -0
  26. package/lib/src/external/renderers/css-3d-renderer.js.map +1 -0
  27. package/lib/src/external/transform-controls.d.ts +106 -0
  28. package/lib/src/external/transform-controls.js +1113 -0
  29. package/lib/src/external/transform-controls.js.map +1 -0
  30. package/lib/src/external/util/buffer-geometry-utils.d.ts +45 -0
  31. package/lib/src/external/util/buffer-geometry-utils.js +569 -0
  32. package/lib/src/external/util/buffer-geometry-utils.js.map +1 -0
  33. package/lib/src/owlly/controller/aerial-element-controller.d.ts +65 -0
  34. package/lib/src/owlly/controller/aerial-element-controller.js +236 -0
  35. package/lib/src/owlly/controller/aerial-element-controller.js.map +1 -0
  36. package/lib/src/owlly/controller/basic-controller.d.ts +324 -0
  37. package/lib/src/owlly/controller/basic-controller.js +1239 -0
  38. package/lib/src/owlly/controller/basic-controller.js.map +1 -0
  39. package/lib/src/owlly/controller/camera-controller.d.ts +37 -0
  40. package/lib/src/owlly/controller/camera-controller.js +138 -0
  41. package/lib/src/owlly/controller/camera-controller.js.map +1 -0
  42. package/lib/src/owlly/controller/controller.d.ts +61 -0
  43. package/lib/src/owlly/controller/controller.js +24 -0
  44. package/lib/src/owlly/controller/controller.js.map +1 -0
  45. package/lib/src/owlly/controller/index.d.ts +2 -0
  46. package/lib/src/owlly/controller/index.js +14 -0
  47. package/lib/src/owlly/controller/index.js.map +1 -0
  48. package/lib/src/owlly/controller/mouse-indicator-controller.d.ts +34 -0
  49. package/lib/src/owlly/controller/mouse-indicator-controller.js +119 -0
  50. package/lib/src/owlly/controller/mouse-indicator-controller.js.map +1 -0
  51. package/lib/src/owlly/controller/orbit-control.d.ts +147 -0
  52. package/lib/src/owlly/controller/orbit-control.js +265 -0
  53. package/lib/src/owlly/controller/orbit-control.js.map +1 -0
  54. package/lib/src/owlly/controller/panorama-adjust-controller.d.ts +45 -0
  55. package/lib/src/owlly/controller/panorama-adjust-controller.js +158 -0
  56. package/lib/src/owlly/controller/panorama-adjust-controller.js.map +1 -0
  57. package/lib/src/owlly/controller/panorama-controller.d.ts +441 -0
  58. package/lib/src/owlly/controller/panorama-controller.js +1944 -0
  59. package/lib/src/owlly/controller/panorama-controller.js.map +1 -0
  60. package/lib/src/owlly/controller/panorama-transform-controller.d.ts +66 -0
  61. package/lib/src/owlly/controller/panorama-transform-controller.js +137 -0
  62. package/lib/src/owlly/controller/panorama-transform-controller.js.map +1 -0
  63. package/lib/src/owlly/controller/plane-controller.d.ts +43 -0
  64. package/lib/src/owlly/controller/plane-controller.js +174 -0
  65. package/lib/src/owlly/controller/plane-controller.js.map +1 -0
  66. package/lib/src/owlly/controller/texture-controller.d.ts +181 -0
  67. package/lib/src/owlly/controller/texture-controller.js +876 -0
  68. package/lib/src/owlly/controller/texture-controller.js.map +1 -0
  69. package/lib/src/owlly/controller/tile-panorama-controller.d.ts +308 -0
  70. package/lib/src/owlly/controller/tile-panorama-controller.js +1354 -0
  71. package/lib/src/owlly/controller/tile-panorama-controller.js.map +1 -0
  72. package/lib/src/owlly/controller/transform-controller.d.ts +106 -0
  73. package/lib/src/owlly/controller/transform-controller.js +546 -0
  74. package/lib/src/owlly/controller/transform-controller.js.map +1 -0
  75. package/lib/src/owlly/element/bottom-nav-element.d.ts +65 -0
  76. package/lib/src/owlly/element/bottom-nav-element.js +258 -0
  77. package/lib/src/owlly/element/bottom-nav-element.js.map +1 -0
  78. package/lib/src/owlly/element/camera.d.ts +82 -0
  79. package/lib/src/owlly/element/camera.js +284 -0
  80. package/lib/src/owlly/element/camera.js.map +1 -0
  81. package/lib/src/owlly/element/dom-2d-element.d.ts +35 -0
  82. package/lib/src/owlly/element/dom-2d-element.js +49 -0
  83. package/lib/src/owlly/element/dom-2d-element.js.map +1 -0
  84. package/lib/src/owlly/element/dom-3d-element.d.ts +27 -0
  85. package/lib/src/owlly/element/dom-3d-element.js +34 -0
  86. package/lib/src/owlly/element/dom-3d-element.js.map +1 -0
  87. package/lib/src/owlly/element/dom-label-2d.d.ts +116 -0
  88. package/lib/src/owlly/element/dom-label-2d.js +383 -0
  89. package/lib/src/owlly/element/dom-label-2d.js.map +1 -0
  90. package/lib/src/owlly/element/element.d.ts +53 -0
  91. package/lib/src/owlly/element/element.js +76 -0
  92. package/lib/src/owlly/element/element.js.map +1 -0
  93. package/lib/src/owlly/element/floor-model.d.ts +83 -0
  94. package/lib/src/owlly/element/floor-model.js +228 -0
  95. package/lib/src/owlly/element/floor-model.js.map +1 -0
  96. package/lib/src/owlly/element/gif-kit/Gif.d.ts +96 -0
  97. package/lib/src/owlly/element/gif-kit/Gif.js +433 -0
  98. package/lib/src/owlly/element/gif-kit/Gif.js.map +1 -0
  99. package/lib/src/owlly/element/gif-kit/GifColor.d.ts +21 -0
  100. package/lib/src/owlly/element/gif-kit/GifColor.js +38 -0
  101. package/lib/src/owlly/element/gif-kit/GifColor.js.map +1 -0
  102. package/lib/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.d.ts +20 -0
  103. package/lib/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.js +51 -0
  104. package/lib/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.js.map +1 -0
  105. package/lib/src/owlly/element/gif-kit/GifFrame.d.ts +31 -0
  106. package/lib/src/owlly/element/gif-kit/GifFrame.js +97 -0
  107. package/lib/src/owlly/element/gif-kit/GifFrame.js.map +1 -0
  108. package/lib/src/owlly/element/gif-kit/GifImage.d.ts +23 -0
  109. package/lib/src/owlly/element/gif-kit/GifImage.js +8 -0
  110. package/lib/src/owlly/element/gif-kit/GifImage.js.map +1 -0
  111. package/lib/src/owlly/element/gif-kit/GifParser.d.ts +17 -0
  112. package/lib/src/owlly/element/gif-kit/GifParser.js +197 -0
  113. package/lib/src/owlly/element/gif-kit/GifParser.js.map +1 -0
  114. package/lib/src/owlly/element/gif-kit/GifPresenter.d.ts +20 -0
  115. package/lib/src/owlly/element/gif-kit/GifPresenter.js +44 -0
  116. package/lib/src/owlly/element/gif-kit/GifPresenter.js.map +1 -0
  117. package/lib/src/owlly/element/gif-kit/GifVersion.d.ts +10 -0
  118. package/lib/src/owlly/element/gif-kit/GifVersion.js +13 -0
  119. package/lib/src/owlly/element/gif-kit/GifVersion.js.map +1 -0
  120. package/lib/src/owlly/element/gltf-mesh-element.d.ts +31 -0
  121. package/lib/src/owlly/element/gltf-mesh-element.js +137 -0
  122. package/lib/src/owlly/element/gltf-mesh-element.js.map +1 -0
  123. package/lib/src/owlly/element/index.d.ts +20 -0
  124. package/lib/src/owlly/element/index.js +25 -0
  125. package/lib/src/owlly/element/index.js.map +1 -0
  126. package/lib/src/owlly/element/map-kit/area.d.ts +24 -0
  127. package/lib/src/owlly/element/map-kit/area.js +218 -0
  128. package/lib/src/owlly/element/map-kit/area.js.map +1 -0
  129. package/lib/src/owlly/element/map-kit/block-set.d.ts +39 -0
  130. package/lib/src/owlly/element/map-kit/block-set.js +91 -0
  131. package/lib/src/owlly/element/map-kit/block-set.js.map +1 -0
  132. package/lib/src/owlly/element/map-kit/block.d.ts +77 -0
  133. package/lib/src/owlly/element/map-kit/block.js +339 -0
  134. package/lib/src/owlly/element/map-kit/block.js.map +1 -0
  135. package/lib/src/owlly/element/map-kit/index.d.ts +4 -0
  136. package/lib/src/owlly/element/map-kit/index.js +7 -0
  137. package/lib/src/owlly/element/map-kit/index.js.map +1 -0
  138. package/lib/src/owlly/element/map-kit/shape.d.ts +131 -0
  139. package/lib/src/owlly/element/map-kit/shape.js +190 -0
  140. package/lib/src/owlly/element/map-kit/shape.js.map +1 -0
  141. package/lib/src/owlly/element/mesh-element.d.ts +22 -0
  142. package/lib/src/owlly/element/mesh-element.js +64 -0
  143. package/lib/src/owlly/element/mesh-element.js.map +1 -0
  144. package/lib/src/owlly/element/mesh-line-2d.d.ts +82 -0
  145. package/lib/src/owlly/element/mesh-line-2d.js +888 -0
  146. package/lib/src/owlly/element/mesh-line-2d.js.map +1 -0
  147. package/lib/src/owlly/element/meshline-o.d.ts +64 -0
  148. package/lib/src/owlly/element/meshline-o.js +679 -0
  149. package/lib/src/owlly/element/meshline-o.js.map +1 -0
  150. package/lib/src/owlly/element/panorama-group.d.ts +241 -0
  151. package/lib/src/owlly/element/panorama-group.js +967 -0
  152. package/lib/src/owlly/element/panorama-group.js.map +1 -0
  153. package/lib/src/owlly/element/panorama.d.ts +132 -0
  154. package/lib/src/owlly/element/panorama.js +813 -0
  155. package/lib/src/owlly/element/panorama.js.map +1 -0
  156. package/lib/src/owlly/element/path-group.d.ts +69 -0
  157. package/lib/src/owlly/element/path-group.js +172 -0
  158. package/lib/src/owlly/element/path-group.js.map +1 -0
  159. package/lib/src/owlly/element/path.d.ts +99 -0
  160. package/lib/src/owlly/element/path.js +532 -0
  161. package/lib/src/owlly/element/path.js.map +1 -0
  162. package/lib/src/owlly/element/placeable-2d.d.ts +158 -0
  163. package/lib/src/owlly/element/placeable-2d.js +471 -0
  164. package/lib/src/owlly/element/placeable-2d.js.map +1 -0
  165. package/lib/src/owlly/element/polygon-mesh.d.ts +107 -0
  166. package/lib/src/owlly/element/polygon-mesh.js +308 -0
  167. package/lib/src/owlly/element/polygon-mesh.js.map +1 -0
  168. package/lib/src/owlly/element/ring-element.d.ts +79 -0
  169. package/lib/src/owlly/element/ring-element.js +384 -0
  170. package/lib/src/owlly/element/ring-element.js.map +1 -0
  171. package/lib/src/owlly/element/sphere-mesh.d.ts +28 -0
  172. package/lib/src/owlly/element/sphere-mesh.js +70 -0
  173. package/lib/src/owlly/element/sphere-mesh.js.map +1 -0
  174. package/lib/src/owlly/element/svg-floor-model.d.ts +22 -0
  175. package/lib/src/owlly/element/svg-floor-model.js +185 -0
  176. package/lib/src/owlly/element/svg-floor-model.js.map +1 -0
  177. package/lib/src/owlly/element/svg-floors.d.ts +27 -0
  178. package/lib/src/owlly/element/svg-floors.js +110 -0
  179. package/lib/src/owlly/element/svg-floors.js.map +1 -0
  180. package/lib/src/owlly/element/tile-panorama-group.d.ts +335 -0
  181. package/lib/src/owlly/element/tile-panorama-group.js +1007 -0
  182. package/lib/src/owlly/element/tile-panorama-group.js.map +1 -0
  183. package/lib/src/owlly/element/tile-panorama.d.ts +161 -0
  184. package/lib/src/owlly/element/tile-panorama.js +511 -0
  185. package/lib/src/owlly/element/tile-panorama.js.map +1 -0
  186. package/lib/src/owlly/element/tile-plane.d.ts +105 -0
  187. package/lib/src/owlly/element/tile-plane.js +361 -0
  188. package/lib/src/owlly/element/tile-plane.js.map +1 -0
  189. package/lib/src/owlly/element/video-element.d.ts +33 -0
  190. package/lib/src/owlly/element/video-element.js +160 -0
  191. package/lib/src/owlly/element/video-element.js.map +1 -0
  192. package/lib/src/owlly/geometries/ExtrudeGeometry2.d.ts +15 -0
  193. package/lib/src/owlly/geometries/ExtrudeGeometry2.js +211 -0
  194. package/lib/src/owlly/geometries/ExtrudeGeometry2.js.map +1 -0
  195. package/lib/src/owlly/index.d.ts +13 -0
  196. package/lib/src/owlly/index.js +17 -0
  197. package/lib/src/owlly/index.js.map +1 -0
  198. package/lib/src/owlly/overlay/canvas-overlay.d.ts +96 -0
  199. package/lib/src/owlly/overlay/canvas-overlay.js +511 -0
  200. package/lib/src/owlly/overlay/canvas-overlay.js.map +1 -0
  201. package/lib/src/owlly/overlay/css-2d-overlay.d.ts +14 -0
  202. package/lib/src/owlly/overlay/css-2d-overlay.js +36 -0
  203. package/lib/src/owlly/overlay/css-2d-overlay.js.map +1 -0
  204. package/lib/src/owlly/overlay/css-3d-overlay.d.ts +16 -0
  205. package/lib/src/owlly/overlay/css-3d-overlay.js +37 -0
  206. package/lib/src/owlly/overlay/css-3d-overlay.js.map +1 -0
  207. package/lib/src/owlly/overlay/index.d.ts +6 -0
  208. package/lib/src/owlly/overlay/index.js +12 -0
  209. package/lib/src/owlly/overlay/index.js.map +1 -0
  210. package/lib/src/owlly/overlay/label-overlay.d.ts +62 -0
  211. package/lib/src/owlly/overlay/label-overlay.js +329 -0
  212. package/lib/src/owlly/overlay/label-overlay.js.map +1 -0
  213. package/lib/src/owlly/overlay/overlay.d.ts +14 -0
  214. package/lib/src/owlly/overlay/overlay.js +5 -0
  215. package/lib/src/owlly/overlay/overlay.js.map +1 -0
  216. package/lib/src/owlly/overlay/path-overlay.d.ts +39 -0
  217. package/lib/src/owlly/overlay/path-overlay.js +125 -0
  218. package/lib/src/owlly/overlay/path-overlay.js.map +1 -0
  219. package/lib/src/owlly/overlay/path-overlay2.d.ts +35 -0
  220. package/lib/src/owlly/overlay/path-overlay2.js +119 -0
  221. package/lib/src/owlly/overlay/path-overlay2.js.map +1 -0
  222. package/lib/src/owlly/overlay/poi-overlay-3d.d.ts +278 -0
  223. package/lib/src/owlly/overlay/poi-overlay-3d.js +1433 -0
  224. package/lib/src/owlly/overlay/poi-overlay-3d.js.map +1 -0
  225. package/lib/src/owlly/overlay/poi-overlay.d.ts +277 -0
  226. package/lib/src/owlly/overlay/poi-overlay.js +1412 -0
  227. package/lib/src/owlly/overlay/poi-overlay.js.map +1 -0
  228. package/lib/src/owlly/owlly-2d/index.d.ts +28 -0
  229. package/lib/src/owlly/owlly-2d/index.js +93 -0
  230. package/lib/src/owlly/owlly-2d/index.js.map +1 -0
  231. package/lib/src/owlly/screen/index.d.ts +1 -0
  232. package/lib/src/owlly/screen/index.js +2 -0
  233. package/lib/src/owlly/screen/index.js.map +1 -0
  234. package/lib/src/owlly/screen/screen.d.ts +73 -0
  235. package/lib/src/owlly/screen/screen.js +237 -0
  236. package/lib/src/owlly/screen/screen.js.map +1 -0
  237. package/lib/src/owlly/stage/__test__/stage.spec.d.ts +1 -0
  238. package/lib/src/owlly/stage/__test__/stage.spec.js +15 -0
  239. package/lib/src/owlly/stage/__test__/stage.spec.js.map +1 -0
  240. package/lib/src/owlly/stage/externals.d.ts +19 -0
  241. package/lib/src/owlly/stage/externals.js +25 -0
  242. package/lib/src/owlly/stage/externals.js.map +1 -0
  243. package/lib/src/owlly/stage/index.d.ts +4 -0
  244. package/lib/src/owlly/stage/index.js +7 -0
  245. package/lib/src/owlly/stage/index.js.map +1 -0
  246. package/lib/src/owlly/stage/owlly.d.ts +38 -0
  247. package/lib/src/owlly/stage/owlly.js +168 -0
  248. package/lib/src/owlly/stage/owlly.js.map +1 -0
  249. package/lib/src/owlly/stage/stage.d.ts +108 -0
  250. package/lib/src/owlly/stage/stage.js +235 -0
  251. package/lib/src/owlly/stage/stage.js.map +1 -0
  252. package/lib/src/owlly/utils/alignment-utils.d.ts +20 -0
  253. package/lib/src/owlly/utils/alignment-utils.js +64 -0
  254. package/lib/src/owlly/utils/alignment-utils.js.map +1 -0
  255. package/lib/src/owlly/utils/basic-calc.d.ts +18 -0
  256. package/lib/src/owlly/utils/basic-calc.js +130 -0
  257. package/lib/src/owlly/utils/basic-calc.js.map +1 -0
  258. package/lib/src/owlly/utils/basic-tools.d.ts +71 -0
  259. package/lib/src/owlly/utils/basic-tools.js +236 -0
  260. package/lib/src/owlly/utils/basic-tools.js.map +1 -0
  261. package/lib/src/owlly/utils/bvh-tree.d.ts +105 -0
  262. package/lib/src/owlly/utils/bvh-tree.js +540 -0
  263. package/lib/src/owlly/utils/bvh-tree.js.map +1 -0
  264. package/lib/src/owlly/utils/camera.d.ts +37 -0
  265. package/lib/src/owlly/utils/camera.js +51 -0
  266. package/lib/src/owlly/utils/camera.js.map +1 -0
  267. package/lib/src/owlly/utils/cube-texture-cache.d.ts +25 -0
  268. package/lib/src/owlly/utils/cube-texture-cache.js +144 -0
  269. package/lib/src/owlly/utils/cube-texture-cache.js.map +1 -0
  270. package/lib/src/owlly/utils/device-utils.d.ts +18 -0
  271. package/lib/src/owlly/utils/device-utils.js +42 -0
  272. package/lib/src/owlly/utils/device-utils.js.map +1 -0
  273. package/lib/src/owlly/utils/environment-utils.d.ts +37 -0
  274. package/lib/src/owlly/utils/environment-utils.js +74 -0
  275. package/lib/src/owlly/utils/environment-utils.js.map +1 -0
  276. package/lib/src/owlly/utils/event-hub.d.ts +50 -0
  277. package/lib/src/owlly/utils/event-hub.js +107 -0
  278. package/lib/src/owlly/utils/event-hub.js.map +1 -0
  279. package/lib/src/owlly/utils/events.d.ts +219 -0
  280. package/lib/src/owlly/utils/events.js +220 -0
  281. package/lib/src/owlly/utils/events.js.map +1 -0
  282. package/lib/src/owlly/utils/geometry-utils.d.ts +119 -0
  283. package/lib/src/owlly/utils/geometry-utils.js +623 -0
  284. package/lib/src/owlly/utils/geometry-utils.js.map +1 -0
  285. package/lib/src/owlly/utils/helper.d.ts +6 -0
  286. package/lib/src/owlly/utils/helper.js +25 -0
  287. package/lib/src/owlly/utils/helper.js.map +1 -0
  288. package/lib/src/owlly/utils/index.d.ts +14 -0
  289. package/lib/src/owlly/utils/index.js +18 -0
  290. package/lib/src/owlly/utils/index.js.map +1 -0
  291. package/lib/src/owlly/utils/lru-cache.d.ts +26 -0
  292. package/lib/src/owlly/utils/lru-cache.js +110 -0
  293. package/lib/src/owlly/utils/lru-cache.js.map +1 -0
  294. package/lib/src/owlly/utils/map-utils.d.ts +7 -0
  295. package/lib/src/owlly/utils/map-utils.js +53 -0
  296. package/lib/src/owlly/utils/map-utils.js.map +1 -0
  297. package/lib/src/owlly/utils/number-utils.d.ts +8 -0
  298. package/lib/src/owlly/utils/number-utils.js +73 -0
  299. package/lib/src/owlly/utils/number-utils.js.map +1 -0
  300. package/lib/src/owlly/utils/panorama-model-util.d.ts +46 -0
  301. package/lib/src/owlly/utils/panorama-model-util.js +246 -0
  302. package/lib/src/owlly/utils/panorama-model-util.js.map +1 -0
  303. package/lib/src/owlly/utils/path-utils.d.ts +80 -0
  304. package/lib/src/owlly/utils/path-utils.js +729 -0
  305. package/lib/src/owlly/utils/path-utils.js.map +1 -0
  306. package/lib/src/owlly/utils/svgutils.d.ts +138 -0
  307. package/lib/src/owlly/utils/svgutils.js +562 -0
  308. package/lib/src/owlly/utils/svgutils.js.map +1 -0
  309. package/lib/src/owlly/utils/texture-cache.d.ts +29 -0
  310. package/lib/src/owlly/utils/texture-cache.js +116 -0
  311. package/lib/src/owlly/utils/texture-cache.js.map +1 -0
  312. package/lib/src/owlly/utils/tile-util.d.ts +187 -0
  313. package/lib/src/owlly/utils/tile-util.js +457 -0
  314. package/lib/src/owlly/utils/tile-util.js.map +1 -0
  315. package/lib/src/owlly/utils/time-profiler.d.ts +21 -0
  316. package/lib/src/owlly/utils/time-profiler.js +49 -0
  317. package/lib/src/owlly/utils/time-profiler.js.map +1 -0
  318. package/lib/src/owlly/view/__test__/perspective-view.spec.d.ts +0 -0
  319. package/lib/src/owlly/view/__test__/perspective-view.spec.js +22 -0
  320. package/lib/src/owlly/view/__test__/perspective-view.spec.js.map +1 -0
  321. package/lib/src/owlly/view/camera-view.d.ts +35 -0
  322. package/lib/src/owlly/view/camera-view.js +102 -0
  323. package/lib/src/owlly/view/camera-view.js.map +1 -0
  324. package/lib/src/owlly/view/index.d.ts +3 -0
  325. package/lib/src/owlly/view/index.js +6 -0
  326. package/lib/src/owlly/view/index.js.map +1 -0
  327. package/lib/src/owlly/view/orthographic-view.d.ts +40 -0
  328. package/lib/src/owlly/view/orthographic-view.js +95 -0
  329. package/lib/src/owlly/view/orthographic-view.js.map +1 -0
  330. package/lib/src/owlly/view/perspective-view.d.ts +40 -0
  331. package/lib/src/owlly/view/perspective-view.js +96 -0
  332. package/lib/src/owlly/view/perspective-view.js.map +1 -0
  333. package/lib/src/owlly/view/svg-map-view.d.ts +46 -0
  334. package/lib/src/owlly/view/svg-map-view.js +145 -0
  335. package/lib/src/owlly/view/svg-map-view.js.map +1 -0
  336. package/lib/src/owlly/view/view.d.ts +146 -0
  337. package/lib/src/owlly/view/view.js +318 -0
  338. package/lib/src/owlly/view/view.js.map +1 -0
  339. package/lib/src/web/main.centroid.d.ts +0 -0
  340. package/lib/src/web/main.centroid.js +74 -0
  341. package/lib/src/web/main.centroid.js.map +1 -0
  342. package/lib/src/web/main.hyma.meshline2d.d.ts +1 -0
  343. package/lib/src/web/main.hyma.meshline2d.js +76 -0
  344. package/lib/src/web/main.hyma.meshline2d.js.map +1 -0
  345. package/lib/src/web/main.jyfang.sample.d.ts +0 -0
  346. package/lib/src/web/main.jyfang.sample.js +122 -0
  347. package/lib/src/web/main.jyfang.sample.js.map +1 -0
  348. package/lib/src/web/main.rpeng.extrude.d.ts +1 -0
  349. package/lib/src/web/main.rpeng.extrude.js +180 -0
  350. package/lib/src/web/main.rpeng.extrude.js.map +1 -0
  351. package/lib/src/web/main.rpeng.mes.plane.d.ts +1 -0
  352. package/lib/src/web/main.rpeng.mes.plane.js +135 -0
  353. package/lib/src/web/main.rpeng.mes.plane.js.map +1 -0
  354. package/lib/src/web/main.rpeng.sample.d.ts +0 -0
  355. package/lib/src/web/main.rpeng.sample.js +318 -0
  356. package/lib/src/web/main.rpeng.sample.js.map +1 -0
  357. package/lib/src/web/main.rpeng.vr.d.ts +1 -0
  358. package/lib/src/web/main.rpeng.vr.js +141 -0
  359. package/lib/src/web/main.rpeng.vr.js.map +1 -0
  360. package/lib/src/web/main.sample.d.ts +1 -0
  361. package/lib/src/web/main.sample.js +52 -0
  362. package/lib/src/web/main.sample.js.map +1 -0
  363. package/lib/src/web/quattree.hyma.d.ts +0 -0
  364. package/lib/src/web/quattree.hyma.js +150 -0
  365. package/lib/src/web/quattree.hyma.js.map +1 -0
  366. package/lib/src/web/sensor-vr-plugin.d.ts +0 -0
  367. package/lib/src/web/sensor-vr-plugin.js +166 -0
  368. package/lib/src/web/sensor-vr-plugin.js.map +1 -0
  369. package/package.json +142 -0
  370. package/src/@types/SceneUtils.d.ts +9 -0
  371. package/src/@types/chaikin-smooth.d.ts +5 -0
  372. package/src/@types/global.d.ts +3 -0
  373. package/src/@types/snapsvg.d.ts +11 -0
  374. package/src/@types/svgson.d.ts +30 -0
  375. package/src/assets/favicon.ico +0 -0
  376. package/src/external/lines/line-geometry.ts +70 -0
  377. package/src/external/lines/line-material.ts +453 -0
  378. package/src/external/lines/line-segments-2.ts +194 -0
  379. package/src/external/lines/line-segments-geometry.ts +197 -0
  380. package/src/external/loaders/gltf-loader.ts +3004 -0
  381. package/src/external/orbit-controls.ts +1070 -0
  382. package/src/external/renderers/css-2d-renderer.ts +185 -0
  383. package/src/external/renderers/css-3d-renderer.ts +245 -0
  384. package/src/external/transform-controls.ts +1532 -0
  385. package/src/external/util/buffer-geometry-utils.ts +783 -0
  386. package/src/owlly/controller/aerial-element-controller.ts +277 -0
  387. package/src/owlly/controller/basic-controller.ts +1509 -0
  388. package/src/owlly/controller/camera-controller.ts +155 -0
  389. package/src/owlly/controller/controller.ts +76 -0
  390. package/src/owlly/controller/index.ts +15 -0
  391. package/src/owlly/controller/mouse-indicator-controller.ts +157 -0
  392. package/src/owlly/controller/orbit-control.ts +310 -0
  393. package/src/owlly/controller/panorama-adjust-controller.ts +183 -0
  394. package/src/owlly/controller/panorama-controller.ts +2234 -0
  395. package/src/owlly/controller/panorama-transform-controller.ts +151 -0
  396. package/src/owlly/controller/plane-controller.ts +222 -0
  397. package/src/owlly/controller/texture-controller.ts +949 -0
  398. package/src/owlly/controller/tile-panorama-controller.ts +1633 -0
  399. package/src/owlly/controller/transform-controller.ts +684 -0
  400. package/src/owlly/element/bottom-nav-element.ts +352 -0
  401. package/src/owlly/element/camera.ts +389 -0
  402. package/src/owlly/element/dom-2d-element.ts +88 -0
  403. package/src/owlly/element/dom-3d-element.ts +87 -0
  404. package/src/owlly/element/dom-label-2d.ts +497 -0
  405. package/src/owlly/element/element.ts +117 -0
  406. package/src/owlly/element/floor-model.ts +290 -0
  407. package/src/owlly/element/gif-kit/Gif.ts +509 -0
  408. package/src/owlly/element/gif-kit/GifColor.ts +44 -0
  409. package/src/owlly/element/gif-kit/GifCompressedCodesToByteArrayConverter.ts +56 -0
  410. package/src/owlly/element/gif-kit/GifFrame.ts +207 -0
  411. package/src/owlly/element/gif-kit/GifImage.ts +26 -0
  412. package/src/owlly/element/gif-kit/GifParser.ts +254 -0
  413. package/src/owlly/element/gif-kit/GifPresenter.ts +46 -0
  414. package/src/owlly/element/gif-kit/GifVersion.ts +12 -0
  415. package/src/owlly/element/gltf-mesh-element.ts +184 -0
  416. package/src/owlly/element/index.ts +25 -0
  417. package/src/owlly/element/map-kit/area.ts +232 -0
  418. package/src/owlly/element/map-kit/block-set.ts +102 -0
  419. package/src/owlly/element/map-kit/block.ts +417 -0
  420. package/src/owlly/element/map-kit/index.ts +6 -0
  421. package/src/owlly/element/map-kit/shape.ts +285 -0
  422. package/src/owlly/element/mesh-element.ts +94 -0
  423. package/src/owlly/element/mesh-line-2d.ts +1032 -0
  424. package/src/owlly/element/meshline-o.ts +802 -0
  425. package/src/owlly/element/panorama-group.ts +1250 -0
  426. package/src/owlly/element/panorama.ts +1044 -0
  427. package/src/owlly/element/path-group.ts +212 -0
  428. package/src/owlly/element/path.ts +727 -0
  429. package/src/owlly/element/placeable-2d.ts +627 -0
  430. package/src/owlly/element/polygon-mesh.ts +344 -0
  431. package/src/owlly/element/ring-element.ts +517 -0
  432. package/src/owlly/element/sphere-mesh.ts +96 -0
  433. package/src/owlly/element/svg-floor-model.ts +200 -0
  434. package/src/owlly/element/svg-floors.ts +121 -0
  435. package/src/owlly/element/tile-panorama-group.ts +1314 -0
  436. package/src/owlly/element/tile-panorama.ts +636 -0
  437. package/src/owlly/element/tile-plane.ts +430 -0
  438. package/src/owlly/element/video-element.ts +190 -0
  439. package/src/owlly/geometries/ExtrudeGeometry2.ts +255 -0
  440. package/src/owlly/index.ts +19 -0
  441. package/src/owlly/overlay/canvas-overlay.ts +642 -0
  442. package/src/owlly/overlay/css-2d-overlay.ts +48 -0
  443. package/src/owlly/overlay/css-3d-overlay.ts +50 -0
  444. package/src/owlly/overlay/index.ts +11 -0
  445. package/src/owlly/overlay/label-overlay.ts +419 -0
  446. package/src/owlly/overlay/overlay.ts +17 -0
  447. package/src/owlly/overlay/path-overlay.ts +170 -0
  448. package/src/owlly/overlay/path-overlay2.ts +149 -0
  449. package/src/owlly/overlay/poi-overlay-3d.ts +1759 -0
  450. package/src/owlly/overlay/poi-overlay.ts +1739 -0
  451. package/src/owlly/owlly-2d/index.ts +108 -0
  452. package/src/owlly/screen/index.ts +1 -0
  453. package/src/owlly/screen/screen.ts +323 -0
  454. package/src/owlly/stage/__test__/stage.spec.ts +15 -0
  455. package/src/owlly/stage/externals.ts +45 -0
  456. package/src/owlly/stage/index.ts +12 -0
  457. package/src/owlly/stage/owlly.ts +223 -0
  458. package/src/owlly/stage/stage.ts +274 -0
  459. package/src/owlly/utils/alignment-utils.ts +84 -0
  460. package/src/owlly/utils/basic-calc.ts +141 -0
  461. package/src/owlly/utils/basic-tools.ts +286 -0
  462. package/src/owlly/utils/bvh-tree.ts +695 -0
  463. package/src/owlly/utils/camera.ts +72 -0
  464. package/src/owlly/utils/cube-texture-cache.ts +155 -0
  465. package/src/owlly/utils/device-utils.ts +53 -0
  466. package/src/owlly/utils/environment-utils.ts +81 -0
  467. package/src/owlly/utils/event-hub.ts +120 -0
  468. package/src/owlly/utils/events.ts +266 -0
  469. package/src/owlly/utils/geometry-utils.ts +749 -0
  470. package/src/owlly/utils/helper.ts +33 -0
  471. package/src/owlly/utils/index.ts +17 -0
  472. package/src/owlly/utils/lru-cache.ts +126 -0
  473. package/src/owlly/utils/map-utils.ts +55 -0
  474. package/src/owlly/utils/number-utils.ts +75 -0
  475. package/src/owlly/utils/panorama-model-util.ts +255 -0
  476. package/src/owlly/utils/path-utils.ts +837 -0
  477. package/src/owlly/utils/svgutils.ts +732 -0
  478. package/src/owlly/utils/texture-cache.ts +132 -0
  479. package/src/owlly/utils/tile-util.ts +563 -0
  480. package/src/owlly/utils/time-profiler.ts +57 -0
  481. package/src/owlly/view/__test__/perspective-view.spec.ts +23 -0
  482. package/src/owlly/view/camera-view.ts +114 -0
  483. package/src/owlly/view/index.ts +5 -0
  484. package/src/owlly/view/orthographic-view.ts +124 -0
  485. package/src/owlly/view/perspective-view.ts +125 -0
  486. package/src/owlly/view/svg-map-view.ts +187 -0
  487. package/src/owlly/view/view.ts +409 -0
  488. package/src/public/js/jsmpeg.min.js +3129 -0
  489. package/src/web/index.html +52 -0
  490. package/src/web/main.centroid.ts +85 -0
  491. package/src/web/main.hyma.meshline2d.ts +84 -0
  492. package/src/web/main.jyfang.sample.ts +139 -0
  493. package/src/web/main.rpeng.extrude.ts +194 -0
  494. package/src/web/main.rpeng.mes.plane.ts +161 -0
  495. package/src/web/main.rpeng.sample.ts +345 -0
  496. package/src/web/main.rpeng.vr.ts +159 -0
  497. package/src/web/main.sample.ts +59 -0
  498. package/src/web/quattree.hyma.ts +163 -0
  499. package/src/web/sensor-vr-plugin.ts +201 -0
  500. package/src/web/testPixel.png +0 -0
@@ -0,0 +1,876 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /* eslint-disable no-continue */
11
+ /* eslint-disable no-await-in-loop */
12
+ import { Externals } from '../stage/externals';
13
+ import { Controller } from '..';
14
+ import { getTextPixel, TEXT_SEGMENT, TileUtil, TEXT_MAX, USE_CANVAS, USE_TEXTURE_BLACK, CubeFaceConfig, } from '../utils/tile-util';
15
+ class TextureEventEnum {
16
+ }
17
+ TextureEventEnum.TEXTURE_UPDATE = 'texture.update';
18
+ // const SHOW_CANVAS = false;
19
+ const DELETE_TIME = 30 * 60;
20
+ class TextureController extends Controller {
21
+ // public initMap: Map<string, TileTextureInfo>;
22
+ // public isTest: boolean;
23
+ constructor() {
24
+ super();
25
+ // console.log('texture-contorller', 'constructor');
26
+ this.textures = [];
27
+ this.textureInfoIds = [];
28
+ this.addingMap = new Map();
29
+ this.deletingMap = new Map();
30
+ // this.initMap = new Map<string, TileTextureInfo>();
31
+ this.loadingMap = new Map();
32
+ this.loadedMap = new Map();
33
+ this.loadedImageDataMap = new Map();
34
+ this.textureMap = new Map();
35
+ this.loadedImageDataMap2 = new Map();
36
+ this.context2ds = [];
37
+ }
38
+ /**
39
+ * 获取2d context
40
+ */
41
+ get ctx() {
42
+ if (!this._ctx) {
43
+ const ctx = this.getNewContext2d(getTextPixel());
44
+ if (ctx) {
45
+ this._ctx = ctx;
46
+ }
47
+ }
48
+ return this._ctx;
49
+ }
50
+ /**
51
+ * 获取固定大小的context2d
52
+ * @param size
53
+ * @returns
54
+ */
55
+ getNewContext2d(size) {
56
+ // console.log('texture-contorller', 'getNewContext2d');
57
+ const canvas = document.createElement('canvas');
58
+ canvas.width = size;
59
+ canvas.height = size;
60
+ // if (SHOW_CANVAS) {
61
+ // const cantainer = document.getElementById('container');
62
+ // if (cantainer) {
63
+ // cantainer.appendChild(canvas);
64
+ // }
65
+ // }
66
+ const ctx = canvas.getContext('2d');
67
+ return ctx;
68
+ }
69
+ /**
70
+ * 获取context2d
71
+ * @param index
72
+ * @returns
73
+ */
74
+ getContext2d(index) {
75
+ // console.log('texture-contorller', 'getContext2d');
76
+ let ctx = this.context2ds[index];
77
+ if (!ctx) {
78
+ const newCtx = this.getNewContext2d(getTextPixel() * TEXT_SEGMENT);
79
+ if (newCtx) {
80
+ ctx = this.context2ds[index] = newCtx;
81
+ }
82
+ }
83
+ return ctx;
84
+ }
85
+ /**
86
+ * 绑定视图
87
+ * @param view 视图
88
+ */
89
+ bindView(view) {
90
+ this.view = view;
91
+ }
92
+ /**
93
+ * 添加纹理信息
94
+ * @param info 纹理信息
95
+ */
96
+ addTexture(info) {
97
+ const id = info.id;
98
+ // console.log('addTexture', id);
99
+ if (this.textureMap.has(id)) {
100
+ if (this.deletingMap.has(id)) {
101
+ this.deletingMap.delete(id);
102
+ }
103
+ }
104
+ else if (this.loadingMap.has(id)) {
105
+ this.loadingMap.set(id, info);
106
+ }
107
+ else if (this.loadedMap.has(id)) {
108
+ this.loadedMap.set(id, info);
109
+ }
110
+ else {
111
+ this.addingMap.set(id, info);
112
+ }
113
+ }
114
+ /**
115
+ * 根据pid获取已加载纹理的一个立方体纹理
116
+ * @ignore
117
+ * @param pid
118
+ * @returns
119
+ */
120
+ getCubeTextureByPid(pid) {
121
+ const ref = [];
122
+ const { loadedImageDataMap, loadedImageDataMap2 } = this;
123
+ CubeFaceConfig.forEach((config) => {
124
+ const id = TileUtil.getTileInfoId(pid + (config.face + 1) / 10, 0, 0);
125
+ if (USE_CANVAS) {
126
+ const img = loadedImageDataMap2.get(id);
127
+ if (img) {
128
+ ref.push(img);
129
+ }
130
+ }
131
+ else {
132
+ const imgData = loadedImageDataMap.get(id);
133
+ if (imgData) {
134
+ ref.push(imgData);
135
+ }
136
+ }
137
+ });
138
+ const { THREE } = Externals.getInstance();
139
+ if (ref.length === 6) {
140
+ const cubeText = new THREE.CubeTexture(ref);
141
+ cubeText.needsUpdate = true;
142
+ return cubeText;
143
+ }
144
+ return null;
145
+ }
146
+ /**
147
+ * 初始化纹理信息
148
+ * @ignore
149
+ * @param infos
150
+ * @returns 0为初始化失败,1为初始化成功
151
+ */
152
+ initTextures(infos) {
153
+ return __awaiter(this, void 0, void 0, function* () {
154
+ // console.log('texture-contorller', 'initTexture');
155
+ const initMap = new Map();
156
+ for (let i = 0; i < infos.length; i++) {
157
+ const info = infos[i];
158
+ const id = info.id;
159
+ if (!this.addingMap.has(id)) {
160
+ if (this.deletingMap.has(id)) {
161
+ initMap.set(id, info);
162
+ this.deletingMap.delete(id);
163
+ }
164
+ else if (!this.textureMap.has(id)) {
165
+ // this.addingMap.set(id, info);
166
+ initMap.set(id, info);
167
+ }
168
+ }
169
+ else {
170
+ initMap.set(id, info);
171
+ this.addingMap.delete(id);
172
+ }
173
+ }
174
+ let res = 1;
175
+ if (initMap.size) {
176
+ res = yield this.initTexturesAsync(initMap);
177
+ }
178
+ if (res) {
179
+ // console.log('texture-contorller', 'initTexture', 1);
180
+ while (initMap.size) {
181
+ const updates = [];
182
+ const deletes = [];
183
+ // console.log('texture-contorller', 'initTexture', 2);
184
+ const isUpdate = this.updateTextures(updates, deletes, initMap);
185
+ // console.log('texture-contorller', 'initTexture', updates, deletes, isUpdate, 3);
186
+ if (isUpdate) {
187
+ this.emit(TextureEventEnum.TEXTURE_UPDATE, updates, deletes);
188
+ }
189
+ // console.log('texture-contorller', 'initTexture', 4);
190
+ }
191
+ }
192
+ return res;
193
+ });
194
+ }
195
+ /**
196
+ * 删除纹理map
197
+ * @param map 要删除的信息图
198
+ * @param deleteFrize 是否删除冻结信息
199
+ */
200
+ deteteTextureMap(map, deleteFrize) {
201
+ // console.log('texture-contorller', 'deleteTexture');
202
+ map.forEach((info) => {
203
+ this.deleteTexture(info, deleteFrize);
204
+ });
205
+ }
206
+ /**
207
+ * 删除纹理
208
+ * @param info 纹理信息
209
+ * @param deleteFrize 是否删除冻结信息
210
+ */
211
+ deleteTexture(info, deleteFrize) {
212
+ // console.log('texture-contorller', 'deleteTexture');
213
+ const id = info.id;
214
+ if (!this.deletingMap.has(id)) {
215
+ if (this.addingMap.has(id)) {
216
+ this.addingMap.delete(id);
217
+ }
218
+ else if (this.loadingMap.has(id)) {
219
+ this.loadingMap.delete(id);
220
+ }
221
+ else if (this.loadedMap.has(id)) {
222
+ this.loadedMap.delete(id);
223
+ this.loadedImageDataMap.delete(id);
224
+ }
225
+ else if (this.textureMap.has(id)) {
226
+ info.time = 0;
227
+ if (deleteFrize || !info.frize) {
228
+ this.deletingMap.set(id, info);
229
+ }
230
+ }
231
+ }
232
+ }
233
+ /**
234
+ * 获取纹理信息列表
235
+ * @returns
236
+ */
237
+ getTextureInfos() {
238
+ // console.log('texture-contorller', 'getTextureInfos');
239
+ const ts = [];
240
+ for (let i = 0; i < this.textures.length; i++) {
241
+ const infoIds = this.textureInfoIds[i];
242
+ for (let j = 0; j < infoIds.length; j++) {
243
+ if (infoIds[j]) {
244
+ const info = this.textureMap.get(infoIds[j]);
245
+ if (info) {
246
+ ts.push(info);
247
+ }
248
+ }
249
+ }
250
+ }
251
+ return ts;
252
+ }
253
+ /**
254
+ * 异步加载纹理
255
+ */
256
+ loadTexturesAsync() {
257
+ return __awaiter(this, void 0, void 0, function* () {
258
+ // console.log('texture-contorller', 'loadTexturesAsync');
259
+ if (!this.loading) {
260
+ const { addingMap, loadingMap, loadedMap, loadedImageDataMap, loadedImageDataMap2, } = this;
261
+ const addings = Array.from(addingMap);
262
+ addings.sort((adding1, adding2) => adding1[1].centerDis - adding2[1].centerDis);
263
+ while (addings[0]) {
264
+ const adding = addings.shift();
265
+ if (!adding)
266
+ continue;
267
+ const infoKey = adding[0];
268
+ if (!infoKey)
269
+ continue;
270
+ if (adding) {
271
+ const info = addingMap.get(infoKey);
272
+ if (info) {
273
+ addingMap.delete(infoKey);
274
+ loadingMap.set(infoKey, info);
275
+ const imgInfo = TileUtil.getImageInfo(info);
276
+ if (USE_CANVAS) {
277
+ // eslint-disable-next-line no-await-in-loop
278
+ const image = yield this.loadImgAsync2(imgInfo.url);
279
+ if (loadingMap.has(infoKey)) {
280
+ loadingMap.delete(infoKey);
281
+ loadedMap.set(infoKey, info);
282
+ loadedImageDataMap2.set(infoKey, image);
283
+ }
284
+ }
285
+ else {
286
+ // eslint-disable-next-line no-await-in-loop
287
+ const imgData = yield this.loadImgAsync(imgInfo.url);
288
+ if (imgData) {
289
+ if (loadingMap.has(infoKey)) {
290
+ loadingMap.delete(infoKey);
291
+ loadedMap.set(infoKey, info);
292
+ loadedImageDataMap.set(infoKey, imgData);
293
+ }
294
+ }
295
+ }
296
+ }
297
+ }
298
+ }
299
+ this.loading = false;
300
+ }
301
+ });
302
+ }
303
+ /**
304
+ * 异步初始化纹理
305
+ * @param infoMap 纹理信息图
306
+ * @returns 0为初始化失败,1为初始化成功
307
+ */
308
+ initTexturesAsync(infoMap) {
309
+ return __awaiter(this, void 0, void 0, function* () {
310
+ return new Promise((resolve) => {
311
+ const { loadedImageDataMap, loadedImageDataMap2 } = this;
312
+ const keys = Array.from(infoMap.keys());
313
+ const count = keys.length;
314
+ if (count < 1) {
315
+ resolve();
316
+ }
317
+ let index = 0;
318
+ const success = () => {
319
+ index++;
320
+ if (index >= count) {
321
+ resolve(1);
322
+ }
323
+ };
324
+ const error = () => {
325
+ // eslint-disable-next-line prefer-promise-reject-errors
326
+ resolve(0);
327
+ };
328
+ for (let i = 0; i < count; i++) {
329
+ const infoKey = keys[i];
330
+ const info = infoMap.get(infoKey);
331
+ if (info) {
332
+ const imgInfo = TileUtil.getImageInfo(info);
333
+ const url = imgInfo.url;
334
+ if (USE_CANVAS) {
335
+ this.loadImgAsync2(url).then((img) => {
336
+ loadedImageDataMap2.set(infoKey, img);
337
+ success();
338
+ }).catch(error);
339
+ }
340
+ else {
341
+ this.loadImgAsync(url).then((imgData) => {
342
+ loadedImageDataMap.set(infoKey, imgData);
343
+ success();
344
+ }).catch(error);
345
+ }
346
+ }
347
+ }
348
+ });
349
+ });
350
+ }
351
+ /**
352
+ * 根据pid删除纹理
353
+ * @param pid
354
+ * @param deleteFrize
355
+ */
356
+ deleteTexturesByPid(pid, deleteFrize) {
357
+ const idStart = `${pid}.`;
358
+ const { textureInfoIds, textureMap, addingMap, deletingMap, loadedImageDataMap, loadedMap, loadingMap, } = this;
359
+ // console.log('delete pid', pid);
360
+ // console.log('delete before', Array.from(textureMap.keys()));
361
+ textureMap.forEach((info, id) => {
362
+ if (id.startsWith(idStart)) {
363
+ if (deleteFrize || !info.frize) {
364
+ const { x, y } = TileUtil.getXY(info.textureIndex, 100);
365
+ delete textureInfoIds[y][x];
366
+ textureMap.delete(id);
367
+ if (loadedImageDataMap.has(id)) {
368
+ this.loadedImageDataMap.delete(id);
369
+ }
370
+ }
371
+ }
372
+ });
373
+ // console.log('delete after', Array.from(textureMap.keys()));
374
+ addingMap.forEach((info, id) => {
375
+ if (id.startsWith(idStart)) {
376
+ if (deleteFrize || !info.frize) {
377
+ addingMap.delete(id);
378
+ }
379
+ }
380
+ });
381
+ // console.log('addingmap', Array.from(addingMap.keys()));
382
+ deletingMap.forEach((info, id) => {
383
+ if (id.startsWith(idStart)) {
384
+ if (deleteFrize || !info.frize) {
385
+ deletingMap.delete(id);
386
+ }
387
+ }
388
+ });
389
+ // console.log('deletingMap', Array.from(deletingMap.keys()));
390
+ loadedMap.forEach((info, id) => {
391
+ if (id.startsWith(idStart)) {
392
+ if (deleteFrize || !info.frize) {
393
+ loadedMap.delete(id);
394
+ loadedImageDataMap.delete(id);
395
+ }
396
+ }
397
+ });
398
+ // console.log('loadedMap', Array.from(loadedMap.keys()));
399
+ loadingMap.forEach((info, id) => {
400
+ if (id.startsWith(idStart)) {
401
+ if (deleteFrize || !info.frize) {
402
+ loadingMap.delete(id);
403
+ }
404
+ }
405
+ });
406
+ // console.log('loadingMap', Array.from(loadingMap.keys()));
407
+ }
408
+ /**
409
+ * 更新纹理信息
410
+ * @param updates 更新列表,外部传入
411
+ * @param deletes 删除列表,外部传入
412
+ * @param initMap 初始化加载图
413
+ * @returns
414
+ */
415
+ updateTextures(updates, deletes, initMap) {
416
+ // console.log('texture-contorller', 'updateTextures');
417
+ // 判定是否有更新的texture,更新到一张纹理并通知当前纹理对象内容。
418
+ const { loadedMap, deletingMap, textureInfoIds, textures, loadedImageDataMap, loadedImageDataMap2, } = this;
419
+ const loadMap = initMap || loadedMap;
420
+ const { maxIndex, create } = this.testEmptyMaxCount(textureInfoIds, deletingMap, loadMap);
421
+ if (maxIndex === -1) {
422
+ return false;
423
+ }
424
+ // console.log('updateTextures', Array.from(loadedMap.keys()));
425
+ if (create) {
426
+ if (USE_CANVAS) {
427
+ textures[maxIndex] = this.createCanvasTexture(maxIndex);
428
+ }
429
+ else {
430
+ textures[maxIndex] = this.createMergeTexture();
431
+ }
432
+ }
433
+ deletingMap.forEach((info, id) => {
434
+ const { x, y } = TileUtil.getXY(info.textureIndex, 100);
435
+ if (y === maxIndex) {
436
+ this.textureMap.delete(id);
437
+ delete textureInfoIds[y][x];
438
+ deletes.push(info);
439
+ if (USE_CANVAS) {
440
+ loadedImageDataMap2.delete(id);
441
+ }
442
+ }
443
+ });
444
+ deletes.forEach((info) => {
445
+ deletingMap.delete(info.id);
446
+ });
447
+ let tList = textureInfoIds[maxIndex];
448
+ if (!tList) {
449
+ tList = textureInfoIds[maxIndex] = [];
450
+ }
451
+ const count = TEXT_SEGMENT * TEXT_SEGMENT;
452
+ const loadedList = Array.from(loadMap);
453
+ loadedList.sort((a, b) => a[1].centerDis - b[1].centerDis);
454
+ let textureChangeCount = 0;
455
+ for (let i = 0; i < count; i++) {
456
+ if (!loadedList[0]) {
457
+ break;
458
+ }
459
+ const t = tList[i];
460
+ if (!t) {
461
+ if (textureChangeCount >= TileUtil.updateTextureMax && !initMap) {
462
+ break;
463
+ }
464
+ const [tId, tInfo] = loadedList.shift();
465
+ loadMap.delete(tId);
466
+ tInfo.textureIndex = maxIndex * 100 + i;
467
+ tList[i] = tId;
468
+ this.textureMap.set(tId, tInfo);
469
+ updates.push(tInfo);
470
+ if (USE_CANVAS) {
471
+ const image = loadedImageDataMap2.get(tId);
472
+ const ctx = this.getContext2d(maxIndex);
473
+ this.updateCanvasTexture(textures[maxIndex], ctx, image, i);
474
+ }
475
+ else {
476
+ const imageData = loadedImageDataMap.get(tId);
477
+ this.updateMergeTexture(textures[maxIndex], imageData, i);
478
+ if (!tInfo.frize) {
479
+ loadedImageDataMap.delete(tId);
480
+ }
481
+ }
482
+ // if (maxIndex === 0) {
483
+ // this.drawingImage(textures[maxIndex]);
484
+ // }
485
+ textureChangeCount++;
486
+ }
487
+ }
488
+ return updates.length > 0 || deletes.length > 0;
489
+ }
490
+ // public drawingImage(texture: NS_THREE.DataTexture): void {
491
+ // const context2d = (window as any).context2d;
492
+ // if (context2d) {
493
+ // const image = new ImageData(2048, 2048);
494
+ // image.data.set(texture.image.data);
495
+ // context2d.putImageData(image, 0, 0);
496
+ // // context2d.createPattern(texture, 'no-repeat');
497
+ // }
498
+ // }
499
+ /**
500
+ * 测试空节点最大数量
501
+ * @param infos
502
+ * @param deletings
503
+ * @param loadedMap
504
+ * @returns
505
+ */
506
+ testEmptyMaxCount(infos, deletings, loadedMap) {
507
+ // console.log('texture-contorller', 'testEmptyMaxCount');
508
+ if (!deletings.size && !loadedMap.size) {
509
+ return {
510
+ maxIndex: -1, maxCount: 0, create: false,
511
+ };
512
+ }
513
+ const index = [];
514
+ const infosCount = infos.length;
515
+ for (let i = 0; i < infosCount; i++) {
516
+ index[i] = 0;
517
+ }
518
+ // const willDelete = [] as TileTextureInfo[][];
519
+ const deleteIndex = Array.from(index);
520
+ if (deletings) {
521
+ deletings.forEach((info) => {
522
+ if (info.time > DELETE_TIME) { // 到达删除时间的info加入删除计数
523
+ const { y } = TileUtil.getXY(info.textureIndex, 100);
524
+ deleteIndex[y]++;
525
+ }
526
+ });
527
+ }
528
+ const count = TEXT_SEGMENT * TEXT_SEGMENT;
529
+ for (let i = 0; i < infosCount; i++) {
530
+ const info = infos[i];
531
+ for (let j = 0; j < count; j++) {
532
+ if (info[j]) {
533
+ index[i]++;
534
+ }
535
+ }
536
+ }
537
+ const t = index.map((value, i) => count - value + (deleteIndex[i] || 0));
538
+ const loadedSize = loadedMap.size;
539
+ let maxCount = 0;
540
+ let maxIndex = 0;
541
+ for (let i = 0; i < t.length; i++) {
542
+ const tc = t[i];
543
+ const dc = deleteIndex[i];
544
+ if (loadedSize) {
545
+ if (maxCount >= TileUtil.updateTextureMax || maxCount >= loadedSize) {
546
+ break;
547
+ }
548
+ if (tc > maxCount) {
549
+ maxCount = tc;
550
+ maxIndex = i;
551
+ }
552
+ }
553
+ else if (dc > maxCount) {
554
+ maxCount = dc;
555
+ maxIndex = i;
556
+ }
557
+ }
558
+ let create = false;
559
+ if (maxCount === 0) {
560
+ maxIndex = infos.length;
561
+ if (maxIndex >= TEXT_MAX) {
562
+ // 如果超过纹理上限, 则按时间删除时间大小排序
563
+ let willDeleteInfo;
564
+ deletings.forEach((info) => {
565
+ if (!willDeleteInfo || willDeleteInfo.time > info.time) {
566
+ willDeleteInfo = info;
567
+ }
568
+ });
569
+ if (willDeleteInfo) {
570
+ maxIndex = TileUtil.getXY(willDeleteInfo.textureIndex, 100).y;
571
+ maxCount = 1;
572
+ }
573
+ else {
574
+ // 没有适合删除的
575
+ maxIndex = -1;
576
+ maxCount = 0;
577
+ }
578
+ }
579
+ else if (loadedSize === 0) {
580
+ maxIndex = -1;
581
+ maxCount = 0;
582
+ create = false;
583
+ }
584
+ else {
585
+ maxCount = count;
586
+ create = true;
587
+ }
588
+ }
589
+ return { maxIndex, maxCount, create };
590
+ }
591
+ /**
592
+ * 创建合并纹理
593
+ * @returns
594
+ */
595
+ createMergeTexture() {
596
+ // console.log('texture-contorller', 'createMergeTexture');
597
+ const { THREE } = Externals.getInstance();
598
+ const TEXT_PIXEL = getTextPixel();
599
+ const buffer = new Uint8Array(TEXT_PIXEL * TEXT_PIXEL * TEXT_SEGMENT * TEXT_SEGMENT * 4);
600
+ const texture = new THREE.DataTexture(buffer, TEXT_PIXEL * TEXT_SEGMENT, TEXT_PIXEL * TEXT_SEGMENT);
601
+ if (USE_TEXTURE_BLACK) {
602
+ const count = buffer.length;
603
+ for (let i = 0; i < count; i += 4) {
604
+ buffer[i + 3] = 1;
605
+ }
606
+ }
607
+ return texture;
608
+ }
609
+ /**
610
+ * 创建canvas纹理
611
+ * @param index 下标
612
+ * @returns
613
+ */
614
+ createCanvasTexture(index) {
615
+ // console.log('texture-contorller', 'createCanvasTexture');
616
+ const { THREE } = Externals.getInstance();
617
+ const ctx = this.getContext2d(index);
618
+ if (USE_TEXTURE_BLACK) {
619
+ ctx.canvas.style.backgroundColor = '#000';
620
+ }
621
+ const texture = new THREE.Texture(ctx.canvas);
622
+ return texture;
623
+ }
624
+ /**
625
+ * 更新canvas纹理
626
+ * @param mergeTexture
627
+ * @param ctx
628
+ * @param image
629
+ * @param index
630
+ */
631
+ updateCanvasTexture(mergeTexture, ctx, image, index) {
632
+ // console.log('texture-contorller', 'updateCanvasTexture');
633
+ const { x, y } = TileUtil.getXY(index, TEXT_SEGMENT);
634
+ const TEXT_PIXEL = getTextPixel();
635
+ ctx.drawImage(image, x * TEXT_PIXEL, (TEXT_SEGMENT - 1 - y) * TEXT_PIXEL);
636
+ mergeTexture.needsUpdate = true;
637
+ }
638
+ /**
639
+ * 更新合并纹理
640
+ * @param mergeTexture 合并纹理
641
+ * @param imaData 图片数据
642
+ * @param index 下标
643
+ */
644
+ updateMergeTexture(mergeTexture, imaData, index) {
645
+ // console.log('texture-contorller', 'updateMergeTexture');
646
+ const buffer = mergeTexture.image.data;
647
+ const tBuffer = imaData.data;
648
+ const { x, y } = TileUtil.getXY(index, TEXT_SEGMENT);
649
+ const TEXT_PIXEL = getTextPixel();
650
+ const length = TEXT_SEGMENT * TEXT_PIXEL * 4;
651
+ const tLength = TEXT_PIXEL * 4;
652
+ const base = y * length * TEXT_PIXEL + x * tLength;
653
+ for (let i = 0; i < TEXT_PIXEL; i++) {
654
+ for (let j = 0; j < TEXT_PIXEL; j++) {
655
+ const bi = base + i * length + j * 4;
656
+ const tbi = i * tLength + j * 4;
657
+ buffer[bi] = tBuffer[tbi];
658
+ buffer[bi + 1] = tBuffer[tbi + 1];
659
+ buffer[bi + 2] = tBuffer[tbi + 2];
660
+ buffer[bi + 3] = tBuffer[tbi + 3];
661
+ }
662
+ }
663
+ mergeTexture.needsUpdate = true;
664
+ }
665
+ /**
666
+ * 将texture2 index2位置的纹理合并到textur1 index1的位置上
667
+ * @param mergeTexture1 纹理1
668
+ * @param index1 下标1
669
+ * @param mergeTexture2 纹理2
670
+ * @param index2 下标2
671
+ */
672
+ updateMergeTexture2(mergeTexture1, index1, mergeTexture2, index2) {
673
+ // console.log('texture-contorller', 'updateMergeTexture2');
674
+ const buffer1 = mergeTexture1.image.data;
675
+ const buffer2 = mergeTexture2.image.data;
676
+ const { x: x1, y: y1 } = TileUtil.getXY(index1, TEXT_SEGMENT);
677
+ const { x: x2, y: y2 } = TileUtil.getXY(index2, TEXT_SEGMENT);
678
+ const TEXT_PIXEL = getTextPixel();
679
+ const length = TEXT_SEGMENT * TEXT_PIXEL * 4;
680
+ const tLength = TEXT_PIXEL * 4;
681
+ const base1 = y1 * length * TEXT_PIXEL + x1 * tLength;
682
+ const base2 = y2 * length * TEXT_PIXEL + x2 * tLength;
683
+ for (let i = 0; i < TEXT_PIXEL; i++) {
684
+ for (let j = 0; j < TEXT_PIXEL; j++) {
685
+ const b1 = base1 + i * length + j * 4;
686
+ const b2 = base2 + i * length + j * 4;
687
+ buffer1[b1] = buffer2[b2];
688
+ buffer1[b1 + 1] = buffer2[b2 + 1];
689
+ buffer1[b1 + 2] = buffer2[b2 + 2];
690
+ buffer1[b1 + 3] = buffer2[b2 + 3];
691
+ }
692
+ }
693
+ mergeTexture1.needsUpdate = true;
694
+ }
695
+ /**
696
+ * 异步加载图片
697
+ * @param url 图片url
698
+ * @returns 图片纹理信息
699
+ */
700
+ loadImgAsync(url) {
701
+ // console.log('texture-contorller', 'loadImgAsync2');
702
+ const img = new Image();
703
+ img.setAttribute('crossOrigin', 'anonymous');
704
+ const { ctx } = this;
705
+ return new Promise(((resolve, reject) => {
706
+ img.onload = () => {
707
+ ctx.drawImage(img, 0, 0);
708
+ const TEXT_PIXEL = getTextPixel();
709
+ // console.time(`${url}get`);
710
+ const imgData = ctx.getImageData(0, 0, TEXT_PIXEL, TEXT_PIXEL);
711
+ // console.timeEnd(`${url}get`);
712
+ resolve(imgData);
713
+ };
714
+ img.onerror = () => {
715
+ reject();
716
+ };
717
+ img.src = url;
718
+ }));
719
+ }
720
+ /**
721
+ * 异步加载图片2
722
+ * @param url 图片url
723
+ * @returns 图片元素
724
+ */
725
+ loadImgAsync2(url) {
726
+ // console.log('texture-contorller', 'loadImgAsync2');
727
+ const img = new Image();
728
+ img.setAttribute('crossOrigin', 'anonymous');
729
+ return new Promise((resolve, reject) => {
730
+ img.onload = () => {
731
+ resolve(img);
732
+ };
733
+ img.onerror = () => {
734
+ reject();
735
+ };
736
+ img.src = url;
737
+ });
738
+ }
739
+ /**
740
+ * 更新删除的纹理
741
+ */
742
+ updateDeletingTextures() {
743
+ // console.log('texture-contorller', 'updateDeletingTextures');
744
+ const { deletingMap } = this;
745
+ deletingMap.forEach((info) => {
746
+ info.time++;
747
+ });
748
+ }
749
+ /**
750
+ * 格式化纹理
751
+ * @param updates
752
+ * @returns
753
+ */
754
+ formatTextures(updates) {
755
+ // console.log('texture-contorller', 'formatTextures');
756
+ const { textureInfoIds, textureMap, textures, loadedImageDataMap2, } = this;
757
+ const count = TEXT_SEGMENT * TEXT_SEGMENT;
758
+ const infoCount = textureInfoIds.length;
759
+ let i = 0;
760
+ let j = infoCount - 1;
761
+ let ii = 0;
762
+ let jj = count;
763
+ let tId;
764
+ let changeTextureIndex = -1;
765
+ let willBreak = false;
766
+ while (i < j) {
767
+ if (tId) {
768
+ if (willBreak) {
769
+ break;
770
+ }
771
+ const iId = textureInfoIds[i][ii];
772
+ if (!iId) {
773
+ textureInfoIds[i][ii] = tId;
774
+ delete textureInfoIds[j][jj];
775
+ const info = textureMap.get(tId);
776
+ if (info) {
777
+ updates.push(info);
778
+ info.textureIndex = i * 100 + ii;
779
+ if (USE_CANVAS) {
780
+ const img = loadedImageDataMap2.get(info.id);
781
+ if (img) {
782
+ this.updateCanvasTexture(textures[i], this.getContext2d(i), img, ii);
783
+ }
784
+ }
785
+ else {
786
+ this.updateMergeTexture2(textures[i], ii, textures[j], jj);
787
+ }
788
+ if (changeTextureIndex === -1) {
789
+ changeTextureIndex = i;
790
+ }
791
+ else if (changeTextureIndex !== i) {
792
+ // 一次更新一个纹理
793
+ willBreak = true;
794
+ }
795
+ }
796
+ tId = undefined;
797
+ }
798
+ ii++;
799
+ if (ii >= count) {
800
+ i++;
801
+ ii = 0;
802
+ }
803
+ }
804
+ else {
805
+ jj--;
806
+ if (jj < 0) {
807
+ j--;
808
+ jj = count;
809
+ }
810
+ tId = textureInfoIds[j][jj];
811
+ }
812
+ }
813
+ if (j < infoCount - 1) {
814
+ // 删除多余纹理
815
+ textureInfoIds.splice(j + 1, infoCount - 1 - j);
816
+ const deleteTextures = textures.splice(j + 1, infoCount - 1 - j);
817
+ if (USE_CANVAS) {
818
+ // const ctxs = this.context2ds.splice(j + 1, infoCount - 1 - j);
819
+ // ctxs.forEach((ctx) => {
820
+ // const canvas = ctx.canvas;
821
+ // // if (SHOW_CANVAS) {
822
+ // // if (canvas.parentElement) {
823
+ // // canvas.parentElement.removeChild(canvas);
824
+ // // }
825
+ // // }
826
+ // });
827
+ deleteTextures.forEach((texture) => {
828
+ texture.dispose();
829
+ });
830
+ }
831
+ // TODO(rpeng) 手动dispose
832
+ // const deleteTextures = textures.splice(j + 1, infoCount - 1 - j);
833
+ // deleteTextures.forEach((texture) => {
834
+ // texture.dispose();
835
+ // });
836
+ }
837
+ return updates.length !== 0;
838
+ }
839
+ /**
840
+ * 更新
841
+ * @ignore
842
+ * @returns
843
+ */
844
+ update() {
845
+ // console.log('texture-contorller', 'update');
846
+ this.loadTexturesAsync();
847
+ this.updateDeletingTextures();
848
+ const updates = [];
849
+ const deletes = [];
850
+ let isUpdate = this.updateTextures(updates, deletes);
851
+ if (!isUpdate) {
852
+ // 如果没有纹理更新,进行纹理重组计算
853
+ isUpdate = this.formatTextures(updates);
854
+ }
855
+ // if (updates.length || deletes.length) {
856
+ // // //console.log('texture', 'updates.length', updates.length, 'deletes.length', deletes.length);
857
+ // }
858
+ if (isUpdate) {
859
+ // console.log('updates', updates.map((info) => info.id));
860
+ // console.log('deletes', deletes.map((info) => info.id));
861
+ this.emit(TextureEventEnum.TEXTURE_UPDATE, updates, deletes);
862
+ }
863
+ return isUpdate;
864
+ }
865
+ /**
866
+ * 单例获取
867
+ */
868
+ static get instance() {
869
+ if (!this.__instance) {
870
+ this.__instance = new TextureController();
871
+ }
872
+ return this.__instance;
873
+ }
874
+ }
875
+ export { TextureController, TextureEventEnum };
876
+ //# sourceMappingURL=texture-controller.js.map