@anov/3d 0.0.142 → 0.0.153
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/anov3d.js +1 -7
- package/dist/anov3d.js.map +1 -1
- package/dist/applicationApi.js +6 -5
- package/dist/applicationApi.js.map +1 -1
- package/dist/factory/3d.js +1 -9
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/unit/CameraPoi.js +0 -2
- package/dist/factory/unit/CameraPoi.js.map +1 -1
- package/dist/factory/unit/circle.js +0 -3
- package/dist/factory/unit/circle.js.map +1 -1
- package/dist/factory/unit/cylinder.js +0 -2
- package/dist/factory/unit/cylinder.js.map +1 -1
- package/dist/factory/unit/inspection/InspectionObject.js +1 -3
- package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
- package/dist/factory/unit/poi.js +8 -14
- package/dist/factory/unit/poi.js.map +1 -1
- package/dist/factory/unit/region.js +1 -2
- package/dist/factory/unit/region.js.map +1 -1
- package/dist/hooksManager.js +37 -13
- package/dist/hooksManager.js.map +1 -1
- package/dist/module/camera/index.js +215 -222
- package/dist/module/camera/index.js.map +1 -1
- package/dist/module/camera/type.js +2 -0
- package/dist/module/camera/type.js.map +1 -0
- package/dist/module/entity/hybridList.js +5 -0
- package/dist/module/entity/hybridList.js.map +1 -1
- package/dist/module/entity/index.js +256 -117
- package/dist/module/entity/index.js.map +1 -1
- package/dist/module/entity/model/index.js +3 -3
- package/dist/module/entity/model/index.js.map +1 -1
- package/dist/module/entity/model/load/loadFbx.js +14 -1
- package/dist/module/entity/model/load/loadFbx.js.map +1 -1
- package/dist/module/entity/model/load/loadGlb.js +16 -2
- package/dist/module/entity/model/load/loadGlb.js.map +1 -1
- package/dist/module/entity/poi/index.js +208 -19
- package/dist/module/entity/poi/index.js.map +1 -1
- package/dist/module/entity/poi/indexBack.js +29 -0
- package/dist/module/entity/poi/indexBack.js.map +1 -0
- package/dist/module/entity/poi/type.js.map +1 -1
- package/dist/module/entity/poi/utils.js +42 -0
- package/dist/module/entity/poi/utils.js.map +1 -0
- package/dist/module/entity/type.js.map +1 -1
- package/dist/module/eventBus/index.js +20 -7
- package/dist/module/eventBus/index.js.map +1 -1
- package/dist/utils/index.js +16 -4
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/messageFn.js +5 -2
- package/dist/utils/messageFn.js.map +1 -1
- package/package.json +5 -3
|
@@ -1,29 +1,218 @@
|
|
|
1
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 _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
|
+
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; }
|
|
9
|
+
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); } }
|
|
10
|
+
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); }); }; }
|
|
11
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
2
12
|
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); } }
|
|
3
13
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
14
|
+
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; }
|
|
4
15
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
5
16
|
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); }
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
import { DoubleSide, Group, Mesh, MeshBasicMaterial, PlaneGeometry, TextureLoader, Vector3, sRGBEncoding, use } from '@anov/3d-core';
|
|
18
|
+
import _ from 'lodash';
|
|
19
|
+
import { createTextCanvas } from "./utils";
|
|
20
|
+
import { BORDER_01, ICON_01, NEEDLE_01 } from "./resource";
|
|
21
|
+
var width = 2.62,
|
|
22
|
+
height = 0.54,
|
|
23
|
+
pinWidth = 0.44,
|
|
24
|
+
pinHeight = 2;
|
|
25
|
+
var defaultOption = {
|
|
26
|
+
lookAt: true,
|
|
27
|
+
autoScale: false,
|
|
28
|
+
bgUrl: BORDER_01,
|
|
29
|
+
text: {
|
|
30
|
+
fontSize: 16,
|
|
31
|
+
color: '#ffffff',
|
|
32
|
+
fontWeight: 'normal'
|
|
33
|
+
},
|
|
34
|
+
icon: {
|
|
35
|
+
visible: true,
|
|
36
|
+
url: ICON_01
|
|
37
|
+
},
|
|
38
|
+
pin: {
|
|
39
|
+
visible: false,
|
|
40
|
+
url: NEEDLE_01
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
var Poi = /*#__PURE__*/function () {
|
|
19
44
|
function Poi() {
|
|
20
|
-
var _this;
|
|
21
45
|
_classCallCheck(this, Poi);
|
|
22
|
-
|
|
23
|
-
_this.strategyManage = StrategyManage;
|
|
24
|
-
return _this;
|
|
46
|
+
_defineProperty(this, "mesh", void 0);
|
|
25
47
|
}
|
|
26
|
-
|
|
27
|
-
|
|
48
|
+
_createClass(Poi, [{
|
|
49
|
+
key: "create",
|
|
50
|
+
value: function () {
|
|
51
|
+
var _create = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(json) {
|
|
52
|
+
var poiGroup, option, bgUrl, text, icon, pin, borderMesh, iconMesh, texture, textMesh, pinMesh;
|
|
53
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
54
|
+
while (1) switch (_context.prev = _context.next) {
|
|
55
|
+
case 0:
|
|
56
|
+
// 创建 POI 标牌 Group
|
|
57
|
+
poiGroup = new Group();
|
|
58
|
+
option = _.mergeWith({}, defaultOption, json, this.customizer);
|
|
59
|
+
bgUrl = option.bgUrl, text = option.text, icon = option.icon, pin = option.pin; // 创建背景 Panel
|
|
60
|
+
borderMesh = this.createPanel({
|
|
61
|
+
width: width,
|
|
62
|
+
height: height,
|
|
63
|
+
source: bgUrl,
|
|
64
|
+
option: null
|
|
65
|
+
});
|
|
66
|
+
borderMesh.position.add(new Vector3(0, 0, 0.01)); // handle z-fighting
|
|
67
|
+
poiGroup.add(borderMesh);
|
|
68
|
+
|
|
69
|
+
// 创建图标
|
|
70
|
+
if (icon.visible !== false) {
|
|
71
|
+
iconMesh = this.createPanel({
|
|
72
|
+
width: 0.4,
|
|
73
|
+
height: 0.4,
|
|
74
|
+
source: icon.url,
|
|
75
|
+
option: icon
|
|
76
|
+
});
|
|
77
|
+
iconMesh.position.add(new Vector3(-0.9, 0, 0));
|
|
78
|
+
iconMesh.position.add(new Vector3(0, 0, 0.02)); // handle z-fighting
|
|
79
|
+
poiGroup.add(iconMesh);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// 文字
|
|
83
|
+
texture = createTextCanvas(option, width * 100, height * 100);
|
|
84
|
+
textMesh = this.createPanel({
|
|
85
|
+
width: width,
|
|
86
|
+
height: height,
|
|
87
|
+
source: texture,
|
|
88
|
+
option: text
|
|
89
|
+
});
|
|
90
|
+
poiGroup.add(textMesh);
|
|
91
|
+
textMesh.position.add(new Vector3(0, 0, 0.01)); // handle z-fighting
|
|
92
|
+
|
|
93
|
+
// 创建针脚
|
|
94
|
+
if (pin.visible !== false) {
|
|
95
|
+
pinMesh = this.createPanel({
|
|
96
|
+
width: pinWidth,
|
|
97
|
+
height: pinHeight,
|
|
98
|
+
source: pin.url,
|
|
99
|
+
option: pin
|
|
100
|
+
});
|
|
101
|
+
pinMesh.position.add(new Vector3(0, -(height + pinHeight) / 2, 0));
|
|
102
|
+
pinMesh.position.add(new Vector3(0, 0, 0.01)); // handle z-fighting
|
|
103
|
+
poiGroup.add(pinMesh);
|
|
104
|
+
if (option.position) option.position[1] = option.position[1] + pinHeight / 2;else option.position = [0, pinHeight / 2, 0];
|
|
105
|
+
}
|
|
106
|
+
this.mesh = poiGroup;
|
|
107
|
+
this.addToScene(poiGroup, option);
|
|
108
|
+
return _context.abrupt("return", poiGroup);
|
|
109
|
+
case 15:
|
|
110
|
+
case "end":
|
|
111
|
+
return _context.stop();
|
|
112
|
+
}
|
|
113
|
+
}, _callee, this);
|
|
114
|
+
}));
|
|
115
|
+
function create(_x) {
|
|
116
|
+
return _create.apply(this, arguments);
|
|
117
|
+
}
|
|
118
|
+
return create;
|
|
119
|
+
}()
|
|
120
|
+
}, {
|
|
121
|
+
key: "update",
|
|
122
|
+
value: function () {
|
|
123
|
+
var _update = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(mesh, json) {
|
|
124
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
125
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
126
|
+
case 0:
|
|
127
|
+
mesh && mesh.removeFromParent();
|
|
128
|
+
return _context2.abrupt("return", this.create(json));
|
|
129
|
+
case 2:
|
|
130
|
+
case "end":
|
|
131
|
+
return _context2.stop();
|
|
132
|
+
}
|
|
133
|
+
}, _callee2, this);
|
|
134
|
+
}));
|
|
135
|
+
function update(_x2, _x3) {
|
|
136
|
+
return _update.apply(this, arguments);
|
|
137
|
+
}
|
|
138
|
+
return update;
|
|
139
|
+
}()
|
|
140
|
+
}, {
|
|
141
|
+
key: "createPanel",
|
|
142
|
+
value: function createPanel(_ref) {
|
|
143
|
+
var width = _ref.width,
|
|
144
|
+
height = _ref.height,
|
|
145
|
+
source = _ref.source,
|
|
146
|
+
option = _ref.option;
|
|
147
|
+
var _ref2 = option || {},
|
|
148
|
+
scale = _ref2.scale,
|
|
149
|
+
offset = _ref2.offset,
|
|
150
|
+
color = _ref2.color;
|
|
151
|
+
var texture = typeof source == 'string' ? new TextureLoader().load(source) : source;
|
|
152
|
+
texture.encoding = sRGBEncoding;
|
|
153
|
+
var meshBasicMaterial = new MeshBasicMaterial({
|
|
154
|
+
map: texture,
|
|
155
|
+
transparent: true,
|
|
156
|
+
side: DoubleSide,
|
|
157
|
+
color: color
|
|
158
|
+
});
|
|
159
|
+
meshBasicMaterial.depthWrite = false;
|
|
160
|
+
var mesh = new Mesh(new PlaneGeometry(width, height), meshBasicMaterial);
|
|
161
|
+
scale && mesh.scale.fromArray(scale);
|
|
162
|
+
offset && mesh.position.fromArray([].concat(_toConsumableArray(offset), [0]));
|
|
163
|
+
return mesh;
|
|
164
|
+
}
|
|
165
|
+
}, {
|
|
166
|
+
key: "customizer",
|
|
167
|
+
value: function customizer(objValue, srcValue) {
|
|
168
|
+
if (_.isArray(objValue) && srcValue) return srcValue;
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
171
|
+
key: "updateAxis",
|
|
172
|
+
value: function updateAxis() {
|
|
173
|
+
var _use$useScene = use.useScene(),
|
|
174
|
+
camera = _use$useScene.camera;
|
|
175
|
+
// 根据锁定的轴进行旋转
|
|
176
|
+
camera && this.mesh.rotation.copy(camera.rotation);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/// <summary>
|
|
180
|
+
/// 按照距离缩放,距离越远,缩放越大
|
|
181
|
+
/// </summary>
|
|
182
|
+
}, {
|
|
183
|
+
key: "updateScale",
|
|
184
|
+
value: function updateScale() {
|
|
185
|
+
var _use$useScene2 = use.useScene(),
|
|
186
|
+
camera = _use$useScene2.camera;
|
|
187
|
+
// Make the signboard face the camera
|
|
188
|
+
// this.mesh.lookAt(camera.position);
|
|
189
|
+
// 计算相机和物体之间的距离
|
|
190
|
+
var scale = (camera === null || camera === void 0 ? void 0 : camera.position.distanceTo(this.mesh.position)) / 20 || 1;
|
|
191
|
+
this.mesh.scale.set(scale, scale, 1);
|
|
192
|
+
}
|
|
193
|
+
}, {
|
|
194
|
+
key: "addToScene",
|
|
195
|
+
value: function addToScene(mesh, json) {
|
|
196
|
+
var _this = this,
|
|
197
|
+
_use$useScene$orbitCo;
|
|
198
|
+
var scale = json.scale,
|
|
199
|
+
position = json.position,
|
|
200
|
+
visible = json.visible;
|
|
201
|
+
scale && mesh.scale.fromArray(scale);
|
|
202
|
+
position && mesh.position.fromArray(position);
|
|
203
|
+
if (visible !== undefined) mesh.visible = visible;
|
|
204
|
+
use.useScene().scene.add(mesh);
|
|
205
|
+
var setSize = function setSize() {
|
|
206
|
+
json.lookAt !== false && _this.updateAxis();
|
|
207
|
+
json.autoScale !== true && _this.updateScale();
|
|
208
|
+
};
|
|
209
|
+
setSize();
|
|
210
|
+
(_use$useScene$orbitCo = use.useScene().orbitControls) === null || _use$useScene$orbitCo === void 0 || _use$useScene$orbitCo.addEventListener('change', function () {
|
|
211
|
+
setSize();
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}]);
|
|
215
|
+
return Poi;
|
|
216
|
+
}();
|
|
28
217
|
export default Poi;
|
|
29
218
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StrategyManage","BaseEntity","Poi","_BaseEntity","_inherits","_super","_createSuper","_this","_classCallCheck","call","strategyManage","_createClass"],"sources":["../../../../src/module/entity/poi/index.ts"],"sourcesContent":["import { StrategyManage } from './style'\nimport BaseEntity from '../baseEntity'\n\nclass Poi extends BaseEntity {\n constructor(){\n super()\n this.strategyManage = StrategyManage\n }\n}\n\nexport default Poi\n"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,cAAc;AACvB,OAAOC,UAAU;AAAqB,IAEhCC,GAAG,0BAAAC,WAAA;EAAAC,SAAA,CAAAF,GAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,GAAA;EACL,SAAAA,IAAA,EAAa;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,GAAA;IACXK,KAAA,GAAAF,MAAA,CAAAI,IAAA;IACAF,KAAA,CAAKG,cAAc,GAAGV,cAAc;IAAA,OAAAO,KAAA;EACtC;EAAC,OAAAI,YAAA,CAAAT,GAAA;AAAA,EAJaD,UAAU;AAO5B,eAAeC,GAAG"}
|
|
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","DoubleSide","Group","Mesh","MeshBasicMaterial","PlaneGeometry","TextureLoader","Vector3","sRGBEncoding","use","_","createTextCanvas","BORDER_01","ICON_01","NEEDLE_01","width","height","pinWidth","pinHeight","defaultOption","lookAt","autoScale","bgUrl","text","fontSize","color","fontWeight","icon","visible","url","pin","Poi","_create","_callee","json","poiGroup","option","borderMesh","iconMesh","texture","textMesh","pinMesh","_callee$","_context","mergeWith","customizer","createPanel","source","position","add","mesh","addToScene","_x","_update","_callee2","_callee2$","_context2","removeFromParent","update","_x2","_x3","_ref","_ref2","scale","offset","load","encoding","meshBasicMaterial","map","transparent","side","depthWrite","fromArray","concat","_toConsumableArray","objValue","srcValue","isArray","updateAxis","_use$useScene","useScene","camera","rotation","copy","updateScale","_use$useScene2","distanceTo","set","_this","_use$useScene$orbitCo","scene","setSize","orbitControls","addEventListener"],"sources":["../../../../src/module/entity/poi/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { DoubleSide, Group, Mesh, MeshBasicMaterial, PlaneGeometry, TextureLoader, Vector3, sRGBEncoding, use } from '@anov/3d-core'\nimport _ from 'lodash'\nimport type { Option } from './type'\nimport { createTextCanvas } from './utils'\nimport { BORDER_01, ICON_01, NEEDLE_01 } from './resource'\n\nconst [width, height, pinWidth, pinHeight] = [2.62, 0.54, 0.44, 2]\n\nconst defaultOption = {\n lookAt: true,\n autoScale: false,\n bgUrl: BORDER_01,\n text: {\n fontSize: 16,\n color: '#ffffff',\n fontWeight: 'normal',\n },\n icon: {\n visible: true,\n url: ICON_01,\n },\n pin: {\n visible: false,\n url: NEEDLE_01,\n },\n}\n\nclass Poi {\n mesh: Group\n\n async create(json: Option) {\n // 创建 POI 标牌 Group\n const poiGroup = new Group()\n\n const option = _.mergeWith({}, defaultOption, json, this.customizer)\n\n const { bgUrl, text, icon, pin } = option\n // 创建背景 Panel\n const borderMesh = this.createPanel({ width, height, source: bgUrl, option: null })\n borderMesh.position.add(new Vector3(0, 0, 0.01)) // handle z-fighting\n poiGroup.add(borderMesh)\n\n // 创建图标\n if (icon.visible !== false) {\n const iconMesh = this.createPanel({ width: 0.4, height: 0.4, source: icon.url, option: icon })\n iconMesh.position.add(new Vector3(-0.9, 0, 0))\n iconMesh.position.add(new Vector3(0, 0, 0.02)) // handle z-fighting\n poiGroup.add(iconMesh)\n }\n\n // 文字\n const texture = createTextCanvas(option, width * 100, height * 100)\n const textMesh = this.createPanel({ width, height, source: texture, option: text })\n poiGroup.add(textMesh)\n textMesh.position.add(new Vector3(0, 0, 0.01)) // handle z-fighting\n\n // 创建针脚\n if (pin.visible !== false) {\n const pinMesh = this.createPanel({ width: pinWidth, height: pinHeight, source: pin.url, option: pin })\n pinMesh.position.add(new Vector3(0, -(height + pinHeight) / 2, 0))\n pinMesh.position.add(new Vector3(0, 0, 0.01)) // handle z-fighting\n poiGroup.add(pinMesh)\n\n if (option.position)\n option.position[1] = option.position[1] + pinHeight / 2\n else option.position = [0, pinHeight / 2, 0]\n }\n\n this.mesh = poiGroup\n this.addToScene(poiGroup, option)\n return poiGroup\n }\n\n async update(mesh: Object3D, json: Option) {\n mesh && mesh.removeFromParent()\n return this.create(json)\n }\n\n private createPanel({ width, height, source, option }) {\n const { scale, offset, color } = option || {}\n const texture = (typeof source == 'string') ? new TextureLoader().load(source) : source\n texture.encoding = sRGBEncoding\n\n const meshBasicMaterial = new MeshBasicMaterial({ map: texture, transparent: true, side: DoubleSide, color })\n meshBasicMaterial.depthWrite = false\n\n const mesh = new Mesh(\n new PlaneGeometry(width, height),\n meshBasicMaterial,\n )\n\n scale && mesh.scale.fromArray(scale)\n offset && mesh.position.fromArray([...offset, 0])\n return mesh\n }\n\n customizer(objValue, srcValue) {\n if (_.isArray(objValue) && srcValue)\n return srcValue\n }\n\n private updateAxis() {\n const { camera } = use.useScene()\n // 根据锁定的轴进行旋转\n camera && this.mesh.rotation.copy(camera.rotation)\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n private updateScale() {\n const { camera } = use.useScene()\n // Make the signboard face the camera\n // this.mesh.lookAt(camera.position);\n // 计算相机和物体之间的距离\n const scale = camera?.position.distanceTo(this.mesh.position) / 20 || 1\n this.mesh.scale.set(scale, scale, 1)\n }\n\n private addToScene(mesh: Object3D, json: Option) {\n const { scale, position, visible } = json\n scale && mesh.scale.fromArray(scale)\n position && mesh.position.fromArray(position)\n if (visible !== undefined)\n mesh.visible = visible\n use.useScene().scene.add(mesh)\n const setSize = () => {\n json.lookAt !== false && this.updateAxis()\n json.autoScale !== true && this.updateScale()\n }\n setSize()\n use.useScene().orbitControls?.addEventListener('change', () => {\n setSize()\n })\n }\n}\n\nexport default Poi"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 _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); } }
|
|
3
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
5
|
+
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); }
|
|
6
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
7
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
8
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
9
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
11
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
12
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
13
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
14
|
+
import { StrategyManage } from "./style";
|
|
15
|
+
import BaseEntity from "../baseEntity";
|
|
16
|
+
var Poi = /*#__PURE__*/function (_BaseEntity) {
|
|
17
|
+
_inherits(Poi, _BaseEntity);
|
|
18
|
+
var _super = _createSuper(Poi);
|
|
19
|
+
function Poi() {
|
|
20
|
+
var _this;
|
|
21
|
+
_classCallCheck(this, Poi);
|
|
22
|
+
_this = _super.call(this);
|
|
23
|
+
_this.strategyManage = StrategyManage;
|
|
24
|
+
return _this;
|
|
25
|
+
}
|
|
26
|
+
return _createClass(Poi);
|
|
27
|
+
}(BaseEntity);
|
|
28
|
+
export default Poi;
|
|
29
|
+
//# sourceMappingURL=indexBack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StrategyManage","BaseEntity","Poi","_BaseEntity","_inherits","_super","_createSuper","_this","_classCallCheck","call","strategyManage","_createClass"],"sources":["../../../../src/module/entity/poi/indexBack.ts"],"sourcesContent":["import { StrategyManage } from './style'\nimport BaseEntity from '../baseEntity'\n\nclass Poi extends BaseEntity {\n constructor(){\n super()\n this.strategyManage = StrategyManage\n }\n}\n\nexport default Poi\n"],"mappings":";;;;;;;;;;;;;AAAA,SAASA,cAAc;AACvB,OAAOC,UAAU;AAAqB,IAEhCC,GAAG,0BAAAC,WAAA;EAAAC,SAAA,CAAAF,GAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,GAAA;EACL,SAAAA,IAAA,EAAa;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,GAAA;IACXK,KAAA,GAAAF,MAAA,CAAAI,IAAA;IACAF,KAAA,CAAKG,cAAc,GAAGV,cAAc;IAAA,OAAAO,KAAA;EACtC;EAAC,OAAAI,YAAA,CAAAT,GAAA;AAAA,EAJaD,UAAU;AAO5B,eAAeC,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TypeMappings","title_","icon_","text_"],"sources":["../../../../src/module/entity/poi/type.ts"],"sourcesContent":["import type { RenderType } from '@anov/3d-ability'\n\nimport type {
|
|
1
|
+
{"version":3,"names":["TypeMappings","title_","icon_","text_"],"sources":["../../../../src/module/entity/poi/type.ts"],"sourcesContent":["import type { RenderType } from '@anov/3d-ability'\n\nimport type { Option as IOption, Triple } from '../type'\n\nexport type Option = Partial<{\n lookAt: boolean\n autoScale: boolean\n legends: string\n bgUrl: string\n text: Partial<TextPropertyOpts>\n icon: Partial<IconPropertyOpts>\n pin: Partial<IconPropertyOpts>\n}> & IOption\n\ntype TextPropertyOpts = Partial<{\n value: string\n fontSize: number\n color: string\n fontWeight: string\n offset: [number, number]\n}>\n\ntype IconPropertyOpts = Partial<{\n visible: boolean\n url: string\n color: string\n offset: [number, number]\n scale: Triple\n}>\n\n// 定义基础属性类型\ntype BaseProperty = {\n id: string\n visible?: boolean // 可选,可见性,默认 true\n position?: Triple // 可选,默认为 [0,0,0] 即项目原点\n scale?: Triple // 可选,默认 1\n rotation?: Triple // 可选,默认为 [0, 0, 0]\n renderType?: RenderType // 渲染类型\n}\n\nexport const TypeMappings: { [key: string]: string } = {\n title_: 'title',\n icon_: 'icon',\n text_: 'label',\n}"],"mappings":"AA8BA;;AAUA,OAAO,IAAMA,YAAuC,GAAG;EACrDC,MAAM,EAAE,OAAO;EACfC,KAAK,EAAE,MAAM;EACbC,KAAK,EAAE;AACT,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Box3, CanvasTexture, Vector3 } from '@anov/3d-core';
|
|
2
|
+
export var getGroupBoundingBox = function getGroupBoundingBox(group) {
|
|
3
|
+
var box = new Box3(); // 创建一个空的包围盒
|
|
4
|
+
|
|
5
|
+
group.traverse(function (object) {
|
|
6
|
+
if (object.isMesh) {
|
|
7
|
+
// 只计算Mesh对象
|
|
8
|
+
var objectBox = new Box3().setFromObject(object); // 获取子对象的包围盒
|
|
9
|
+
box.expandByObject(object); // 将子对象的包围盒扩展到总包围盒中
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var size = new Vector3();
|
|
13
|
+
box.getSize(size); // 计算合并后的包围盒的大小
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
box: box,
|
|
17
|
+
size: size
|
|
18
|
+
}; // 返回包围盒和大小
|
|
19
|
+
};
|
|
20
|
+
export var createTextCanvas = function createTextCanvas(option, width, height) {
|
|
21
|
+
var _ref = option || {},
|
|
22
|
+
text = _ref.text,
|
|
23
|
+
_ref$fontSize = _ref.fontSize,
|
|
24
|
+
fontSize = _ref$fontSize === void 0 ? 16 : _ref$fontSize,
|
|
25
|
+
_ref$color = _ref.color,
|
|
26
|
+
color = _ref$color === void 0 ? '#ffffff' : _ref$color,
|
|
27
|
+
_ref$fontWeight = _ref.fontWeight,
|
|
28
|
+
fontWeight = _ref$fontWeight === void 0 ? 'normal' : _ref$fontWeight;
|
|
29
|
+
var canvas = document.createElement('canvas');
|
|
30
|
+
canvas.width = width;
|
|
31
|
+
canvas.height = height;
|
|
32
|
+
var context = canvas.getContext('2d');
|
|
33
|
+
|
|
34
|
+
// 设置文本样式
|
|
35
|
+
context.fillStyle = color;
|
|
36
|
+
context.font = "".concat(fontWeight, " ").concat(fontSize, "px Arial");
|
|
37
|
+
context.textAlign = 'center';
|
|
38
|
+
context.textBaseline = 'middle';
|
|
39
|
+
context.fillText(text, width / 2, height / 2);
|
|
40
|
+
return new CanvasTexture(canvas);
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Box3","CanvasTexture","Vector3","getGroupBoundingBox","group","box","traverse","object","isMesh","objectBox","setFromObject","expandByObject","size","getSize","createTextCanvas","option","width","height","_ref","text","_ref$fontSize","fontSize","_ref$color","color","_ref$fontWeight","fontWeight","canvas","document","createElement","context","getContext","fillStyle","font","concat","textAlign","textBaseline","fillText"],"sources":["../../../../src/module/entity/poi/utils.ts"],"sourcesContent":["import { Box3, CanvasTexture, Vector3 } from '@anov/3d-core'\n\nexport const getGroupBoundingBox = (group) => {\n const box = new Box3() // 创建一个空的包围盒\n\n group.traverse((object) => {\n if (object.isMesh) { // 只计算Mesh对象\n const objectBox = new Box3().setFromObject(object) // 获取子对象的包围盒\n box.expandByObject(object) // 将子对象的包围盒扩展到总包围盒中\n }\n })\n\n const size = new Vector3()\n box.getSize(size) // 计算合并后的包围盒的大小\n\n return { box, size } // 返回包围盒和大小\n}\n\nexport const createTextCanvas = (option, width, height) => {\n const {\n text,\n fontSize = 16,\n color = '#ffffff',\n fontWeight = 'normal',\n } = option || {}\n const canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n const context = canvas.getContext('2d')\n\n // 设置文本样式\n context.fillStyle = color\n context.font = `${fontWeight} ${fontSize}px Arial`\n context.textAlign = 'center'\n context.textBaseline = 'middle'\n context.fillText(text, width / 2, height / 2)\n\n return new CanvasTexture(canvas)\n}"],"mappings":"AAAA,SAASA,IAAI,EAAEC,aAAa,EAAEC,OAAO,QAAQ,eAAe;AAE5D,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,KAAK,EAAK;EAC5C,IAAMC,GAAG,GAAG,IAAIL,IAAI,CAAC,CAAC,EAAC;;EAEvBI,KAAK,CAACE,QAAQ,CAAC,UAACC,MAAM,EAAK;IACzB,IAAIA,MAAM,CAACC,MAAM,EAAE;MAAE;MACnB,IAAMC,SAAS,GAAG,IAAIT,IAAI,CAAC,CAAC,CAACU,aAAa,CAACH,MAAM,CAAC,EAAC;MACnDF,GAAG,CAACM,cAAc,CAACJ,MAAM,CAAC,EAAC;IAC7B;EACF,CAAC,CAAC;EAEF,IAAMK,IAAI,GAAG,IAAIV,OAAO,CAAC,CAAC;EAC1BG,GAAG,CAACQ,OAAO,CAACD,IAAI,CAAC,EAAC;;EAElB,OAAO;IAAEP,GAAG,EAAHA,GAAG;IAAEO,IAAI,EAAJA;EAAK,CAAC,EAAC;AACvB,CAAC;AAED,OAAO,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAK;EACzD,IAAAC,IAAA,GAKIH,MAAM,IAAI,CAAC,CAAC;IAJdI,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAAC,aAAA,GAAAF,IAAA,CACJG,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IAAAE,UAAA,GAAAJ,IAAA,CACbK,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,SAAS,GAAAA,UAAA;IAAAE,eAAA,GAAAN,IAAA,CACjBO,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAG,QAAQ,GAAAA,eAAA;EAEvB,IAAME,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;EAC/CF,MAAM,CAACV,KAAK,GAAGA,KAAK;EACpBU,MAAM,CAACT,MAAM,GAAGA,MAAM;EACtB,IAAMY,OAAO,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;;EAEvC;EACAD,OAAO,CAACE,SAAS,GAAGR,KAAK;EACzBM,OAAO,CAACG,IAAI,MAAAC,MAAA,CAAMR,UAAU,OAAAQ,MAAA,CAAIZ,QAAQ,aAAU;EAClDQ,OAAO,CAACK,SAAS,GAAG,QAAQ;EAC5BL,OAAO,CAACM,YAAY,GAAG,QAAQ;EAC/BN,OAAO,CAACO,QAAQ,CAACjB,IAAI,EAAEH,KAAK,GAAG,CAAC,EAAEC,MAAM,GAAG,CAAC,CAAC;EAE7C,OAAO,IAAIhB,aAAa,CAACyB,MAAM,CAAC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/module/entity/type.ts"],"sourcesContent":["export type Enhance = {\n
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/module/entity/type.ts"],"sourcesContent":["export type Enhance = {\n [k in string]: any\n}\n\nexport type Opts = {\n id: string | number\n} & Enhance\n\nexport type RegisterEvents = {\n eventName: string\n entityId: string\n}\n\nexport type Triple = [number, number, number]\n\nexport type Option = Partial<{\n name: string\n visible: boolean // 可选,可见性,默认 true\n position: Triple // 可选,默认为 [0,0,0] 即项目原点\n scale: Triple // 可选,默认 1\n rotation: Triple // 可选,默认为 [0, 0, 0]\n style: string\n events: string[]\n}> & {\n id: string\n type: string\n} & Enhance"],"mappings":""}
|
|
@@ -23,22 +23,35 @@ var EventBus = /*#__PURE__*/function () {
|
|
|
23
23
|
_createClass(EventBus, [{
|
|
24
24
|
key: "on",
|
|
25
25
|
value: function on(params) {
|
|
26
|
-
|
|
27
|
-
if (params.id && params.eventName === 'click') {
|
|
26
|
+
if (params.id) {
|
|
28
27
|
// @ts-ignore
|
|
29
28
|
this.app.entity.registerEvents({
|
|
30
29
|
eventName: params.eventName,
|
|
31
|
-
|
|
30
|
+
entityId: params.id
|
|
32
31
|
});
|
|
32
|
+
return {
|
|
33
|
+
eventName: params.eventName,
|
|
34
|
+
id: params.id
|
|
35
|
+
};
|
|
36
|
+
} else {
|
|
37
|
+
this.eventMap.set("".concat(params.eventName), true);
|
|
38
|
+
return {
|
|
39
|
+
eventName: params.eventName
|
|
40
|
+
};
|
|
33
41
|
}
|
|
34
|
-
return {
|
|
35
|
-
eventName: params.eventName
|
|
36
|
-
};
|
|
37
42
|
}
|
|
38
43
|
}, {
|
|
39
44
|
key: "off",
|
|
40
45
|
value: function off(params) {
|
|
41
|
-
|
|
46
|
+
if (params.entityId) {
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
this.app.entity.unregisterEvents({
|
|
49
|
+
eventName: params.eventName,
|
|
50
|
+
entityId: params.entityId
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
this.eventMap.set("".concat(params.eventName), false);
|
|
54
|
+
}
|
|
42
55
|
return {
|
|
43
56
|
eventName: params.eventName
|
|
44
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventBus","app","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","params","
|
|
1
|
+
{"version":3,"names":["EventBus","app","_classCallCheck","_defineProperty","Map","_createClass","key","value","on","params","id","entity","registerEvents","eventName","entityId","eventMap","set","concat","off","unregisterEvents"],"sources":["../../../src/module/eventBus/index.ts"],"sourcesContent":["import type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\n\n/**\n * notes: 区别于前端概念,3端统一API特定\n */\n\nclass EventBus implements BaseModule {\n eventMap: Map<string, boolean> = new Map()\n app: Anov3D\n\n constructor(app: Anov3D) {\n this.app = app\n }\n\n /**\n * open event\n * @param params\n */\n on(params: { eventName: string; id?: string }) {\n if (params.id) {\n // @ts-ignore\n this.app.entity.registerEvents({\n eventName: params.eventName,\n entityId: params.id,\n })\n return {\n eventName: params.eventName,\n id: params.id,\n }\n }\n else {\n this.eventMap.set(`${params.eventName}`, true)\n return {\n eventName: params.eventName,\n }\n }\n }\n\n off(params: { eventName: string; entityId?: string }) {\n if (params.entityId) {\n // @ts-ignore\n this.app.entity.unregisterEvents({\n eventName: params.eventName,\n entityId: params.entityId,\n })\n }\n else {\n this.eventMap.set(`${params.eventName}`, false)\n }\n\n return {\n eventName: params.eventName,\n }\n }\n}\n\nexport default EventBus"],"mappings":";;;;;;;AAGA;AACA;AACA;AAFA,IAIMA,QAAQ;EAIZ,SAAAA,SAAYC,GAAW,EAAE;IAAAC,eAAA,OAAAF,QAAA;IAAAG,eAAA,mBAHQ,IAAIC,GAAG,CAAC,CAAC;IAAAD,eAAA;IAIxC,IAAI,CAACF,GAAG,GAAGA,GAAG;EAChB;;EAEA;AACF;AACA;AACA;EAHEI,YAAA,CAAAL,QAAA;IAAAM,GAAA;IAAAC,KAAA,EAIA,SAAAC,GAAGC,MAA0C,EAAE;MAC7C,IAAIA,MAAM,CAACC,EAAE,EAAE;QACb;QACA,IAAI,CAACT,GAAG,CAACU,MAAM,CAACC,cAAc,CAAC;UAC7BC,SAAS,EAAEJ,MAAM,CAACI,SAAS;UAC3BC,QAAQ,EAAEL,MAAM,CAACC;QACnB,CAAC,CAAC;QACF,OAAO;UACLG,SAAS,EAAEJ,MAAM,CAACI,SAAS;UAC3BH,EAAE,EAAED,MAAM,CAACC;QACb,CAAC;MACH,CAAC,MACI;QACH,IAAI,CAACK,QAAQ,CAACC,GAAG,IAAAC,MAAA,CAAIR,MAAM,CAACI,SAAS,GAAI,IAAI,CAAC;QAC9C,OAAO;UACLA,SAAS,EAAEJ,MAAM,CAACI;QACpB,CAAC;MACH;IACF;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAW,IAAIT,MAAgD,EAAE;MACpD,IAAIA,MAAM,CAACK,QAAQ,EAAE;QACnB;QACA,IAAI,CAACb,GAAG,CAACU,MAAM,CAACQ,gBAAgB,CAAC;UAC/BN,SAAS,EAAEJ,MAAM,CAACI,SAAS;UAC3BC,QAAQ,EAAEL,MAAM,CAACK;QACnB,CAAC,CAAC;MACJ,CAAC,MACI;QACH,IAAI,CAACC,QAAQ,CAACC,GAAG,IAAAC,MAAA,CAAIR,MAAM,CAACI,SAAS,GAAI,KAAK,CAAC;MACjD;MAEA,OAAO;QACLA,SAAS,EAAEJ,MAAM,CAACI;MACpB,CAAC;IACH;EAAC;EAAA,OAAAb,QAAA;AAAA;AAGH,eAAeA,QAAQ"}
|
package/dist/utils/index.js
CHANGED
|
@@ -31,7 +31,13 @@ export var getValueByKey = function getValueByKey(obj, key) {
|
|
|
31
31
|
export var getFnByFnkey = function getFnByFnkey(iEngine, fnkey, id) {
|
|
32
32
|
var handleFunction = getValueByKey(iEngine, fnkey);
|
|
33
33
|
if (typeof handleFunction !== 'function') {
|
|
34
|
-
sendToMessage(
|
|
34
|
+
sendToMessage({
|
|
35
|
+
messageType: MessageType.Api,
|
|
36
|
+
messageName: fnkey,
|
|
37
|
+
status: messageStatus.ModuleNotRegister.code
|
|
38
|
+
}, {
|
|
39
|
+
id: id
|
|
40
|
+
});
|
|
35
41
|
throw new Error('this function is not exist');
|
|
36
42
|
}
|
|
37
43
|
var fnkeyArrary = fnkey.split('.');
|
|
@@ -39,9 +45,12 @@ export var getFnByFnkey = function getFnByFnkey(iEngine, fnkey, id) {
|
|
|
39
45
|
if (fnkeyArrary.length > 1) context = getValueByKey(iEngine, fnkeyArrary.slice(0, fnkeyArrary.length - 1).join('.'));
|
|
40
46
|
return handleFunction.bind(context);
|
|
41
47
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* get scene object vertice and triangle
|
|
51
|
+
* @param scene
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
45
54
|
export var getSceneInfo = function getSceneInfo(scene) {
|
|
46
55
|
var objects = 0;
|
|
47
56
|
var vertices = 0;
|
|
@@ -70,4 +79,7 @@ export var getSceneInfo = function getSceneInfo(scene) {
|
|
|
70
79
|
triangles: triangles
|
|
71
80
|
};
|
|
72
81
|
};
|
|
82
|
+
export var object2Vector3 = function object2Vector3(obj) {
|
|
83
|
+
return new Vector3(obj.x, obj.y, obj.z);
|
|
84
|
+
};
|
|
73
85
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","messageStatus","MessageType","sendToMessage","getValueByKey","obj","key","undefined","keys","split","middleObj","index","length","currentKey","_typeof","getFnByFnkey","iEngine","fnkey","id","handleFunction","Api","ModuleNotRegister","code","Error","fnkeyArrary","context","slice","join","bind","
|
|
1
|
+
{"version":3,"names":["Vector3","messageStatus","MessageType","sendToMessage","getValueByKey","obj","key","undefined","keys","split","middleObj","index","length","currentKey","_typeof","getFnByFnkey","iEngine","fnkey","id","handleFunction","messageType","Api","messageName","status","ModuleNotRegister","code","Error","fnkeyArrary","context","slice","join","bind","getSceneInfo","scene","objects","vertices","triangles","i","l","children","object","traverseVisible","isMesh","isPoints","geometry","attributes","position","count","object2Vector3","x","y","z"],"sources":["../../src/utils/index.ts"],"sourcesContent":["import type { Scene } from '@anov/3d-core'\nimport { Vector3 } from '@anov/3d-core'\nimport type Anov3D from '..'\nimport { messageStatus } from '../messageStatus'\nimport { MessageType, sendToMessage } from './messageFn'\n\ninterface ObjectType {\n [key: string]: any\n\n}\n\n/**\n * get value by key\n * notic: to mark proxy, so need take it layer by layer\n * @param obj\n * @param key\n */\nexport const getValueByKey = <T extends ObjectType>(obj: T, key: string) => {\n if (!key)\n return undefined\n\n const keys = key.split('.')\n let middleObj = obj\n\n for (let index = 0; index < keys.length; index++) {\n const currentKey = keys[index]\n\n if (typeof middleObj === 'object') {\n if (!(currentKey in (middleObj)))\n return undefined\n else\n middleObj = middleObj[currentKey]\n }\n else {\n return undefined\n }\n }\n\n return middleObj\n}\n\n/**\n * getFnByFnkey\n * @param iEngine\n * @param fnkey\n */\nexport const getFnByFnkey = (iEngine: Anov3D, fnkey: string, id: string) => {\n const handleFunction = getValueByKey(iEngine, fnkey) as any\n\n if (typeof handleFunction !== 'function') {\n sendToMessage(\n {\n messageType: MessageType.Api,\n messageName: fnkey,\n status: messageStatus.ModuleNotRegister.code,\n },\n {\n id,\n },\n )\n throw new Error('this function is not exist')\n }\n\n const fnkeyArrary = fnkey.split('.')\n\n let context: any = iEngine\n\n if (fnkeyArrary.length > 1)\n context = getValueByKey(iEngine, fnkeyArrary.slice(0, fnkeyArrary.length - 1).join('.'))\n\n return handleFunction.bind(context)\n}\n\n/**\n * get scene object vertice and triangle\n * @param scene\n * @returns\n */\nexport const getSceneInfo = (scene: Scene) => {\n let objects = 0\n let vertices = 0\n let triangles = 0\n\n for (let i = 0, l = scene.children.length; i < l; i++) {\n const object = scene.children[i]\n\n object.traverseVisible((object) => {\n objects++\n\n // @ts-ignore\n if (object.isMesh || object.isPoints) {\n // @ts-ignore\n const geometry = object.geometry\n\n vertices += geometry.attributes.position.count\n\n // @ts-ignore\n if (object.isMesh) {\n if (geometry.index !== null)\n\n triangles += geometry.index.count / 3\n\n else\n\n triangles += geometry.attributes.position.count / 3\n }\n }\n })\n }\n\n return {\n objects,\n vertices,\n triangles,\n }\n}\n\nexport const object2Vector3 = (obj: { x: number; y: number; z: number }) => {\n return new Vector3(obj.x, obj.y, obj.z)\n}\n"],"mappings":"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"}
|
package/dist/utils/messageFn.js
CHANGED
|
@@ -31,7 +31,9 @@ export var sendToMessage = function sendToMessage(messageBody, res) {
|
|
|
31
31
|
messageName = messageBody.messageName,
|
|
32
32
|
_messageBody$status = messageBody.status,
|
|
33
33
|
status = _messageBody$status === void 0 ? EMessageStatus.Success : _messageBody$status,
|
|
34
|
-
id = messageBody.id
|
|
34
|
+
id = messageBody.id,
|
|
35
|
+
_messageBody$global = messageBody.global,
|
|
36
|
+
global = _messageBody$global === void 0 ? true : _messageBody$global;
|
|
35
37
|
var uid = uuidv4();
|
|
36
38
|
var responseMsg = getResponseMsg(status);
|
|
37
39
|
var response = {
|
|
@@ -43,7 +45,8 @@ export var sendToMessage = function sendToMessage(messageBody, res) {
|
|
|
43
45
|
result: _objectSpread({}, (_ref = res) !== null && _ref !== void 0 ? _ref : {})
|
|
44
46
|
};
|
|
45
47
|
if (messageType === MessageType.Api) utils.emitter.emit('message', response);else if (messageType === MessageType.Event) utils.emitter.emit('event', _objectSpread(_objectSpread({}, response), {}, {
|
|
46
|
-
name: "".concat(response.name)
|
|
48
|
+
name: "".concat(response.name),
|
|
49
|
+
global: global
|
|
47
50
|
}));
|
|
48
51
|
};
|
|
49
52
|
//# sourceMappingURL=messageFn.js.map
|