@anov/3d 0.0.136 → 0.0.139

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 (206) hide show
  1. package/dist/anov3d.js +10 -10
  2. package/dist/anov3d.js.map +1 -1
  3. package/dist/applicationApi.js +17 -9
  4. package/dist/applicationApi.js.map +1 -1
  5. package/dist/factory/3d.js +6 -7
  6. package/dist/factory/3d.js.map +1 -1
  7. package/dist/factory/globalControl.js +3 -3
  8. package/dist/factory/globalControl.js.map +1 -1
  9. package/dist/factory/unit/CameraPoi.js +5 -6
  10. package/dist/factory/unit/CameraPoi.js.map +1 -1
  11. package/dist/factory/unit/areaBoundingBox.js +3 -3
  12. package/dist/factory/unit/areaBoundingBox.js.map +1 -1
  13. package/dist/factory/unit/circle.js +4 -4
  14. package/dist/factory/unit/circle.js.map +1 -1
  15. package/dist/factory/unit/cylinder.js +5 -5
  16. package/dist/factory/unit/cylinder.js.map +1 -1
  17. package/dist/factory/unit/districtLine.js +4 -4
  18. package/dist/factory/unit/districtLine.js.map +1 -1
  19. package/dist/factory/unit/glsl/heat/frag.js.map +1 -1
  20. package/dist/factory/unit/glsl/heat/ver.js.map +1 -1
  21. package/dist/factory/unit/glsl/highway/fragmentShader.js.map +1 -1
  22. package/dist/factory/unit/glsl/highway/fragmentShader2.js.map +1 -1
  23. package/dist/factory/unit/glsl/highway/vertexShader.js.map +1 -1
  24. package/dist/factory/unit/handle.js +3 -3
  25. package/dist/factory/unit/handle.js.map +1 -1
  26. package/dist/factory/unit/index.js +13 -14
  27. package/dist/factory/unit/index.js.map +1 -1
  28. package/dist/factory/unit/inspection/InspectionObject.js +4 -4
  29. package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
  30. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js +3 -3
  31. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js.map +1 -1
  32. package/dist/factory/unit/inspection/index.js +6 -8
  33. package/dist/factory/unit/inspection/index.js.map +1 -1
  34. package/dist/factory/unit/inspection/lineData.js.map +1 -1
  35. package/dist/factory/unit/inspection/map.js +3 -3
  36. package/dist/factory/unit/inspection/map.js.map +1 -1
  37. package/dist/factory/unit/inspection/tubeGeometry.js +3 -3
  38. package/dist/factory/unit/inspection/tubeGeometry.js.map +1 -1
  39. package/dist/factory/unit/layer/rise.js.map +1 -1
  40. package/dist/factory/unit/line.js +3 -3
  41. package/dist/factory/unit/line.js.map +1 -1
  42. package/dist/factory/unit/poi.js +5 -5
  43. package/dist/factory/unit/poi.js.map +1 -1
  44. package/dist/factory/unit/region.js +3 -3
  45. package/dist/factory/unit/region.js.map +1 -1
  46. package/dist/factory/unit/slice.js +3 -3
  47. package/dist/factory/unit/slice.js.map +1 -1
  48. package/dist/factory/unit/wall.js +3 -3
  49. package/dist/factory/unit/wall.js.map +1 -1
  50. package/dist/factory/utils/areaBoundingBox.js.map +1 -1
  51. package/dist/factory/utils/constant.js +6 -6
  52. package/dist/factory/utils/constant.js.map +1 -1
  53. package/dist/factory/utils/finirMaterial.js +0 -1
  54. package/dist/factory/utils/finirMaterial.js.map +1 -1
  55. package/dist/factory/utils/fontMesh.js +3 -3
  56. package/dist/factory/utils/fontMesh.js.map +1 -1
  57. package/dist/factory/utils/ground.js.map +1 -1
  58. package/dist/factory/utils/index.js.map +1 -1
  59. package/dist/factory/utils/observe.js +1 -1
  60. package/dist/factory/utils/observe.js.map +1 -1
  61. package/dist/factory/utils/switchMaterial.js.map +1 -1
  62. package/dist/hooksManager.js +1 -1
  63. package/dist/hooksManager.js.map +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/messageStatus.js +3 -3
  66. package/dist/messageStatus.js.map +1 -1
  67. package/dist/module/camera/index.js +3 -3
  68. package/dist/module/camera/index.js.map +1 -1
  69. package/dist/module/develop/index.js +3 -3
  70. package/dist/module/develop/index.js.map +1 -1
  71. package/dist/module/entity/baseEntity.js +146 -0
  72. package/dist/module/entity/baseEntity.js.map +1 -0
  73. package/dist/module/entity/dispose.js.map +1 -1
  74. package/dist/module/entity/hybridList.js +3 -3
  75. package/dist/module/entity/hybridList.js.map +1 -1
  76. package/dist/module/entity/index.js +149 -150
  77. package/dist/module/entity/index.js.map +1 -1
  78. package/dist/module/entity/model/index.js +116 -0
  79. package/dist/module/entity/model/index.js.map +1 -0
  80. package/dist/module/entity/model/load/loadGlb.js +19 -0
  81. package/dist/module/entity/model/load/loadGlb.js.map +1 -0
  82. package/dist/module/entity/model/load.js +47 -0
  83. package/dist/module/entity/model/load.js.map +1 -0
  84. package/dist/module/entity/poi/index.js +22 -43
  85. package/dist/module/entity/poi/index.js.map +1 -1
  86. package/dist/module/entity/poi/style/base.js +104 -0
  87. package/dist/module/entity/poi/style/base.js.map +1 -0
  88. package/dist/module/entity/poi/style/index.js +67 -0
  89. package/dist/module/entity/poi/style/index.js.map +1 -0
  90. package/dist/module/entity/poi/style/title_01.js +62 -0
  91. package/dist/module/entity/poi/style/title_01.js.map +1 -0
  92. package/dist/module/entity/poi/style/title_pin_01.js +68 -0
  93. package/dist/module/entity/poi/style/title_pin_01.js.map +1 -0
  94. package/dist/module/entity/poi/style/title_pin_02.js +70 -0
  95. package/dist/module/entity/poi/style/title_pin_02.js.map +1 -0
  96. package/dist/module/entity/poi/type.js.map +1 -1
  97. package/dist/module/entity/spline/index.js +29 -0
  98. package/dist/module/entity/spline/index.js.map +1 -0
  99. package/dist/module/entity/spline/resource.js +2 -0
  100. package/dist/module/entity/spline/resource.js.map +1 -0
  101. package/dist/module/entity/spline/style/index.js +47 -0
  102. package/dist/module/entity/spline/style/index.js.map +1 -0
  103. package/dist/module/entity/spline/style/line_01.js +67 -0
  104. package/dist/module/entity/spline/style/line_01.js.map +1 -0
  105. package/dist/module/entity/spline/style/line_texture_01.js +85 -0
  106. package/dist/module/entity/spline/style/line_texture_01.js.map +1 -0
  107. package/dist/module/entity/spline/type.js +2 -0
  108. package/dist/module/entity/spline/type.js.map +1 -0
  109. package/dist/module/entity/strategy.js +45 -2
  110. package/dist/module/entity/strategy.js.map +1 -1
  111. package/dist/module/entity/type.js +2 -0
  112. package/dist/module/entity/type.js.map +1 -0
  113. package/dist/module/entity/utils.js +15 -1
  114. package/dist/module/entity/utils.js.map +1 -1
  115. package/dist/module/environment/index.js +6 -6
  116. package/dist/module/environment/index.js.map +1 -1
  117. package/dist/module/environment/season/index.js +6 -8
  118. package/dist/module/environment/season/index.js.map +1 -1
  119. package/dist/module/environment/time/index.js.map +1 -1
  120. package/dist/module/eventBus/index.js +3 -3
  121. package/dist/module/eventBus/index.js.map +1 -1
  122. package/dist/module/model/index.js +6 -6
  123. package/dist/module/model/index.js.map +1 -1
  124. package/dist/module/scene/index.js +3 -3
  125. package/dist/module/scene/index.js.map +1 -1
  126. package/dist/sdkEntry.js +3 -3
  127. package/dist/sdkEntry.js.map +1 -1
  128. package/dist/utils/abstract.js +3 -3
  129. package/dist/utils/abstract.js.map +1 -1
  130. package/dist/utils/index.js +1 -1
  131. package/dist/utils/index.js.map +1 -1
  132. package/dist/utils/messageFn.js +8 -8
  133. package/dist/utils/messageFn.js.map +1 -1
  134. package/package.json +5 -4
  135. package/dist/anov3d.d.ts +0 -27
  136. package/dist/applicationApi.d.ts +0 -68
  137. package/dist/factory/3d.d.ts +0 -72
  138. package/dist/factory/globalControl.d.ts +0 -7
  139. package/dist/factory/globalData.d.ts +0 -1
  140. package/dist/factory/regionData.d.ts +0 -36
  141. package/dist/factory/type.d.ts +0 -10
  142. package/dist/factory/unit/CameraPoi.d.ts +0 -66
  143. package/dist/factory/unit/areaBoundingBox.d.ts +0 -7
  144. package/dist/factory/unit/circle.d.ts +0 -22
  145. package/dist/factory/unit/cylinder.d.ts +0 -24
  146. package/dist/factory/unit/districtLine.d.ts +0 -22
  147. package/dist/factory/unit/glsl/heat/frag.d.ts +0 -2
  148. package/dist/factory/unit/glsl/heat/ver.d.ts +0 -2
  149. package/dist/factory/unit/glsl/highway/fragmentShader.d.ts +0 -2
  150. package/dist/factory/unit/glsl/highway/fragmentShader2.d.ts +0 -2
  151. package/dist/factory/unit/glsl/highway/vertexShader.d.ts +0 -2
  152. package/dist/factory/unit/handle.d.ts +0 -42
  153. package/dist/factory/unit/index.d.ts +0 -9
  154. package/dist/factory/unit/inspection/InspectionObject.d.ts +0 -49
  155. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.d.ts +0 -6
  156. package/dist/factory/unit/inspection/index.d.ts +0 -52
  157. package/dist/factory/unit/inspection/lineData.d.ts +0 -26
  158. package/dist/factory/unit/inspection/map.d.ts +0 -11
  159. package/dist/factory/unit/inspection/tubeGeometry.d.ts +0 -16
  160. package/dist/factory/unit/layer/rise.d.ts +0 -6
  161. package/dist/factory/unit/line.d.ts +0 -13
  162. package/dist/factory/unit/poi.d.ts +0 -21
  163. package/dist/factory/unit/region.d.ts +0 -12
  164. package/dist/factory/unit/slice.d.ts +0 -12
  165. package/dist/factory/unit/wall.d.ts +0 -16
  166. package/dist/factory/utils/areaBoundingBox.d.ts +0 -14
  167. package/dist/factory/utils/constant.d.ts +0 -12
  168. package/dist/factory/utils/finirMaterial.d.ts +0 -4
  169. package/dist/factory/utils/fontMesh.d.ts +0 -10
  170. package/dist/factory/utils/ground.d.ts +0 -40
  171. package/dist/factory/utils/index.d.ts +0 -2
  172. package/dist/factory/utils/observe.d.ts +0 -3
  173. package/dist/factory/utils/switchMaterial.d.ts +0 -17
  174. package/dist/hooksManager.d.ts +0 -2
  175. package/dist/index.d.ts +0 -18
  176. package/dist/messageStatus.d.ts +0 -52
  177. package/dist/module/camera/index.d.ts +0 -74
  178. package/dist/module/develop/index.d.ts +0 -19
  179. package/dist/module/entity/dispose.d.ts +0 -6
  180. package/dist/module/entity/hybridList.d.ts +0 -11
  181. package/dist/module/entity/index.d.ts +0 -68
  182. package/dist/module/entity/poi/constant.d.ts +0 -48
  183. package/dist/module/entity/poi/constant.js +0 -54
  184. package/dist/module/entity/poi/constant.js.map +0 -1
  185. package/dist/module/entity/poi/index.d.ts +0 -13
  186. package/dist/module/entity/poi/label.d.ts +0 -9
  187. package/dist/module/entity/poi/label.js +0 -46
  188. package/dist/module/entity/poi/label.js.map +0 -1
  189. package/dist/module/entity/poi/resource.d.ts +0 -4
  190. package/dist/module/entity/poi/title.d.ts +0 -77
  191. package/dist/module/entity/poi/title.js +0 -265
  192. package/dist/module/entity/poi/title.js.map +0 -1
  193. package/dist/module/entity/poi/type.d.ts +0 -88
  194. package/dist/module/entity/strategy.d.ts +0 -3
  195. package/dist/module/entity/utils.d.ts +0 -4
  196. package/dist/module/environment/index.d.ts +0 -50
  197. package/dist/module/environment/season/index.d.ts +0 -22
  198. package/dist/module/environment/time/index.d.ts +0 -10
  199. package/dist/module/environment/weather/type.d.ts +0 -15
  200. package/dist/module/eventBus/index.d.ts +0 -27
  201. package/dist/module/model/index.d.ts +0 -15
  202. package/dist/module/scene/index.d.ts +0 -16
  203. package/dist/sdkEntry.d.ts +0 -5
  204. package/dist/utils/abstract.d.ts +0 -6
  205. package/dist/utils/index.d.ts +0 -30
  206. package/dist/utils/messageFn.d.ts +0 -19
@@ -1,13 +1,13 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
3
3
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
4
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
7
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
11
  import { AdditiveBlending, Box3, CircleGeometry, Clock, Color, DoubleSide, Group, MathUtils, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, PerspectiveCamera, PlaneGeometry, ShaderMaterial, Sprite, SpriteMaterial, Texture, TextureLoader, Vector3, gsap, use } from '@anov/3d-core';
12
12
  import { Css2DPoi, SpritePoi } from '@anov/3d-ability';
13
13
  import heatMap from 'anov-heat-map';
@@ -160,7 +160,7 @@ var CameraPoi = /*#__PURE__*/function () {
160
160
 
161
161
  // 甲烷检测点
162
162
  point = new MethanePoint();
163
- (_data$probePoint = data.probePoint) === null || _data$probePoint === void 0 ? void 0 : _data$probePoint.forEach(function (item) {
163
+ (_data$probePoint = data.probePoint) === null || _data$probePoint === void 0 || _data$probePoint.forEach(function (item) {
164
164
  var mesh;
165
165
  if (item.warn) {
166
166
  mesh = new SpritePoi("".concat(usePath, "p4/warn.png"), {
@@ -669,7 +669,6 @@ var Dialog = /*#__PURE__*/function () {
669
669
  // left: `${(window.innerWidth - width) / 2}px`,
670
670
  // top: `${(window.innerHeight - height) / 2}px`,
671
671
  });
672
-
673
672
  var maskingDiv = document.createElement('div');
674
673
  maskingDiv.className = 'dialog-mask';
675
674
  dialogDiv.appendChild(maskingDiv);
@@ -1 +1 @@
1
- {"version":3,"names":["AdditiveBlending","Box3","CircleGeometry","Clock","Color","DoubleSide","Group","MathUtils","Matrix4","Mesh","MeshBasicMaterial","ModelLoader","PerspectiveCamera","PlaneGeometry","ShaderMaterial","Sprite","SpriteMaterial","Texture","TextureLoader","Vector3","gsap","use","Css2DPoi","SpritePoi","heatMap","MessageType","sendToMessage","EMessageStatus","loadingManager","usePath","data","camera","id","name","position","fovDefault","fovRange","dialogCamera","rotation","probePoint","warn","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","loadGLTF","gltf","model","forEach","region","group","sprite","scale","y","Math","PI","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","interactionManager","cameraEvent","point","MethanePoint","item","mesh","probeEvent","to","duration","ease","yoyo","repeat","create","warnMesh","rotatingRight","unFrame","useframe","children","z","abs","eventListener","fn","currentDialogMesh","isClose","close","headMap","isShow","closeHotmap","useScene","startPosition","cameraLookAt","getWorldDirection","messageType","Event","messageName","status","Success","targetPosition","toArray","camaraPosition","cameraUtil","target","setMeshVisible","getMesh","addEventListener","visible","removeEventListener","HeadMap","unClick","togglePoi","then","distanceTo","orbitControls","enabled","remove","removeFromParent","clear","geometry","texture","circle","map","side","transparent","rotateX","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","i","random","cameraManage","manage","careraParams","window","innerWidth","innerHeight","setCustomPerspective","cuteSprite","depthWrite","center","renderOrder","updateScale","Promise","reslove","setTimeout","borderMesh","getBorderMesh","cuteSprites","push","cameraPosition","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","devicePixelRatio","bbox","setFromObject","min","project","max","console","log","w","h","dom","document","querySelector","clientWidth","clientHeight","ratio","fov","width","height","scaleFactor","minDistance","maxDistance","objectPosition","distance","clampedDistance","eventName","eventList","has","getBoxSize","dialogDiv","createElement","Object","assign","style","maskingDiv","className","appendChild","closeSpan","op","opList","key","btnSpan","handleClick","clock","longPress","time","getDelta","clearTimeout","cb","updateProjectionMatrix","slider","getFovView","text","container","itemsContainer","div","innerHTML","setAttribute","items","itemHeight","totalHeight","length","cloneItems","Array","from","cloneNode","highlightMiddleItem","middlePosition","scrollTop","middleIndex","floor","index","classList","getAttribute","smoothScrollTo","start","step","timestamp","progress","progressRatio","requestAnimationFrame","scrollToItem","indexOf","conSlider","css","styleElement","createTextNode","head","get","heatmap","createDom","gradient","TemperatureColorStops","len","points","val","value","setData","greymap","heatMapMaterial","uniforms","undefined","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","tan","aspect","heatMapGeometry","heatMapPlane","backEle","body","zIndex","canvasList"],"sources":["../../../src/factory/unit/CameraPoi.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { AdditiveBlending, Box3, CircleGeometry, Clock, Color, DoubleSide, Euler, Group, MathUtils, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, PerspectiveCamera, PlaneGeometry, ShaderMaterial, Sprite, SpriteMaterial, Texture, TextureLoader, Vector3, WebGLRenderTarget, gsap, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, SpritePoi } from '@anov/3d-ability'\nimport heatMap from 'anov-heat-map'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport { loadingManager, usePath } from '../3d'\n\n// @ts-ignore\nimport type Factory3D from '../3d'\n\nconst data = {\n camera: [\n {\n id: '1',\n name: '摄像头1',\n position: [-315, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-315, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '2',\n name: '摄像头2',\n position: [30, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [30, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '3',\n name: '摄像头3',\n position: [360, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [360, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '4',\n name: '摄像头4',\n position: [-320, 30, 32],\n dialogCamera: {\n position: [-320, 30, 32],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '5',\n name: '摄像头5',\n position: [-307, 30, 170],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-307, 30, 170],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '6',\n name: '摄像头6',\n position: [77, 30, 96],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [77, 30, 96],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '7',\n name: '摄像头7',\n position: [404, 30, 85],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [404, 30, 85],\n rotation: [30, 180, 0],\n },\n },\n ],\n probePoint: [\n {\n id: '1',\n name: '异常监测点1',\n warn: true,\n position: [56, 21, 86],\n },\n {\n id: '2',\n name: '甲烷监测点2',\n warn: false,\n position: [384, 21, 75],\n },\n {\n id: '3',\n name: '甲烷监测点3',\n warn: false,\n position: [9, 21, -134],\n },\n ],\n}\n\nconst load = new ModelLoader()\nclass CameraPoi {\n gobal: Factory3D\n cameraMesh: Map<string, Group> = new Map()\n warnMesh: Map<string, SpritePoi> = new Map()\n headMap: HeadMap\n dialogManage: Dialog\n eventListener: Set<Function> = new Set()\n\n currentDialogMesh: Group\n startPosition: Vector3\n cameraLookAt: Vector3\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.dialogManage = new Dialog(this)\n this.dialogManage.addStyle()\n }\n\n async generateObject() {\n const model = await load.loadGLTF(`${usePath}shexiang.glb`, false, true, './draco/', (gltf) => {\n return gltf\n })\n\n data.camera.forEach((region) => {\n const group = new Group()\n group.name = region.id\n const sprite = new SpritePoi(`${usePath}p4/camera.png`, { scale: [22, 22, 1] })\n sprite.rotation.y = Math.PI\n const position = new Vector3().fromArray(region.position)\n sprite.position.copy(position)\n group.add(sprite)\n\n const scan = model.scene.clone()\n scan.scale.addScalar(8)\n scan.rotation.x = (-Math.PI / 2) + 0.5\n scan.position.copy(position.clone().add(new Vector3(0, -2, 0)))\n group.add(scan)\n\n this.cameraMesh.set(region.name, group)\n this.gobal.interactionManager.add(group)\n this.cameraEvent(group, region)\n this.gobal.scene.add(group)\n })\n\n // 甲烷检测点\n const point = new MethanePoint()\n data.probePoint?.forEach((item) => {\n let mesh\n if (item.warn) {\n mesh = new SpritePoi(`${usePath}p4/warn.png`, { scale: [22, 22, 1] })\n this.gobal.interactionManager.add(mesh)\n this.probeEvent(mesh, item)\n // 使用GSAP创建跳动动画\n gsap.to(mesh.position, {\n y: '+=3', // 上跳10个单位\n duration: 0.2, // 动画持续时间\n ease: 'power1.inOut', // 缓动函数\n yoyo: true, // 循环\n repeat: -1, // 无限重复\n })\n }\n else {\n mesh = point.create()\n }\n mesh.position.copy(new Vector3().fromArray(item.position))\n this.warnMesh.set(item.name, mesh)\n\n this.gobal.scene.add(mesh)\n })\n // 设置左右旋转的标志位和旋转速度\n let rotatingRight = true // 是否正在向右转动\n\n const unFrame = use.useframe(() => {\n this.cameraMesh.forEach((group) => {\n const scan = group.children[1]\n // 更新相机的旋转角度\n if (rotatingRight) {\n // 向右旋转\n scan.rotation.z += 0.005\n }\n else {\n // 向左旋转\n scan.rotation.z -= 0.005\n }\n\n // 检查是否达到目标旋转角度\n if (Math.abs(scan.rotation.z) >= Math.abs(Math.PI / 4)) {\n // 到达目标角度,切换旋转方向并更新目标角度\n rotatingRight = !rotatingRight\n }\n })\n })\n this.eventListener.add(unFrame)\n }\n\n cameraEvent(sprite: Group, region: any) {\n const fn = async () => {\n if (this.currentDialogMesh) {\n const isClose = this.currentDialogMesh.name === region.name\n this.dialogManage.close()\n if (isClose)\n return\n }\n else {\n if (this.headMap && this.headMap.isShow) {\n this.closeHotmap()\n }\n else {\n const { camera } = use.useScene()\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n }\n }\n\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraStatus',\n status: EMessageStatus.Success,\n },\n {\n id: region.id,\n })\n\n const position = new Vector3().fromArray(region.position)\n const targetPosition: [number, number, number] = position.clone().toArray()\n const camaraPosition: [number, number, number] = position.clone().add(new Vector3(0, 40, 80)).toArray()\n\n this.gobal.cameraUtil.set({\n position: camaraPosition,\n target: targetPosition,\n })\n this.setMeshVisible(false)\n\n this.currentDialogMesh = await this.dialogManage.getMesh(position, region) as Group\n this.dialogManage.addEventListener('close', () => {\n // 初始相机到原始位置\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n this.setMeshVisible(true)\n this.currentDialogMesh = null\n this.cameraMesh.forEach((mesh) => {\n mesh.visible = true\n })\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCancelCameraStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\n })\n this.currentDialogMesh.name = region.name\n this.gobal.scene.add(this.currentDialogMesh)\n }\n\n sprite.addEventListener('click', fn)\n this.eventListener.add(() => sprite.removeEventListener('click', fn))\n }\n\n probeEvent(sprite: SpritePoi, region) {\n const { camera } = use.useScene()\n this.headMap = new HeadMap()\n const unClick = sprite.addEventListener('click', async () => {\n if (!sprite.visible)\n return\n sprite.visible = false\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onGasMonitorStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\n this.togglePoi(false)\n const position = new Vector3().fromArray(region.position)\n const camaraPosition = position.clone().add(new Vector3(0, 30, 0))\n\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n this.gobal.cameraUtil.set({\n position: camaraPosition.toArray(),\n target: position.clone().toArray(),\n }).then(() => {\n const mesh = this.headMap.create(camaraPosition.distanceTo(position))\n mesh.position.copy(sprite.position)\n mesh.position.y = 0.5\n this.gobal.scene.add(mesh)\n\n const { orbitControls } = use.useScene()\n orbitControls.enabled = false\n\n // this.headMap.addBack()\n this.headMap.addEventListener('close', () => {\n this.closeHotmap()\n // this.togglePoi(true)\n\n // this.gobal.cameraUtil.set({\n // position: this.startPosition.toArray(),\n // target: this.cameraLookAt.toArray(),\n // })\n })\n })\n })\n this.eventListener.add(unClick)\n }\n\n setMeshVisible(visible) {\n this.cameraMesh.forEach(mesh => mesh.visible = visible)\n this.warnMesh.forEach(mesh => mesh.visible = visible)\n }\n\n closeHotmap() {\n if (!this.headMap)\n return\n this.headMap.remove()\n this.togglePoi(true)\n\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n\n togglePoi(visible = true) {\n this.warnMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n this.cameraMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n }\n\n remove() {\n this.dialogManage.close()\n // 删除摄像机POI点\n this.cameraMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.cameraMesh.clear()\n this.warnMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.warnMesh.clear()\n this.eventListener.forEach((fn) => {\n fn()\n })\n // 热力图\n if (this.headMap) {\n this.headMap.remove()\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n this.eventListener.clear()\n }\n}\n\nexport default CameraPoi\n\nclass MethanePoint {\n constructor() {\n\n }\n\n create() {\n // 定义Shader的uniform变量\n\n const geometry = new PlaneGeometry(10, 10)\n const texture = new TextureLoader(loadingManager).load(`${usePath}p4/monitor.png`)\n const circle = new Mesh(geometry, new MeshBasicMaterial({\n map: texture,\n side: DoubleSide,\n transparent: true,\n }))\n circle.rotateX(-Math.PI / 3)\n return circle\n }\n\n // 随机多点的方案\n createBack() {\n // 定义Shader的uniform变量\n\n const group = new Group()\n const geometry = new CircleGeometry(2, 32)\n // 创建自定义着色器材质\n const material = new ShaderMaterial({\n vertexShader: `\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_PointSize = 20.0; // 设置点的大小\n }\n `,\n fragmentShader: `\n void main() {\n vec2 center = vec2(0.5, 0.5); // 圆心坐标\n vec2 toCenter = gl_PointCoord - center; // 计算点到圆心的向量\n float distance = length(toCenter); // 计算点到圆心的距离\n if (distance > 0.5) discard; // 超出半径范围的点直接丢弃\n vec3 innerColor = vec3(1.0, .8, 0.0); // 内圈颜色为黄色\n vec3 outerColor = vec3(0.8, 0.4, 0.0); // 外圈颜色为深橘色\n \n vec3 finalColor = mix(innerColor, outerColor, smoothstep(0.1, 0.23, distance)); // 根据距离混合颜色\n if(distance>0.3) finalColor = mix(finalColor, vec3(0.75, 0.4, 0.0), smoothstep(0.25, 0.3, distance)); // 根据距离混合颜色\n gl_FragColor = vec4(finalColor, 1.0); // 设置片段颜色\n }\n `,\n blending: AdditiveBlending,\n depthTest: false,\n transparent: true,\n side: DoubleSide,\n })\n const circle = new Mesh(geometry, new MeshBasicMaterial({ color: '#f7a157' }))\n const numPoints = 100 // 点的数量\n\n for (let i = 0; i < numPoints; i++) {\n const x = Math.random() * 700 - 322 // 随机生成 x 坐标\n const z = Math.random() * 340 - 144 // 随机生成 z 坐标\n const point = circle.clone()\n point.position.copy(new Vector3(x, 20.55, z))\n point.rotateX(-Math.PI / 2)\n group.add(point)\n }\n\n return group\n }\n}\n\nclass Dialog {\n manage: CameraPoi\n\n camera: PerspectiveCamera\n cameraPosition: Vector3\n cameraTargetPosition: Vector3\n\n cuteSprites: Array<Object3D> = []\n eventListener: Set<Function> = new Set()\n eventList: Map<string, Function> = new Map()\n\n constructor(cameraManage) {\n this.manage = cameraManage\n }\n\n async getMesh(position, careraParams) {\n this.close()\n this.camera = new PerspectiveCamera(\n careraParams.fovDefault || 60, window.innerWidth / window.innerHeight, 0.1, 10000,\n )\n this.camera.position.copy(new Vector3().fromArray(careraParams.position))\n this.camera.rotation.set(Math.PI / 6, Math.PI, 0)\n\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(this.camera)\n\n const cuteSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n cuteSprite.center.set(0.5, 0.5)\n cuteSprite.renderOrder = 5\n cuteSprite.position.copy(position)\n\n const unFrame = use.useframe(() => {\n this.updateScale(cuteSprite)\n })\n this.eventListener.add(unFrame)\n\n return new Promise((reslove) => {\n setTimeout(() => {\n const borderMesh = this.getBorderMesh(this.camera, cuteSprite)\n const group = new Group()\n group.add(borderMesh)\n group.add(cuteSprite)\n this.cuteSprites.push(borderMesh)\n this.cuteSprites.push(cuteSprite)\n close()\n reslove(group)\n }, 1000)\n })\n }\n\n getTarget(cameraPosition, rotation = [0, 30, 0]) {\n // 将旋转角度转换为弧度\n const angleX = MathUtils.degToRad(rotation[0])\n const angleY = MathUtils.degToRad(rotation[1])\n const angleZ = MathUtils.degToRad(rotation[2])\n\n // 创建旋转矩阵\n const rotationMatrix = new Matrix4()\n rotationMatrix.makeRotationX(angleX)\n rotationMatrix.multiply(new Matrix4().makeRotationY(angleY))\n rotationMatrix.multiply(new Matrix4().makeRotationZ(angleZ))\n\n // 定义相机的方向向量(例如,相机的方向默认为(0, 0, -1))\n const cameraDirection = new Vector3(0, 0, 1)\n\n // 将相机的方向向量乘以旋转矩阵,得到相机目标位置的向量\n const targetDirection = cameraDirection.clone().applyMatrix4(rotationMatrix)\n\n // 计算相机的目标位置\n return cameraPosition.clone().add(targetDirection)\n }\n\n getBoxSize(sprite: Sprite) {\n const { camera } = use.useScene()\n\n // 获取设备像素比\n const devicePixelRatio = window.devicePixelRatio || 1\n // 获取精灵对象的边界框\n const bbox = new Box3().setFromObject(sprite)\n // 将边界框的最小和最大顶点转换为屏幕坐标\n const min = bbox.min.project(camera)\n const max = bbox.max.project(camera)\n console.log('min:', min)\n console.log('max:', max)\n\n let [w, h] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n w = dom.clientWidth\n h = dom.clientHeight\n }\n let ratio = 0\n if (camera.fov >= 60)\n ratio = -0.05 * (camera.fov - 60) / 30\n else\n ratio = 0.02 * (60 - camera.fov) / 30\n\n // 计算精灵在屏幕中的宽度和高度像素值\n let width = (max.x - min.x) * w / devicePixelRatio * (0.97 + ratio)\n let height = (max.y - min.y) * h / devicePixelRatio * (1.089 + ratio)\n\n const scaleFactor = devicePixelRatio * 0.5\n // 应用缩放系数\n width *= scaleFactor\n height *= scaleFactor\n\n return { width, height }\n }\n\n updateScale(sprite: Sprite) {\n const { camera } = use.useScene()\n const ratio = 60 / camera.fov\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n // 获取相机和物体的世界坐标位置\n const cameraPosition = camera?.position\n const objectPosition = sprite.position\n\n // 计算相机和物体之间的距离\n const distance = cameraPosition?.distanceTo(objectPosition) || 0.1\n\n // 使用 Math.min() 和 Math.max() 方法限制 resultDistance 的范围\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n // console.log('clampedDistance:',clampedDistance)\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n sprite.scale.copy(new Vector3(clampedDistance * (1.3281 / ratio), (0.8316 / ratio) * clampedDistance, 1))\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n getBorderMesh(camera, sprite: Sprite) {\n let { width, height } = this.getBoxSize(sprite)\n\n // 弹窗容器\n const dialogDiv = document.createElement('div')\n width += 10\n height += 10\n Object.assign(dialogDiv.style, {\n 'width': `${width}px`,\n 'height': `${height}px`,\n 'z-index': '3 !important',\n 'backgroundImage': `url(${usePath}p4/border.png)`,\n 'backgroundSize': '100% 100%',\n 'backgroundRepeat': 'no-repeat',\n 'position': 'relative',\n\n // left: `${(window.innerWidth - width) / 2}px`,\n // top: `${(window.innerHeight - height) / 2}px`,\n })\n\n const maskingDiv = document.createElement('div')\n maskingDiv.className = 'dialog-mask'\n dialogDiv.appendChild(maskingDiv)\n\n // 关闭按钮\n const closeSpan = document.createElement('span')\n closeSpan.className = 'dialog-close'\n dialogDiv.appendChild(closeSpan)\n closeSpan.addEventListener('click', () => {\n this.close()\n })\n\n // 操作按钮\n const op = document.createElement('div')\n op.className = 'dialog-operate'\n dialogDiv.appendChild(op)\n const opList = ['left', 'right', 'top', 'bottom']\n opList.forEach((key) => {\n const btnSpan = document.createElement('span')\n btnSpan.className = `dialog-operate-btn dialog-operate-${key}`\n\n const handleClick = () => {\n switch (key) {\n case 'top':\n camera.rotation.x -= 0.01\n break\n case 'bottom':\n camera.rotation.x += 0.01\n break\n case 'left':\n camera.rotation.y += 0.01\n break\n case 'right':\n camera.rotation.y -= 0.01\n break\n }\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n\n let clock\n let longPress\n let time\n\n btnSpan.addEventListener('mousedown', () => {\n clock = new Clock()\n clock.getDelta()\n\n time = setTimeout(() => {\n longPress = use.useframe(handleClick)\n }, 500)\n })\n\n btnSpan.addEventListener('mouseup', () => {\n if (clock.getDelta() < 0.5)\n handleClick()\n\n clearTimeout(time)\n longPress && longPress()\n })\n\n // btnSpan.addEventListener('click', handleClick)\n op.appendChild(btnSpan)\n })\n\n const cb = (fov) => {\n if (!fov)\n return\n camera.fov = fov\n camera.updateProjectionMatrix()\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n const slider = this.getFovView(cb)\n dialogDiv.appendChild(slider)\n\n const borderMesh = new Css2DPoi(dialogDiv)\n borderMesh.position.copy(sprite.position)\n return borderMesh\n }\n\n getFovView(cb) {\n const data = [{ text: '0.5', fov: '90' }, { text: '1', fov: '80' }, { text: '1.5', fov: '70' }, { text: '2.0', fov: '60' }, { text: '2.5', fov: '50' }, { text: '3.0', fov: '40' }, { text: '3.5', fov: '30' }]\n\n const container = document.createElement('div')\n container.className = 'dialog-slider-container'\n\n const itemsContainer = document.createElement('div')\n itemsContainer.className = 'dialog-slider-items'\n container.appendChild(itemsContainer)\n data.forEach((item) => {\n const div = document.createElement('div')\n div.className = 'dialog-slider-item'\n div.innerHTML = `${item.text} X&nbsp;&nbsp;-`\n div.setAttribute('fov', item.fov)\n itemsContainer.appendChild(div)\n })\n\n const items = itemsContainer.children\n const itemHeight = 58\n const totalHeight = items.length * itemHeight\n\n const cloneItems = () => {\n Array.from(items).forEach((item) => {\n itemsContainer.appendChild(item.cloneNode(true))\n })\n }\n\n cloneItems()\n cloneItems()\n\n const highlightMiddleItem = () => {\n const middlePosition = container.scrollTop + container.clientHeight / 2\n const middleIndex = Math.floor(middlePosition / itemHeight) % items.length\n Array.from(items).forEach((item, index) => {\n if (index === middleIndex) {\n item.classList.add('highlight')\n cb(item.getAttribute('fov'))\n }\n else {\n item.classList.remove('highlight')\n }\n })\n }\n container.addEventListener('scroll', () => {\n if (container.scrollTop <= 0)\n container.scrollTop += totalHeight\n else if (container.scrollTop >= totalHeight * 2)\n container.scrollTop -= totalHeight\n\n highlightMiddleItem()\n })\n const smoothScrollTo = (targetPosition) => {\n const startPosition = container.scrollTop\n const distance = targetPosition - startPosition\n const duration = 200\n let start = null\n\n const step = (timestamp) => {\n if (!start)\n start = timestamp\n const progress = timestamp - start\n const progressRatio = Math.min(progress / duration, 1)\n container.scrollTop = startPosition + distance * progressRatio\n if (progress < duration)\n window.requestAnimationFrame(step)\n else\n highlightMiddleItem()\n }\n\n window.requestAnimationFrame(step)\n }\n\n const scrollToItem = (item) => {\n const index = Array.from(items).indexOf(item)\n const targetPosition = index * itemHeight - container.clientHeight / 2 + itemHeight / 2\n smoothScrollTo(targetPosition)\n }\n Array.from(items).forEach((item) => {\n item.addEventListener('click', () => { scrollToItem(item) })\n })\n setTimeout(() => {\n // items && (items[3] as HTMLDivElement).click()\n container.scrollTop = totalHeight\n highlightMiddleItem()\n })\n\n const conSlider = document.createElement('div')\n conSlider.className = 'dialog-slider-bg'\n conSlider.appendChild(container)\n return conSlider\n }\n\n addStyle() {\n // 设置 CSS 规则\n const css = `\n .page-mask{\n position: fixed;\n top: 0;\n left: 0;\n bottom:0;\n right:0;\n //width: 100%;\n //height: 100%;\n background-color: rgba(0, 0, 0, 0.5); /* 半透明背景 */\n //filter: blur(10px); /* 模糊效果 */\n z-index: 1 !important; /* 确保蒙版位于其他元素之上 */\n }\n .dialog-mask{\n position: absolute;\n top: 8px;\n left: 6px;\n width: calc(100% - 12px);\n height: calc(100% - 16px);\n background: linear-gradient(90deg, rgba(0, 0, 0,.4) 0%,rgba(0, 0, 0,.2) 10%, rgba(0, 0, 0,0) 20%, rgba(0,0,0, 0) 50%, rgba(0, 0, 0,0) 80%, rgba(0, 0, 0,0.2) 90%, rgba(0, 0, 0,.4) 100%);\n pointer-events: auto;\n opacity: 1;\n transform: perspective(100px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);\n transform-origin: center center;\n }\n .hot-back{\n width: 70px;\n height: 25px;\n border-radius: 2px;\n color: #fff;\n font-weight: bold;\n font-size: 14px;\n border:1px solid #d1ae6d;\n background-color: #c8ab75;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n left: 30px;\n top: 30px;\n pointer-events: auto;\n }\n .hot-back:hover{\n background-color:#c8a158;\n }\n .dialog-close{\n width: 26px;\n height: 26px;\n background-image: url(${usePath}p4/close.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n color: #fff;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 28px;\n top: 20px;\n pointer-events: auto;\n }\n .dialog-operate{\n width: 199px;\n height: 182px;\n background-image: url(${usePath}p4/operate.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n position: absolute;\n right: 20px;\n bottom: 20px;\n pointer-events: auto;\n }\n\n .dialog-operate-btn{\n width: 20px;\n height: 34px;\n position: absolute;\n cursor: pointer;\n pointer-events: auto;\n background-image: url(${usePath}p4/arrow1.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n transition: all .2s;\n }\n .dialog-operate-btn:hover{\n background-image: url(${usePath}p4/arrow2.png);\n }\n\n .dialog-operate-top{\n transform: rotateZ(90deg);\n left: calc(50% - 9px);\n top: 40px;\n }\n .dialog-operate-top:hover{\n border-bottom-color:#fff2dd;\n }\n\n .dialog-operate-bottom{\n transform: rotateZ(270deg);\n left: calc(50% - 9px);\n bottom: 40px;\n }\n\n .dialog-operate-bottom:hover{\n border-top-color:#fff2dd;\n }\n\n .dialog-operate-left{\n top: calc(50% - 18px);\n left: 58px;\n }\n .dialog-operate-left:hover{\n border-right-color:#fff2dd;\n }\n\n .dialog-operate-right{\n transform: rotateZ(180deg);\n top: calc(50% - 18px);\n right: 57px;\n }\n\n .dialog-operate-right:hover{\n border-left-color:#fff2dd;\n }\n .dialog-slider-bg {\n width: 166px;\n height: 493px;\n position:absolute;\n right:36px;\n top:100px;\n background: url(${usePath}p4/fov-bg.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n pointer-events: auto;\n }\n\n .dialog-slider-container {\n height: 406px;\n margin: 44px 21px;\n overflow: auto;\n position: relative;\n text-align: center;\n scrollbar-width: none;\n -ms-overflow-style: none;\n pointer-events: auto;\n }\n\n .dialog-slider-container::-webkit-scrollbar {\n display: none;\n /* Safari and Chrome */\n }\n\n .dialog-slider-items {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .dialog-slider-item {\n width: 100%;\n height: 58px;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n font-size: 20px;\n color: #fff;\n transition: all .2s;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .dialog-slider-item.highlight {\n background-image: url(${usePath}p4/fov-border.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n font-size: 28px;\n color: #ffda77;\n }\n`\n // 创建一个 <style> 元素\n const styleElement = document.createElement('style')\n styleElement.appendChild(document.createTextNode(css))\n // 将 <style> 元素添加到 <head> 中\n document.head.appendChild(styleElement)\n }\n\n close() {\n if (this.cuteSprites) {\n this.cuteSprites.forEach((mesh) => {\n mesh.remove()\n mesh.removeFromParent()\n })\n this.cuteSprites.length = 0\n }\n this.eventList.has('close') && this.eventList.get('close')()\n // 移除事件监听\n this.eventListener.forEach((fn) => {\n fn()\n })\n this.eventListener.clear()\n this.eventList.clear()\n }\n}\n\nclass HeadMap {\n TemperatureColorStops = {\n 1.0: '#f00',\n 0.9: '#e2fa00',\n 0.6: '#33f900',\n 0.3: '#0349df',\n 0.0: '#0f00ff',\n }\n\n eventList: Map<string, Function> = new Map()\n backEle: HTMLElement\n heatMapPlane: Mesh\n canvasList = []\n isShow = false\n\n constructor() {\n\n }\n\n // 热力图\n create(distance) {\n this.isShow = true\n const heatmap = heatMap.create({\n container: this.createDom(),\n gradient: this.TemperatureColorStops,\n })\n let len = 100\n let [width, height] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n width = dom.clientWidth\n height = dom.clientHeight\n }\n\n const points = []\n let max = 0\n while (len--) {\n const val = Math.floor(Math.random() * 5)\n max = Math.max(max, val)\n const point = {\n x: Math.floor(Math.random() * width),\n y: Math.floor(Math.random() * height),\n value: val,\n }\n points.push(point)\n }\n heatmap.setData({\n max,\n data: points,\n })\n\n // 灰度图\n const greymap = heatMap.create({\n container: this.createDom(),\n gradient: {\n '0': 'black',\n '1.0': 'white',\n },\n })\n\n greymap.setData({\n max,\n data: points,\n })\n const heatMapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n side: DoubleSide,\n vertexShader: `varying vec2 vUv;\n uniform float Zscale;\n uniform sampler2D greyMap;\n void main() {\n vUv = uv;\n vec4 frgColor = texture2D(greyMap, uv);//获取灰度图点位信息\n float height = Zscale * frgColor.a;//通过灰度图的rgb*需要设置的高度计算出热力图每个点位最终在z轴高度\n vec3 transformed = vec3( position.x, position.y, height);//重新组装点坐标\n gl_Position = projectionMatrix * modelViewMatrix * vec4(transformed, 1.0);//渲染点位\n \n }\n `,\n fragmentShader: `varying vec2 vUv;\n uniform sampler2D heatMap;//热力图\n uniform vec3 u_color;//基础颜色\n uniform float u_opacity; // 透明度\n void main() {\n //vec4 alphaColor = texture2D(heatMap, vUv);\n // gl_FragColor = alphaColor;\n gl_FragColor = vec4(u_color, u_opacity) * texture2D(heatMap, vUv);//把热力图颜色和透明度进行渲染\n }`,\n uniforms: {\n heatMap: {\n value: { value: undefined },\n },\n greyMap: {\n value: { value: undefined },\n },\n Zscale: { value: 0 }, // 高度参数\n u_color: {\n value: new Color('rgb(255, 255, 255)'),\n },\n u_opacity: {\n value: 0.8,\n },\n },\n })\n\n const texture = new Texture(heatmap._renderer.canvas)\n texture.needsUpdate = true\n const greyTexture = new Texture(greymap._renderer.canvas)\n greyTexture.needsUpdate = true\n\n heatMapMaterial.uniforms.heatMap.value = texture\n heatMapMaterial.uniforms.greyMap.value = greyTexture\n\n const { camera } = use.useScene()\n // 计算平面的尺寸\n const h = 2 * Math.tan(camera.fov * Math.PI / 360) * distance * 2 * 0.85\n const w = h * camera.aspect\n\n const heatMapGeometry = new PlaneGeometry(60, 60 * height / width) // 3d热力图大小,及分块数量\n\n const heatMapPlane = new Mesh(heatMapGeometry, heatMapMaterial)\n heatMapPlane.rotation.set(-Math.PI / 2, 0, 0)\n\n this.heatMapPlane = heatMapPlane\n return heatMapPlane\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n addBack() {\n this.backEle = document.createElement('div')\n this.backEle.className = 'hot-back'\n this.backEle.innerHTML = '返回'\n document.body.appendChild(this.backEle)\n this.backEle.addEventListener('click', () => {\n this.eventList.has('close') && this.eventList.get('close')()\n // this.remove()\n })\n }\n\n createDom() {\n // 创建一个新的 canvas 元素\n const canvas = document.createElement('canvas')\n canvas.style.zIndex = '-1'\n // 设置 canvas 元素的宽度和高度\n canvas.width = window.innerWidth\n canvas.height = window.innerHeight\n document.body.appendChild(canvas)\n this.canvasList.push(canvas)\n return canvas\n }\n\n remove() {\n this.canvasList.forEach((canvas) => {\n canvas.remove()\n })\n // this.eventList.has('close') && this.eventList.get('close')()\n this.canvasList.length = 0\n this.backEle && this.backEle.remove()\n if (this.heatMapPlane) {\n this.heatMapPlane.removeFromParent()\n this.heatMapPlane.remove()\n }\n this.isShow = false\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_defineProperty","obj","_toPrimitive","String","toPrimitive","Number","AdditiveBlending","Box3","CircleGeometry","Clock","Color","DoubleSide","Group","MathUtils","Matrix4","Mesh","MeshBasicMaterial","ModelLoader","PerspectiveCamera","PlaneGeometry","ShaderMaterial","Sprite","SpriteMaterial","Texture","TextureLoader","Vector3","gsap","use","Css2DPoi","SpritePoi","heatMap","MessageType","sendToMessage","EMessageStatus","loadingManager","usePath","data","camera","id","position","fovDefault","fovRange","dialogCamera","rotation","probePoint","warn","load","CameraPoi","gobal","Map","Set","dialogManage","Dialog","addStyle","_generateObject","_callee","_this","_data$probePoint","model","point","rotatingRight","unFrame","_callee$","_context","loadGLTF","concat","gltf","region","group","sprite","scale","Math","PI","fromArray","copy","add","scan","scene","clone","addScalar","x","cameraMesh","set","interactionManager","cameraEvent","MethanePoint","item","mesh","probeEvent","to","duration","ease","yoyo","repeat","warnMesh","useframe","children","z","abs","eventListener","generateObject","_this2","_ref","_callee2","isClose","_use$useScene","targetPosition","camaraPosition","_callee2$","_context2","currentDialogMesh","close","headMap","isShow","closeHotmap","useScene","startPosition","cameraLookAt","getWorldDirection","messageType","Event","messageName","status","Success","toArray","cameraUtil","setMeshVisible","getMesh","addEventListener","visible","removeEventListener","_this3","_use$useScene2","HeadMap","unClick","_callee3","_callee3$","_context3","togglePoi","distanceTo","_use$useScene3","orbitControls","enabled","remove","_use$useScene4","removeFromParent","clear","_use$useScene5","geometry","texture","circle","map","side","transparent","rotateX","createBack","material","vertexShader","fragmentShader","blending","depthTest","color","numPoints","random","cameraManage","manage","_getMesh","_callee4","careraParams","_this4","_this$manage$gobal$sc","cuteSprite","_callee4$","_context4","window","innerWidth","innerHeight","setCustomPerspective","depthWrite","center","renderOrder","updateScale","reslove","setTimeout","borderMesh","getBorderMesh","cuteSprites","_x","_x2","getTarget","cameraPosition","angleX","degToRad","angleY","angleZ","rotationMatrix","makeRotationX","multiply","makeRotationY","makeRotationZ","cameraDirection","targetDirection","applyMatrix4","getBoxSize","_use$useScene6","devicePixelRatio","bbox","setFromObject","min","project","max","console","log","_ref3","w","dom","document","querySelector","clientWidth","clientHeight","ratio","fov","width","height","scaleFactor","_use$useScene7","minDistance","maxDistance","objectPosition","distance","clampedDistance","eventName","eventList","has","_this5","_this$getBoxSize","dialogDiv","createElement","assign","style","maskingDiv","className","appendChild","closeSpan","op","opList","btnSpan","handleClick","_this5$manage$gobal$s","clock","longPress","time","getDelta","clearTimeout","cb","updateProjectionMatrix","_this5$manage$gobal$s2","slider","getFovView","text","container","itemsContainer","div","innerHTML","setAttribute","items","itemHeight","totalHeight","cloneItems","Array","from","cloneNode","highlightMiddleItem","middlePosition","scrollTop","middleIndex","floor","index","classList","getAttribute","smoothScrollTo","start","step","timestamp","progress","progressRatio","requestAnimationFrame","scrollToItem","indexOf","conSlider","css","styleElement","createTextNode","head","get","heatmap","createDom","gradient","TemperatureColorStops","len","_ref4","points","val","setData","greymap","heatMapMaterial","uniforms","greyMap","Zscale","u_color","u_opacity","_renderer","canvas","needsUpdate","greyTexture","_use$useScene8","tan","aspect","heatMapGeometry","heatMapPlane","addBack","_this6","backEle","body","zIndex","canvasList"],"sources":["../../../src/factory/unit/CameraPoi.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { AdditiveBlending, Box3, CircleGeometry, Clock, Color, DoubleSide, Euler, Group, MathUtils, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, PerspectiveCamera, PlaneGeometry, ShaderMaterial, Sprite, SpriteMaterial, Texture, TextureLoader, Vector3, WebGLRenderTarget, gsap, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, SpritePoi } from '@anov/3d-ability'\nimport heatMap from 'anov-heat-map'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport { loadingManager, usePath } from '../3d'\n\n// @ts-ignore\nimport type Factory3D from '../3d'\n\nconst data = {\n camera: [\n {\n id: '1',\n name: '摄像头1',\n position: [-315, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-315, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '2',\n name: '摄像头2',\n position: [30, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [30, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '3',\n name: '摄像头3',\n position: [360, 30, -150],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [360, 30, -150],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '4',\n name: '摄像头4',\n position: [-320, 30, 32],\n dialogCamera: {\n position: [-320, 30, 32],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '5',\n name: '摄像头5',\n position: [-307, 30, 170],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [-307, 30, 170],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '6',\n name: '摄像头6',\n position: [77, 30, 96],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [77, 30, 96],\n rotation: [30, 180, 0],\n },\n },\n {\n id: '7',\n name: '摄像头7',\n position: [404, 30, 85],\n fovDefault: 60,\n fovRange: [30, 120],\n dialogCamera: {\n position: [404, 30, 85],\n rotation: [30, 180, 0],\n },\n },\n ],\n probePoint: [\n {\n id: '1',\n name: '异常监测点1',\n warn: true,\n position: [56, 21, 86],\n },\n {\n id: '2',\n name: '甲烷监测点2',\n warn: false,\n position: [384, 21, 75],\n },\n {\n id: '3',\n name: '甲烷监测点3',\n warn: false,\n position: [9, 21, -134],\n },\n ],\n}\n\nconst load = new ModelLoader()\nclass CameraPoi {\n gobal: Factory3D\n cameraMesh: Map<string, Group> = new Map()\n warnMesh: Map<string, SpritePoi> = new Map()\n headMap: HeadMap\n dialogManage: Dialog\n eventListener: Set<Function> = new Set()\n\n currentDialogMesh: Group\n startPosition: Vector3\n cameraLookAt: Vector3\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.dialogManage = new Dialog(this)\n this.dialogManage.addStyle()\n }\n\n async generateObject() {\n const model = await load.loadGLTF(`${usePath}shexiang.glb`, false, true, './draco/', (gltf) => {\n return gltf\n })\n\n data.camera.forEach((region) => {\n const group = new Group()\n group.name = region.id\n const sprite = new SpritePoi(`${usePath}p4/camera.png`, { scale: [22, 22, 1] })\n sprite.rotation.y = Math.PI\n const position = new Vector3().fromArray(region.position)\n sprite.position.copy(position)\n group.add(sprite)\n\n const scan = model.scene.clone()\n scan.scale.addScalar(8)\n scan.rotation.x = (-Math.PI / 2) + 0.5\n scan.position.copy(position.clone().add(new Vector3(0, -2, 0)))\n group.add(scan)\n\n this.cameraMesh.set(region.name, group)\n this.gobal.interactionManager.add(group)\n this.cameraEvent(group, region)\n this.gobal.scene.add(group)\n })\n\n // 甲烷检测点\n const point = new MethanePoint()\n data.probePoint?.forEach((item) => {\n let mesh\n if (item.warn) {\n mesh = new SpritePoi(`${usePath}p4/warn.png`, { scale: [22, 22, 1] })\n this.gobal.interactionManager.add(mesh)\n this.probeEvent(mesh, item)\n // 使用GSAP创建跳动动画\n gsap.to(mesh.position, {\n y: '+=3', // 上跳10个单位\n duration: 0.2, // 动画持续时间\n ease: 'power1.inOut', // 缓动函数\n yoyo: true, // 循环\n repeat: -1, // 无限重复\n })\n }\n else {\n mesh = point.create()\n }\n mesh.position.copy(new Vector3().fromArray(item.position))\n this.warnMesh.set(item.name, mesh)\n\n this.gobal.scene.add(mesh)\n })\n // 设置左右旋转的标志位和旋转速度\n let rotatingRight = true // 是否正在向右转动\n\n const unFrame = use.useframe(() => {\n this.cameraMesh.forEach((group) => {\n const scan = group.children[1]\n // 更新相机的旋转角度\n if (rotatingRight) {\n // 向右旋转\n scan.rotation.z += 0.005\n }\n else {\n // 向左旋转\n scan.rotation.z -= 0.005\n }\n\n // 检查是否达到目标旋转角度\n if (Math.abs(scan.rotation.z) >= Math.abs(Math.PI / 4)) {\n // 到达目标角度,切换旋转方向并更新目标角度\n rotatingRight = !rotatingRight\n }\n })\n })\n this.eventListener.add(unFrame)\n }\n\n cameraEvent(sprite: Group, region: any) {\n const fn = async () => {\n if (this.currentDialogMesh) {\n const isClose = this.currentDialogMesh.name === region.name\n this.dialogManage.close()\n if (isClose)\n return\n }\n else {\n if (this.headMap && this.headMap.isShow) {\n this.closeHotmap()\n }\n else {\n const { camera } = use.useScene()\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n }\n }\n\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraStatus',\n status: EMessageStatus.Success,\n },\n {\n id: region.id,\n })\n\n const position = new Vector3().fromArray(region.position)\n const targetPosition: [number, number, number] = position.clone().toArray()\n const camaraPosition: [number, number, number] = position.clone().add(new Vector3(0, 40, 80)).toArray()\n\n this.gobal.cameraUtil.set({\n position: camaraPosition,\n target: targetPosition,\n })\n this.setMeshVisible(false)\n\n this.currentDialogMesh = await this.dialogManage.getMesh(position, region) as Group\n this.dialogManage.addEventListener('close', () => {\n // 初始相机到原始位置\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n this.setMeshVisible(true)\n this.currentDialogMesh = null\n this.cameraMesh.forEach((mesh) => {\n mesh.visible = true\n })\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCancelCameraStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\n })\n this.currentDialogMesh.name = region.name\n this.gobal.scene.add(this.currentDialogMesh)\n }\n\n sprite.addEventListener('click', fn)\n this.eventListener.add(() => sprite.removeEventListener('click', fn))\n }\n\n probeEvent(sprite: SpritePoi, region) {\n const { camera } = use.useScene()\n this.headMap = new HeadMap()\n const unClick = sprite.addEventListener('click', async () => {\n if (!sprite.visible)\n return\n sprite.visible = false\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onGasMonitorStatus',\n status: EMessageStatus.Success,\n },\n { id: region.id },\n )\n this.togglePoi(false)\n const position = new Vector3().fromArray(region.position)\n const camaraPosition = position.clone().add(new Vector3(0, 30, 0))\n\n this.startPosition = camera.position.clone()\n // 获取相机朝向\n this.cameraLookAt = new Vector3() // 创建一个向量来存储相机朝向\n camera.getWorldDirection(this.cameraLookAt) // 获取相机朝向并存储在向量中\n this.gobal.cameraUtil.set({\n position: camaraPosition.toArray(),\n target: position.clone().toArray(),\n }).then(() => {\n const mesh = this.headMap.create(camaraPosition.distanceTo(position))\n mesh.position.copy(sprite.position)\n mesh.position.y = 0.5\n this.gobal.scene.add(mesh)\n\n const { orbitControls } = use.useScene()\n orbitControls.enabled = false\n\n // this.headMap.addBack()\n this.headMap.addEventListener('close', () => {\n this.closeHotmap()\n // this.togglePoi(true)\n\n // this.gobal.cameraUtil.set({\n // position: this.startPosition.toArray(),\n // target: this.cameraLookAt.toArray(),\n // })\n })\n })\n })\n this.eventListener.add(unClick)\n }\n\n setMeshVisible(visible) {\n this.cameraMesh.forEach(mesh => mesh.visible = visible)\n this.warnMesh.forEach(mesh => mesh.visible = visible)\n }\n\n closeHotmap() {\n if (!this.headMap)\n return\n this.headMap.remove()\n this.togglePoi(true)\n\n this.gobal.cameraUtil.set({\n position: this.startPosition.toArray(),\n target: this.cameraLookAt.toArray(),\n })\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n\n togglePoi(visible = true) {\n this.warnMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n this.cameraMesh.forEach((sprite) => {\n sprite.visible = visible\n })\n }\n\n remove() {\n this.dialogManage.close()\n // 删除摄像机POI点\n this.cameraMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.cameraMesh.clear()\n this.warnMesh.forEach((sprite) => {\n sprite.removeFromParent()\n sprite.remove()\n })\n this.warnMesh.clear()\n this.eventListener.forEach((fn) => {\n fn()\n })\n // 热力图\n if (this.headMap) {\n this.headMap.remove()\n const { orbitControls } = use.useScene()\n orbitControls.enabled = true\n }\n this.eventListener.clear()\n }\n}\n\nexport default CameraPoi\n\nclass MethanePoint {\n constructor() {\n\n }\n\n create() {\n // 定义Shader的uniform变量\n\n const geometry = new PlaneGeometry(10, 10)\n const texture = new TextureLoader(loadingManager).load(`${usePath}p4/monitor.png`)\n const circle = new Mesh(geometry, new MeshBasicMaterial({\n map: texture,\n side: DoubleSide,\n transparent: true,\n }))\n circle.rotateX(-Math.PI / 3)\n return circle\n }\n\n // 随机多点的方案\n createBack() {\n // 定义Shader的uniform变量\n\n const group = new Group()\n const geometry = new CircleGeometry(2, 32)\n // 创建自定义着色器材质\n const material = new ShaderMaterial({\n vertexShader: `\n void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n gl_PointSize = 20.0; // 设置点的大小\n }\n `,\n fragmentShader: `\n void main() {\n vec2 center = vec2(0.5, 0.5); // 圆心坐标\n vec2 toCenter = gl_PointCoord - center; // 计算点到圆心的向量\n float distance = length(toCenter); // 计算点到圆心的距离\n if (distance > 0.5) discard; // 超出半径范围的点直接丢弃\n vec3 innerColor = vec3(1.0, .8, 0.0); // 内圈颜色为黄色\n vec3 outerColor = vec3(0.8, 0.4, 0.0); // 外圈颜色为深橘色\n \n vec3 finalColor = mix(innerColor, outerColor, smoothstep(0.1, 0.23, distance)); // 根据距离混合颜色\n if(distance>0.3) finalColor = mix(finalColor, vec3(0.75, 0.4, 0.0), smoothstep(0.25, 0.3, distance)); // 根据距离混合颜色\n gl_FragColor = vec4(finalColor, 1.0); // 设置片段颜色\n }\n `,\n blending: AdditiveBlending,\n depthTest: false,\n transparent: true,\n side: DoubleSide,\n })\n const circle = new Mesh(geometry, new MeshBasicMaterial({ color: '#f7a157' }))\n const numPoints = 100 // 点的数量\n\n for (let i = 0; i < numPoints; i++) {\n const x = Math.random() * 700 - 322 // 随机生成 x 坐标\n const z = Math.random() * 340 - 144 // 随机生成 z 坐标\n const point = circle.clone()\n point.position.copy(new Vector3(x, 20.55, z))\n point.rotateX(-Math.PI / 2)\n group.add(point)\n }\n\n return group\n }\n}\n\nclass Dialog {\n manage: CameraPoi\n\n camera: PerspectiveCamera\n cameraPosition: Vector3\n cameraTargetPosition: Vector3\n\n cuteSprites: Array<Object3D> = []\n eventListener: Set<Function> = new Set()\n eventList: Map<string, Function> = new Map()\n\n constructor(cameraManage) {\n this.manage = cameraManage\n }\n\n async getMesh(position, careraParams) {\n this.close()\n this.camera = new PerspectiveCamera(\n careraParams.fovDefault || 60, window.innerWidth / window.innerHeight, 0.1, 10000,\n )\n this.camera.position.copy(new Vector3().fromArray(careraParams.position))\n this.camera.rotation.set(Math.PI / 6, Math.PI, 0)\n\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(this.camera)\n\n const cuteSprite = new Sprite(new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false }))\n cuteSprite.center.set(0.5, 0.5)\n cuteSprite.renderOrder = 5\n cuteSprite.position.copy(position)\n\n const unFrame = use.useframe(() => {\n this.updateScale(cuteSprite)\n })\n this.eventListener.add(unFrame)\n\n return new Promise((reslove) => {\n setTimeout(() => {\n const borderMesh = this.getBorderMesh(this.camera, cuteSprite)\n const group = new Group()\n group.add(borderMesh)\n group.add(cuteSprite)\n this.cuteSprites.push(borderMesh)\n this.cuteSprites.push(cuteSprite)\n close()\n reslove(group)\n }, 1000)\n })\n }\n\n getTarget(cameraPosition, rotation = [0, 30, 0]) {\n // 将旋转角度转换为弧度\n const angleX = MathUtils.degToRad(rotation[0])\n const angleY = MathUtils.degToRad(rotation[1])\n const angleZ = MathUtils.degToRad(rotation[2])\n\n // 创建旋转矩阵\n const rotationMatrix = new Matrix4()\n rotationMatrix.makeRotationX(angleX)\n rotationMatrix.multiply(new Matrix4().makeRotationY(angleY))\n rotationMatrix.multiply(new Matrix4().makeRotationZ(angleZ))\n\n // 定义相机的方向向量(例如,相机的方向默认为(0, 0, -1))\n const cameraDirection = new Vector3(0, 0, 1)\n\n // 将相机的方向向量乘以旋转矩阵,得到相机目标位置的向量\n const targetDirection = cameraDirection.clone().applyMatrix4(rotationMatrix)\n\n // 计算相机的目标位置\n return cameraPosition.clone().add(targetDirection)\n }\n\n getBoxSize(sprite: Sprite) {\n const { camera } = use.useScene()\n\n // 获取设备像素比\n const devicePixelRatio = window.devicePixelRatio || 1\n // 获取精灵对象的边界框\n const bbox = new Box3().setFromObject(sprite)\n // 将边界框的最小和最大顶点转换为屏幕坐标\n const min = bbox.min.project(camera)\n const max = bbox.max.project(camera)\n console.log('min:', min)\n console.log('max:', max)\n\n let [w, h] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n w = dom.clientWidth\n h = dom.clientHeight\n }\n let ratio = 0\n if (camera.fov >= 60)\n ratio = -0.05 * (camera.fov - 60) / 30\n else\n ratio = 0.02 * (60 - camera.fov) / 30\n\n // 计算精灵在屏幕中的宽度和高度像素值\n let width = (max.x - min.x) * w / devicePixelRatio * (0.97 + ratio)\n let height = (max.y - min.y) * h / devicePixelRatio * (1.089 + ratio)\n\n const scaleFactor = devicePixelRatio * 0.5\n // 应用缩放系数\n width *= scaleFactor\n height *= scaleFactor\n\n return { width, height }\n }\n\n updateScale(sprite: Sprite) {\n const { camera } = use.useScene()\n const ratio = 60 / camera.fov\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n // 获取相机和物体的世界坐标位置\n const cameraPosition = camera?.position\n const objectPosition = sprite.position\n\n // 计算相机和物体之间的距离\n const distance = cameraPosition?.distanceTo(objectPosition) || 0.1\n\n // 使用 Math.min() 和 Math.max() 方法限制 resultDistance 的范围\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n // console.log('clampedDistance:',clampedDistance)\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n sprite.scale.copy(new Vector3(clampedDistance * (1.3281 / ratio), (0.8316 / ratio) * clampedDistance, 1))\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n getBorderMesh(camera, sprite: Sprite) {\n let { width, height } = this.getBoxSize(sprite)\n\n // 弹窗容器\n const dialogDiv = document.createElement('div')\n width += 10\n height += 10\n Object.assign(dialogDiv.style, {\n 'width': `${width}px`,\n 'height': `${height}px`,\n 'z-index': '3 !important',\n 'backgroundImage': `url(${usePath}p4/border.png)`,\n 'backgroundSize': '100% 100%',\n 'backgroundRepeat': 'no-repeat',\n 'position': 'relative',\n\n // left: `${(window.innerWidth - width) / 2}px`,\n // top: `${(window.innerHeight - height) / 2}px`,\n })\n\n const maskingDiv = document.createElement('div')\n maskingDiv.className = 'dialog-mask'\n dialogDiv.appendChild(maskingDiv)\n\n // 关闭按钮\n const closeSpan = document.createElement('span')\n closeSpan.className = 'dialog-close'\n dialogDiv.appendChild(closeSpan)\n closeSpan.addEventListener('click', () => {\n this.close()\n })\n\n // 操作按钮\n const op = document.createElement('div')\n op.className = 'dialog-operate'\n dialogDiv.appendChild(op)\n const opList = ['left', 'right', 'top', 'bottom']\n opList.forEach((key) => {\n const btnSpan = document.createElement('span')\n btnSpan.className = `dialog-operate-btn dialog-operate-${key}`\n\n const handleClick = () => {\n switch (key) {\n case 'top':\n camera.rotation.x -= 0.01\n break\n case 'bottom':\n camera.rotation.x += 0.01\n break\n case 'left':\n camera.rotation.y += 0.01\n break\n case 'right':\n camera.rotation.y -= 0.01\n break\n }\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n\n let clock\n let longPress\n let time\n\n btnSpan.addEventListener('mousedown', () => {\n clock = new Clock()\n clock.getDelta()\n\n time = setTimeout(() => {\n longPress = use.useframe(handleClick)\n }, 500)\n })\n\n btnSpan.addEventListener('mouseup', () => {\n if (clock.getDelta() < 0.5)\n handleClick()\n\n clearTimeout(time)\n longPress && longPress()\n })\n\n // btnSpan.addEventListener('click', handleClick)\n op.appendChild(btnSpan)\n })\n\n const cb = (fov) => {\n if (!fov)\n return\n camera.fov = fov\n camera.updateProjectionMatrix()\n const { texture, close } = this.manage.gobal.scene.setCustomPerspective(camera)\n sprite.material = new SpriteMaterial({ map: texture, depthTest: false, depthWrite: false })\n setTimeout(() => close(), 800)\n }\n const slider = this.getFovView(cb)\n dialogDiv.appendChild(slider)\n\n const borderMesh = new Css2DPoi(dialogDiv)\n borderMesh.position.copy(sprite.position)\n return borderMesh\n }\n\n getFovView(cb) {\n const data = [{ text: '0.5', fov: '90' }, { text: '1', fov: '80' }, { text: '1.5', fov: '70' }, { text: '2.0', fov: '60' }, { text: '2.5', fov: '50' }, { text: '3.0', fov: '40' }, { text: '3.5', fov: '30' }]\n\n const container = document.createElement('div')\n container.className = 'dialog-slider-container'\n\n const itemsContainer = document.createElement('div')\n itemsContainer.className = 'dialog-slider-items'\n container.appendChild(itemsContainer)\n data.forEach((item) => {\n const div = document.createElement('div')\n div.className = 'dialog-slider-item'\n div.innerHTML = `${item.text} X&nbsp;&nbsp;-`\n div.setAttribute('fov', item.fov)\n itemsContainer.appendChild(div)\n })\n\n const items = itemsContainer.children\n const itemHeight = 58\n const totalHeight = items.length * itemHeight\n\n const cloneItems = () => {\n Array.from(items).forEach((item) => {\n itemsContainer.appendChild(item.cloneNode(true))\n })\n }\n\n cloneItems()\n cloneItems()\n\n const highlightMiddleItem = () => {\n const middlePosition = container.scrollTop + container.clientHeight / 2\n const middleIndex = Math.floor(middlePosition / itemHeight) % items.length\n Array.from(items).forEach((item, index) => {\n if (index === middleIndex) {\n item.classList.add('highlight')\n cb(item.getAttribute('fov'))\n }\n else {\n item.classList.remove('highlight')\n }\n })\n }\n container.addEventListener('scroll', () => {\n if (container.scrollTop <= 0)\n container.scrollTop += totalHeight\n else if (container.scrollTop >= totalHeight * 2)\n container.scrollTop -= totalHeight\n\n highlightMiddleItem()\n })\n const smoothScrollTo = (targetPosition) => {\n const startPosition = container.scrollTop\n const distance = targetPosition - startPosition\n const duration = 200\n let start = null\n\n const step = (timestamp) => {\n if (!start)\n start = timestamp\n const progress = timestamp - start\n const progressRatio = Math.min(progress / duration, 1)\n container.scrollTop = startPosition + distance * progressRatio\n if (progress < duration)\n window.requestAnimationFrame(step)\n else\n highlightMiddleItem()\n }\n\n window.requestAnimationFrame(step)\n }\n\n const scrollToItem = (item) => {\n const index = Array.from(items).indexOf(item)\n const targetPosition = index * itemHeight - container.clientHeight / 2 + itemHeight / 2\n smoothScrollTo(targetPosition)\n }\n Array.from(items).forEach((item) => {\n item.addEventListener('click', () => { scrollToItem(item) })\n })\n setTimeout(() => {\n // items && (items[3] as HTMLDivElement).click()\n container.scrollTop = totalHeight\n highlightMiddleItem()\n })\n\n const conSlider = document.createElement('div')\n conSlider.className = 'dialog-slider-bg'\n conSlider.appendChild(container)\n return conSlider\n }\n\n addStyle() {\n // 设置 CSS 规则\n const css = `\n .page-mask{\n position: fixed;\n top: 0;\n left: 0;\n bottom:0;\n right:0;\n //width: 100%;\n //height: 100%;\n background-color: rgba(0, 0, 0, 0.5); /* 半透明背景 */\n //filter: blur(10px); /* 模糊效果 */\n z-index: 1 !important; /* 确保蒙版位于其他元素之上 */\n }\n .dialog-mask{\n position: absolute;\n top: 8px;\n left: 6px;\n width: calc(100% - 12px);\n height: calc(100% - 16px);\n background: linear-gradient(90deg, rgba(0, 0, 0,.4) 0%,rgba(0, 0, 0,.2) 10%, rgba(0, 0, 0,0) 20%, rgba(0,0,0, 0) 50%, rgba(0, 0, 0,0) 80%, rgba(0, 0, 0,0.2) 90%, rgba(0, 0, 0,.4) 100%);\n pointer-events: auto;\n opacity: 1;\n transform: perspective(100px) rotateX(0deg) rotateY(0deg) rotateZ(0deg);\n transform-origin: center center;\n }\n .hot-back{\n width: 70px;\n height: 25px;\n border-radius: 2px;\n color: #fff;\n font-weight: bold;\n font-size: 14px;\n border:1px solid #d1ae6d;\n background-color: #c8ab75;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n left: 30px;\n top: 30px;\n pointer-events: auto;\n }\n .hot-back:hover{\n background-color:#c8a158;\n }\n .dialog-close{\n width: 26px;\n height: 26px;\n background-image: url(${usePath}p4/close.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n color: #fff;\n cursor: pointer; /* 鼠标指针样式 */\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 28px;\n top: 20px;\n pointer-events: auto;\n }\n .dialog-operate{\n width: 199px;\n height: 182px;\n background-image: url(${usePath}p4/operate.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n position: absolute;\n right: 20px;\n bottom: 20px;\n pointer-events: auto;\n }\n\n .dialog-operate-btn{\n width: 20px;\n height: 34px;\n position: absolute;\n cursor: pointer;\n pointer-events: auto;\n background-image: url(${usePath}p4/arrow1.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n transition: all .2s;\n }\n .dialog-operate-btn:hover{\n background-image: url(${usePath}p4/arrow2.png);\n }\n\n .dialog-operate-top{\n transform: rotateZ(90deg);\n left: calc(50% - 9px);\n top: 40px;\n }\n .dialog-operate-top:hover{\n border-bottom-color:#fff2dd;\n }\n\n .dialog-operate-bottom{\n transform: rotateZ(270deg);\n left: calc(50% - 9px);\n bottom: 40px;\n }\n\n .dialog-operate-bottom:hover{\n border-top-color:#fff2dd;\n }\n\n .dialog-operate-left{\n top: calc(50% - 18px);\n left: 58px;\n }\n .dialog-operate-left:hover{\n border-right-color:#fff2dd;\n }\n\n .dialog-operate-right{\n transform: rotateZ(180deg);\n top: calc(50% - 18px);\n right: 57px;\n }\n\n .dialog-operate-right:hover{\n border-left-color:#fff2dd;\n }\n .dialog-slider-bg {\n width: 166px;\n height: 493px;\n position:absolute;\n right:36px;\n top:100px;\n background: url(${usePath}p4/fov-bg.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n pointer-events: auto;\n }\n\n .dialog-slider-container {\n height: 406px;\n margin: 44px 21px;\n overflow: auto;\n position: relative;\n text-align: center;\n scrollbar-width: none;\n -ms-overflow-style: none;\n pointer-events: auto;\n }\n\n .dialog-slider-container::-webkit-scrollbar {\n display: none;\n /* Safari and Chrome */\n }\n\n .dialog-slider-items {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .dialog-slider-item {\n width: 100%;\n height: 58px;\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n font-size: 20px;\n color: #fff;\n transition: all .2s;\n cursor: pointer;\n pointer-events: auto;\n }\n\n .dialog-slider-item.highlight {\n background-image: url(${usePath}p4/fov-border.png);\n background-size: 100% 100%;\n background-repeat: no-repeat;\n font-size: 28px;\n color: #ffda77;\n }\n`\n // 创建一个 <style> 元素\n const styleElement = document.createElement('style')\n styleElement.appendChild(document.createTextNode(css))\n // 将 <style> 元素添加到 <head> 中\n document.head.appendChild(styleElement)\n }\n\n close() {\n if (this.cuteSprites) {\n this.cuteSprites.forEach((mesh) => {\n mesh.remove()\n mesh.removeFromParent()\n })\n this.cuteSprites.length = 0\n }\n this.eventList.has('close') && this.eventList.get('close')()\n // 移除事件监听\n this.eventListener.forEach((fn) => {\n fn()\n })\n this.eventListener.clear()\n this.eventList.clear()\n }\n}\n\nclass HeadMap {\n TemperatureColorStops = {\n 1.0: '#f00',\n 0.9: '#e2fa00',\n 0.6: '#33f900',\n 0.3: '#0349df',\n 0.0: '#0f00ff',\n }\n\n eventList: Map<string, Function> = new Map()\n backEle: HTMLElement\n heatMapPlane: Mesh\n canvasList = []\n isShow = false\n\n constructor() {\n\n }\n\n // 热力图\n create(distance) {\n this.isShow = true\n const heatmap = heatMap.create({\n container: this.createDom(),\n gradient: this.TemperatureColorStops,\n })\n let len = 100\n let [width, height] = [window.innerWidth, window.innerHeight]\n const dom = document.querySelector('#app')\n if (dom) {\n width = dom.clientWidth\n height = dom.clientHeight\n }\n\n const points = []\n let max = 0\n while (len--) {\n const val = Math.floor(Math.random() * 5)\n max = Math.max(max, val)\n const point = {\n x: Math.floor(Math.random() * width),\n y: Math.floor(Math.random() * height),\n value: val,\n }\n points.push(point)\n }\n heatmap.setData({\n max,\n data: points,\n })\n\n // 灰度图\n const greymap = heatMap.create({\n container: this.createDom(),\n gradient: {\n '0': 'black',\n '1.0': 'white',\n },\n })\n\n greymap.setData({\n max,\n data: points,\n })\n const heatMapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n side: DoubleSide,\n vertexShader: `varying vec2 vUv;\n uniform float Zscale;\n uniform sampler2D greyMap;\n void main() {\n vUv = uv;\n vec4 frgColor = texture2D(greyMap, uv);//获取灰度图点位信息\n float height = Zscale * frgColor.a;//通过灰度图的rgb*需要设置的高度计算出热力图每个点位最终在z轴高度\n vec3 transformed = vec3( position.x, position.y, height);//重新组装点坐标\n gl_Position = projectionMatrix * modelViewMatrix * vec4(transformed, 1.0);//渲染点位\n \n }\n `,\n fragmentShader: `varying vec2 vUv;\n uniform sampler2D heatMap;//热力图\n uniform vec3 u_color;//基础颜色\n uniform float u_opacity; // 透明度\n void main() {\n //vec4 alphaColor = texture2D(heatMap, vUv);\n // gl_FragColor = alphaColor;\n gl_FragColor = vec4(u_color, u_opacity) * texture2D(heatMap, vUv);//把热力图颜色和透明度进行渲染\n }`,\n uniforms: {\n heatMap: {\n value: { value: undefined },\n },\n greyMap: {\n value: { value: undefined },\n },\n Zscale: { value: 0 }, // 高度参数\n u_color: {\n value: new Color('rgb(255, 255, 255)'),\n },\n u_opacity: {\n value: 0.8,\n },\n },\n })\n\n const texture = new Texture(heatmap._renderer.canvas)\n texture.needsUpdate = true\n const greyTexture = new Texture(greymap._renderer.canvas)\n greyTexture.needsUpdate = true\n\n heatMapMaterial.uniforms.heatMap.value = texture\n heatMapMaterial.uniforms.greyMap.value = greyTexture\n\n const { camera } = use.useScene()\n // 计算平面的尺寸\n const h = 2 * Math.tan(camera.fov * Math.PI / 360) * distance * 2 * 0.85\n const w = h * camera.aspect\n\n const heatMapGeometry = new PlaneGeometry(60, 60 * height / width) // 3d热力图大小,及分块数量\n\n const heatMapPlane = new Mesh(heatMapGeometry, heatMapMaterial)\n heatMapPlane.rotation.set(-Math.PI / 2, 0, 0)\n\n this.heatMapPlane = heatMapPlane\n return heatMapPlane\n }\n\n addEventListener(eventName, fn) {\n if (this.eventList.has(eventName))\n this.eventList[eventName] = fn\n else\n this.eventList.set(eventName, fn)\n }\n\n addBack() {\n this.backEle = document.createElement('div')\n this.backEle.className = 'hot-back'\n this.backEle.innerHTML = '返回'\n document.body.appendChild(this.backEle)\n this.backEle.addEventListener('click', () => {\n this.eventList.has('close') && this.eventList.get('close')()\n // this.remove()\n })\n }\n\n createDom() {\n // 创建一个新的 canvas 元素\n const canvas = document.createElement('canvas')\n canvas.style.zIndex = '-1'\n // 设置 canvas 元素的宽度和高度\n canvas.width = window.innerWidth\n canvas.height = window.innerHeight\n document.body.appendChild(canvas)\n this.canvasList.push(canvas)\n return canvas\n }\n\n remove() {\n this.canvasList.forEach((canvas) => {\n canvas.remove()\n })\n // this.eventList.has('close') && this.eventList.get('close')()\n this.canvasList.length = 0\n this.backEle && this.backEle.remove()\n if (this.heatMapPlane) {\n this.heatMapPlane.removeFromParent()\n this.heatMapPlane.remove()\n }\n this.isShow = false\n }\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
4
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  import { createAreaBoundingBox } from "../utils/areaBoundingBox";
9
9
  import regionMap from "../regionData";
10
10
  var AreaBoundingBoxManage = /*#__PURE__*/function () {
@@ -1 +1 @@
1
- {"version":3,"names":["createAreaBoundingBox","regionMap","AreaBoundingBoxManage","Map","key","currentArea","box","area","maxHigh","boundingBoxMap","set","id"],"sources":["../../../src/factory/unit/areaBoundingBox.ts"],"sourcesContent":["import type { Box3 } from '@anov/3d-core'\nimport { createAreaBoundingBox } from '../utils/areaBoundingBox'\nimport regionMap from '../regionData'\n\nclass AreaBoundingBoxManage {\n readonly boundingBoxMap: Map<string, Box3> = new Map()\n constructor() {}\n\n generateBoundingBox() {\n for (const key in regionMap) {\n const currentArea = regionMap[key]\n\n const box = createAreaBoundingBox(currentArea.area, currentArea.maxHigh || 100)\n this.boundingBoxMap.set(currentArea.id, box)\n }\n }\n}\n\nexport default AreaBoundingBoxManage\n"],"mappings":";;;;;;;AACA,SAASA,qBAAqB;AAC9B,OAAOC,SAAS;AAAqB,IAE/BC,qBAAqB;EAEzB,iCAAc;IAAA;IAAA,wCAD+B,IAAIC,GAAG,EAAE;EACvC;EAAC;IAAA;IAAA,OAEhB,+BAAsB;MACpB,KAAK,IAAMC,GAAG,IAAIH,SAAS,EAAE;QAC3B,IAAMI,WAAW,GAAGJ,SAAS,CAACG,GAAG,CAAC;QAElC,IAAME,GAAG,GAAGN,qBAAqB,CAACK,WAAW,CAACE,IAAI,EAAEF,WAAW,CAACG,OAAO,IAAI,GAAG,CAAC;QAC/E,IAAI,CAACC,cAAc,CAACC,GAAG,CAACL,WAAW,CAACM,EAAE,EAAEL,GAAG,CAAC;MAC9C;IACF;EAAC;EAAA;AAAA;AAGH,eAAeJ,qBAAqB"}
1
+ {"version":3,"names":["createAreaBoundingBox","regionMap","AreaBoundingBoxManage","_classCallCheck","_defineProperty","Map","_createClass","key","value","generateBoundingBox","currentArea","box","area","maxHigh","boundingBoxMap","set","id"],"sources":["../../../src/factory/unit/areaBoundingBox.ts"],"sourcesContent":["import type { Box3 } from '@anov/3d-core'\nimport { createAreaBoundingBox } from '../utils/areaBoundingBox'\nimport regionMap from '../regionData'\n\nclass AreaBoundingBoxManage {\n readonly boundingBoxMap: Map<string, Box3> = new Map()\n constructor() {}\n\n generateBoundingBox() {\n for (const key in regionMap) {\n const currentArea = regionMap[key]\n\n const box = createAreaBoundingBox(currentArea.area, currentArea.maxHigh || 100)\n this.boundingBoxMap.set(currentArea.id, box)\n }\n }\n}\n\nexport default AreaBoundingBoxManage\n"],"mappings":";;;;;;;AACA,SAASA,qBAAqB;AAC9B,OAAOC,SAAS;AAAqB,IAE/BC,qBAAqB;EAEzB,SAAAA,sBAAA,EAAc;IAAAC,eAAA,OAAAD,qBAAA;IAAAE,eAAA,yBAD+B,IAAIC,GAAG,CAAC,CAAC;EACvC;EAACC,YAAA,CAAAJ,qBAAA;IAAAK,GAAA;IAAAC,KAAA,EAEhB,SAAAC,oBAAA,EAAsB;MACpB,KAAK,IAAMF,GAAG,IAAIN,SAAS,EAAE;QAC3B,IAAMS,WAAW,GAAGT,SAAS,CAACM,GAAG,CAAC;QAElC,IAAMI,GAAG,GAAGX,qBAAqB,CAACU,WAAW,CAACE,IAAI,EAAEF,WAAW,CAACG,OAAO,IAAI,GAAG,CAAC;QAC/E,IAAI,CAACC,cAAc,CAACC,GAAG,CAACL,WAAW,CAACM,EAAE,EAAEL,GAAG,CAAC;MAC9C;IACF;EAAC;EAAA,OAAAT,qBAAA;AAAA;AAGH,eAAeA,qBAAqB"}
@@ -1,10 +1,10 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
3
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
4
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  import { Vector3, use, utils } from '@anov/3d-core';
9
9
  import { EAnimationType, SpritePoi } from '@anov/3d-ability';
10
10
  import { regionMap } from "../regionData";
@@ -137,7 +137,7 @@ var CircleManage = /*#__PURE__*/function () {
137
137
  var fn = function fn() {
138
138
  return _this2.updateScale(_this2.peoplePoi);
139
139
  };
140
- orbitControls === null || orbitControls === void 0 ? void 0 : orbitControls.addEventListener('change', fn);
140
+ orbitControls === null || orbitControls === void 0 || orbitControls.addEventListener('change', fn);
141
141
  _this2.poiRemoveEventListener = function () {
142
142
  return orbitControls === null || orbitControls === void 0 ? void 0 : orbitControls.removeEventListener('change', fn);
143
143
  };